:root {
    --zi-primary: #0f766e;
    --zi-secondary: #f59e0b;
    --zi-text: #1f2937;
    --zi-bg: #f8fafc;
    --zi-border: #e5e7eb;
    --zi-classic-navy: #1c244b;
    --zi-classic-ink: #2a3148;
    --zi-classic-gold: #b8952c;
    --zi-classic-ivory: #f6f4ef;
    --zi-classic-paper: #fbfaf7;
    --zi-classic-serif: Arial, Helvetica, sans-serif;
    --zi-classic-sans: Arial, Helvetica, sans-serif;
    --zi-font: Arial, Helvetica, sans-serif;
    --zi-fw-regular: 400;
    --zi-fw-semibold: 600;
    --zi-fw-bold: 700;

    /* Layout system ? desktop defaults (overridden per breakpoint) */
    --zi-header-h: 88px;
    --zi-content-max: 1200px;
    --zi-content-pad: clamp(16px, 3.2vw, 48px);
    --zi-section-y: clamp(48px, 6vh, 88px);
    --zi-section-gap: clamp(24px, 3vw, 44px);
    --zi-banner-h: clamp(200px, 24vh, 300px);
    --zi-hero-h: clamp(450px, 60vh, 650px);
    --zi-hero-min: 450px;
    --zi-hero-max: 650px;
    --zi-hero-overlap: clamp(24px, 3.5vh, 48px);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

html,
body {
    font-family: var(--zi-font);
    font-weight: var(--zi-fw-regular);
    max-width: 100%;
    overflow-x: clip;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

img,
video,
iframe {
    max-width: 100%;
}

img {
    height: auto;
}

/* Full-bleed / cover media keep explicit sizing from their parents */
.zi-cinema-slide img,
.zi-cinema-slide video,
.zi-page-banner-bg,
.zi-project-main img,
.zi-featured-media img,
.zi-media-tile img,
.zi-news-media img {
    height: 100%;
    width: 100%;
    max-width: none;
    object-fit: cover;
}

body,
button,
input,
select,
textarea,
.home,
.home h1,
.home h2,
.home h3,
.home h4,
.home h5,
.home h6,
.home p,
.home a,
.home span,
.home li,
.home label {
    font-family: Arial, Helvetica, sans-serif;
}

/* Font-weight scale: 400 body ? 600 small titles ? 700 main headings */
body,
p,
li,
label,
.elementor-icon-box-description,
.elementor-widget-text-editor {
    font-weight: var(--zi-fw-regular);
}

h3,
h4,
h5,
h6,
.home h3,
.home h4,
.home h5,
.home h6,
.elementor-icon-box-title,
h3.elementor-heading-title,
h4.elementor-heading-title,
h5.elementor-heading-title,
h6.elementor-heading-title,
.elementor-widget-heading h3,
.elementor-widget-heading h4,
.elementor-widget-heading h5,
.elementor-widget-heading h6,
button,
.btn,
.zi-btn {
    font-weight: var(--zi-fw-semibold);
}

h1,
h2,
.home h1,
.home h2,
.elementor-heading-title,
strong,
b {
    font-weight: var(--zi-fw-bold);
}

/* ===================================================
   Why Choose Us Section ? Light Design
   =================================================== */
.zi-why-section {
    background: var(--zi-classic-paper, #fbfaf7);
    padding: 90px 0 80px;
    position: relative;
    overflow: hidden;
}

.zi-why-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 60% 50% at 0% 0%, rgba(28, 36, 75, 0.04) 0%, transparent 60%),
        radial-gradient(ellipse 50% 60% at 100% 100%, rgba(184, 149, 44, 0.06) 0%, transparent 60%);
    pointer-events: none;
}

.zi-why-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    position: relative;
    z-index: 1;
}

.zi-why-header {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 56px;
}

.zi-why-eyebrow {
    margin: 0 0 12px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}

.zi-why-title {
    font-family: var(--zi-classic-serif);
    font-size: clamp(32px, 3.6vw, 46px);
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    margin: 0 0 16px;
    letter-spacing: 0.01em;
    line-height: 1.15;
}

.zi-why-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 0 18px;
}

.zi-why-divider span {
    width: 6px;
    height: 6px;
    background: var(--zi-classic-navy, #1c244b);
    opacity: 0.3;
    transform: rotate(45deg);
}

.zi-why-divider span:nth-child(2) {
    width: 9px;
    height: 9px;
    opacity: 1;
    background: #2c5dab;
}

.zi-why-subtitle {
    font-family: var(--zi-classic-sans);
    font-size: 15.5px;
    color: #5a6275;
    max-width: 540px;
    margin: 0 auto;
    line-height: 1.85;
}

/* 4-column grid */
.zi-why-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 56px;
}

/* Card */
.zi-why-card {
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    border-radius: 4px;
    padding: 32px 24px 28px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    position: relative;
    overflow: hidden;
    transition: transform 0.35s cubic-bezier(.22,.68,0,1.2),
                box-shadow 0.35s ease,
                border-color 0.35s ease,
                background 0.35s ease;
}

.zi-why-card:hover {
    transform: translateY(-6px);
    background: #ffffff;
    border-color: var(--wc, #1c244b);
    box-shadow: 0 16px 40px rgba(28, 36, 75, 0.1);
}

/* Corner glow */
.zi-why-card::after {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--wc, #1c244b);
    opacity: 0;
    transition: opacity 0.35s ease;
}

.zi-why-card:hover::after { opacity: 1; }

/* Icon ring */
.zi-why-icon-ring {
    width: 52px;
    height: 52px;
    border-radius: 4px;
    background: var(--zi-classic-paper, #fbfaf7);
    border: 1.5px solid rgba(28, 36, 75, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    transition: background 0.3s ease, border-color 0.3s ease;
}

.zi-why-card:hover .zi-why-icon-ring {
    background: var(--wc, #1c244b);
    border-color: var(--wc, #1c244b);
}

.zi-why-icon-ring svg {
    width: 24px;
    height: 24px;
    stroke: var(--wc, #1c244b);
    transition: stroke 0.3s ease;
}

.zi-why-card:hover .zi-why-icon-ring svg { stroke: #fff; }

/* Count / stat number */
.zi-why-count {
    font-family: var(--zi-classic-serif);
    font-size: 32px;
    font-weight: 600;
    color: var(--wc, #1c244b);
    margin-bottom: 8px;
    line-height: 1;
    letter-spacing: -0.5px;
}

.zi-why-count sup {
    font-size: 16px;
    font-weight: 600;
    vertical-align: super;
}

.zi-why-card-title {
    font-family: var(--zi-classic-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    margin: 0 0 10px;
    line-height: 1.3;
}

.zi-why-card-desc {
    font-family: var(--zi-classic-sans);
    font-size: 13.5px;
    color: #5a6275;
    line-height: 1.75;
    margin: 0;
    flex: 1;
}

/* Bottom accent line */
.zi-why-card-line {
    width: 30px;
    height: 2px;
    background: var(--wc, #1c244b);
    border-radius: 2px;
    margin-top: 20px;
    transition: width 0.3s ease;
}

.zi-why-card:hover .zi-why-card-line { width: 60px; }

/* CTA */
.zi-why-cta { text-align: center; }

.zi-why-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: transparent !important;
    background-image: linear-gradient(180deg, #2c5dab 0%, #5187DD 100%) !important;
    color: #fff !important;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: none;
    padding: 14px 18px;
    border: 0 !important;
    border-radius: 10px !important;
    text-decoration: none !important;
    transition: opacity 0.15s ease;
    box-shadow: none !important;
    transform: none !important;
}

.zi-why-cta-btn svg { width: 18px; height: 18px; transition: transform 0.25s ease; }

.zi-why-cta-btn:hover,
.zi-why-cta-btn:focus,
.zi-why-cta-btn:focus-visible {
    background: transparent !important;
    background-image: linear-gradient(180deg, var(--e-global-color-primary, #2C5DAB) 0%, #2C5DAB 100%) !important;
    color: #fff !important;
    box-shadow: none !important;
    transform: none !important;
    opacity: 1;
}

.zi-why-cta-btn:hover svg { transform: translateX(4px); }

/* Responsive */
@media (max-width: 1024px) {
    .zi-why-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .zi-why-inner { padding: 0 20px; }
    .zi-why-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
    .zi-why-section { padding: 60px 0; }
}

@media (max-width: 400px) {
    .zi-why-grid { grid-template-columns: 1fr; }
}

/* ===================================================
   Inner Pages ? Shared
   =================================================== */

/* Page Banner ? proportional height for desktop FHD */
.zi-page-banner {
    position: relative;
    height: var(--zi-banner-h);
    min-height: 200px;
    max-height: 380px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #0f172a;
    width: 100%;
}

.zi-page-banner-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 50%, #0c2340 100%);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.zi-page-banner-overlay {
    position: absolute;
    inset: 0;
    background: rgba(10,20,40,0.4);
}

.zi-page-banner-inner {
    position: relative;
    z-index: 2;
    text-align: center;
    width: min(100% - 2 * var(--zi-content-pad), var(--zi-content-max));
    margin-inline: auto;
    padding: clamp(28px, 4vh, 56px) var(--zi-content-pad);
    box-sizing: border-box;
}

.zi-page-banner-title {
    font-size: clamp(26px, 2.6vw, 44px);
    font-weight: 700;
    color: #f1f5f9;
    margin: 0 0 10px;
    text-shadow: 0 2px 12px rgba(0,0,0,0.4);
    letter-spacing: -0.5px;
    line-height: 1.15;
}

.zi-page-banner-inner .zi-breadcrumb {
    margin: 0 0 clamp(16px, 2.4vh, 24px);
}

.zi-page-banner-subtitle {
    font-size: clamp(14px, 1.05vw, 16px);
    color: #fff;
    margin: 0 auto;
    max-width: 42rem;
    line-height: 1.55;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
    opacity: 0.95;
}

.zi-breadcrumb {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 14px;
    color: #fff;
}

.zi-breadcrumb a,
.elementor-kit-7 .zi-breadcrumb a {
    color: #fff !important;
    text-decoration: none;
}

.zi-breadcrumb a:hover,
.zi-breadcrumb a:focus,
.elementor-kit-7 .zi-breadcrumb a:hover,
.elementor-kit-7 .zi-breadcrumb a:focus {
    color: #2c5dab !important;
    text-decoration: underline;
}

.elementor-kit-7 a:hover {
    color: #fff;
    font-family: var(--e-global-typography-primary-font-family), Sans-serif;
    font-size: var(--e-global-typography-primary-font-size);
    font-weight: var(--e-global-typography-primary-font-weight);
}

.zi-breadcrumb span {
    color: #2c5dab !important;
}

.zi-breadcrumb span[aria-hidden="true"] {
    color: #fff !important;
}

/* Inner section wrapper */
.zi-inner-section {
    padding: var(--zi-section-y) 0;
    background: #fff;
}

.zi-inner-container {
    max-width: var(--zi-content-max);
    margin: 0 auto;
    padding: 0 var(--zi-content-pad);
    width: 100%;
    box-sizing: border-box;
}

/* Section header shared labels */
.zi-section-label {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: #2c5dab;
    margin-bottom: 10px;
    font-family: var(--zi-classic-sans);
}

.zi-section-title {
    font-size: clamp(26px, 3.2vw, 40px);
    font-weight: 600;
    color: var(--zi-classic-navy);
    margin: 0 0 16px;
    line-height: 1.2;
    font-family: var(--zi-classic-serif);
    letter-spacing: 0.01em;
}

.zi-section-divider {
    display: flex;
    gap: 6px;
    margin-bottom: 24px;
}

.zi-section-divider span {
    height: 2px;
    border-radius: 0;
    background: #2c5dab;
}

.zi-section-divider span:nth-child(1) { width: 30px; }
.zi-section-divider span:nth-child(2) { width: 12px; opacity: 0.6; }
.zi-section-divider span:nth-child(3) { width: 6px; opacity: 0.35; }

/* Fallback page body */
.zi-page-content-wrap { max-width: 800px; }
.zi-page-body { font-size: 16px; line-height: 1.9; color: #475569; }

/* ===== Default / Generic CMS Page ===== */
.zi-generic-page {
    position: relative;
    padding: 72px 0 88px;
    background: #f7f9fc;
    overflow: hidden;
}

.zi-generic-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.zi-generic-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(40px);
    opacity: 0.55;
}

.zi-generic-orb--1 {
    width: 320px;
    height: 320px;
    top: -80px;
    right: -60px;
    background: radial-gradient(circle, rgba(29, 79, 156, 0.12), transparent 70%);
}

.zi-generic-orb--2 {
    width: 280px;
    height: 280px;
    bottom: 40px;
    left: -80px;
    background: radial-gradient(circle, rgba(14, 116, 144, 0.1), transparent 70%);
}

.zi-generic-inner {
    position: relative;
    z-index: 1;
    max-width: 920px;
    margin: 0 auto;
    padding: 0 24px;
}

.zi-generic-article {
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.06);
    border-radius: 16px;
    padding: 42px 48px 48px;
    box-shadow: 0 10px 40px rgba(15, 23, 42, 0.05);
    animation: zi-generic-fade 0.55s ease both;
}

@keyframes zi-generic-fade {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}

.zi-generic-header {
    margin-bottom: 28px;
    padding-bottom: 22px;
    border-bottom: 1px solid #e8eef5;
}

.zi-generic-eyebrow {
    display: inline-block;
    margin-bottom: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #1d4f9c;
}

.zi-generic-title {
    margin: 0;
    font-size: clamp(24px, 3.2vw, 34px);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: #0f172a;
}

.zi-generic-rule {
    margin-top: 16px;
    width: 56px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, #1d4f9c, #38bdf8);
}

.zi-generic-prose {
    font-size: 16.5px;
    line-height: 1.9;
    color: #334155;
}

.zi-generic-prose > *:first-child {
    margin-top: 0;
}

.zi-generic-prose > *:last-child {
    margin-bottom: 0;
}

.zi-generic-prose p {
    margin: 0 0 1.15em;
}

.zi-generic-prose h2,
.zi-generic-prose h3,
.zi-generic-prose h4 {
    color: #0f172a;
    line-height: 1.3;
    margin: 1.6em 0 0.65em;
    font-weight: 700;
}

.zi-generic-prose h2 { font-size: 1.45em; }
.zi-generic-prose h3 { font-size: 1.22em; }
.zi-generic-prose h4 { font-size: 1.08em; }

.zi-generic-prose ul,
.zi-generic-prose ol {
    margin: 0 0 1.2em;
    padding-left: 1.35em;
}

.zi-generic-prose li {
    margin-bottom: 0.45em;
}

.zi-generic-prose li::marker {
    color: #1d4f9c;
}

.zi-generic-prose a {
    color: #1d4f9c;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.zi-generic-prose a:hover {
    color: #163f7d;
}

.zi-generic-prose strong {
    color: #0f172a;
    font-weight: 600;
}

.zi-generic-prose blockquote {
    margin: 1.4em 0;
    padding: 14px 18px 14px 20px;
    border-left: 3px solid #1d4f9c;
    background: #f4f7fb;
    border-radius: 0 10px 10px 0;
    color: #475569;
    font-style: italic;
}

.zi-generic-prose img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    margin: 1.2em 0;
    display: block;
}

.zi-generic-prose table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.4em 0;
    font-size: 15px;
}

.zi-generic-prose th,
.zi-generic-prose td {
    border: 1px solid #e2e8f0;
    padding: 10px 12px;
    text-align: left;
}

.zi-generic-prose th {
    background: #f1f5f9;
    color: #0f172a;
    font-weight: 600;
}

.zi-generic-empty {
    padding: 28px 0 8px;
    color: #64748b;
    font-size: 16px;
}

.zi-generic-aside {
    margin-top: 28px;
    animation: zi-generic-fade 0.65s ease 0.08s both;
}

.zi-generic-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 22px 28px;
    border-radius: 14px;
    background: linear-gradient(120deg, #12233f 0%, #1d4f9c 100%);
    color: #fff;
    box-shadow: 0 14px 34px rgba(28, 36, 75, 0.22);
}

.zi-generic-cta-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 6px;
}

.zi-generic-cta-text {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.45;
    color: #f8fafc;
    max-width: 420px;
}

.zi-generic-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    padding: 11px 18px;
    border-radius: 999px;
    background: #ffffff;
    color: #12233f;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.zi-generic-cta-btn svg {
    width: 14px;
    height: 14px;
}

.zi-generic-cta-btn:hover {
    background: #f1f5f9;
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.14);
    color: #12233f;
}

@media (max-width: 768px) {
    .zi-generic-page {
        padding: 48px 0 64px;
    }

    .zi-generic-article {
        padding: 28px 22px 32px;
        border-radius: 12px;
    }

    .zi-generic-prose {
        font-size: 15.5px;
        line-height: 1.85;
    }

    .zi-generic-cta {
        flex-direction: column;
        align-items: flex-start;
        padding: 22px 20px;
    }

    .zi-generic-cta-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ===== Privacy Policy / legal document page ===== */
.zi-legal-hero .zi-projd-hero-inner {
    padding-bottom: 44px;
}

.zi-legal-band {
    position: relative;
    isolation: isolate;
    padding: clamp(36px, 5vh, 64px) 0 clamp(56px, 7vh, 96px);
    background: linear-gradient(180deg, #f4f7fb 0%, #eef3f9 100%);
}

.zi-legal-band .zi-projects-wash {
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: 0.35;
    pointer-events: none;
}

.zi-legal-shell {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--zi-content-max);
    margin: 0 auto;
    padding: 0 var(--zi-content-pad);
    box-sizing: border-box;
}

.zi-legal-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.72fr);
    gap: 28px;
    align-items: start;
}

.zi-legal-main {
    padding: clamp(28px, 4vw, 44px);
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(28, 36, 75, 0.08);
    border-left: 3px solid #2c5dab;
    box-shadow: 0 20px 50px rgba(28, 36, 75, 0.07);
}

.zi-legal-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 0 0 28px;
    padding: 0 0 22px;
    border-bottom: 1px solid rgba(28, 36, 75, 0.08);
}

.zi-legal-meta-label {
    display: block;
    margin-bottom: 4px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #7a8496;
}

.zi-legal-meta strong {
    font-family: var(--zi-classic-sans);
    font-size: 14.5px;
    font-weight: 600;
    color: #1c244b;
}

.zi-legal-prose {
    font-family: var(--zi-classic-sans);
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
}

.zi-legal-prose > *:first-child {
    margin-top: 0;
}

.zi-legal-prose > *:last-child {
    margin-bottom: 0;
}

.zi-legal-prose h2,
.zi-legal-prose h3,
.zi-legal-prose h4 {
    margin: 1.6em 0 0.55em;
    font-family: var(--zi-classic-serif);
    font-weight: 700;
    line-height: 1.3;
    color: #1c244b;
}

.zi-legal-prose h2 {
    font-size: 1.4em;
    padding-bottom: 0.35em;
    border-bottom: 1px solid rgba(44, 93, 171, 0.15);
}

.zi-legal-prose h3 {
    font-size: 1.18em;
}

.zi-legal-prose p {
    margin: 0 0 1em;
}

.zi-legal-prose ul,
.zi-legal-prose ol {
    margin: 0 0 1.15em;
    padding-left: 1.25em;
}

.zi-legal-prose li {
    margin: 0.35em 0;
}

.zi-legal-prose li::marker {
    color: #2c5dab;
}

.zi-legal-prose a {
    color: #2c5dab;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.zi-legal-prose a:hover {
    color: #1c244b;
}

.zi-legal-prose strong {
    color: #0f172a;
    font-weight: 600;
}

.zi-legal-empty {
    color: #64748b;
    font-size: 15.5px;
}

.zi-legal-aside {
    display: grid;
    gap: 18px;
    position: sticky;
    top: 96px;
}

.zi-legal-card {
    padding: 24px 22px;
    background: linear-gradient(160deg, #12233f 0%, #1a3a6b 55%, #2c5dab 100%);
    color: #fff;
    box-shadow: 0 18px 40px rgba(18, 35, 63, 0.22);
}

.zi-legal-card-label {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.72);
}

.zi-legal-card-text {
    margin: 0 0 18px;
    font-family: var(--zi-classic-sans);
    font-size: 14.5px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.9);
}

.zi-legal-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    margin-top: 10px;
    padding: 12px 16px;
    border-radius: 0;
    background: #fff;
    color: #12233f;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.zi-legal-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18);
    color: #12233f;
}

.zi-legal-btn--ghost {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.35);
    word-break: break-all;
}

.zi-legal-btn--ghost:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.zi-legal-note {
    padding: 18px 20px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(28, 36, 75, 0.08);
}

.zi-legal-note-brand {
    margin: 0 0 6px;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-legal-note p:last-child {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: #64748b;
}

@media (max-width: 960px) {
    .zi-legal-layout {
        grid-template-columns: 1fr;
    }

    .zi-legal-aside {
        position: static;
    }

    .zi-legal-meta {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}

@media (max-width: 640px) {
    .zi-legal-main {
        padding: 22px 18px 28px;
    }

    .zi-legal-prose {
        font-size: 15px;
    }
}

/* FAQ page */
.zi-faq-hero .zi-projd-hero-inner {
    padding-bottom: 44px;
}

.zi-faq-band {
    position: relative;
    isolation: isolate;
    padding: clamp(36px, 5vh, 64px) 0 clamp(56px, 7vh, 96px);
    background: linear-gradient(180deg, #f4f7fb 0%, #eef3f9 100%);
}

.zi-faq-band .zi-projects-wash {
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: 0.35;
    pointer-events: none;
}

.zi-faq-shell {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--zi-content-max);
    margin: 0 auto;
    padding: 0 var(--zi-content-pad);
    box-sizing: border-box;
}

.zi-faq-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.72fr);
    gap: 28px;
    align-items: start;
}

.zi-faq-main {
    min-width: 0;
}

.zi-faq-intro {
    margin: 0 0 28px;
    padding: clamp(22px, 3vw, 32px);
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(28, 36, 75, 0.08);
    border-left: 3px solid #2c5dab;
    box-shadow: 0 16px 40px rgba(28, 36, 75, 0.06);
    font-family: var(--zi-classic-sans);
    font-size: 16px;
    line-height: 1.75;
    color: #334155;
}

.zi-faq-intro > *:first-child {
    margin-top: 0;
}

.zi-faq-intro > *:last-child {
    margin-bottom: 0;
}

.zi-faq-list {
    display: grid;
    gap: 12px;
}

.zi-faq-item {
    margin: 0;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid rgba(28, 36, 75, 0.09);
    box-shadow: 0 10px 28px rgba(28, 36, 75, 0.05);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.zi-faq-item[open] {
    border-color: rgba(44, 93, 171, 0.35);
    box-shadow: 0 16px 36px rgba(44, 93, 171, 0.1);
}

.zi-faq-question {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 12px 14px;
    padding: 18px 20px;
    cursor: pointer;
    list-style: none;
    font-family: var(--zi-classic-sans);
}

.zi-faq-question::-webkit-details-marker {
    display: none;
}

.zi-faq-question::marker {
    content: "";
}

.zi-faq-q-text {
    font-size: 16.5px;
    font-weight: 600;
    line-height: 1.45;
    color: #1c244b;
}

.zi-faq-cat {
    justify-self: end;
    padding: 4px 10px;
    border: 1px solid rgba(44, 93, 171, 0.2);
    background: rgba(44, 93, 171, 0.06);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #2c5dab;
    white-space: nowrap;
}

.zi-faq-icon {
    position: relative;
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    border: 1px solid rgba(44, 93, 171, 0.25);
    background: #fff;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.25s ease;
}

.zi-faq-icon::before,
.zi-faq-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    background: #2c5dab;
    transform: translate(-50%, -50%);
}

.zi-faq-icon::before {
    width: 12px;
    height: 2px;
}

.zi-faq-icon::after {
    width: 2px;
    height: 12px;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.zi-faq-item[open] .zi-faq-icon {
    background: #2c5dab;
    border-color: #2c5dab;
    transform: rotate(180deg);
}

.zi-faq-item[open] .zi-faq-icon::before,
.zi-faq-item[open] .zi-faq-icon::after {
    background: #fff;
}

.zi-faq-item[open] .zi-faq-icon::after {
    opacity: 0;
}

.zi-faq-answer {
    padding: 0 20px 22px;
    border-top: 1px solid rgba(28, 36, 75, 0.06);
    font-family: var(--zi-classic-sans);
    font-size: 15.5px;
    line-height: 1.75;
    color: #475569;
}

.zi-faq-answer > *:first-child {
    margin-top: 16px;
}

.zi-faq-answer > *:last-child {
    margin-bottom: 0;
}

.zi-faq-answer a {
    color: #2c5dab;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.zi-faq-answer a:hover {
    color: #1c244b;
}

.zi-faq-empty {
    padding: clamp(28px, 4vw, 40px);
    background: rgba(255, 255, 255, 0.96);
    border: 1px dashed rgba(28, 36, 75, 0.18);
    color: #64748b;
    font-size: 15.5px;
    line-height: 1.65;
}

.zi-faq-aside {
    display: grid;
    gap: 18px;
    position: sticky;
    top: 96px;
}

.zi-faq-card {
    padding: 24px 22px;
    background: linear-gradient(160deg, #12233f 0%, #1a3a6b 55%, #2c5dab 100%);
    color: #fff;
    box-shadow: 0 18px 40px rgba(18, 35, 63, 0.22);
}

.zi-faq-card-label {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.72);
}

.zi-faq-card-text {
    margin: 0 0 18px;
    font-family: var(--zi-classic-sans);
    font-size: 14.5px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.9);
}

.zi-faq-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    margin-top: 10px;
    padding: 12px 16px;
    border-radius: 0;
    background: #fff;
    color: #12233f;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.zi-faq-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18);
    color: #12233f;
}

.zi-faq-btn--ghost {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.35);
    word-break: break-all;
}

.zi-faq-btn--ghost:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.zi-faq-note {
    padding: 18px 20px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(28, 36, 75, 0.08);
}

.zi-faq-note-brand {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-faq-topics {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.zi-faq-topics li {
    padding: 6px 11px;
    border: 1px solid rgba(44, 93, 171, 0.18);
    background: rgba(44, 93, 171, 0.05);
    font-family: var(--zi-classic-sans);
    font-size: 12.5px;
    font-weight: 600;
    color: #1c244b;
}

@media (max-width: 960px) {
    .zi-faq-layout {
        grid-template-columns: 1fr;
    }

    .zi-faq-aside {
        position: static;
    }
}

@media (max-width: 640px) {
    .zi-faq-question {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "text icon"
            "cat icon";
        gap: 8px 12px;
        padding: 16px;
    }

    .zi-faq-q-text {
        grid-area: text;
        font-size: 15.5px;
    }

    .zi-faq-cat {
        grid-area: cat;
        justify-self: start;
    }

    .zi-faq-icon {
        grid-area: icon;
        align-self: start;
    }

    .zi-faq-answer {
        padding: 0 16px 18px;
        font-size: 15px;
    }
}

/* About page */
.zi-about-intro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    margin-bottom: 70px;
}

/* Leadership message pages (Chairman & Managing Director) */
.zi-lmsg {
    --zi-lmsg-serif: Georgia, "Times New Roman", Times, serif;
    --zi-lmsg-gold: #5187dd;
    --zi-lmsg-gold-soft: rgba(201, 162, 39, 0.22);
    --zi-lmsg-navy: #1c244b;
    --zi-lmsg-blue: #2c5dab;
    position: relative;
    z-index: 2;
    margin-top: clamp(-42px, -4vw, -64px);
    padding: 0 0 clamp(64px, 8vw, 104px);
    overflow: hidden;
}

.zi-lmsg-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 90% 70% at 50% -10%, rgba(255, 255, 255, 0.95), transparent 62%),
        linear-gradient(180deg, #f7f5f0 0%, #fbfaf7 38%, #f0ece3 100%);
}

.zi-lmsg-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.28;
    background-image:
        linear-gradient(rgba(28, 36, 75, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(28, 36, 75, 0.035) 1px, transparent 1px);
    background-size: 56px 56px;
    mask-image: linear-gradient(180deg, #000 0%, transparent 92%);
}

.zi-lmsg-bg-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.55;
    pointer-events: none;
}

.zi-lmsg-bg-orb--1 {
    width: 420px;
    height: 420px;
    top: 8%;
    left: -8%;
    background: rgba(44, 93, 171, 0.12);
}

.zi-lmsg-bg-orb--2 {
    width: 360px;
    height: 360px;
    right: -6%;
    bottom: 10%;
    background: rgba(201, 162, 39, 0.14);
}

.zi-lmsg-container {
    position: relative;
    z-index: 1;
}

.zi-lmsg-intro {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px 28px;
    margin-bottom: clamp(22px, 3vw, 20px);
    margin-top: 20px;
}

.zi-lmsg-intro--profile {
    justify-content: flex-start;
}

.zi-lmsg-intro-label {
    display: inline-block;
    margin-bottom: 6px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--zi-lmsg-blue);
}

.zi-lmsg-intro-text {
    margin: 0;
    max-width: 38ch;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    line-height: 1.65;
    color: #667085;
}

.zi-lmsg-switch {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0;
    padding: 4px;
    border: 1px solid rgba(44, 93, 171, 0.14);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow:
        0 10px 30px rgba(28, 36, 75, 0.08),
        0 0 0 1px rgba(255, 255, 255, 0.8) inset;
    backdrop-filter: blur(10px);
}

.zi-lmsg-switch-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 20px;
    border-radius: 999px;
    font-family: var(--zi-classic-sans);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-decoration: none;
    color: #5f6b80;
    white-space: nowrap;
    transition: color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.zi-lmsg-switch-link:hover,
.elementor-kit-7 a.zi-lmsg-switch-link:hover {
    color: #fff;
    background: #5187dd;
}

.elementor-kit-7 a.zi-lmsg-switch-link {
    color: #5f6b80;
}

.elementor-kit-7 a.zi-lmsg-switch-link.is-active,
.elementor-kit-7 a.zi-lmsg-switch-link.is-active:hover {
    color: #fff;
}

.zi-lmsg-switch-link.is-active {
    color: #fff;
    background: linear-gradient(135deg, #3568b8 0%, var(--zi-lmsg-navy) 100%);
    box-shadow: 0 8px 22px rgba(44, 93, 171, 0.32);
    transform: translateY(-1px);
}

.zi-lmsg-card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(300px, 380px) 1px minmax(0, 1fr);
    gap: 0;
    border-radius: 14px;
    border: 1px solid rgba(44, 93, 171, 0.1);
    background: #fff;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.85) inset,
        0 30px 80px rgba(28, 36, 75, 0.12),
        0 8px 24px rgba(28, 36, 75, 0.05);
    overflow: hidden;
    animation: zi-lmsg-rise 0.75s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes zi-lmsg-rise {
    from {
        opacity: 0;
        transform: translateY(28px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.zi-lmsg-card-top {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    z-index: 3;
    background: linear-gradient(90deg, var(--zi-lmsg-navy) 0%, var(--zi-lmsg-blue) 42%, #5187dd 50%, var(--zi-lmsg-blue) 58%, #ffffff 100%);
}

.zi-lmsg-portrait {
    position: relative;
    padding: clamp(36px, 4vw, 48px) clamp(28px, 3.2vw, 36px) clamp(32px, 3.5vw, 40px);
    background:
        radial-gradient(ellipse 120% 80% at 50% 0%, rgba(53, 104, 184, 0.35), transparent 55%),
        linear-gradient(168deg, #141b38 0%, #1c244b 38%, #24345f 72%, #2f4f94 100%);
    color: #fff;
}

.zi-lmsg-portrait::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 18% 12%, rgba(255, 255, 255, 0.1), transparent 38%),
        radial-gradient(circle at 82% 88%, rgba(201, 162, 39, 0.16), transparent 42%);
}

.zi-lmsg-portrait-glow {
    position: absolute;
    top: 18%;
    left: 50%;
    z-index: 0;
    width: 72%;
    height: 42%;
    transform: translateX(-50%);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(201, 162, 39, 0.28), transparent 68%);
    filter: blur(18px);
    pointer-events: none;
}

.zi-lmsg-frame {
    position: relative;
    z-index: 1;
    padding: 12px;
    border: 1px solid #2c5dab;
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.28), 0 0 0 1px rgba(255, 255, 255, 0.08) inset;
}

.zi-lmsg-frame-inner {
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: #0c1224;
}

.zi-lmsg-photo {
    margin: 0;
    overflow: hidden;
}

.zi-lmsg-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center top;
    transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.zi-lmsg-card:hover .zi-lmsg-photo img {
    transform: scale(1.03);
}

.zi-lmsg-frame-corner {
    position: absolute;
    width: 18px;
    height: 18px;
    border-color: var(--zi-lmsg-gold);
    border-style: solid;
    pointer-events: none;
}

.zi-lmsg-frame-corner--tl { top: 4px; left: 4px; border-width: 2px 0 0 2px; }
.zi-lmsg-frame-corner--tr { top: 4px; right: 4px; border-width: 2px 2px 0 0; }
.zi-lmsg-frame-corner--bl { bottom: 4px; left: 4px; border-width: 0 0 2px 2px; }
.zi-lmsg-frame-corner--br { right: 4px; bottom: 4px; border-width: 0 2px 2px 0; }

.zi-lmsg-identity {
    position: relative;
    z-index: 1;
    margin-top: 24px;
    text-align: center;
}

.zi-lmsg-badge {
    display: inline-block;
    margin-bottom: 12px;
    padding: 6px 14px;
    border-radius: 2px;
    font-family: var(--zi-classic-sans);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-lmsg-name {
    margin: 0 0 8px;
    font-family: var(--zi-lmsg-serif);
    font-size: clamp(22px, 2.4vw, 28px);
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
    text-wrap: balance;
}

.zi-lmsg-role {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.72);
}

.zi-lmsg-identity-rule {
    width: 56px;
    height: 2px;
    margin: 18px auto 0;
    background: linear-gradient(90deg, transparent, #2c5dab, transparent);
}

.zi-lmsg-values {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.zi-lmsg-values li {
    padding: 5px 12px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    font-family: var(--zi-classic-sans);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.78);
    background: rgba(255, 255, 255, 0.05);
}

.zi-lmsg-divider {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 2px;
    background: linear-gradient(180deg, #f8f6f1 0%, #fff 50%, #f8f6f1 100%);
}

.zi-lmsg-divider-line {
    flex: 1 1 auto;
    width: 1px;
    min-height: 40px;
    background: linear-gradient(180deg, transparent, rgba(201, 162, 39, 0.45), transparent);
}

.zi-lmsg-divider-diamond {
    width: 8px;
    height: 8px;
    background: var(--zi-lmsg-gold);
    transform: rotate(45deg);
    box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.15);
}

.zi-lmsg-letter {
    position: relative;
    padding: clamp(36px, 4.5vw, 56px) clamp(32px, 4.5vw, 64px);
    background:
        linear-gradient(180deg, #fff 0%, #fdfcf8 55%, #faf8f3 100%);
}

.zi-lmsg-letter::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 80% 50% at 100% 0%, rgba(44, 93, 171, 0.04), transparent 55%),
        radial-gradient(ellipse 60% 40% at 0% 100%, rgba(201, 162, 39, 0.05), transparent 50%);
}

.zi-lmsg-letterhead {
    position: relative;
    z-index: 1;
    margin-bottom: 6px;
}

.zi-lmsg-eyebrow {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: var(--zi-lmsg-blue);
}

.zi-lmsg-title {
    margin: 0 0 16px;
    font-family: var(--zi-lmsg-serif);
    font-size: clamp(28px, 3.2vw, 42px);
    font-weight: 700;
    line-height: 1.18;
    color: var(--zi-lmsg-navy);
    text-wrap: balance;
}

.zi-lmsg-rule {
    display: flex;
    align-items: center;
    gap: 7px;
}

.zi-lmsg-rule span {
    display: block;
    height: 2px;
    border-radius: 1px;
    background: #2c5dab;
}

.zi-lmsg-rule span:nth-child(1) { width: 48px; }
.zi-lmsg-rule span:nth-child(2) { width: 12px; opacity: 0.7; }
.zi-lmsg-rule span:nth-child(3) { width: 5px; opacity: 0.45; }

.zi-lmsg-body-wrap {
    position: relative;
    z-index: 1;
    margin-top: clamp(24px, 3vw, 36px);
    padding: clamp(20px, 2.5vw, 28px);
    border: 1px solid rgba(44, 93, 171, 0.08);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;
}

.zi-lmsg-quote-mark {
    position: absolute;
    top: -6px;
    left: 12px;
    font-family: var(--zi-lmsg-serif);
    font-size: clamp(88px, 9vw, 120px);
    font-weight: 700;
    line-height: 1;
    color: rgba(44, 93, 171, 0.07);
    pointer-events: none;
    user-select: none;
}

.zi-lmsg-body {
    position: relative;
    z-index: 1;
    font-family: var(--zi-classic-sans);
    font-size: clamp(15px, 1.05vw, 17px);
    font-weight: 400;
    line-height: 1.95;
    color: #4b5568;
}

.zi-lmsg-dropcap > p:first-child:not(.zi-lmsg-lead)::first-letter {
    float: left;
    margin: 0.04em 0.14em 0 0;
    font-family: var(--zi-lmsg-serif);
    font-size: 3.6em;
    font-weight: 700;
    line-height: 0.82;
    color: var(--zi-lmsg-blue);
}

.zi-lmsg-lead {
    margin: 0 0 1.35em;
    font-family: var(--zi-lmsg-serif);
    font-size: clamp(19px, 1.55vw, 24px);
    font-weight: 500;
    line-height: 1.55;
    color: #3d4660;
}

.zi-lmsg-brand {
    font-family: var(--zi-lmsg-serif);
    font-size: 1.55em;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: 0.02em;
    color: var(--zi-lmsg-blue);
}

.zi-lmsg-body p {
    margin: 0 0 1.2em;
}

.zi-lmsg-body p:last-child {
    margin-bottom: 0;
}

.zi-lmsg-body strong {
    color: var(--zi-lmsg-navy);
    font-weight: 700;
}

.zi-lmsg-body > p:last-child {
    margin-top: 1.6em;
    padding-top: 1.2em;
    border-top: 1px solid rgba(44, 93, 171, 0.1);
    font-family: var(--zi-lmsg-serif);
    font-size: 1.05em;
    line-height: 1.6;
    color: var(--zi-lmsg-navy);
}

.zi-lmsg-footer {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px 36px;
    margin-top: clamp(32px, 4vw, 44px);
    padding-top: 24px;
    border-top: 1px solid rgba(44, 93, 171, 0.1);
}

.zi-lmsg-footer-note {
    min-width: 0;
}

.zi-lmsg-signature-line {
    display: block;
    width: 140px;
    height: 1px;
    margin-bottom: 12px;
    background: linear-gradient(90deg, #2c5dab, rgba(201, 162, 39, 0.15));
}

.zi-lmsg-footer-text {
    margin: 0;
    font-family: var(--zi-lmsg-serif);
    font-size: 16px;
    font-style: italic;
    color: #6b7280;
}

.zi-lmsg-seal {
    position: relative;
    flex: 0 0 auto;
    width: 84px;
    height: 84px;
    display: grid;
    place-items: center;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transition: transform 0.2s ease;
}

a.zi-lmsg-seal:hover,
.elementor-kit-7 a.zi-lmsg-seal:hover {
    color: inherit;
    transform: translateY(-2px);
}

.zi-lmsg-seal-outer,
.zi-lmsg-seal-inner {
    position: absolute;
    border-radius: 50%;
}

.zi-lmsg-seal-outer {
    inset: 0;
    border: 2px solid rgba(44, 93, 171, 0.2);
    box-shadow: 0 0 0 5px rgba(44, 93, 171, 0.05);
}

.zi-lmsg-seal-inner {
    inset: 10px;
    border: 1px dashed rgba(201, 162, 39, 0.55);
}

.zi-lmsg-seal-text {
    position: relative;
    z-index: 1;
    font-family: var(--zi-classic-sans);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.16em;
    line-height: 1.35;
    text-align: center;
    text-transform: uppercase;
    color: var(--zi-lmsg-blue);
}

@media (max-width: 1024px) {
    .zi-lmsg-card {
        grid-template-columns: 1fr;
    }

    .zi-lmsg-divider {
        flex-direction: row;
        height: auto;
        padding: 0 24px;
    }

    .zi-lmsg-divider-line {
        width: auto;
        height: 1px;
        min-height: 0;
        flex: 1 1 auto;
        background: linear-gradient(90deg, transparent, rgba(201, 162, 39, 0.45), transparent);
    }

    .zi-lmsg-portrait {
        display: grid;
        grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
        gap: 28px 32px;
        align-items: center;
    }

    .zi-lmsg-identity {
        margin-top: 0;
        text-align: left;
    }

    .zi-lmsg-identity-rule {
        margin-left: 0;
        margin-right: auto;
    }

    .zi-lmsg-values {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }
}

@media (max-width: 680px) {
    .zi-lmsg {
        margin-top: -28px;
    }

    .zi-lmsg-intro {
        flex-direction: column;
        align-items: stretch;
    }

    .zi-lmsg-switch {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
        border-radius: 12px;
    }

    .zi-lmsg-switch-link {
        min-height: 44px;
        padding: 8px 10px;
        font-size: 11px;
        white-space: normal;
        text-align: center;
        line-height: 1.35;
    }

    .zi-lmsg-portrait {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .zi-lmsg-frame {
        max-width: 300px;
        margin: 0 auto;
    }

    .zi-lmsg-identity {
        text-align: center;
    }

    .zi-lmsg-identity-rule {
        margin-left: auto;
        margin-right: auto;
    }

    .zi-lmsg-values {
        justify-content: center;
    }

    .zi-lmsg-letter {
        padding: 28px 22px 34px;
    }

    .zi-lmsg-body-wrap {
        padding: 18px 16px;
    }

    .zi-lmsg-footer {
        flex-direction: column;
        align-items: flex-start;
    }

    .zi-lmsg-seal {
        align-self: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .zi-lmsg-card {
        animation: none;
    }

    .zi-lmsg-card:hover .zi-lmsg-photo img {
        transform: none;
    }
}

.zi-lmsg-profile-btn {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    margin-top: 18px;
    padding: 12px 18px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.zi-lmsg-profile-btn:hover,
.elementor-kit-7 a.zi-lmsg-profile-btn:hover {
    color: #fff;
    background: #2c5dab;
    border-color: #2c5dab;
    transform: translateY(-1px);
}

.elementor-kit-7 a.zi-lmsg-profile-btn {
    color: #fff;
}

/* Leadership personal portfolio pages */
.zi-lprofile {
    position: relative;
    z-index: 2;
    margin-top: clamp(-24px, -2.5vw, -36px);
    padding: clamp(20px, 3vw, 32px) 0 clamp(64px, 8vw, 104px);
    overflow: hidden;
}

.zi-lprofile-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 90% 70% at 50% -10%, rgba(255, 255, 255, 0.95), transparent 62%),
        linear-gradient(180deg, #f7f5f0 0%, #fbfaf7 38%, #f0ece3 100%);
}

.zi-lprofile-container {
    position: relative;
    z-index: 1;
}

.zi-lprofile-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    color: #6b7280;
}

.zi-lprofile-breadcrumb a {
    color: #2c5dab;
    text-decoration: none;
}

.zi-lprofile-breadcrumb a:hover {
    text-decoration: underline;
}

.zi-lprofile-card {
    position: relative;
    border: 1px solid rgba(44, 93, 171, 0.1);
    border-radius: 14px;
    background: #fff;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.85) inset,
        0 30px 80px rgba(28, 36, 75, 0.12),
        0 8px 24px rgba(28, 36, 75, 0.05);
    overflow: hidden;
}

.zi-lprofile-card-top {
    height: 4px;
    background: linear-gradient(90deg, var(--zi-lmsg-navy, #1c244b) 0%, var(--zi-lmsg-blue, #2c5dab) 42%, #5187dd 50%, var(--zi-lmsg-blue, #2c5dab) 58%, var(--zi-lmsg-navy, #1c244b) 100%);
}

.zi-lprofile-hero {
    display: grid;
    grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
    gap: clamp(28px, 4vw, 48px);
    padding: clamp(32px, 4vw, 48px);
    background:
        radial-gradient(ellipse 120% 80% at 0% 0%, rgba(44, 93, 171, 0.06), transparent 55%),
        linear-gradient(180deg, #fff 0%, #faf9f6 100%);
    border-bottom: 1px solid rgba(44, 93, 171, 0.08);
}

.zi-lprofile-portrait-frame {
    overflow: hidden;
    border: 1px solid rgba(44, 93, 171, 0.14);
    border-radius: 10px;
    background: #0f1528;
    box-shadow: 0 20px 48px rgba(28, 36, 75, 0.14);
}

.zi-lprofile-portrait-frame img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center top;
}

.zi-lprofile-portrait-fallback {
    display: grid;
    place-items: center;
    min-height: 320px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 72px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.35);
    background: linear-gradient(165deg, #1c244b, #2c5dab);
}

.zi-lprofile-eyebrow {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-lprofile-name {
    margin: 0 0 8px;
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: clamp(30px, 3.5vw, 44px);
    font-weight: 700;
    line-height: 1.15;
    color: #1c244b;
}

.zi-lprofile-role {
    margin: 0 0 4px;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-lprofile-org {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    color: #6b7280;
}

.zi-lprofile-rule {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 20px 0 24px;
}

.zi-lprofile-rule span {
    display: block;
    height: 2px;
    border-radius: 1px;
    background: #2c5dab;
}

.zi-lprofile-rule span:nth-child(1) { width: 48px; }
.zi-lprofile-rule span:nth-child(2) { width: 12px; opacity: 0.7; }
.zi-lprofile-rule span:nth-child(3) { width: 5px; opacity: 0.45; }

.zi-lprofile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.zi-lprofile-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 20px;
    border-radius: 6px;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.zi-lprofile-btn--primary {
    border: 1px solid #2c5dab;
    background: linear-gradient(135deg, #3568b8 0%, #1c244b 100%);
    color: #fff;
    box-shadow: 0 8px 20px rgba(44, 93, 171, 0.22);
}

.zi-lprofile-btn--primary:hover,
.elementor-kit-7 a.zi-lprofile-btn--primary:hover {
    color: #fff;
    transform: translateY(-1px);
}

.elementor-kit-7 a.zi-lprofile-btn--primary {
    color: #fff;
}

.zi-lprofile-btn--ghost {
    border: 1px solid rgba(44, 93, 171, 0.22);
    background: #fff;
    color: #2c5dab;
}

.zi-lprofile-btn--ghost:hover,
.elementor-kit-7 a.zi-lprofile-btn--ghost:hover {
    color: #fff;
    border-color: #5187dd;
    background: #5187dd;
}

.elementor-kit-7 a.zi-lprofile-btn--ghost {
    color: #2c5dab;
}

.zi-lprofile-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
    gap: clamp(24px, 3vw, 36px);
    padding: clamp(28px, 4vw, 40px);
}

.zi-lprofile-panel + .zi-lprofile-panel {
    margin-top: 28px;
}

.zi-lprofile-panel-title {
    margin: 0 0 10px;
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 24px;
    font-weight: 700;
    color: #1c244b;
}

.zi-lprofile-panel-rule {
    width: 56px;
    height: 2px;
    margin-bottom: 16px;
    background: linear-gradient(90deg, #2c5dab, rgba(44, 93, 171, 0.15));
}

.zi-lprofile-bio {
    font-family: var(--zi-classic-sans);
    font-size: 16px;
    line-height: 1.9;
    color: #4b5568;
}

.zi-lprofile-bio p {
    margin: 0 0 1em;
}

.zi-lprofile-bio p:last-child {
    margin-bottom: 0;
}

.zi-lprofile-education {
    margin: 0;
    padding: 0;
    list-style: none;
}

.zi-lprofile-education li {
    position: relative;
    padding: 12px 0 12px 18px;
    border-bottom: 1px solid rgba(44, 93, 171, 0.08);
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    line-height: 1.55;
    color: #374151;
}

.zi-lprofile-education li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1.15em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #2c5dab;
}

.zi-lprofile-education li:last-child {
    border-bottom: 0;
}

.zi-lprofile-highlights {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.zi-lprofile-highlights li {
    display: inline-flex;
    align-items: center;
    padding: 8px 14px;
    border: 1px solid rgba(44, 93, 171, 0.14);
    border-radius: 999px;
    background: rgba(44, 93, 171, 0.05);
    font-family: var(--zi-classic-sans);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: #2c5dab;
}

.zi-lprofile-aside {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.zi-lprofile-aside-card {
    padding: 18px 18px 16px;
    border: 1px solid rgba(44, 93, 171, 0.1);
    border-radius: 10px;
    background: linear-gradient(180deg, #fff 0%, #faf9f6 100%);
}

.zi-lprofile-aside-card--cta {
    background: linear-gradient(165deg, #1c244b 0%, #24345f 100%);
    border-color: rgba(255, 255, 255, 0.08);
}

.zi-lprofile-aside-label {
    margin: 0 0 6px;
    font-family: var(--zi-classic-sans);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-lprofile-aside-card--cta .zi-lprofile-aside-label {
    color: rgba(255, 255, 255, 0.72);
}

.zi-lprofile-aside-value {
    margin: 0;
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
    color: #1c244b;
}

.zi-lprofile-aside-card--cta .zi-lprofile-aside-value,
.zi-lprofile-aside-card--cta .zi-lprofile-aside-note {
    color: rgba(255, 255, 255, 0.88);
}

.zi-lprofile-aside-note {
    margin: 0 0 12px;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    line-height: 1.55;
    color: #6b7280;
}

.zi-lprofile-aside-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    color: #fff;
}

.zi-lprofile-aside-link:hover,
.elementor-kit-7 a.zi-lprofile-aside-link:hover {
    color: #dbeafe;
}

.elementor-kit-7 a.zi-lprofile-aside-link {
    color: #fff;
}

.zi-director-profile-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: #2c5dab;
}

.zi-director-profile-link:hover,
.elementor-kit-7 a.zi-director-profile-link:hover {
    color: #5187dd;
}

.elementor-kit-7 a.zi-director-profile-link {
    color: #2c5dab;
}

@media (max-width: 960px) {
    .zi-lprofile-hero,
    .zi-lprofile-body {
        grid-template-columns: 1fr;
    }

    .zi-lprofile-portrait-col {
        max-width: 320px;
    }
}

@media (max-width: 680px) {
    .zi-lprofile {
        margin-top: -28px;
    }

    .zi-lprofile-hero,
    .zi-lprofile-body {
        padding: 24px 20px;
    }

    .zi-lprofile-actions {
        flex-direction: column;
    }

    .zi-lprofile-btn {
        width: 100%;
    }
}

/* Legacy chairman aliases (kept for cached markup compatibility) */
.zi-chairman-section {
    background: var(--zi-classic-paper, #fbfaf7);
}

.zi-chairman-layout {
    display: grid;
    grid-template-columns: minmax(260px, 380px) minmax(0, 1fr);
    gap: 48px 64px;
    align-items: start;
}

.zi-chairman-portrait {
    position: sticky;
    top: 110px;
}

.zi-chairman-photo {
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(44, 93, 171, 0.18);
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.6) inset,
        0 18px 48px rgba(28, 36, 75, 0.1);
    border-radius: 4px;
}

.zi-chairman-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center top;
}

.zi-chairman-meta {
    margin-top: 18px;
    padding: 14px 16px;
    border-left: 3px solid #2c5dab;
    background: rgba(44, 93, 171, 0.04);
}

.zi-chairman-name {
    margin: 0 0 4px;
    font-family: var(--zi-classic-sans);
    font-size: 18px;
    font-weight: 700;
    color: var(--zi-classic-navy, #1c244b);
}

.zi-chairman-role {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-chairman-eyebrow {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-chairman-title {
    margin: 0 0 16px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(28px, 3.2vw, 40px);
    font-weight: 700;
    line-height: 1.2;
    color: var(--zi-classic-navy, #1c244b);
}

.zi-chairman-body {
    margin-top: 22px;
    font-family: var(--zi-classic-sans);
    font-size: 15.5px;
    font-weight: 400;
    line-height: 1.9;
    color: #4a5166;
}

.zi-chairman-body p {
    margin: 0 0 1em;
}

.zi-chairman-body p:last-child {
    margin-bottom: 0;
}

@media (max-width: 900px) {
    .zi-chairman-layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .zi-chairman-portrait {
        position: static;
        max-width: 360px;
    }
}

.zi-about-intro-text .zi-about-body {
    font-size: 15.5px;
    line-height: 1.9;
    color: #475569;
}

.zi-about-intro-img img {
    width: 100%;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.12);
}

.zi-vmv-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.zi-vmv-card {
    background: #f8fafc;
    border-radius: 16px;
    padding: 32px 28px;
    border-top: 4px solid var(--accent, #38bdf8);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.zi-vmv-card:hover {
    box-shadow: 0 12px 40px rgba(0,0,0,0.1);
    transform: translateY(-4px);
}

.zi-vmv-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: rgba(56,189,248,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}

.zi-vmv-icon svg {
    width: 24px;
    height: 24px;
    stroke: var(--accent, #38bdf8);
}

.zi-vmv-card h3 {
    font-size: 18px;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 10px;
}

.zi-vmv-card p {
    font-size: 14.5px;
    line-height: 1.75;
    color: #64748b;
    margin: 0;
}

/* ===== About VMV alternating layout ===== */
.zi-vmv2-section {
    background:
        linear-gradient(180deg, #fff 0%, var(--zi-classic-paper, #fbfaf7) 12%, var(--zi-classic-paper, #fbfaf7) 88%, #fff 100%);
    padding: 40px 0 100px;
    position: relative;
    overflow: hidden;
}

.zi-vmv2-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 45% 40% at 0% 20%, rgba(28, 36, 75, 0.04) 0%, transparent 70%),
        radial-gradient(ellipse 40% 35% at 100% 70%, rgba(184, 149, 44, 0.07) 0%, transparent 70%);
    pointer-events: none;
}

.zi-vmv2-inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 40px;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 88px;
}

.zi-vmv2-row {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 64px;
    align-items: center;
}

.zi-vmv2-row--reverse {
    grid-template-columns: 0.95fr 1.05fr;
}

.zi-vmv2-row--reverse .zi-vmv2-copy { order: 1; }
.zi-vmv2-row--reverse .zi-vmv2-media { order: 2; }

.zi-vmv2-media {
    position: relative;
    min-height: 380px;
}

.zi-vmv2-main {
    width: 86%;
    aspect-ratio: 4 / 3.15;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 24px 56px rgba(28, 36, 75, 0.14);
    position: relative;
}

.zi-vmv2-row--reverse .zi-vmv2-main {
    margin-left: auto;
}

.zi-vmv2-main img,
.zi-vmv2-inset img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.zi-vmv2-inset {
    position: absolute;
    width: 42%;
    aspect-ratio: 3 / 4;
    border-radius: 18px;
    overflow: hidden;
    border: 6px solid #fff;
    box-shadow: 0 18px 40px rgba(28, 36, 75, 0.18);
    right: 0;
    bottom: 8%;
    z-index: 2;
}

.zi-vmv2-row--reverse .zi-vmv2-inset {
    right: auto;
    left: 0;
}

.zi-vmv2-deco {
    position: absolute;
    width: 120px;
    height: 120px;
    border: 1.5px solid #2c5dab;
    border-radius: 20px;
    top: -14px;
    left: -14px;
    z-index: 0;
    pointer-events: none;
}

.zi-vmv2-row--reverse .zi-vmv2-deco {
    left: auto;
    right: -14px;
}

.zi-vmv2-copy {
    max-width: 480px;
}

.zi-vmv2-row--reverse .zi-vmv2-copy {
    margin-left: auto;
}

.zi-vmv2-eyebrow {
    margin: 0 0 12px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}

.zi-vmv2-title {
    margin: 0 0 16px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(30px, 3.4vw, 42px);
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    letter-spacing: 0.01em;
    line-height: 1.15;
}

.zi-vmv2-divider {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 20px;
}

.zi-vmv2-divider span {
    width: 6px;
    height: 6px;
    background: var(--zi-classic-navy, #1c244b);
    opacity: 0.3;
    transform: rotate(45deg);
}

.zi-vmv2-divider span:nth-child(2) {
    width: 9px;
    height: 9px;
    opacity: 1;
    background: #2c5dab;
}

.zi-vmv2-text {
    margin: 0 0 26px;
    font-family: var(--zi-classic-sans);
    font-size: 15.5px;
    line-height: 1.85;
    color: #5a6275;
}

.zi-vmv2-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.zi-vmv2-list li {
    position: relative;
    padding-left: 34px;
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.45;
    color: var(--zi-classic-navy, #1c244b);
}

.zi-vmv2-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 1px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #2c5dab;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23ffffff'%3E%3Cpath fill-rule='evenodd' d='M16.704 4.153a.75.75 0 0 1 .143 1.052l-8 10.5a.75.75 0 0 1-1.127.075l-4.5-4.5a.75.75 0 0 1 1.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 0 1 1.05-.143z' clip-rule='evenodd'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px;
}

@media (max-width: 960px) {
    .zi-vmv2-inner { gap: 64px; padding: 0 28px; }
    .zi-vmv2-row,
    .zi-vmv2-row--reverse {
        grid-template-columns: 1fr;
        gap: 36px;
    }
    .zi-vmv2-row--reverse .zi-vmv2-copy,
    .zi-vmv2-row--reverse .zi-vmv2-media { order: unset; }
    .zi-vmv2-media { min-height: 0; max-width: 560px; }
    .zi-vmv2-main { width: 88%; }
    .zi-vmv2-copy,
    .zi-vmv2-row--reverse .zi-vmv2-copy { max-width: none; margin: 0; }
}

@media (max-width: 640px) {
    .zi-vmv2-section { padding: 24px 0 72px; }
    .zi-vmv2-inner { padding: 0 20px; gap: 52px; }
    .zi-vmv2-main { border-radius: 16px; }
    .zi-vmv2-inset {
        width: 46%;
        border-width: 4px;
        border-radius: 14px;
        bottom: 4%;
    }
    .zi-vmv2-deco { display: none; }
}

/* Contact page */
.zi-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start;
}

.zi-contact-desc {
    font-size: 15px;
    color: #64748b;
    line-height: 1.8;
    margin-bottom: 32px;
}

.zi-contact-cards {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.zi-contact-card {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    background: #f8fafc;
    border-radius: 12px;
    padding: 18px 20px;
    border-left: 3px solid var(--c, #38bdf8);
}

.zi-contact-card-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: rgba(56,189,248,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.zi-contact-card-icon svg {
    width: 18px;
    height: 18px;
    fill: var(--c, #38bdf8);
}

.zi-contact-card-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #94a3b8;
    margin-bottom: 4px;
}

.zi-contact-card-value {
    display: block;
    font-size: 15px;
    font-weight: 600;
    color: #1e293b;
    text-decoration: none;
    line-height: 1.4;
}

a.zi-contact-card-value:hover { color: #38bdf8; }

.zi-contact-map {
    border-radius: 16px;
    overflow: hidden;
    height: 420px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
}

/* ===== Contact Form Section ===== */
.zi-contact-form-section {
    padding: 80px 0 100px;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    scroll-margin-top: 140px; /* keep below sticky header */
}

.zi-contact-alert {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 32px;
}

.zi-contact-alert svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

.zi-contact-alert-success {
    background: #dcfce7;
    color: #166534;
    border: 1px solid #86efac;
}

.zi-contact-error-list {
    margin: 8px 0 0;
    padding-left: 18px;
    font-size: 13px;
    line-height: 1.55;
    font-weight: 500;
}

.zi-contact-error-list li + li {
    margin-top: 2px;
}

.zi-contact-form-section .zi-cform-err-msg {
    display: block;
    margin-top: 6px;
    font-size: 12.5px;
    font-weight: 500;
    color: #dc2626;
}

.zi-contact-success {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
    max-width: 820px;
    margin: 0 auto;
    padding: 56px 40px;
    background: #fff;
    border-radius: 20px;
    border: 1px solid rgba(22, 101, 52, 0.18);
    border-top: 3px solid #16a34a;
    box-shadow: 0 8px 48px rgba(16, 24, 40, 0.08);
}

.zi-contact-success-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(22, 163, 74, 0.12);
    color: #16a34a;
    margin-bottom: 4px;
}

.zi-contact-success-icon svg {
    width: 32px;
    height: 32px;
}

.zi-contact-success-title {
    margin: 0;
    font-family: var(--zi-classic-serif);
    font-size: clamp(22px, 2.4vw, 30px);
    font-weight: 600;
    color: #166534;
    line-height: 1.25;
}

.zi-contact-success-text {
    margin: 0;
    max-width: 42ch;
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    line-height: 1.65;
    color: #3f6212;
}

.zi-contact-success-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 10px;
    padding: 14px 22px;
    border: 0 !important;
    background: transparent !important;
    background-image: linear-gradient(180deg, #2c5dab 0%, #5187DD 100%) !important;
    color: #fff !important;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: opacity 0.15s ease;
}

.zi-contact-success-btn:hover {
    background: transparent !important;
    background-image: linear-gradient(180deg, var(--e-global-color-primary, #2C5DAB) 0%, #2C5DAB 100%) !important;
    color: #fff !important;
}

.zi-contact-form-wrap {
    max-width: 820px;
    margin: 0 auto;
    background: #fff;
    border-radius: 20px;
    padding: 56px 60px;
    box-shadow: 0 8px 48px rgba(16,24,40,0.08);
    border: 1px solid #e2e8f0;
}

.zi-contact-form-header {
    text-align: center;
    margin-bottom: 40px;
}

.zi-contact-form-sub {
    font-size: 15px;
    color: #64748b;
    margin: 12px auto 0;
    max-width: 500px;
    line-height: 1.7;
}

/* Form fields */
.zi-cform-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}

.zi-cform-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 20px;
}

.zi-cform-row .zi-cform-group {
    margin-bottom: 0;
}

.zi-cform-group label {
    font-size: 13.5px;
    font-weight: 600;
    color: #334155;
    letter-spacing: 0.2px;
}

.zi-cform-group label span {
    color: #ef4444;
    margin-left: 2px;
}

.zi-cform-group input,
.zi-cform-group textarea {
    width: 100%;
    padding: 12px 16px;
    font-size: 14px;
    color: #0f172a;
    background: #f8fafc;
    border: 1.5px solid #e2e8f0;
    border-radius: 10px;
    outline: none;
    transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
    resize: none;
    font-family: inherit;
}

.zi-cform-group input::placeholder,
.zi-cform-group textarea::placeholder {
    color: #94a3b8;
}

.zi-cform-group input:focus,
.zi-cform-group textarea:focus {
    border-color: #38bdf8;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(56,189,248,0.12);
}

.zi-cform-group input.zi-cform-error,
.zi-cform-group textarea.zi-cform-error {
    border-color: #ef4444;
    background: #fff5f5;
}

.zi-cform-err-msg {
    display: block;
    font-size: 12.5px;
    color: #ef4444;
    margin-top: 2px;
    line-height: 1.4;
}

.zi-cform-counter {
    text-align: right;
    font-size: 12px;
    color: #94a3b8;
    margin-top: 4px;
}

.zi-cform-counter.is-limit {
    color: #ef4444;
    font-weight: 600;
}

.zi-cform-recaptcha-wrap {
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.zi-cform-recaptcha-err {
    display: block;
    margin-top: 8px;
    text-align: center;
    width: 100%;
}

.zi-dealer-form .zi-cform-recaptcha-wrap {
    margin-bottom: 18px;
    align-items: flex-start;
}

.zi-dealer-form .zi-cform-recaptcha-err {
    text-align: left;
}

.zi-cform-footer {
    margin-top: 8px;
    display: flex;
    justify-content: center;
}

.zi-cform-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 40px;
    background: linear-gradient(135deg, #1c244b 0%, #2563eb 100%);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.3px;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    transition: opacity 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 4px 18px rgba(37,99,235,0.3);
}

.zi-cform-btn svg {
    width: 16px;
    height: 16px;
    fill: #fff;
    transition: transform 0.25s ease;
}

.zi-cform-btn:hover:not(:disabled) {
    opacity: 0.92;
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(37,99,235,0.35);
}

.zi-cform-btn:hover:not(:disabled) svg {
    transform: translateX(3px);
}

.zi-cform-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

@media (max-width: 768px) {
    .zi-contact-form-wrap { padding: 36px 24px; }
    .zi-cform-row { grid-template-columns: 1fr; gap: 0; }
}

/* Our Concerns page */
.zi-concerns-desc {
    max-width: 620px;
    margin: 16px auto 0;
    font-size: 15px;
    color: #64748b;
    line-height: 1.8;
    text-align: center;
}

.zi-concerns-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.zi-concern-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    overflow: hidden;
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.zi-concern-card:hover {
    box-shadow: 0 12px 40px rgba(0,0,0,0.1);
    transform: translateY(-5px);
}

.zi-concern-img {
    width: 100%;
    height: 180px;
    overflow: hidden;
    background: #f1f5f9;
}

.zi-concern-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.zi-concern-card:hover .zi-concern-img img { transform: scale(1.05); }

.zi-concern-body {
    padding: 22px 24px;
}

.zi-concern-name {
    font-size: 17px;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 8px;
}

.zi-concern-desc {
    font-size: 13.5px;
    color: #64748b;
    line-height: 1.7;
    margin: 0 0 16px;
}

.zi-concern-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 600;
    color: #38bdf8;
    text-decoration: none;
    transition: gap 0.2s ease;
}

.zi-concern-btn svg { width: 14px; height: 14px; fill: #38bdf8; }
.zi-concern-btn:hover { gap: 8px; }

/* ===== Our Concerns page ? Brands & Partners sections ===== */
.zi-page-brands-section {
    padding: 60px 0 40px;
    background: #f8fafc;
}

.zi-page-partners-section {
    padding: 60px 0;
    background: #fff;
}

.zi-page-brands-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

.zi-page-section-heading {
    text-align: center;
    margin-bottom: 40px;
}

.zi-page-section-heading h2 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 28px;
    font-weight: 700;
    color: #1c244b;
    margin: 0 0 14px;
}

/* Marquee */
.zi-page-marquee {
    width: 100%;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}

.zi-page-marquee-track {
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    gap: 24px;
    animation: zi-marquee-scroll 28s linear infinite;
}

.zi-page-marquee:hover .zi-page-marquee-track {
    animation-play-state: paused;
}

.zi-page-marquee-item {
    flex: 0 0 auto;
    width: 190px;
    height: 105px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px 20px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(16,24,40,0.05);
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.zi-page-marquee-item:hover {
    box-shadow: 0 12px 26px rgba(16,24,40,0.1);
    border-color: #1c244b;
}

.zi-page-marquee-item img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 65px !important;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.8;
    transition: filter 0.3s ease, opacity 0.3s ease;
}

.zi-page-marquee-item:hover img {
    filter: grayscale(0%);
    opacity: 1;
}

/* Partners grid */
.zi-page-partners-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
    align-items: center;
}

.zi-page-partner-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px 20px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    transition: box-shadow 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}

.zi-page-partner-item:hover {
    background: #fff;
    box-shadow: 0 8px 24px rgba(16,24,40,0.08);
    border-color: #1c244b;
}

.zi-page-partner-item img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 70px !important;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.75;
    transition: filter 0.3s ease, opacity 0.3s ease;
}

.zi-page-partner-item:hover img {
    filter: grayscale(0%);
    opacity: 1;
}

@media (max-width: 992px) {
    .zi-page-partners-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 576px) {
    .zi-page-partners-grid { grid-template-columns: repeat(2, 1fr); }
    .zi-page-marquee-item { width: 150px; height: 88px; }
}

/* Media hub */
.zi-media-hub {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    max-width: 800px;
    margin: 0 auto;
}

.zi-media-hub-card {
    display: flex;
    align-items: center;
    gap: 20px;
    background: #ffffff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    border-radius: 0;
    padding: 28px;
    text-decoration: none;
    transition: box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}

.zi-media-hub-card:hover {
    box-shadow: 0 16px 40px rgba(28, 36, 75, 0.08);
    transform: translateY(-3px);
    border-color: rgba(28, 36, 75, 0.18);
}

.zi-media-hub-icon {
    width: 56px;
    height: 56px;
    border-radius: 0;
    background: rgba(28, 36, 75, 0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.zi-media-hub-icon svg {
    width: 26px;
    height: 26px;
    stroke: var(--zi-classic-navy, #1c244b);
}

.zi-media-hub-card h3 {
    font-family: var(--zi-classic-serif);
    font-size: 20px;
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    margin: 0 0 6px;
}

.zi-media-hub-card p {
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    color: #5a6275;
    margin: 0;
    line-height: 1.65;
}

.zi-media-hub-arrow {
    width: 20px;
    height: 20px;
    fill: rgba(28, 36, 75, 0.35);
    margin-left: auto;
    flex-shrink: 0;
    transition: fill 0.2s ease, transform 0.2s ease;
}

.zi-media-hub-card:hover .zi-media-hub-arrow {
    fill: var(--zi-classic-gold, #b8952c);
    transform: translateX(4px);
}

/* Video grid */
.zi-video-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.zi-video-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    overflow: hidden;
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.zi-video-card:hover {
    box-shadow: 0 10px 36px rgba(0,0,0,0.1);
    transform: translateY(-4px);
}

.zi-video-card .zi-news-yt-wrap {
    aspect-ratio: 16/9;
    width: 100%;
}

.zi-video-thumb img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
}

.zi-video-body {
    padding: 18px 20px;
}

.zi-video-body h3 {
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 8px;
}

.zi-video-body p {
    font-size: 13px;
    color: #64748b;
    line-height: 1.6;
    margin: 0;
}

/* News title */
.zi-news-title {
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 8px;
    line-height: 1.4;
}

.zi-news-excerpt {
    font-size: 13px;
    color: #64748b;
    line-height: 1.65;
    margin: 0;
}

/* Responsive inner pages */
@media (max-width: 1024px) {
    .zi-about-intro,
    .zi-contact-grid { grid-template-columns: 1fr; gap: 40px; }
    .zi-vmv-grid { grid-template-columns: 1fr 1fr; }
    .zi-concerns-grid,
    .zi-video-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
    .zi-inner-container { padding: 0 20px; }
    .zi-vmv-grid,
    .zi-concerns-grid,
    .zi-media-hub,
    .zi-video-grid { grid-template-columns: 1fr; }
    .zi-contact-map { height: 280px; }
}

/* ===================================================
   Footer ? Professional Dark Design
   =================================================== */
.zi-footer {
    background: #0f172a;
    color: #cbd5e1;
    font-family: Arial, Helvetica, sans-serif;
    position: relative;
}

/* Wave top divider */
.zi-footer-wave {
    line-height: 0;
    margin-bottom: -2px;
    background: #ffffff;
}

.zi-footer-wave svg {
    display: block;
    width: 100%;
    height: 74px;
}

/* Body */
.zi-footer-body {
    padding: 70px 0 50px;
}

.zi-footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    display: grid;
    grid-template-columns: 2fr 1.4fr 1fr 1fr;
    gap: 50px;
}

/* Column shared */
.zi-footer-col {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Brand column */
.zi-footer-logo-link { display: inline-block; margin-bottom: 18px; }

.zi-footer-logo {
    max-width: 160px;
    height: auto;
    filter: brightness(0) invert(1);
    opacity: 0.9;
}

.zi-footer-about {
    font-size: 14px;
    line-height: 1.8;
    color: #94a3b8;
    margin: 0 0 22px;
}

/* Social */
.zi-footer-social {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.zi-social-btn {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.1);
    transition: background 0.25s ease, transform 0.25s ease;
    color: #fff;
}

.zi-social-btn svg {
    width: 15px;
    height: 15px;
    fill: #ffffff;
}

.zi-social-btn:hover { transform: translateY(-3px); }
.zi-social-fb:hover { background: #1877f2; border-color: #1877f2; }
.zi-social-tw:hover { background: #1da1f2; border-color: #1da1f2; }
.zi-social-ig:hover { background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); border-color: transparent; }
.zi-social-li:hover { background: #0a66c2; border-color: #0a66c2; }

/* Column heading */
.zi-footer-col-title {
    font-size: 15px;
    font-weight: 700;
    color: #f1f5f9;
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid rgba(56,189,248,0.3);
    position: relative;
}

.zi-footer-col-title::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 36px;
    height: 2px;
    background: #38bdf8;
}

/* Contact list */
.zi-footer-contact {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.zi-footer-contact li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.zi-contact-icon {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border-radius: 9px;
    background: rgba(56,189,248,0.1);
    border: 1px solid rgba(56,189,248,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px;
}

.zi-contact-icon svg {
    width: 15px;
    height: 15px;
    fill: #38bdf8;
}

.zi-contact-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 2px;
}

.zi-contact-value {
    display: block;
    font-size: 13.5px;
    color: #cbd5e1;
    text-decoration: none;
    line-height: 1.4;
    transition: color 0.2s ease;
}

.zi-contact-value:hover { color: #38bdf8; }

/* Nav link lists */
.zi-footer-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.zi-footer-links li a {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: #94a3b8;
    text-decoration: none;
    transition: color 0.2s ease, gap 0.2s ease;
}

.zi-footer-links li a svg {
    width: 14px;
    height: 14px;
    fill: #38bdf8;
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.zi-footer-links li a:hover {
    color: #f1f5f9;
    gap: 10px;
}

.zi-footer-links li a:hover svg {
    transform: translateX(3px);
}

/* Bottom bar */
.zi-footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.07);
    padding: 18px 0;
    background: rgba(0,0,0,0.2);
}

.zi-footer-bottom-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}

.zi-footer-bottom-inner p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
}

.zi-footer-bottom-inner strong {
    color: #94a3b8;
}

.zi-footer-copy {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    font-size: 13px;
    color: #64748b;
}

.zi-footer-copy-link {
    color: #94a3b8;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.3s ease;
}

.zi-footer-copy-link:hover {
    color: #38bdf8;
}

.zi-footer-copy-sep {
    color: #334155;
    font-size: 11px;
}

.zi-footer-copy-sub {
    font-size: 12px;
    color: #475569;
    font-style: italic;
    letter-spacing: 0.3px;
}

.zi-footer-credit {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    font-size: 13px;
    color: #64748b;
}

.zi-footer-credit-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    text-decoration: none;
    color: #94a3b8;
    font-weight: 600;
    letter-spacing: 0.3px;
    transition: color 0.3s ease;
}

.zi-footer-credit-link:hover {
    color: #38bdf8;
}

.zi-footer-booklet-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid rgba(56, 189, 248, 0.35);
    border-radius: 999px;
    background: rgba(56, 189, 248, 0.08);
    color: #7dd3fc !important;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-decoration: none !important;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.zi-footer-booklet-link svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
    flex-shrink: 0;
}

.zi-footer-booklet-link:hover {
    background: rgba(56, 189, 248, 0.16);
    border-color: rgba(56, 189, 248, 0.55);
    color: #bae6fd !important;
    transform: translateY(-1px);
}

.zi-footer-credit-heart {
    color: #ef4444;
    font-size: 14px;
    animation: zi-heart-beat 1.4s ease-in-out infinite;
    display: inline-block;
}

@keyframes zi-heart-beat {
    0%, 100% { transform: scale(1); }
    14%       { transform: scale(1.25); }
    28%       { transform: scale(1); }
    42%       { transform: scale(1.15); }
    56%       { transform: scale(1); }
}

@media (max-width: 1024px) {
    .zi-footer-inner {
        grid-template-columns: 1fr 1fr;
        gap: 36px;
    }
    .zi-footer-col.zi-footer-brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 600px) {
    .zi-footer-inner {
        grid-template-columns: 1fr;
        padding: 0 20px;
    }
    .zi-footer-bottom-inner {
        flex-direction: column;
        text-align: center;
        padding: 0 20px;
    }
}

/* ===== Header Main Nav ===== */
.main-navigation-area .hfe-nav-menu > .menu-item {
    margin: 0 !important;
}

.main-navigation-area .hfe-nav-menu > .menu-item > .hfe-menu-item.zi-nav-link,
.main-navigation-area .hfe-nav-menu > .zi-has-dropdown > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 18px 16px !important;
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    text-shadow: none !important;
    transition: opacity 0.22s ease, color 0.22s ease !important;
}

.main-navigation-area .hfe-nav-menu > .menu-item > .hfe-menu-item.zi-nav-link .zi-nav-label,
.main-navigation-area .hfe-nav-menu > .zi-has-dropdown > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link .zi-nav-label {
    position: relative;
    display: inline-block;
}

.main-navigation-area .hfe-nav-menu > .menu-item > .hfe-menu-item.zi-nav-link .zi-nav-label::after,
.main-navigation-area .hfe-nav-menu > .zi-has-dropdown > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link .zi-nav-label::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -8px;
    width: 100%;
    height: 2px;
    background: #ffffff;
    border-radius: 2px;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.25s ease;
}

.main-navigation-area .hfe-nav-menu > .menu-item > .hfe-menu-item.zi-nav-link:hover,
.main-navigation-area .hfe-nav-menu > .zi-has-dropdown:hover > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link,
.main-navigation-area .hfe-nav-menu > .menu-item.current-menu-item > .hfe-menu-item.zi-nav-link,
.main-navigation-area .hfe-nav-menu > .menu-item.current-menu-item > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link {
    color: #ffffff !important;
    opacity: 1 !important;
}

.main-navigation-area .hfe-nav-menu > .menu-item > .hfe-menu-item.zi-nav-link:hover .zi-nav-label::after,
.main-navigation-area .hfe-nav-menu > .zi-has-dropdown:hover > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link .zi-nav-label::after,
.main-navigation-area .hfe-nav-menu > .menu-item.current-menu-item > .hfe-menu-item.zi-nav-link .zi-nav-label::after,
.main-navigation-area .hfe-nav-menu > .menu-item.current-menu-item > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link .zi-nav-label::after {
    transform: scaleX(1);
}

/* Contact CTA */
.main-navigation-area .hfe-nav-menu > .zi-nav-cta-item {
    margin-left: 8px !important;
}

.main-navigation-area .hfe-nav-menu > .zi-nav-cta-item > .hfe-menu-item.zi-nav-cta {
    margin: 10px 0 10px 4px !important;
    padding: 9px 18px !important;
    border: 1px solid rgba(255, 255, 255, 0.55) !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    background: transparent !important;
    letter-spacing: 0.02em !important;
    transition: background 0.22s ease, color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease !important;
}

.main-navigation-area .hfe-nav-menu > .zi-nav-cta-item > .hfe-menu-item.zi-nav-cta .zi-nav-label::after {
    display: none !important;
}

.main-navigation-area .hfe-nav-menu > .zi-nav-cta-item > .hfe-menu-item.zi-nav-cta:hover,
.main-navigation-area .hfe-nav-menu > .zi-nav-cta-item.current-menu-item > .hfe-menu-item.zi-nav-cta {
    background: #ffffff !important;
    color: #1c244b !important;
    border-color: #ffffff !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

@media (max-width: 1024px) {
    .main-navigation-area .hfe-nav-menu > .menu-item > .hfe-menu-item.zi-nav-link,
    .main-navigation-area .hfe-nav-menu > .zi-has-dropdown > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link {
        padding: 14px 16px !important;
        letter-spacing: 0.02em !important;
        text-transform: none !important;
        font-size: 15px !important;
        color: #1e293b !important;
        text-shadow: none !important;
        width: 100% !important;
        justify-content: flex-start !important;
    }

    .main-navigation-area .hfe-nav-menu > .menu-item > .hfe-menu-item.zi-nav-link .zi-nav-label::after,
    .main-navigation-area .hfe-nav-menu > .zi-has-dropdown > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link .zi-nav-label::after {
        background: #1d4f9c;
        bottom: -4px;
    }

    .main-navigation-area .hfe-nav-menu > .zi-nav-cta-item {
        margin-left: 0 !important;
        padding: 8px 12px !important;
        width: 100% !important;
    }

    .main-navigation-area .hfe-nav-menu > .zi-nav-cta-item > .hfe-menu-item.zi-nav-cta {
        display: inline-flex !important;
        margin: 0 !important;
        padding: 10px 16px !important;
        border-color: #1d4f9c !important;
        color: #1d4f9c !important;
        background: transparent !important;
    }

    .main-navigation-area .hfe-nav-menu > .zi-nav-cta-item > .hfe-menu-item.zi-nav-cta:hover,
    .main-navigation-area .hfe-nav-menu > .zi-nav-cta-item.current-menu-item > .hfe-menu-item.zi-nav-cta {
        background: #1d4f9c !important;
        color: #ffffff !important;
        border-color: #1d4f9c !important;
    }
}

/* ===== Header Media Dropdown (Amin style) ===== */
.hfe-nav-menu .zi-has-dropdown {
    position: relative;
}

.hfe-nav-menu .zi-has-dropdown > .hfe-has-submenu-container .hfe-menu-item {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
}

.hfe-nav-menu .zi-nav-caret {
    width: 0;
    height: 0;
    border-left: 3.5px solid transparent;
    border-right: 3.5px solid transparent;
    border-top: 4px solid currentColor;
    opacity: 0.85;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.hfe-nav-menu .zi-has-dropdown:hover .zi-nav-caret {
    opacity: 1;
    transform: translateY(1px);
}

.hfe-nav-menu .zi-has-dropdown .hfe-menu-toggle.sub-arrow {
    display: none !important;
}

.hfe-nav-menu .zi-dropdown-menu.sub-menu {
    position: absolute !important;
    top: 100% !important;
    left: 16px !important;
    right: auto !important;
    transform: none !important;
    min-width: 240px !important;
    width: max-content !important;
    max-width: min(360px, 90vw) !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    background: #ffffff !important;
    border: 1px solid #d9dde3 !important;
    border-radius: 2px !important;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08) !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 10050 !important;
    overflow: hidden;
    transition: opacity 0.15s ease, visibility 0.15s ease !important;
}

.hfe-nav-menu .zi-dropdown-menu.sub-menu::before {
    content: '';
    position: absolute;
    top: -10px;
    left: 0;
    width: 100%;
    height: 10px;
    background: transparent;
}

.hfe-nav-menu .zi-has-dropdown:hover > .zi-dropdown-menu.sub-menu,
.hfe-nav-menu .zi-has-dropdown:focus-within > .zi-dropdown-menu.sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto;
}

.hfe-nav-menu .zi-dropdown-item {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    display: block !important;
    border-bottom: 1px solid #e5e7eb !important;
}

.hfe-nav-menu .zi-dropdown-item:last-child {
    border-bottom: none !important;
}

.hfe-nav-menu .zi-dropdown-item + .zi-dropdown-item {
    margin-top: 0 !important;
}

.hfe-nav-menu .zi-dropdown-link {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    padding: 8px 14px !important;
    margin: 0 !important;
    border-radius: 0 !important;
    text-decoration: none !important;
    color: #1f2937 !important;
    background: #ffffff !important;
    border: none !important;
    box-shadow: none !important;
    overflow: visible !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    text-align: left !important;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease !important;
}

.hfe-nav-menu .zi-dropdown-link::before,
.hfe-nav-menu .zi-dropdown-link::after {
    display: none !important;
    content: none !important;
}

.hfe-nav-menu .zi-dropdown-link:hover,
.hfe-nav-menu .zi-dropdown-item.current-menu-item > .zi-dropdown-link {
    background: #2c5dab !important;
    color: #ffffff !important;
    padding-left: 14px !important;
}

.hfe-nav-menu .zi-dropdown-icon,
.hfe-nav-menu .zi-dropdown-copy,
.hfe-nav-menu .zi-dropdown-hint {
    display: none !important;
}

.hfe-nav-menu .zi-dropdown-text {
    display: block;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    color: inherit !important;
    white-space: nowrap;
}

@media (max-width: 1024px) {
    .hfe-nav-menu .zi-nav-caret {
        display: none;
    }

    .hfe-nav-menu .zi-has-dropdown .hfe-menu-toggle.sub-arrow {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        margin-left: auto;
        width: 32px;
        height: 32px;
    }

    .hfe-nav-menu .zi-dropdown-menu.sub-menu {
        position: static !important;
        left: auto !important;
        transform: none !important;
        min-width: 100% !important;
        width: 100% !important;
        max-width: none !important;
        box-shadow: none !important;
        border: none !important;
        border-radius: 0 !important;
        padding: 0 0 0 8px !important;
        margin: 0 !important;
        background: transparent !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.25s ease, opacity 0.2s ease !important;
    }

    .hfe-nav-menu .zi-has-dropdown.zi-submenu-open > .zi-dropdown-menu.sub-menu,
    .hfe-nav-menu .zi-has-dropdown.sub-menu-active > .zi-dropdown-menu.sub-menu {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        max-height: 480px;
        padding: 4px 0 8px 8px !important;
    }

    .hfe-nav-menu .zi-has-dropdown:hover > .zi-dropdown-menu.sub-menu {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .hfe-nav-menu .zi-has-dropdown.zi-submenu-open:hover > .zi-dropdown-menu.sub-menu,
    .hfe-nav-menu .zi-has-dropdown.sub-menu-active:hover > .zi-dropdown-menu.sub-menu {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .hfe-nav-menu .zi-dropdown-menu.sub-menu::before {
        display: none;
    }

    .hfe-nav-menu .zi-dropdown-item {
        border-bottom: 1px solid #e5e7eb !important;
    }

    .hfe-nav-menu .zi-dropdown-link {
        padding: 8px 12px !important;
        color: #1f2937 !important;
        background: #ffffff !important;
        white-space: normal;
    }

    .hfe-nav-menu .zi-dropdown-link:hover,
    .hfe-nav-menu .zi-dropdown-item.current-menu-item > .zi-dropdown-link {
        background: #2c5dab !important;
        color: #ffffff !important;
    }
}

/* ===== Frontend tablet/mobile menu panel polish ===== */
@media (max-width: 1024px) {
    .elementor-33 .elementor-element.elementor-element-4d4eb62 {
        width: 100% !important;
        max-width: 100% !important;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal,
    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-horizontal {
        position: absolute !important;
        left: 0 !important;
        right: 0 !important;
        top: 100% !important;
        width: 100% !important;
        max-width: 100vw !important;
        z-index: 10040 !important;
        background: #ffffff !important;
        box-shadow: 0 16px 40px rgba(15, 23, 42, 0.16) !important;
        border-top: 1px solid #e8eef5 !important;
        padding: 8px 0 16px !important;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 8px !important;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-layout-horizontal .hfe-nav-menu__toggle {
        margin-left: auto !important;
        margin-right: 4px !important;
        background: rgba(255, 255, 255, 0.14) !important;
        border-radius: 8px !important;
        padding: 8px 10px !important;
        border: 1px solid rgba(255, 255, 255, 0.22);
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__toggle .hfe-nav-menu-icon,
    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__toggle .hfe-nav-menu-icon svg {
        width: 22px;
        height: 22px;
        fill: #ffffff;
        color: #ffffff;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu .hfe-nav-menu-icon svg {
        fill: #ffffff;
    }

    .main-navigation-area {
        overflow: visible !important;
    }

    #zi-sticky-header,
    #zi-sticky-header.zi-header-fixed {
        overflow: visible !important;
    }
}

@media (max-width: 767px) {
    /* Hero / video area */
    .elementor-2 .elementor-element-4fd9adf7,
    .elementor-element-4fd9adf7.e-con {
        min-height: 52vh !important;
    }

    .zi-page-banner {
        min-height: 200px;
    }

    .zi-page-banner-inner {
        padding: 40px 16px;
    }

    .zi-footer-bottom-inner {
        padding: 0 16px;
        flex-direction: column;
        text-align: center;
    }

    .zi-footer-inner {
        padding-left: 16px;
        padding-right: 16px;
    }

    .zi-generic-inner,
    .zi-inner-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* ===== Sticky Header ===== */
#zi-sticky-header {
    background: #fff;
    transition: box-shadow 0.3s ease;
}
#zi-sticky-header.zi-header-fixed {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 9990 !important;
    background: #fff !important;
    box-shadow: 0 2px 16px rgba(0,0,0,0.15) !important;
    /* Opacity-only fade ? transform animations blur header text/logo */
    animation: zi-header-fade 0.22s ease;
    transform: none !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
@keyframes zi-header-fade {
    from { opacity: 0.92; }
    to   { opacity: 1; }
}

/* ===== Scroll to Top Button ===== */
#zi-scroll-top {
    position: fixed;
    bottom: 32px;
    right: 28px;
    z-index: 9999;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--e-global-color-primary, #1c244b);
    color: #ffffff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 20px rgba(28, 36, 75, 0.35);
    opacity: 0;
    visibility: hidden;
    transform: translateY(16px);
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background 0.2s ease;
}

#zi-scroll-top svg {
    width: 20px;
    height: 20px;
}

#zi-scroll-top.zi-scroll-top-show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

#zi-scroll-top:hover {
    background: #2563eb;
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(37, 99, 235, 0.45);
}

/* Elementor-invisible: JS animation class that Elementor normally removes after load.
   Since we don't run full Elementor JS, force all invisible elements visible. */
.elementor-invisible {
    visibility: visible !important;
    opacity: 1 !important;
    animation: none !important;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.6;
    color: var(--zi-text);
    background-color: var(--zi-bg);
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

.container {
    width: min(100% - 2rem, 1200px);
    margin-inline: auto;
}

.section-padding {
    padding: 60px 0;
}

.btn-primary {
    display: inline-block;
    padding: 14px 32px;
    background-color: var(--zi-primary);
    color: #fff;
    border-radius: 25px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-primary:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}

.btn-secondary {
    display: inline-block;
    padding: 14px 32px;
    background-color: var(--zi-secondary);
    color: #111827;
    border-radius: 25px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-secondary:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}

.elementor-button {
    border-radius: 10px 10px 10px 10px !important;
    padding: 14px 32px !important;
    font-weight: 600 !important;
    transition: all 0.3s ease !important;
    background: linear-gradient(180deg, #3B82F6 0%, #5187DD 100%) !important;
    color: #FFFFFF !important;
    border: none !important;
    background-attachment: fixed !important;
}

.elementor-button:hover {
    transform: translateY(-2px) !important;
    opacity: 0.9 !important;
}

.elementor-button-link {
    background: linear-gradient(180deg, #3B82F6 0%, #5187DD 100%) !important;
    color: #FFFFFF !important;
}

.elementor-button-link:hover {
    opacity: 0.9 !important;
    transform: translateY(-2px) !important;
}

a.elementor-button {
    background: linear-gradient(180deg, #3B82F6 0%, #5187DD 100%) !important;
    color: #FFFFFF !important;
}

a.elementor-button:hover {
    opacity: 0.9 !important;
    transform: translateY(-2px) !important;
}

img:is([sizes="auto" i], [sizes^="auto," i]) {
    contain-intrinsic-size: 3000px 1500px;
}

body {
    padding: 0;
}

a:where(:not(.wp-element-button)) {
    text-decoration: underline;
}

img.wp-smiley,
img.emoji {
    display: inline !important;
    border: none !important;
    box-shadow: none !important;
    height: 1em !important;
    width: 1em !important;
    margin: 0 0.07em !important;
    vertical-align: -0.1em !important;
    background: none !important;
    padding: 0 !important;
}

/* Force image display in widgets */
.elementor-widget-image img,
.elementor-widget-image-box img,
.elementor-widget-image-carousel img,
.swiper-slide-image {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Keep header logo sharp ? never stretch to 100% */
.elementor-33 .hfe-site-logo-img,
.hfe-site-logo-img {
    width: auto !important;
    max-width: 220px !important;
    height: auto !important;
    object-fit: contain !important;
}

/* Ensure all images load properly */
img[loading="lazy"] {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Fix gallery and carousel images */
.gallery-icon img,
.gallery-item img {
    display: block !important;
    max-width: 100% !important;
    height: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Ensure background videos and images show */
.elementor-element-4fd9adf7 {
    position: relative;
    overflow: hidden;
}

/* ===== Clean Home Slider (media only + progress lines) ===== */
.zi-cinema-hero {
    position: relative;
    width: 100%;
    background: #0b1220;
    z-index: 1;
    margin-bottom: 0;
}

.zi-cinema-sound-btn {
    position: absolute;
    left: 50%;
    bottom: calc(56px + (var(--zi-hero-overlap) * 0.35));
    transform: translateX(-50%);
    z-index: 20;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 15px;
    border: none;
    border-radius: 0;
    background: transparent;
    background-color: transparent;
    background-image: none;
    color: #fff;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.zi-cinema-sound-btn[hidden] {
    display: none !important;
}

.zi-cinema-sound-btn:hover,
.zi-cinema-sound-btn:focus-visible {
    background: transparent;
    background-color: transparent;
    background-image: none;
    border: none;
    transform: translateX(-50%) scale(1.06);
    outline: none;
    opacity: 0.92;
}

/* Beat Elementor kit button gradient (post-7) on hero mute control */
.elementor-kit-7 button.zi-cinema-sound-btn,
.elementor-kit-7 button.zi-cinema-sound-btn:hover,
.elementor-kit-7 button.zi-cinema-sound-btn:focus,
.elementor-kit-7 button.zi-cinema-sound-btn:focus-visible,
.elementor-kit-7 button.zi-cinema-sound-btn:active {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #FFFFFF !important;
    padding: 15px !important;
}

.zi-cinema-sound-icon {
    display: inline-flex;
    width: 28px;
    height: 28px;
    border-radius: 0;
    align-items: center;
    justify-content: center;
    background: transparent !important;
    background-image: none !important;
    position: relative;
}

.zi-cinema-sound-glyph {
    display: none;
}

.zi-cinema-sound-btn[data-muted="1"] .zi-cinema-sound-glyph--off,
.zi-cinema-sound-btn[data-muted="0"] .zi-cinema-sound-glyph--on {
    display: block;
}

@media (max-width: 640px) {
    .zi-cinema-sound-btn {
        bottom: 56px;
        padding: 10px 16px;
        font-size: 13px;
    }
}

.zi-cinema-slider {
    position: relative;
    width: 100%;
    height: var(--zi-hero-h);
    min-height: var(--zi-hero-min);
    max-height: var(--zi-hero-max);
    overflow: hidden;
}

.zi-cinema-slider .swiper-wrapper {
    height: 100%;
    z-index: 1;
}

.zi-cinema-slider .swiper-slide {
    height: 100%;
    width: 100%;
    overflow: hidden;
}

.zi-cinema-slide {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #0b1220;
}

.zi-cinema-slide img,
.zi-cinema-slide video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* YouTube + file video: fill full slider (cover) */
.zi-cinema-slide.is-video {
    container-type: size;
}

.zi-cinema-slide.is-video .zi-cinema-yt-host,
.zi-cinema-slide.is-video iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: max(100cqw, calc(100cqh * 16 / 9));
    height: max(100cqh, calc(100cqw * 9 / 16));
    transform: translate(-50%, -50%);
    border: 0;
    pointer-events: none;
    max-width: none;
}

@supports not (width: 1cqw) {
    .zi-cinema-slide.is-video .zi-cinema-yt-host,
    .zi-cinema-slide.is-video iframe {
        width: 100%;
        height: 56.25vw;
        min-height: 100%;
        min-width: 177.78vh;
    }
}

/* Blocks YouTube title / share / watch-later UI from receiving clicks */
.zi-cinema-yt-shield {
    position: absolute;
    inset: 0;
    z-index: 3;
    background: transparent;
    cursor: default;
}

/* Side arrows ? larger, brighter white icons */
.zi-cinema-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 68px;
    height: 68px;
    padding: 0;
    margin: 0;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    color: #ffffff;
    font-size: 42px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
    opacity: 1;
    -webkit-appearance: none;
    appearance: none;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35));
}

.zi-cinema-nav i,
.zi-cinema-nav svg {
    color: #ffffff;
    background: transparent !important;
    pointer-events: none;
}

.zi-cinema-nav:hover,
.zi-cinema-nav:focus,
.zi-cinema-nav:active {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    color: #ffffff;
    opacity: 1;
    transform: translateY(-50%) scale(1.08);
}

.zi-cinema-prev { left: 18px; }
.zi-cinema-next { right: 18px; }

/* Idle = white dots; active = long line loading in logo color */
.zi-cinema-progress {
    --zi-progress-color: var(--e-global-color-primary, #1c244b);
    position: absolute;
    left: 50%;
    /* Sit above the About-band overlap so dots stay visible */
    bottom: calc(var(--zi-hero-overlap, 24px) + 16px);
    transform: translateX(-50%);
    z-index: 25;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    column-gap: 0;
    width: auto;
    max-width: calc(100% - 48px);
    pointer-events: auto;
}

.zi-cinema-progress-item {
    flex: 0 0 auto;
    width: 6px;
    height: 20px;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: none !important;
    background: transparent !important;
    box-shadow: none !important;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: width 0.28s ease;
    -webkit-appearance: none;
    appearance: none;
}

.zi-cinema-progress-item + .zi-cinema-progress-item {
    margin-left: 2px !important;
}

.zi-cinema-progress-item.is-active {
    width: 72px;
}

.zi-cinema-progress-item.is-active + .zi-cinema-progress-item,
.zi-cinema-progress-item + .zi-cinema-progress-item.is-active {
    margin-left: 2px !important;
}

/* Inactive: round white dot */
.zi-cinema-progress-track {
    position: relative;
    display: block;
    width: 6px;
    height: 6px;
    border: 0;
    border-radius: 50%;
    background: #ffffff;
    overflow: hidden;
    transition: width 0.28s ease, height 0.28s ease, border-radius 0.28s ease, background 0.2s ease;
}

/* Active: long line + logo-color loading fill */
.zi-cinema-progress-item.is-active .zi-cinema-progress-track {
    width: 100%;
    height: 3px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.35);
}

.zi-cinema-progress-bar {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 0;
    background: transparent;
    border-radius: inherit;
}

.zi-cinema-progress-item.is-active .zi-cinema-progress-bar {
    background: var(--zi-progress-color);
    animation: ziCinemaProgress var(--zi-slide-delay, 5500ms) linear forwards;
}

@keyframes ziCinemaProgress {
    from { width: 0; }
    to { width: 100%; }
}

@media (max-width: 991px) {
    .zi-cinema-slider {
        height: var(--zi-hero-h);
        min-height: 400px;
        max-height: 560px;
    }

    .zi-cinema-nav {
        width: 56px;
        height: 56px;
        font-size: 34px;
    }

    .zi-cinema-prev { left: 10px; }
    .zi-cinema-next { right: 10px; }

    .zi-cinema-progress {
        bottom: calc(var(--zi-hero-overlap, 24px) + 12px);
    }

    .zi-cinema-progress-item {
        width: 6px;
    }

    .zi-cinema-progress-item.is-active {
        width: 56px;
    }
}

@media (max-width: 640px) {
    .zi-cinema-slider {
        height: var(--zi-hero-h);
        min-height: 320px;
        max-height: 480px;
    }
}

/* ===== Stats section ? elegant classic counters ===== */
.zi-stats-section {
    --zi-stats-navy: #1c244b;
    --zi-stats-accent: #c9a227;
    --zi-stats-muted: #6b7280;
    background: transparent;
    padding: 20px 28px 70px;
    text-align: center;
}

.zi-stats-inner {
    max-width: 1080px;
    margin: 0 auto;
    padding: 8px 0 0;
}

.zi-stats-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0 auto 48px;
    max-width: 640px;
}

.zi-stats-header--standalone {
    margin: 20px auto 0;
    padding: 0 24px 4px;
}

@media (max-width: 768px) {
    .zi-stats-header--standalone {
        margin: 18px auto 0;
        padding: 0 16px;
    }

    .zi-stats-header--standalone .zi-stats-subtitle {
        margin-bottom: 6px;
        letter-spacing: 0.16em;
        font-size: 11px;
    }

    .zi-stats-header--standalone .zi-stats-title {
        font-size: 26px;
    }

    .zi-stats-header--standalone .zi-stats-divider {
        margin-top: 12px;
    }
}

.zi-stats-subtitle {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: #2c5dab;
    line-height: 1.4;
}

.zi-stats-title {
    margin: 0;
    font-family: var(--zi-classic-serif);
    font-size: clamp(32px, 3.6vw, 46px);
    font-weight: 600;
    color: var(--zi-stats-navy);
    line-height: 1.15;
    letter-spacing: 0.01em;
}

.zi-stats-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 18px;
}

.zi-stats-divider span {
    display: block;
    border-radius: 50%;
    background: var(--zi-stats-navy);
}

.zi-stats-divider span:nth-child(1),
.zi-stats-divider span:nth-child(3) {
    width: 7px;
    height: 7px;
    opacity: 0.28;
}

.zi-stats-divider span:nth-child(2) {
    width: 11px;
    height: 11px;
    opacity: 1;
}

.zi-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    align-items: stretch;
    background: transparent;
    border: 0;
}

.zi-stat-card {
    position: relative;
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 18px 28px 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    min-height: 0;
    box-shadow: none;
    overflow: visible;
    transition: opacity 0.25s ease;
    animation: zi-stat-fadein 0.55s ease both;
    animation-delay: var(--delay, 0s);
}

.zi-stat-card + .zi-stat-card::after {
    content: "";
    position: absolute;
    left: 0;
    top: 18%;
    bottom: 18%;
    width: 1px;
    background: rgba(28, 36, 75, 0.12);
}

.zi-stat-card::before {
    display: none;
}

.zi-stat-card:hover {
    transform: none;
    background: transparent;
    box-shadow: none;
}

@keyframes zi-stat-fadein {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}

.zi-stat-icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    margin: 0 0 2px;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    line-height: 1;
}

.zi-stat-card:hover .zi-stat-icon-wrap {
    transform: none;
    box-shadow: none;
}

.zi-stat-icon-wrap i {
    font-size: 22px;
    color: var(--zi-stats-accent);
    line-height: 1;
}

.zi-stat-number {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(34px, 3.4vw, 44px);
    font-weight: 700;
    color: var(--zi-stats-navy);
    line-height: 1.05;
    letter-spacing: -0.03em;
    white-space: nowrap;
}

.zi-stat-label {
    margin: 4px 0 0;
    max-width: 160px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--zi-stats-muted);
    line-height: 1.45;
    letter-spacing: 0.01em;
    text-transform: none;
}

@media (max-width: 900px) {
    .zi-stats-section { padding: 12px 20px 52px; }
    .zi-stats-header { margin-bottom: 28px; }
    .zi-stats-grid {
        grid-template-columns: repeat(2, 1fr);
        row-gap: 28px;
    }
    .zi-stat-card {
        padding: 12px 16px;
    }
    .zi-stat-card + .zi-stat-card::after {
        top: 12%;
        bottom: 12%;
    }
    .zi-stat-card:nth-child(2n+1)::after {
        display: none;
    }
}

@media (max-width: 480px) {
    .zi-stats-section { padding: 8px 16px 40px; }
    .zi-stats-subtitle { font-size: 11px; letter-spacing: 0.16em; }
    .zi-stat-card { padding: 10px 12px; }
    .zi-stat-icon-wrap i { font-size: 18px; }
    .zi-stat-number { font-size: 30px; }
    .zi-stat-label { font-size: 12px; max-width: 130px; }
}

/* ===== About band ? classic ivory / navy atmosphere ===== */
.zi-about-band {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(ellipse 65% 48% at 10% 20%, rgba(28, 36, 75, 0.05), transparent 58%),
        radial-gradient(ellipse 50% 42% at 90% 78%, rgba(184, 149, 44, 0.07), transparent 55%),
        linear-gradient(180deg, var(--zi-classic-paper) 0%, var(--zi-classic-ivory) 58%, #f3f1eb 100%);
    padding-bottom: 0;
    z-index: 0;
}

.zi-cinema-hero + .zi-about-band {
    margin-top: calc(-1 * var(--zi-hero-overlap));
    z-index: 3;
    padding-top: 28px;
    box-shadow:
        0 -12px 28px rgba(15, 23, 42, 0.06),
        0 -1px 0 rgba(255, 255, 255, 0.65);
    border-top: 1px solid rgba(28, 36, 75, 0.06);
}

.zi-about-band > *:not([class*="zi-about-band-"]) {
    position: relative;
    z-index: 1;
}

.zi-about-band-dots {
    position: absolute;
    left: -10px;
    top: 80px;
    width: 420px;
    height: 520px;
    background-image: radial-gradient(rgba(28, 36, 75, 0.22) 1.4px, transparent 1.7px);
    background-size: 22px 22px;
    opacity: 0.12;
    transform: scale(0.95);
    transform-origin: left top;
    pointer-events: none;
    z-index: 0;
    animation: zi-about-band-drift 18s ease-in-out infinite alternate;
}

.zi-about-band-diamond {
    position: absolute;
    border: 26px solid rgba(255, 255, 255, 0.75);
    border-radius: 18%;
    transform: rotate(45deg);
    pointer-events: none;
    z-index: 0;
}

.zi-about-band-diamond--1 {
    width: 340px;
    height: 340px;
    right: -130px;
    top: 120px;
    opacity: 0.9;
    animation: zi-about-band-float 14s ease-in-out infinite alternate;
}

.zi-about-band-diamond--2 {
    width: 220px;
    height: 220px;
    left: -90px;
    bottom: 80px;
    border-width: 18px;
    border-color: rgba(184, 149, 44, 0.22);
    opacity: 0.7;
    animation: zi-about-band-float 18s ease-in-out infinite alternate-reverse;
}

.zi-about-band-glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(70px);
    pointer-events: none;
    z-index: 0;
}

.zi-about-band-glow--1 {
    width: 360px;
    height: 360px;
    top: -80px;
    left: 35%;
    background: radial-gradient(circle, rgba(28, 36, 75, 0.08), transparent 70%);
    animation: zi-about-band-pulse 10s ease-in-out infinite alternate;
}

.zi-about-band-glow--2 {
    width: 280px;
    height: 280px;
    bottom: 40px;
    right: 18%;
    background: radial-gradient(circle, rgba(184, 149, 44, 0.1), transparent 70%);
    animation: zi-about-band-pulse 12s ease-in-out infinite alternate-reverse;
}

@keyframes zi-about-band-drift {
    0%   { transform: translate3d(0, 0, 0) scale(0.95); }
    100% { transform: translate3d(12px, -28px, 0) scale(0.95); }
}

@keyframes zi-about-band-float {
    0%   { transform: rotate(45deg) translate(0, 0); }
    100% { transform: rotate(45deg) translate(-14px, 18px); }
}

@keyframes zi-about-band-pulse {
    0%   { opacity: 0.55; transform: scale(1); }
    100% { opacity: 1; transform: scale(1.12); }
}

.zi-about-band .zi-stats-header--standalone {
    margin-top: 12px;
    margin-bottom: 28px;
    max-width: var(--zi-content-max, 1200px);
    width: 100%;
    box-sizing: border-box;
    padding-left: var(--zi-content-pad, 24px);
    padding-right: var(--zi-content-pad, 24px);
}

.zi-about-band .zi-stats-section {
    background: transparent;
}

.zi-about-band .elementor-element-781d65e7 {
    background: transparent !important;
}

@media (prefers-reduced-motion: reduce) {
    .zi-about-band-dots,
    .zi-about-band-diamond,
    .zi-about-band-glow {
        animation: none;
    }
}

@media (max-width: 768px) {
    .zi-about-band-diamond--1 {
        width: 200px;
        height: 200px;
        border-width: 14px;
        right: -80px;
        top: 60px;
    }

    .zi-about-band-diamond--2 {
        width: 140px;
        height: 140px;
        border-width: 12px;
        left: -60px;
    }

    .zi-about-band-dots {
        width: 240px;
        height: 280px;
        opacity: 0.14;
        top: 40px;
    }
}

/* ===== About Section (One of the leading enterprises) ===== */
.elementor-2 .elementor-element-781d65e7 {
    background: transparent !important;
    padding: 0 !important;
}

.elementor-2 .elementor-element-781d65e7 > .e-con-inner,
.zi-about-band .elementor-element-781d65e7 > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 28px !important;
    max-width: var(--zi-content-max, 1200px) !important;
    width: 100% !important;
    padding-top: 8px !important;
}

/* Left ? image column (larger visual block) */
.elementor-2 .elementor-element-6c845c86 {
    flex: 0 0 56% !important;
    max-width: 56% !important;
    position: relative !important;
    padding: 8px 0 12px !important;
}

/* Wrapper */
.zi-about-img-wrap {
    position: relative;
    width: 100%;
    border-radius: 28px;
    background: linear-gradient(145deg, #060d1f 0%, #0d1f3c 40%, #130824 100%);
    overflow: visible;
    padding: 48px 44px;
    box-shadow: 0 40px 100px rgba(0,0,0,0.4);
    min-height: 520px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.zi-about-img-wrap > .zi-about-canvas {
    border-radius: 28px;
    overflow: hidden;
}

/* Particle canvas fills the background */
.zi-about-canvas {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    z-index: 0;
    opacity: 0.7;
}

/* Glowing orbs */
.zi-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(70px);
    pointer-events: none;
    z-index: 0;
}

.zi-orb-1 {
    width: 280px; height: 280px;
    background: radial-gradient(circle, rgba(37,99,235,0.5), transparent 70%);
    top: -80px; left: -60px;
    animation: zi-orb-move 9s ease-in-out infinite alternate;
}

.zi-orb-2 {
    width: 220px; height: 220px;
    background: radial-gradient(circle, rgba(124,58,237,0.45), transparent 70%);
    bottom: -60px; right: -40px;
    animation: zi-orb-move 11s ease-in-out infinite alternate-reverse;
}

.zi-orb-3 {
    width: 180px; height: 180px;
    background: radial-gradient(circle, rgba(14,165,233,0.35), transparent 70%);
    top: 50%; left: 50%;
    transform: translate(-50%,-50%);
    animation: zi-orb-move 7s ease-in-out infinite alternate;
    animation-delay: 2s;
}

@keyframes zi-orb-move {
    0%   { transform: translate(0, 0) scale(1);    }
    50%  { transform: translate(24px, -18px) scale(1.12); }
    100% { transform: translate(-16px, 20px) scale(0.92); }
}

/* Corner accents */
.zi-corner {
    position: absolute;
    width: 34px;
    height: 34px;
    z-index: 2;
    pointer-events: none;
}

.zi-corner-tl { top: 14px;    left: 14px;  border-top: 2px solid rgba(56,189,248,0.8);  border-left: 2px solid rgba(56,189,248,0.8);  border-radius: 5px 0 0 0; }
.zi-corner-tr { top: 14px;    right: 14px; border-top: 2px solid rgba(167,139,250,0.8); border-right: 2px solid rgba(167,139,250,0.8); border-radius: 0 5px 0 0; }
.zi-corner-bl { bottom: 14px; left: 14px;  border-bottom: 2px solid rgba(167,139,250,0.8); border-left: 2px solid rgba(167,139,250,0.8); border-radius: 0 0 0 5px; }
.zi-corner-br { bottom: 14px; right: 14px; border-bottom: 2px solid rgba(56,189,248,0.8);  border-right: 2px solid rgba(56,189,248,0.8);  border-radius: 0 0 5px 0; }

/* Main photo */
.zi-about-photo {
    position: relative;
    z-index: 2;
    width: 100%;
    animation: zi-float 5s ease-in-out infinite;
}

.zi-photo-inner {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    box-shadow:
        0 0 0 1px rgba(56,189,248,0.3),
        0 0 40px rgba(37,99,235,0.3),
        0 30px 80px rgba(0,0,0,0.5);
}

.zi-photo-inner img {
    width: 100% !important;
    height: auto !important;
    min-height: 420px;
    max-height: 520px;
    object-fit: cover !important;
    object-position: center top !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    border-radius: 18px !important;
}

/* Shine sweep on hover */
.zi-photo-shine {
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg,
        transparent 30%,
        rgba(255,255,255,0.07) 50%,
        transparent 70%);
    background-size: 200% 100%;
    animation: zi-shine 4s ease-in-out infinite;
}

@keyframes zi-shine {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

@keyframes zi-float {
    0%, 100% { transform: translateY(0px);   }
    50%       { transform: translateY(-9px);  }
}

/* Floating badges */
.zi-badge {
    position: absolute;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: rgba(255,255,255,0.97);
    backdrop-filter: blur(12px);
    border-radius: 18px;
    padding: 14px 18px 12px;
    box-shadow:
        0 0 0 1px rgba(255,255,255,0.2),
        0 12px 40px rgba(0,0,0,0.25);
    min-width: 92px;
    line-height: 1;
    animation: zi-badge-bob 4s ease-in-out infinite;
}

.zi-badge-1 { top: 14%;    left: -22px;  animation-delay: 0s;   }
.zi-badge-2 { top: 52%;    right: -22px; animation-delay: 1.6s; }
.zi-badge-3 { bottom: 8%;  left: 12%;    animation-delay: 3.2s; }
.zi-badge-4 { bottom: 8%;  right: 12%;   animation-delay: 0.8s; }

.zi-badge-icon {
    font-size: 22px;
    margin-bottom: 6px;
}

.zi-badge-num {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: #1c244b;
}

.zi-badge-num sup {
    font-size: 12px;
    font-weight: 700;
    color: #2563eb;
}

.zi-badge-lbl {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

@keyframes zi-badge-bob {
    0%, 100% { transform: translateY(0);    }
    50%       { transform: translateY(-7px); }
}

/* Right ? water-industry classic copy column */
.elementor-2 .elementor-element-3e06a7d5.zi-about-copy {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 0 !important;
    padding: 12px 0 16px !important;
}

.zi-about-copy-inner {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: none;
    padding: 36px 36px 36px 40px;
    background: linear-gradient(180deg, rgba(251, 250, 247, 0.95) 0%, rgba(255, 255, 255, 0.98) 55%, #ffffff 100%);
    border: 1px solid rgba(28, 36, 75, 0.1);
    border-left: 3px solid #a8acc1;
    box-shadow: 0 18px 48px rgba(28, 36, 75, 0.05);
}

.zi-about-copy-inner::after {
    content: '';
    position: absolute;
    z-index: 0;
    top: 18px;
    right: 18px;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 35%, rgba(184, 149, 44, 0.12), transparent 55%),
        radial-gradient(circle at 70% 70%, rgba(28, 36, 75, 0.06), transparent 60%);
    pointer-events: none;
}

.zi-about-copy-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--zi-classic-gold);
}

.zi-about-copy-drop {
    width: 9px;
    height: 13px;
    border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
    background: #2c5dab;
    box-shadow: 0 2px 8px rgba(44, 93, 171, 0.2);
    flex-shrink: 0;
}

.zi-about-copy-title {
    margin: 0 0 16px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(28px, 3vw, 38px);
    font-weight: 600;
    line-height: 1.22;
    color: var(--zi-classic-navy);
    letter-spacing: 0.01em;
}

.zi-about-copy-rule {
    width: 56px;
    height: 2px;
    margin: 0 0 20px;
    background: linear-gradient(90deg, var(--zi-classic-navy) 0%, var(--zi-classic-gold) 100%);
}

.zi-about-copy-text {
    position: relative;
    z-index: 1;
    font-family: var(--zi-classic-sans);
    font-size: 15.5px;
    font-weight: 400;
    line-height: 1.9;
    color: #4a5166;
}

.zi-about-copy-text p {
    margin: 0 0 0.9em;
}

.zi-about-copy-text p:last-child {
    margin-bottom: 0;
}

.zi-about-copy-btn {
    position: relative;
    z-index: 2;
    box-sizing: border-box !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-end;
    gap: 8px !important;
    margin-top: 26px;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 36px !important;
    max-height: 36px !important;
    padding: 8px 14px !important;
    line-height: 1 !important;
    border: 0 !important;
    background: transparent !important;
    background-image: linear-gradient(180deg, #2c5dab 0%, #5187DD 100%) !important;
    color: #fff !important;
    font-family: var(--zi-classic-sans);
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    text-transform: none !important;
    text-decoration: none !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    transform: none !important;
    scale: 1 !important;
    opacity: 1 !important;
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
    transition: background-image 0.15s ease !important;
}

.zi-about-copy-btn span,
.zi-about-copy-btn i {
    font-size: inherit !important;
    line-height: inherit !important;
    transform: none !important;
}

.zi-about-copy-btn i {
    flex-shrink: 0;
    width: 12px;
    font-size: 11px !important;
    text-align: center;
    pointer-events: none;
}

.zi-about-copy-btn:hover,
.zi-about-copy-btn:focus,
.zi-about-copy-btn:focus-visible,
.zi-about-copy-btn:active {
    background: transparent !important;
    background-image: linear-gradient(180deg, var(--e-global-color-primary, #2C5DAB) 0%, #2C5DAB 100%) !important;
    border: 0 !important;
    color: #fff !important;
    padding: 8px 14px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    line-height: 1 !important;
    min-height: 36px !important;
    max-height: 36px !important;
    transform: none !important;
    scale: 1 !important;
    opacity: 1 !important;
    box-shadow: none !important;
}

/* Stop Elementor scroll animation from re-triggering transforms on the copy column */
.elementor-2 .elementor-element-3e06a7d5.zi-about-copy,
.elementor-2 .elementor-element-3e06a7d5.zi-about-copy.animated,
.elementor-2 .elementor-element-3e06a7d5.zi-about-copy.fadeInRight,
.elementor-2 .elementor-element-3e06a7d5.zi-about-copy.elementor-invisible {
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Hide legacy elementor button styles if any remain */
.elementor-2 .elementor-element-53a5b91 {
    display: none !important;
}

/* Tablet/Mobile: stack about section vertically */
@media (max-width: 1024px) {
    .elementor-2 .elementor-element-781d65e7 > .e-con-inner {
        flex-direction: column !important;
        gap: 28px !important;
    }

    .elementor-2 .elementor-element-6c845c86,
    .elementor-2 .elementor-element-3e06a7d5 {
        flex: 1 1 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    .zi-about-copy-inner {
        max-width: none;
        padding: 28px 24px;
    }

    .zi-about-copy-title {
        font-size: 28px;
    }
}

@media (max-width: 767px) {
    .elementor-2 .elementor-element-3e06a7d5.zi-about-copy {
        padding: 8px 0 0 !important;
    }

    .zi-about-copy-title {
        font-size: 24px;
    }

    .zi-about-copy-eyebrow {
        letter-spacing: 0.14em;
        font-size: 10px;
    }
}

/* ===== Companies Profile ? soft water band (same palette, different motif) ===== */
.zi-cp2-section {
    --zi-cp2-navy: #1c244b;
    --zi-cp2-muted: #5a6275;
    --zi-cp2-line: #e8e6e0;
    --zi-cp2-blue: #1c244b;
    --zi-cp2-gold: #b8952c;
    position: relative;
    isolation: isolate;
    padding: 96px 0 88px;
    /* Matches About band palette (paper / ivory / soft navy-gold washes) */
    background:
        radial-gradient(ellipse 65% 48% at 10% 14%, rgba(28, 36, 75, 0.045), transparent 58%),
        radial-gradient(ellipse 50% 42% at 90% 78%, rgba(184, 149, 44, 0.065), transparent 55%),
        linear-gradient(180deg,
            #f3f1eb 0%,
            var(--zi-classic-ivory, #f6f4ef) 26%,
            var(--zi-classic-paper, #fbfaf7) 68%,
            var(--zi-classic-paper, #fbfaf7) 100%);
    overflow: hidden;
}

.home .zi-cp2-section,
.zi-about-band + .zi-cp2-section {
    background:
        radial-gradient(ellipse 65% 48% at 10% 14%, rgba(28, 36, 75, 0.045), transparent 58%),
        radial-gradient(ellipse 50% 42% at 90% 78%, rgba(184, 149, 44, 0.065), transparent 55%),
        linear-gradient(180deg,
            #f3f1eb 0%,
            var(--zi-classic-ivory, #f6f4ef) 26%,
            var(--zi-classic-paper, #fbfaf7) 68%,
            var(--zi-classic-paper, #fbfaf7) 100%);
}

.zi-cp2-atmosphere {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 55% 45% at 50% -5%, rgba(28, 36, 75, 0.05), transparent 62%),
        radial-gradient(ellipse 40% 35% at 12% 60%, rgba(184, 149, 44, 0.06), transparent 70%),
        radial-gradient(ellipse 35% 30% at 90% 55%, rgba(28, 36, 75, 0.04), transparent 68%);
}

.zi-cp2-ripple {
    position: absolute;
    z-index: 0;
    pointer-events: none;
    border: 1px solid rgba(28, 36, 75, 0.08);
    border-radius: 50%;
}

.zi-cp2-ripple--1 {
    width: 520px;
    height: 220px;
    left: 50%;
    top: 28%;
    margin-left: -260px;
    border-color: rgba(28, 36, 75, 0.08);
    animation: zi-cp2-ripple-pulse 10s ease-in-out infinite;
}

.zi-cp2-ripple--2 {
    width: 740px;
    height: 300px;
    left: 50%;
    top: 22%;
    margin-left: -370px;
    border-color: rgba(184, 149, 44, 0.12);
    animation: zi-cp2-ripple-pulse 10s ease-in-out 1.2s infinite;
}

.zi-cp2-ripple--3 {
    width: 960px;
    height: 380px;
    left: 50%;
    top: 16%;
    margin-left: -480px;
    border-color: rgba(28, 36, 75, 0.06);
    animation: zi-cp2-ripple-pulse 10s ease-in-out 2.4s infinite;
}

.zi-cp2-flow {
    position: absolute;
    left: -10%;
    right: -10%;
    height: 120px;
    z-index: 0;
    pointer-events: none;
    opacity: 0.4;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(28, 36, 75, 0.05) 20%,
        rgba(184, 149, 44, 0.07) 50%,
        rgba(28, 36, 75, 0.04) 80%,
        transparent 100%
    );
    filter: blur(18px);
}

.zi-cp2-flow--1 {
    top: 38%;
    animation: zi-cp2-flow-drift 18s ease-in-out infinite alternate;
}

.zi-cp2-flow--2 {
    bottom: 24%;
    opacity: 0.4;
    animation: zi-cp2-flow-drift 22s ease-in-out infinite alternate-reverse;
}

.zi-cp2-wave-svg {
    position: absolute;
    left: 0;
    width: 100%;
    z-index: 0;
    pointer-events: none;
    display: block;
}

.zi-cp2-wave-svg--top {
    top: 0;
    height: 90px;
    opacity: 0.9;
}

.zi-cp2-wave-svg--bottom {
    bottom: 0;
    height: 110px;
    opacity: 0.95;
}

@keyframes zi-cp2-ripple-pulse {
    0%, 100% { opacity: 0.25; transform: scaleX(1) scaleY(1); }
    50%      { opacity: 0.7; transform: scaleX(1.04) scaleY(1.08); }
}

@keyframes zi-cp2-flow-drift {
    0%   { transform: translateX(-20px); }
    100% { transform: translateX(24px); }
}

.zi-cp2-inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 40px;
    position: relative;
    z-index: 2;
}

/* Header */
.zi-cp2-header {
    text-align: center;
    margin-bottom: 56px;
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}

.zi-cp2-eyebrow {
    margin: 0 0 14px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--zi-cp2-gold, #b8952c);
}

.zi-cp2-title {
    font-family: var(--zi-classic-serif);
    font-size: clamp(32px, 3.8vw, 48px);
    font-weight: 600;
    color: var(--zi-cp2-navy);
    margin: 0 0 18px;
    line-height: 1.15;
    letter-spacing: 0.01em;
}

.zi-cp2-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 22px;
}

.zi-cp2-divider span {
    width: 6px;
    height: 6px;
    border-radius: 0;
    background: var(--zi-classic-navy, #1c244b);
    opacity: 0.35;
    transform: rotate(45deg);
}

.zi-cp2-divider span:nth-child(2) {
    opacity: 1;
    width: 9px;
    height: 9px;
    background: #2c5dab;
}

.zi-cp2-intro {
    margin: 0 auto 26px;
    max-width: 680px;
}

.zi-cp2-intro p {
    margin: 0 0 12px;
    font-family: var(--zi-classic-sans);
    font-size: 15.5px;
    line-height: 1.9;
    color: var(--zi-cp2-muted);
}

.zi-cp2-intro p:last-child {
    margin-bottom: 0;
}

.zi-cp2-intro p:first-child {
    color: #4a5166;
}

.zi-cp2-pillars {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.zi-cp2-pillars li {
    padding: 8px 14px;
    border: 1px solid rgba(13, 71, 161, 0.12);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.78);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--zi-cp2-navy);
    box-shadow: 0 6px 16px rgba(13, 71, 161, 0.05);
}

.zi-cp2-subtitle {
    margin: 0;
}

.zi-cp2-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 24px !important;
}

@media (prefers-reduced-motion: reduce) {
    .zi-cp2-ripple,
    .zi-cp2-flow {
        animation: none !important;
    }
}

@media (max-width: 900px) {
    .zi-cp2-ripple--2,
    .zi-cp2-ripple--3 {
        display: none;
    }

    .zi-cp2-wave-svg--top {
        height: 56px;
    }

    .zi-cp2-wave-svg--bottom {
        height: 72px;
    }
}

.zi-cp2-card {
    position: relative;
    display: flex !important;
    flex-direction: column !important;
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 8px 22px rgba(28, 36, 75, 0.04);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    transition: transform 0.3s ease,
                box-shadow 0.3s ease,
                border-color 0.3s ease;
}

/* Left accent â€” brand blue */
.zi-cp2-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: #2c5dab;
    z-index: 3;
}

.zi-cp2-card::after {
    display: none;
}

.zi-cp2-card:hover {
    transform: translateY(-3px);
    border-color: rgba(28, 36, 75, 0.18);
    box-shadow: 0 14px 28px rgba(28, 36, 75, 0.08);
}

/* Shine disabled â€” cleaner look */
.zi-cp2-shine {
    display: none;
}

.zi-cp2-card:hover .zi-cp2-shine { left: 150%; }

/* Card top: number + line */
.zi-cp2-card-top {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 22px 22px 0 24px;
    position: relative;
    z-index: 2;
}

.zi-cp2-num {
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #2c5dab;
    opacity: 1;
}

.zi-cp2-line {
    flex: 1;
    height: 1px;
    background: rgba(28, 36, 75, 0.1);
    opacity: 1;
    transition: none;
}

.zi-cp2-card:hover .zi-cp2-line { opacity: 1; }

.zi-cp2-sector {
    flex-shrink: 0;
    padding: 4px 0 4px 0;
    border-radius: 0;
    background: transparent;
    border: none;
    font-family: var(--zi-classic-sans);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #5a6275;
}

.zi-cp2-card:hover .zi-cp2-sector {
    background: transparent;
    border-color: transparent;
    color: var(--zi-cp2-navy);
}

/* Logo â€” quiet circle */
.zi-cp2-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px 22px 10px;
    position: relative;
    z-index: 2;
}

.zi-cp2-logo-ring {
    position: relative;
    width: 108px;
    height: 108px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px;
    background: #faf9f6;
    border: 1px solid rgba(28, 36, 75, 0.1);
    box-shadow: inset 0 0 0 1px #2c5dab;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.zi-cp2-logo-ring::before {
    display: none;
}

.zi-cp2-logo-ring > * {
    position: relative;
    z-index: 1;
}

.zi-cp2-card:hover .zi-cp2-logo-ring {
    transform: none;
    border-color: rgba(28, 36, 75, 0.16);
    box-shadow: inset 0 0 0 1px #2c5dab;
}

.zi-cp2-logo-ring img {
    max-width: 76% !important;
    max-height: 52px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
}

.zi-cp2-logo-fallback {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
}

.zi-cp2-logo-fallback svg { width: 26px; height: 26px; stroke: #8a7355; opacity: 0.7; }

/* Body */
.zi-cp2-body {
    padding: 6px 22px 16px 24px;
    flex: 1;
    position: relative;
    z-index: 2;
    text-align: center;
}

.zi-cp2-name {
    font-family: var(--zi-classic-serif);
    font-size: clamp(17px, 1.5vw, 20px);
    font-weight: 600;
    color: var(--zi-cp2-navy);
    margin: 0 0 8px;
    line-height: 1.3;
    letter-spacing: 0.01em;
}

.zi-cp2-summary {
    margin: 0 0 8px;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.55;
    color: #1c244b;
}

.zi-cp2-about {
    margin: 0 0 12px;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    line-height: 1.7;
    color: #5a6275;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.zi-cp2-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.zi-cp2-tags li {
    padding: 4px 9px;
    border-radius: 2px;
    background: rgba(28, 36, 75, 0.04);
    border: 1px solid rgba(28, 36, 75, 0.08);
    font-family: var(--zi-classic-sans);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: #5a6275;
}

.zi-cp2-desc {
    font-size: 13px;
    color: #64748b;
    line-height: 1.7;
    margin: 0;
}

/* Button */
.zi-cp2-actions {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    margin: 0 22px 22px 24px;
    position: relative;
    z-index: 2;
}

.zi-cp2-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 2px;
    border: 1px solid rgba(184, 149, 44, 0.55);
    color: #b8952c !important;
    background: rgba(184, 149, 44, 0.1);
    text-decoration: none !important;
    animation: zi-cp2-download-blink 1.6s ease-in-out infinite;
    transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}

.zi-cp2-download svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

.zi-cp2-download:hover {
    background: #1c244b;
    border-color: #1c244b;
    color: #b8952c !important;
    box-shadow: 0 6px 14px rgba(28, 36, 75, 0.18);
    animation: none;
}

@keyframes zi-cp2-download-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.45; }
}

@media (prefers-reduced-motion: reduce) {
    .zi-cp2-download { animation: none; }
}

.zi-cp2-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 11px 0;
    border-radius: 2px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none !important;
    border: 1px solid #1c244b;
    color: #1c244b !important;
    background: rgba(255, 255, 255, 0.65);
    box-shadow: none;
    transition:
        background 0.25s ease,
        border-color 0.25s ease,
        color 0.25s ease,
        box-shadow 0.25s ease;
    position: relative;
    z-index: 2;
}

.zi-cp2-btn svg {
    width: 14px;
    height: 14px;
    transition: transform 0.3s ease;
}

.zi-cp2-btn:hover {
    background: #2c5dab !important;
    border-color: #2c5dab !important;
    color: #fff !important;
    box-shadow: 0 10px 22px rgba(44, 93, 171, 0.22);
}

.zi-cp2-btn:hover svg {
    transform: translateX(4px);
}

.zi-cp2-btn:focus-visible {
    outline: 2px solid #2c5dab;
    outline-offset: 2px;
}

.zi-cp2-btn--muted {
    opacity: 0.55;
    cursor: default;
    border-color: rgba(28, 36, 75, 0.2);
    color: #5a6275 !important;
    background: var(--zi-classic-paper, #fbfaf7);
    box-shadow: none;
}

.zi-cp2-btn--muted:hover {
    background: var(--zi-classic-paper, #fbfaf7);
    border-color: rgba(28, 36, 75, 0.2);
    color: #5a6275 !important;
    box-shadow: none;
    transform: none;
}

.zi-cp2-btn--muted:hover svg {
    transform: none;
}

/* Responsive */
@media (max-width: 1024px) {
    .zi-cp2-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 640px) {
    .zi-cp2-inner { padding: 0 20px; }
    .zi-cp2-grid { grid-template-columns: 1fr !important; }
    .zi-cp2-section { padding: 70px 0; }
    .zi-cp2-intro p { font-size: 14.5px; }
    .zi-cp2-pillars { gap: 8px; }
}

/* ===== Sister Concerns ? classic professional ===== */
.zi-co-section {
    --zi-co-navy: #1c244b;
    --zi-co-muted: #5b6472;
    --zi-co-line: #e4e8ef;
    --zi-co-accent: #2563eb;
    position: relative;
    padding: 88px 40px 96px;
    background:
        linear-gradient(180deg, #f7f9fc 0%, #ffffff 45%, #f4f6fa 100%);
    overflow: hidden;
    color: var(--zi-co-navy);
}

.zi-co-glow {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 70% 40% at 100% 0%, rgba(28, 36, 75, 0.04), transparent 55%),
        radial-gradient(ellipse 50% 35% at 0% 100%, rgba(37, 99, 235, 0.04), transparent 50%);
    pointer-events: none;
}

.zi-co-inner {
    position: relative;
    z-index: 1;
    max-width: 1120px;
    margin: 0 auto;
}

.zi-co-head {
    display: grid;
    grid-template-columns: 1.4fr 0.8fr;
    gap: 36px 48px;
    align-items: end;
    margin-bottom: 40px;
    padding-bottom: 32px;
    border-bottom: 1px solid var(--zi-co-line);
}

.zi-co-eyebrow {
    margin: 0 0 12px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--zi-co-accent);
}

.zi-co-title {
    margin: 0 0 14px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(30px, 3.4vw, 42px);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.03em;
    color: var(--zi-co-navy);
}

.zi-co-lead {
    margin: 0;
    max-width: 540px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.75;
    color: var(--zi-co-muted);
}

.zi-co-head-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 18px;
}

.zi-co-stat {
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.zi-co-stat strong {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 48px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.04em;
    color: var(--zi-co-navy);
}

.zi-co-stat span {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #8b93a7;
}

.zi-co-sectors {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.zi-co-sectors li {
    padding: 6px 12px;
    border: 1px solid var(--zi-co-line);
    background: #ffffff;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--zi-co-navy);
}

.zi-co-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.zi-co-item {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 28px 30px 26px;
    background: #ffffff;
    border: 1px solid var(--zi-co-line);
    border-left: 3px solid var(--zi-co-navy);
    box-shadow: 0 8px 28px rgba(28, 36, 75, 0.05);
    transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.zi-co-item:hover {
    border-color: #cfd6e4;
    border-left-color: var(--zi-co-accent);
    box-shadow: 0 14px 36px rgba(28, 36, 75, 0.09);
    transform: translateY(-2px);
}

.zi-co-item-top {
    display: grid;
    grid-template-columns: 64px 110px 1fr auto;
    gap: 20px;
    align-items: center;
}

.zi-co-num {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 34px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.04em;
    color: #c5cddc;
    transition: color 0.25s ease;
}

.zi-co-item:hover .zi-co-num {
    color: var(--zi-co-accent);
}

.zi-co-logo {
    width: 110px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 12px;
    background: #f8fafc;
    border: 1px solid var(--zi-co-line);
    box-shadow: none;
}

.zi-co-logo img {
    max-width: 100%;
    max-height: 48px;
    object-fit: contain;
}

.zi-co-logo-fallback {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--zi-co-navy);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.zi-co-identity {
    min-width: 0;
    text-align: left;
}

.zi-co-sector {
    display: inline-block;
    margin-bottom: 6px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--zi-co-accent);
}

.zi-co-name {
    margin: 0 0 6px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--zi-co-navy);
}

.zi-co-summary {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--zi-co-muted);
}

.zi-co-about {
    margin: 0;
    padding: 18px 0 0;
    border-top: 1px solid var(--zi-co-line);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.8;
    color: #3f4758;
    text-align: left;
}

.zi-co-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.zi-co-tags li {
    padding: 7px 12px;
    background: #f4f7fb;
    border: 1px solid var(--zi-co-line);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: var(--zi-co-navy);
}

.zi-co-action {
    white-space: nowrap;
}

.zi-co-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: var(--zi-co-navy);
    color: #ffffff !important;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none !important;
    transition: background 0.2s ease, color 0.2s ease;
}

.zi-co-cta i {
    font-size: 11px;
    transition: transform 0.2s ease;
}

.zi-co-cta:hover {
    background: var(--zi-co-accent);
    color: #ffffff !important;
}

.zi-co-cta:hover i {
    transform: translateX(3px);
}

.zi-co-soon {
    display: inline-block;
    padding: 10px 12px;
    border: 1px dashed #c5cddc;
    background: #f8fafc;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #8b93a7;
}

@media (max-width: 991px) {
    .zi-co-section { padding: 72px 22px 80px; }
    .zi-co-head {
        grid-template-columns: 1fr;
        gap: 24px;
        align-items: start;
    }
    .zi-co-head-meta { align-items: flex-start; }
    .zi-co-sectors { justify-content: flex-start; }
    .zi-co-item-top {
        grid-template-columns: 56px 96px 1fr;
        grid-template-areas:
            "num logo identity"
            "num logo action";
        gap: 14px 16px;
    }
    .zi-co-num { grid-area: num; }
    .zi-co-logo { grid-area: logo; width: 96px; height: 64px; }
    .zi-co-identity { grid-area: identity; }
    .zi-co-action { grid-area: action; justify-self: start; }
}

@media (max-width: 640px) {
    .zi-co-item { padding: 22px 18px; }
    .zi-co-item-top {
        grid-template-columns: 48px 1fr;
        grid-template-areas:
            "num logo"
            "num identity"
            "num action";
    }
    .zi-co-num { font-size: 28px; align-self: start; padding-top: 4px; }
    .zi-co-logo { width: 92px; height: 60px; }
    .zi-co-name { font-size: 18px; }
    .zi-co-about { font-size: 14px; line-height: 1.75; }
}

/* ===== Brands + Partners ? nested blocks inside Companies Profile band ===== */
.zi-cp2-section .zi-cp2-block {
    --zi-logo-navy: #1c244b;
    position: relative;
    z-index: 2;
}

.zi-cp2-section .zi-brands-band {
    margin-top: 56px;
    padding-top: 48px;
}

.zi-cp2-section .zi-partners-band {
    margin-top: 40px;
    padding-top: 40px;
    padding-bottom: 8px;
}

/* Our Concerns ? one continuous classic water band */
.zi-concerns-unified {
    padding-bottom: 72px;
}

.zi-concerns-unified .zi-brands-band {
    margin-top: 64px;
    padding-top: 48px;
}

.zi-concerns-unified .zi-partners-band {
    margin-top: 48px;
    padding-top: 40px;
    padding-bottom: 0;
}

.zi-concerns-unified .zi-why-section--embedded {
    margin-top: 56px;
    padding: 56px 0 8px;
    background: transparent;
}

.zi-concerns-unified .zi-why-section--embedded::before {
    display: none;
}

.zi-brands-header .zi-cp2-divider,
.zi-partners-header .zi-cp2-divider {
    margin: 0 auto;
}

.zi-brands-inner,
.zi-partners-inner {
    position: relative;
    z-index: 2;
    max-width: var(--zi-content-max, 1200px);
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--zi-content-pad, 40px);
    box-sizing: border-box;
}

.zi-brands-header,
.zi-partners-header {
    text-align: center;
    margin-bottom: 32px;
}

/* Classic logo-band headers (homepage + concerns) */
.zi-brands-eyebrow,
.zi-partners-eyebrow {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}

.zi-brands-title,
.zi-partners-title {
    margin: 0 0 16px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(28px, 3.2vw, 40px);
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    letter-spacing: 0.01em;
    line-height: 1.15;
}

.zi-logo-band-rule {
    display: block;
    width: 48px;
    height: 2px;
    margin: 0 auto;
    background: linear-gradient(90deg, transparent, var(--zi-classic-gold, #b8952c) 40%, var(--zi-classic-navy, #1c244b) 100%);
    border-radius: 2px;
}

.zi-brands-band .zi-marquee::before,
.zi-partners-band .zi-marquee::before {
    background: radial-gradient(ellipse 70% 80% at 50% 50%, rgba(184, 149, 44, 0.14), transparent 72%);
}

.zi-brands-band .zi-marquee-item,
.zi-partners-band .zi-marquee-item {
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(44, 93, 171, 0.08);
    border-radius: 4px;
    box-shadow: 0 6px 18px rgba(28, 36, 75, 0.04);
}

.zi-brands-band .zi-marquee-item:hover,
.zi-brands-band .zi-marquee-item.is-center,
.zi-partners-band .zi-marquee-item:hover,
.zi-partners-band .zi-marquee-item.is-center {
    border-color: rgba(44, 93, 171, 0.45);
    box-shadow: 0 10px 24px rgba(28, 36, 75, 0.1);
    background: #ffffff;
}

.zi-brands-band .zi-marquee {
    position: relative;
    width: 100%;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
}

.zi-brands-band .zi-marquee::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 200px;
    margin-left: -100px;
    z-index: 0;
    pointer-events: none;
    background: radial-gradient(ellipse 70% 80% at 50% 50%, rgba(184, 149, 44, 0.14), transparent 72%);
}

.zi-brands-band .zi-marquee-track {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    gap: 16px;
    animation: zi-marquee-scroll 28s linear infinite;
    will-change: transform;
}

.zi-brands-band .zi-marquee:hover .zi-marquee-track {
    animation-play-state: paused;
}

.zi-brands-band .zi-marquee-item {
    flex: 0 0 auto;
    width: 176px;
    height: 94px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px 18px;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(44, 93, 171, 0.08);
    border-radius: 4px;
    box-shadow: 0 6px 18px rgba(28, 36, 75, 0.04);
    transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

.zi-brands-band .zi-marquee-item:hover,
.zi-brands-band .zi-marquee-item.is-center {
    border-color: rgba(44, 93, 171, 0.45);
    box-shadow: 0 10px 24px rgba(28, 36, 75, 0.1);
    background: #ffffff;
}

.zi-brands-band .zi-marquee-item img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 54px !important;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.78;
    transition: filter 0.3s ease, opacity 0.3s ease;
}

.zi-brands-band .zi-marquee-item a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-decoration: none !important;
}

.zi-brands-band .zi-marquee-item:hover img,
.zi-brands-band .zi-marquee-item.is-center img {
    filter: grayscale(0%);
    opacity: 1;
}

.zi-partners-band .zi-marquee {
    position: relative;
    width: 100%;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
}

.zi-partners-band .zi-marquee::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 200px;
    margin-left: -100px;
    z-index: 0;
    pointer-events: none;
    background: radial-gradient(ellipse 70% 80% at 50% 50%, rgba(184, 149, 44, 0.14), transparent 72%);
}

.zi-partners-band .zi-marquee-track {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    gap: 16px;
    animation: zi-marquee-scroll 16s linear infinite;
    will-change: transform;
}

.zi-partners-band .zi-marquee:hover .zi-marquee-track {
    animation-play-state: paused;
}

.zi-partners-band .zi-marquee-item {
    flex: 0 0 auto;
    width: 176px;
    height: 94px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px 18px;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(44, 93, 171, 0.08);
    border-radius: 4px;
    box-shadow: 0 6px 18px rgba(28, 36, 75, 0.04);
    transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

.zi-partners-band .zi-marquee-item:hover,
.zi-partners-band .zi-marquee-item.is-center {
    border-color: rgba(44, 93, 171, 0.45);
    box-shadow: 0 10px 24px rgba(28, 36, 75, 0.1);
    background: #ffffff;
}

.zi-partners-band .zi-marquee-item img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 54px !important;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.78;
    transition: filter 0.3s ease, opacity 0.3s ease;
}

.zi-partners-band .zi-marquee-item:hover img,
.zi-partners-band .zi-marquee-item.is-center img {
    filter: grayscale(0%);
    opacity: 1;
}

/* International Partnership — fixed grid (no marquee) */
.zi-partners-band--static .zi-partners-static {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
}

.zi-partners-band--static .zi-page-partners-grid {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 18px;
}

.zi-partners-band--static .zi-page-partner-item {
    min-height: 94px;
    background: rgba(255, 255, 255, 0.94);
    border-radius: 4px;
    box-shadow: 0 6px 18px rgba(28, 36, 75, 0.04);
    transition: box-shadow 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}

.zi-partners-band--static .zi-page-partner-item img {
    filter: none;
    opacity: 1;
}

.zi-partners-band--static .zi-page-partner-item:hover {
    border-color: rgba(44, 93, 171, 0.35);
    box-shadow: 0 10px 24px rgba(28, 36, 75, 0.1);
    transform: translateY(-2px);
}

.zi-partners-band--static .zi-page-partner-item:hover img {
    filter: none;
    opacity: 1;
}

@media (max-width: 640px) {
    .zi-brands-inner,
    .zi-partners-inner {
        padding-left: var(--zi-content-pad, 20px);
        padding-right: var(--zi-content-pad, 20px);
    }

    .zi-cp2-section .zi-brands-band {
        margin-top: 40px;
        padding-top: 36px;
    }

    .zi-cp2-section .zi-partners-band {
        margin-top: 28px;
        padding-top: 28px;
    }

    .zi-brands-band .zi-marquee-item,
    .zi-partners-band .zi-marquee-item {
        width: 146px;
        height: 82px;
    }
}

/* Legacy elementor brands/partners (kept for old markup safety) */
.elementor-2 .elementor-element-a52b4a4 {
    --padding-top: 60px !important;
    padding-top: 60px !important;
}

.elementor-2 .elementor-element-a52b4a4 .elementor-heading-title,
.elementor-2 .elementor-element-2e2a947 .elementor-heading-title {
    text-align: center;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 30px;
    font-weight: 700;
    color: var(--e-global-color-primary, #1c244b);
    margin-bottom: 34px;
}

/* Brand logos auto-scrolling marquee */
.elementor-2 .elementor-element-7b53acc .zi-marquee {
    width: 100%;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}

.elementor-2 .elementor-element-7b53acc .zi-marquee-track {
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    gap: 24px;
    animation: zi-marquee-scroll 28s linear infinite;
}

.elementor-2 .elementor-element-7b53acc .zi-marquee:hover .zi-marquee-track {
    animation-play-state: paused;
}

.elementor-2 .elementor-element-7b53acc .zi-marquee-item {
    flex: 0 0 auto;
    width: 200px;
    height: 110px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 22px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(16, 24, 40, 0.05);
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.elementor-2 .elementor-element-7b53acc .zi-marquee-item:hover {
    box-shadow: 0 12px 26px rgba(16, 24, 40, 0.1);
    border-color: var(--e-global-color-primary, #1c244b);
}

.elementor-2 .elementor-element-7b53acc .zi-marquee-item img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 68px !important;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.8 !important;
    transition: filter 0.3s ease, opacity 0.3s ease;
}

.elementor-2 .elementor-element-7b53acc .zi-marquee-item:hover img {
    filter: grayscale(0%);
    opacity: 1 !important;
}

@keyframes zi-marquee-scroll {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(calc(-50% - 12px));
    }
}

/* ===== The Strategies Section ? classic light ===== */
.zi-strategy-section {
    --zi-strategy-navy: #1c244b;
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(180deg, #f4f6fa 0%, #ffffff 42%, #f7f8fb 100%);
    padding: 88px 0;
}

.zi-strategy-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}

.zi-strategy-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(90px);
    opacity: 0.45;
}

.zi-strategy-orb-1 {
    width: 360px; height: 360px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.12), transparent 70%);
    top: -80px; right: -60px;
}

.zi-strategy-orb-2 {
    width: 280px; height: 280px;
    background: radial-gradient(circle, rgba(28, 36, 75, 0.08), transparent 70%);
    bottom: -60px; left: -40px;
}

.zi-strategy-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(28, 36, 75, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(28, 36, 75, 0.04) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(180deg, rgba(0,0,0,0.5), transparent 90%);
}

/* Inner layout */
.zi-strategy-inner {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    align-items: center;
    gap: 70px;
}

/* Left text column */
.zi-strategy-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.zi-strategy-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #2563eb;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    width: fit-content;
}

.zi-strategy-title {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--zi-strategy-navy);
    margin: 0;
    letter-spacing: -0.02em;
}

/* Key points */
.zi-strategy-points {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.zi-strategy-point {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    background: #ffffff;
    border: 1px solid #e5e9f0;
    border-left: 3px solid var(--zi-strategy-navy);
    border-radius: 2px;
    padding: 16px 18px;
    box-shadow: 0 6px 20px rgba(28, 36, 75, 0.04);
    transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.zi-strategy-point:hover {
    border-left-color: #2563eb;
    box-shadow: 0 10px 28px rgba(28, 36, 75, 0.08);
    transform: translateY(-2px);
}

.zi-strategy-point-icon {
    font-size: 22px;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f4f6fa;
    border: 1px solid #e5e9f0;
    border-radius: 2px;
}

.zi-strategy-point-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.zi-strategy-point-body strong {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--zi-strategy-navy);
}

.zi-strategy-point-body span {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13.5px;
    color: #5b6472;
    line-height: 1.65;
}

/* Right image */
.zi-strategy-img-wrap {
    flex: 0 0 44%;
    position: relative;
}

.zi-strategy-img-card {
    position: relative;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid #e5e9f0;
    box-shadow: 0 16px 40px rgba(28, 36, 75, 0.1);
}

.zi-strategy-img-card img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transition: transform 0.5s ease;
}

.zi-strategy-img-card:hover img {
    transform: scale(1.03);
}

/* Badge on image */
.zi-strategy-img-badge {
    position: absolute;
    bottom: 18px;
    left: 18px;
    background: #ffffff;
    border: 1px solid #e5e9f0;
    border-left: 3px solid var(--zi-strategy-navy);
    border-radius: 2px;
    padding: 10px 16px;
    display: flex;
    flex-direction: column;
    color: var(--zi-strategy-navy);
    line-height: 1.2;
    box-shadow: 0 10px 24px rgba(28, 36, 75, 0.12);
}

.zi-strategy-img-badge span {
    font-size: 11px;
    font-weight: 700;
    color: #2563eb;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.zi-strategy-img-badge strong {
    font-size: 17px;
    font-weight: 700;
    color: var(--zi-strategy-navy);
}

/* Decorative dots */
.zi-strategy-dots {
    position: absolute;
    bottom: -24px;
    right: -24px;
    width: 110px;
    height: 110px;
    background-image: radial-gradient(circle, rgba(28, 36, 75, 0.18) 1.5px, transparent 1.5px);
    background-size: 14px 14px;
    z-index: -1;
    border-radius: 50%;
}

@media (max-width: 900px) {
    .zi-strategy-inner {
        flex-direction: column;
        gap: 40px;
        padding: 0 24px;
    }
    .zi-strategy-img-wrap {
        flex: 1;
        width: 100%;
    }
    .zi-strategy-title { font-size: 28px; }
}

/* ===== Our Projects ? classic featured hex ===== */
.zi-projects-section {
    --zi-projects-navy: #1c244b;
    --zi-projects-blue: #1c244b;
    --zi-projects-accent: #b8952c;
    --zi-hex-border: #1c244b;
    --zi-hex-soft: rgba(232, 228, 220, 0.75);
    --zi-hex-ghost: rgba(240, 237, 230, 0.8);
    /* Flat-top hex ??? same orientation as the reference */
    --zi-hex: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    left: auto;
    right: auto;
    background:
        radial-gradient(ellipse 55% 42% at 6% 10%, rgba(184, 149, 44, 0.07), transparent 58%),
        radial-gradient(ellipse 48% 38% at 94% 88%, rgba(28, 36, 75, 0.05), transparent 55%),
        linear-gradient(180deg,
            #f3f1eb 0%,
            var(--zi-classic-ivory, #f6f4ef) 18%,
            var(--zi-classic-paper, #fbfaf7) 55%,
            var(--zi-classic-paper, #fbfaf7) 100%);
    padding: 88px 0 96px;
    box-sizing: border-box;
}

.zi-projects-wash {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image:
        linear-gradient(rgba(28, 36, 75, 0.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(28, 36, 75, 0.018) 1px, transparent 1px);
    background-size: 52px 52px;
    mask-image: linear-gradient(180deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
    opacity: 0.45;
}

.zi-projects-inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--zi-content-max, 1200px);
    margin: 0 auto;
    padding: 0 var(--zi-content-pad, 32px);
    box-sizing: border-box;
}

/* Keep horizontal scroll from full-bleed vw sections under control */
.page-content,
.elementor.elementor-2 {
    overflow-x: clip;
}

.zi-projects-header {
    margin: 0 auto 52px;
    max-width: 100%;
    width: 100%;
    text-align: center;
}

.zi-projects-header .zi-cp2-divider {
    margin: 0 auto 16px;
    justify-content: center;
}

.zi-projects-empty {
    margin: 24px auto 0;
    max-width: 420px;
    text-align: center;
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    color: #6b7280;
}

.zi-projects-page {
    padding-top: 64px;
}

.zi-projects-section .zi-news-cta {
    margin-top: 44px;
}

.zi-projects-eyebrow {
    margin: 0 0 12px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}

.zi-projects-title {
    margin: 0 0 16px;
    font-size: clamp(32px, 3.6vw, 46px);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: 0.01em;
    text-transform: none;
    color: var(--zi-classic-navy);
    font-family: var(--zi-classic-serif);
}

.zi-projects-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 0 20px;
}

.zi-projects-divider span {
    width: 6px;
    height: 6px;
    background: var(--zi-classic-navy);
    opacity: 0.3;
    transform: rotate(45deg);
}

.zi-projects-divider span:nth-child(2) {
    width: 9px;
    height: 9px;
    opacity: 1;
    background: var(--zi-classic-gold, #b8952c);
}

.zi-projects-lead {
    margin: 0 auto;
    max-width: 130ch;
    width: 100%;
    font-size: 15.5px;
    line-height: 1.85;
    color: #5a6275;
    font-family: var(--zi-classic-sans);
}

.zi-projects-lead p {
    margin: 0 0 0.5em;
    color: #5a6275;
    font-weight: 400;
}

.zi-projects-lead p:last-child {
    margin-bottom: 0;
}

.zi-featured-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
}

.zi-featured-row {
    display: grid;
    grid-template-columns: minmax(280px, 0.92fr) minmax(0, 1.08fr);
    gap: clamp(36px, 5vw, 64px);
    align-items: center;
    width: 100%;
    padding: clamp(36px, 4.5vw, 56px) 0;
    box-sizing: border-box;
    background: transparent;
    border: 0;
    border-top: 1px solid rgba(28, 36, 75, 0.08);
    border-radius: 0;
    box-shadow: none;
    transition: none;
}

.zi-featured-row:first-child {
    border-top: 0;
    padding-top: 8px;
}

.zi-featured-row.is-reverse {
    grid-template-columns: minmax(0, 1.08fr) minmax(280px, 0.92fr);
}

.zi-featured-row.is-reverse .zi-featured-copy {
    order: 2;
}

.zi-featured-row.is-reverse .zi-featured-media {
    order: 1;
}

.zi-featured-copy {
    position: relative;
    z-index: 1;
    padding: 8px 8px 8px 18px;
    max-width: 460px;
    border-left: 2px solid #2c5dab;
}

.zi-featured-row.is-reverse .zi-featured-copy {
    padding: 8px 18px 8px 8px;
    margin-left: auto;
    border-left: 0;
    border-right: 2px solid #2c5dab;
}

.zi-featured-media {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: stretch;
    min-height: 0;
    padding: 8px 0;
    box-sizing: border-box;
    overflow: visible;
    width: 100%;
}

.zi-featured-row.is-reverse .zi-featured-media {
    justify-content: stretch;
}

.zi-featured-copy-glow {
    position: absolute;
    width: 200px;
    height: 200px;
    left: -20px;
    top: 42%;
    margin-top: -100px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(184, 149, 44, 0.1), transparent 70%);
    z-index: -1;
    pointer-events: none;
}

.zi-featured-row.is-reverse .zi-featured-copy-glow {
    left: auto;
    right: -20px;
}

.zi-featured-tag {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-featured-title {
    margin: 0 0 12px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(24px, 2.4vw, 34px);
    font-weight: 600;
    line-height: 1.22;
    letter-spacing: 0.01em;
    text-transform: none;
    color: var(--zi-classic-navy);
}

.zi-featured-rule {
    display: block;
    width: 48px;
    height: 2px;
    margin: 0 0 16px;
    background: linear-gradient(90deg, #c7cde9, #2c5dab);
}

.zi-featured-text {
    margin: 0 0 22px;
    max-width: 34em;
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    line-height: 1.8;
    color: #5a6275;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden;
    text-overflow: ellipsis;
}

.zi-featured-details {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: auto;
    padding: 10px 16px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--zi-classic-navy, #1c244b) !important;
    text-decoration: none !important;
    background: transparent !important;
    border: 1px solid var(--zi-classic-navy, #1c244b) !important;
    border-radius: 2px;
    box-shadow: none;
    transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}

.zi-featured-details:hover {
    background: #2c5dab !important;
    border-color: #2c5dab !important;
    color: #fff !important;
    transform: none;
    box-shadow: 0 8px 18px rgba(44, 93, 171, 0.28);
}

.zi-featured-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 0 4px;
    font-family: var(--zi-classic-sans);
    font-size: 14.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--zi-classic-navy, #1c244b) !important;
    text-decoration: none !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(28, 36, 75, 0.22) !important;
    border-radius: 0;
    box-shadow: none !important;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.zi-featured-link svg {
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.zi-featured-link:hover {
    color: #2c5dab !important;
    border-color: #2c5dab !important;
    background: transparent !important;
    box-shadow: none !important;
}

.zi-featured-link:hover svg {
    transform: translateX(3px);
}

.zi-featured-media--showcase {
    justify-content: stretch;
    min-height: 0;
    width: 100%;
}

/* Cascade thumbs (left) + big main image ? user requested image design */
.zi-project-showcase {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 0;
    width: 100%;
    height: 360px;
    margin: 0;
    padding: 0;
    border-radius: 0;
    overflow: visible;
    background: transparent;
}

.zi-project-thumbs {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 0;
    flex-shrink: 0;
    height: 100%;
    order: 0;
}

.zi-project-thumb {
    --zi-thumb-i: 0;
    position: relative;
    flex: 0 0 auto;
    width: 56px;
    height: calc(100% - 22px - ((var(--zi-thumb-count, 4) - 1 - var(--zi-thumb-i)) * 26px));
    max-height: 100%;
    min-height: 120px;
    padding: 0;
    margin: 0;
    transform: translateY(calc((var(--zi-thumb-count, 4) - 1 - var(--zi-thumb-i)) * -8px));
    border: 0;
    border-right: 2px solid #fff;
    border-radius: 0 !important;
    background: #dcd8d0;
    cursor: pointer;
    overflow: hidden;
    opacity: 0.78;
    box-shadow: none;
    outline: none;
    transition: opacity 0.3s ease, filter 0.3s ease, z-index 0s;
    z-index: calc(10 - var(--zi-thumb-i));
}

.zi-project-thumb:last-child {
    border-right: 2px solid #fff;
}

.zi-project-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 0 !important;
    filter: saturate(0.9) brightness(0.94);
    transition: filter 0.3s ease, transform 0.4s ease;
}

.zi-project-thumb:hover,
.zi-project-thumb:focus-visible {
    opacity: 1;
    outline: none;
    z-index: 20;
}

.zi-project-thumb:hover img,
.zi-project-thumb:focus-visible img,
.zi-project-thumb.is-active img {
    filter: none;
    transform: scale(1.03);
}

.zi-project-thumb.is-active {
    opacity: 1;
    box-shadow: inset 0 0 0 2px #2c5dab;
}

.zi-project-main {
    position: relative;
    flex: 1;
    min-width: 0;
    height: 100%;
    order: 1;
    background: #f3f1eb;
    overflow: hidden;
    border-radius: 0 !important;
    box-shadow: none;
    isolation: isolate;
}

.zi-project-main img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0 !important;
    opacity: 0;
    visibility: hidden;
    transform: scale(1.06);
    filter: blur(6px);
    transition: opacity 0.45s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s ease, visibility 0.45s ease;
    pointer-events: none;
}

.zi-project-main img.is-active {
    opacity: 1;
    visibility: visible;
    transform: scale(1);
    filter: blur(0);
    z-index: 1;
}

.zi-project-main.is-focusing img.is-active {
    animation: zi-project-focus-in 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes zi-project-focus-in {
    0% { opacity: 0.35; transform: scale(1.08); filter: blur(8px); }
    100% { opacity: 1; transform: scale(1); filter: blur(0); }
}

.zi-project-fallback {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 360px;
    background:
        radial-gradient(circle at 30% 30%, rgba(184, 149, 44, 0.12), transparent 55%),
        linear-gradient(160deg, #f3f1eb, #e4e2db);
}

.zi-featured-row.is-reverse .zi-project-showcase {
    flex-direction: row;
}

@media (max-width: 860px) {
    .zi-project-showcase {
        height: 280px;
        gap: 0;
    }

    .zi-project-thumbs {
        gap: 0;
    }

    .zi-project-thumb {
        width: 44px;
        height: calc(100% - 16px - ((var(--zi-thumb-count, 4) - 1 - var(--zi-thumb-i)) * 18px));
        min-height: 100px;
        transform: translateY(calc((var(--zi-thumb-count, 4) - 1 - var(--zi-thumb-i)) * -5px));
        border-radius: 0 !important;
    }
}

@media (max-width: 560px) {
    .zi-project-showcase {
        height: 230px;
        gap: 0;
    }

    .zi-project-thumb {
        width: 36px;
        height: calc(100% - 12px - ((var(--zi-thumb-count, 4) - 1 - var(--zi-thumb-i)) * 14px));
        min-height: 90px;
        border-radius: 0 !important;
    }
}

/* ===== Project / Success Story detail — professional brand header ===== */
.zi-projd-hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    color: #fff;
    background: #12182b;
}

.zi-projd-hero--brand {
    min-height: 0;
    background:
        linear-gradient(135deg, #0f1530 0%, #1a2748 48%, #163a6b 100%);
    border-bottom: 1px solid rgba(184, 149, 44, 0.28);
}

.zi-projd-hero-deco {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.zi-projd-hero-grid {
    position: absolute;
    inset: 0;
    opacity: 0.14;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
    background-size: 56px 56px;
    mask-image: linear-gradient(120deg, #000 0%, transparent 70%);
}

.zi-projd-hero-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(2px);
}

.zi-projd-hero-orb--a {
    width: min(420px, 55vw);
    height: min(420px, 55vw);
    top: -28%;
    right: -8%;
    background: radial-gradient(circle, rgba(44, 93, 171, 0.45) 0%, transparent 68%);
}

.zi-projd-hero-orb--b {
    width: min(280px, 40vw);
    height: min(280px, 40vw);
    bottom: -35%;
    left: 8%;
    background: radial-gradient(circle, rgba(184, 149, 44, 0.18) 0%, transparent 70%);
}

.zi-projd-hero-accent {
    position: absolute;
    left: 0;
    top: 18%;
    bottom: 18%;
    width: 4px;
    background: linear-gradient(180deg, transparent, #b8952c 20%, #2c5dab 80%, transparent);
}

.zi-projd-hero-media {
    display: none;
}

.zi-projd-hero-shade,
.zi-projd-hero-grain {
    display: none;
}

.zi-projd-hero-inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--zi-content-max);
    margin: 0 auto;
    padding: 44px var(--zi-content-pad) 48px;
    box-sizing: border-box;
}

.zi-projd-crumb {
    display: flex;
    align-items: center;
    margin: 0 0 22px;
}

.zi-projd-crumb-trail {
    list-style: none;
    margin: 0;
    padding: 6px 8px 6px 6px;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.zi-projd-crumb-trail > li {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0;
    font-family: var(--zi-classic-sans);
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 1;
    color: rgba(255, 255, 255, 0.7);
}

.zi-projd-crumb-sep {
    color: rgba(255, 255, 255, 0.35);
    flex-shrink: 0;
}

.zi-projd-crumb-sep svg {
    display: block;
}

.zi-projd-crumb a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border-radius: 999px;
    color: rgba(255, 255, 255, 0.88);
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.zi-projd-crumb a:hover {
    color: #fff;
    background: rgba(44, 93, 171, 0.45);
    box-shadow: 0 0 0 1px rgba(184, 149, 44, 0.35);
}

.zi-projd-crumb-home svg {
    flex-shrink: 0;
    opacity: 0.9;
}

.zi-projd-crumb-current {
    display: inline-flex;
    align-items: center;
    max-width: min(42vw, 220px);
    padding: 7px 14px;
    border-radius: 999px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #fff;
    background: linear-gradient(180deg, #2c5dab 0%, #5187DD 100%);
    font-weight: 650;
    box-shadow: 0 4px 14px rgba(44, 93, 171, 0.35);
}

@media (max-width: 640px) {
    .zi-projd-crumb-trail {
        padding: 5px;
        gap: 2px;
        border-radius: 14px;
    }

    .zi-projd-crumb a,
    .zi-projd-crumb-current {
        padding: 6px 10px;
        font-size: 12px;
    }

    .zi-projd-crumb-home span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .zi-projd-crumb-current {
        max-width: min(48vw, 160px);
    }
}

.zi-projd-hero-tag {
    display: inline-block;
    margin: 0 0 12px;
    padding: 0 0 0 12px;
    border-left: 2px solid var(--zi-classic-gold, #b8952c);
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: rgba(255, 228, 170, 0.95);
}

.zi-projd-hero-title {
    margin: 0;
    max-width: min(100%, 22em);
    font-family: var(--zi-classic-serif);
    font-size: clamp(28px, 4.2vw, 46px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    color: #fff;
    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
}

.zi-projd-hero-divider {
    justify-content: flex-start;
    margin: 0;
}

.zi-projd-hero-divider span {
    background: rgba(255, 255, 255, 0.35);
}

.zi-projd-hero-divider span:nth-child(2) {
    background: var(--zi-classic-gold, #b8952c);
    opacity: 1;
}

.zi-projd-hero-lead {
    margin: 16px 0 0;
    max-width: 52ch;
    font-family: var(--zi-classic-sans);
    font-size: 16px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.82);
}

/* Continuous Our Projects?matching jolsap band */
.zi-projd-band {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(ellipse 55% 42% at 6% 10%, rgba(184, 149, 44, 0.07), transparent 58%),
        radial-gradient(ellipse 48% 38% at 94% 88%, rgba(28, 36, 75, 0.05), transparent 55%),
        linear-gradient(180deg,
            #f3f1eb 0%,
            var(--zi-classic-ivory, #f6f4ef) 18%,
            var(--zi-classic-paper, #fbfaf7) 55%,
            var(--zi-classic-paper, #fbfaf7) 100%);
    padding: 48px 0 96px;
}

.zi-projd-band .zi-cp2-atmosphere,
.zi-projd-band .zi-cp2-ripple,
.zi-projd-band .zi-cp2-flow,
.zi-projd-band .zi-cp2-wave-svg,
.zi-projd-band .zi-projects-wash {
    z-index: 0;
}

.zi-projd-shell {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--zi-content-max);
    margin: 0 auto;
    padding: 0 var(--zi-content-pad);
    box-sizing: border-box;
}

.zi-projd-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.78fr);
    gap: 28px;
    align-items: start;
}

.zi-projd-main {
    position: relative;
    padding: 44px 48px 48px;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(28, 36, 75, 0.08);
    border-left: 3px solid #2c5dab;
    box-shadow: 0 20px 50px rgba(28, 36, 75, 0.07);
    animation: zi-projd-rise 0.7s ease both;
}

.zi-projd-aside {
    display: grid;
    gap: 18px;
    position: sticky;
    top: 96px;
    animation: zi-projd-rise 0.7s ease 0.12s both;
}

@keyframes zi-projd-rise {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

.zi-projd-head {
    margin: 0 0 22px;
}

.zi-projd-eyebrow {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}

.zi-projd-heading {
    margin: 0 0 14px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(24px, 2.6vw, 32px);
    font-weight: 700;
    line-height: 1.2;
    color: var(--zi-classic-navy, #1c244b);
}

.zi-projd-head .zi-cp2-divider,
.zi-projd-related-head .zi-cp2-divider {
    justify-content: flex-start;
    margin: 0;
}

.zi-projd-prose {
    font-family: var(--zi-classic-sans);
    font-size: 16.5px;
    line-height: 1.9;
    color: #5a6275;
    max-width: 62ch;
}

.zi-projd-prose p {
    margin: 0 0 1.15em;
}

.zi-projd-prose p:last-child {
    margin-bottom: 0;
}

.zi-projd-subhead {
    margin: 0 0 16px;
    font-family: var(--zi-classic-serif);
    font-size: 20px;
    font-weight: 700;
    color: var(--zi-classic-navy, #1c244b);
}

.zi-projd-highlights {
    margin-top: 36px;
    padding-top: 28px;
    border-top: 1px solid rgba(28, 36, 75, 0.08);
}

.zi-projd-highlights ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.zi-projd-highlights li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    background: var(--zi-classic-paper, #fbfaf7);
    border: 1px solid rgba(28, 36, 75, 0.08);
    border-left: 2px solid #2c5dab;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
    color: var(--zi-classic-navy, #1c244b);
}

.zi-projd-highlights li::before {
    content: "";
    flex: 0 0 7px;
    width: 7px;
    height: 7px;
    margin-top: 6px;
    background: var(--zi-classic-navy, #1c244b);
    transform: rotate(45deg);
    opacity: 0.55;
}

.zi-projd-gallery {
    margin: 0;
}

.zi-projd-head + .zi-projd-gallery {
    margin-top: 8px;
}

.zi-projd-desc {
    width: 100%;
    margin-top: 28px;
    padding: 40px clamp(22px, 4vw, 48px) 44px;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(28, 36, 75, 0.08);
    box-shadow: 0 20px 50px rgba(28, 36, 75, 0.07);
    box-sizing: border-box;
}

.zi-projd-desc-head {
    margin: 0 0 18px;
}

.zi-projd-desc-head .zi-cp2-divider {
    justify-content: flex-start;
    margin: 0;
}

.zi-projd-desc .zi-projd-prose {
    max-width: none;
    width: 100%;
}

.zi-projd-gallery-hero {
    margin: 0 0 14px;
    overflow: hidden;
    background: #ece8df;
    border: 1px solid rgba(28, 36, 75, 0.08);
    border-radius: 0;
}

.zi-projd-gallery-hero img {
    width: 100%;
    height: auto;
    max-height: min(72vh, 680px);
    object-fit: contain;
    object-position: center;
    display: block;
    border-radius: 0;
    transition: transform 0.6s ease, opacity 0.28s ease;
}

.zi-projd-gallery-stage.is-fading {
    opacity: 0.35;
}

.zi-projd-gallery-stage.is-showing {
    animation: zi-projd-gallery-in 0.42s ease both;
}

@keyframes zi-projd-gallery-in {
    from { opacity: 0.4; transform: scale(1.02); }
    to { opacity: 1; transform: scale(1); }
}

.zi-projd-gallery-hero:hover img {
    transform: scale(1.03);
}

.zi-projd-gallery-hero figcaption {
    margin: 0;
    padding: 10px 14px;
    font-family: var(--zi-classic-sans);
    font-size: 12.5px;
    letter-spacing: 0.04em;
    color: #7a8496;
    background: rgba(255, 255, 255, 0.7);
    border-top: 1px solid rgba(28, 36, 75, 0.06);
}

.zi-projd-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.zi-projd-gallery-thumb {
    appearance: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid rgba(28, 36, 75, 0.1);
    border-radius: 0 !important;
    background: #ece8df;
    background-color: #ece8df;
    background-image: none;
    aspect-ratio: 4 / 3;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.zi-projd-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 0 !important;
    transition: transform 0.45s ease, opacity 0.25s ease;
    opacity: 0.78;
}

.zi-projd-gallery-thumb:hover {
    border-color: rgba(44, 93, 171, 0.55);
    transform: translateY(-2px);
}

.zi-projd-gallery-thumb:hover img,
.zi-projd-gallery-thumb.is-active img {
    opacity: 1;
    transform: scale(1.04);
}

.zi-projd-gallery-thumb.is-active {
    border-color: #2c5dab;
    box-shadow: none;
}

/* Beat Elementor kit button gradient on project gallery thumbs */
.elementor-kit-7 button.zi-projd-gallery-thumb,
.elementor-kit-7 button.zi-projd-gallery-thumb:hover,
.elementor-kit-7 button.zi-projd-gallery-thumb:focus,
.elementor-kit-7 button.zi-projd-gallery-thumb:focus-visible,
.elementor-kit-7 button.zi-projd-gallery-thumb:active,
.elementor-kit-7 button.zi-projd-gallery-thumb.is-active {
    background: #ece8df !important;
    background-color: #ece8df !important;
    background-image: none !important;
    border-radius: 0 !important;
    color: inherit !important;
    padding: 0 !important;
}

.elementor-kit-7 button.zi-projd-gallery-thumb.is-active {
    border-color: #2c5dab !important;
    box-shadow: none !important;
}

.zi-projd-gallery-thumb:focus-visible {
    outline: 2px solid var(--zi-classic-navy, #1c244b);
    outline-offset: 2px;
}

.zi-projd-card {
    position: relative;
    overflow: hidden;
    padding: 28px 24px 26px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(28, 36, 75, 0.08);
    border-top: 1px solid #2c5dab;
    box-shadow: 0 18px 44px rgba(28, 36, 75, 0.07);
}

.zi-projd-card-glow {
    position: absolute;
    width: 160px;
    height: 160px;
    right: -40px;
    top: -40px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(184, 149, 44, 0.12), transparent 70%);
    pointer-events: none;
}

.zi-projd-card-label {
    position: relative;
    margin: 0 0 18px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-projd-meta {
    position: relative;
    margin: 0 0 22px;
    padding: 0;
}

.zi-projd-meta > div {
    padding: 12px 0;
    border-bottom: 1px solid rgba(28, 36, 75, 0.08);
}

.zi-projd-meta > div:first-child {
    padding-top: 0;
}

.zi-projd-meta dt {
    margin: 0 0 4px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #8a93a5;
}

.zi-projd-meta dd {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    font-weight: 700;
    color: var(--zi-classic-navy, #1c244b);
}

.zi-projd-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    margin: 0 0 10px;
    padding: 13px 18px;
    box-sizing: border-box;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-decoration: none !important;
    color: #fff !important;
    background: #2c5dab !important;
    border: 1px solid #2c5dab !important;
    border-radius: 0;
    transition: background 0.22s ease, border-color 0.22s ease, color 0.22s ease;
}

.zi-projd-btn:hover {
    background: #275297 !important;
    border-color: #275297 !important;
    color: #fff !important;
}

.zi-projd-btn--ghost {
    color: var(--zi-classic-navy, #1c244b) !important;
    background: transparent !important;
    border-color: rgba(28, 36, 75, 0.28) !important;
}

.zi-projd-btn--ghost:hover {
    color: #2c5dab !important;
    border-color: #2c5dab !important;
    background: transparent !important;
}

.zi-projd-btn svg {
    transition: transform 0.2s ease;
}

.zi-projd-btn:hover svg {
    transform: translateX(3px);
}

.zi-projd-back {
    display: inline-block;
    margin-top: 8px;
    font-family: var(--zi-classic-sans);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    text-decoration: none;
    border-bottom: 1px solid rgba(28, 36, 75, 0.2);
    padding-bottom: 2px;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.zi-projd-back:hover {
    color: var(--zi-classic-gold, #b8952c);
    border-color: #2c5dab;
}

.zi-projd-note {
    padding: 22px 22px 20px;
    background: linear-gradient(165deg, #2c5dab 0%, #2c5dab 58%, #1a2744 120%);
    border-top: 2px solid #2c5dab;
    color: #fff;
}

.zi-projd-note-brand {
    margin: 0 0 8px;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #fff;
}

.zi-projd-note p:last-child {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 13.5px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.82);
}

.zi-projd-related {
    margin-top: 64px;
    padding-top: 8px;
}

.zi-projd-related-head {
    margin: 0 0 28px;
}

.zi-projd-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.zi-projd-related-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(28, 36, 75, 0.08);
    border-top: 2px solid transparent;
    box-shadow: 0 12px 32px rgba(28, 36, 75, 0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.zi-projd-related-card:hover {
    transform: translateY(-5px);
    border-top-color: #2c5dab;
    box-shadow: 0 20px 44px rgba(28, 36, 75, 0.1);
}

.zi-projd-related-media {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #e8e4db;
}

.zi-projd-related-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.zi-projd-related-card:hover .zi-projd-related-media img {
    transform: scale(1.06);
}

.zi-projd-related-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 18px 18px 20px;
    border-left: 2px solid #2c5dab;
    margin: 0 0 0 14px;
}

.zi-projd-related-tag {
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-projd-related-title {
    font-family: var(--zi-classic-serif);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--zi-classic-navy, #1c244b);
}

.zi-projd-related-sum {
    font-family: var(--zi-classic-sans);
    font-size: 13.5px;
    line-height: 1.55;
    color: #6b7385;
}

.zi-projd-related-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    font-family: var(--zi-classic-sans);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    border-bottom: 1px solid rgba(28, 36, 75, 0.18);
    align-self: flex-start;
    padding-bottom: 2px;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.zi-projd-related-card:hover .zi-projd-related-cta {
    color: #2c5dab;
    border-color: #2c5dab;
}

.zi-projd-related-cta svg {
    transition: transform 0.2s ease;
}

.zi-projd-related-card:hover .zi-projd-related-cta svg {
    transform: translateX(3px);
}

@media (max-width: 980px) {
    .zi-projd-layout {
        grid-template-columns: 1fr;
    }

    .zi-projd-aside {
        position: static;
    }

    .zi-projd-main {
        padding: 32px 24px 36px;
    }

    .zi-projd-highlights ul {
        grid-template-columns: 1fr;
    }

    .zi-projd-gallery-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .zi-projd-related-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .zi-projd-hero-inner,
    .zi-projd-shell {
        width: 100%;
    }

    .zi-projd-hero-title {
        max-width: none;
    }

    .zi-projd-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .zi-projd-band {
        padding-top: 32px;
        padding-bottom: 64px;
    }
}

/* Legacy jolsap helpers (kept for older markup) */
.zi-case-page--jolsap {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.zi-case-page--jolsap .zi-cp2-atmosphere,
.zi-case-page--jolsap .zi-cp2-ripple,
.zi-case-page--jolsap .zi-cp2-flow,
.zi-case-page--jolsap .zi-cp2-wave-svg,
.zi-case-page--jolsap .zi-projects-wash {
    z-index: 0;
}

.zi-case-page--jolsap .zi-case-page-inner {
    position: relative;
    z-index: 2;
}

.zi-case-page--jolsap .zi-case-page-main,
.zi-case-page--jolsap .zi-case-page-card {
    background: rgba(255, 255, 255, 0.92);
    border-color: rgba(28, 36, 75, 0.08);
    box-shadow: 0 18px 48px rgba(28, 36, 75, 0.07);
}

.zi-case-page--jolsap .zi-case-page-card {
    border-top-color: var(--zi-classic-navy, #1c244b);
}

.zi-case-page--jolsap .zi-case-page-note {
    background: linear-gradient(160deg, #1c244b 0%, #243056 55%, #1a2744 100%);
    border-top: 2px solid #2c5dab;
}

/* Related block sits inside the same jolsap section */
.zi-case-page--jolsap .zi-case-related--inband {
    position: relative;
    z-index: 2;
    margin-top: 56px;
    padding: 48px 0 16px;
    background: transparent;
    border-top: 0;
}

.zi-case-page--jolsap .zi-case-related--inband .zi-case-related-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.zi-case-page--jolsap .zi-case-related--inband .zi-case-related-head .zi-case-page-rule {
    margin: 0;
}

.zi-case-page--jolsap .zi-case-related--inband .zi-case-related-card {
    background: rgba(255, 255, 255, 0.92);
    border-color: rgba(28, 36, 75, 0.08);
}

.zi-case-related--jolsap {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.zi-case-related--jolsap .zi-cp2-atmosphere,
.zi-case-related--jolsap .zi-cp2-ripple,
.zi-case-related--jolsap .zi-cp2-flow,
.zi-case-related--jolsap .zi-cp2-wave-svg,
.zi-case-related--jolsap .zi-projects-wash {
    z-index: 0;
}

.zi-case-related--jolsap .zi-case-related-inner {
    position: relative;
    z-index: 2;
}

.zi-case-related--jolsap .zi-case-related-card {
    background: rgba(255, 255, 255, 0.9);
    border-color: rgba(28, 36, 75, 0.08);
}

/* Project detail gallery (legacy) */
.zi-proj-gallery {
    margin-top: 36px;
}

.zi-proj-gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.zi-proj-gallery-grid.is-single {
    grid-template-columns: 1fr;
}

.zi-proj-gallery-item {
    margin: 0;
    overflow: hidden;
    border: 1px solid #e8eef5;
    background: #f4f7fb;
}

.zi-proj-gallery-item img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.zi-proj-gallery-item:hover img {
    transform: scale(1.03);
}

.zi-proj-gallery-grid.is-single .zi-proj-gallery-item img {
    height: auto;
    max-height: 480px;
    object-fit: contain;
    background: #f4f7fb;
}

@media (max-width: 720px) {
    .zi-proj-gallery-grid {
        grid-template-columns: 1fr;
    }

    .zi-proj-gallery-item img {
        height: 200px;
    }
}

/* Hex mosaic (legacy, unused by projects markup now) */
.zi-hex-mosaic {
    --zi-hex-w: clamp(200px, 20vw, 280px);
    --zi-hex-h: calc(var(--zi-hex-w) * 0.866);
    --zi-hex-gap: 1.08;
    position: relative;
    width: min(100%, 640px);
    height: calc(var(--zi-hex-h) * 1.78);
    margin: 0 auto;
    padding: 0;
}

.zi-hex-mosaic--count-1 {
    --zi-hex-w: clamp(240px, 24vw, 340px);
    width: min(100%, 420px);
    height: calc(var(--zi-hex-h) * 1.12);
}

.zi-hex-mosaic--count-2 {
    --zi-hex-w: clamp(210px, 21vw, 300px);
    width: min(100%, 680px);
    height: calc(var(--zi-hex-h) * 1.4);
}

.zi-hex-mosaic--count-3 {
    --zi-hex-w: clamp(200px, 20vw, 280px);
    width: min(100%, 700px);
    height: calc(var(--zi-hex-h) * 1.72);
}

.zi-hex-mosaic--count-4 {
    --zi-hex-w: clamp(190px, 19vw, 265px);
    width: min(100%, 720px);
    height: calc(var(--zi-hex-h) * 1.82);
}

.zi-hex-mosaic--count-5 {
    --zi-hex-w: clamp(180px, 18vw, 250px);
    width: min(100%, 740px);
    height: calc(var(--zi-hex-h) * 1.9);
}

.zi-hex-tile {
    position: absolute;
    width: var(--zi-hex-w);
    height: var(--zi-hex-h);
    cursor: pointer;
}

.zi-hex-tile-inner {
    width: 100%;
    height: 100%;
    transform-origin: center center;
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), filter 0.38s ease;
}

.zi-hex-tile:hover {
    z-index: 30 !important;
}

.zi-hex-tile:hover .zi-hex-tile-inner {
    transform: translateY(-10px) scale(1.12);
    filter: brightness(1.04);
}

.zi-hex-tile-frame {
    width: 100%;
    height: 100%;
    clip-path: var(--zi-hex);
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    box-shadow: 0 14px 34px rgba(28, 36, 75, 0.12);
    transition: box-shadow 0.38s ease, background 0.38s ease, padding 0.38s ease;
}

.zi-hex-tile:hover .zi-hex-tile-frame {
    background: var(--zi-classic-gold, #b8952c);
    padding: 2px;
    box-shadow: 0 22px 48px rgba(28, 36, 75, 0.22);
}

.zi-hex-tile-photo {
    display: block;
    width: 100%;
    height: 100%;
    clip-path: var(--zi-hex);
    overflow: hidden;
    background: var(--zi-classic-paper, #fbfaf7);
    transition: width 0.38s ease, height 0.38s ease;
}

.zi-hex-tile-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Base slot positions ??? tighter classic cluster */
.zi-hex-tile--slot-1 {
    left: 8%;
    top: 2%;
    width: calc(var(--zi-hex-w) * 1.08);
    height: calc(var(--zi-hex-h) * 1.08);
    transform: rotate(-4deg);
}

.zi-hex-tile--slot-2 {
    left: 10%;
    top: 52%;
    margin-top: calc(var(--zi-hex-h) * -0.5);
    width: calc(var(--zi-hex-w) * 1.04);
    height: calc(var(--zi-hex-h) * 1.04);
    transform: rotate(3deg);
}

.zi-hex-tile--slot-3 {
    left: 28%;
    top: 0;
    width: calc(var(--zi-hex-w) * 1.06);
    height: calc(var(--zi-hex-h) * 1.06);
    transform: rotate(-2deg);
}

.zi-hex-tile--slot-4 {
    right: 4%;
    left: auto;
    top: 50%;
    margin-top: calc(var(--zi-hex-h) * -0.5);
}

.zi-hex-tile--slot-5 {
    left: 36%;
    top: -4%;
    width: calc(var(--zi-hex-w) * 0.96);
    height: calc(var(--zi-hex-h) * 0.96);
    transform: rotate(3deg);
}

/* 1 image ??? single large centered hex */
.zi-hex-mosaic--count-1 .zi-hex-tile--slot-4 {
    right: auto;
    left: 50%;
    top: 50%;
    margin-top: calc(var(--zi-hex-h) * -0.5);
    transform: translateX(-50%);
    width: var(--zi-hex-w);
    height: var(--zi-hex-h);
}

/* 2 images ??? close pair */
.zi-hex-mosaic--count-2 .zi-hex-tile--slot-3 {
    left: 12%;
    top: 50%;
    margin-top: calc(var(--zi-hex-h) * -0.5);
    width: calc(var(--zi-hex-w) * 1.08);
    height: calc(var(--zi-hex-h) * 1.08);
    transform: rotate(-4deg);
}

.zi-hex-mosaic--count-2 .zi-hex-tile--slot-4 {
    right: 10%;
    top: 50%;
    margin-top: calc(var(--zi-hex-h) * -0.5);
    width: var(--zi-hex-w);
    height: var(--zi-hex-h);
}

/* 3 images ??? compact triangle cluster */
.zi-hex-mosaic--count-3 .zi-hex-tile--slot-2 {
    left: 10%;
    top: 54%;
    margin-top: calc(var(--zi-hex-h) * -0.5);
    width: calc(var(--zi-hex-w) * 1.06);
    height: calc(var(--zi-hex-h) * 1.06);
    transform: rotate(-3deg);
}

.zi-hex-mosaic--count-3 .zi-hex-tile--slot-3 {
    left: 30%;
    top: -2%;
    width: calc(var(--zi-hex-w) * 1.04);
    height: calc(var(--zi-hex-h) * 1.04);
    transform: rotate(2deg);
}

.zi-hex-mosaic--count-3 .zi-hex-tile--slot-4 {
    right: 6%;
    top: 50%;
    margin-top: calc(var(--zi-hex-h) * -0.5);
}

/* 4 images ??? pull left tiles toward the primary hex */
.zi-hex-mosaic--count-4 .zi-hex-tile--slot-1 {
    left: 6%;
    top: 2%;
}

.zi-hex-mosaic--count-4 .zi-hex-tile--slot-2 {
    left: 8%;
    top: 56%;
    margin-top: calc(var(--zi-hex-h) * -0.5);
}

.zi-hex-mosaic--count-4 .zi-hex-tile--slot-3 {
    left: 30%;
    top: -2%;
}

.zi-hex-mosaic--count-4 .zi-hex-tile--slot-4 {
    right: 2%;
    top: 50%;
    margin-top: calc(var(--zi-hex-h) * -0.5);
}

/* 5 images ??? one balanced cluster */
.zi-hex-mosaic--count-5 .zi-hex-tile--slot-1 {
    left: 4%;
    top: 4%;
}

.zi-hex-mosaic--count-5 .zi-hex-tile--slot-2 {
    left: 6%;
    top: 56%;
    margin-top: calc(var(--zi-hex-h) * -0.5);
}

.zi-hex-mosaic--count-5 .zi-hex-tile--slot-3 {
    left: 26%;
    top: -2%;
}

.zi-hex-mosaic--count-5 .zi-hex-tile--slot-4 {
    right: 0;
    top: 50%;
    margin-top: calc(var(--zi-hex-h) * -0.5);
}

.zi-hex-mosaic--count-5 .zi-hex-tile--slot-5 {
    left: 42%;
    top: -3%;
}

.zi-hex-fallback {
    display: block;
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle at 30% 30%, rgba(184, 149, 44, 0.12), transparent 55%),
        linear-gradient(145deg, var(--zi-classic-paper, #fbfaf7), #e8e4db);
}

@media (prefers-reduced-motion: reduce) {
    .zi-featured-details,
    .zi-hex-tile-inner {
        transition: none;
    }

    .zi-hex-tile:hover .zi-hex-tile-inner {
        transform: none;
    }
}

@media (max-width: 900px) {
    .zi-projects-section {
        padding: 56px 0 64px;
    }

    .zi-featured-list {
        gap: 0;
    }

    .zi-featured-row,
    .zi-featured-row.is-reverse {
        grid-template-columns: 1fr;
        gap: 10px;
        padding: 32px 0;
    }

    .zi-featured-row.is-reverse .zi-featured-copy,
    .zi-featured-row.is-reverse .zi-featured-media {
        order: initial;
    }

    .zi-featured-copy,
    .zi-featured-row.is-reverse .zi-featured-copy {
        max-width: none;
        margin: 0;
        padding: 4px 0 4px 14px;
        border-left: 2px solid #2c5dab;
        border-right: 0;
    }

    .zi-featured-media {
        min-height: 0;
        order: -1;
        justify-content: stretch;
        padding: 4px 0 8px;
    }

    .zi-hex-mosaic--count-1 {
        --zi-hex-w: 268px;
        width: min(100%, 360px);
        height: calc(var(--zi-hex-h) * 1.12);
    }

    .zi-hex-mosaic--count-2 {
        --zi-hex-w: 232px;
        width: min(100%, 580px);
        height: calc(var(--zi-hex-h) * 1.42);
    }

    .zi-hex-mosaic--count-3,
    .zi-hex-mosaic--count-4,
    .zi-hex-mosaic--count-5 {
        --zi-hex-w: 220px;
        width: min(100%, 600px);
        height: calc(var(--zi-hex-h) * 1.78);
    }

    .zi-hex-tile:hover .zi-hex-tile-inner {
        transform: translateY(-6px) scale(1.08);
    }
}

@media (max-width: 640px) {
    .zi-projects-section {
        padding: 36px 0 44px;
    }

    .zi-projects-header {
        margin-bottom: 28px;
        text-align: left;
    }

    .zi-projects-lead {
        text-align: left;
        margin: 0;
    }

    .zi-featured-list {
        gap: 0;
    }

    .zi-featured-copy-glow {
        width: 140px;
        height: 140px;
        margin-top: -70px;
    }

    .zi-hex-frame {
        width: min(100%, 200px);
    }
}

/* ===== Our Valuable Clients ??? classic ===== */
.zi-clients-section {
    --zi-clients-navy: var(--zi-classic-navy, #1c244b);
    --zi-clients-gold: var(--zi-classic-gold, #b8952c);
    position: relative;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background: linear-gradient(180deg, #ffffff 0%, var(--zi-classic-paper, #fbfaf7) 100%);
    padding: 72px clamp(16px, 4vw, 64px) 80px;
    overflow: hidden;
    box-sizing: border-box;
}

.zi-clients-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    line-height: 0;
    opacity: 0.18;
}

.zi-clients-bg img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    filter: grayscale(1) contrast(0.9);
}

.zi-clients-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 50% 40% at 12% 20%, rgba(28, 36, 75, 0.04), transparent 60%),
        radial-gradient(ellipse 40% 35% at 88% 80%, rgba(184, 149, 44, 0.05), transparent 65%);
}

.zi-clients-inner {
    position: relative;
    z-index: 1;
    max-width: 1180px;
    margin: 0 auto;
}

.zi-clients-header {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 42px;
}

.zi-clients-eyebrow {
    margin: 0 0 12px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--zi-clients-gold);
}

.zi-clients-title {
    margin: 0 0 16px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(32px, 3.6vw, 46px);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: 0.01em;
    color: var(--zi-clients-navy);
}

.zi-clients-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 0 16px;
}

.zi-clients-divider span {
    width: 6px;
    height: 6px;
    background: var(--zi-clients-navy);
    opacity: 0.3;
    transform: rotate(45deg);
}

.zi-clients-divider span:nth-child(2) {
    width: 9px;
    height: 9px;
    opacity: 1;
    background: #2c5dab;
}

.zi-clients-rule {
    display: none;
}

.zi-clients-lead {
    margin: 0 auto;
    font-family: var(--zi-classic-sans);
    font-size: 15.5px;
    line-height: 1.85;
    color: #5a6275;
}

.zi-clients-lead > *:first-child { margin-top: 0; }
.zi-clients-lead > *:last-child { margin-bottom: 0; }
.zi-clients-lead p { margin: 0 0 0.75em; }

.zi-clients-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 18px 16px;
    align-items: stretch;
    justify-items: stretch;
}

.zi-client-logo {
    width: 100%;
    max-width: none;
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    cursor: pointer;
    transition: box-shadow 0.25s ease;
}

.zi-client-logo:hover {
    transform: none;
    border: none;
    box-shadow: 0 2px 4px rgba(28, 36, 75, 0.08);
}

.zi-client-logo a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.zi-client-logo img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: none !important;
    -webkit-filter: none !important;
    opacity: 1 !important;
    transition: transform 0.3s ease;
}

.zi-client-logo:hover img {
    transform: scale(1.04);
}

@media (max-width: 1100px) {
    .zi-clients-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 16px 14px;
    }
}

@media (max-width: 768px) {
    .zi-clients-section {
        padding: 52px 18px 60px;
    }

    .zi-clients-header {
        margin-bottom: 30px;
    }

    .zi-clients-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
    }

    .zi-client-logo {
        height: 88px;
        padding: 0;
    }

    .zi-client-logo img {
        max-height: 100%;
    }
}

@media (max-width: 480px) {
    .zi-clients-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ===== Our Certificates (classic navy banner + half-overlap carousel) ===== */
/* Combined outer wrapper ? one water band for Certificates + Quality Assured */
.zi-cert-combined {
    --zi-cert-navy: #1c244b;
    --zi-cert-gold: #b8952c;
    --zi-cert-mint: #f6f4ef;
    --zi-cert-pad: 4vw;
    --zi-cert-card-w: 301px;
    --zi-cert-card-h: 390px;
    --zi-cert-half: calc(var(--zi-cert-card-h) / 2);
    position: relative;
    isolation: isolate;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background: var(--zi-classic-paper, #fbfaf7);
    overflow: hidden;
    box-sizing: border-box;
}

/* Keep old class name working in case referenced elsewhere */
.zi-certificates-section {
    --zi-cert-navy: #1c244b;
    --zi-cert-gold: #b8952c;
    --zi-cert-mint: #f6f4ef;
    --zi-cert-pad: 4vw;
    --zi-cert-card-w: 301px;
    --zi-cert-card-h: 390px;
    --zi-cert-half: calc(var(--zi-cert-card-h) / 2);
    position: relative;
    isolation: isolate;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background: var(--zi-classic-paper, #fbfaf7);
    overflow: hidden;
    box-sizing: border-box;
}

/* Certificates inner block inside combined wrapper */
.zi-certificates-inner-block {
    position: relative;
    z-index: 2;
}

/* Soft water deco sits under the navy banner */
.zi-certificates-deco {
    position: absolute;
    border: 28px solid rgba(184, 149, 44, 0.14);
    border-radius: 18%;
    transform: rotate(45deg);
    pointer-events: none;
    z-index: 0;
}

.zi-certificates-deco--left {
    width: 320px;
    height: 320px;
    left: -160px;
    top: auto;
    bottom: 8%;
    opacity: 0.85;
}

.zi-certificates-deco--right {
    width: 420px;
    height: 420px;
    right: -120px;
    top: auto;
    bottom: -4%;
    opacity: 0.95;
}

.zi-certificates-banner {
    position: relative;
    z-index: 2;
    width: 100%;
    overflow: hidden;
    background-color: #eaf4fb;
    background-image: url("../img/certificates-banner.jpg");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    /* Bottom padding = half card so title sits above the overlap zone */
    padding: 3.2vw 0 calc(var(--zi-cert-half) + 2.8vw);
    text-align: left;
    box-shadow: inset 0 -1px 0 rgba(28, 36, 75, 0.06);
}

.zi-certificates-banner-inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

.zi-certificates-header {
    margin: 0;
    max-width: none;
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
}

.zi-certificates-eyebrow {
    margin: 0 0 0.6vw;
    font-family: var(--zi-classic-sans);
    font-size: clamp(11px, 1vw, 13px);
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #2c5dab !important;
    text-shadow: none;
}

.zi-certificates-title {
    margin: 0;
    font-family: var(--zi-classic-serif);
    font-size: clamp(28px, 3.2vw, 42px);
    font-weight: 600;
    line-height: 1.15;
    color: #1c244b !important;
    letter-spacing: 0.02em;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.55);
}

.zi-certificates-nav {
    position: static;
    top: auto;
    right: auto;
    transform: none;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2;
    flex-shrink: 0;
}

.zi-certificates-btn {
    width: clamp(30px, 3vw, 38px);
    height: clamp(30px, 3vw, 38px);
    padding: 0;
    margin: 0;
    border-radius: 2px;
    border: 1px solid rgba(44, 93, 171, 0.35) !important;
    background: rgba(255, 255, 255, 0.72) !important;
    background-color: rgba(255, 255, 255, 0.72) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    box-shadow: 0 4px 14px rgba(28, 36, 75, 0.1) !important;
    outline: none !important;
    color: #1c244b !important;
    font-size: clamp(13px, 1.4vw, 16px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color 0.2s ease, color 0.2s ease, opacity 0.2s ease, background 0.2s ease;
}

.zi-certificates-btn:hover,
.zi-certificates-btn:focus,
.zi-certificates-btn:focus-visible,
.zi-certificates-btn:active {
    background: #2c5dab !important;
    background-color: #2c5dab !important;
    border-color: #2c5dab !important;
    color: #fff !important;
}

.zi-certificates-btn:active {
    opacity: 0.9;
}

.zi-certificates-btn.swiper-button-disabled {
    opacity: 0.35;
    cursor: default;
}

.zi-certificates-btn.swiper-button-disabled:hover {
    background: rgba(255, 255, 255, 0.72) !important;
    border-color: rgba(44, 93, 171, 0.35) !important;
    color: #1c244b !important;
}

/* Cards sit over the soft water band */
.zi-certificates-track-wrap {
    position: relative;
    z-index: 2;
    width: 100%;
    margin-top: calc(var(--zi-cert-half) * -1);
    /* padding: 0 var(--zi-cert-pad) calc(var(--zi-cert-half) + 20px); */
    box-sizing: border-box;
}

.zi-certificates-slider {
    width: 100%;
    overflow: hidden;
}

.zi-certificates-slider .swiper-slide {
    width: auto;
    height: auto;
}

.zi-certificates-section.is-few .zi-certificates-slider .swiper-wrapper {
    display: flex;
    justify-content: center;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 22px;
    transform: none !important;
    width: 100%;
}

.zi-certificates-section.is-few .zi-certificates-slider .swiper-slide {
    width: auto !important;
    margin: 0 !important;
    flex: 0 0 auto;
}

@media (max-width: 768px) {
    .zi-certificates-section.is-few .zi-certificates-slider .swiper-wrapper {
        gap: 14px;
    }
}

.zi-certificate-card {
    display: block;
    width: var(--zi-cert-card-w);
    height: var(--zi-cert-card-h);
    border-radius: 4px;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    box-shadow: 0 14px 36px rgba(28, 36, 75, 0.12);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.zi-certificate-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    background: #fff;
}

.zi-certificate-card:hover {
    transform: translateY(-5px);
    border-color: rgba(184, 149, 44, 0.45);
    box-shadow: 0 20px 44px rgba(28, 36, 75, 0.16);
}

.zi-cert-assure {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    z-index: 2;
    padding: clamp(36px, 5vw, 64px) var(--zi-cert-pad) clamp(48px, 6vw, 80px);
    background: transparent;
}

/* When inside the combined wrapper, no own background or border */
.zi-cert-assure--merged {
    background: transparent;
    border-top: none;
}

.zi-cert-assure-atmosphere {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 60% 50% at 50% -5%, rgba(187, 222, 251, 0.4), transparent 62%),
        radial-gradient(ellipse 40% 35% at 15% 60%, rgba(178, 235, 242, 0.22), transparent 70%),
        radial-gradient(ellipse 35% 30% at 90% 55%, rgba(144, 202, 249, 0.18), transparent 68%);
}

.zi-cert-assure-ripple {
    position: absolute;
    z-index: 0;
    pointer-events: none;
    border: 1.5px solid rgba(33, 150, 243, 0.12);
    border-radius: 50%;
}

.zi-cert-assure-ripple--1 {
    width: 520px;
    height: 220px;
    left: 50%;
    top: 28%;
    margin-left: -260px;
    border-color: rgba(33, 150, 243, 0.1);
    animation: zi-cp2-ripple-pulse 10s ease-in-out infinite;
}

.zi-cert-assure-ripple--2 {
    width: 740px;
    height: 300px;
    left: 50%;
    top: 22%;
    margin-left: -370px;
    border-color: rgba(128, 222, 234, 0.16);
    animation: zi-cp2-ripple-pulse 10s ease-in-out 1.2s infinite;
}

.zi-cert-assure-ripple--3 {
    width: 960px;
    height: 380px;
    left: 50%;
    top: 16%;
    margin-left: -480px;
    border-color: rgba(187, 222, 251, 0.22);
    animation: zi-cp2-ripple-pulse 10s ease-in-out 2.4s infinite;
}

.zi-cert-assure-flow {
    position: absolute;
    left: -10%;
    right: -10%;
    height: 120px;
    z-index: 0;
    pointer-events: none;
    opacity: 0.55;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(144, 202, 249, 0.16) 20%,
        rgba(178, 235, 242, 0.2) 50%,
        rgba(144, 202, 249, 0.14) 80%,
        transparent 100%
    );
    filter: blur(18px);
}

.zi-cert-assure-flow--1 {
    top: 38%;
    animation: zi-cp2-flow-drift 18s ease-in-out infinite alternate;
}

.zi-cert-assure-flow--2 {
    bottom: 24%;
    opacity: 0.4;
    animation: zi-cp2-flow-drift 22s ease-in-out infinite alternate-reverse;
}

.zi-cert-assure-wave-svg {
    position: absolute;
    left: 0;
    width: 100%;
    z-index: 0;
    pointer-events: none;
    display: block;
}

.zi-cert-assure-wave-svg--top {
    top: 0;
    height: 72px;
    opacity: 0.9;
}

.zi-cert-assure-wave-svg--bottom {
    bottom: 0;
    height: 88px;
    opacity: 0.95;
}

@media (prefers-reduced-motion: reduce) {
    .zi-cert-assure-ripple,
    .zi-cert-assure-flow {
        animation: none;
    }
}

.zi-cert-assure-inner {
    position: relative;
    z-index: 1;
    max-width: 1180px;
    margin: 0 auto;
}

.zi-cert-assure-main {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: clamp(24px, 4vw, 48px);
    align-items: center;
    margin-bottom: clamp(28px, 3.5vw, 44px);
}

.zi-cert-assure-eyebrow {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}

.zi-cert-assure-title {
    margin: 0 0 14px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(28px, 3.2vw, 42px);
    font-weight: 600;
    line-height: 1.15;
    color: var(--zi-classic-navy);
    letter-spacing: 0.01em;
}

.zi-cert-assure-text {
    margin: 0;
    max-width: 34em;
    font-family: var(--zi-classic-sans);
    font-size: clamp(14px, 1.15vw, 16px);
    line-height: 1.75;
    color: #4b5568;
}

.zi-cert-assure-media {
    min-width: 0;
}

.zi-cert-assure-video {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    width: 100%;
    min-height: 220px;
    padding: 28px 30px;
    border: 0;
    border-radius: 20px;
    text-align: left;
    cursor: pointer;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(28, 43, 74, 0.92), rgba(45, 70, 110, 0.88)),
        radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.14), transparent 45%);
    box-shadow: 0 18px 40px rgba(28, 43, 74, 0.22);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.zi-cert-assure-video--playing {
    background: #0f1a2e;
}

.zi-cert-assure-video-preview {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

.zi-cert-assure-video-iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 177.78%;
    height: 177.78%;
    min-width: 100%;
    min-height: 100%;
    transform: translate(-50%, -50%);
    border: 0;
    pointer-events: none;
}

.zi-cert-assure-video-shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(15, 26, 46, 0.72) 0%, rgba(15, 26, 46, 0.35) 48%, rgba(15, 26, 46, 0.2) 100%),
        linear-gradient(180deg, rgba(15, 26, 46, 0.15), rgba(15, 26, 46, 0.45));
}

.zi-cert-assure-video--static {
    cursor: default;
}

.zi-cert-assure-video:not(.zi-cert-assure-video--static):hover {
    transform: translateY(-3px);
    box-shadow: 0 22px 46px rgba(28, 43, 74, 0.28);
}

.zi-cert-assure-video-glow {
    position: absolute;
    inset: auto -20% -40% auto;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(220, 239, 228, 0.35), transparent 70%);
    pointer-events: none;
}

.zi-cert-assure-video .zi-cert-play {
    position: relative;
    z-index: 1;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, 0.7);
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.zi-cert-assure-video .zi-cert-play::after {
    content: "";
    width: 0;
    height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 11px solid currentColor;
    margin-left: 3px;
}

.zi-cert-assure-video:not(.zi-cert-assure-video--static):hover .zi-cert-play {
    background: #fff;
    color: #1c2b4a;
    border-color: #fff;
}

.zi-cert-assure-video-meta {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.zi-cert-assure-video-kicker {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.7);
}

.zi-cert-assure-video .zi-cert-video-title {
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(15px, 1.4vw, 18px);
    font-weight: 700;
    line-height: 1.35;
    color: #fff;
    max-width: none;
}

.zi-cert-assure-pillars {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(14px, 2vw, 22px);
}

.zi-cert-pillar {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 20px 18px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(28, 36, 75, 0.1);
    box-shadow: 0 10px 24px rgba(28, 36, 75, 0.06);
}

.zi-cert-pillar-icon {
    width: 44px;
    height: 44px;
    border-radius: 4px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(184, 149, 44, 0.14);
    color: var(--zi-classic-navy, #1c244b);
    font-size: 16px;
}

.zi-cert-pillar-title {
    margin: 0 0 6px;
    font-family: var(--zi-classic-serif);
    font-size: 17px;
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
}

.zi-cert-pillar-text {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 13.5px;
    line-height: 1.55;
    color: #5a6275;
}

.zi-cert-video-modal {
    position: fixed;
    inset: 0;
    z-index: 10070 !important;
    background: rgba(15, 23, 42, 0.78);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.zi-cert-video-modal[hidden] {
    display: none !important;
}

.zi-cert-video-dialog {
    position: relative;
    width: min(1280px, 96vw);
    background: #000;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4);
}

.zi-cert-video-close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 5;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}

.zi-cert-video-frame {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    background: #000;
    overflow: hidden;
}

/* Wrapper only ? never target #ziCertYtHost here (YT may turn it into the iframe) */
.zi-cert-video-frame > div:not(iframe) {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
}

/*
  Cover-crop the player so video fills the modal and YouTube
  title / logo sit outside the clipped edges.
*/
.zi-cert-video-frame iframe {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 145% !important;
    height: 145% !important;
    max-width: none !important;
    max-height: none !important;
    border: 0 !important;
    transform: translate(-50%, -50%) !important;
    pointer-events: none !important;
}

.zi-cert-video-controls {
    position: absolute;
    left: 16px;
    bottom: 16px;
    z-index: 6;
    display: flex;
    align-items: center;
    gap: 10px;
}

.zi-cert-video-ctrl {
    width: 46px;
    height: 46px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 50%;
    background: rgba(8, 16, 32, 0.72);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.zi-cert-video-ctrl:hover,
.zi-cert-video-ctrl:focus-visible {
    background: rgba(20, 55, 110, 0.92);
    border-color: rgba(255, 255, 255, 0.55);
    transform: scale(1.05);
    outline: none;
}

.zi-cert-video-icon {
    display: block;
}

.zi-cert-video-ctrl[data-playing="1"] .zi-cert-video-icon--play,
.zi-cert-video-ctrl[data-playing="0"] .zi-cert-video-icon--pause,
.zi-cert-video-ctrl[data-muted="0"] .zi-cert-video-icon--muted,
.zi-cert-video-ctrl[data-muted="1"] .zi-cert-video-icon--sound {
    display: none;
}

.zi-cert-video-ctrl[data-playing="0"] .zi-cert-video-icon--play,
.zi-cert-video-ctrl[data-playing="1"] .zi-cert-video-icon--pause,
.zi-cert-video-ctrl[data-muted="1"] .zi-cert-video-icon--muted,
.zi-cert-video-ctrl[data-muted="0"] .zi-cert-video-icon--sound {
    display: block;
}

@media (max-width: 900px) {
    .zi-cert-assure-main {
        grid-template-columns: 1fr;
    }

    .zi-cert-assure-pillars {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .zi-certificates-section {
        --zi-cert-card-w: 200px;
        --zi-cert-card-h: 259px;
    }

    .zi-certificates-banner {
        padding: 36px 0 calc(var(--zi-cert-half) + 28px);
    }

    .zi-certificates-deco--left {
        width: 180px;
        height: 180px;
        border-width: 16px;
        left: -90px;
        bottom: 6%;
        top: auto;
    }

    .zi-certificates-deco--right {
        width: 220px;
        height: 220px;
        border-width: 18px;
        right: -80px;
        bottom: 2%;
        top: auto;
    }

    .zi-certificates-banner-inner {
        padding: 0 16px;
        flex-wrap: wrap;
    }

    .zi-certificates-nav {
        margin-left: auto;
    }

    .zi-certificates-track-wrap {
        margin-top: calc(var(--zi-cert-half) * -1);
        padding: 0 16px calc(var(--zi-cert-half) + 16px);
    }

    .zi-cert-assure {
        padding: 28px 16px 44px;
    }

    .zi-cert-assure-ripple--2,
    .zi-cert-assure-ripple--3 {
        display: none;
    }

    .zi-cert-assure-wave-svg--top {
        height: 48px;
    }

    .zi-cert-assure-wave-svg--bottom {
        height: 56px;
    }

    .zi-cert-assure-video {
        min-height: 180px;
        padding: 22px 20px;
        border-radius: 16px;
    }
}

/* ===== Testimonials + News â€” one shared joined band ===== */
.zi-testi-news-band {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(ellipse 55% 42% at 8% 18%, rgba(28, 36, 75, 0.045), transparent 60%),
        radial-gradient(ellipse 48% 38% at 92% 72%, rgba(184, 149, 44, 0.07), transparent 62%),
        linear-gradient(180deg,
            var(--zi-classic-paper, #fbfaf7) 0%,
            #f8f6f1 42%,
            var(--zi-classic-paper, #fbfaf7) 100%);
}

.zi-testi-news-deco {
    position: absolute;
    border: 22px solid rgba(184, 149, 44, 0.14);
    border-radius: 18%;
    transform: rotate(45deg);
    pointer-events: none;
    z-index: 0;
}

.zi-testi-news-deco--left {
    width: 300px;
    height: 300px;
    left: -150px;
    top: 12%;
    opacity: 0.75;
    border-color: rgba(28, 36, 75, 0.07);
}

.zi-testi-news-deco--right {
    width: 380px;
    height: 380px;
    right: -120px;
    top: 6%;
    opacity: 0.85;
    border-color: rgba(184, 149, 44, 0.14);
}

.zi-testi-news-deco--mid {
    width: 260px;
    height: 260px;
    right: -80px;
    bottom: 10%;
    opacity: 0.55;
    border-color: rgba(28, 36, 75, 0.06);
}

.zi-testi-news-band .zi-agency-testimonials,
.zi-testi-news-band .zi-news-section,
.zi-testi-news-band .elementor-element-3db92752,
.home .zi-testi-news-band .zi-agency-testimonials,
.home .zi-testi-news-band .zi-news-section,
.home .zi-testi-news-band .elementor-element-3db92752 {
    background: transparent !important;
    position: relative;
    z-index: 1;
    overflow: visible;
}

.zi-testi-news-band .zi-agency-testimonials {
    padding-bottom: 0 !important;
}

.zi-testi-news-band .zi-news-section,
.zi-testi-news-band .elementor-element-3db92752,
.home .zi-testi-news-band .zi-news-section,
.home .zi-testi-news-band .elementor-element-3db92752 {
    padding-top: 0 !important;
    padding-bottom: 28px !important;
    margin-top: -8px;
}

.zi-testi-news-band .zi-agency-testimonials-slider {
    padding-bottom: 0;
    margin-bottom: 0;
}

.zi-testi-news-band .zi-agency-testi-dots,
.home .zi-testi-news-band .zi-agency-testi-dots,
.zi-agency-testimonials .zi-agency-testi-dots {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    margin: 48px 0 0 !important;
    padding-top: 4px;
    display: flex !important;
    justify-content: center;
    align-items: center;
    z-index: 2;
}

.zi-testi-news-band .zi-agency-testimonials-stage {
    min-height: 0;
}

.zi-testi-news-band .zi-news-header {
    margin-top: 0;
    margin-bottom: 24px;
}

@media (max-width: 640px) {
    .zi-testi-news-deco { display: none; }
    .zi-testi-news-band .zi-agency-testimonials { padding-bottom: 0 !important; }
    .zi-testi-news-band .zi-news-section,
    .zi-testi-news-band .elementor-element-3db92752,
    .home .zi-testi-news-band .zi-news-section,
    .home .zi-testi-news-band .elementor-element-3db92752 {
        padding-top: 0 !important;
        padding-bottom: 20px !important;
        margin-top: -4px;
    }
    .zi-testi-news-band .zi-agency-testimonials-slider { padding-bottom: 0; }
    .zi-testi-news-band .zi-agency-testi-dots,
    .home .zi-testi-news-band .zi-agency-testi-dots,
    .zi-agency-testimonials .zi-agency-testi-dots { margin-top: 36px !important; }
    .zi-testi-news-band .zi-news-header { margin-bottom: 18px; }
}

/* ===== News & Events ? classic corporate ===== */
.elementor-2 .elementor-element-3db92752,
.zi-news-section {
    background: var(--zi-classic-paper, #fbfaf7) !important;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 72px 0 80px;
}

.zi-news-inner {
    position: relative;
    z-index: 2;
    width: min(100% - 2.5rem, 1180px);
    margin-inline: auto;
}

.zi-news-page {
    position: relative;
    isolation: isolate;
    padding: 72px 0 88px;
    background: var(--zi-classic-paper, #fbfaf7);
    overflow: hidden;
}

.zi-news-page-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 50% 40% at 10% 10%, rgba(28, 36, 75, 0.04), transparent 60%),
        radial-gradient(ellipse 40% 35% at 90% 85%, rgba(184, 149, 44, 0.06), transparent 65%);
}

.zi-news-page-inner {
    position: relative;
    z-index: 1;
    width: min(100% - 2.5rem, 1180px);
    margin-inline: auto;
}

.zi-news-header {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 42px;
}

.zi-news-eyebrow {
    margin: 0 0 12px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}

.zi-news-heading {
    margin: 0 0 16px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(32px, 3.6vw, 46px);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: 0.01em;
    color: var(--zi-classic-navy, #1c244b);
}

.zi-news-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 0 18px;
}

.zi-news-divider span {
    width: 6px;
    height: 6px;
    background: var(--zi-classic-navy, #1c244b);
    opacity: 0.3;
    transform: rotate(45deg);
}

.zi-news-divider span:nth-child(2) {
    width: 9px;
    height: 9px;
    opacity: 1;
    background: #2c5dab;
}

.zi-news-lead {
    margin: 0 auto;
    font-family: var(--zi-classic-sans);
    font-size: 15.5px;
    line-height: 1.85;
    color: #5a6275;
}

.zi-news-testi-deco {
    position: absolute;
    border: 22px solid rgba(255, 255, 255, 0.55);
    border-radius: 18%;
    transform: rotate(45deg);
    pointer-events: none;
    z-index: 0;
}

.zi-news-testi-deco--left {
    width: 280px;
    height: 280px;
    left: -140px;
    top: 18%;
    opacity: 0.7;
    border-color: rgba(28, 36, 75, 0.06);
}

.zi-news-testi-deco--right {
    width: 360px;
    height: 360px;
    right: -110px;
    top: 8%;
    opacity: 0.8;
    border-color: rgba(184, 149, 44, 0.12);
}

.elementor-2 .elementor-element-66432e2d .elementor-heading-title {
    text-align: center;
    font-family: var(--zi-classic-serif);
    font-size: clamp(32px, 3.6vw, 46px);
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    margin-bottom: 36px;
}

.zi-news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    width: 100%;
    padding-bottom: 10px;
}

.zi-news-card {
    background: #ffffff;
    border-radius: 0;
    overflow: hidden;
    box-shadow: 0 14px 36px rgba(28, 36, 75, 0.05);
    border: 1px solid rgba(28, 36, 75, 0.1);
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.zi-news-card:hover {
    transform: translateY(-4px);
    border-color: rgba(28, 36, 75, 0.18);
    box-shadow: 0 20px 44px rgba(28, 36, 75, 0.09);
}

.zi-news-media {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #1c244b;
}

.zi-news-yt-wrap,
.zi-news-img-wrap {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.zi-news-yt-wrap img,
.zi-news-img-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transition: transform 0.45s ease;
}

.zi-news-card:hover .zi-news-yt-wrap img,
.zi-news-card:hover .zi-news-img-wrap img {
    transform: scale(1.04);
}

.zi-news-play {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgba(28, 36, 75, 0.18);
    transition: background 0.25s ease;
}

.zi-news-play svg {
    width: 58px;
    height: auto;
    filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.25));
    transition: transform 0.25s ease;
}

.zi-news-yt-wrap:hover .zi-news-play {
    background: rgba(28, 36, 75, 0.28);
}

.zi-news-yt-wrap:hover .zi-news-play svg {
    transform: scale(1.05);
}

.zi-news-link-icon {
    position: absolute;
    right: 12px;
    bottom: 12px;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    background: rgba(28, 36, 75, 0.88);
    color: #fff;
    font-size: 14px;
    line-height: 1;
    border-radius: 0;
    box-shadow: none;
    top: auto;
}

.zi-news-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px 20px 22px;
    flex: 1;
}

.zi-news-card-title,
.zi-news-title {
    margin: 0;
    font-family: var(--zi-classic-serif);
    font-size: clamp(18px, 1.5vw, 22px);
    font-weight: 600;
    line-height: 1.35;
    color: var(--zi-classic-navy, #1c244b);
    letter-spacing: 0.01em;
}

.zi-news-body p,
.zi-news-excerpt {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    line-height: 1.7;
    color: #5a6275;
    flex: 1;
}

.zi-news-tag {
    align-self: flex-start;
    margin-top: auto;
    padding: 5px 10px;
    border: 1px solid rgba(28, 36, 75, 0.12);
    background: rgba(28, 36, 75, 0.04);
    border-radius: 0;
    font-family: var(--zi-classic-sans);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--zi-classic-navy, #1c244b);
    width: fit-content;
    display: inline-flex;
    gap: 4px;
}

.zi-news-tag-video {
    border-color: #2c5dab;
    background: #2c5dab;
    color: #fff;
}

.zi-news-tag-news {
    border-color: #2c5dab;
    background: #2c5dab;
    color: #fff;
}

.zi-news-cta {
    display: flex;
    justify-content: flex-end;
    margin-top: 36px;
}

.zi-news-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 18px;
    border: 0 !important;
    border-radius: 10px !important;
    background: transparent !important;
    background-image: linear-gradient(180deg, #2c5dab 0%, #5187DD 100%) !important;
    color: #fff !important;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: none;
    text-decoration: none !important;
    box-shadow: none !important;
    transform: none !important;
    transition: opacity 0.15s ease;
}

.zi-news-cta-btn:hover {
    background: transparent !important;
    background-image: linear-gradient(180deg, var(--e-global-color-primary, #2C5DAB) 0%, #2C5DAB 100%) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: none !important;
    transform: none !important;
    opacity: 1;
}

@media (max-width: 1024px) {
    .zi-news-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .zi-news-section,
    .elementor-2 .elementor-element-3db92752,
    .zi-news-page { padding: 48px 0 56px; }
    .zi-news-grid { grid-template-columns: 1fr; }
    .zi-news-testi-deco { display: none; }
}

/* ===== Board of Corporate Directors (dynamic) ===== */


.elementor-2 .elementor-element-412bbd81 .elementor-heading-title {
    text-align: center;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 30px;
    font-weight: 700;
    color: var(--e-global-color-primary, #1c244b);
    margin-bottom: 36px;
}

.elementor-2 .elementor-element-5278968f {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 26px !important;
    padding-top: 6px;
}

.elementor-2 .elementor-element-5278968f .elementor-widget-image-box {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 32px 22px;
    box-shadow: 0 4px 14px rgba(16, 24, 40, 0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    height: 100%;
}

.elementor-2 .elementor-element-5278968f .elementor-widget-image-box:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 34px rgba(16, 24, 40, 0.12);
    border-color: var(--e-global-color-primary, #1c244b);
}

.elementor-2 .elementor-element-5278968f .elementor-image-box-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.elementor-2 .elementor-element-5278968f .elementor-image-box-img {
    width: 130px;
    height: 130px;
    margin: 0 0 18px;
    border-radius: 50%;
    overflow: hidden;
    padding: 5px;
    background: #ffffff;
    box-shadow: 0 0 0 3px var(--e-global-color-primary, #1c244b);
}

.elementor-2 .elementor-element-5278968f .elementor-image-box-img img {
    width: 100% !important;
    height: 100% !important;
    border-radius: 50%;
    object-fit: cover;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.elementor-2 .elementor-element-5278968f .elementor-image-box-title {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--e-global-color-primary, #1c244b);
    margin: 6px 0 4px;
}

.elementor-2 .elementor-element-5278968f .elementor-image-box-description {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.6;
    color: #6b7280;
    margin: 0;
}

.elementor-2 .elementor-element-5278968f .elementor-image-box-description b {
    color: #374151;
}

@media (max-width: 1024px) {
    .elementor-2 .elementor-element-5278968f {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 600px) {
    .elementor-2 .elementor-element-5278968f {
        grid-template-columns: 1fr !important;
    }
}

/* International Partnership gallery cards */
.elementor-2 .elementor-element-259f4ea .gallery {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    margin: 0;
}

.elementor-2 .elementor-element-259f4ea .gallery-item {
    width: auto !important;
    margin: 0 !important;
    flex: 0 1 220px;
}

.elementor-2 .elementor-element-259f4ea .gallery-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 120px;
    padding: 22px 26px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(16, 24, 40, 0.05);
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.elementor-2 .elementor-element-259f4ea .gallery-item:hover .gallery-icon {
    box-shadow: 0 12px 26px rgba(16, 24, 40, 0.1);
    border-color: var(--e-global-color-primary, #1c244b);
}

.elementor-2 .elementor-element-259f4ea .gallery-item img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 74px !important;
    object-fit: contain;
}

.elementor-background-video-container {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 0;
    direction: ltr;
    background-image: none !important;
    pointer-events: none;
}

.elementor-background-video-embed {
    display: block !important;
    background-image: none !important;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 100%;
    transform: translate(-50%, -50%);
    border: 0;
    object-fit: cover;
    pointer-events: none;
}

@media (min-aspect-ratio: 16 / 9) {
    .elementor-background-video-embed {
        height: 56.25vw;
    }
}

@media (max-aspect-ratio: 16 / 9) {
    .elementor-background-video-embed {
        width: 177.78vh;
    }
}

/* Force container backgrounds to display */
.e-con, .elementor-container {
    background-attachment: scroll !important;
}

/* ===== Header chrome responsive ===== */
@media (max-width: 1024px) {
    .elementor-33 .elementor-element-7f1c3ce > .e-con-inner {
        flex-wrap: wrap !important;
        gap: 12px !important;
        padding-top: 12px !important;
        padding-bottom: 12px !important;
    }

    .elementor-33 .elementor-element-3143ee7,
    .elementor-33 .elementor-element-3f1cb2e {
        width: 100% !important;
        max-width: 100% !important;
    }

    .elementor-33 .elementor-element-f7168dc {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 10px 20px !important;
        justify-content: flex-start !important;
    }

    .elementor-33 .elementor-element-f7168dc .elementor-icon-box-title {
        font-size: 12px !important;
    }

    .elementor-33 .elementor-element-f7168dc .elementor-icon-box-description {
        font-size: 13px !important;
        word-break: break-word;
    }

    .elementor-33 .hfe-site-logo-img {
        max-height: 56px !important;
        width: auto !important;
    }
}

@media (max-width: 767px) {
    .elementor-33 .elementor-element-8c69afb > .e-con-inner {
        flex-direction: column !important;
        align-items: center !important;
        gap: 8px !important;
        text-align: center;
    }

    .elementor-33 .elementor-element-1b5b699,
    .elementor-33 .elementor-element-0ddea93 {
        width: 100% !important;
        justify-content: center !important;
    }

    .elementor-33 .elementor-element-7211e75 .elementor-icon-list-items {
        justify-content: center !important;
    }

    .elementor-33 .elementor-element-6457c54 .elementor-social-icons-wrapper {
        justify-content: center !important;
    }

    .elementor-33 .elementor-element-7f1c3ce > .e-con-inner {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center;
    }

    .elementor-33 .elementor-element-f7168dc {
        justify-content: center !important;
    }

    .elementor-33 .hfe-site-logo-img {
        max-height: 48px !important;
    }

    .elementor-2 .elementor-element-a52b4a4 .elementor-heading-title,
    .elementor-2 .elementor-element-2e2a947 .elementor-heading-title,
    .elementor-2 .elementor-element-412bbd81 .elementor-heading-title {
        font-size: 24px !important;
    }

    .elementor-2 .elementor-element-7b53acc .zi-marquee-item {
        width: 150px;
        height: 90px;
        padding: 14px 16px;
    }
}

/* ===== Luxiren-style agency bands (CMS) ? blue palette ===== */
.zi-agency-container {
    width: 100%;
    max-width: var(--zi-content-max, 1200px);
    margin: 0 auto;
    padding: 0 var(--zi-content-pad, 24px);
    box-sizing: border-box;
}

.zi-agency-h3 {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(28px, 3vw, 48px);
    font-weight: 700;
    line-height: 1.15;
    color: #0d47a1;
}

.zi-agency-h3--services {
    color: #0d47a1;
}

.zi-agency-deco {
    position: relative;
    display: inline-block;
}

.zi-agency-deco::before {
    content: "";
    position: absolute;
    left: -12px;
    top: 0.15em;
    width: 6px;
    height: 1.1em;
    border-radius: 3px;
    background: #2196f3;
}

.zi-agency-lead {
    margin: 0 0 20px;
    padding: 0;
    font-family: var(--zi-classic-serif);
    font-size: clamp(24px, 2.6vw, 36px);
    font-weight: 600;
    line-height: 1.3;
    color: var(--zi-classic-navy);
    letter-spacing: 0.01em;
}

.zi-agency-about {
    padding: 72px 0 40px;
    background: #fff;
}

.zi-agency-about-grid {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 40px;
    align-items: start;
}

.zi-agency-counters {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin: 28px 0 32px;
}

.zi-agency-counter-value {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(28px, 3.2vw, 48px);
    font-weight: 700;
    line-height: 1.2;
    color: #0d47a1;
}

.zi-agency-counter-label {
    margin: 4px 0 0;
    font-size: clamp(16px, 1.6vw, 22px);
    font-weight: 600;
    color: #607d8b;
    text-transform: lowercase;
}

.zi-agency-quote {
    margin: 0;
    padding: 0;
    border: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    font-style: italic;
    line-height: 1.7;
    color: #78909c;
}

.zi-agency-services {
    position: relative;
    padding: 80px 0 70px;
    overflow: visible; /* allow Luxiren dots to spill outside while scrolling */
    background: #f7fbff;
    z-index: 1;
}

/* Luxiren-style large parallax dots (SVG) ? can leave the section */
.zi-agency-services-dots {
    fill: rgba(25, 55, 95, 0.45);
    width: 845px;
    height: 1099px;
    opacity: 0.22;
    top: -20px;
    left: -20px;
    transform: scale(0.5);
    transform-origin: left top;
    position: absolute;
    pointer-events: none;
    z-index: 0;
    overflow: visible;
    will-change: transform;
}

.zi-agency-services-diamond {
    position: absolute;
    right: -110px;
    top: 48%;
    width: 340px;
    height: 340px;
    border: 22px solid rgba(128, 222, 234, 0.5);
    border-radius: 18%;
    transform: translateY(-50%) rotate(45deg);
    pointer-events: none;
    z-index: 0;
    will-change: transform;
}

.zi-agency-services-stage {
    position: relative;
    z-index: 2;
    width: 100%;
    min-height: 420px;
    padding-bottom: 12px;
}

.zi-agency-services-slider {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 48px 0 24px;
    box-sizing: border-box;
    overflow: hidden !important;
    cursor: grab;
    touch-action: pan-y;
    -webkit-user-select: none;
    user-select: none;
}

.zi-agency-services-slider.is-dragging {
    cursor: grabbing;
}

.zi-agency-services-track {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: 16px;
    width: max-content !important;
    min-width: max-content !important;
    will-change: transform;
    transform: translate3d(0, 0, 0);
}

.zi-agency-service-card {
    background: #fff;
    border-radius: 12px;
    width: 240px;
    min-width: 240px;
    max-width: 240px;
    min-height: 330px;
    padding: 24px 16px 20px;
    margin-top: 24px;
    box-shadow: 0 1.5px 12px 2px rgba(0, 0, 0, 0.06);
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    flex: 0 0 240px;
    user-select: none;
    -webkit-user-drag: none;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.zi-agency-service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 28px rgba(25, 55, 95, 0.12);
}

.zi-agency-service-card:focus-visible {
    outline: 2px solid #2196f3;
    outline-offset: 3px;
}

.zi-agency-service-card figure {
    margin: 0 0 16px;
    min-height: 125px;
    height: 125px;
    padding: 10px 12px;
    border-radius: 12px;
    overflow: hidden;
    background: linear-gradient(180deg, #edf2f8 0%, #f8fafc 100%);
    box-shadow: 0 1.5px 12px 6px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
}

.zi-agency-service-card figure img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
}

.zi-agency-service-body h6 {
    margin: 0 0 12px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    color: #1a237e;
}

.zi-agency-service-body p,
.zi-agency-service-desc {
    margin: 0 0 18px;
    height: 90px;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.55;
    color: #78909c;
}

.zi-agency-service-desc p {
    margin: 0 0 0.45em;
    height: auto;
    overflow: visible;
}

.zi-agency-service-desc p:last-child {
    margin-bottom: 0;
}

.zi-agency-service-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: auto;
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #2196f3 !important;
    border-radius: 4px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #2196f3 !important;
    background: transparent !important;
    text-decoration: none;
    cursor: pointer;
    pointer-events: none; /* whole card handles click */
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
}

.zi-agency-service-card:hover .zi-agency-service-btn {
    background: #2c5dab !important;
    border-color: #2c5dab !important;
    color: #fff !important;
}

/* ===== Service detail modal ? classic professional details page ===== */
.zi-service-modal {
    position: fixed;
    inset: 0;
    z-index: 10060 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px 24px;
    background:
        radial-gradient(ellipse 70% 55% at 50% -10%, rgba(33, 150, 243, 0.16), transparent 58%),
        rgba(8, 14, 28, 0.78);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    overflow-y: auto;
}

.zi-service-modal[hidden] {
    display: none !important;
}

.zi-service-modal-dialog {
    position: relative;
    width: min(1280px, 96vw);
    max-height: calc(100vh - 40px);
    margin: auto;
    background: #f4f7fb;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 6px;
    overflow: hidden;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.14) inset,
        0 40px 100px rgba(0, 0, 0, 0.42);
    animation: zi-service-modal-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
    display: flex;
    flex-direction: column;
}

@keyframes zi-service-modal-in {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}

.zi-service-modal-close {
    position: absolute;
    top: 22px;
    right: 22px;
    z-index: 5;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(28, 36, 75, 0.1) !important;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.96) !important;
    color: #1c244b !important;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.14);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.zi-service-modal-close:hover {
    background: #2c5dab !important;
    border-color: #2c5dab !important;
    color: #fff !important;
    transform: translateY(-1px);
}

.zi-service-modal-shell {
    overflow-y: auto;
    max-height: calc(100vh - 40px);
}

.zi-service-modal-media {
    position: relative;
    width: 100%;
    min-height: 240px;
    max-height: min(560px, 54vh);
    padding: 52px 48px 24px;
    background:
        radial-gradient(circle at 50% 0%, rgba(29, 79, 156, 0.08), transparent 55%),
        linear-gradient(180deg, #edf2f8 0%, #f8fafc 100%);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.zi-service-modal-media[hidden] {
    display: none !important;
}

.zi-service-modal-media img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: min(480px, 50vh);
    object-fit: contain;
    object-position: center;
    display: block;
    border-radius: 10px;
    background: #fff;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.9) inset,
        0 18px 48px rgba(15, 23, 42, 0.14);
    transform: none;
}

.zi-service-modal-media::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, transparent 72%, rgba(248, 250, 252, 0.55) 100%);
    pointer-events: none;
}

.zi-service-modal-media::after {
    content: "";
    position: absolute;
    left: 48px;
    right: 48px;
    bottom: 0;
    z-index: 1;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, #2c5dab 0%, #1c244b 55%, transparent 100%);
    pointer-events: none;
}

.zi-service-modal-media-badge {
    position: absolute;
    left: 48px;
    top: 24px;
    bottom: auto;
    z-index: 2;
    padding: 10px 16px;
    background: rgba(255, 255, 255, 0.96);
    border-left: 3px solid #2c5dab;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #1c244b;
}

.zi-service-modal-main {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.75fr);
    gap: 32px;
    padding: 28px 48px 48px;
    margin-top: 0;
    min-width: 0;
}

.zi-service-modal-article {
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.05);
    border-radius: 4px;
    padding: 48px 52px 52px;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.08);
    min-width: 0;
    overflow: hidden;
}

.zi-service-modal-header {
    margin-bottom: 28px;
    padding-bottom: 24px;
    border-bottom: 1px solid #e6edf5;
}

.zi-service-modal-eyebrow {
    display: inline-block;
    margin-bottom: 14px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #1d4f9c;
}

.zi-service-modal-title {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(30px, 3.6vw, 42px);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.03em;
    color: #1c244b;
}

.zi-service-modal-subtitle {
    margin: 14px 0 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    font-style: italic;
    line-height: 1.55;
    color: #78909c;
}

.zi-service-modal-subtitle[hidden] {
    display: none !important;
}

.zi-service-modal-rule {
    width: 64px;
    height: 2px;
    margin-top: 20px;
    background: #1c244b;
    position: relative;
}

.zi-service-modal-rule::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 22px;
    height: 2px;
    background: #2c5dab;
}

.zi-service-modal-prose {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 17.5px;
    line-height: 1.9;
    color: #4b5563;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-wrap: anywhere;
    word-break: break-word;
    -webkit-overflow-scrolling: touch;
}

.zi-service-modal-prose p {
    margin: 0 0 0.85em;
}

.zi-service-modal-prose p:last-child {
    margin-bottom: 0;
}

/* Contain pasted CMS HTML (Google Docs / Summernote tables & inline styles) */
.zi-service-modal-prose h1,
.zi-service-modal-prose h2,
.zi-service-modal-prose h3,
.zi-service-modal-prose h4,
.zi-service-modal-prose h5,
.zi-service-modal-prose h6 {
    margin: 1.15em 0 0.45em;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: clamp(18px, 2.2vw, 24px) !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: #1c244b !important;
    letter-spacing: normal !important;
}

.zi-service-modal-prose h1:first-child,
.zi-service-modal-prose h2:first-child,
.zi-service-modal-prose h3:first-child {
    margin-top: 0;
}

.zi-service-modal-prose span,
.zi-service-modal-prose p,
.zi-service-modal-prose li,
.zi-service-modal-prose td,
.zi-service-modal-prose th {
    white-space: normal !important;
    white-space-collapse: collapse !important;
    background-color: transparent !important;
}

.zi-service-modal-prose img,
.zi-service-modal-prose iframe,
.zi-service-modal-prose video {
    max-width: 100% !important;
    height: auto !important;
}

.zi-service-modal-prose ul,
.zi-service-modal-prose ol {
    margin: 0 0 1em;
    padding-left: 1.35em;
}

.zi-service-modal-prose table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    border-collapse: collapse !important;
    table-layout: fixed !important;
    font-size: 13.5px !important;
    line-height: 1.45 !important;
    background: #fff !important;
}

.zi-service-modal-prose .zi-cms-table-wrap {
    width: 100%;
    max-width: 100%;
    margin: 1em 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid #e5eaf1;
    border-radius: 4px;
}

.zi-service-modal-prose thead,
.zi-service-modal-prose tbody,
.zi-service-modal-prose tr {
    width: auto;
}

.zi-service-modal-prose th,
.zi-service-modal-prose td {
    padding: 10px 12px !important;
    border: 1px solid #dde3ec !important;
    vertical-align: top !important;
    text-align: left !important;
    color: #374151 !important;
    font-size: 13.5px !important;
    line-height: 1.45 !important;
    word-break: break-word !important;
}

.zi-service-modal-prose th {
    background: #f3f6fb !important;
    font-weight: 700 !important;
    color: #1c244b !important;
}

.zi-service-modal-aside {
    align-self: start;
    position: sticky;
    top: 24px;
    min-width: 0;
}

.zi-service-modal-cta-card {
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.05);
    border-top: 3px solid #1c244b;
    border-radius: 4px;
    padding: 34px 28px 30px;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.07);
}

.zi-service-modal-cta-label {
    display: block;
    margin-bottom: 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-service-modal-cta-text {
    margin: 0 0 26px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: #6b7280;
}

.zi-service-modal-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 15px 18px;
    border-radius: 3px !important;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
    background-image: none !important;
    box-shadow: none !important;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.zi-service-modal-btn--primary {
    background: #2c5dab !important;
    background-color: #2c5dab !important;
    color: #fff !important;
    border: 1px solid #2c5dab !important;
}

.zi-service-modal-btn--primary:hover,
.zi-service-modal-btn--primary:focus {
    background: #304d7b !important;
    background-color: #2c5dab !important;
    background-image: none !important;
    border-color: #2c5dab !important;
    color: #fff !important;
    transform: translateY(-1px);
}

.zi-service-modal-btn--ghost {
    margin-top: 12px;
    background: transparent !important;
    background-color: transparent !important;
    color: #1c244b !important;
    border: 1px solid rgba(28, 36, 75, 0.2) !important;
}

.zi-service-modal-btn--ghost:hover,
.zi-service-modal-btn--ghost:focus {
    background: #f3f6fa !important;
    background-image: none !important;
    color: #1c244b !important;
}

.zi-service-modal-btn[hidden] {
    display: none !important;
}

/* Block Elementor kit button styles inside manufacturing modal */
.elementor-kit-7 .zi-service-modal button.zi-service-modal-close,
.elementor-kit-7 .zi-service-modal button.zi-service-modal-close:hover,
.elementor-kit-7 .zi-service-modal button.zi-service-modal-close:focus,
.elementor-kit-7 .zi-service-modal a.zi-service-modal-btn,
.elementor-kit-7 .zi-service-modal a.zi-service-modal-btn:hover,
.elementor-kit-7 .zi-service-modal a.zi-service-modal-btn:focus {
    background-image: none !important;
    border-radius: 3px !important;
}

body.zi-service-modal-open {
    overflow: hidden;
}

@media (max-width: 1100px) {
    .zi-service-modal-main {
        grid-template-columns: minmax(0, 1.4fr) minmax(260px, 0.8fr);
        padding: 8px 28px 36px;
        gap: 22px;
    }

    .zi-service-modal-article {
        padding: 36px 32px 40px;
    }
}

@media (max-width: 900px) {
    .zi-service-modal {
        padding: 0;
        align-items: stretch;
    }

    .zi-service-modal-dialog {
        width: 100%;
        max-height: 100vh;
        border-radius: 0;
        min-height: 100vh;
    }

    .zi-service-modal-shell {
        max-height: 100vh;
    }

    .zi-service-modal-media {
        min-height: 200px;
        max-height: 42vh;
        padding: 44px 16px 16px;
    }

    .zi-service-modal-media img {
        max-height: 38vh;
        border-radius: 8px;
    }

    .zi-service-modal-media::after {
        left: 16px;
        right: 16px;
    }

    .zi-service-modal-media-badge {
        left: 16px;
        top: 16px;
    }

    .zi-service-modal-main {
        grid-template-columns: 1fr;
        margin-top: 0;
        padding: 0 16px 28px;
        gap: 16px;
    }

    .zi-service-modal-article {
        padding: 28px 22px 30px;
    }

    .zi-service-modal-aside {
        position: static;
    }

    .zi-service-modal-prose {
        font-size: 16px;
        max-width: none;
    }

    .zi-service-modal-close {
        top: 12px;
        right: 12px;
        width: 40px;
        height: 40px;
    }
}

/* Title sits UNDER the cards ? covered when slides pass over */
.zi-agency-services-float {
    position: absolute;
    right: max(28px, calc((100vw - 1200px) / 2));
    top: -75px;
    z-index: 1;
    width: 200px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    pointer-events: none;
}

.zi-agency-services-apps {
    display: block;
    width: 48px;
    height: 48px;
    background-image:
        linear-gradient(#80deea 0 0),
        linear-gradient(#80deea 0 0),
        linear-gradient(#80deea 0 0),
        linear-gradient(#80deea 0 0),
        linear-gradient(#80deea 0 0),
        linear-gradient(#80deea 0 0),
        linear-gradient(#80deea 0 0),
        linear-gradient(#80deea 0 0),
        linear-gradient(#80deea 0 0);
    background-size: 10px 10px;
    background-position:
        0 0, 19px 0, 38px 0,
        0 19px, 19px 19px, 38px 19px,
        0 38px, 19px 38px, 38px 38px;
    background-repeat: no-repeat;
    border-radius: 2px;
    opacity: 0.9;
}

.zi-agency-services-title {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    font-family: var(--zi-classic-serif);
    font-size: clamp(38px, 4.2vw, 56px);
    font-weight: 600;
    line-height: 1.05;
    color: var(--zi-classic-navy);
    letter-spacing: 0.01em;
}

.zi-agency-services-title span {
    display: block;
}

/* Nav below the cards ? always clickable */
.zi-agency-services-nav {
    position: relative;
    z-index: 50;
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 12px max(28px, calc((100vw - 1200px) / 2)) 0;
    margin-top: 4px;
    pointer-events: auto !important;
}

.zi-agency-services-nav .zi-agency-fab {
    pointer-events: auto !important;
    cursor: pointer !important;
    z-index: 51;
    width: 44px;
    height: 44px;
    border: 0 !important;
    border-radius: 50% !important;
    background: #e8eef7 !important;
    color: #2c5dab !important;
    font-size: 20px;
    line-height: 1;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-shadow: 0 3px 10px rgba(44, 93, 171, 0.18);
}

.zi-agency-services-nav .zi-agency-fab:hover {
    background: #2c5dab !important;
    color: #fff !important;
}

.zi-agency-floating {
    position: relative;
    z-index: 2;
    margin-top: -20px;
}

.zi-agency-floating-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.zi-agency-floating-title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.zi-agency-float-icon {
    font-size: 72px;
    color: rgba(128, 222, 234, 0.85);
    margin: 40px 0 12px;
}

.zi-agency-nav {
    display: flex;
    gap: 12px;
    padding-bottom: 8px;
}

.zi-agency-fab {
    width: 40px;
    height: 40px;
    border: 0 !important;
    border-radius: 50% !important;
    background: #e3f2fd !important;
    color: #1565c0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 3px 10px rgba(33, 150, 243, 0.18);
    transition: background 0.2s ease, color 0.2s ease;
    padding: 0;
    font-size: 14px;
}

.zi-agency-fab:hover,
.zi-agency-fab:focus {
    background: #2196f3 !important;
    color: #fff !important;
    outline: none;
}

.zi-agency-expertise {
    position: relative;
    z-index: 0;
    isolation: isolate;
    padding: 130px 0;
    background: linear-gradient(135deg, #ffffff 0%, #f3f9ff 48%, #e8f4fc 100%);
    overflow: visible;
}

.zi-agency-expertise-bg {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(115deg, transparent 40%, rgba(179, 229, 252, 0.35) 40%, rgba(179, 229, 252, 0.35) 58%, transparent 58%),
        linear-gradient(115deg, transparent 62%, rgba(225, 245, 254, 0.5) 62%, rgba(225, 245, 254, 0.5) 78%, transparent 78%);
    pointer-events: none;
}

.zi-agency-expertise-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 48px;
    align-items: center;
}

.zi-agency-expertise-title-col {
    display: flex;
    justify-content: center;
    overflow: visible;
}

.zi-agency-diamond-wrap {
    position: relative;
    width: min(440px, 100%);
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
}

.zi-agency-orbit {
    position: absolute;
    inset: 18%;
    border: 1.5px solid rgba(90, 130, 170, 0.35);
    border-radius: 22%;
    transform: rotate(45deg);
    pointer-events: none;
    will-change: transform;
    box-shadow: inset 0 0 24px rgba(255, 255, 255, 0.15);
    z-index: 2;
}

.zi-agency-orbit--2 {
    inset: 8%;
    border-color: rgba(120, 160, 195, 0.32);
    border-radius: 24%;
}

.zi-agency-orbit--3 {
    inset: -2%;
    border-color: rgba(150, 180, 210, 0.28);
    border-radius: 26%;
}

.zi-agency-diamond {
    position: relative;
    z-index: 2;
    width: 46%;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: linear-gradient(145deg, #3d7ab8 0%, #1a3d6d 48%, #0f2744 100%);
    border-radius: 22%;
    transform: rotate(45deg);
    border: 1px solid rgba(255, 255, 255, 0.22);
    box-shadow:
        0 22px 48px rgba(15, 39, 68, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        inset 0 -8px 20px rgba(0, 0, 0, 0.18);
    will-change: transform;
}

.zi-agency-video-card {
    position: absolute;
    z-index: 3;
    /* Match innermost orbit (.zi-agency-orbit inset: 18%) */
    inset: 18%;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    border-radius: 22%;
    transform: rotate(45deg);
    overflow: hidden;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    background: #0b1c33;
    border: 0;
    box-shadow:
        0 18px 40px rgba(15, 39, 68, 0.28),
        inset 0 0 0 1.5px rgba(90, 130, 170, 0.35);
    will-change: transform;
}

.zi-agency-video-card-media {
    position: absolute;
    inset: -42%;
    transform: rotate(-45deg);
    overflow: hidden;
}

.zi-agency-video-card-iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 200%;
    height: 200%;
    border: 0;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.zi-agency-video-card-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: rotate(-45deg);
    background: radial-gradient(circle at center, rgba(15, 39, 68, 0.18) 0%, rgba(15, 39, 68, 0.05) 55%, transparent 72%);
    pointer-events: none;
}

.zi-agency-video-card:hover .zi-agency-video-card-overlay,
.zi-agency-video-card:focus-visible .zi-agency-video-card-overlay {
    background: radial-gradient(circle at center, rgba(15, 39, 68, 0.28) 0%, rgba(15, 39, 68, 0.1) 55%, transparent 72%);
}

button.zi-agency-diamond {
    appearance: none;
    -webkit-appearance: none;
    margin: 0;
    padding: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
    outline: none;
    border: 1px solid rgba(255, 255, 255, 0.22);
    transition: box-shadow 0.35s ease, filter 0.35s ease;
    overflow: hidden;
}

button.zi-agency-diamond::-moz-focus-inner {
    border: 0;
    padding: 0;
}

button.zi-agency-diamond:hover,
button.zi-agency-diamond:focus,
button.zi-agency-diamond:focus-visible,
button.zi-agency-diamond:active {
    outline: none;
    border: 1px solid rgba(255, 255, 255, 0.35);
    box-shadow:
        0 28px 56px rgba(15, 39, 68, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        inset 0 -8px 20px rgba(0, 0, 0, 0.18);
    filter: brightness(1.06);
}

.zi-agency-diamond--video {
    z-index: 3;
    width: 34%;
    background: linear-gradient(145deg, rgba(61, 122, 184, 0.88) 0%, rgba(26, 61, 109, 0.82) 48%, rgba(15, 39, 68, 0.78) 100%);
}

.zi-agency-diamond-inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    transform: rotate(-45deg);
    padding: 10px;
}

.zi-agency-diamond h3 {
    margin: 0;
    transform: rotate(-45deg);
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(20px, 2.2vw, 28px);
    font-weight: 700;
    line-height: 1.15;
    color: #fff;
    padding: 14px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
    letter-spacing: 0.01em;
}

.zi-agency-diamond--video .zi-agency-diamond-inner {
    gap: 0;
}

.zi-agency-play {
    position: relative;
    width: 64px;
    height: 64px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.zi-agency-play-pulse {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, 0.55);
    animation: zi-agency-play-pulse 2.4s ease-out infinite;
    pointer-events: none;
}

.zi-agency-play-pulse--delay {
    animation-delay: 1.1s;
}

.zi-agency-play-core {
    position: relative;
    z-index: 1;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #0f2744;
    background:
        linear-gradient(160deg, #ffffff 0%, #e8f4fc 45%, #bbdefb 100%);
    border: 1px solid rgba(255, 255, 255, 0.85);
    box-shadow:
        0 10px 24px rgba(8, 24, 48, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.zi-agency-play-core svg {
    margin-left: 2px;
    display: block;
}

button.zi-agency-diamond:hover .zi-agency-play-core,
button.zi-agency-diamond:focus-visible .zi-agency-play-core {
    transform: scale(1.08);
    box-shadow:
        0 14px 28px rgba(8, 24, 48, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

@keyframes zi-agency-play-pulse {
    0% {
        transform: scale(0.92);
        opacity: 0.85;
    }
    100% {
        transform: scale(1.55);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .zi-agency-play-pulse {
        animation: none;
        opacity: 0.35;
    }
}

.zi-agency-orbit-icon {
    position: absolute;
    z-index: 3;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 26px;
    border: 2px solid rgba(255, 255, 255, 0.4);
    background: linear-gradient(150deg, #5a8fbf 0%, #1e4a78 100%);
    box-shadow:
        0 14px 32px rgba(15, 39, 68, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        inset 0 -3px 8px rgba(0, 0, 0, 0.18);
    will-change: transform;
    pointer-events: none;
}

.zi-agency-orbit-icon i {
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.2));
}

.zi-agency-orbit-icon--1 {
    top: -15%;
    left: 7%;
    width: 90px;
    height: 90px;
    font-size: 34px;
    background: linear-gradient(150deg, #6ba3d4 0%, #1f5f9a 55%, #163f6b 100%);
}

.zi-agency-orbit-icon--2 {
    top: 10%;
    right: 6%;
    width: 74px;
    height: 74px;
    font-size: 26px;
    background: linear-gradient(150deg, #5eb8c9 0%, #1a6d7a 55%, #124a54 100%);
}

.zi-agency-orbit-icon--3 {
    top: 38%;
    right: -2%;
    width: 48px;
    height: 48px;
    font-size: 17px;
    background: linear-gradient(150deg, #8fa4b8 0%, #3d5166 55%, #243442 100%);
}

.zi-agency-orbit-icon--4 {
    bottom: 22%;
    left: 2%;
    width: 72px;
    height: 72px;
    font-size: 26px;
    background: linear-gradient(150deg, #4aa3c7 0%, #17698a 55%, #0f4560 100%);
}

.zi-agency-orbit-icon--5 {
    bottom: 6%;
    left: 18%;
    width: 44px;
    height: 44px;
    font-size: 15px;
    background: linear-gradient(150deg, #6f9e86 0%, #2f5f4a 55%, #1d3d30 100%);
}

.zi-agency-orbit-icon--6 {
    bottom: -50px;
    right: 6%;
    width: 102px;
    height: 102px;
    font-size: 38px;
    background: linear-gradient(150deg, #4d6f9a 0%, #1a3358 50%, #0c1d36 100%);
    border-color: rgba(212, 175, 55, 0.35);
    box-shadow:
        0 18px 40px rgba(12, 29, 54, 0.4),
        0 0 0 1px rgba(212, 175, 55, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.4),
        inset 0 -4px 10px rgba(0, 0, 0, 0.22);
}

.zi-agency-orbit-icon--7 {
    top: 52%;
    right: 10%;
    width: 52px;
    height: 52px;
    font-size: 18px;
    background: linear-gradient(150deg, #c9a84c 0%, #8a6b24 55%, #5c4716 100%);
    border-color: rgba(255, 236, 180, 0.45);
}

.zi-agency-desc {
    margin: 0 0 28px;
    padding: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #78909c;
    max-width: 540px;
}

.zi-agency-desc p {
    margin: 0 0 0.75em;
}

.zi-agency-desc p:last-child {
    margin-bottom: 0;
}

.zi-agency-tags-wrap {
    max-width: 560px;
    height: 168px;
    overflow: hidden;
    mask-image: linear-gradient(180deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
}

.zi-agency-tags-slider {
    height: 168px;
}

.zi-agency-tags-slider .swiper-slide {
    height: 56px;
    display: flex;
    align-items: center;
    opacity: 0.55;
    transition: opacity 0.35s ease;
}

.zi-agency-tags-slider .swiper-slide-active {
    opacity: 1;
}

.zi-agency-tag-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    width: 100%;
}

.zi-agency-tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 20px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(144, 164, 174, 0.4);
    font-size: 14px;
    font-weight: 600;
    color: #37474f;
    box-shadow: 0 2px 8px rgba(33, 150, 243, 0.05);
    text-transform: capitalize;
    text-decoration: none !important;
    min-width: 140px;
    transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}

a.zi-agency-tag:hover {
    text-decoration: none !important;
}

.zi-agency-tags-slider .swiper-slide-active .zi-agency-tag {
    background: #2c5dab;
    border-color: #2c5dab;
    color: #fff;
    box-shadow: 0 6px 16px rgba(44, 93, 171, 0.22);
}

.zi-agency-testimonials {
    position: relative;
    padding: 70px 0 90px;
    overflow: hidden;
    background: transparent;
}

.zi-agency-testi-deco {
    position: absolute;
    border: 28px solid rgba(255, 255, 255, 0.72);
    border-radius: 18%;
    transform: rotate(45deg);
    pointer-events: none;
    z-index: 0;
}

.zi-agency-testi-deco--left {
    width: 320px;
    height: 320px;
    left: -160px;
    top: 18%;
    opacity: 0.85;
}

.zi-agency-testi-deco--right {
    width: 420px;
    height: 420px;
    right: -120px;
    top: 8%;
    opacity: 0.95;
}

.zi-agency-testimonials-stage {
    position: relative;
    z-index: 1;
    width: 100%;
    min-height: 460px;
}

.zi-agency-testimonials-slider {
    position: relative;
    z-index: 2;
    margin-top: 100px;
    padding: 28px 0 48px;
    width: 100%;
}

.zi-agency-testimonials-slider .swiper-wrapper {
    align-items: flex-start;
}

.zi-agency-testimonials.is-few .zi-agency-testimonials-slider .swiper-wrapper {
    justify-content: center;
}

.zi-agency-testimonials.is-few .zi-agency-testimonials-slider .swiper-slide:nth-child(odd),
.zi-agency-testimonials.is-few .zi-agency-testimonials-slider .swiper-slide:nth-child(even) {
    margin-top: 28px;
}

.zi-agency-testimonials.is-few .zi-agency-testi-dots {
    display: none;
}

.zi-agency-testimonials-slider .swiper-slide {
    width: 260px;
    height: auto;
    box-sizing: border-box;
}

/* Luxiren wave: alternating card heights */
.zi-agency-testimonials-slider .swiper-slide:nth-child(odd) {
    margin-top: 56px;
}

.zi-agency-testimonials-slider .swiper-slide:nth-child(even) {
    margin-top: 0;
}

.zi-agency-testi {
    width: 240px;
}

.zi-agency-testi-card {
    background-color: #ffffff;
    color: rgba(0, 0, 0, 0.87);
    width: 240px;
    height: 240px;
    padding: 24px;
    box-sizing: border-box;
    border-radius: 50px 50px 50px 0;
    box-shadow: 0 1.5px 12px 2px rgba(0, 0, 0, 0.06);
    transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
    display: flex;
    flex-direction: column;
}

.zi-agency-testi-card:hover {
    box-shadow: 0 4px 18px 4px rgba(0, 0, 0, 0.08);
}

.zi-agency-testi-card p,
.zi-agency-testi-quote-body {
    margin: 0 0 16px;
    flex: 1 1 auto;
    overflow: hidden;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.6;
    color: #607d8b;
}

.zi-agency-stars {
    display: flex;
    gap: 3px;
    font-size: 14px;
    margin-top: auto;
}

.zi-agency-stars .is-on { color: #ffc107; }
.zi-agency-stars .is-off { color: rgba(0, 0, 0, 0.14); }

.zi-agency-testi-person {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
    padding-left: 4px;
}

.zi-agency-avatar-wrap {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 50%;
    overflow: hidden;
    display: block;
    box-shadow: 0 2px 10px rgba(33, 150, 243, 0.16);
}

.zi-agency-avatar,
.zi-agency-testimonials img.zi-agency-avatar {
    width: 48px !important;
    height: 48px !important;
    max-width: 48px !important;
    min-width: 48px;
    border-radius: 50% !important;
    object-fit: cover !important;
    object-position: center center;
    flex: 0 0 48px;
    display: block !important;
    overflow: hidden;
    border: 3px solid #fff !important;
    box-shadow: none;
}

.zi-agency-avatar--empty {
    display: inline-block !important;
    background: #bbdefb;
    border-radius: 50% !important;
}

.zi-agency-testi-meta h6 {
    margin: 0 0 2px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #0d47a1;
    line-height: 1.25;
}

.zi-agency-testi-meta span {
    display: block;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-style: italic;
    color: #90a4ae;
    line-height: 1.3;
}

/* Title floats on the right over the carousel */
.zi-agency-testimonials-float {
    position: absolute;
    right: max(24px, calc((100vw - 1200px) / 2));
    top: -145px;
    z-index: 3;
    width: 220px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    pointer-events: none;
}

.zi-agency-testimonials .zi-agency-float-icon {
    margin: 0 0 8px;
    font-size: 56px;
    line-height: 1;
    color: #80deea;
    opacity: 0.95;
}

.zi-agency-testimonials-title {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    font-family: var(--zi-classic-serif);
    font-size: clamp(36px, 3.8vw, 52px);
    font-weight: 600;
    line-height: 1.08;
    color: var(--zi-classic-navy);
    text-transform: none;
    letter-spacing: 0.01em;
}

.zi-agency-testimonials-title span {
    display: block;
}

.zi-agency-testi-dots {
    position: relative !important;
    inset: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    margin-top: 48px !important;
    display: flex !important;
    justify-content: center;
    align-items: center;
    gap: 8px;
}

.zi-agency-testi-dots .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    margin: 0 !important;
    background: rgba(44, 93, 171, 0.35);
    opacity: 1;
    border-radius: 50%;
    transition: width 0.28s ease, border-radius 0.28s ease, background 0.28s ease;
}

.zi-agency-testi-dots .swiper-pagination-bullet-active {
    width: 26px;
    border-radius: 8px;
    background: #2c5dab;
}

.zi-agency-floating--testi {
    margin-top: -10px;
}

.zi-agency-cases {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 80px 0 96px;
    background: var(--zi-classic-paper);
}

.zi-agency-cases > .zi-agency-container {
    position: relative;
    z-index: 2;
}

.zi-agency-cases-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 55% 60% at 8% 40%, rgba(28, 36, 75, 0.04), transparent 70%),
        radial-gradient(ellipse 45% 50% at 92% 70%, rgba(184, 149, 44, 0.06), transparent 68%);
}

.zi-agency-cases-gridlines {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0.28;
    background-image:
        linear-gradient(rgba(28, 36, 75, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(28, 36, 75, 0.05) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: radial-gradient(ellipse 75% 70% at 60% 45%, #000 20%, transparent 75%);
    -webkit-mask-image: radial-gradient(ellipse 75% 70% at 60% 45%, #000 20%, transparent 75%);
}

.zi-agency-cases-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(28, 36, 75, 0.1);
    pointer-events: none;
    z-index: 0;
}

.zi-agency-cases-ring--1 {
    width: 420px;
    height: 420px;
    left: -160px;
    top: 12%;
    box-shadow: inset 0 0 0 28px rgba(255, 255, 255, 0.35);
    animation: zi-cases-ring-drift 22s ease-in-out infinite alternate;
}

.zi-agency-cases-ring--2 {
    width: 260px;
    height: 260px;
    right: -80px;
    bottom: 10%;
    border-color: rgba(184, 149, 44, 0.2);
    animation: zi-cases-ring-drift 18s ease-in-out infinite alternate-reverse;
}

.zi-agency-cases-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(56px);
    pointer-events: none;
    z-index: 0;
}

.zi-agency-cases-blob--1 {
    width: 280px;
    height: 280px;
    top: -60px;
    right: 22%;
    background: rgba(28, 36, 75, 0.06);
    animation: zi-cases-blob-pulse 12s ease-in-out infinite alternate;
}

.zi-agency-cases-blob--2 {
    width: 220px;
    height: 220px;
    bottom: 40px;
    left: 28%;
    background: rgba(184, 149, 44, 0.08);
    animation: zi-cases-blob-pulse 15s ease-in-out infinite alternate-reverse;
}

@keyframes zi-cases-ring-drift {
    0%   { transform: translate(0, 0); }
    100% { transform: translate(18px, -14px); }
}

@keyframes zi-cases-blob-pulse {
    0%   { opacity: 0.55; transform: scale(1); }
    100% { opacity: 0.95; transform: scale(1.08); }
}

@media (prefers-reduced-motion: reduce) {
    .zi-agency-cases-ring,
    .zi-agency-cases-blob {
        animation: none;
    }
}

@media (max-width: 768px) {
    .zi-agency-cases-ring--1 {
        width: 240px;
        height: 240px;
        left: -100px;
    }

    .zi-agency-cases-ring--2 {
        width: 160px;
        height: 160px;
        right: -50px;
    }

    .zi-agency-cases-gridlines {
        opacity: 0.22;
        background-size: 36px 36px;
    }
}

.zi-agency-cases-grid {
    display: grid;
    grid-template-columns: 226px minmax(0, 1fr);
    gap: 36px 40px;
    align-items: start;
}

.zi-agency-cases-side {
    position: sticky;
    top: 110px;
}

.zi-agency-cases-side-content {
    position: relative;
    z-index: 2;
}

.zi-agency-cases-grow {
    position: absolute;
    z-index: 1;
    top: 50%;
    transform: translateY(-50%);
    left: max(-100px, calc(50% - (min(100%, var(--zi-content-max, 1200px)) / 2) - 360px));
    width: clamp(280px, 28vw, 420px);
    max-width: 420px;
    pointer-events: none;
    background: none;
    border: none;
    box-shadow: none;
    opacity: 0.58;
    -webkit-mask-image: radial-gradient(ellipse 92% 94% at 38% 50%, #000 42%, transparent 100%);
    mask-image: radial-gradient(ellipse 92% 94% at 38% 50%, #000 42%, transparent 100%);
}

.zi-agency-cases-grow-svg {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 320 / 540;
    overflow: visible;
}

.zi-agency-cases-grow-line {
    stroke-dasharray: 900;
    stroke-dashoffset: 0;
    animation: ziSsGrowDraw 2s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.zi-agency-cases-grow-nodes circle {
    opacity: 0;
    animation: ziSsGrowNodeIn 0.5s ease-out forwards;
}

.zi-agency-cases-grow-nodes circle:nth-child(1) { animation-delay: 0.9s; }
.zi-agency-cases-grow-nodes circle:nth-child(2) { animation-delay: 1.15s; }
.zi-agency-cases-grow-nodes circle:nth-child(3) { animation-delay: 1.4s; }
.zi-agency-cases-grow-nodes circle:nth-child(4),
.zi-agency-cases-grow-nodes circle:nth-child(5) { animation-delay: 1.65s; }

@keyframes ziSsGrowDraw {
    from {
        stroke-dashoffset: 900;
        opacity: 0.25;
    }
    to {
        stroke-dashoffset: 0;
        opacity: 0.72;
    }
}

@keyframes ziSsGrowNodeIn {
    from { opacity: 0; }
    to { opacity: 0.75; }
}

@media (prefers-reduced-motion: reduce) {
    .zi-agency-cases-grow-line,
    .zi-agency-cases-grow-nodes circle {
        animation: none;
        opacity: 0.72;
    }
}

/* Success Stories — responsive scale */
@media (max-width: 1399px) {
    .zi-agency-cases-grow {
        width: clamp(250px, 26vw, 360px);
        left: max(-80px, calc(50% - (min(100%, var(--zi-content-max, 1200px)) / 2) - 320px));
    }
}

@media (max-width: 1199px) {
    .zi-agency-cases {
        padding: 64px 0 72px;
    }

    .zi-agency-cases-grow {
        width: clamp(220px, 24vw, 300px);
        left: max(-60px, calc(50% - (min(100%, var(--zi-content-max, 1200px)) / 2) - 280px));
        opacity: 0.5;
    }

    .zi-agency-cases-heading {
        font-size: clamp(30px, 4vw, 42px);
    }
}

@media (min-width: 1600px) {
    .zi-agency-cases-grow {
        width: 420px;
        left: max(-110px, calc(50% - (var(--zi-content-max, 1200px) / 2) - 380px));
    }
}

.zi-agency-cases-heading {
    margin: 0 0 22px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(34px, 3.4vw, 48px);
    font-weight: 600;
    color: var(--zi-classic-navy);
    line-height: 1.15;
    text-transform: none;
    letter-spacing: 0.01em;
}

.zi-agency-cases-lead {
    margin: -10px 0 22px;
    max-width: 26ch;
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    line-height: 1.65;
    color: #5a6275;
}

#success-stories .zi-agency-case-filters {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0;
    width: max-content;
    max-width: 100%;
    color: rgba(0, 0, 0, 0.87);
}

#success-stories .zi-agency-filter,
#success-stories button.zi-agency-filter {
    all: unset;
    box-sizing: border-box;
    display: inline-flex !important;
    align-items: center;
    align-self: flex-start;
    flex: 0 0 auto;
    cursor: pointer;
    width: 226px !important;
    height: 40px !important;
    min-width: 226px;
    max-width: 100%;
    padding: 4px 16px;
    margin: 0 0 8px;
    border-radius: 8px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: normal;
    text-transform: none;
    color: rgba(0, 0, 0, 0.87);
    background-color: transparent;
    transition: background-color 0.2s ease, color 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

#success-stories .zi-agency-filter:not(.is-active):hover,
#success-stories button.zi-agency-filter:not(.is-active):hover {
    background-color: rgba(0, 0, 0, 0.06);
    color: rgba(0, 0, 0, 0.87);
}

#success-stories .zi-agency-filter.is-active,
#success-stories button.zi-agency-filter.is-active {
    background-color: #BBDEFB !important;
    color: #0D47A1 !important;
    font-weight: 600;
}

#success-stories .zi-agency-filter.is-active:hover,
#success-stories button.zi-agency-filter.is-active:hover {
    background-color: #BBDEFB !important;
    color: #0D47A1 !important;
}

@media (hover: none) {
    #success-stories .zi-agency-filter:not(.is-active):hover,
    #success-stories button.zi-agency-filter:not(.is-active):hover {
        background-color: transparent;
    }
}

.zi-agency-cases-masonry {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    align-items: stretch;
}

@media (max-width: 1199px) {
    .zi-agency-cases-masonry {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    .zi-agency-cases-grid {
        grid-template-columns: minmax(160px, 200px) minmax(0, 1fr);
        gap: 24px 28px;
    }

    #success-stories .zi-agency-filter,
    #success-stories button.zi-agency-filter {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 200px;
    }
}

.zi-agency-case-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    margin: 0;
    border-radius: 6px;
    overflow: hidden;
    position: relative;
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    text-decoration: none;
    color: inherit;
    box-shadow: 0 10px 28px rgba(28, 36, 75, 0.07);
    transition:
        transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.25s ease;
    cursor: pointer;
}

.zi-agency-case-card:hover {
    transform: translateY(-4px);
    border-color: rgba(44, 93, 171, 0.28);
    box-shadow: 0 18px 40px rgba(28, 36, 75, 0.12);
}

.zi-agency-case-card:focus-visible {
    outline: 2px solid #2c5dab;
    outline-offset: 3px;
}

.zi-agency-case-figure {
    display: block;
    line-height: 0;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: linear-gradient(145deg, #eef4fb 0%, #dde8f4 100%);
    flex: 0 0 auto;
}

.zi-agency-case-figure--empty {
    min-height: 0;
    background: linear-gradient(145deg, #eef4fb 0%, #dde8f4 100%);
}

.zi-agency-case-figure img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    vertical-align: top;
    transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.zi-agency-case-card:hover .zi-agency-case-figure img {
    transform: scale(1.04);
}

.zi-agency-case-caption {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px 16px 18px;
    background: #fff;
    flex: 1 1 auto;
    min-height: 102px;
}

.zi-agency-case-cat {
    display: inline-block;
    align-self: flex-start;
    margin: 0;
    padding: 4px 10px;
    border-radius: 2px;
    font-family: var(--zi-classic-sans, Arial, Helvetica, sans-serif);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #2c5dab;
    background: rgba(44, 93, 171, 0.08);
    line-height: 1.4;
}

.zi-agency-case-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-family: var(--zi-classic-serif, Georgia, "Times New Roman", serif);
    font-weight: 600;
    font-size: 16px;
    line-height: 1.4;
    margin: 0;
    color: #1c244b;
    min-height: 2.8em;
}

.zi-agency-case-more {
    margin-top: auto;
    font-family: var(--zi-classic-sans, Arial, Helvetica, sans-serif);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: #2c5dab;
    opacity: 0.85;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.zi-agency-case-card:hover .zi-agency-case-more {
    opacity: 1;
    transform: translateX(2px);
}

.zi-agency-case-card.is-hidden {
    display: none;
}

/* ===== Case study detail modal ===== */
.zi-case-modal {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px 24px;
    background:
        radial-gradient(ellipse 70% 55% at 50% -10%, rgba(33, 150, 243, 0.16), transparent 58%),
        rgba(8, 14, 28, 0.78);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    overflow-y: auto;
}

.zi-case-modal[hidden] {
    display: none !important;
}

.zi-case-modal-dialog {
    position: relative;
    width: min(1280px, 96vw);
    max-height: calc(100vh - 40px);
    margin: auto;
    background: #f4f7fb;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 6px;
    overflow: hidden;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.14) inset,
        0 40px 100px rgba(0, 0, 0, 0.42);
    animation: zi-case-modal-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes zi-case-modal-in {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}

.zi-case-modal-close {
    position: absolute;
    top: 22px;
    right: 22px;
    z-index: 5;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(28, 36, 75, 0.1) !important;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.96) !important;
    color: #1c244b !important;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.14);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.zi-case-modal-close:hover {
    background: #1c244b !important;
    border-color: #1c244b !important;
    color: #fff !important;
}

.zi-case-modal-shell {
    overflow-y: auto;
    max-height: calc(100vh - 40px);
}

.zi-case-modal-media {
    position: relative;
    width: 100%;
    height: clamp(360px, 38vh, 460px);
    background: #12182b;
    overflow: hidden;
}

.zi-case-modal-media[hidden] {
    display: none !important;
}

.zi-case-modal-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.02);
}

.zi-case-modal-media::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(115deg, rgba(18, 24, 43, 0.72) 0%, rgba(18, 24, 43, 0.25) 42%, transparent 68%),
        linear-gradient(180deg, transparent 48%, rgba(244, 247, 251, 0.98) 100%);
    pointer-events: none;
}

.zi-case-modal-media::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    height: 3px;
    background: linear-gradient(90deg, #c9a227 0%, #1c244b 55%, transparent 100%);
    pointer-events: none;
}

.zi-case-modal-media-badge {
    position: absolute;
    left: 48px;
    bottom: 42px;
    z-index: 2;
    padding: 10px 16px;
    background: rgba(255, 255, 255, 0.96);
    border-left: 3px solid #c9a227;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #1c244b;
}

.zi-case-modal-main {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(300px, 0.75fr);
    gap: 32px;
    padding: 12px 48px 48px;
    margin-top: -56px;
}

.zi-case-modal-article {
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.05);
    border-radius: 4px;
    padding: 48px 52px 52px;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.08);
}

.zi-case-modal-header {
    margin-bottom: 26px;
    padding-bottom: 24px;
    border-bottom: 1px solid #e6edf5;
}

.zi-case-modal-eyebrow {
    display: inline-block;
    margin-bottom: 14px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #1d4f9c;
}

.zi-case-modal-title {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(28px, 3.4vw, 40px);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.03em;
    color: #1c244b;
}

.zi-case-modal-summary {
    margin: 14px 0 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    font-style: italic;
    line-height: 1.55;
    color: #78909c;
}

.zi-case-modal-summary[hidden] {
    display: none !important;
}

.zi-case-modal-rule {
    width: 64px;
    height: 2px;
    margin-top: 20px;
    background: #1c244b;
    position: relative;
}

.zi-case-modal-rule::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 22px;
    height: 2px;
    background: #c9a227;
}

.zi-case-modal-prose {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 17px;
    line-height: 1.9;
    color: #4b5563;
    white-space: pre-line;
    max-width: 62ch;
}

.zi-case-modal-highlights {
    list-style: none;
    margin: 28px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.zi-case-modal-highlights[hidden] {
    display: none !important;
}

.zi-case-modal-highlights li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    background: #f7fafc;
    border: 1px solid #e8eef5;
    border-radius: 4px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #1c244b;
    line-height: 1.4;
}

.zi-case-modal-highlights li::before {
    content: "";
    flex: 0 0 8px;
    width: 8px;
    height: 8px;
    margin-top: 6px;
    border-radius: 50%;
    background: #c9a227;
}

.zi-case-modal-aside {
    align-self: start;
    position: sticky;
    top: 24px;
}

.zi-case-modal-cta-card {
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.05);
    border-top: 3px solid #1c244b;
    border-radius: 4px;
    padding: 34px 28px 30px;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.07);
}

.zi-case-modal-cta-label {
    display: block;
    margin-bottom: 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #c9a227;
}

.zi-case-modal-cta-text {
    margin: 0 0 22px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: #6b7280;
}

.zi-case-modal-meta {
    margin: 0 0 22px;
    padding: 14px 0;
    border-top: 1px solid #eef2f7;
    border-bottom: 1px solid #eef2f7;
}

.zi-case-modal-meta-label {
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #90a4ae;
}

.zi-case-modal-meta strong {
    font-size: 15px;
    color: #1c244b;
    font-weight: 700;
    text-transform: capitalize;
}

.zi-case-modal-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 15px 18px;
    border-radius: 3px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.zi-case-modal-btn--primary {
    background: #1c244b;
    color: #fff !important;
    border: 1px solid #1c244b;
}

.zi-case-modal-btn--primary:hover {
    background: #0d47a1;
    border-color: #0d47a1;
    transform: translateY(-1px);
}

.zi-case-modal-btn--ghost {
    margin-top: 12px;
    background: transparent;
    color: #1c244b !important;
    border: 1px solid rgba(28, 36, 75, 0.2);
}

.zi-case-modal-btn--ghost:hover {
    background: #f3f6fa;
}

.zi-case-modal-btn[hidden] {
    display: none !important;
}

body.zi-case-modal-open {
    overflow: hidden;
}

@media (max-width: 1100px) {
    .zi-case-modal-main {
        grid-template-columns: minmax(0, 1.4fr) minmax(260px, 0.8fr);
        padding: 8px 28px 36px;
        gap: 22px;
    }

    .zi-case-modal-article {
        padding: 36px 32px 40px;
    }
}

@media (max-width: 900px) {
    .zi-case-modal {
        padding: 0;
        align-items: stretch;
    }

    .zi-case-modal-dialog {
        width: 100%;
        max-height: 100vh;
        border-radius: 0;
        min-height: 100vh;
    }

    .zi-case-modal-shell {
        max-height: 100vh;
    }

    .zi-case-modal-media {
        height: 240px;
    }

    .zi-case-modal-media-badge {
        left: 18px;
        bottom: 20px;
    }

    .zi-case-modal-main {
        grid-template-columns: 1fr;
        margin-top: -20px;
        padding: 0 16px 28px;
        gap: 16px;
    }

    .zi-case-modal-article {
        padding: 28px 22px 30px;
    }

    .zi-case-modal-highlights {
        grid-template-columns: 1fr;
    }

    .zi-case-modal-aside {
        position: static;
    }

    .zi-case-modal-close {
        top: 12px;
        right: 12px;
        width: 40px;
        height: 40px;
    }
}

/* ===== Case study detail page ===== */
.zi-case-hero {
    position: relative;
    min-height: clamp(360px, 52vh, 520px);
    display: flex;
    align-items: flex-end;
    color: #fff;
    overflow: hidden;
    background: #12182b;
}

.zi-case-hero-media {
    position: absolute;
    inset: 0;
}

.zi-case-hero-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.04);
}

.zi-case-hero-shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(115deg, rgba(12, 18, 36, 0.88) 0%, rgba(12, 18, 36, 0.55) 46%, rgba(12, 18, 36, 0.28) 100%),
        linear-gradient(180deg, rgba(12, 18, 36, 0.2) 0%, rgba(12, 18, 36, 0.82) 100%);
}

.zi-case-hero-inner {
    position: relative;
    z-index: 1;
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    padding: 48px 0 56px;
}

.zi-case-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 22px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    color: #fff;
}

.zi-case-breadcrumb a,
.elementor-kit-7 .zi-case-breadcrumb a {
    color: #fff !important;
    text-decoration: none;
}

.zi-case-breadcrumb a:hover,
.elementor-kit-7 .zi-case-breadcrumb a:hover {
    color: #2c5dab !important;
}

.zi-case-breadcrumb span {
    color: #2c5dab !important;
}

.zi-case-breadcrumb span[aria-hidden="true"] {
    color: #fff !important;
}

.zi-case-hero-badge {
    display: inline-block;
    margin-bottom: 16px;
    padding: 8px 14px;
    background: rgba(255, 255, 255, 0.12);
    border-left: 3px solid #c9a227;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.zi-case-hero-title {
    margin: 0;
    max-width: 18ch;
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(32px, 5vw, 52px);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.03em;
}

.zi-case-hero-summary {
    margin: 16px 0 0;
    max-width: 42ch;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 17px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.82);
}

.zi-case-page {
    background:
        radial-gradient(ellipse 50% 40% at 100% 0%, rgba(33, 150, 243, 0.08), transparent 55%),
        #f4f7fb;
    padding: 0 0 72px;
}

/* Project detail page ? same BG as Our Projects section */
.zi-case-page.zi-case-page--jolsap {
    background:
        radial-gradient(ellipse 55% 42% at 6% 10%, rgba(184, 149, 44, 0.07), transparent 58%),
        radial-gradient(ellipse 48% 38% at 94% 88%, rgba(28, 36, 75, 0.05), transparent 55%),
        linear-gradient(180deg,
            #f3f1eb 0%,
            var(--zi-classic-ivory, #f6f4ef) 18%,
            var(--zi-classic-paper, #fbfaf7) 55%,
            var(--zi-classic-paper, #fbfaf7) 100%);
    padding: 0 0 88px;
}

.zi-case-page-inner {
    width: min(1180px, calc(100% - 48px));
    margin: -48px auto 0;
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.75fr);
    gap: 28px;
    position: relative;
    z-index: 2;
}

.zi-case-page-main {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.05);
    border-radius: 4px;
    padding: 48px 52px 52px;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.08);
}

.zi-case-page-header {
    margin-bottom: 24px;
}

.zi-case-page-eyebrow {
    display: inline-block;
    margin-bottom: 14px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #1d4f9c;
}

.zi-case-page-rule {
    width: 64px;
    height: 2px;
    background: #1c244b;
    position: relative;
}

.zi-case-page-rule::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 22px;
    height: 2px;
    background: #c9a227;
}

.zi-case-page-prose {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 17px;
    line-height: 1.9;
    color: #4b5563;
    max-width: 62ch;
}

.zi-case-page-prose p {
    margin: 0 0 1.1em;
}

.zi-case-page-subhead {
    margin: 0 0 16px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #1c244b;
}

.zi-case-page-highlights-wrap {
    margin-top: 34px;
}

.zi-case-page-highlights {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.zi-case-page-highlights li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 16px;
    background: #f7fafc;
    border: 1px solid #e8eef5;
    border-radius: 4px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #1c244b;
    line-height: 1.4;
}

.zi-case-page-highlights li::before {
    content: "";
    flex: 0 0 8px;
    width: 8px;
    height: 8px;
    margin-top: 6px;
    border-radius: 50%;
    background: #c9a227;
}

.zi-case-page-figure {
    margin: 36px 0 0;
}

.zi-case-page-figure img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}

.zi-case-page-figure figcaption {
    margin-top: 10px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    color: #78909c;
}

.zi-case-page-gallery {
    margin: 36px 0 0;
}

.zi-case-page-gallery-caption {
    margin: 10px 0 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    color: #78909c;
}

.zi-case-page-aside {
    align-self: start;
    position: sticky;
    top: 96px;
    display: grid;
    gap: 16px;
}

.zi-case-page-card {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.05);
    border-top: 3px solid #1c244b;
    border-radius: 4px;
    padding: 28px 24px 26px;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.07);
}

.zi-case-page-card-label {
    display: block;
    margin-bottom: 16px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #c9a227;
}

.zi-case-page-meta {
    margin: 0 0 22px;
    padding: 0;
}

.zi-case-page-meta > div {
    padding: 12px 0;
    border-bottom: 1px solid #eef2f7;
}

.zi-case-page-meta dt {
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #90a4ae;
}

.zi-case-page-meta dd {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #1c244b;
    text-transform: capitalize;
}

.zi-case-page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 14px 16px;
    border-radius: 3px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.zi-case-page-btn--primary {
    background: #1c244b;
    color: #fff !important;
    border: 1px solid #1c244b;
}

.zi-case-page-btn--primary:hover {
    background: #0d47a1;
    border-color: #0d47a1;
    transform: translateY(-1px);
}

.zi-case-page-btn--ghost {
    margin-top: 10px;
    background: transparent;
    color: #1c244b !important;
    border: 1px solid rgba(28, 36, 75, 0.2);
}

.zi-case-page-btn--ghost:hover {
    background: #f3f6fa;
}

.zi-case-page-back {
    display: inline-block;
    margin-top: 18px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #546e7a;
    text-decoration: none;
}

.zi-case-page-back:hover {
    color: #0d47a1;
}

.zi-case-page-note {
    padding: 20px 22px;
    background: linear-gradient(160deg, #1c244b 0%, #0d47a1 100%);
    color: #fff;
    border-radius: 4px;
}

.zi-case-page-note strong {
    display: block;
    margin-bottom: 8px;
    font-size: 14px;
    letter-spacing: 0.04em;
}

.zi-case-page-note p {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.84);
}

.zi-case-related {
    background: #fff;
    padding: 72px 0 88px;
    border-top: 1px solid #e8eef5;
}

/* Related projects ? same BG as Our Projects section */
.zi-case-related.zi-case-related--jolsap {
    background:
        radial-gradient(ellipse 55% 42% at 6% 10%, rgba(184, 149, 44, 0.07), transparent 58%),
        radial-gradient(ellipse 48% 38% at 94% 88%, rgba(28, 36, 75, 0.05), transparent 55%),
        linear-gradient(180deg,
            #f3f1eb 0%,
            var(--zi-classic-ivory, #f6f4ef) 18%,
            var(--zi-classic-paper, #fbfaf7) 55%,
            var(--zi-classic-paper, #fbfaf7) 100%);
    border-top: 1px solid rgba(28, 36, 75, 0.06);
}

.zi-case-related-inner {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
}

.zi-case-related-head {
    margin-bottom: 28px;
}

.zi-case-related-head h2 {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(24px, 3vw, 32px);
    font-weight: 700;
    color: #1c244b;
}

.zi-case-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.zi-case-related-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    background: #f7fafc;
    border: 1px solid #e8eef5;
    border-radius: 4px;
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.zi-case-related-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.1);
}

.zi-case-related-media {
    display: block;
    aspect-ratio: 16 / 10;
    background: #d7eef8;
    overflow: hidden;
}

.zi-case-related-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.zi-case-related-card:hover .zi-case-related-media img {
    transform: scale(1.06);
}

.zi-case-related-cat {
    margin: 16px 18px 0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #1d4f9c;
}

.zi-case-related-title {
    margin: 8px 18px 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
    color: #1c244b;
}

.zi-case-related-sum {
    margin: 8px 18px 20px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: #607d8b;
}

@media (max-width: 980px) {
    .zi-case-page-inner {
        grid-template-columns: 1fr;
        margin-top: -28px;
    }

    .zi-case-page-main {
        padding: 32px 24px 36px;
    }

    .zi-case-page-aside {
        position: static;
    }

    .zi-case-page-highlights {
        grid-template-columns: 1fr;
    }

    .zi-case-related-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .zi-case-hero-inner,
    .zi-case-page-inner,
    .zi-case-related-inner {
        width: calc(100% - 32px);
    }

    .zi-case-hero-inner {
        padding: 36px 0 40px;
    }

    .zi-case-hero-title {
        max-width: none;
    }
}

@media (max-width: 991px) {
    .zi-agency-about-grid,
    .zi-agency-expertise-grid,
    .zi-agency-cases-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .zi-agency-cases {
        padding: 52px 0 60px;
    }

    .zi-agency-cases-grow {
        width: clamp(180px, 34vw, 240px);
        left: -20px;
        top: 50%;
        opacity: 0.42;
        -webkit-mask-image: radial-gradient(ellipse 90% 92% at 35% 50%, #000 38%, transparent 100%);
        mask-image: radial-gradient(ellipse 90% 92% at 35% 50%, #000 38%, transparent 100%);
    }

    .zi-agency-cases-side {
        position: static;
    }

    .zi-agency-cases-lead {
        max-width: 42ch;
        margin: -6px 0 16px;
    }

    .zi-agency-cases-heading {
        text-align: left;
        margin-bottom: 14px;
        font-size: clamp(28px, 6.5vw, 38px);
    }

    #success-stories .zi-agency-case-filters {
        flex-direction: row;
        flex-wrap: wrap;
        width: 100%;
        max-width: 100%;
        gap: 8px;
        margin-bottom: 4px;
    }

    #success-stories .zi-agency-filter,
    #success-stories button.zi-agency-filter {
        width: auto !important;
        min-width: 0 !important;
        height: 38px !important;
        margin: 0;
        padding: 4px 14px;
        font-size: 14px;
    }

    .zi-agency-cases-masonry {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    .zi-agency-services-stage {
        min-height: 0;
        padding: 0 16px 70px;
        display: flex;
        flex-direction: column;
    }

    .zi-agency-services-float {
        position: static;
        width: 100%;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 12px 18px;
        margin-bottom: 8px;
        order: 1;
        z-index: 1;
    }

    .zi-agency-services-slider {
        padding: 56px 0 20px;
        order: 2;
        z-index: 3;
    }

    .zi-agency-services .zi-agency-nav,
    .zi-agency-services-nav {
        position: relative;
        margin-top: 16px;
        order: 3;
        justify-content: flex-end;
        bottom: auto;
        padding-right: 0;
    }

    .zi-agency-services-title {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.3em;
        font-size: clamp(28px, 7vw, 40px);
    }

    .zi-agency-services-diamond {
        width: 200px;
        height: 200px;
        border-width: 14px;
        right: -70px;
    }

    .zi-agency-diamond-wrap {
        width: min(360px, 92%);
        margin: 0 auto 20px;
    }

    .zi-agency-float-icon {
        display: none;
    }

    .zi-agency-testimonials .zi-agency-float-icon {
        display: block;
        font-size: 40px;
        margin-bottom: 4px;
    }

    .zi-agency-testimonials-stage {
        min-height: 0;
        padding: 0 0 24px;
        display: flex;
        flex-direction: column;
    }

    .zi-agency-testimonials-float {
        position: static;
        width: 100%;
        order: 1;
        padding: 0 20px 8px;
        top: auto;
        right: auto;
        pointer-events: none;
    }

    .zi-agency-testimonials-title {
        font-size: clamp(28px, 8vw, 36px);
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0 10px;
    }

    .zi-agency-testimonials-slider {
        order: 2;
        margin-top: 24px;
        padding-top: 8px;
    }

    .zi-agency-testimonials .zi-agency-testi-dots {
        order: 3;
        margin-top: 36px !important;
    }

    .zi-agency-testimonials-slider .swiper-slide:nth-child(odd) {
        margin-top: 28px;
    }

    .zi-agency-testi-deco--left {
        width: 180px;
        height: 180px;
        border-width: 16px;
        left: -90px;
    }

    .zi-agency-testi-deco--right {
        width: 220px;
        height: 220px;
        border-width: 18px;
        right: -80px;
        top: 40px;
    }
}

@media (max-width: 640px) {
    .zi-agency-counters {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .zi-agency-cases {
        padding: 44px 0 52px;
    }

    .zi-agency-cases-grow {
        width: clamp(150px, 38vw, 200px);
        left: -8px;
        top: 44%;
        opacity: 0.34;
    }

    .zi-agency-cases-masonry {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .zi-agency-cases-lead {
        max-width: none;
        font-size: 14px;
    }

    #success-stories .zi-agency-filter,
    #success-stories button.zi-agency-filter {
        height: 36px !important;
        padding: 4px 12px;
        font-size: 13px;
        border-radius: 7px;
    }

    .zi-agency-case-caption {
        padding: 12px 12px 14px;
        gap: 6px;
    }

    .zi-agency-case-title {
        font-size: 15px;
    }

    .zi-agency-container {
        padding: 0 16px;
    }

    .zi-agency-tag {
        min-width: 0;
        flex: 1 1 auto;
    }
}

/* ===== Board of Directors + DOM Members pages ===== */
.zi-people-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--zi-classic-paper, #fbfaf7);
    padding: 64px 20px 88px;
}

.zi-people-wash {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 55% 50% at 12% 20%, rgba(28, 36, 75, 0.05), transparent 70%),
        radial-gradient(ellipse 40% 40% at 90% 70%, rgba(184, 149, 44, 0.07), transparent 68%);
}

.zi-people-inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--zi-content-max, 1200px);
    margin: 0 auto;
    padding-left: var(--zi-content-pad, 24px);
    padding-right: var(--zi-content-pad, 24px);
    box-sizing: border-box;
}

.zi-people-intro {
    max-width: 40em;
    margin: 0 auto;
    text-align: center;
    font-family: var(--zi-classic-sans);
    font-size: 15.5px;
    line-height: 1.85;
    color: #5a6275;
}

.zi-people-intro p { margin: 0 0 12px; }
.zi-people-intro p:last-child { margin-bottom: 0; }

.zi-people-empty {
    text-align: center;
    color: #5a6275;
    font-family: var(--zi-classic-sans);
    padding: 40px 16px;
}

/* Classic Board of Directors */
.zi-people-section--directors.zi-cp2-section {
    padding: 88px 0 96px;
}

.zi-bod-header {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 52px;
}

.zi-bod-eyebrow {
    margin: 0 0 12px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-bod-title {
    margin: 0 0 16px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(30px, 3.4vw, 44px);
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    letter-spacing: 0.01em;
    line-height: 1.15;
}

.zi-bod-header .zi-cp2-divider {
    margin: 0 auto 20px;
}

.zi-bod-header .zi-people-intro {
    margin-top: 4px;
}

.zi-directors-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
    width: 100%;
}

.zi-director-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 32px 20px 28px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    box-shadow: 0 12px 32px rgba(28, 36, 75, 0.06);
    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.3s ease;
    animation: zi-bod-rise 0.7s ease both;
    animation-delay: var(--bod-delay, 0s);
    cursor: pointer;
}

@keyframes zi-bod-rise {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
}

.zi-director-card:hover {
    transform: translateY(-6px);
    border-color: #2c5dab;
    box-shadow: 0 20px 44px rgba(28, 36, 75, 0.12);
}

.zi-director-badge {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    border-radius: 999px;
    background: linear-gradient(180deg, #2c5dab 0%, #5187dd 100%);
    color: #fff;
    font-family: var(--zi-classic-sans);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    white-space: nowrap;
    box-shadow: 0 6px 16px rgba(44, 93, 171, 0.28);
}

.zi-director-badge--misses {
    letter-spacing: 0.08em;
    font-size: 9px;
    padding: 5px 10px;
}

.zi-director-card--misses {
    padding-top: 32px;
}

.zi-director-card--misses .zi-director-photo {
    margin-top: 8px;
}

.zi-director-photo {
    position: relative;
    width: 118px;
    height: 118px;
    border-radius: 50%;
    overflow: hidden;
    margin-bottom: 18px;
    border: 3px solid rgba(44, 93, 171, 0.28);
    background: var(--zi-classic-ivory, #f6f4ef);
    box-shadow: 0 10px 24px rgba(28, 36, 75, 0.1);
}

.zi-director-photo::after {
    content: '';
    position: absolute;
    inset: 4px;
    border-radius: 50%;
    border: 1px solid rgba(28, 36, 75, 0.08);
    pointer-events: none;
}

.zi-director-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.zi-director-photo-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-family: var(--zi-classic-serif);
    font-size: 42px;
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    background: rgba(44, 93, 171, 0.1);
}

.zi-director-name {
    margin: 0 0 6px;
    font-family: var(--zi-classic-serif);
    font-size: 19px;
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    line-height: 1.25;
}

.zi-director-role {
    margin: 0 0 12px;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-director-rule {
    display: block;
    width: 36px;
    height: 2px;
    margin: 0 auto 14px;
    background: linear-gradient(90deg, transparent, #2c5dab 30%, var(--zi-classic-navy, #1c244b));
}

.zi-director-meta {
    font-family: var(--zi-classic-sans);
    font-size: 13.5px;
    line-height: 1.65;
    color: rgba(28, 36, 75, 0.68);
}

.zi-director-meta p { margin: 0; }

/* Chairman card — featured alone on top */
.zi-director-card--chairman {
    grid-column: 1 / -1;
    max-width: 520px;
    margin: 0 auto;
    padding: 36px 28px 32px;
    border-radius: 14px;
    background:
        linear-gradient(180deg, #fff 0%, #f7f9fc 100%);
    border: 1px solid rgba(44, 93, 171, 0.22);
    box-shadow: 0 18px 48px rgba(28, 36, 75, 0.1);
}

.zi-director-card--chairman .zi-director-photo {
    width: 156px;
    height: 188px;
    border-radius: 12px;
    border: 0;
    margin-top: 18px;
    margin-bottom: 22px;
    box-shadow:
        0 0 0 1px rgba(44, 93, 171, 0.18),
        0 14px 32px rgba(28, 36, 75, 0.14);
}

.zi-director-card--chairman .zi-director-photo::after {
    border-radius: 8px;
    inset: 6px;
    border-color: rgba(255, 255, 255, 0.45);
}

.zi-director-card--chairman .zi-director-name {
    font-size: 24px;
}

.zi-director-card--chairman .zi-director-role {
    color: #2c5dab;
    letter-spacing: 0.16em;
}

.zi-director-card--chairman .zi-director-rule {
    width: 56px;
    background: linear-gradient(90deg, transparent, #2c5dab 20%, var(--zi-classic-navy, #1c244b));
}

.zi-director-card--chairman .zi-director-meta {
    max-width: 360px;
    margin: 0 auto;
    color: #2c5dab;
}

/* Regular director cards */
.zi-director-card--director .zi-director-photo {
    border-color: rgba(44, 93, 171, 0.28);
}

.zi-director-card:focus-visible {
    outline: 2px solid #2c5dab;
    outline-offset: 3px;
}

/* Classic Board profile modal ? portrait plaque */
html.zi-bod-modal-open,
html.zi-bod-modal-open body {
    overflow: hidden !important;
    scroll-behavior: auto !important;
    overscroll-behavior: none;
}

.zi-bod-modal[hidden] {
    display: none !important;
}

.zi-bod-modal {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 16px;
    overflow: hidden;
    overscroll-behavior: none;
}

.zi-bod-modal-backdrop {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 50% 20%, rgba(184, 149, 44, 0.18), transparent 55%),
        rgba(18, 22, 40, 0.72);
    backdrop-filter: blur(3px);
    cursor: pointer;
}

.zi-bod-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(820px, 100%);
    max-height: calc(100vh - 40px);
    overflow: hidden; /* no scrollbar ? content sized to fit */
    animation: zi-bod-modal-in 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes zi-bod-modal-in {
    from {
        opacity: 0;
        transform: translateY(12px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.zi-bod-modal-close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(184, 149, 44, 0.55);
    background: #fff;
    color: var(--zi-classic-navy, #1c244b);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px rgba(28, 36, 75, 0.12);
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.zi-bod-modal-close:hover {
    background: var(--zi-classic-navy, #1c244b);
    color: #fff;
    transform: rotate(90deg);
}

.zi-bod-modal-frame {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(180deg, #fffef9 0%, var(--zi-classic-paper, #fbfaf7) 45%, #f3efe6 100%);
    border: 1px solid rgba(184, 149, 44, 0.45);
    box-shadow:
        0 0 0 5px rgba(255, 255, 255, 0.55),
        0 0 0 6px rgba(28, 36, 75, 0.12),
        0 24px 50px rgba(18, 22, 40, 0.32);
    padding: 28px 28px 32px;
}

.zi-bod-modal-frame::before {
    content: '';
    position: absolute;
    inset: 8px;
    border: 1px solid rgba(184, 149, 44, 0.28);
    pointer-events: none;
    z-index: 0;
}

.zi-bod-modal-ornament {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 8px;
}

.zi-bod-modal-ornament span {
    display: block;
    height: 1px;
    background: linear-gradient(90deg, transparent, #2c5dab, transparent);
}

.zi-bod-modal-ornament span:nth-child(1),
.zi-bod-modal-ornament span:nth-child(3) {
    width: 40px;
}

.zi-bod-modal-ornament span:nth-child(2) {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #2c5dab;
    box-shadow: 0 0 0 3px rgba(184, 149, 44, 0.18);
}

.zi-bod-modal-kicker {
    position: relative;
    z-index: 1;
    margin: 0 0 20px;
    text-align: center;
    font-family: var(--zi-classic-sans);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-bod-modal-layout {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.zi-bod-modal-portrait {
    position: relative;
    text-align: center;
    padding-bottom: 18px; /* room for seal — no overflow outside */
}

.zi-bod-modal-portrait-ring {
    position: relative;
    width: 168px;
    height: 200px;
    margin: 0 auto;
    padding: 8px;
    background:
        linear-gradient(160deg, rgba(184, 149, 44, 0.35), rgba(28, 36, 75, 0.15));
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.55), 0 12px 28px rgba(28, 36, 75, 0.12);
    overflow: hidden;
}

.zi-bod-modal-portrait-ring::before {
    content: '';
    position: absolute;
    inset: 3px;
    border: 1px solid rgba(28, 36, 75, 0.18);
    pointer-events: none;
}

.zi-bod-modal-portrait-ring img,
.zi-bod-modal-fallback {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: var(--zi-classic-ivory, #f6f4ef);
}

.zi-bod-modal-fallback {
    position: absolute;
    inset: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--zi-classic-serif);
    font-size: 52px;
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    background: rgba(184, 149, 44, 0.14);
}

/* Keep letter hidden when a photo is shown (do not stack below image) */
.zi-bod-modal-fallback[hidden],
.zi-bod-modal-fallback.is-hidden,
.zi-bod-modal-portrait-ring img[hidden] {
    display: none !important;
}

.zi-bod-modal-seal {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--zi-classic-serif);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #fff;
    background: #2c5dab;
    border: 2px solid #2c5dab;
    box-shadow: 0 6px 14px rgba(28, 36, 75, 0.2);
}

.zi-bod-modal-copy {
    min-width: 0;
    padding-top: 2px;
    padding-right: 28px;
}

.zi-bod-modal-name {
    margin: 0 0 6px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(22px, 2.6vw, 30px);
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    line-height: 1.2;
    letter-spacing: 0.01em;
}

.zi-bod-modal-role {
    margin: 0 0 8px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}

.zi-bod-modal-note {
    margin: 0 0 12px;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-style: italic;
    color: #5a6275;
}

.zi-bod-modal-rule {
    width: 56px;
    height: 2px;
    margin: 0 0 14px;
    background: linear-gradient(90deg, transparent, #2c5dab 30%, var(--zi-classic-navy, #1c244b));
}

.zi-bod-modal-bio {
    font-family: var(--zi-classic-sans);
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--zi-classic-ink, #2a3148);
    max-height: min(280px, 36vh);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: 4px;
    scrollbar-width: thin;
}

.zi-bod-modal-bio p {
    margin: 0 0 0.85em;
}

.zi-bod-modal-bio p:last-child {
    margin-bottom: 0;
}

.zi-bod-modal-empty {
    color: #8a91a3;
    font-style: italic;
}

@media (max-width: 720px) {
    .zi-bod-modal-frame {
        padding: 24px 18px 28px;
    }

    .zi-bod-modal-layout {
        grid-template-columns: 1fr;
        gap: 18px;
        text-align: center;
    }

    .zi-bod-modal-portrait-ring {
        width: 140px;
        height: 168px;
    }

    .zi-bod-modal-copy {
        padding-right: 0;
    }

    .zi-bod-modal-rule {
        margin-left: auto;
        margin-right: auto;
    }

    .zi-bod-modal-bio {
        max-height: min(220px, 32vh);
        text-align: left;
    }

    .zi-bod-modal-close {
        top: 8px;
        right: 8px;
    }
}

.zi-dom-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.zi-dom-row {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 18px;
    align-items: flex-start;
    padding: 18px 20px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(13, 71, 161, 0.08);
    box-shadow: 0 8px 22px rgba(25, 55, 95, 0.05);
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.zi-dom-row:hover {
    border-color: rgba(33, 150, 243, 0.2);
    box-shadow: 0 12px 28px rgba(25, 55, 95, 0.09);
}

.zi-dom-avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: #e3f2fd;
    border: 2px solid rgba(187, 222, 251, 0.9);
}

.zi-dom-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.zi-dom-avatar-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: #0d47a1;
}

.zi-dom-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 14px;
    margin-bottom: 4px;
}

.zi-dom-name {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 17px;
    font-weight: 700;
    color: #1c2b4a;
}

.zi-dom-role {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #0d47a1;
    background: rgba(187, 222, 251, 0.45);
    padding: 3px 10px;
    border-radius: 999px;
}

.zi-dom-tenure {
    margin: 0 0 8px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #546e7a;
}

.zi-dom-history {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.65;
    color: #607d8b;
}

.zi-dom-history p { margin: 0 0 8px; }
.zi-dom-history p:last-child { margin-bottom: 0; }

@media (max-width: 1024px) {
    .zi-directors-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .zi-people-section {
        padding: 48px 16px 64px;
    }

    .zi-people-section--directors.zi-cp2-section {
        padding: 56px 0 72px;
    }

    .zi-bod-header {
        margin-bottom: 36px;
    }

    .zi-directors-grid {
        grid-template-columns: 1fr;
        max-width: 340px;
        margin: 0 auto;
        gap: 20px;
    }

    .zi-director-card--chairman {
        max-width: none;
    }

    .zi-dom-row {
        grid-template-columns: 56px minmax(0, 1fr);
        gap: 12px;
        padding: 14px 14px;
    }

    .zi-dom-avatar {
        width: 56px;
        height: 56px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .zi-director-card {
        animation: none;
    }
}

/* ===== Team Members directory ===== */
.zi-people-inner--wide {
    max-width: var(--zi-content-max, 1200px);
}

.zi-team-header {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 44px;
}

.zi-team-eyebrow {
    margin: 0 0 12px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-team-title {
    margin: 0 0 16px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(28px, 3.2vw, 42px);
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    letter-spacing: 0.01em;
    line-height: 1.15;
}

.zi-team-header .zi-cp2-divider {
    margin: 0 auto 18px;
}

.zi-team-header .zi-people-intro {
    margin-top: 4px;
}

.zi-team-count {
    margin: 18px 0 0;
    text-align: center;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(28, 36, 75, 0.55);
}

.zi-team-group {
    margin-bottom: 48px;
}

.zi-team-group:last-child {
    margin-bottom: 0;
}

.zi-team-group-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(44, 93, 171, 0.14);
}

.zi-team-group-title {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: clamp(16px, 1.8vw, 20px);
    font-weight: 700;
    color: var(--zi-classic-navy, #1c244b);
    letter-spacing: 0.02em;
}

.zi-team-group-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 9px;
    border-radius: 999px;
    background: rgba(44, 93, 171, 0.1);
    color: #2c5dab;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 700;
}

.zi-team-group--leadership {
    margin-bottom: 28px;
}

.zi-team-group--board {
    margin-bottom: 28px;
}

.zi-team-group--members {
    margin-bottom: 0;
}

.zi-team-grid {
    display: grid !important;
    gap: 22px;
    width: 100%;
    align-items: stretch;
}

.zi-team-grid--leadership {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.zi-team-grid--members {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.zi-team-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
    padding: 26px 22px 24px;
    min-height: 180px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    box-shadow: 0 12px 28px rgba(28, 36, 75, 0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.25s ease;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}

.zi-team-card-accent {
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, #2c5dab 0%, #5187dd 100%);
}

.zi-team-card:hover {
    transform: translateY(-4px);
    border-color: rgba(44, 93, 171, 0.28);
    box-shadow: 0 18px 40px rgba(28, 36, 75, 0.1);
}

.zi-team-card--clickable {
    cursor: pointer;
}

.zi-team-card--clickable:focus-visible {
    outline: 2px solid #2c5dab;
    outline-offset: 3px;
}

.zi-team-modal-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

.zi-team-modal-tags li {
    padding: 5px 11px;
    border-radius: 999px;
    background: rgba(44, 93, 171, 0.08);
    border: 1px solid rgba(44, 93, 171, 0.14);
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    color: #2c5dab;
}

.zi-team-modal-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 18px;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 700;
    color: #2c5dab;
    text-decoration: none;
    transition: color 0.2s ease, gap 0.2s ease;
}

.zi-team-modal-link:hover {
    color: var(--zi-classic-navy, #1c244b);
    gap: 7px;
}

.zi-people-modal-education {
    margin: 14px 0 4px;
    padding: 12px 14px;
    border-radius: 10px;
    background: rgba(44, 93, 171, 0.06);
    border: 1px solid rgba(44, 93, 171, 0.12);
}

.zi-people-modal-education-label {
    margin: 0 0 6px;
    font-family: var(--zi-classic-sans);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-people-modal-education-text {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    line-height: 1.6;
    color: rgba(28, 36, 75, 0.78);
    white-space: pre-line;
}

.zi-team-badge,
.elementor-kit-7 .zi-team-badge,
.elementor-kit-7 span.zi-team-badge {
    position: absolute !important;
    top: 14px !important;
    right: 14px !important;
    left: auto !important;
    z-index: 3 !important;
    display: inline-flex !important;
    align-items: center;
    padding: 5px 12px !important;
    border-radius: 999px !important;
    background: linear-gradient(180deg, #2c5dab 0%, #5187dd 100%) !important;
    color: #fff !important;
    font-family: var(--zi-classic-sans) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    white-space: nowrap;
    line-height: 1.2 !important;
    box-shadow: 0 6px 16px rgba(44, 93, 171, 0.28);
}

.zi-team-card--chairman,
.zi-team-card--director {
    padding: 48px 26px 28px;
    min-height: 210px;
}

.zi-team-card--chairman {
    border-color: rgba(44, 93, 171, 0.22);
    background: linear-gradient(180deg, #fff 0%, #f7f9fc 100%);
    box-shadow: 0 16px 40px rgba(28, 36, 75, 0.08);
}

.zi-team-card--director {
    border-color: rgba(44, 93, 171, 0.16);
    background: linear-gradient(180deg, #fff 0%, #f7f9fc 100%);
    box-shadow: 0 16px 40px rgba(28, 36, 75, 0.08);
}

.zi-team-card--chairman .zi-team-card-top,
.zi-team-card--director .zi-team-card-top {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.zi-team-card--chairman .zi-team-photo,
.zi-team-card--director .zi-team-photo {
    width: 112px;
    height: 136px;
    border-radius: 12px;
    border: 0;
    box-shadow:
        0 0 0 1px rgba(44, 93, 171, 0.18),
        0 14px 32px rgba(28, 36, 75, 0.14);
}

.zi-team-card--chairman .zi-team-name,
.zi-team-card--director .zi-team-name {
    font-family: var(--zi-classic-serif);
    font-size: 22px;
    padding-right: 8px;
}

.zi-team-card--chairman .zi-team-designation,
.zi-team-card--director .zi-team-designation {
    letter-spacing: 0.12em;
}

.zi-team-card-top {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
}

.zi-team-photo {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid rgba(44, 93, 171, 0.22);
    background: #f4f7fb;
    box-shadow: 0 6px 16px rgba(28, 36, 75, 0.08);
    flex-shrink: 0;
}

.zi-team-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.zi-team-photo-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-family: var(--zi-classic-sans);
    font-size: 26px;
    font-weight: 700;
    color: #2c5dab;
    background: rgba(44, 93, 171, 0.08);
}

.zi-team-name {
    margin: 0 0 4px;
    font-family: var(--zi-classic-sans);
    font-size: 17px;
    font-weight: 700;
    color: var(--zi-classic-navy, #1c244b);
    line-height: 1.3;
}

.zi-team-designation {
    margin: 0 0 6px;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-team-meta-line {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 500;
    color: rgba(28, 36, 75, 0.62);
    line-height: 1.45;
}

.zi-team-profile-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: #2c5dab;
}

.zi-team-profile-link:hover,
.elementor-kit-7 a.zi-team-profile-link:hover {
    color: #5187dd;
}

.elementor-kit-7 a.zi-team-profile-link {
    color: #2c5dab;
}

.zi-team-card--chairman .zi-team-profile-link,
.zi-team-card--director .zi-team-profile-link,
.elementor-kit-7 .zi-team-card--chairman a.zi-team-profile-link,
.elementor-kit-7 .zi-team-card--director a.zi-team-profile-link {
    color: #fff;
}

.zi-team-card--chairman .zi-team-profile-link:hover,
.zi-team-card--director .zi-team-profile-link:hover,
.elementor-kit-7 .zi-team-card--chairman a.zi-team-profile-link:hover,
.elementor-kit-7 .zi-team-card--director a.zi-team-profile-link:hover {
    color: #dbeafe;
}

.zi-team-details {
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    line-height: 1.65;
    color: rgba(42, 49, 72, 0.78);
    padding-top: 2px;
}

.zi-team-details p { margin: 0 0 8px; }
.zi-team-details p:last-child { margin-bottom: 0; }

.zi-team-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.zi-team-tags li {
    padding: 5px 11px;
    border-radius: 999px;
    background: rgba(44, 93, 171, 0.08);
    border: 1px solid rgba(44, 93, 171, 0.14);
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    color: #2c5dab;
}

.zi-team-link {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 2px;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 700;
    color: #2c5dab;
    text-decoration: none;
    transition: color 0.2s ease, gap 0.2s ease;
}

.zi-team-link:hover {
    color: var(--zi-classic-navy, #1c244b);
    gap: 7px;
}

@media (max-width: 1024px) {
    .zi-team-grid--members {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 767px) {
    .zi-team-grid--leadership,
    .zi-team-grid--members {
        grid-template-columns: 1fr !important;
    }

    .zi-team-card-top {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 14px;
    }

    .zi-team-photo {
        width: 72px;
        height: 72px;
    }

    .zi-team-card--chairman .zi-team-card-top,
    .zi-team-card--director .zi-team-card-top {
        grid-template-columns: 96px minmax(0, 1fr);
        align-items: start;
    }

    .zi-team-card--chairman .zi-team-photo,
    .zi-team-card--director .zi-team-photo {
        width: 96px;
        height: 116px;
        border-radius: 12px;
        border: 0;
    }

    .zi-team-card--chairman,
    .zi-team-card--director {
        padding: 42px 20px 24px;
        min-height: 190px;
    }

    .zi-team-card--chairman .zi-team-name,
    .zi-team-card--director .zi-team-name {
        font-size: 18px;
    }

    .zi-team-badge,
    .elementor-kit-7 .zi-team-badge,
    .elementor-kit-7 span.zi-team-badge {
        top: 10px !important;
        right: 10px !important;
        font-size: 9px !important;
        padding: 4px 10px !important;
    }

    .zi-team-name {
        font-size: 16px;
    }

    .zi-director-card--chairman {
        max-width: none;
        padding: 28px 18px 24px;
    }

    .zi-director-card--chairman .zi-director-photo {
        width: 132px;
        height: 160px;
    }
}

/* ===== Home classic corporate vibe ===== */
.home {
    --zi-home-navy: var(--zi-classic-navy);
    --zi-home-gold: var(--zi-classic-gold);
    background-color: var(--zi-classic-paper);
}

.home .page-content,
.home .elementor.elementor-2 {
    font-family: var(--zi-classic-sans);
    color: var(--zi-classic-ink);
}

.home .zi-about-copy-btn {
    border-radius: 10px !important;
    letter-spacing: 0.04em !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    padding: 8px 14px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    line-height: 1 !important;
    background: transparent !important;
    background-image: linear-gradient(180deg, #2c5dab 0%, #5187DD 100%) !important;
    border: 0 !important;
    color: #fff !important;
    box-shadow: none !important;
    transform: none !important;
    scale: 1 !important;
    opacity: 1 !important;
    text-transform: none !important;
}

.home .zi-about-copy-btn:hover,
.home .zi-about-copy-btn:focus,
.home .zi-about-copy-btn:focus-visible,
.home .zi-about-copy-btn:active {
    background: transparent !important;
    background-image: linear-gradient(180deg, var(--e-global-color-primary, #2C5DAB) 0%, #2C5DAB 100%) !important;
    border: 0 !important;
    color: #fff !important;
    padding: 8px 14px !important;
    font-size: 12px !important;
    letter-spacing: 0.04em !important;
    line-height: 1 !important;
    min-height: 36px !important;
    max-height: 36px !important;
    transform: none !important;
    scale: 1 !important;
    opacity: 1 !important;
    box-shadow: none !important;
}

.home .zi-stats-divider span:nth-child(2) {
    background: #2c5dab;
    border-radius: 0;
    width: 10px;
    height: 10px;
    transform: rotate(45deg);
}

.home .zi-stats-divider span:nth-child(1),
.home .zi-stats-divider span:nth-child(3) {
    background: var(--zi-classic-navy);
    border-radius: 0;
    width: 6px;
    height: 6px;
    transform: rotate(45deg);
    opacity: 0.35;
}

.home .zi-cert-combined {
    background: linear-gradient(180deg, #ffffff 0%, var(--zi-classic-paper, #fbfaf7) 40%, var(--zi-classic-paper, #fbfaf7) 100%);
}

/* Quality Assured (cert) bottom â†’ Client Testimonials seamless join */
.zi-cert-combined:has(+ .zi-testi-news-band) > .zi-cp2-wave-svg--bottom {
    display: none;
}

.zi-cert-combined:has(+ .zi-testi-news-band) .zi-cert-assure--merged {
    padding-bottom: clamp(28px, 3.5vw, 44px);
}

.zi-cert-combined + .zi-testi-news-band,
.home .zi-cert-combined + .zi-testi-news-band {
    margin-top: 0 !important;
    background:
        radial-gradient(ellipse 55% 42% at 8% 18%, rgba(28, 36, 75, 0.045), transparent 60%),
        radial-gradient(ellipse 48% 38% at 92% 72%, rgba(184, 149, 44, 0.07), transparent 62%),
        linear-gradient(180deg,
            var(--zi-classic-paper, #fbfaf7) 0%,
            #f8f6f1 42%,
            var(--zi-classic-paper, #fbfaf7) 100%);
}

.zi-cert-combined + .zi-testi-news-band .zi-agency-testimonials,
.home .zi-cert-combined + .zi-testi-news-band .zi-agency-testimonials {
    padding-top: 95px !important;
}

@media (max-width: 720px) {
    .zi-cert-combined:has(+ .zi-testi-news-band) .zi-cert-assure--merged {
        padding-bottom: 24px;
    }

    .zi-cert-combined + .zi-testi-news-band .zi-agency-testimonials,
    .home .zi-cert-combined + .zi-testi-news-band .zi-agency-testimonials {
        padding-top: 16px !important;
    }
}

.home .zi-certificates-banner {
    background-color: #eaf4fb;
    background-image: url("../img/certificates-banner.jpg");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    box-shadow: inset 0 -1px 0 rgba(28, 36, 75, 0.06);
}

.home .zi-certificates-eyebrow {
    color: #2c5dab !important;
}

.home .zi-cert-assure-eyebrow {
    font-family: var(--zi-classic-sans);
    letter-spacing: 0.28em;
    color: var(--zi-classic-gold, #b8952c);
}

.home .zi-cert-assure-title {
    font-family: var(--zi-classic-serif);
    color: var(--zi-classic-navy, #1c244b);
}

.home .zi-cert-assure-text {
    font-family: var(--zi-classic-sans);
    color: #5a6275;
}

.home .zi-projects-section {
    background:
        radial-gradient(ellipse 55% 42% at 6% 10%, rgba(184, 149, 44, 0.07), transparent 58%),
        radial-gradient(ellipse 48% 38% at 94% 88%, rgba(28, 36, 75, 0.05), transparent 55%),
        linear-gradient(180deg,
            #f3f1eb 0%,
            var(--zi-classic-ivory, #f6f4ef) 18%,
            var(--zi-classic-paper, #fbfaf7) 55%,
            var(--zi-classic-paper, #fbfaf7) 100%);
}

.home .zi-projects-section .zi-pcat-header.zi-projects-header {
    max-width: 100% !important;
    width: 100%;
}

.home .zi-projects-section .zi-projects-lead {
    max-width: 130ch !important;
    width: 100%;
}

.home .zi-agency-services,
.home .zi-agency-expertise,
.home .zi-agency-testimonials {
    font-family: var(--zi-classic-sans);
}

/* ?? Our Services (classic corporate) ?? */
.home .zi-agency-services {
    position: relative;
    isolation: isolate;
    padding: 72px 0 88px;
    overflow: hidden;
    /* Continues About band canvas ? same ivory handoff, no white seam */
    background:
        radial-gradient(ellipse 65% 48% at 10% 12%, rgba(28, 36, 75, 0.045), transparent 58%),
        radial-gradient(ellipse 50% 42% at 90% 78%, rgba(184, 149, 44, 0.06), transparent 55%),
        linear-gradient(180deg, #f3f1eb 0%, var(--zi-classic-ivory, #f6f4ef) 32%, var(--zi-classic-paper, #fbfaf7) 78%, var(--zi-classic-paper, #fbfaf7) 100%);
}

.home .zi-agency-services-wash {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image:
        linear-gradient(rgba(28, 36, 75, 0.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(28, 36, 75, 0.018) 1px, transparent 1px);
    background-size: 56px 56px;
    mask-image: linear-gradient(180deg, transparent 0%, #000 24%, #000 76%, transparent 100%);
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 24%, #000 76%, transparent 100%);
    opacity: 0.4;
}

.home .zi-agency-services-dots {
    fill: rgba(28, 36, 75, 0.18);
    opacity: 0.06;
    z-index: 0;
}

.home .zi-agency-services-diamond {
    border-color: rgba(184, 149, 44, 0.16);
    border-width: 16px;
    opacity: 0.4;
    z-index: 0;
    filter: none;
}

.home .zi-agency-services-stage {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--zi-content-max, 1200px);
    margin-inline: auto;
    padding-bottom: 4px;
    padding-left: var(--zi-content-pad, 24px);
    padding-right: var(--zi-content-pad, 24px);
    box-sizing: border-box;
}

.home .zi-agency-services-float,
.home .zi-agency-services-apps {
    display: none !important;
}

.home .zi-agency-services-header {
    max-width: 100%;
    width: 100%;
    margin: 0 auto 20px;
}

.home .zi-agency-services-intro {
    max-width: 130ch;
    width: 100%;
    margin: 0 auto;
    font-family: var(--zi-classic-sans);
    font-size: clamp(15px, 1.35vw, 17px);
    line-height: 1.85;
    color: #5a6275;
}

.home .zi-agency-services-intro p {
    margin: 0 0 0.65em;
}

.home .zi-agency-services-intro p:last-child {
    margin-bottom: 0;
}

.home .zi-agency-services-slider {
    padding: 36px 0 18px;
    mask-image: linear-gradient(90deg, transparent 0, #000 1.5%, #000 98.5%, transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 1.5%, #000 98.5%, transparent 100%);
}

.home .zi-agency-services-track {
    gap: 22px;
}

.home .zi-agency-service-card {
    position: relative;
    background: #fff;
    border-radius: 2px;
    border: 1px solid rgba(28, 36, 75, 0.1);
    box-shadow: 0 12px 32px rgba(28, 36, 75, 0.05);
    width: 268px;
    min-width: 268px;
    max-width: 268px;
    flex: 0 0 268px;
    min-height: 392px;
    padding: 0 0 20px;
    margin-top: 20px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

.home .zi-agency-service-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #ffffff, #2c5dab);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 3;
}

.home .zi-agency-service-card::after {
    content: '';
    position: absolute;
    left: 20px;
    right: 20px;
    bottom: 0;
    height: 2px;
    background: linear-gradient(90deg, #2c5dab, transparent);
    opacity: 0;
    transform: scaleX(0.4);
    transform-origin: left center;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.home .zi-agency-service-card:hover {
    border-color: #b4c1d5;
    box-shadow: 0 20px 44px rgba(28, 36, 75, 0.11);
    transform: translateY(-6px);
}

.home .zi-agency-service-card:hover::before,
.home .zi-agency-service-card:hover::after {
    opacity: 1;
}

.home .zi-agency-service-card:hover::after {
    transform: scaleX(1);
}

.home .zi-agency-service-card:focus-visible {
    outline: 2px solid var(--zi-classic-navy, #1c244b);
    outline-offset: 3px;
}

.home .zi-agency-service-card figure {
    margin: 0 0 18px;
    min-height: 168px;
    height: 168px;
    padding: 14px 18px;
    border-radius: 0;
    overflow: hidden;
    background: linear-gradient(180deg, #edf2f8 0%, #f8fafc 100%);
    box-shadow: none;
    border: 0;
    border-bottom: 1px solid rgba(28, 36, 75, 0.06);
    display: flex;
    align-items: center;
    justify-content: center;
}

.home .zi-agency-service-card figure img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
    transition: transform 0.5s ease;
}

.home .zi-agency-service-card:hover figure img {
    transform: none;
}

.home .zi-agency-service-body {
    flex: 1 1 auto;
    padding: 0 20px;
}

.home .zi-agency-service-body h6 {
    margin: 0 0 10px;
    padding-right: 8px;
    font-family: var(--zi-classic-serif);
    font-size: 1.28rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--zi-classic-navy, #1c244b);
}

.home .zi-agency-service-body p,
.home .zi-agency-service-desc {
    margin: 0 0 18px;
    height: 85px;
    overflow: hidden;
    font-family: var(--zi-classic-sans);
    font-size: 13.5px;
    line-height: 1.65;
    color: #5a6275;
    font-weight: 400;
}

.home .zi-agency-service-desc p {
    margin: 0;
    height: auto;
}

.home .zi-agency-service-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    width: auto;
    margin: auto 20px 0;
    border-radius: 2px !important;
    background: transparent !important;
    border: 1px solid #2c5dab !important;
    color: #2c5dab !important;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-size: 11px;
    font-weight: 600;
    font-family: var(--zi-classic-sans);
    padding: 10px 16px;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.home .zi-agency-service-card:hover .zi-agency-service-btn {
    background: #2c5dab !important;
    border-color: #2c5dab !important;
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(44, 93, 171, 0.28);
}

.home .zi-agency-services-nav {
    margin-top: 4px;
    padding: 0;
    justify-content: flex-end;
    gap: 12px;
}

.home .zi-agency-services-nav .zi-agency-fab {
    width: 46px;
    height: 46px;
    background: #fff !important;
    color: #2c5dab !important;
    border: 1px solid #2c5dab !important;
    border-radius: 2px !important;
    box-shadow: 0 6px 16px rgba(44, 93, 171, 0.07);
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.home .zi-agency-services-nav .zi-agency-fab:hover {
    background: #2c5dab !important;
    color: #fff !important;
    border-color: #2c5dab !important;
    transform: translateY(-1px);
}

@media (max-width: 991px) {
    .home .zi-agency-services {
        padding: 68px 0 64px;
    }

    .home .zi-agency-service-card {
        width: 246px;
        min-width: 246px;
        max-width: 246px;
        flex: 0 0 246px;
        min-height: 370px;
    }

    .home .zi-agency-service-card figure {
        min-height: 152px;
        height: 152px;
        padding: 12px 14px;
    }
}

/* ?? Water solutions (classic) ?? */
/* Ends on #f3f1eb so Products can continue without a white seam */
.home .zi-agency-expertise {
    background:
        radial-gradient(ellipse 55% 40% at 88% 18%, rgba(184, 149, 44, 0.05), transparent 58%),
        radial-gradient(ellipse 50% 38% at 8% 82%, rgba(28, 36, 75, 0.04), transparent 55%),
        linear-gradient(180deg,
            var(--zi-classic-paper, #fbfaf7) 0%,
            var(--zi-classic-ivory, #f6f4ef) 55%,
            #f3f1eb 100%);
}

.home .zi-agency-expertise-bg {
    background-image:
        linear-gradient(115deg, transparent 40%, rgba(28, 36, 75, 0.035) 40%, rgba(28, 36, 75, 0.035) 58%, transparent 58%),
        linear-gradient(115deg, transparent 62%, rgba(184, 149, 44, 0.05) 62%, rgba(184, 149, 44, 0.05) 78%, transparent 78%);
    mask-image: linear-gradient(180deg, #000 0%, #000 72%, transparent 100%);
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 72%, transparent 100%);
}

.home .zi-agency-orbit {
    border-color: rgba(28, 36, 75, 0.18);
}

.home .zi-agency-orbit--2 {
    border-color: rgba(184, 149, 44, 0.28);
}

.home .zi-agency-orbit--3 {
    border-color: rgba(28, 36, 75, 0.12);
}

.home .zi-agency-diamond {
    background: linear-gradient(145deg, #2a3458 0%, #1c244b 48%, #12182e 100%);
    border-color: rgba(184, 149, 44, 0.35);
    box-shadow:
        0 22px 48px rgba(28, 36, 75, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        inset 0 -8px 20px rgba(0, 0, 0, 0.2);
}

.home .zi-agency-expertise-header {
    max-width: none;
    margin: 0 0 28px;
    text-align: left;
}

.home .zi-agency-expertise-header .zi-pcat-eyebrow {
    letter-spacing: 0.18em;
}

.home .zi-agency-expertise-header .zi-cp2-divider {
    margin: 0 0 16px;
    justify-content: flex-start;
}

.home .zi-agency-expertise-header .zi-pcat-lead,
.home .zi-agency-expertise-header .zi-agency-desc {
    text-align: left;
}

.home .zi-agency-desc {
    font-family: var(--zi-classic-sans);
    color: #5a6275;
    line-height: 1.85;
}

.home .zi-agency-tag {
    border-radius: 2px;
    background: var(--zi-classic-paper, #fbfaf7);
    border-color: rgba(28, 36, 75, 0.14);
    color: var(--zi-classic-navy, #1c244b);
    font-family: var(--zi-classic-sans);
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(28, 36, 75, 0.04);
}

.home .zi-agency-tag:hover {
    border-color: #2c5dab;
    color: var(--zi-classic-navy, #1c244b);
}

.home .zi-agency-tags-slider .swiper-slide-active .zi-agency-tag {
    background: #2c5dab;
    border-color: #2c5dab;
    color: #fff;
    box-shadow: 0 8px 20px rgba(44, 93, 171, 0.2);
}

.home .zi-agency-tags-slider .swiper-slide-active .zi-agency-tag:hover {
    background-image: linear-gradient(180deg, var(--e-global-color-primary, #2C5DAB) 0%, #2C5DAB 100%) !important;
    border-color: #2c5dab;
    color: #fff;
}

/* ?? Client Testimonials (classic) ?? */
.home .zi-agency-testimonials {
    background: transparent;
}

.home .zi-testi-news-band .zi-agency-testimonials {
    background: transparent !important;
}

.home .zi-agency-testimonials-title span:last-child {
    color: #2c5dab;
    font-style: italic;
    font-weight: 600;
}

.home .zi-agency-testi-deco {
    border-color: rgba(184, 149, 44, 0.18);
}

.home .zi-agency-testimonials .zi-agency-float-icon {
    color: #2c5dab;
    opacity: 0.75;
}

.home .zi-agency-testimonials-slider .swiper-slide {
    width: 280px;
}

.home .zi-agency-testi {
    width: 260px;
}

.home .zi-agency-testi-card {
    position: relative;
    width: 260px;
    height: auto;
    min-height: 220px;
    padding: 28px 24px 22px;
    border-radius: 2px 18px 18px 18px;
    border: 1px solid rgba(28, 36, 75, 0.08);
    background:
        linear-gradient(180deg, #ffffff 0%, #fcfbf8 100%);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.9) inset,
        0 10px 28px rgba(28, 36, 75, 0.07);
    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease,
        border-color 0.35s ease;
}

.home .zi-agency-testi-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 18px;
    bottom: 18px;
    width: 3px;
    border-radius: 0 2px 2px 0;
    background: #2c5dab;
}

.home .zi-agency-testi-card:hover {
    transform: translateY(-6px);
    border-color: rgba(184, 149, 44, 0.4);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.95) inset,
        0 18px 40px rgba(28, 36, 75, 0.12);
}

.home .zi-agency-testi-quote {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin: 0 0 14px;
    border-radius: 50%;
    background: rgba(184, 149, 44, 0.12);
    color: #2c5dab;
    font-size: 13px;
    line-height: 1;
}

.home .zi-agency-testi-card p,
.home .zi-agency-testi-quote-body,
.home .zi-agency-testi-quote-body p {
    margin: 0 0 18px;
    font-family: var(--zi-classic-serif);
    font-size: 15.5px;
    line-height: 1.7;
    font-style: italic;
    font-weight: 500;
    color: #3d4558;
    display: -webkit-box;
    -webkit-line-clamp: 6;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.home .zi-agency-stars {
    gap: 4px;
    font-size: 12px;
    letter-spacing: 0.02em;
}

.home .zi-agency-stars .is-on {
    color: var(--zi-classic-gold, #b8952c);
}

.home .zi-agency-stars .is-off {
    color: rgba(28, 36, 75, 0.14);
}

.home .zi-agency-testi-person {
    margin-top: 14px;
    padding: 0 2px;
    gap: 14px;
}

.home .zi-agency-avatar-wrap {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    border-radius: 50%;
    padding: 2px;
    background: #2c5dab;
    box-shadow: 0 6px 14px rgba(28, 36, 75, 0.12);
    overflow: visible;
}

.home .zi-agency-avatar,
.home .zi-agency-testimonials img.zi-agency-avatar {
    width: 48px !important;
    height: 48px !important;
    max-width: 48px !important;
    min-width: 48px;
    border: 2px solid #fff !important;
    box-shadow: none;
}

.home .zi-agency-avatar--empty {
    background: linear-gradient(145deg, #d9e0ef, #eef1f7);
}

.home .zi-agency-testi-meta h6 {
    margin: 0 0 3px;
    font-family: var(--zi-classic-serif);
    font-size: 16px;
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    letter-spacing: 0.01em;
}

.home .zi-agency-testi-meta span {
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    color: #8a7355;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.home .zi-agency-testi-dots .swiper-pagination-bullet {
    background: rgba(44, 93, 171, 0.35);
}

.home .zi-agency-testi-dots .swiper-pagination-bullet-active {
    background: #2c5dab;
}

@media (prefers-reduced-motion: reduce) {
    .home .zi-about-band-dots,
    .home .zi-about-band-diamond,
    .home .zi-about-band-glow,
    .home .zi-agency-cases-ring,
    .home .zi-agency-cases-blob {
        animation: none !important;
    }
}

/* ===== Products page ? classic corporate catalog ===== */
.zi-products-page {
    position: relative;
    isolation: isolate;
    padding: 72px 0 88px;
    background: var(--zi-classic-paper, #fbfaf7);
    overflow: hidden;
}

.zi-products-page-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 50% 45% at 8% 12%, rgba(28, 36, 75, 0.05), transparent 60%),
        radial-gradient(ellipse 40% 40% at 92% 80%, rgba(184, 149, 44, 0.07), transparent 65%);
}

.zi-products-page-inner {
    position: relative;
    z-index: 1;
    width: min(100% - 2.5rem, 1180px);
    margin-inline: auto;
}

.zi-products-page-header {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 42px;
}

.zi-products-page-lead {
    margin: 18px auto 0;
    font-family: var(--zi-classic-sans, Arial, Helvetica, sans-serif);
    font-size: 16px;
    line-height: 1.85;
    color: #5a6275;
}

.zi-products-page-lead--html p {
 margin: 0 0 0.6em;
}

.zi-products-page-lead--html p:last-child {
 margin-bottom: 0;
}

.zi-products-filters {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 10px;
 margin: 0 auto 40px;
}

.zi-products-filter {
 appearance: none;
 border: 1px solid rgba(28, 36, 75, 0.16);
 background: #fff;
 color: var(--zi-classic-navy, #1c244b);
 font-family: var(--zi-classic-sans, Arial, Helvetica, sans-serif);
 font-size: 12px;
 font-weight: 600;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 padding: 10px 18px;
 cursor: pointer;
 transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.zi-products-filter:hover {
 border-color: var(--zi-classic-navy, #1c244b);
}

.zi-products-filter.is-active {
 background: var(--zi-classic-navy, #1c244b);
 border-color: var(--zi-classic-navy, #1c244b);
 color: #fff;
}

.zi-products-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 28px;
}

.zi-product-card {
 display: flex;
 flex-direction: column;
 background: #fff;
 border: 1px solid rgba(28, 36, 75, 0.08);
 box-shadow: 0 16px 40px rgba(28, 36, 75, 0.05);
 overflow: hidden;
 animation: zi-product-fade 0.55s ease both;
 animation-delay: var(--delay, 0s);
 transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.zi-product-card.is-hidden {
 display: none;
}

.zi-product-card:hover {
 transform: translateY(-4px);
 box-shadow: 0 22px 48px rgba(28, 36, 75, 0.1);
}

@keyframes zi-product-fade {
 from { opacity: 0; transform: translateY(16px); }
 to { opacity: 1; transform: translateY(0); }
}

.zi-product-card-media {
 position: relative;
 aspect-ratio: 4 / 3;
 background: linear-gradient(160deg, #eef0f4 0%, #f7f6f2 100%);
 overflow: hidden;
}

.zi-product-card-media img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 transition: transform 0.45s ease;
}

.zi-product-card:hover .zi-product-card-media img {
 transform: scale(1.04);
}

.zi-product-card-placeholder {
 display: grid;
 place-items: center;
 width: 100%;
 height: 100%;
 color: rgba(28, 36, 75, 0.28);
 font-size: 42px;
}

.zi-product-card-badge {
 position: absolute;
 left: 14px;
 bottom: 14px;
 padding: 6px 12px;
 background: rgba(28, 36, 75, 0.92);
 color: #fff;
 font-family: var(--zi-classic-sans, Arial, Helvetica, sans-serif);
 font-size: 10px;
 font-weight: 600;
 letter-spacing: 0.14em;
 text-transform: uppercase;
}

.zi-product-card-body {
 display: flex;
 flex-direction: column;
 gap: 10px;
 padding: 22px 22px 24px;
 flex: 1;
}

.zi-product-card-title {
 margin: 0;
 font-family: var(--zi-classic-serif, Arial, Helvetica, sans-serif);
 font-size: clamp(22px, 2vw, 26px);
 font-weight: 600;
 line-height: 1.25;
 color: var(--zi-classic-navy, #1c244b);
 letter-spacing: 0.01em;
}

.zi-product-card-excerpt {
 margin: 0;
 flex: 1;
 font-family: var(--zi-classic-sans, Arial, Helvetica, sans-serif);
 font-size: 14.5px;
 line-height: 1.7;
 color: #5a6275;
}

.zi-product-card-link {
 display: inline-flex;
 align-items: center;
 gap: 8px;
 margin-top: 8px;
 align-self: flex-start;
 font-family: var(--zi-classic-sans, Arial, Helvetica, sans-serif);
 font-size: 12px;
 font-weight: 700;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: var(--zi-classic-navy, #1c244b);
 text-decoration: none;
 border-bottom: 1px solid rgba(184, 149, 44, 0.55);
 padding-bottom: 2px;
 transition: color 0.2s ease, gap 0.2s ease, border-color 0.2s ease;
}

.zi-product-card-link svg {
 width: 14px;
 height: 14px;
}

.zi-product-card-link:hover {
 color: var(--zi-classic-gold, #b8952c);
 gap: 12px;
 border-color: #2c5dab;
}

.zi-products-cta {
 padding: 56px 0 72px;
 background:
 linear-gradient(180deg, #1c244b 0%, #151b38 100%);
 color: #fff;
}

.zi-products-cta-inner {
 width: min(100% - 2.5rem, 1100px);
 margin-inline: auto;
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 32px;
}

.zi-products-cta-copy {
 max-width: 560px;
}

.zi-products-cta .zi-section-label {
 color: var(--zi-classic-gold, #b8952c);
}

.zi-products-cta .zi-section-title {
 color: #fff;
 margin-bottom: 10px;
}

.zi-products-cta-copy p {
 margin: 0;
 font-family: var(--zi-classic-sans, Arial, Helvetica, sans-serif);
 font-size: 15.5px;
 line-height: 1.75;
 color: rgba(255, 255, 255, 0.78);
}

.zi-products-cta-btn {
 flex-shrink: 0;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 padding: 14px 28px;
 background: transparent;
 border: 1px solid rgba(255, 255, 255, 0.55);
 color: #fff !important;
 font-family: var(--zi-classic-sans, Arial, Helvetica, sans-serif);
 font-size: 13px;
 font-weight: 600;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 text-decoration: none !important;
 transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.zi-products-cta-btn:hover {
 background: var(--zi-classic-gold, #b8952c);
 border-color: #2c5dab;
 color: #1c244b !important;
}

@media (max-width: 992px) {
 .zi-products-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 22px;
 }

 .zi-products-cta-inner {
 flex-direction: column;
 align-items: flex-start;
 text-align: left;
 }
}

@media (max-width: 640px) {
 .zi-products-page {
 padding: 48px 0 64px;
 }

 .zi-products-grid {
 grid-template-columns: 1fr;
 }

 .zi-products-filter {
 padding: 9px 14px;
 font-size: 11px;
 }
}

@media (prefers-reduced-motion: reduce) {
 .zi-product-card {
 animation: none;
 }

 .zi-product-card:hover,
 .zi-product-card:hover .zi-product-card-media img {
 transform: none;
 }
}

/* ===== Homepage / Products mosaic ? classic bento catalog ===== */
.zi-pmosaic,
.zi-products-classic {
    --zi-pm-page: var(--zi-classic-paper, #fbfaf7);
    --zi-pm-card: #ffffff;
    --zi-pm-ink: var(--zi-classic-navy, #1c244b);
    --zi-pm-muted: #5a6275;
    --zi-pm-line: rgba(28, 36, 75, 0.1);
    --zi-pm-gold: var(--zi-classic-gold, #b8952c);
}

.zi-pmosaic {
    position: relative;
    isolation: isolate;
    padding: 72px 0 80px;
    background: var(--zi-pm-page);
    overflow: hidden;
    font-family: var(--zi-classic-sans);
    color: var(--zi-pm-ink);
}

.zi-pmosaic-inner {
    position: relative;
    z-index: 1;
    width: min(100% - 2rem, 1160px);
    margin-inline: auto;
}

.zi-pmosaic-header {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 36px;
}

.zi-pmosaic-eyebrow {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--zi-pm-gold);
}

.zi-pmosaic-title {
    margin: 0 0 14px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(28px, 3.2vw, 42px);
    font-weight: 600;
    color: var(--zi-pm-ink);
    letter-spacing: 0.01em;
    line-height: 1.15;
}

.zi-pmosaic-header .zi-cp2-divider { margin: 0 auto 16px; }

.zi-pmosaic-lead {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    line-height: 1.8;
    color: var(--zi-pm-muted);
}

.zi-products-classic .zi-products-page-inner {
    position: relative;
    z-index: 1;
    width: min(100% - 2.5rem, 1160px);
    margin-inline: auto;
}

.zi-products-classic-header {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 36px;
}

.zi-products-classic .zi-cp2-intro {
    margin: 0 auto;
    max-width: 560px;
    font-family: var(--zi-classic-sans);
    font-size: 15.5px;
    line-height: 1.85;
    color: var(--zi-pm-muted);
}

.zi-pmosaic-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 0 auto 32px;
}

.zi-pmosaic-filter {
    appearance: none;
    border: 1px solid rgba(28, 36, 75, 0.16);
    background: #fff;
    color: var(--zi-pm-ink);
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 10px 18px;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.zi-pmosaic-filter:hover {
    border-color: var(--zi-pm-ink);
}

.zi-pmosaic-filter.is-active {
    background: var(--zi-pm-ink);
    border-color: var(--zi-pm-ink);
    color: #fff;
}

.zi-pmosaic-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 150px;
    gap: 0;
    max-width: 1160px;
    margin-inline: auto;
    box-sizing: border-box;
    border: 1px solid var(--zi-pm-line);
    background: var(--zi-pm-line);
}

.zi-pmosaic-grid--page {
    margin-top: 4px;
}

/* Exact bento placements (15-item cycle) */
.zi-pmosaic-cell.zi-pm-s0  { grid-column: 1 / 3; grid-row: span 2; }
.zi-pmosaic-cell.zi-pm-s1  { grid-column: 3; }
.zi-pmosaic-cell.zi-pm-s2  { grid-column: 4; }
.zi-pmosaic-cell.zi-pm-s3  { grid-column: 3; }
.zi-pmosaic-cell.zi-pm-s4  { grid-column: 4; }
.zi-pmosaic-cell.zi-pm-s5  { grid-column: 1; }
.zi-pmosaic-cell.zi-pm-s6  { grid-column: 2; }
.zi-pmosaic-cell.zi-pm-s7  { grid-column: 3 / 5; grid-row: span 2; }
.zi-pmosaic-cell.zi-pm-s8  { grid-column: 1; }
.zi-pmosaic-cell.zi-pm-s9  { grid-column: 2; }
.zi-pmosaic-cell.zi-pm-s10 { grid-column: 1 / 3; grid-row: span 2; }
.zi-pmosaic-cell.zi-pm-s11 { grid-column: 3; }
.zi-pmosaic-cell.zi-pm-s12 { grid-column: 4; }
.zi-pmosaic-cell.zi-pm-s13 { grid-column: 3; }
.zi-pmosaic-cell.zi-pm-s14 { grid-column: 4; }

.zi-pmosaic-cell {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
    padding: 22px;
    text-decoration: none !important;
    color: var(--zi-pm-ink) !important;
    background: var(--zi-pm-card);
    border-radius: 0;
    box-shadow: 0 0 0 1px var(--zi-pm-line);
    overflow: hidden;
    transition: background 0.25s ease;
}

.zi-pmosaic-cell.is-hidden { display: none !important; }

.zi-pmosaic-cell:hover {
    background: var(--zi-classic-ivory, #f6f4ef);
}

.zi-pmosaic-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-shrink: 0;
}

.zi-pmosaic-name {
    margin: 0;
    font-family: var(--zi-classic-serif);
    font-size: 20px;
    font-weight: 600;
    color: var(--zi-pm-ink);
    line-height: 1.15;
    letter-spacing: 0.01em;
}

.zi-pmosaic-cell.zi-pm-s0 .zi-pmosaic-name,
.zi-pmosaic-cell.zi-pm-s7 .zi-pmosaic-name,
.zi-pmosaic-cell.zi-pm-s10 .zi-pmosaic-name {
    font-size: clamp(24px, 2.4vw, 34px);
}

.zi-pmosaic-cat {
    display: block;
    margin: 4px 0 0;
    font-family: var(--zi-classic-sans);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--zi-pm-gold);
}

.zi-pmosaic-plus {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid var(--zi-pm-line);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--zi-pm-ink);
    background: rgba(255, 255, 255, 0.7);
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.25s ease;
}

.zi-pmosaic-plus svg {
    width: 12px;
    height: 12px;
    display: block;
}

.zi-pmosaic-cell:hover .zi-pmosaic-plus {
    background: var(--zi-pm-ink);
    border-color: var(--zi-pm-ink);
    color: #fff;
    transform: rotate(90deg);
}

.zi-pmosaic-media {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    width: 100%;
    margin: 6px 0 0;
    pointer-events: none;
}

.zi-pmosaic-media img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 78% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    filter: drop-shadow(0 8px 16px rgba(28, 36, 75, 0.08));
    transition: transform 0.4s ease;
}

.zi-pmosaic-cell.zi-pm-s0 .zi-pmosaic-media img,
.zi-pmosaic-cell.zi-pm-s7 .zi-pmosaic-media img,
.zi-pmosaic-cell.zi-pm-s10 .zi-pmosaic-media img {
    max-width: 70% !important;
}

.zi-pmosaic-cell:hover .zi-pmosaic-media img {
    transform: scale(1.04);
}

.zi-pmosaic-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(28, 36, 75, 0.05);
    color: var(--zi-pm-muted);
    font-size: 20px;
}

.zi-pmosaic-meta {
    margin: 0;
    margin-top: auto;
    padding-top: 10px;
    max-width: 100%;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--zi-pm-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex-shrink: 0;
}

.zi-pmosaic-cta {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}

.zi-pmosaic-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 170px;
    padding: 13px 30px;
    border-radius: 25px;
    background: #2c5dab;
    border: 1px solid var(--zi-pm-ink);
    color: #fff !important;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none !important;
    transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 8px 22px rgba(44, 93, 171, 0.2);
}

.zi-pmosaic-more:hover {
    background: var(--zi-pm-ink);
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(28, 36, 75, 0.22);
}

.zi-products-empty {
    text-align: center;
    margin: 28px 0 0;
    font-family: var(--zi-classic-sans);
    color: var(--zi-pm-muted);
}

@media (max-width: 860px) {
    .zi-pmosaic-grid,
    .zi-pmosaic-grid--page {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: minmax(160px, 28vw);
    }

    .zi-pmosaic-cell.zi-pm-s0,
    .zi-pmosaic-cell.zi-pm-s7,
    .zi-pmosaic-cell.zi-pm-s10 {
        grid-column: 1 / 3;
        grid-row: span 2;
    }

    .zi-pmosaic-cell.zi-pm-s1,
    .zi-pmosaic-cell.zi-pm-s2,
    .zi-pmosaic-cell.zi-pm-s3,
    .zi-pmosaic-cell.zi-pm-s4,
    .zi-pmosaic-cell.zi-pm-s5,
    .zi-pmosaic-cell.zi-pm-s6,
    .zi-pmosaic-cell.zi-pm-s8,
    .zi-pmosaic-cell.zi-pm-s9,
    .zi-pmosaic-cell.zi-pm-s11,
    .zi-pmosaic-cell.zi-pm-s12,
    .zi-pmosaic-cell.zi-pm-s13,
    .zi-pmosaic-cell.zi-pm-s14 {
        grid-column: auto;
        grid-row: auto;
    }
}

@media (max-width: 560px) {
    .zi-pmosaic { padding: 48px 0 56px; }

    .zi-pmosaic-grid,
    .zi-pmosaic-grid--page {
        grid-auto-rows: minmax(150px, 42vw);
    }

    .zi-pmosaic-cell { padding: 14px; }

    .zi-pmosaic-cell.zi-pm-s0,
    .zi-pmosaic-cell.zi-pm-s7,
    .zi-pmosaic-cell.zi-pm-s10 {
        grid-column: 1 / 3;
        grid-row: span 1;
        min-height: 220px;
    }

    .zi-pmosaic-name { font-size: 16px; }
    .zi-pmosaic-cell.zi-pm-s0 .zi-pmosaic-name,
    .zi-pmosaic-cell.zi-pm-s7 .zi-pmosaic-name,
    .zi-pmosaic-cell.zi-pm-s10 .zi-pmosaic-name { font-size: 22px; }
    .zi-pmosaic-meta { font-size: 13px; padding-top: 6px; }
}

@media (prefers-reduced-motion: reduce) {
    .zi-pmosaic-cell:hover .zi-pmosaic-media img,
    .zi-pmosaic-cell:hover .zi-pmosaic-plus { transform: none; }
}

/* ===== Products page ? square catalog (Akij-style tabs + grid) ===== */
.zi-pcat {
    position: relative;
    padding: 56px 0 80px;
    background: #f5f5f5;
    overflow: hidden;
}

.zi-pcat-inner {
    width: 100%;
    max-width: var(--zi-content-max, 1200px);
    margin-inline: auto;
    padding-left: var(--zi-content-pad, 24px);
    padding-right: var(--zi-content-pad, 24px);
    box-sizing: border-box;
}

#products-catalog.zi-pcat .zi-pcat-inner {
    max-width: var(--zi-content-max, 1200px);
    width: 100%;
}

#products-catalog.zi-pcat:not(.zi-pcat--home) .zi-pcat-card {
    max-width: none;
    width: 100%;
    margin: 0;
}

.zi-pcat-header {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 36px;
}

.zi-projects-section .zi-pcat-header,
.zi-projects-section .zi-projects-header {
    max-width: 100%;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.zi-projects-section .zi-projects-lead,
.zi-projects-section .zi-pcat-lead.zi-projects-lead {
    max-width: 130ch;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.zi-pcat-eyebrow {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}

.zi-pcat-title {
    margin: 0 0 14px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(30px, 3.6vw, 44px);
    font-weight: 600;
    color: var(--zi-classic-navy, #1c244b);
    letter-spacing: 0.01em;
    line-height: 1.15;
}

.zi-pcat-header .zi-cp2-divider {
    margin: 0 auto 16px;
}

.zi-pcat-lead {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    line-height: 1.8;
    color: #5a6275;
}

.zi-pcat-lead > *:first-child { margin-top: 0; }
.zi-pcat-lead > *:last-child { margin-bottom: 0; }
.zi-pcat-lead p { margin: 0 0 0.75em; }

.zi-pcat-nav {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 28px;
}

.zi-pcat-nav-btn {
    appearance: none;
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #d9dde5 !important;
    outline: none !important;
    box-shadow: none !important;
    background: #fff;
    color: #1c244b;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.zi-pcat-nav-btn[hidden] {
    display: none !important;
}

.zi-pcat-nav-btn:hover:not(:disabled) {
    border-color: #5187dd !important;
    color: #5187dd;
}

.zi-pcat-nav-btn:focus,
.zi-pcat-nav-btn:focus-visible,
.zi-pcat-nav-btn:active {
    outline: none !important;
    box-shadow: none !important;
    border-color: #d9dde5 !important;
}

.zi-pcat-nav-btn:hover:not(:disabled):focus,
.zi-pcat-nav-btn:hover:not(:disabled):focus-visible {
    border-color: #5187dd !important;
}

.zi-pcat-nav-btn:disabled {
    opacity: 0.35;
    cursor: default;
}

.zi-pcat-tabs {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    flex: 1 1 auto;
    min-width: 0;
    gap: 10px;
    margin: 0;
    background: transparent;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    cursor: grab;
    user-select: none;
    scroll-behavior: smooth;
}

.zi-pcat-tabs::-webkit-scrollbar {
    display: none;
}

.zi-pcat-tabs.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
}

.zi-pcat-tab {
    appearance: none;
    flex: 0 0 auto;
    min-width: max-content;
    margin: 0;
    border: 1px solid #d9dde5 !important;
    outline: none !important;
    box-shadow: none !important;
    background: #fff;
    color: #1c244b;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: none;
    padding: 14px 20px;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.zi-pcat-tab:last-child {
    border-right: 1px solid #d9dde5 !important;
}

.zi-pcat-tab:hover {
    background: #f5f7fb;
    border-color: #c5ccd8 !important;
    color: #1c244b;
}

.zi-pcat-tab:focus,
.zi-pcat-tab:focus-visible,
.zi-pcat-tab:active {
    outline: none !important;
    box-shadow: none !important;
}

.zi-pcat-tab.is-active,
.zi-pcat-tab.is-active:hover,
.zi-pcat-tab.is-active:focus,
.zi-pcat-tab.is-active:focus-visible,
.zi-pcat-tab.is-active:active {
    background: #fff;
    color: #5187dd;
    border: 1px solid #5187dd !important;
    outline: none !important;
    box-shadow: none !important;
}

.zi-pcat-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
    justify-content: center;
}

.zi-pcat-card {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 247px;
    height: 275px;
    margin: 0 auto;
    padding: 0;
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 10px;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.05);
    text-decoration: none !important;
    overflow: hidden;
    box-sizing: border-box;
    transform: translateY(0);
    transition: box-shadow 0.28s ease, transform 0.28s ease, border-color 0.28s ease;
}

.zi-pcat-card.is-hidden {
    display: none !important;
}

.zi-pcat-logo {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 3;
    width: 52px;
    height: 52px;
    padding: 6px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.12);
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.16);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translate(6px, -6px) scale(0.92);
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.zi-pcat-logo img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    transform: none !important;
    image-rendering: auto;
}

.zi-pcat-media {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 auto;
    min-height: 0;
    padding: 18px 16px 8px;
    background: #fff;
}

.zi-pcat-card img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 86% !important;
    max-height: 132px !important;
    object-fit: contain !important;
    transform: translateY(0) scale(1);
    transition: transform 0.35s ease;
}

.zi-pcat-meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 0 16px 12px;
    min-height: 52px;
}

.zi-pcat-brand {
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    color: #9aa3b2;
}

.zi-pcat-name {
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
    color: #1c244b;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.zi-pcat-details {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    width: auto;
    min-width: 88px;
    max-width: 120px;
    height: 0;
    min-height: 0;
    margin: 0 0 0 16px;
    padding: 0 14px;
    overflow: hidden;
    background: #2c5dab;
    color: #fff;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 4px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.22s ease, visibility 0.22s ease, height 0.22s ease, margin 0.22s ease, min-height 0.22s ease;
}

.zi-pcat-card:hover {
    border-color: #d8d8d8;
    box-shadow: 0 16px 36px rgba(28, 36, 75, 0.14);
    transform: translateY(-6px);
    z-index: 1;
}

.zi-pcat-card:hover .zi-pcat-media img {
    transform: translateY(-4px) scale(1.06);
}

.zi-pcat-card:hover .zi-pcat-logo {
    opacity: 1;
    transform: translate(0, 0) scale(1);
}

.zi-pcat-card:hover .zi-pcat-details {
    opacity: 1;
    visibility: visible;
    height: 28px;
    min-height: 28px;
    margin: 0 0 12px 16px;
}

.zi-pcat-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #f0f0f0;
    color: #777;
    font-size: 22px;
}

.zi-pcat-empty {
    text-align: center;
    margin: 28px 0 0;
    font-family: var(--zi-classic-sans);
    color: #5a6275;
}

.zi-pcat-cta {
    display: flex;
    justify-content: center;
    margin-top: 36px;
}

.zi-pcat-all-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 180px;
    padding: 14px 28px;
    background: #111111;
    color: #fff !important;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-decoration: none !important;
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.zi-pcat-all-btn:hover {
    background: var(--zi-classic-navy, #1c244b);
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.15);
}

.zi-pcat--home {
    position: relative;
    isolation: isolate;
    padding: 72px 0 88px;
    /* Continues Water Solutions end color (#f3f1eb) ? no white seam */
    background:
        radial-gradient(ellipse 55% 45% at 8% 12%, rgba(184, 149, 44, 0.06), transparent 60%),
        radial-gradient(ellipse 50% 40% at 92% 88%, rgba(28, 36, 75, 0.05), transparent 55%),
        linear-gradient(180deg,
            #f3f1eb 0%,
            var(--zi-classic-ivory, #f6f4ef) 22%,
            var(--zi-classic-paper, #fbfaf7) 70%,
            var(--zi-classic-paper, #fbfaf7) 100%);
    overflow: hidden;
}

/* ===== Hot Products + Manufacturing + Products â€” seamless joined band ===== */
.zi-mfg-products-band {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(ellipse 55% 32% at 88% 6%, rgba(184, 149, 44, 0.05), transparent 58%),
        radial-gradient(ellipse 60% 36% at 10% 28%, rgba(28, 36, 75, 0.04), transparent 55%),
        radial-gradient(ellipse 50% 30% at 90% 62%, rgba(184, 149, 44, 0.055), transparent 55%),
        radial-gradient(ellipse 45% 28% at 12% 94%, rgba(184, 149, 44, 0.05), transparent 60%),
        linear-gradient(180deg,
            var(--zi-classic-paper, #fbfaf7) 0%,
            var(--zi-classic-ivory, #f6f4ef) 22%,
            var(--zi-classic-paper, #fbfaf7) 48%,
            var(--zi-classic-ivory, #f6f4ef) 78%,
            #f3f1eb 100%);
}

.zi-mfg-products-band .zi-agency-expertise,
.home .zi-mfg-products-band .zi-agency-expertise,
.zi-mfg-products-band .zi-agency-services,
.home .zi-mfg-products-band .zi-agency-services,
.zi-mfg-products-band .zi-pcat--home,
.home .zi-mfg-products-band .zi-pcat--home {
    background: transparent !important;
    isolation: auto;
}

.zi-mfg-products-band .zi-agency-expertise-bg {
    opacity: 0.55;
    mask-image: none;
    -webkit-mask-image: none;
}

.zi-mfg-products-band .zi-agency-services-wash,
.zi-mfg-products-band .zi-pcat--home::before {
    opacity: 0.28;
    mask-image: none;
    -webkit-mask-image: none;
}

.zi-mfg-products-band .zi-agency-expertise,
.home .zi-mfg-products-band .zi-agency-expertise {
    padding-bottom: 95px !important;
}

.zi-mfg-products-band .zi-agency-services,
.home .zi-mfg-products-band .zi-agency-services {
    padding-top: 40px !important;
    padding-bottom: 28px !important;
}

.zi-mfg-products-band .zi-pcat--home,
.home .zi-mfg-products-band .zi-pcat--home {
    padding-top: 20px !important;
    padding-bottom: 28px !important;
}

.zi-mfg-products-band .zi-agency-services-nav {
    margin-bottom: 0;
}

/* Products band ends on Projects jolsap start color â€” Projects keeps full jolsap look */
.zi-mfg-products-band + .zi-projects-section,
.home .zi-mfg-products-band + .zi-projects-section {
    margin-top: 0 !important;
}

@media (max-width: 720px) {
    .zi-mfg-products-band .zi-agency-expertise,
    .home .zi-mfg-products-band .zi-agency-expertise {
        padding-bottom: 36px !important;
    }

    .zi-mfg-products-band .zi-agency-services,
    .home .zi-mfg-products-band .zi-agency-services {
        padding-top: 28px !important;
        padding-bottom: 16px !important;
    }

    .zi-mfg-products-band .zi-pcat--home,
    .home .zi-mfg-products-band .zi-pcat--home {
        padding-top: 12px !important;
        padding-bottom: 18px !important;
    }
}

.zi-pcat--home::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image:
        linear-gradient(rgba(28, 36, 75, 0.02) 1px, transparent 1px),
        linear-gradient(90deg, rgba(28, 36, 75, 0.02) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(180deg, transparent 0%, #000 22%, #000 78%, transparent 100%);
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 22%, #000 78%, transparent 100%);
    opacity: 0.4;
}

.zi-pcat--home > .zi-pcat-inner {
    position: relative;
    z-index: 1;
}

.zi-pcat--home .zi-pcat-header {
    margin-bottom: 0;
}

.zi-pcat-home-head {
    position: relative;
    margin-bottom: 44px;
    min-height: 52px; /* room for the absolute toolbar */
}

.zi-pcat--home .zi-pcat-home-head .zi-pcat-header {
    text-align: center;
    max-width: 640px;
    margin-inline: auto;
}

.zi-pcat--home .zi-pcat-eyebrow {
    color: var(--zi-classic-gold, #b8952c);
}

.zi-pcat--home .zi-pcat-title {
    /* color: var(--zi-classic-navy, #1c244b); */
}

.zi-pcat--home .zi-pcat-lead {
    color: #5a6275;
    max-width: 560px;
    margin-inline: auto;
}

/* Homepage products â€” Brand dropdown only, pinned top-right of head block */
.zi-pcat-home-toolbar {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 3;
    display: flex;
    align-items: stretch;
    justify-content: flex-end;
    gap: 10px;
    width: auto;
    max-width: min(220px, 40%);
    margin: 0;
}

.zi-pcat-home-filter,
.zi-pcat-home-dropdown-toggle {
    appearance: none;
    border: 1px solid #d9dde5 !important;
    outline: none !important;
    box-shadow: none !important;
    background: #fff;
    color: #1c244b;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 14px 18px;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.zi-pcat-home-filter {
    flex: 0 0 auto;
    min-width: 0;
    text-align: center;
}

.zi-pcat-home-filter:hover {
    background: #f5f7fb;
    border-color: #c5ccd8 !important;
}

.zi-pcat-home-filter.is-active {
    background: #fff;
    color: #2c5dab;
    border-color: #2c5dab !important;
}

.zi-pcat-home-dropdown {
    position: relative;
    flex: 1 1 auto;
    min-width: 150px;
    top: 102px;
}

@media (max-width: 991px) {
    .zi-pcat--home {
        padding: 56px 0 64px;
    }

    .zi-pcat-home-head {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
        min-height: 0;
        margin-bottom: 28px;
    }

    .zi-pcat-home-toolbar {
        position: static;
        max-width: none;
        width: 100%;
        justify-content: stretch;
    }

    .zi-pcat-home-dropdown {
        top: 0;
        min-width: 0;
        width: 100%;
        max-width: 320px;
        margin-inline: auto;
    }

    .zi-pcat-home-filter,
    .zi-pcat-home-dropdown-toggle {
        width: 100%;
        padding: 12px 16px;
        font-size: 13px;
    }

    .zi-pcat--home .zi-pcat-home-head .zi-pcat-header {
        max-width: none;
        padding-inline: 0;
    }

    .zi-pcat--home .zi-pcat-title {
        font-size: clamp(26px, 5.5vw, 36px);
    }

    .zi-pcat--home .zi-pcat-lead {
        max-width: none;
        font-size: 14px;
    }

    .zi-pcat--home .zi-pcat-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 14px;
    }

    .zi-pcat--home .zi-pcat-card {
        max-width: none;
        height: auto;
        min-height: 240px;
    }

    .zi-pcat--page .zi-pcat-header {
        margin-bottom: 24px;
    }

    .zi-pcat--page .zi-pcat-title {
        font-size: clamp(26px, 5.5vw, 36px);
    }

    .zi-pcat--page .zi-pcat-lead {
        max-width: none;
        font-size: 14px;
    }

    .zi-pcat--page .zi-pcat-tabs {
        margin-bottom: 20px;
        padding-bottom: 4px;
    }
}

.zi-pcat-home-dropdown-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    text-align: center;
}

.zi-pcat-home-dropdown-toggle i {
    font-size: 11px;
    transition: transform 0.2s ease;
}

.zi-pcat-home-dropdown-toggle:hover,
.zi-pcat-home-dropdown.is-active .zi-pcat-home-dropdown-toggle,
.zi-pcat-home-dropdown-toggle[aria-expanded="true"] {
    background: transparent !important;
    background-image: linear-gradient(180deg, var(--e-global-color-primary, #2C5DAB) 0%, #2C5DAB 100%) !important;
    color: #fff !important;
    border-color: #2c5dab !important;
}

.zi-pcat-home-dropdown.is-active .zi-pcat-home-dropdown-toggle i,
.zi-pcat-home-dropdown-toggle[aria-expanded="true"] i {
    transform: rotate(180deg);
}

.zi-pcat-home-dropdown-menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    left: auto;
    min-width: 100%;
    z-index: 20;
    margin: 0;
    padding: 6px 0;
    list-style: none;
    max-height: 280px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #d9dde5;
    box-shadow: 0 12px 28px rgba(28, 36, 75, 0.12);
}

.zi-pcat-home-dropdown-menu[hidden] {
    display: none !important;
}

.zi-pcat-home-dropdown-menu li {
    margin: 0;
}

.zi-pcat-home-dropdown-menu button {
    appearance: none;
    display: block;
    width: 100%;
    margin: 0;
    padding: 12px 18px;
    border: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent;
    color: #5a6275;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.zi-pcat-home-dropdown-menu button:hover,
.zi-pcat-home-dropdown-menu button.is-active {
    background: rgba(44, 93, 171, 0.08);
    color: #2c5dab;
}

.zi-pcat-home-dropdown-menu::-webkit-scrollbar {
    width: 4px;
}

.zi-pcat-home-dropdown-menu::-webkit-scrollbar-thumb {
    background: #2c5dab;
    border-radius: 4px;
}

.zi-pcat--home .zi-pcat-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
}

.zi-pcat--home .zi-pcat-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    width: 100%;
    max-width: 247px;
    height: 275px;
    aspect-ratio: auto;
    padding: 0;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 10px;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.05);
}

.zi-pcat--home .zi-pcat-card img {
    max-width: 86% !important;
    max-height: 132px !important;
}

.zi-pcat--home .zi-pcat-card::after {
    display: none;
}

.zi-pcat--home .zi-pcat-card:hover {
    border-color: #d8d8d8;
    box-shadow: 0 16px 36px rgba(28, 36, 75, 0.14);
    transform: translateY(-6px);
}

.zi-pcat--home .zi-pcat-card:hover .zi-pcat-media img {
    transform: translateY(-4px) scale(1.06);
}

.zi-pcat--home .zi-pcat-fallback {
    background: var(--zi-classic-paper, #fbfaf7);
    color: var(--zi-classic-navy, #1c244b);
    border: 1px solid rgba(28, 36, 75, 0.08);
    border-radius: 2px;
}

.zi-pcat--home .zi-news-cta {
    margin-top: 44px;
}

/* Products + product detail pages — seamless classic jolsap band */
.zi-products-page-band,
.zi-prodd-page-band {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(ellipse 55% 32% at 88% 6%, rgba(184, 149, 44, 0.05), transparent 58%),
        radial-gradient(ellipse 60% 36% at 10% 28%, rgba(28, 36, 75, 0.04), transparent 55%),
        radial-gradient(ellipse 50% 30% at 90% 62%, rgba(184, 149, 44, 0.055), transparent 55%),
        radial-gradient(ellipse 45% 28% at 12% 94%, rgba(184, 149, 44, 0.05), transparent 60%),
        linear-gradient(180deg,
            var(--zi-classic-paper, #fbfaf7) 0%,
            var(--zi-classic-ivory, #f6f4ef) 18%,
            var(--zi-classic-paper, #fbfaf7) 42%,
            var(--zi-classic-ivory, #f6f4ef) 68%,
            var(--zi-classic-paper, #fbfaf7) 100%);
}

.zi-products-page-band .zi-pcat--page.zi-pcat--home,
.zi-products-page-band .zi-pcat--page {
    background: transparent !important;
    isolation: auto;
    padding-top: 72px;
    padding-bottom: 48px;
}

.zi-products-page-band .zi-pcat--page.zi-pcat--home::before,
.zi-products-page-band .zi-pcat--page::before {
    opacity: 0.32;
    mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
}

.zi-pcat--page .zi-pcat-home-head .zi-pcat-header,
.zi-pcat--page > .zi-pcat-inner > .zi-pcat-header {
    max-width: 100%;
    width: 100%;
}

.zi-pcat--page .zi-pcat-lead {
    max-width: 130ch;
}

.zi-pcat--page .zi-pcat-tabs {
    width: 100%;
    margin: 0 0 28px;
    justify-content: flex-start;
}

.zi-pcat--page .zi-pcat-tab {
    padding: 10px 18px;
}

/* Homepage button style: 10px radius + blue gradient */
.zi-pcat--page button.zi-pcat-tab,
.zi-pcat--page button.zi-pcat-tab:hover,
.zi-pcat--page button.zi-pcat-tab:focus,
.zi-pcat--page button.zi-pcat-tab:focus-visible,
.zi-pcat--page button.zi-pcat-tab:active,
.elementor-kit-7 .zi-pcat--page button.zi-pcat-tab,
.elementor-kit-7 .zi-pcat--page button.zi-pcat-tab:hover,
.elementor-kit-7 .zi-pcat--page button.zi-pcat-tab:focus,
.elementor-kit-7 .zi-pcat--page button.zi-pcat-tab:focus-visible,
.elementor-kit-7 .zi-pcat--page button.zi-pcat-tab:active {
    border-radius: 10px !important;
    background-color: transparent !important;
    background-image: linear-gradient(180deg, #2c5dab 0%, #5187DD 100%) !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Active: white */
.zi-pcat--page button.zi-pcat-tab.is-active,
.zi-pcat--page button.zi-pcat-tab.is-active:hover,
.zi-pcat--page button.zi-pcat-tab.is-active:focus,
.zi-pcat--page button.zi-pcat-tab.is-active:focus-visible,
.zi-pcat--page button.zi-pcat-tab.is-active:active,
.elementor-kit-7 .zi-pcat--page button.zi-pcat-tab.is-active,
.elementor-kit-7 .zi-pcat--page button.zi-pcat-tab.is-active:hover,
.elementor-kit-7 .zi-pcat--page button.zi-pcat-tab.is-active:focus,
.elementor-kit-7 .zi-pcat--page button.zi-pcat-tab.is-active:focus-visible,
.elementor-kit-7 .zi-pcat--page button.zi-pcat-tab.is-active:active {
    background-color: #fff !important;
    background-image: none !important;
    color: #5187dd !important;
    border: 1px solid #5187dd !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

.zi-products-page-band .zi-clients-section {
    background: transparent;
    margin-top: 0 !important;
    padding-top: 24px;
}

.zi-products-page-band .zi-client-logo {
    height: 100px !important;
    padding: 5px !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.zi-products-page-band .zi-client-logo img {
    max-height: 100% !important;
    max-width: 70% !important;
}

/* Product details — jolsap background only (original layout kept) */
.zi-prodd-page-band .zi-prodd {
    background: transparent !important;
}

@media (max-width: 1200px) {
    .zi-pcat-grid,
    .zi-pcat--home .zi-pcat-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 992px) {
    .zi-pcat-grid,
    .zi-pcat--home .zi-pcat-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 14px;
    }
}

@media (max-width: 720px) {
    .zi-pcat {
        padding: 40px 0 56px;
    }

    .zi-pcat--home {
        padding: 44px 0 52px;
    }

    .zi-pcat-inner {
        padding-left: 16px;
        padding-right: 16px;
    }

    .zi-pcat-header {
        margin-bottom: 24px;
    }

    .zi-pcat-eyebrow {
        font-size: 10px;
        letter-spacing: 0.22em;
    }

    .zi-pcat-title {
        font-size: clamp(24px, 6.8vw, 32px);
    }

    .zi-pcat-lead {
        font-size: 14px;
        line-height: 1.7;
    }

    .zi-pcat-home-head {
        gap: 14px;
        margin-bottom: 22px;
    }

    .zi-pcat-home-dropdown {
        max-width: none;
    }

    .zi-pcat-home-filter,
    .zi-pcat-home-dropdown-toggle {
        padding: 11px 14px;
        font-size: 12px;
    }

    .zi-pcat-grid,
    .zi-pcat--home .zi-pcat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .zi-pcat-card,
    .zi-pcat--home .zi-pcat-card {
        height: auto;
        min-height: 220px;
        max-width: none;
        border-radius: 8px;
    }

    .zi-pcat-media {
        padding: 14px 12px 6px;
    }

    .zi-pcat-card img,
    .zi-pcat--home .zi-pcat-card img {
        max-width: 90% !important;
        max-height: 110px !important;
    }

    .zi-pcat-meta {
        padding: 0 12px 10px;
        min-height: 46px;
        gap: 3px;
    }

    .zi-pcat-brand {
        font-size: 11px;
    }

    .zi-pcat-name {
        font-size: 13px;
        -webkit-line-clamp: 2;
    }

    .zi-pcat-logo {
        width: 44px;
        height: 44px;
        padding: 5px;
        top: 6px;
        right: 6px;
    }

    .zi-pcat-tab {
        padding: 11px 14px;
        font-size: 12px;
    }

    .zi-pcat--page .zi-pcat-tabs {
        gap: 8px;
        margin-bottom: 18px;
    }

    .zi-pcat--home .zi-news-cta {
        margin-top: 28px;
    }

    .zi-products-page-band .zi-pcat--page.zi-pcat--home,
    .zi-products-page-band .zi-pcat--page {
        padding-top: 44px;
        padding-bottom: 28px;
    }

    .zi-products-page-band .zi-clients-section {
        padding-top: 12px;
    }
}

@media (max-width: 480px) {
    .zi-pcat-grid,
    .zi-pcat--home .zi-pcat-grid {
        grid-template-columns: 1fr;
        gap: 14px;
        max-width: 360px;
        margin-inline: auto;
    }

    .zi-pcat-card,
    .zi-pcat--home .zi-pcat-card {
        min-height: 248px;
    }

    .zi-pcat-card img,
    .zi-pcat--home .zi-pcat-card img {
        max-height: 128px !important;
    }

    .zi-pcat-home-dropdown-menu {
        max-height: min(52vh, 280px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .zi-pcat-card:hover,
    .zi-pcat-card:hover img {
        transform: none;
    }
}

/* ===================================================
   Global font: Arial + weight scale (400 / 600 / 700)
   =================================================== */
:root {
    --zi-classic-serif: Arial, Helvetica, sans-serif;
    --zi-classic-sans: Arial, Helvetica, sans-serif;
    --zi-font: Arial, Helvetica, sans-serif;
    --zi-fw-regular: 400;
    --zi-fw-semibold: 600;
    --zi-fw-bold: 700;
    --e-global-typography-primary-font-family: Arial, Helvetica, sans-serif;
    --e-global-typography-secondary-font-family: Arial, Helvetica, sans-serif;
    --e-global-typography-text-font-family: Arial, Helvetica, sans-serif;
    --e-global-typography-accent-font-family: Arial, Helvetica, sans-serif;
    --e-global-typography-primary-font-weight: 400;
    --e-global-typography-secondary-font-weight: 400;
    --e-global-typography-text-font-weight: 400;
    --e-global-typography-accent-font-weight: 600;
}

html,
body,
button,
input,
select,
textarea,
.elementor-kit-7,
.elementor-heading-title,
.elementor-icon-box-title,
.elementor-icon-box-description,
.elementor-widget-text-editor,
.elementor-widget-heading .elementor-heading-title,
.hfe-nav-menu,
.hfe-nav-menu a,
.hfe-menu-item,
.site-header,
.site-footer,
.home h1,
.home h2,
.home h3,
.home h4,
.home h5,
.home h6,
.home p,
.home a,
.home span,
.home li,
.home label {
    font-family: Arial, Helvetica, sans-serif !important;
}

/* 400 ? body / supporting copy */
body,
p,
li,
label,
td,
dd,
.elementor-icon-box-description,
.elementor-widget-text-editor,
[class*="-desc"],
[class*="-intro"],
[class*="-subtitle"],
[class*="-copy"]:not(a):not(button),
[class*="-body"]:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
    font-weight: 400 !important;
}

/* 600 ? small headings, card titles, eyebrows, highlights, nav/buttons */
h3,
h4,
h5,
h6,
.home h3,
.home h4,
.home h5,
.home h6,
.elementor-icon-box-title,
h3.elementor-heading-title,
h4.elementor-heading-title,
h5.elementor-heading-title,
h6.elementor-heading-title,
.elementor-widget-heading h3,
.elementor-widget-heading h4,
.elementor-widget-heading h5,
.elementor-widget-heading h6,
button,
.btn,
.zi-btn,
.hfe-menu-item,
.hfe-nav-menu a,
[class*="-eyebrow"],
[class*="-card-title"],
[class*="card-title"],
.zi-featured-title,
.zi-product-card-title,
.zi-agency-case-title,
.zi-news-title,
.zi-cert-pillar-title,
.zi-team-group-title,
.zi-case-related-title,
.zi-cert-video-title,
.zi-footer-col-title,
.zi-generic-cta-text,
.zi-agency-testimonials-title span:last-child {
    font-weight: 600 !important;
}

/* 700 ? primary headings (H1 / H2) and key section titles */
h1,
h2,
.home h1,
.home h2,
h1.elementor-heading-title,
h2.elementor-heading-title,
.elementor-widget-heading h1,
.elementor-widget-heading h2,
strong,
b,
.zi-page-banner-title,
.zi-section-title,
.zi-generic-title,
.zi-page-section-heading h2,
.zi-why-title,
.zi-vmv2-title,
.zi-stats-title,
.zi-about-copy-title,
.zi-cp2-title,
.zi-co-title,
.zi-partners-title,
.zi-strategy-title,
.zi-projects-title,
.zi-clients-title,
.zi-certificates-title,
.zi-cert-assure-title,
.zi-news-heading,
.zi-bod-title,
.zi-pmosaic-title,
.zi-pcat-title,
.zi-service-modal-title,
.zi-case-modal-title,
.zi-agency-cases-heading,
.zi-agency-services-title,
.zi-agency-testimonials-title,
.zi-agency-floating-title {
    font-weight: 700 !important;
}
/* ===================================================
   Media page ? Latest Updates gallery + lightbox
   =================================================== */
.zi-media-page .zi-media-hub--compact {
    max-width: 920px;
    margin: 0 auto 42px;
}

.zi-media-gallery-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin: 8px 0 22px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(28, 36, 75, 0.1);
}

.zi-media-gallery-head h3 {
    margin: 0;
    font-family: var(--zi-classic-serif, Georgia, "Times New Roman", serif);
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    font-weight: 700;
    color: var(--zi-classic-navy, #1c244b);
}

.zi-media-gallery-head p {
    margin: 0;
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #7a8496;
}

.zi-media-gallery-group {
    margin-bottom: 38px;
}

.zi-media-gallery-group:last-child {
    margin-bottom: 0;
}

.zi-media-gallery-group-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(44, 93, 171, 0.14);
}

.zi-media-gallery-group-head h4 {
    margin: 0;
    font-family: var(--zi-classic-serif, Georgia, "Times New Roman", serif);
    font-size: clamp(1.1rem, 1.8vw, 1.35rem);
    font-weight: 700;
    color: #2c5dab;
}

.zi-media-gallery-group-head span {
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #8a94a6;
}

.zi-media-gallery--albums {
    margin-top: 4px;
}

.zi-media-album-card {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    margin: 0;
    padding: 0;
    border: 0;
    background: #101528;
    cursor: pointer;
    text-align: left;
    overflow: hidden;
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(28, 36, 75, 0.08);
    border: 1px solid rgba(28, 36, 75, 0.08);
    transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.45s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.45s ease;
    animation: ziMediaTileIn 0.55s ease both;
    animation-delay: calc(var(--zi-media-i, 0) * 40ms);
    z-index: 1;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
}

.zi-media-album-card:focus {
    outline: none;
}

.zi-media-album-card:focus-visible {
    outline: 2px solid rgba(44, 93, 171, 0.85);
    outline-offset: 3px;
}

.zi-media-album-card:hover,
.zi-media-album-card:focus-within {
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(28, 36, 75, 0.14);
    border-color: rgba(44, 93, 171, 0.28);
    overflow: visible;
    z-index: 50;
}

.zi-media-album-cover {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #0e1428;
    border-radius: inherit;
}

.zi-media-album-card:hover .zi-media-album-cover,
.zi-media-album-card:focus-within .zi-media-album-cover {
    overflow: visible;
}

/* Single-image album */
.zi-media-album-single-img {
    position: relative;
    inset: auto;
    flex: 0 1 auto;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    display: block;
    transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.zi-media-album-card:hover .zi-media-album-single-img,
.zi-media-album-card:focus-within .zi-media-album-single-img {
    transform: scale(1.03);
}

/* Arc fan stack — CodePen offset-path demo */
@property --arc-size {
    syntax: '<number>';
    inherits: true;
    initial-value: 0;
}

@property --arc-shift {
    syntax: '<number>';
    inherits: false;
    initial-value: 0;
}

.zi-media-album-cover-img {
    position: relative;
    inset: auto;
    flex: 0 1 auto;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    display: block;
    z-index: 8;
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s linear 0s;
}

.zi-media-album-card:hover .zi-media-album-cover-img,
.zi-media-album-card:focus-within .zi-media-album-cover-img {
    opacity: 0;
    visibility: hidden;
    transform: scale(1.02);
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.22s ease, visibility 0s linear 0.2s;
}

.zi-media-album-stack {
    --card-trans-duration: 720ms;
    --card-trans-easing: linear(0, 0.01 0.8%, 0.038 1.6%, 0.154 3.4%, 0.781 9.7%, 1.01 12.5%, 1.089 13.8%, 1.153 15.2%, 1.195 16.6%, 1.219 18%, 1.224 19.7%, 1.208 21.6%, 1.172 23.6%, 1.057 28.6%, 1.007 31.2%, 0.969 34.1%, 0.951 37.1%, 0.953 40.9%, 0.998 50.4%, 1.011 56%, 0.998 74.7%, 1);
    --card-border-radius: 10px;
    --card-width: min(18vmin, 42%);
    --radius: min(45vmin, 105%);
    --cards: var(--zi-album-cards, 3);
    --arc-size: 0;
    --arc-center: 0.75;
    --arc-start: calc(var(--arc-center) - var(--arc-size) / 2);
    --arc-shift-delta: 0.01;

    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 4;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    overflow: visible;
    transition:
        opacity 0.2s ease,
        visibility 0s linear 0.72s,
        --arc-size var(--card-trans-duration) var(--card-trans-easing);
}

.zi-media-album-card:hover .zi-media-album-stack,
.zi-media-album-card:focus-within .zi-media-album-stack {
    --arc-size: 0.25;
    top: -12%;
    right: -4%;
    bottom: -2%;
    left: -4%;
    width: auto;
    height: auto;
    pointer-events: none;
    opacity: 1;
    visibility: visible;
    z-index: 20;
    transition:
        opacity 0.18s ease,
        visibility 0s linear 0s,
        --arc-size var(--card-trans-duration) var(--card-trans-easing);
}

.zi-media-album-stack-card {
    --card-i: sibling-index();
    --arc-shift: 0;
    --arc-step: calc(var(--arc-size) / max(var(--cards) - 1, 1));

    position: absolute;
    width: var(--card-width);
    aspect-ratio: 4 / 6;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border-radius: var(--card-border-radius);
    border: 2px solid rgba(255, 255, 255, 0.96);
    box-shadow: 0 8px 24px rgba(28, 36, 75, 0.2);
    overflow: hidden;
    opacity: 1;
    pointer-events: none;
    offset-path: circle(var(--radius) at 50% 100%);
    offset-distance: calc(
        (var(--arc-start) + (var(--card-i) - 1) * var(--arc-step) + var(--arc-shift)) * 100%
    );
    offset-rotate: auto;
    offset-anchor: 50% 0%;
    left: auto;
    bottom: auto;
    margin-left: 0;
    transition: all var(--card-trans-duration) var(--card-trans-easing);
}

@supports not (order: sibling-index()) {
    .zi-media-album-stack-card:nth-child(1) { --card-i: 1; }
    .zi-media-album-stack-card:nth-child(2) { --card-i: 2; }
    .zi-media-album-stack-card:nth-child(3) { --card-i: 3; }
    .zi-media-album-stack-card:nth-child(4) { --card-i: 4; }
    .zi-media-album-stack-card:nth-child(5) { --card-i: 5; }
    .zi-media-album-stack-card:nth-child(6) { --card-i: 6; }
    .zi-media-album-stack-card:nth-child(7) { --card-i: 7; }
}

.zi-media-album-stack-card:where(:nth-child(1), :nth-child(7)) {
    z-index: 0;
}

.zi-media-album-stack-card:where(:nth-child(2), :nth-child(6)) {
    z-index: 1;
}

.zi-media-album-stack-card:where(:nth-child(3), :nth-child(5)) {
    z-index: 3;
}

.zi-media-album-stack-card:nth-child(4) {
    z-index: 4;
}

.zi-media-album-stack-card > img {
    flex: 0 1 auto;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    display: block;
    border-radius: inherit;
}

.zi-media-album-card:hover .zi-media-album-stack-card,
.zi-media-album-card:focus-within .zi-media-album-stack-card {
    pointer-events: auto;
}

.zi-media-album-stack-card:hover {
    offset-anchor: 50% 10%;
    z-index: 10 !important;
}

.zi-media-album-stack-card:hover + .zi-media-album-stack-card {
    --arc-shift: calc(var(--arc-shift-delta) * 3);
}

.zi-media-album-stack-card:hover + .zi-media-album-stack-card + .zi-media-album-stack-card {
    --arc-shift: calc(var(--arc-shift-delta) * 2);
}

.zi-media-album-stack-card:hover + .zi-media-album-stack-card + .zi-media-album-stack-card + .zi-media-album-stack-card {
    --arc-shift: calc(var(--arc-shift-delta) * 1);
}

.zi-media-album-stack-card:has(+ .zi-media-album-stack-card:hover) {
    --arc-shift: calc(var(--arc-shift-delta) * -3);
}

.zi-media-album-stack-card:has(+ .zi-media-album-stack-card + .zi-media-album-stack-card:hover) {
    --arc-shift: calc(var(--arc-shift-delta) * -2);
}

.zi-media-album-stack-card:has(+ .zi-media-album-stack-card + .zi-media-album-stack-card + .zi-media-album-stack-card:hover) {
    --arc-shift: calc(var(--arc-shift-delta) * -1);
}

/* Fallback when offset-path is unavailable */
@supports not (offset-path: circle(1px at 50% 50%)) {
    .zi-media-album-stack-card {
        left: 50%;
        bottom: 0;
        margin-left: calc(var(--card-width) / -2);
        transform-origin: 50% 100%;
        offset-path: none;
        transition: all var(--card-trans-duration) var(--card-trans-easing);
    }

    .zi-media-album-stack-card:nth-child(1) { transform: rotate(-10deg) translateY(6px); }
    .zi-media-album-stack-card:nth-child(2) { transform: rotate(-5deg) translateY(3px); }
    .zi-media-album-stack-card:nth-child(3) { transform: rotate(-2deg) translateY(1px); }
    .zi-media-album-stack-card:nth-child(4) { transform: rotate(0deg); }
    .zi-media-album-stack-card:nth-child(5) { transform: rotate(2deg) translateY(1px); }
    .zi-media-album-stack-card:nth-child(6) { transform: rotate(5deg) translateY(3px); }
    .zi-media-album-stack-card:nth-child(7) { transform: rotate(10deg) translateY(6px); }

    .zi-media-album-card:hover .zi-media-album-stack-card:nth-child(1),
    .zi-media-album-card:focus-within .zi-media-album-stack-card:nth-child(1) { transform: rotate(-18deg) translateY(-14px); }
    .zi-media-album-card:hover .zi-media-album-stack-card:nth-child(2),
    .zi-media-album-card:focus-within .zi-media-album-stack-card:nth-child(2) { transform: rotate(-10deg) translateY(-10px); }
    .zi-media-album-card:hover .zi-media-album-stack-card:nth-child(3),
    .zi-media-album-card:focus-within .zi-media-album-stack-card:nth-child(3) { transform: rotate(-5deg) translateY(-12px); }
    .zi-media-album-card:hover .zi-media-album-stack-card:nth-child(4),
    .zi-media-album-card:focus-within .zi-media-album-stack-card:nth-child(4) { transform: rotate(0deg) translateY(-16px); }
    .zi-media-album-card:hover .zi-media-album-stack-card:nth-child(5),
    .zi-media-album-card:focus-within .zi-media-album-stack-card:nth-child(5) { transform: rotate(5deg) translateY(-12px); }
    .zi-media-album-card:hover .zi-media-album-stack-card:nth-child(6),
    .zi-media-album-card:focus-within .zi-media-album-stack-card:nth-child(6) { transform: rotate(10deg) translateY(-10px); }
    .zi-media-album-card:hover .zi-media-album-stack-card:nth-child(7),
    .zi-media-album-card:focus-within .zi-media-album-stack-card:nth-child(7) { transform: rotate(18deg) translateY(-14px); }
}

@media (prefers-reduced-motion: reduce) {
    .zi-media-album-cover-img,
    .zi-media-album-stack,
    .zi-media-album-stack-card {
        transition-duration: 0.01ms !important;
    }
}

.zi-media-album-overlay {
    position: absolute;
    inset: auto 0 0;
    height: 42%;
    z-index: 9;
    background: linear-gradient(
        to top,
        rgba(12, 16, 32, 0.88) 0%,
        rgba(12, 16, 32, 0.45) 55%,
        transparent 100%
    );
    pointer-events: none;
    transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.zi-media-album-card:hover .zi-media-album-overlay,
.zi-media-album-card:focus-within .zi-media-album-overlay {
    opacity: 0.28;
}

.zi-media-album-meta {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 12;
    padding: 18px 16px 14px;
    pointer-events: none;
}

.zi-media-album-title {
    display: block;
    font-family: var(--zi-classic-serif, Georgia, "Times New Roman", serif);
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}

.zi-media-album-sub {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.88);
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.3);
}

.zi-media-album-zoom {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 20;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, 0.92);
    color: var(--zi-classic-navy, #1c244b);
    border: 1px solid rgba(28, 36, 75, 0.1);
    border-radius: 50%;
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.zi-media-album-zoom svg {
    width: 18px;
    height: 18px;
}

.zi-media-album-card:hover .zi-media-album-zoom,
.zi-media-album-card:focus-within .zi-media-album-zoom {
    opacity: 1;
    transform: scale(1);
}

.zi-media-album-card:focus-visible {
    outline: 2px solid var(--zi-classic-gold, #b8952c);
    outline-offset: 3px;
}

.zi-media-gallery {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 14px;
}

/* Album cards — must override 12-col tile grid above */
.zi-media-gallery.zi-media-gallery--albums {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
    gap: 20px;
    padding-top: 18px;
    padding-bottom: 12px;
    overflow: visible;
}

.zi-media-gallery.zi-media-gallery--albums .zi-media-album-card {
    grid-column: auto;
    min-width: 0;
}

.zi-media-gallery.zi-media-gallery--albums .zi-media-album-card:hover,
.zi-media-gallery.zi-media-gallery--albums .zi-media-album-card:focus-within {
    z-index: 50;
}

.zi-media-tile {
    position: relative;
    grid-column: span 3;
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
    overflow: hidden;
    isolation: isolate;
    animation: ziMediaTileIn 0.55s ease both;
    animation-delay: calc(var(--zi-media-i, 0) * 40ms);
}

.zi-media-tile:nth-child(6n + 1),
.zi-media-tile:nth-child(6n + 2) {
    grid-column: span 4;
}

.zi-media-tile:nth-child(8n + 3) {
    grid-row: span 1;
}

.zi-media-tile-frame {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background:
        linear-gradient(145deg, rgba(28, 36, 75, 0.06), rgba(184, 149, 44, 0.08)),
        #ece8df;
    border: 1px solid rgba(28, 36, 75, 0.08);
}

.zi-media-tile:nth-child(6n + 1) .zi-media-tile-frame,
.zi-media-tile:nth-child(6n + 2) .zi-media-tile-frame {
    aspect-ratio: 16 / 11;
}

.zi-media-tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1), filter 0.35s ease;
    filter: saturate(0.92) contrast(1.02);
}

.zi-media-tile:hover img,
.zi-media-tile:focus-visible img {
    transform: scale(1.06);
    filter: saturate(1.05) contrast(1.04);
}

.zi-media-tile-meta {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 28px 14px 12px;
    background: linear-gradient(180deg, transparent, rgba(15, 20, 40, 0.78));
    color: #fff;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.zi-media-tile:hover .zi-media-tile-meta,
.zi-media-tile:focus-visible .zi-media-tile-meta {
    opacity: 1;
    transform: translateY(0);
}

.zi-media-tile-cat {
    display: block;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #f0d78c;
    margin-bottom: 4px;
}

.zi-media-tile-title {
    display: block;
    font-family: var(--zi-classic-serif, Georgia, "Times New Roman", serif);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
}

.zi-media-tile-zoom {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, 0.92);
    color: var(--zi-classic-navy, #1c244b);
    border: 1px solid rgba(28, 36, 75, 0.1);
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.zi-media-tile-zoom svg {
    width: 18px;
    height: 18px;
}

.zi-media-tile:hover .zi-media-tile-zoom,
.zi-media-tile:focus-visible .zi-media-tile-zoom {
    opacity: 1;
    transform: scale(1);
}

.zi-media-tile:focus-visible {
    outline: 2px solid var(--zi-classic-gold, #b8952c);
    outline-offset: 3px;
}

@keyframes ziMediaTileIn {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
}

html.zi-media-lightbox-open,
html.zi-media-lightbox-open body {
    overflow: hidden;
}

html.zi-media-lightbox-open .zi-media-album-stack,
html.zi-media-lightbox-open .zi-media-album-card:hover .zi-media-album-stack,
html.zi-media-lightbox-open .zi-media-album-card:focus-within .zi-media-album-stack {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

html.zi-media-lightbox-open .zi-media-album-card:hover,
html.zi-media-lightbox-open .zi-media-album-card:focus-within {
    transform: none;
    z-index: 1;
}

html.zi-media-lightbox-open .zi-media-gallery--albums {
    pointer-events: none;
}

.zi-media-lightbox[hidden] {
    display: none !important;
}

.zi-media-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: grid;
    place-items: center;
    padding: 20px;
    touch-action: manipulation;
}

.zi-media-lightbox-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        radial-gradient(ellipse at 50% 20%, rgba(44, 93, 171, 0.18), transparent 55%),
        rgba(8, 11, 22, 0.88);
    backdrop-filter: blur(10px);
}

.zi-media-lightbox-dialog {
    position: relative;
    z-index: 1;
    pointer-events: auto;
    width: min(1120px, 100%);
    max-height: calc(100vh - 40px);
    animation: ziMediaLbIn 0.38s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.zi-media-lightbox-panel {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 40px);
    min-height: 0;
    background: linear-gradient(180deg, rgba(22, 28, 50, 0.98), rgba(14, 18, 34, 0.99));
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 18px;
    box-shadow:
        0 28px 80px rgba(0, 0, 0, 0.55),
        0 0 0 1px rgba(44, 93, 171, 0.12) inset;
    overflow: hidden;
}

@keyframes ziMediaLbIn {
    from { opacity: 0; transform: translateY(20px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.zi-media-lightbox-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.02);
}

.zi-media-lightbox-header-main {
    min-width: 0;
}

.zi-media-lightbox-eyebrow {
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #d4b45a;
}

.zi-media-lightbox-album {
    margin: 0;
    font-family: var(--zi-classic-serif, Georgia, "Times New Roman", serif);
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
}

.zi-media-lightbox-meta {
    margin: 6px 0 0;
    font-size: 13px;
    color: rgba(232, 236, 244, 0.68);
}

.zi-media-lightbox-close {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.zi-media-lightbox-close svg {
    width: 18px;
    height: 18px;
}

.zi-media-lightbox-close:hover {
    background: rgba(184, 149, 44, 0.22);
    border-color: rgba(184, 149, 44, 0.5);
    transform: scale(1.04);
}

.zi-media-lightbox-viewport {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 16px 18px 12px;
    flex: 1 1 auto;
    min-height: 0;
}

.zi-media-lightbox-stage {
    margin: 0;
    min-width: 0;
}

.zi-media-lightbox-stage-frame {
    position: relative;
    overflow: hidden;
    border-radius: 14px;
    background: #0c1020;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35);
    min-height: min(42vh, 420px);
}

.zi-media-lightbox-stage img {
    display: block;
    width: 100%;
    min-height: 180px;
    max-height: min(62vh, 680px);
    object-fit: contain;
    background: #0c1020;
    transition: opacity 0.25s ease;
}

.zi-media-lightbox-stage img.is-loading {
    opacity: 0.55;
}

.zi-media-lightbox-loader {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.zi-media-lightbox-loader::after {
    content: '';
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 3px solid rgba(255, 255, 255, 0.15);
    border-top-color: #2c5dab;
    animation: ziMediaLbSpin 0.75s linear infinite;
}

.zi-media-lightbox-stage img.is-loading + .zi-media-lightbox-loader {
    opacity: 1;
}

@keyframes ziMediaLbSpin {
    to { transform: rotate(360deg); }
}

.zi-media-lightbox-stage figcaption {
    padding: 12px 4px 0;
    text-align: center;
}

.zi-media-lightbox-stage figcaption strong {
    display: block;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    color: rgba(232, 236, 244, 0.82);
}

.zi-media-lightbox-nav {
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.zi-media-lightbox-nav svg {
    width: 22px;
    height: 22px;
}

.zi-media-lightbox-nav:hover {
    background: rgba(44, 93, 171, 0.35);
    border-color: rgba(44, 93, 171, 0.65);
    transform: scale(1.05);
}

.zi-media-lightbox-footer {
    flex: 0 0 auto;
    padding: 14px 18px 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(0, 0, 0, 0.18);
}

.zi-media-lightbox-footer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.zi-media-lightbox-footer-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
}

.zi-media-lightbox-footer-head em {
    font-style: normal;
    font-size: 12px;
    font-weight: 600;
    color: #d4b45a;
}

.zi-media-lightbox-thumbs {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding: 4px 2px 8px;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.35) transparent;
}

.zi-media-lightbox-thumbs::-webkit-scrollbar {
    height: 6px;
}

.zi-media-lightbox-thumbs::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.28);
    border-radius: 999px;
}

.zi-media-lightbox-thumb {
    flex: 0 0 auto;
    width: 128px;
    margin: 0;
    padding: 0;
    border: 2px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.04);
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    transition: border-color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;
}

.zi-media-lightbox-thumb:hover {
    border-color: rgba(255, 255, 255, 0.42);
    transform: translateY(-3px);
}

.zi-media-lightbox-thumb.is-active {
    border-color: #2c5dab;
    box-shadow: 0 0 0 3px rgba(44, 93, 171, 0.28);
    transform: translateY(-3px);
}

.zi-media-lightbox-thumb-frame {
    display: block;
    aspect-ratio: 4 / 3;
    min-height: 90px;
    overflow: hidden;
    background: #101528;
}

.zi-media-lightbox-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0.78;
    transition: opacity 0.2s ease, transform 0.25s ease;
}

.zi-media-lightbox-thumb.is-active img,
.zi-media-lightbox-thumb:hover img {
    opacity: 1;
    transform: scale(1.03);
}


@media (max-width: 1024px) {
    .zi-media-tile,
    .zi-media-tile:nth-child(6n + 1),
    .zi-media-tile:nth-child(6n + 2) {
        grid-column: span 4;
    }
}

@media (max-width: 720px) {
    .zi-media-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .zi-media-tile,
    .zi-media-tile:nth-child(6n + 1),
    .zi-media-tile:nth-child(6n + 2) {
        grid-column: auto;
    }

    .zi-media-tile-meta {
        opacity: 1;
        transform: none;
        padding: 22px 10px 10px;
    }

    .zi-media-tile-zoom {
        opacity: 1;
        transform: none;
        width: 30px;
        height: 30px;
    }

    .zi-media-lightbox {
        padding: 10px;
    }

    .zi-media-lightbox-panel {
        border-radius: 14px;
    }

    .zi-media-lightbox-header {
        padding: 14px 14px 12px;
    }

    .zi-media-lightbox-viewport {
        grid-template-columns: 1fr;
        gap: 0;
        padding: 10px 12px 8px;
    }

    .zi-media-lightbox-nav {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        z-index: 3;
        width: 40px;
        height: 40px;
    }

    .zi-media-lightbox-nav:hover {
        transform: translateY(-50%) scale(1.05);
    }

    .zi-media-lightbox-nav--prev { left: 18px; }
    .zi-media-lightbox-nav--next { right: 18px; }

    .zi-media-lightbox-close {
        width: 38px;
        height: 38px;
    }

    .zi-media-lightbox-footer {
        padding: 12px 14px 14px;
    }

    .zi-media-lightbox-thumb {
        width: 104px;
    }

    .zi-media-lightbox-thumb-frame {
        min-height: 76px;
    }
}

/* ============================================================
   Desktop FHD layout polish (1366 ? 1920?1080)
   Consistent containers, banners, spacing, media & UI
   ============================================================ */

@media (min-width: 1280px) {
    :root {
        --zi-content-max: 1180px;
        --zi-header-h: 82px;
        --zi-section-y: 64px;
        --zi-banner-h: clamp(220px, 24vh, 280px);
    }
}

@media (min-width: 1600px) {
    :root {
        --zi-content-max: 1440px;
        --zi-content-pad: 48px;
        --zi-section-y: 80px;
        --zi-banner-h: 300px;
        --zi-hero-h: clamp(520px, 55vh, 620px);
        --zi-hero-min: 520px;
        --zi-hero-max: 650px;
    }
}

/* Exact 1920x1080 class of displays (exclude 2K+) */
@media (min-width: 1800px) and (max-width: 2399px) and (min-height: 900px) {
    :root {
        --zi-content-max: 1560px;
        --zi-content-pad: 56px;
        --zi-section-y: 96px;
        --zi-section-gap: 48px;
        --zi-banner-h: 320px;
        --zi-hero-h: clamp(560px, 55vh, 620px);
        --zi-hero-overlap: 36px;
        --zi-header-h: 92px;
    }
}

/* Shared content rails ? aligned across homepage + inner pages */
.zi-why-inner,
.zi-inner-container,
.zi-cp2-inner,
.zi-projects-inner,
.zi-news-inner,
.zi-news-page-inner,
.zi-footer-inner,
.zi-footer-bottom-inner,
.zi-stats-inner,
.zi-vmv2-inner,
.zi-agency-cases-inner,
.zi-cert-assure-inner,
.zi-partners-inner,
.zi-brands-inner,
.zi-clients-inner,
.zi-pmosaic-inner,
.zi-sales-outlet-inner,
.zi-prodd-inner,
.zi-agency-container,
.zi-agency-services-stage,
.zi-pcat-inner,
.zi-people-inner,
.elementor-33 .elementor-element-8c69afb > .e-con-inner,
.elementor-33 .elementor-element-7f1c3ce > .e-con-inner,
.main-navigation-area > .e-con-inner,
.elementor-2 .elementor-element-781d65e7 > .e-con-inner {
    max-width: var(--zi-content-max) !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--zi-content-pad) !important;
    padding-right: var(--zi-content-pad) !important;
    box-sizing: border-box !important;
}

.zi-news-inner,
.zi-news-page-inner {
    width: min(100%, var(--zi-content-max)) !important;
}

/* Vertical rhythm for major homepage bands */
.zi-why-section,
.zi-news-section,
.elementor-2 .elementor-element-3db92752,
.zi-cp2-section,
.zi-projects-section,
.zi-news-page,
.zi-inner-section,
.zi-vmv2-section {
    padding-top: var(--zi-section-y) !important;
    padding-bottom: var(--zi-section-y) !important;
}

/* Keep Testimonials â†’ News gap tight inside shared band */
.zi-testi-news-band .zi-agency-testimonials,
.home .zi-testi-news-band .zi-agency-testimonials {
    padding-bottom: 0 !important;
}

.zi-testi-news-band .zi-news-section,
.zi-testi-news-band .elementor-element-3db92752,
.home .zi-testi-news-band .zi-news-section,
.home .zi-testi-news-band .elementor-element-3db92752,
.elementor-2 .zi-testi-news-band .elementor-element-3db92752 {
    padding-top: 0 !important;
    padding-bottom: 28px !important;
    margin-top: -8px;
}

.zi-testi-news-band .zi-news-cta {
    margin-top: 22px;
}

.home .zi-footer-wave {
    background: var(--zi-classic-paper, #fbfaf7);
}

.home .zi-footer-wave svg {
    height: 66px;
}

.zi-testi-news-band .zi-agency-testimonials-slider {
    padding-bottom: 0 !important;
}

.zi-testi-news-band .zi-agency-testi-dots,
.home .zi-testi-news-band .zi-agency-testi-dots {
    margin-top: 48px !important;
    margin-bottom: 0 !important;
}

.zi-about-band {
    padding-top: 0 !important;
    /* padding-bottom: var(--zi-section-y) !important; */
}

/* Hero / cinema ? full-bleed media, no letterbox gaps */
.zi-cinema-hero,
.zi-cinema-slider,
.elementor-2 .elementor-element-4fd9adf7,
.elementor-element-4fd9adf7.e-con {
    width: 100% !important;
    max-width: 100% !important;
}

.zi-cinema-slide img,
.zi-cinema-slide video,
.zi-page-banner-bg {
    object-fit: cover;
    object-position: center center;
}

/* Cards / tiles ? prevent overflow & uneven stretch */
.zi-news-card,
.zi-media-tile,
.zi-hub-card,
.zi-featured-row,
.zi-cp2-card,
.zi-product-card,
.zi-agency-case-card {
    min-width: 0;
    max-width: 100%;
}

.zi-news-card img,
.zi-media-tile img,
.zi-featured-media img,
.zi-project-main img,
.zi-project-thumb img,
.zi-cp2-card img,
.zi-product-card img {
    max-width: 100%;
    height: auto;
    object-fit: cover;
}

/* Text readability on wide desktops */
.zi-featured-text,
.zi-news-lead,
.zi-news-excerpt,
.zi-cp2-intro,
.zi-why-copy p,
.zi-about-copy p {
    max-width: 46rem;
}

.zi-news-header,
.zi-cp2-header,
.zi-projects-header,
.zi-why-header {
    margin-bottom: clamp(28px, 3.5vw, 52px);
}

/* Buttons / CTAs ? consistent hit area */
.zi-news-cta-btn,
.zi-featured-link,
.zi-btn,
a.zi-featured-link,
.zi-cinema-sound-btn {
    max-width: 100%;
    white-space: normal;
}

/* Featured project rows ? balanced columns on FHD */
@media (min-width: 1280px) {
    .zi-featured-row,
    .zi-featured-row.is-reverse {
        grid-template-columns: minmax(340px, 0.95fr) minmax(0, 1.05fr);
        gap: clamp(40px, 4vw, 72px);
        padding-block: clamp(40px, 4vw, 64px);
        align-items: center;
    }

    .zi-featured-row.is-reverse {
        grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);
    }
}

/* Media gallery denser & aligned on wide screens */
@media (min-width: 1400px) {
    .zi-media-gallery {
        gap: 16px;
    }

    .zi-media-hub {
        max-width: 960px;
    }
}

/* Sticky header offset for in-page anchors */
html {
    scroll-padding-top: calc(var(--zi-header-h) + 12px);
}

/* Kill accidental horizontal scroll from absolute d?cor */
.page-content,
.elementor.elementor-2,
.zi-news-section,
.zi-projects-section,
.zi-cp2-section,
.zi-why-section,
.zi-media-page {
    overflow-x: clip;
    overflow-y: visible;
}

.zi-media-page .zi-news-page-inner,
.zi-media-page .zi-media-gallery.zi-media-gallery--albums {
    overflow: visible;
}

/* Footer rail match */
.zi-footer-inner,
.zi-footer-bottom-inner {
    max-width: var(--zi-content-max);
}

/* Tablet / mid desktops */
@media (max-width: 1279px) {
    :root {
        --zi-content-max: 1100px;
        --zi-hero-h: clamp(480px, 58vh, 620px);
        --zi-banner-h: clamp(200px, 28vh, 280px);
    }
}

@media (max-width: 991px) {
    :root {
        --zi-header-h: 72px;
        --zi-section-y: 56px;
        --zi-hero-h: clamp(400px, 55vh, 560px);
        --zi-banner-h: 210px;
    }

    .zi-cinema-slider {
        min-height: 400px;
        max-height: 560px;
    }

    .zi-featured-row,
    .zi-featured-row.is-reverse {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }

    .zi-featured-row.is-reverse .zi-featured-copy,
    .zi-featured-row.is-reverse .zi-featured-media {
        order: unset !important;
    }
}

@media (max-width: 640px) {
    :root {
        --zi-content-pad: 16px;
        --zi-section-y: 48px;
        --zi-banner-h: 180px;
        --zi-hero-h: clamp(320px, 52vh, 480px);
    }

    .zi-cinema-slider {
        min-height: 320px;
        max-height: 480px;
    }

    .zi-page-banner-title {
        font-size: clamp(22px, 7vw, 30px);
    }

    .zi-page-banner-subtitle {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
}

/* Pixel-tight FHD: keep hero in the 550-650 band (not 2K) */
@media (min-width: 1800px) and (max-width: 2399px) and (max-height: 1100px) {
    :root {
        --zi-hero-h: 580px;
        --zi-hero-overlap: 32px;
    }

    .zi-cinema-slider {
        height: 580px !important;
        min-height: 580px !important;
        max-height: 620px !important;
    }

    .zi-page-banner {
        height: 300px !important;
    }
}

/* ============================================================
   Typography clarity + FHD hero lock (1920x1080)
   ============================================================ */

/* Sharp text ? smoothing only (never force filter/transform off layout nodes) */
html,
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

body,
p,
li,
label,
.elementor-icon-box-description,
.elementor-widget-text-editor,
.zi-featured-text,
.zi-news-excerpt,
.zi-news-lead,
.zi-projects-lead,
.zi-cp2-intro,
.zi-about-copy p,
.zi-why-copy p {
    font-size: 16px;
    line-height: 1.65;
    letter-spacing: 0;
    font-weight: 400;
}

h1, .zi-page-banner-title, h1.elementor-heading-title {
    font-size: clamp(28px, 2.4vw, 42px);
    line-height: 1.2;
    letter-spacing: -0.01em;
    font-weight: 700;
}

h2, .zi-section-title, .zi-news-heading, .zi-cp2-title, .zi-why-title,
h2.elementor-heading-title {
    font-size: clamp(26px, 2.1vw, 36px);
    line-height: 1.25;
    letter-spacing: -0.01em;
    font-weight: 700;
}

h3, .zi-featured-title, .zi-news-card-title, .zi-product-card-title,
h3.elementor-heading-title {
    font-size: clamp(18px, 1.25vw, 22px);
    line-height: 1.35;
    letter-spacing: 0;
    font-weight: 600;
}

/* Album images — never crop on cards */
.zi-media-page .zi-media-album-cover-img,
.zi-media-page .zi-media-album-single-img,
.zi-media-page .zi-media-album-stack-card > img {
    object-fit: contain !important;
    object-position: center !important;
}

/* Cover media quality — tiles only, not album cards */
.zi-cinema-slide img,
.zi-cinema-slide video,
.zi-project-main img,
.zi-featured-media img,
.zi-media-tile img,
.zi-news-media img,
.zi-page-banner-bg {
    object-fit: cover !important;
    object-position: center center !important;
}

/* Final hero height + about-band peek ? variable-driven */
@media (min-width: 1200px) {
    .zi-cinema-hero .zi-cinema-slider,
    .zi-cinema-slider,
    .elementor-2 .elementor-element-4fd9adf7,
    .elementor-element-4fd9adf7.e-con {
        height: var(--zi-hero-h) !important;
        min-height: var(--zi-hero-min) !important;
        max-height: var(--zi-hero-max) !important;
    }

    .zi-cinema-hero + .zi-about-band {
        margin-top: calc(-1 * var(--zi-hero-overlap)) !important;
        z-index: 3;
        padding-top: 20px !important;
    }
}

@media (min-width: 1800px) and (max-width: 2399px) and (min-height: 900px) {
    :root {
        --zi-hero-h: 580px;
        --zi-hero-min: 560px;
        --zi-hero-max: 650px;
        --zi-hero-overlap: 36px;
    }

    .zi-cinema-hero + .zi-about-band {
        padding-top: 28px !important;
    }

    .zi-about-band .zi-stats-header--standalone {
        margin-top: 8px;
        margin-bottom: 24px;
    }
}

/* ============================================================
   1366?768 laptop desktop optimization
   ============================================================ */
@media (min-width: 1200px) and (max-width: 1599px) {
    :root {
        --zi-header-h: 112px;
        --zi-content-max: 1120px;
        --zi-content-pad: 28px;
        --zi-section-y: 52px;
        --zi-section-gap: 28px;
        --zi-banner-h: 220px;
        --zi-hero-h: clamp(450px, 60vh, 520px);
        --zi-hero-min: 450px;
        --zi-hero-max: 550px;
        --zi-hero-overlap: 48px;
    }

    .zi-cinema-hero .zi-cinema-slider,
    .zi-cinema-slider {
        height: var(--zi-hero-h) !important;
        min-height: 450px !important;
        max-height: 550px !important;
    }

    .zi-cinema-progress {
        bottom: calc(var(--zi-hero-overlap, 48px) + 14px) !important;
        z-index: 25 !important;
    }

    .zi-cinema-sound-btn {
        bottom: calc(44px + (var(--zi-hero-overlap) * 0.3));
        padding: 10px 16px;
        font-size: 13px;
    }

    .zi-cinema-hero + .zi-about-band {
        margin-top: calc(-1 * var(--zi-hero-overlap)) !important;
        padding-top: 18px !important;
    }

    .zi-about-band .zi-stats-header--standalone {
        margin-top: 6px !important;
        margin-bottom: 20px !important;
    }

    .zi-stats-title,
    .zi-about-band .zi-stats-title {
        font-size: 28px !important;
        line-height: 1.25 !important;
    }

    .zi-stats-subtitle {
        font-size: 11px !important;
        letter-spacing: 0.24em !important;
    }

    body,
    p,
    li,
    .elementor-icon-box-description,
    .elementor-widget-text-editor,
    .zi-featured-text,
    .zi-news-excerpt {
        font-size: 15px !important;
        line-height: 1.6 !important;
    }

    h2,
    .zi-section-title,
    .zi-news-heading,
    .zi-cp2-title,
    .zi-why-title,
    h2.elementor-heading-title {
        font-size: 28px !important;
        line-height: 1.25 !important;
    }

    h3,
    .zi-featured-title,
    .zi-news-card-title {
        font-size: 18px !important;
        line-height: 1.35 !important;
    }

    .zi-featured-row,
    .zi-featured-row.is-reverse {
        gap: 32px !important;
        padding-block: 36px !important;
    }

    .zi-cp2-header,
    .zi-projects-header,
    .zi-news-header,
    .zi-why-header {
        margin-bottom: 32px !important;
    }

    .zi-news-section,
    .elementor-2 .elementor-element-3db92752,
    .zi-cp2-section,
    .zi-projects-section {
        padding-top: 52px !important;
        padding-bottom: 52px !important;
    }

    .zi-testi-news-band .zi-news-section,
    .zi-testi-news-band .elementor-element-3db92752,
    .home .zi-testi-news-band .zi-news-section,
    .home .zi-testi-news-band .elementor-element-3db92752,
    .elementor-2 .zi-testi-news-band .elementor-element-3db92752 {
        padding-top: 0 !important;
        padding-bottom: 24px !important;
        margin-top: -8px;
    }

    .zi-page-banner {
        height: 220px !important;
        max-height: 240px !important;
    }

    .zi-page-banner-title {
        font-size: 30px !important;
    }
}

/* Exact short laptop height (~768) */
@media (min-width: 1200px) and (max-width: 1599px) and (max-height: 820px) {
    :root {
        --zi-hero-h: 480px;
        --zi-hero-min: 450px;
        --zi-hero-max: 520px;
        --zi-hero-overlap: 52px;
        --zi-section-y: 44px;
        --zi-header-h: 104px;
    }

    .zi-cinema-hero .zi-cinema-slider,
    .zi-cinema-slider {
        height: 480px !important;
        min-height: 450px !important;
        max-height: 520px !important;
    }

    .zi-cinema-hero + .zi-about-band {
        margin-top: -52px !important;
        padding-top: 16px !important;
    }

    .zi-about-band {
        padding-bottom: 44px !important;
    }

    .zi-about-band .zi-stats-header--standalone {
        margin-top: 4px !important;
        margin-bottom: 16px !important;
    }
}

@media (max-width: 991px) {
    :root {
        --zi-hero-overlap: 24px;
        --zi-hero-min: 360px;
        --zi-hero-max: 560px;
    }

    .zi-cinema-hero + .zi-about-band {
        margin-top: calc(-1 * var(--zi-hero-overlap));
        padding-top: 20px !important;
    }

    .zi-about-band .zi-stats-header--standalone {
        margin-top: 8px;
    }
}

@media (max-width: 640px) {
    :root {
        --zi-hero-overlap: 16px;
        --zi-hero-min: 300px;
        --zi-hero-max: 480px;
    }
}
/* ============================================================
   Header alignment + crisp chrome (desktop + 1366x768)
   ============================================================ */

/* Top utility bar */
.elementor-33 .elementor-element-8c69afb {
    --padding-top: 4px !important;
    --padding-bottom: 4px !important;
}

.elementor-33 .elementor-element-8c69afb > .e-con-inner {
    min-height: 0 !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    align-items: center !important;
}

.elementor-33 .elementor-element-a5e7c04 .elementor-heading-title {
    font-size: 12px !important;
    line-height: 1.2 !important;
    margin: 0 !important;
}

.elementor-33 .elementor-element-6457c54 .elementor-social-icon {
    font-size: 14px !important;
}

.elementor-33 .elementor-element-7211e75 .elementor-icon-list-text {
    font-size: 12px !important;
}

.elementor-33 .elementor-element-7211e75 .elementor-icon-list-item {
    padding: 0 !important;
    margin: 0 !important;
}

/* Logo + contact row ? balanced height, vertical center */
.elementor-33 .elementor-element-7f1c3ce {
    --padding-top: 10px !important;
    --padding-bottom: 10px !important;
    background: #fff;
}

.elementor-33 .elementor-element-7f1c3ce > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    min-height: 64px;
    gap: 16px !important;
}

/* Logo column ? always flush left */
.elementor-33 .elementor-element-3143ee7 {
    --padding-top: 0 !important;
    --padding-bottom: 0 !important;
    --padding-left: 0 !important;
    --padding-right: 0 !important;
    justify-content: flex-start !important;
    align-items: center !important;
    align-self: center !important;
    text-align: left !important;
}

.elementor-33 .elementor-element-3143ee7 .elementor-widget-site-logo,
.elementor-33 .elementor-element-3143ee7 .elementor-widget-container,
.elementor-33 .hfe-site-logo,
.elementor-33 .hfe-site-logo-set,
.elementor-33 .hfe-site-logo-container {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    text-align: left !important;
    width: auto !important;
    margin-left: 0 !important;
    margin-right: auto !important;
}

.elementor-33 .hfe-site-logo a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin-left: 0 !important;
}

.elementor-33 .hfe-site-logo-img {
    max-height: 56px !important;
    width: auto !important;
    height: auto !important;
    max-width: 220px !important;
    display: block !important;
    object-fit: contain !important;
}

/* Contact column ? right aligned, vertically centered with logo */
.elementor-33 .elementor-element-3f1cb2e {
    justify-content: flex-end !important;
    align-items: center !important;
    align-self: center !important;
}

.elementor-33 .elementor-element-f7168dc {
    align-items: center !important;
    justify-content: flex-end !important;
}

.elementor-33 .elementor-element-f7168dc .elementor-icon-box-wrapper {
    align-items: center !important;
}

#zi-sticky-header,
#zi-sticky-header .elementor-element-7f1c3ce {
    background: #fff;
}

/* Nav bar ? menu always left-aligned */
.main-navigation-area {
    --padding-top: 0 !important;
    --padding-bottom: 0 !important;
}

.main-navigation-area > .e-con-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-height: 48px;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

@media (min-width: 1025px) {
    .main-navigation-area .elementor-element-4d4eb62 {
        width: auto !important;
        max-width: 100% !important;
        --container-widget-width: auto !important;
        --flex-grow: 0 !important;
        --flex-shrink: 1 !important;
        margin-left: 0 !important;
        margin-right: auto !important;
        justify-self: flex-start !important;
    }
}

.main-navigation-area .elementor-widget-container,
.main-navigation-area .hfe-nav-menu.hfe-layout-horizontal,
.main-navigation-area .hfe-nav-menu__layout-horizontal,
.main-navigation-area nav.hfe-nav-menu__layout-horizontal,
.main-navigation-area .hfe-nav-menu {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: auto !important;
    max-width: 100% !important;
}

.main-navigation-area .hfe-nav-menu > .menu-item {
    display: inline-flex !important;
    align-items: center !important;
    float: none !important;
    vertical-align: middle !important;
}

.main-navigation-area .hfe-nav-menu > .zi-nav-cta-item {
    margin-left: 8px !important;
    margin-right: 0 !important;
}

.main-navigation-area .hfe-nav-menu > .menu-item > .hfe-menu-item.zi-nav-link,
.main-navigation-area .hfe-nav-menu > .zi-has-dropdown > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link {
    padding: 14px 14px !important;
    text-shadow: none !important;
}

.main-navigation-area .hfe-nav-menu > .menu-item > .hfe-menu-item.zi-nav-link .zi-nav-label::after,
.main-navigation-area .hfe-nav-menu > .zi-has-dropdown > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link .zi-nav-label::after {
    bottom: -6px;
}

.main-navigation-area .hfe-nav-menu > .zi-nav-cta-item > .hfe-menu-item.zi-nav-cta {
    margin: 8px 0 8px 4px !important;
    padding: 8px 16px !important;
}

/* No gap between header and hero */
#masthead,
.elementor-33,
#zi-sticky-header {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.zi-cinema-hero {
    margin-top: 0 !important;
}

/* 1366x768 class laptops ? compact header + sharp nav (FHD/2K untouched) */
@media (min-width: 1200px) and (max-width: 1599px) {
    :root {
        --zi-header-h: 96px;
        --zi-hero-h: clamp(430px, 58vh, 500px);
        --zi-hero-min: 430px;
        --zi-hero-max: 510px;
        --zi-hero-overlap: 48px;
    }

    /* Kill soft rendering in chrome only */
    #masthead,
    #zi-sticky-header,
    .elementor-33,
    .main-navigation-area,
    .main-navigation-area .hfe-menu-item,
    .main-navigation-area .zi-nav-label,
    .elementor-33 .hfe-site-logo-img {
        -webkit-font-smoothing: antialiased !important;
        -moz-osx-font-smoothing: grayscale !important;
        text-rendering: geometricPrecision;
        transform: none !important;
        filter: none !important;
        text-shadow: none !important;
        zoom: 1;
    }

    .elementor-33 .elementor-element-8c69afb {
        --padding-top: 2px !important;
        --padding-bottom: 2px !important;
    }

    .elementor-33 .elementor-element-8c69afb > .e-con-inner {
        padding-top: 2px !important;
        padding-bottom: 2px !important;
        min-height: 0 !important;
        align-items: center !important;
    }

    /* Logo + contact row: ~8?12px less vertical padding than default */
    .elementor-33 .elementor-element-7f1c3ce {
        --padding-top: 2px !important;
        --padding-bottom: 2px !important;
    }

    .elementor-33 .elementor-element-7f1c3ce > .e-con-inner {
        padding-top: 2px !important;
        padding-bottom: 2px !important;
        min-height: 48px !important;
        align-items: center !important;
        justify-content: space-between !important;
    }

    .elementor-33 .elementor-element-3143ee7 {
        justify-content: flex-start !important;
        align-items: center !important;
    }

    .elementor-33 .hfe-site-logo,
    .elementor-33 .hfe-site-logo-set,
    .elementor-33 .hfe-site-logo-container {
        justify-content: flex-start !important;
        align-items: center !important;
    }

    .elementor-33 .hfe-site-logo-img {
        max-height: 44px !important;
        width: auto !important;
        height: auto !important;
        object-fit: contain !important;
        image-rendering: auto;
    }

    .elementor-33 .elementor-element-3f1cb2e,
    .elementor-33 .elementor-element-f7168dc {
        align-items: center !important;
    }

    /* Nav bar: compact, single baseline, vertically centered */
    .main-navigation-area {
        --padding-top: 0 !important;
        --padding-bottom: 0 !important;
    }

    .main-navigation-area > .e-con-inner {
        min-height: 40px !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    .main-navigation-area .elementor-element-4d4eb62,
    .main-navigation-area .elementor-widget-container,
    .main-navigation-area .hfe-nav-menu,
    .main-navigation-area .hfe-nav-menu__layout-horizontal {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    .main-navigation-area .hfe-nav-menu > .menu-item {
        display: inline-flex !important;
        align-items: center !important;
        float: none !important;
        margin: 0 !important;
    }

    .main-navigation-area .hfe-nav-menu > .menu-item > .hfe-menu-item.zi-nav-link,
    .main-navigation-area .hfe-nav-menu > .zi-has-dropdown > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link {
        padding: 9px 11px !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        line-height: 1.2 !important;
        letter-spacing: 0.01em !important;
        text-shadow: none !important;
        transform: none !important;
        filter: none !important;
    }

    .main-navigation-area .hfe-nav-menu > .menu-item > .hfe-menu-item.zi-nav-link .zi-nav-label::after,
    .main-navigation-area .hfe-nav-menu > .zi-has-dropdown > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link .zi-nav-label::after {
        bottom: -5px;
    }

    .main-navigation-area .hfe-nav-menu > .zi-nav-cta-item {
        margin-left: 6px !important;
        align-items: center !important;
    }

    .main-navigation-area .hfe-nav-menu > .zi-nav-cta-item > .hfe-menu-item.zi-nav-cta {
        margin: 4px 0 4px 2px !important;
        padding: 6px 14px !important;
        font-size: 13px !important;
        line-height: 1.2 !important;
        text-shadow: none !important;
        transform: none !important;
    }

    /* Sticky chrome stays compact on this breakpoint */
    #zi-sticky-header.zi-header-fixed {
        transform: none !important;
        animation: none !important;
    }

    #zi-sticky-header.zi-header-fixed .elementor-element-7f1c3ce {
        --padding-top: 2px !important;
        --padding-bottom: 2px !important;
    }

    #zi-sticky-header.zi-header-fixed .elementor-element-7f1c3ce > .e-con-inner {
        padding-top: 2px !important;
        padding-bottom: 2px !important;
        min-height: 44px !important;
        align-items: center !important;
    }

    #zi-sticky-header.zi-header-fixed .hfe-site-logo-img {
        max-height: 40px !important;
    }

    #zi-sticky-header.zi-header-fixed .main-navigation-area > .e-con-inner {
        min-height: 38px !important;
    }

    .zi-cinema-hero .zi-cinema-slider,
    .zi-cinema-slider {
        height: clamp(430px, 58vh, 500px) !important;
        min-height: 430px !important;
        max-height: 510px !important;
    }

    .zi-cinema-hero + .zi-about-band {
        margin-top: -48px !important;
        padding-top: 16px !important;
    }
}

@media (min-width: 1200px) and (max-width: 1599px) and (max-height: 820px) {
    :root {
        --zi-header-h: 88px;
        --zi-hero-h: 450px;
        --zi-hero-min: 430px;
        --zi-hero-max: 470px;
        --zi-hero-overlap: 52px;
    }

    .elementor-33 .elementor-element-7f1c3ce {
        --padding-top: 1px !important;
        --padding-bottom: 1px !important;
    }

    .elementor-33 .elementor-element-7f1c3ce > .e-con-inner {
        min-height: 44px !important;
        padding-top: 1px !important;
        padding-bottom: 1px !important;
        align-items: center !important;
    }

    .elementor-33 .hfe-site-logo-img {
        max-height: 40px !important;
    }

    .main-navigation-area > .e-con-inner {
        min-height: 38px !important;
    }

    .main-navigation-area .hfe-nav-menu > .menu-item > .hfe-menu-item.zi-nav-link,
    .main-navigation-area .hfe-nav-menu > .zi-has-dropdown > .hfe-has-submenu-container > .hfe-menu-item.zi-nav-link {
        padding: 8px 10px !important;
        font-size: 13px !important;
    }

    .main-navigation-area .hfe-nav-menu > .zi-nav-cta-item > .hfe-menu-item.zi-nav-cta {
        margin: 3px 0 3px 2px !important;
        padding: 5px 12px !important;
    }

    .zi-cinema-hero .zi-cinema-slider,
    .zi-cinema-slider {
        height: 450px !important;
        min-height: 430px !important;
        max-height: 470px !important;
    }

    .zi-cinema-hero + .zi-about-band {
        margin-top: -52px !important;
        padding-top: 14px !important;
    }

    .zi-about-band .zi-stats-header--standalone {
        margin-top: 4px !important;
        margin-bottom: 14px !important;
    }
}

/* Sticky state ? keep logo left + compact, no transform blur */
#zi-sticky-header.zi-header-fixed .elementor-element-7f1c3ce {
    --padding-top: 6px !important;
    --padding-bottom: 6px !important;
}

#zi-sticky-header.zi-header-fixed .elementor-element-7f1c3ce > .e-con-inner {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    align-items: center !important;
    min-height: 52px;
}

#zi-sticky-header.zi-header-fixed .elementor-element-3143ee7 {
    justify-content: flex-start !important;
}

#zi-sticky-header.zi-header-fixed .hfe-site-logo-img {
    max-height: 46px !important;
}

#zi-sticky-header.zi-header-fixed .main-navigation-area > .e-con-inner {
    min-height: 44px;
}

/* ============================================================
   2K / QHD desktop (2560x1440+) ? taller hero, FHD/1366 untouched
   ============================================================ */
@media (min-width: 2400px) {
    :root {
        --zi-header-h: 100px;
        --zi-content-max: 1680px;
        --zi-content-pad: 64px;
        --zi-section-y: 104px;
        --zi-section-gap: 52px;
        --zi-banner-h: 360px;
        /* 2560x1440: taller hero band for wide QHD displays */
        --zi-hero-h: clamp(940px, 74vh, 1160px);
        --zi-hero-min: 920px;
        --zi-hero-max: 1180px;
        --zi-hero-overlap: 88px;
    }

    .zi-cinema-hero .zi-cinema-slider,
    .zi-cinema-slider,
    .elementor-2 .elementor-element-4fd9adf7,
    .elementor-element-4fd9adf7.e-con {
        height: var(--zi-hero-h) !important;
        min-height: var(--zi-hero-min) !important;
        max-height: var(--zi-hero-max) !important;
    }

    .zi-cinema-hero {
        margin-bottom: 0 !important;
    }

    /* Sharp full-bleed media ? cover + center, never stretch */
    .zi-cinema-slide img,
    .zi-cinema-slide video,
    .zi-cinema-slider .swiper-slide img,
    .zi-cinema-slider .swiper-slide video {
        object-fit: cover !important;
        object-position: center center !important;
    }

    /* Controls stay horizontally centered within the taller hero */
    .zi-cinema-sound-btn {
        left: 50% !important;
        transform: translateX(-50%) !important;
        bottom: calc(64px + (var(--zi-hero-overlap) * 0.35)) !important;
    }

    .zi-cinema-progress {
        left: 50% !important;
        transform: translateX(-50%) !important;
        bottom: calc(var(--zi-hero-overlap, 72px) + 10px) !important;
        z-index: 25 !important;
    }

    /* About peek under hero ? same first-screen feel as FHD */
    .zi-cinema-hero + .zi-about-band {
        margin-top: calc(-1 * var(--zi-hero-overlap)) !important;
        z-index: 3;
        padding-top: 28px !important;
    }

    .zi-about-band .zi-stats-header--standalone {
        margin-top: 10px;
        margin-bottom: 28px;
    }
}

/* 2560-wide but shorter viewports (ultrawide / browser chrome) â€” don't fill the whole screen */
@media (min-width: 2400px) and (max-height: 1099px) {
    :root {
        --zi-hero-h: clamp(740px, 68vh, 900px);
        --zi-hero-min: 720px;
        --zi-hero-max: 920px;
        --zi-hero-overlap: 64px;
    }
}

/* Ultra-wide / 4K class: scale hero a touch more, still capped */
@media (min-width: 3000px) and (min-height: 1600px) {
    :root {
        --zi-hero-h: clamp(860px, 50vh, 960px);
        --zi-hero-min: 840px;
        --zi-hero-max: 980px;
        --zi-hero-overlap: 80px;
        --zi-content-max: 1800px;
    }
}


/* ===== Support: Sales Outlet DataTable (reference UI) ===== */
.zi-sales-outlet-page {
    --zi-sales-accent: #2c5dab;
    background: #fff;
    padding: 28px 0 70px;
    overflow-x: hidden;
}
.zi-sales-outlet-inner {
    max-width: var(--zi-content-max, 1200px) !important;
    width: 100% !important;
    margin: 0 auto;
    padding: 0 var(--zi-content-pad, 20px) !important;
    box-sizing: border-box !important;
}

/* Match Sales Outlet + Header / Nav bar to the same full container width */
#zi-sticky-header .e-con,
#masthead .e-con,
.main-navigation-area.e-con {
    --container-max-width: var(--zi-content-max) !important;
}

.elementor-33 .elementor-element-8c69afb > .e-con-inner,
.elementor-33 .elementor-element-7f1c3ce > .e-con-inner,
.main-navigation-area > .e-con-inner {
    max-width: var(--zi-content-max) !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--zi-content-pad) !important;
    padding-right: var(--zi-content-pad) !important;
    box-sizing: border-box !important;
}
.zi-sales-outlet-crumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #333;
    margin-bottom: 18px;
}
.zi-sales-outlet-home {
    color: #111;
    display: inline-flex;
    line-height: 1;
}
.zi-sales-outlet-home:hover { color: var(--zi-sales-accent); }
.zi-sales-outlet-sep {
    color: #666;
    font-weight: 600;
    letter-spacing: -1px;
}
.zi-sales-outlet-title {
    text-align: center;
    font-size: clamp(28px, 3vw, 36px);
    font-weight: 700;
    color: #333;
    margin: 0 0 28px;
    font-family: Arial, Helvetica, sans-serif;
}
.zi-sales-outlet-table-wrap {
    width: 100%;
    overflow: visible;
}
.zi-sales-outlet-page .dataTables_wrapper {
    width: 100% !important;
    overflow: visible !important;
}
.zi-sales-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px 24px;
    flex-wrap: wrap;
    margin-bottom: 18px;
    padding: 16px 20px;
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    border-top: 3px solid #2c5dab;
    box-shadow: 0 10px 28px rgba(28, 36, 75, 0.04);
}
.zi-sales-outlet-page .dataTables_wrapper .dataTables_length,
.zi-sales-outlet-page .dataTables_wrapper .dataTables_filter,
.zi-sales-outlet-page .dataTables_wrapper .dataTables_info,
.zi-sales-outlet-page .dataTables_wrapper .dataTables_paginate {
    font-family: var(--zi-classic-sans, Arial, Helvetica, sans-serif);
    font-size: 14px;
    color: #5a6275;
    margin: 12px 0;
}
.zi-sales-outlet-page .dataTables_wrapper .dataTables_length,
.zi-sales-outlet-page .dataTables_wrapper .dataTables_filter {
    margin: 0;
    float: none;
}
.zi-sales-outlet-page .dataTables_wrapper .dataTables_length label,
.zi-sales-outlet-page .dataTables_wrapper .dataTables_filter label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-family: var(--zi-classic-sans, Arial, Helvetica, sans-serif);
    font-size: 13px;
    font-weight: 500;
    color: #5a6275;
    white-space: nowrap;
}
.zi-sales-outlet-page .dataTables_wrapper .dataTables_length select,
.zi-sales-outlet-page .dataTables_wrapper .dataTables_filter input {
    border: 1px solid rgba(28, 36, 75, 0.16);
    border-radius: 0;
    padding: 10px 36px 10px 12px;
    min-height: 42px;
    background: #fbfaf7;
    color: #1c244b;
    font-family: var(--zi-classic-sans, Arial, Helvetica, sans-serif);
    font-size: 14px;
    outline: none;
    box-shadow: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.zi-sales-outlet-page .dataTables_wrapper .dataTables_length select {
    min-width: 78px;
    padding-right: 34px;
    cursor: pointer;
    appearance: none;
    background-image:
        linear-gradient(45deg, transparent 50%, #1c244b 50%),
        linear-gradient(135deg, #1c244b 50%, transparent 50%);
    background-position:
        calc(100% - 16px) calc(50% - 2px),
        calc(100% - 10px) calc(50% - 2px);
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
    background-color: #fbfaf7;
    font-weight: 600;
}
.zi-sales-outlet-page .dataTables_wrapper .dataTables_filter input {
    min-width: min(280px, 72vw);
    padding-left: 14px;
    padding-right: 14px;
}
.zi-sales-outlet-page .dataTables_wrapper .dataTables_length select:hover,
.zi-sales-outlet-page .dataTables_wrapper .dataTables_filter input:hover {
    border-color: rgba(28, 36, 75, 0.28);
    background-color: #fff;
}
.zi-sales-outlet-page .dataTables_wrapper .dataTables_length select:focus,
.zi-sales-outlet-page .dataTables_wrapper .dataTables_filter input:focus {
    outline: none;
    border-color: rgba(44, 93, 171, 0.65);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(44, 93, 171, 0.12);
}
.zi-sales-outlet-page .dataTables_scroll,
.zi-sales-outlet-page .dataTables_scrollHead,
.zi-sales-outlet-page .dataTables_scrollBody,
.zi-sales-outlet-page .dataTables_scrollFoot {
    overflow: visible !important;
    width: 100% !important;
}
.zi-sales-outlet-page table.dataTable,
.zi-sales-outlet-table {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed;
    border-collapse: collapse !important;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    color: #333;
    margin: 0 !important;
}
.zi-sales-outlet-table thead th {
    background: #2c5dab !important;
    color: #fff !important;
    font-weight: 700;
    border: 1px solid #254f96 !important;
    padding: 12px 14px !important;
    white-space: normal;
    vertical-align: middle;
}
.zi-sales-outlet-table tbody td {
    border: 1px solid #d9d9d9 !important;
    padding: 12px 14px !important;
    vertical-align: middle;
    background: #fff;
    white-space: normal;
    word-break: break-word;
}
.zi-sales-outlet-table tbody tr:nth-child(even) td {
    background: #f7f7f7;
}
.zi-sales-outlet-table tbody td a {
    color: #2c5dab;
    text-decoration: none;
}
.zi-sales-outlet-table tbody td a:hover {
    text-decoration: underline;
}
.zi-sales-outlet-table .zi-col-num,
.zi-sales-outlet-table thead th.zi-col-num,
.zi-sales-outlet-table tbody td.zi-col-num {
    width: 52px !important;
    min-width: 52px;
    max-width: 60px;
    text-align: center;
    white-space: nowrap;
    padding-left: 8px !important;
    padding-right: 8px !important;
}
.zi-sales-outlet-table thead th.zi-col-name,
.zi-sales-outlet-table tbody td:nth-child(2) {
    width: 14%;
}
.zi-sales-outlet-table thead th.zi-col-phone,
.zi-sales-outlet-table tbody td:nth-child(3) {
    width: 11%;
    white-space: nowrap;
}
.zi-sales-outlet-table thead th.zi-col-email,
.zi-sales-outlet-table tbody td:nth-child(4) {
    width: 15%;
}
.zi-sales-outlet-table thead th.zi-col-address,
.zi-sales-outlet-table tbody td:nth-child(5) {
    width: 28%;
}
.zi-sales-outlet-table thead th.zi-col-thana,
.zi-sales-outlet-table tbody td:nth-child(6) {
    width: 8%;
}
.zi-sales-outlet-table thead th.zi-col-district,
.zi-sales-outlet-table tbody td:nth-child(7) {
    width: 10%;
}
.zi-sales-outlet-table thead th.zi-col-division,
.zi-sales-outlet-table tbody td:nth-child(8) {
    width: 9%;
}
.zi-sales-outlet-page .dataTables_wrapper .dataTables_paginate .paginate_button {
    border: 1px solid #ddd !important;
    background: #fff !important;
    color: #333 !important;
    padding: 4px 10px !important;
    margin: 0 2px !important;
    border-radius: 2px !important;
}
.zi-sales-outlet-page .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.zi-sales-outlet-page .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: #2c5dab !important;
    border-color: #2c5dab !important;
    color: #fff !important;
}
.zi-sales-outlet-page .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: #eef3f9 !important;
    border-color: #2c5dab !important;
    color: #2c5dab !important;
}
@media (max-width: 768px) {
    .zi-sales-outlet-title { margin-bottom: 18px; font-size: 24px; }
    .zi-sales-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .zi-sales-outlet-page .dataTables_wrapper .dataTables_filter input {
        width: 100%;
        min-width: 0;
    }
    .zi-sales-outlet-table thead th,
    .zi-sales-outlet-table tbody td { padding: 10px 8px !important; font-size: 13px; }
}

/* ===== Support: Our Outlet â€” classic cards ===== */
.zi-our-outlet-section {
    padding-top: 36px !important;
    background:
        radial-gradient(ellipse 70% 45% at 12% 0%, rgba(184, 149, 44, 0.06), transparent 55%),
        radial-gradient(ellipse 55% 40% at 90% 10%, rgba(28, 36, 75, 0.05), transparent 50%),
        #fbfaf7;
}
.zi-our-outlet-head { text-align: center; margin-bottom: 32px; }
.zi-our-outlet-eyebrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 0 0 8px;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}
.zi-our-outlet-eyebrow .zi-about-copy-drop {
    margin: 0;
}
.zi-our-outlet-head .zi-stats-divider,
.zi-outlet-details-content .zi-stats-divider {
    margin: 12px auto 18px;
}
.zi-our-outlet-head .zi-stats-divider span:nth-child(2),
.zi-outlet-details-content .zi-stats-divider span:nth-child(2) {
    background: #2c5dab;
    border-radius: 0;
    width: 10px;
    height: 10px;
    transform: rotate(45deg);
}
.zi-our-outlet-head .zi-stats-divider span:nth-child(1),
.zi-our-outlet-head .zi-stats-divider span:nth-child(3),
.zi-outlet-details-content .zi-stats-divider span:nth-child(1),
.zi-outlet-details-content .zi-stats-divider span:nth-child(3) {
    background: var(--zi-classic-navy);
    border-radius: 0;
    width: 6px;
    height: 6px;
    transform: rotate(45deg);
    opacity: 0.35;
}
.zi-our-outlet-lead {
    max-width: 42rem;
    margin: 0 auto;
    color: #5a6275;
    font-size: 15px;
    line-height: 1.7;
}
.zi-our-outlet-filters {
    margin: 0 auto 40px;
    max-width: 1080px;
    padding: 0;
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    border-top: 3px solid #2c5dab;
    box-shadow: 0 14px 36px rgba(28, 36, 75, 0.05);
}
.zi-our-outlet-filters-top {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px 24px;
    flex-wrap: wrap;
    padding: 20px 24px 16px;
    border-bottom: 1px solid rgba(28, 36, 75, 0.08);
    background:
        linear-gradient(180deg, rgba(28, 36, 75, 0.025) 0%, transparent 100%);
}
.zi-our-outlet-filters-kicker {
    display: block;
    margin: 0 0 4px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #2c5dab;
}
.zi-our-outlet-filters-hint {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    line-height: 1.5;
    color: #5a6275;
}
.zi-our-outlet-filters-count {
    margin: 0;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    color: #8a93a8;
    white-space: nowrap;
}
.zi-our-outlet-filters-count strong {
    color: #2c5dab;
    font-weight: 700;
    font-size: 15px;
}
.zi-our-outlet-filter-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(140px, 0.85fr) minmax(140px, 0.85fr) auto;
    gap: 14px 16px;
    align-items: end;
    padding: 18px 24px 22px;
}
.zi-our-outlet-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 0;
    margin: 0;
}
.zi-our-outlet-field-label {
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #1c244b;
}
.zi-our-outlet-search-wrap {
    position: relative;
    display: block;
    width: 100%;
}
.zi-our-outlet-search-ico {
    position: absolute;
    right: 14px;
    left: auto;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    color: #8a93a8;
    pointer-events: none;
}
.zi-our-outlet-search-ico svg { width: 100%; height: 100%; display: block; }
.zi-our-outlet-section input.zi-our-outlet-search,
.zi-our-outlet-section select.zi-our-outlet-select,
.elementor-kit-7 .zi-our-outlet-search,
.elementor-kit-7 .zi-our-outlet-select {
    width: 100%;
    min-height: 46px;
    padding: 12px 14px;
    border: 1px solid rgba(44, 93, 171, 0.38) !important;
    border-color: rgba(44, 93, 171, 0.38) !important;
    border-radius: 0;
    background: #fbfaf7;
    font-size: 14px;
    color: #1c244b;
    font-family: var(--zi-classic-sans);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
    appearance: none;
    -webkit-appearance: none;
    outline: none;
}
.zi-our-outlet-select {
    padding-right: 36px;
    background-image:
        linear-gradient(45deg, transparent 50%, #1c244b 50%),
        linear-gradient(135deg, #1c244b 50%, transparent 50%);
    background-position:
        calc(100% - 18px) calc(50% - 2px),
        calc(100% - 12px) calc(50% - 2px);
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
    background-color: #fbfaf7;
    cursor: pointer;
}
.zi-our-outlet-search {
    padding-left: 14px;
    padding-right: 42px;
}
.zi-our-outlet-search:hover,
.zi-our-outlet-select:hover,
.zi-our-outlet-section input.zi-our-outlet-search:hover,
.zi-our-outlet-section select.zi-our-outlet-select:hover {
    border-color: rgba(44, 93, 171, 0.55) !important;
    background-color: #fff;
}
.zi-our-outlet-search:focus,
.zi-our-outlet-select:focus,
.zi-our-outlet-section input.zi-our-outlet-search:focus,
.zi-our-outlet-section select.zi-our-outlet-select:focus {
    outline: none !important;
    border-color: rgba(44, 93, 171, 0.7) !important;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(44, 93, 171, 0.12);
}
.zi-our-outlet-filter-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.zi-our-outlet-filter-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 12px 20px;
    border: 1px solid #2c5dab;
    border-radius: 0;
    background: #1c244b;
    color: #fff !important;
    text-decoration: none !important;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
.zi-our-outlet-filter-btn:hover {
    background: #2c5dab;
    border-color: #2c5dab;
}
.zi-our-outlet-filter-btn svg {
    width: 15px;
    height: 15px;
    display: block;
    flex-shrink: 0;
}
.zi-our-outlet-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 18px;
    border: 0 !important;
    border-radius: 10px !important;
    background: transparent !important;
    background-image: linear-gradient(180deg, #2c5dab 0%, #5187DD 100%) !important;
    color: #fff !important;
    text-decoration: none !important;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: none;
    box-shadow: none !important;
    transform: none !important;
    transition: opacity 0.15s ease;
}
.zi-our-outlet-btn:hover,
.zi-our-outlet-btn:focus {
    background: transparent !important;
    background-image: linear-gradient(180deg, var(--e-global-color-primary, #2C5DAB) 0%, #2C5DAB 100%) !important;
    color: #fff !important;
    box-shadow: none !important;
    transform: none !important;
    opacity: 1;
}
.zi-our-outlet-reset {
    display: inline-flex;
    align-items: center;
    min-height: 46px;
    padding: 0 4px;
    color: #2c5dab;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
}
.zi-our-outlet-reset:hover {
    color: #1c244b;
    text-decoration: underline;
}
.zi-our-outlet-active-filters {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 12px;
    padding: 0 24px 18px;
}
.zi-our-outlet-active-label {
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #8a93a8;
}
.zi-our-outlet-active-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.zi-our-outlet-active-chip {
    display: inline-flex;
    align-items: center;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 6px 11px;
    background: rgba(28, 36, 75, 0.06);
    border: 1px solid rgba(28, 36, 75, 0.1);
    color: #1c244b;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 500;
}
.zi-our-outlet-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.zi-our-outlet-card {
    position: relative;
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    border-radius: 2px;
    box-shadow: 0 10px 26px rgba(28, 36, 75, 0.045);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.zi-our-outlet-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: #2c5dab;
    z-index: 2;
}
.zi-our-outlet-card:hover {
    transform: translateY(-3px);
    border-color: rgba(28, 36, 75, 0.18);
    box-shadow: 0 16px 32px rgba(28, 36, 75, 0.08);
}
.zi-our-outlet-media {
    position: relative;
    aspect-ratio: 16 / 10;
    background: linear-gradient(180deg, #eef1f6, #e6eaf1);
    overflow: hidden;
}
.zi-our-outlet-map {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}
.zi-our-outlet-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}
.zi-our-outlet-card:hover .zi-our-outlet-media img {
    transform: scale(1.03);
}
.zi-our-outlet-chip {
    position: absolute;
    left: 14px;
    bottom: 14px;
    z-index: 1;
    padding: 5px 10px;
    background: #2c5dab;
    color: #f7f1df;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.zi-our-outlet-media-fallback {
    width: 100%;
    height: 100%;
    min-height: 168px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #8a93a8;
}
.zi-our-outlet-media-fallback svg { width: 42px; height: 42px; }
.zi-our-outlet-media-fallback--lg { min-height: 280px; }
.zi-our-outlet-body {
    padding: 20px 20px 22px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
}
.zi-our-outlet-name {
    margin: 0;
    font-size: clamp(17px, 1.4vw, 20px);
    font-weight: 600;
    color: #1c244b;
    line-height: 1.3;
    font-family: var(--zi-classic-serif);
}
.zi-our-outlet-rule {
    width: 42px;
    height: 2px;
    background: #0d47a1;
}
.zi-our-outlet-meta {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
    font-size: 13.5px;
    color: #5a6275;
    line-height: 1.45;
}
.zi-our-outlet-meta li {
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: 10px;
    align-items: start;
}
.zi-our-outlet-meta-ico {
    width: auto;
    height: auto;
    min-width: 22px;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--zi-classic-gold, #b8952c);
    box-shadow: none;
    flex-shrink: 0;
    margin-top: 2px;
}
.zi-our-outlet-meta-ico svg {
    width: 18px;
    height: 18px;
    display: block;
    stroke: #2c5dab;
}
.zi-our-outlet-meta-label {
    display: block;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #8a93a8;
    margin-bottom: 2px;
}
.zi-our-outlet-meta a {
    color: #2c5dab;
    text-decoration: none;
    word-break: break-word;
}
.zi-our-outlet-meta a:hover { text-decoration: underline; }
.zi-our-outlet-actions {
    margin-top: auto;
    padding-top: 6px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.zi-our-outlet-btn--map {
    background: transparent !important;
    background-image: linear-gradient(180deg, #2c5dab 0%, #5187DD 100%) !important;
    color: #fff !important;
}
.zi-our-outlet-btn--map:hover {
    background: transparent !important;
    background-image: linear-gradient(180deg, var(--e-global-color-primary, #2C5DAB) 0%, #2C5DAB 100%) !important;
    color: #fff !important;
}
.zi-our-outlet-empty {
    grid-column: 1 / -1;
    text-align: center;
    color: #5a6275;
    padding: 48px 20px;
    background: #fff;
    border: 1px dashed rgba(28, 36, 75, 0.18);
}
.zi-our-outlet-empty p { margin: 0 0 10px; }
.zi-outlet-details-section {
    background:
        radial-gradient(ellipse 60% 40% at 8% 0%, rgba(184, 149, 44, 0.05), transparent 55%),
        radial-gradient(ellipse 50% 35% at 95% 15%, rgba(28, 36, 75, 0.04), transparent 50%),
        #fbfaf7;
}
.zi-outlet-details-nav {
    margin: 0 0 18px;
}
.zi-outlet-details-back {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #2c5dab;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-decoration: none;
}
.zi-outlet-details-back svg {
    width: 16px;
    height: 16px;
    display: block;
}
.zi-outlet-details-back:hover {
    color: #1c244b;
    text-decoration: underline;
}
.zi-outlet-details-shell {
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    border-top: 3px solid #2c5dab;
    box-shadow: 0 16px 40px rgba(28, 36, 75, 0.06);
}
.zi-outlet-details-layout {
    display: grid;
    grid-template-columns: 1.12fr 0.88fr;
    gap: 0;
    align-items: stretch;
    background: transparent;
    border: 0;
    padding: 0;
    box-shadow: none;
}
.zi-outlet-details-media {
    position: relative;
    min-height: 460px;
    height: 100%;
    background: linear-gradient(180deg, #eef1f6, #e6eaf1);
    border: 0;
    border-right: 1px solid rgba(28, 36, 75, 0.08);
    overflow: hidden;
}
.zi-outlet-details-map {
    position: absolute;
    inset: 0;
}
.zi-outlet-details-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border: 0;
}
.zi-outlet-details-map-chip {
    position: absolute;
    left: 16px;
    bottom: 16px;
    z-index: 2;
    max-width: calc(100% - 32px);
    padding: 8px 12px;
    background: rgba(28, 36, 75, 0.9);
    color: #f7f1df;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    pointer-events: none;
}
.zi-outlet-details-content {
    padding: 34px 36px 36px;
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.zi-outlet-details-head {
    margin: 0;
}
.zi-outlet-details-title {
    margin: 0 0 4px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(28px, 3vw, 36px);
    font-weight: 600;
    line-height: 1.2;
    color: #1c244b;
}
.zi-outlet-details-content .zi-stats-divider {
    margin: 14px 0 16px;
    justify-content: flex-start;
}
.zi-outlet-details-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.zi-outlet-details-tag {
    display: inline-flex;
    align-items: center;
    padding: 6px 11px;
    background: rgba(28, 36, 75, 0.05);
    border: 1px solid rgba(28, 36, 75, 0.1);
    color: #1c244b;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.zi-outlet-details-panel {
    padding: 18px 18px 8px;
    background: #fbfaf7;
    border: 1px solid rgba(28, 36, 75, 0.08);
}
.zi-outlet-details-panel-title {
    margin: 0 0 14px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}
.zi-outlet-details-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 14px;
}
.zi-outlet-details-list li {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 12px;
    align-items: start;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(28, 36, 75, 0.08);
}
.zi-outlet-details-list li:last-child {
    border-bottom: 0;
    padding-bottom: 10px;
}
.zi-outlet-details-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px;
    color: var(--zi-classic-gold, #b8952c);
}
.zi-outlet-details-ico svg {
    width: 18px;
    height: 18px;
    display: block;
}
.zi-outlet-details-label {
    display: block;
    margin-bottom: 3px;
    font-family: var(--zi-classic-sans);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #8a93a8;
}
.zi-outlet-details-list a,
.zi-outlet-details-list span {
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    line-height: 1.55;
    color: #1c244b;
    text-decoration: none;
    word-break: break-word;
}
.zi-outlet-details-list a {
    color: #2c5dab;
}
.zi-outlet-details-list a:hover {
    text-decoration: underline;
}
.zi-outlet-details-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.zi-outlet-details-fact {
    padding: 14px 12px;
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    text-align: left;
}
.zi-outlet-details-fact strong {
    display: block;
    margin-top: 4px;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    font-weight: 600;
    color: #1c244b;
    line-height: 1.35;
}
.zi-outlet-details-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin-top: auto;
    padding-top: 4px;
}
.zi-outlet-details-link {
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 600;
    color: #2c5dab;
    text-decoration: none;
}
.zi-outlet-details-link:hover {
    color: #1c244b;
    text-decoration: underline;
}
.zi-our-outlet-meta--details {
    font-size: 15px;
    gap: 12px;
    margin: 8px 0 18px;
}
.zi-dealer-section {
    padding-top: 36px !important;
    background:
        radial-gradient(ellipse 70% 45% at 12% 0%, rgba(184, 149, 44, 0.06), transparent 55%),
        radial-gradient(ellipse 55% 40% at 90% 10%, rgba(28, 36, 75, 0.05), transparent 50%),
        #fbfaf7;
}
.zi-dealer-head {
    text-align: center;
    margin-bottom: 36px;
}
.zi-dealer-eyebrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 0 8px;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}
.zi-dealer-head .zi-stats-divider {
    margin: 12px auto 18px;
}
.zi-dealer-head .zi-stats-divider span:nth-child(2) {
    background: #2c5dab;
    border-radius: 0;
    width: 10px;
    height: 10px;
    transform: rotate(45deg);
}
.zi-dealer-head .zi-stats-divider span:nth-child(1),
.zi-dealer-head .zi-stats-divider span:nth-child(3) {
    background: var(--zi-classic-navy);
    border-radius: 0;
    width: 6px;
    height: 6px;
    transform: rotate(45deg);
    opacity: 0.35;
}
.zi-dealer-lead {
    max-width: 42rem;
    margin: 0 auto;
    color: #5a6275;
    font-size: 15px;
    line-height: 1.7;
}
.zi-dealer-alert {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    margin: 0 0 24px;
    padding: 14px 18px;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    font-weight: 600;
    border: 1px solid transparent;
}
.zi-dealer-alert svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}
.zi-dealer-alert--success {
    background: rgba(22, 101, 52, 0.08);
    color: #166534;
    border-color: rgba(22, 101, 52, 0.18);
}

.zi-dealer-success {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
    margin: 8px 0 16px;
    padding: 48px 32px;
    background: #fff;
    border: 1px solid rgba(22, 101, 52, 0.18);
    border-top: 3px solid #16a34a;
    box-shadow: 0 14px 36px rgba(28, 36, 75, 0.05);
}

.zi-dealer-success-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(22, 163, 74, 0.12);
    color: #16a34a;
    margin-bottom: 4px;
}

.zi-dealer-success-icon svg {
    width: 32px;
    height: 32px;
}

.zi-dealer-success-title {
    margin: 0;
    font-family: var(--zi-classic-serif);
    font-size: clamp(22px, 2.4vw, 30px);
    font-weight: 600;
    color: #166534;
    line-height: 1.25;
}

.zi-dealer-success-text {
    margin: 0;
    max-width: 42ch;
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    line-height: 1.65;
    color: #3f6212;
}

.zi-dealer-success-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 10px;
    padding: 14px 22px;
    border: 0 !important;
    background: transparent !important;
    background-image: linear-gradient(180deg, #2c5dab 0%, #5187DD 100%) !important;
    color: #fff !important;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: opacity 0.15s ease;
}

.zi-dealer-success-btn:hover {
    background: transparent !important;
    background-image: linear-gradient(180deg, var(--e-global-color-primary, #2C5DAB) 0%, #2C5DAB 100%) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: none !important;
}

.zi-dealer-alert--error {
    background: #fef2f2;
    color: #991b1b;
    border-color: #fecaca;
}
.zi-dealer-error-list {
    margin: 8px 0 0;
    padding-left: 18px;
    font-size: 13px;
    line-height: 1.55;
}
.zi-dealer-error-list li + li {
    margin-top: 2px;
}
.zi-dealer-form .zi-cform-err-msg {
    display: block;
    margin-top: 6px;
    font-family: var(--zi-classic-sans);
    font-size: 12.5px;
    font-weight: 500;
    color: #dc2626;
}
.zi-dealer-form .zi-cform-group input.zi-cform-error,
.zi-dealer-form .zi-cform-group textarea.zi-cform-error {
    border-color: #ef4444 !important;
    background: #fff5f5 !important;
}
.zi-dealer-layout {
    display: grid;
    grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.4fr);
    gap: 28px;
    align-items: start;
    width: 100%;
}
.zi-dealer-aside-card {
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    border-top: 3px solid #2c5dab;
    padding: 28px 24px;
    box-shadow: 0 14px 36px rgba(28, 36, 75, 0.05);
}
.zi-dealer-aside-kicker {
    display: block;
    margin-bottom: 8px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #2c5dab;
}
.zi-dealer-aside-title {
    margin: 0 0 10px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(22px, 2vw, 28px);
    font-weight: 600;
    line-height: 1.25;
    color: #1c244b;
}
.zi-dealer-aside-text {
    margin: 0 0 22px;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    line-height: 1.65;
    color: #5a6275;
}
.zi-dealer-steps {
    list-style: none;
    margin: 0 0 22px;
    padding: 0;
    display: grid;
    gap: 14px;
}
.zi-dealer-steps li {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 12px;
    align-items: center;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(28, 36, 75, 0.08);
}
.zi-dealer-steps li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.zi-dealer-steps .zi-dealer-step-no {
    display: flex !important;
    align-items: center;
    justify-content: center;
    align-self: center;
    width: 42px;
    height: 42px;
    margin: 0;
    padding: 0;
    background: rgba(28, 36, 75, 0.05);
    border: 1px solid rgba(28, 36, 75, 0.1);
    color: #2c5dab;
    font-family: var(--zi-classic-sans);
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em;
    line-height: 1 !important;
    text-align: center;
    box-sizing: border-box;
}
.zi-dealer-steps strong {
    display: block;
    margin-bottom: 2px;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    font-weight: 600;
    color: #1c244b;
}
.zi-dealer-steps li > div span {
    display: block;
    font-family: var(--zi-classic-sans);
    font-size: 13px !important;
    line-height: 1.5;
    color: #5a6275;
}
.zi-dealer-aside-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    background: #fbfaf7;
    border: 1px solid rgba(28, 36, 75, 0.08);
}
.zi-dealer-aside-note strong,
.zi-dealer-aside-note span {
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.zi-dealer-aside-note strong {
    color: #8a93a8;
    font-weight: 600;
}
.zi-dealer-aside-note span {
    color: #1c244b;
    font-weight: 700;
}
.zi-dealer-form-shell {
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.1);
    border-top: 3px solid #2c5dab;
    box-shadow: 0 14px 36px rgba(28, 36, 75, 0.05);
}
.zi-dealer-form {
    max-width: none;
    margin: 0;
    background: transparent;
    border: 0;
    padding: 0;
    box-shadow: none;
}
.zi-dealer-form-section {
    padding: 24px 28px;
    border-bottom: 1px solid rgba(28, 36, 75, 0.08);
}
.zi-dealer-form-section--submit {
    padding-bottom: 28px;
}
.zi-dealer-form-section-title {
    margin: 0 0 18px;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--zi-classic-gold, #b8952c);
}
.zi-dealer-form .zi-cform-group {
    margin-bottom: 16px;
}
.zi-dealer-form .zi-cform-row {
    margin-bottom: 0;
}
.zi-dealer-form .zi-cform-group label {
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #1c244b;
}
.zi-dealer-form .zi-cform-group input,
.zi-dealer-form .zi-cform-group textarea {
    border-radius: 0;
    border-color: rgba(28, 36, 75, 0.14);
    background: #fbfaf7;
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    color: #1c244b;
}
.zi-dealer-form .zi-cform-group input:focus,
.zi-dealer-form .zi-cform-group textarea:focus {
    background: #fff;
    border-color: rgba(44, 93, 171, 0.65);
    box-shadow: 0 0 0 3px rgba(44, 93, 171, 0.12);
}
.zi-dealer-file-wrap {
    position: relative;
}
.zi-dealer-file-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}
.zi-dealer-file-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 120px;
    padding: 18px;
    border: 1px dashed rgba(28, 36, 75, 0.22);
    background: #fbfaf7;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease;
}
.zi-dealer-file-label svg {
    width: 28px;
    height: 28px;
    color: #2c5dab;
    stroke: #2c5dab;
}
.zi-dealer-file-label span {
    font-family: var(--zi-classic-sans);
    font-size: 14px;
    font-weight: 600;
    color: #1c244b;
}
.zi-dealer-file-label small {
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    color: #8a93a8;
}
.zi-dealer-file-wrap:hover .zi-dealer-file-label,
.zi-dealer-file-input:focus + .zi-dealer-file-label {
    border-color: rgba(44, 93, 171, 0.45);
    background: #fff;
}
.zi-dealer-form .zi-cform-footer {
    margin: 0;
    justify-content: flex-start;
}
.zi-dealer-submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 28px;
    border: 1px solid #1c244b;
    border-radius: 0;
    background: #1c244b;
    color: #fff;
    font-family: var(--zi-classic-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.25s ease, border-color 0.25s ease;
}
.zi-dealer-submit-btn:hover:not(:disabled),
.zi-dealer-submit-btn:focus-visible:not(:disabled) {
    background: #2c5dab;
    border-color: #2c5dab;
}
.zi-dealer-submit-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
.zi-cform-row--3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.zi-contact-alert-error {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
    padding: 12px 14px;
    margin-bottom: 16px;
}
@media (max-width: 1024px) {
    .zi-our-outlet-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zi-outlet-details-layout { grid-template-columns: 1fr; }
    .zi-outlet-details-media {
        min-height: 320px;
        border-right: 0;
        border-bottom: 1px solid rgba(28, 36, 75, 0.08);
    }
    .zi-outlet-details-content {
        padding: 28px 24px 30px;
    }
    .zi-dealer-layout {
        grid-template-columns: 1fr;
    }
    .zi-our-outlet-filter-grid {
        grid-template-columns: 1fr 1fr;
    }
    .zi-our-outlet-field--search {
        grid-column: 1 / -1;
    }
    .zi-our-outlet-field--actions {
        grid-column: 1 / -1;
    }
}
@media (max-width: 640px) {
    .zi-our-outlet-grid { grid-template-columns: 1fr; }
    .zi-our-outlet-filters-top,
    .zi-our-outlet-filter-grid,
    .zi-our-outlet-active-filters {
        padding-left: 16px;
        padding-right: 16px;
    }
    .zi-our-outlet-filter-grid {
        grid-template-columns: 1fr;
        padding-top: 16px;
    }
    .zi-our-outlet-filter-actions {
        width: 100%;
    }
    .zi-our-outlet-filter-btn {
        flex: 1;
    }
    .zi-outlet-details-content {
        padding: 22px 16px 24px;
    }
    .zi-outlet-details-facts {
        grid-template-columns: 1fr;
    }
    .zi-outlet-details-actions .zi-our-outlet-btn {
        flex: 1 1 100%;
        text-align: center;
    }
    .zi-dealer-form-section {
        padding: 20px 16px;
    }
    .zi-cform-row--3 { grid-template-columns: 1fr; }
    .zi-dealer-form { padding: 0; }
}

/* ===== CMS product details (isolate from Hello Elementor reset) ===== */
.zi-prodd {
    background: #fff;
    padding: 36px 0 80px;
    overflow-x: clip;
}
.zi-prodd-inner {
    width: min(100%, var(--zi-content-max, 1200px));
    margin-inline: auto;
}
.zi-prodd-crumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 28px;
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    color: #9aa0a6;
}
.zi-prodd-crumb a {
    color: #9aa0a6 !important;
    text-decoration: none !important;
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
}
.zi-prodd-crumb a:hover {
    color: #2c5dab !important;
}
.zi-prodd-crumb > span:last-child {
    color: #2c5dab;
    font-weight: 600;
}
.zi-prodd-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 48px;
    align-items: start;
    margin-bottom: 56px;
}
.zi-prodd-frame {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 380px;
    max-height: 520px;
    padding: 28px;
    border: 1px solid #e6e6e6;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}
.zi-prodd-stage {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 460px !important;
    object-fit: contain !important;
}
.zi-prodd-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: #f3f4f6;
    color: #9aa3b2;
    font-size: 28px;
}
.zi-prodd-fallback--sm {
    width: 56px;
    height: 56px;
    font-size: 20px;
}
.zi-prodd-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}
.zi-prodd .zi-prodd-thumb,
.zi-prodd .zi-prodd-thumb:hover,
.zi-prodd .zi-prodd-thumb:focus {
    all: unset;
    box-sizing: border-box;
    width: 72px;
    height: 72px;
    padding: 6px;
    border: 2px solid #e6e6e6 !important;
    border-radius: 8px;
    background: #fff !important;
    color: inherit !important;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.zi-prodd .zi-prodd-thumb img {
    max-width: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
}
.zi-prodd .zi-prodd-thumb.is-active,
.zi-prodd .zi-prodd-thumb:hover {
    border-color: #2c5dab !important;
}
.zi-prodd-info {
    position: relative;
    padding-top: 4px;
    min-width: 0;
}
.zi-prodd-logo {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    width: 76px;
    height: 76px;
    padding: 8px;
    border: 1px solid #ececec;
    border-radius: 10px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06);
}
.zi-prodd-logo img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: contain !important;
}
.zi-prodd-title {
    margin: 0 0 22px !important;
    font-family: var(--zi-classic-sans);
    font-size: clamp(24px, 2.6vw, 34px) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    color: #2a2a2a;
}
.zi-prodd-title--logo {
    padding-right: 96px;
}
.zi-prodd-kicker {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #8b9198;
}
.zi-prodd-summary ul,
.zi-prodd-list {
    margin: 0;
    padding: 0 0 0 18px;
    color: #5b6168;
    font-size: 15px;
    line-height: 1.7;
}
.zi-prodd-summary li,
.zi-prodd-list li {
    font-size: 15px !important;
    font-weight: 400 !important;
    color: #5b6168;
}
.zi-prodd-summary li + li,
.zi-prodd-list li + li {
    margin-top: 4px;
}
.zi-prodd-sum-text {
    margin: 0;
    color: #5b6168;
    font-size: 15px !important;
    line-height: 1.7;
}
.zi-prodd-meta {
    display: grid;
    gap: 8px;
    margin: 22px 0 0;
}
.zi-prodd-meta div {
    display: flex;
    gap: 10px;
    font-size: 14px;
    color: #4a4a4a;
}
.zi-prodd-meta dt {
    font-weight: 700 !important;
    min-width: 92px;
}
.zi-prodd-meta dd {
    margin: 0;
    font-weight: 400 !important;
}
.zi-prodd-buy,
.zi-prodd-buy:hover,
.zi-prodd-buy:focus {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 168px;
    margin-top: 26px;
    padding: 12px 28px;
    background: #2c5dab !important;
    color: #fff !important;
    font-family: var(--zi-classic-sans);
    font-size: 15px;
    font-weight: 700 !important;
    letter-spacing: 0.02em;
    text-decoration: none !important;
    border: 0 !important;
    border-radius: 4px;
    transition: background 0.2s ease, transform 0.2s ease;
}
.zi-prodd-buy:hover {
    background: #1c244b !important;
    transform: translateY(-1px);
}
.zi-prodd-share {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
    color: #6b7280;
    font-size: 13px;
    font-weight: 600;
}
.zi-prodd-share a,
.zi-prodd-share a:hover,
.zi-prodd-share a:focus {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    color: #6b7280 !important;
    text-decoration: none !important;
}
.zi-prodd-share a:hover {
    color: #2c5dab !important;
}
.zi-prodd-share svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
    overflow: visible;
}
.zi-prodd-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
    border-bottom: 1px solid #ececec;
    margin-bottom: 28px;
}
.zi-prodd .zi-prodd-tab,
.zi-prodd .zi-prodd-tab:hover,
.zi-prodd .zi-prodd-tab:focus {
    all: unset;
    box-sizing: border-box;
    display: inline-block;
    margin-bottom: -1px;
    padding: 0 0 12px;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #6b7280 !important;
    font-family: var(--zi-classic-sans);
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.3;
    cursor: pointer;
    white-space: nowrap;
}
.zi-prodd .zi-prodd-tab:hover,
.zi-prodd .zi-prodd-tab.is-active,
.zi-prodd .zi-prodd-tab.is-active:hover,
.zi-prodd .zi-prodd-tab.is-active:focus {
    color: #2c5dab !important;
    background: transparent !important;
}
.zi-prodd .zi-prodd-tab.is-active {
    border-bottom-color: #2c5dab !important;
}
.zi-prodd-panel[hidden] {
    display: none !important;
}
.zi-prodd-block {
    margin-bottom: 28px;
    color: #4b5563;
    font-size: 15px;
    line-height: 1.8;
    min-width: 0;
}
.zi-prodd-block h2 {
    margin: 0 0 12px !important;
    padding-left: 12px;
    border-left: 4px solid #2c5dab;
    font-family: var(--zi-classic-sans);
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: #1f2937;
}
.zi-prodd-prose,
.zi-prodd-prose p,
.zi-prodd-prose li {
    font-size: 15px !important;
    line-height: 1.8;
    color: #4b5563;
}
.zi-prodd-prose > *:first-child { margin-top: 0; }
.zi-prodd-prose > *:last-child { margin-bottom: 0; }
.zi-prodd-prose img {
    max-width: 100% !important;
    height: auto !important;
}
.zi-prodd-prose table {
    width: 100%;
    max-width: 100%;
    display: block;
    overflow-x: auto;
}
.zi-prodd-table-wrap {
    margin: 8px 0 56px;
    overflow-x: auto;
}
.zi-prodd-panel .zi-prodd-table-wrap {
    margin: 0 0 8px;
}
.zi-prodd .zi-prodd-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    margin: 0;
    background: #fff;
}
.zi-prodd .zi-prodd-table th,
.zi-prodd .zi-prodd-table td {
    padding: 12px 16px;
    border: 1px solid #ececec !important;
    text-align: left;
    vertical-align: top;
    background: #fff;
}
.zi-prodd .zi-prodd-table th {
    width: 34%;
    font-weight: 700 !important;
    color: #374151;
    background: #f7f7f8 !important;
}
.zi-prodd .zi-prodd-table tr:nth-child(even) td {
    background: #fafafa !important;
}
.zi-prodd .zi-prodd-table tbody tr:hover > td,
.zi-prodd .zi-prodd-table tbody tr:hover > th {
    background: inherit;
}
.zi-prodd-related {
    min-width: 0;
}
.zi-prodd-related-head {
    margin: 8px 0 28px;
}
.zi-prodd-related-head h2 {
    margin: 0 0 6px !important;
    padding: 0;
    border: 0;
    font-family: var(--zi-classic-sans);
    font-size: clamp(26px, 3vw, 34px) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    color: #1c244b;
}
.zi-prodd-related-head h2 span {
    color: #2c5dab;
}
.zi-prodd-related-head p {
    margin: 0;
    color: #8b9198;
    font-size: 14px !important;
}
.zi-prodd-related-track {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
}
.zi-prodd-related-card {
    min-width: 0;
    text-decoration: none !important;
    color: inherit !important;
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
}
.zi-prodd-related-media {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 168px;
    margin-bottom: 12px;
    padding: 16px;
    border: 1px solid #ececec;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}
.zi-prodd-related-media img {
    max-width: 100% !important;
    max-height: 132px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
}
.zi-prodd-related-brand {
    display: block;
    font-size: 12px !important;
    font-weight: 400 !important;
    color: #9aa3b2;
    margin-bottom: 4px;
}
.zi-prodd-related-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #1c244b;
    line-height: 1.35;
}
.zi-prodd-related-bar {
    display: flex;
    align-items: center;
    margin-top: 22px;
}
.zi-prodd-seeall,
.zi-prodd-seeall:hover,
.zi-prodd-seeall:focus {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #2c5dab !important;
    font-weight: 700 !important;
    font-size: 14px;
    text-decoration: none !important;
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
}
.zi-prodd-seeall svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    fill: none;
}
@media (max-width: 1100px) {
    .zi-prodd-related-track { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .zi-prodd-hero { grid-template-columns: 1fr; gap: 28px; }
    .zi-prodd-logo {
        position: static;
        margin-bottom: 16px;
    }
    .zi-prodd-title--logo { padding-right: 0; }
    .zi-prodd-related-track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .zi-prodd-frame { min-height: 240px; max-height: 320px; padding: 16px; }
    .zi-prodd-related-track { grid-template-columns: 1fr 1fr; }
}

/* Section eyebrows â€” same as About ZI Group */
.zi-lmsg-eyebrow,
.zi-why-eyebrow,
.zi-generic-eyebrow,
.zi-chairman-eyebrow,
.zi-vmv2-eyebrow,
.zi-about-copy-eyebrow,
.zi-cp2-eyebrow,
.zi-brands-eyebrow,
.zi-partners-eyebrow,
.zi-projects-eyebrow,
.zi-projd-eyebrow,
.zi-clients-eyebrow,
.zi-certificates-eyebrow,
.home .zi-certificates-eyebrow,
.zi-cert-assure-eyebrow,
.home .zi-cert-assure-eyebrow,
.zi-news-eyebrow,
.zi-bod-eyebrow,
.zi-team-eyebrow,
.zi-pcat-eyebrow,
.zi-pcat--home .zi-pcat-eyebrow,
.zi-pmosaic-eyebrow,
.zi-our-outlet-eyebrow,
.zi-dealer-eyebrow,
.zi-case-page-eyebrow,
.zi-service-modal-eyebrow,
.zi-case-modal-eyebrow,
.zi-stats-subtitle,
.zi-about-intro .zi-section-label {
    color: #2c5dab !important;
}

/* About ZI Group â€” stable View Details hover */
.home .zi-about-copy .zi-about-copy-btn,
.home .zi-about-copy .zi-about-copy-btn:hover,
.home .zi-about-copy .zi-about-copy-btn:focus,
.home .zi-about-copy .zi-about-copy-btn:focus-visible,
.home .zi-about-copy .zi-about-copy-btn:active {
    transform: none !important;
    scale: 1 !important;
    animation: none !important;
    box-shadow: none !important;
    filter: none !important;
    padding: 8px 14px !important;
    font-size: 12px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    line-height: 1 !important;
    transition: background-image 0.15s ease !important;
}

.elementor-2 .elementor-element.elementor-element-3e06a7d5.zi-about-copy,
.elementor-2 .elementor-element.elementor-element-3e06a7d5.zi-about-copy.animated,
.elementor-2 .elementor-element.elementor-element-3e06a7d5.zi-about-copy.fadeInRight,
.elementor-2 .elementor-element.elementor-element-3e06a7d5.zi-about-copy.elementor-invisible {
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* â”€â”€ Global scrollbar â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
html {
    scrollbar-width: thin;
    scrollbar-color: #2c5dab rgba(44, 93, 171, 0.12);
}

body::-webkit-scrollbar,
html::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

body::-webkit-scrollbar-track,
html::-webkit-scrollbar-track {
    background: rgba(44, 93, 171, 0.08);
}

body::-webkit-scrollbar-thumb,
html::-webkit-scrollbar-thumb {
    background: #2c5dab;
    border-radius: 999px;
    border: 2px solid rgba(44, 93, 171, 0.08);
}

body::-webkit-scrollbar-thumb:hover,
html::-webkit-scrollbar-thumb:hover {
    background: #244a87;
}

/* â”€â”€ Store Locator (reference grid design) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.zi-store-locator-shell {
    --zi-locator-tab-w: 42px;
    --zi-locator-panel-w: 240px;
    position: fixed;
    top: 50%;
    right: 0;
    z-index: 9992;
    display: flex;
    flex-direction: row;
    align-items: center;
    transform: translateY(-50%) translateX(var(--zi-locator-panel-w));
    transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1);
    filter: drop-shadow(-4px 8px 24px rgba(28, 36, 75, 0.14));
    will-change: transform;
}

.zi-store-locator.is-open .zi-store-locator-shell {
    transform: translateY(-50%) translateX(0);
}

.zi-store-locator-tab,
.elementor-kit-7 button.zi-store-locator-tab,
.elementor-kit-7 button.zi-store-locator-tab:hover,
.elementor-kit-7 button.zi-store-locator-tab:focus,
.elementor-kit-7 button.zi-store-locator-tab:focus-visible,
.elementor-kit-7 button.zi-store-locator-tab:active {
    flex: 0 0 var(--zi-locator-tab-w);
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--zi-locator-tab-w);
    height: auto;
    padding: 12px 8px;
    border: 0;
    border-radius: 14px 0 0 14px !important;
    background: #2c5dab !important;
    background-image: none !important;
    background-color: #2c5dab !important;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.zi-store-locator-tab:hover,
.zi-store-locator-tab:focus,
.zi-store-locator-tab:focus-visible,
.elementor-kit-7 button.zi-store-locator-tab:hover,
.elementor-kit-7 button.zi-store-locator-tab:focus,
.elementor-kit-7 button.zi-store-locator-tab:focus-visible {
    background: #244a87 !important;
    background-image: none !important;
    background-color: #244a87 !important;
    outline: none;
}

.zi-store-locator-tab-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.zi-store-locator-tab-ico {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    flex: 0 0 auto;
    transition: transform 0.2s ease, background-color 0.2s ease;
    padding: 3px;
}

.zi-store-locator-tab:hover .zi-store-locator-tab-ico,
.zi-store-locator-tab:focus-visible .zi-store-locator-tab-ico {
    transform: scale(1.05);
    background: rgba(255, 255, 255, 0.24);
}

.zi-store-locator-tab-ico svg {
    width: 28px;
    height: 28px;
    display: block;
}

.zi-store-locator-tab-text {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1.1;
    white-space: nowrap;
    color: rgba(255, 255, 255, 0.92);
}

.zi-store-locator-panel {
    flex: 0 0 var(--zi-locator-panel-w);
    width: var(--zi-locator-panel-w);
    max-height: min(78vh, 560px);
    overflow: hidden;
    background: #fff;
    border-radius: 14px 0 0 14px;
}

.zi-store-locator-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    width: 100%;
    max-height: min(78vh, 560px);
    overflow-y: auto;
    padding: 10px;
    scrollbar-width: thin;
    scrollbar-color: #2c5dab rgba(44, 93, 171, 0.12);
}

.zi-store-locator-grid::-webkit-scrollbar {
    width: 6px;
}

.zi-store-locator-grid::-webkit-scrollbar-thumb {
    background: #2c5dab;
    border-radius: 999px;
}

.zi-store-locator-grid-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 112px;
    padding: 10px 6px;
    border-radius: 8px;
    text-decoration: none;
    color: rgba(28, 36, 75, 0.78);
    transition: background-color 0.2s ease, color 0.2s ease;
}

.zi-store-locator-grid-item:hover,
.zi-store-locator-grid-item:focus-visible {
    background: #2c5dab;
    color: #fff !important;
    outline: none;
}

.elementor-kit-7 a.zi-store-locator-grid-item:hover,
.elementor-kit-7 a.zi-store-locator-grid-item:focus,
.elementor-kit-7 a.zi-store-locator-grid-item:hover .zi-store-locator-grid-label,
.elementor-kit-7 a.zi-store-locator-grid-item:focus .zi-store-locator-grid-label {
    color: #fff !important;
}

.zi-store-locator-grid-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    padding: 8px;
    background: #fff;
    border: 1px solid rgba(28, 36, 75, 0.12);
    box-sizing: border-box;
}

.zi-store-locator-grid-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.zi-store-locator-grid-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-size: 24px;
    font-weight: 700;
    color: #2c5dab;
}

.zi-store-locator-grid-label {
    font-family: var(--zi-classic-sans);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    color: inherit;
}

.zi-store-locator-overlay {
    position: fixed;
    inset: 0;
    z-index: 9991;
    background: rgba(15, 23, 42, 0.35);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.28s ease, visibility 0.28s ease;
}

.zi-store-locator-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.zi-store-locator-empty {
    grid-column: 1 / -1;
    margin: 0;
    padding: 28px 16px;
    text-align: center;
    font-size: 14px;
    color: rgba(28, 36, 75, 0.62);
}

body.zi-store-locator-open {
    overflow: hidden;
}

@media (max-width: 720px) {
    .zi-store-locator-shell {
        --zi-locator-tab-w: 36px;
        --zi-locator-panel-w: min(230px, calc(100vw - 36px));
    }

    .zi-store-locator-tab {
        padding: 10px 7px;
    }

    .zi-store-locator-tab-ico {
        width: 30px;
        height: 30px;
    }

    .zi-store-locator-tab-ico svg {
        width: 24px;
        height: 24px;
    }

    .zi-store-locator-tab-text {
        font-size: 10px;
    }

    .zi-store-locator-grid-logo {
        width: 58px;
        height: 58px;
    }

    .zi-store-locator-grid-item {
        min-height: 100px;
        padding: 8px 4px;
    }
}

/* Our Branch filters — beat Elementor kit input/select borders */
.elementor-kit-7 .zi-our-outlet-section input[type="search"].zi-our-outlet-search,
.elementor-kit-7 .zi-our-outlet-section select.zi-our-outlet-select,
.zi-our-outlet-section input[type="search"].zi-our-outlet-search,
.zi-our-outlet-section select.zi-our-outlet-select {
    border: 1px solid rgba(44, 93, 171, 0.38) !important;
    border-color: rgba(44, 93, 171, 0.38) !important;
}

/* ===== Our Concerns — hero flow + card grid ===== */
.zi-concerns-page {
    --zi-concerns-deep: #0B2E59;
    --zi-concerns-blue: #0E3A6E;
    --zi-concerns-teal: #2c5dab;
    --zi-concerns-teal-light: #5FD1C2;
    --zi-concerns-ink: #1c244b;
    --zi-concerns-ink-soft: #5a6275;
    --zi-concerns-line: #e4e8ef;
    --zi-concerns-mist: #f3f6fa;
}

.zi-concerns-hero {
    background: linear-gradient(180deg, var(--zi-concerns-deep) 0%, var(--zi-concerns-blue) 100%);
    color: #fff;
    padding: 64px var(--zi-content-pad, 32px) 30px;
    position: relative;
    overflow: hidden;
    text-align: center;
}

/* Home — blend with About band (top) and agency band (bottom) */
.home .zi-concerns-page--home {
    background:
        radial-gradient(ellipse 65% 48% at 10% 14%, rgba(28, 36, 75, 0.045), transparent 58%),
        radial-gradient(ellipse 50% 42% at 90% 78%, rgba(44, 93, 171, 0.05), transparent 55%),
        linear-gradient(180deg, #f3f1eb 0%, var(--zi-classic-ivory, #f6f4ef) 32%, var(--zi-classic-paper, #fbfaf7) 100%);
}

.home .zi-concerns-page--home .zi-concerns-hero {
    background: transparent;
    color: var(--zi-classic-navy, #1c244b);
    padding: 52px var(--zi-content-pad) 24px;
}

.home .zi-concerns-page--home .zi-concerns-hero::before {
    background-image: radial-gradient(circle at 1px 1px, rgba(28, 36, 75, 0.05) 1px, transparent 1px);
}

.home .zi-concerns-page--home .zi-concerns-eyebrow {
    color: #2c5dab;
}

.home .zi-concerns-page--home .zi-concerns-title {
    color: #2c5dab;
}

.home .zi-concerns-page--home .zi-concerns-lede {
    color: #5a6275;
}

.home .zi-concerns-page--home .zi-concerns-chip {
    border: 1px solid rgba(28, 36, 75, 0.14);
    background: rgba(255, 255, 255, 0.88);
    color: #1c244b;
}

.home .zi-concerns-page--home .zi-concerns-chip:hover {
    border-color: rgba(44, 93, 171, 0.35);
    background: #fff;
}

.home .zi-concerns-page--home .zi-concerns-chip.is-active {
    background: #2c5dab;
    border-color: #2c5dab;
    color: #fff;
}

.home .zi-concerns-page--home .zi-concerns-pipe {
    stroke: rgba(28, 36, 75, 0.14);
}

.home .zi-concerns-page--home .zi-concerns-pipe-flow {
    stroke: #2c5dab;
}

.home .zi-concerns-page--home .zi-concerns-flow-hub circle {
    fill: #fff;
    stroke: #2c5dab;
}

.home .zi-concerns-page--home .zi-concerns-flow-hub text {
    fill: #2c5dab;
}

.home .zi-concerns-page--home .zi-concerns-flow-dot {
    fill: #fff;
    stroke: rgba(44, 93, 171, 0.4);
}

.home .zi-concerns-page--home .zi-concerns-flow-node text {
    fill: #5a6275;
}

.home .zi-concerns-page--home .zi-concerns-flow-node.is-active .zi-concerns-flow-dot,
.home .zi-concerns-page--home .zi-concerns-flow-node:hover .zi-concerns-flow-dot {
    fill: #2c5dab;
    stroke: #fff;
}

.home .zi-concerns-page--home .zi-concerns-flow-node.is-active text,
.home .zi-concerns-page--home .zi-concerns-flow-node:hover text {
    fill: #1c244b;
}

.home .zi-concerns-page--home .zi-concerns-section {
    background: transparent;
    padding-top: 0;
}

.home .zi-concerns-page--home #companies-profile.zi-concerns-section {
    margin-top: -50px;
}

.home .zi-concerns-page--home .zi-concerns-logos-wrap,
.home .zi-concerns-page--home .zi-concerns-unified-logos {
    background: transparent;
}

/* Unified band — Companies Profile + Brands + Partners as one seamless section */
.zi-concerns-unified-band {
    position: relative;
    overflow: hidden;
}

.zi-concerns-unified-band .zi-concerns-section:has(+ .zi-concerns-unified-logos),
.zi-concerns-unified-band .zi-concerns-section:has(+ .zi-concerns-logos-wrap) {
    padding-bottom: 20px;
}

.home .zi-concerns-unified-band .zi-concerns-section:has(+ .zi-concerns-unified-logos) {
    padding-bottom: 32px;
}

.zi-concerns-unified-logos {
    max-width: var(--zi-content-max, 1200px);
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--zi-content-pad, 32px) 56px;
    box-sizing: border-box;
}

.home .zi-concerns-unified-band .zi-concerns-unified-logos {
    padding-bottom: 48px;
}

.zi-concerns-section + .zi-concerns-unified-logos > .zi-concerns-unified-block:first-child {
    margin-top: 56px;
    padding-top: 0;
    border-top: none;
}

.home .zi-concerns-section + .zi-concerns-unified-logos > .zi-concerns-unified-block:first-child {
    margin-top: 72px;
}

.zi-concerns-unified-band > .zi-concerns-unified-logos:first-child > .zi-concerns-unified-block:first-child {
    margin-top: 48px;
    padding-top: 40px;
    border-top: none;
}

.home .zi-concerns-unified-band > .zi-concerns-unified-logos:first-child > .zi-concerns-unified-block:first-child {
    margin-top: 44px;
    padding-top: 36px;
}

.zi-concerns-unified-block {
    margin: 0;
    padding: 0;
    border-top: none !important;
}

.zi-concerns-unified-block + .zi-concerns-unified-block {
    margin-top: 56px;
    padding-top: 0;
    border-top: none !important;
}

.home .zi-concerns-unified-block + .zi-concerns-unified-block {
    margin-top: 72px;
    padding-top: 0;
}

.zi-concerns-unified-band .zi-brands-band,
.zi-concerns-unified-band .zi-partners-band {
    padding-top: 0 !important;
    border-top: none !important;
}

.zi-concerns-section + .zi-concerns-unified-logos > .zi-concerns-unified-block.zi-brands-band:first-child {
    margin-top: 56px !important;
}

.home .zi-concerns-section + .zi-concerns-unified-logos > .zi-concerns-unified-block.zi-brands-band:first-child {
    margin-top: 72px !important;
}

.zi-concerns-unified-band .zi-concerns-unified-logos > .zi-concerns-unified-block.zi-partners-band {
    margin-top: 56px !important;
}

.home .zi-concerns-unified-band .zi-concerns-unified-logos > .zi-concerns-unified-block.zi-partners-band {
    margin-top: 72px !important;
}

.zi-concerns-unified-band .zi-brands-inner,
.zi-concerns-unified-band .zi-partners-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.zi-concerns-unified-band .zi-concerns-unified-block .zi-concerns-logos-header {
    margin-bottom: 22px;
}

.zi-concerns-unified-band .zi-concerns-unified-block .zi-concerns-logos-eyebrow {
    font-size: 11px;
    letter-spacing: 0.2em;
    margin-bottom: 8px;
}

.zi-concerns-unified-band .zi-concerns-unified-block .zi-concerns-logos-title {
    font-size: clamp(22px, 2.6vw, 32px);
    margin-bottom: 0;
}

.zi-concerns-unified-band .zi-concerns-unified-block .zi-concerns-logos-header .zi-stats-divider {
    display: none;
}

.zi-concerns-unified-band:not(.zi-concerns-page--home) .zi-concerns-section {
    padding-top: 48px;
    padding-bottom: 0;
}

.zi-concerns-unified-band:not(.zi-concerns-page--home) .zi-concerns-unified-logos {
    padding-bottom: 64px;
}

.home .zi-concerns-unified-band + .zi-mfg-products-band {
    margin-top: 0;
}

.zi-concerns-unified--after {
    padding-top: 0;
    background: #fff;
}

.zi-concerns-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.08) 1px, transparent 1px);
    background-size: 26px 26px;
    pointer-events: none;
}

.zi-concerns-hero-inner {
    max-width: var(--zi-content-max, 1200px);
    width: 100%;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.zi-concerns-eyebrow {
    font-family: var(--zi-classic-sans);
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-size: 12px;
    font-weight: 600;
    color: #2c5dab;
    margin: 0;
}

.zi-concerns-title {
    font-family: var(--zi-classic-serif);
    font-size: clamp(2rem, 4.4vw, 3rem);
    font-weight: 600;
    margin: 14px 0 0;
    color: #fff;
    line-height: 1.15;
}

.zi-concerns-lede {
    color: rgba(255, 255, 255, 0.72);
    max-width: 130ch;
    margin: 18px auto 0;
    font-size: 1.02rem;
    line-height: 1.6;
    font-family: var(--zi-classic-sans);
}

.zi-concerns-filters {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 32px;
    position: relative;
    z-index: 2;
}

.zi-concerns-chip {
    font-family: var(--zi-classic-sans);
    font-size: 0.84rem;
    font-weight: 500;
    padding: 9px 20px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.85);
    cursor: pointer;
    transition: all 0.2s ease;
}

.zi-concerns-chip:hover {
    border-color: rgba(255, 255, 255, 0.5);
}

.zi-concerns-chip.is-active {
    background: var(--zi-concerns-teal);
    border-color: var(--zi-concerns-teal);
    color: #fff;
}

.zi-concerns-flow-wrap {
    max-width: 100%;
    width: 100%;
    margin: 44px auto 0;
    position: relative;
    z-index: 2;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.zi-concerns-flow-wrap::-webkit-scrollbar {
    display: none;
}

.zi-concerns-flow {
    width: 100%;
    min-width: 0;
    height: auto;
    display: block;
}

.zi-concerns-pipe {
    fill: none;
    stroke: rgba(255, 255, 255, 0.22);
    stroke-width: 2;
}

.zi-concerns-pipe-flow {
    fill: none;
    stroke: var(--zi-concerns-teal);
    stroke-width: 2;
    stroke-dasharray: 6 10;
    stroke-linecap: round;
    animation: zi-concerns-flow 1.8s linear infinite;
}

@keyframes zi-concerns-flow {
    to { stroke-dashoffset: -32; }
}

.zi-concerns-flow-hub circle {
    fill: var(--zi-concerns-blue);
    stroke: var(--zi-concerns-teal);
    stroke-width: 1.6;
}

.zi-concerns-flow-hub text {
    fill: #fff;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 600;
}

.zi-concerns-flow-node {
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.zi-concerns-flow-dot {
    fill: var(--node-color, var(--zi-concerns-blue));
    stroke: rgba(255, 255, 255, 0.5);
    stroke-width: 1.3;
    transition: all 0.2s ease;
}

.zi-concerns-flow-node text {
    fill: rgba(255, 255, 255, 0.65);
    font-family: var(--zi-classic-sans);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.01em;
    transition: fill 0.2s ease;
}

.zi-concerns-flow-node text tspan {
    text-anchor: middle;
}

.zi-concerns-flow-node.is-active .zi-concerns-flow-dot,
.zi-concerns-flow-node:hover .zi-concerns-flow-dot {
    fill: var(--node-color, var(--zi-concerns-teal));
    stroke: #fff;
}

.zi-concerns-flow-node.is-active text,
.zi-concerns-flow-node:hover text {
    fill: #fff;
}

@media (prefers-reduced-motion: reduce) {
    .zi-concerns-pipe-flow { animation: none; }
}

.zi-concerns-section {
    max-width: var(--zi-content-max, 1200px);
    width: 100%;
    margin: 0 auto;
    padding: 70px var(--zi-content-pad, 32px) 100px;
    box-sizing: border-box;
}

.zi-concerns-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    align-items: stretch;
}

.zi-concerns-card {
    background: #fff;
    border: 1px solid var(--zi-concerns-line);
    border-radius: 10px;
    padding: 30px 26px;
    position: relative;
    box-shadow: 0 1px 2px rgba(11, 46, 89, 0.04);
    transition: box-shadow 0.25s ease, transform 0.25s ease, opacity 0.2s ease;
    border-top: none;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
}

.zi-concerns-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--brand-border, var(--cat-color, var(--zi-concerns-teal)));
    border-radius: 10px 10px 0 0;
    pointer-events: none;
}

.zi-concerns-card.is-hidden {
    display: none;
}

.zi-concerns-card.is-highlighted {
    box-shadow: 0 0 0 2px var(--cat-color, var(--zi-concerns-teal)), 0 14px 34px rgba(11, 46, 89, 0.12);
}

.zi-concerns-card:hover {
    box-shadow: 0 14px 34px rgba(11, 46, 89, 0.1);
    transform: translateY(-3px);
}

.zi-concerns-card--link {
    cursor: pointer;
}

.zi-concerns-card--link:focus-visible {
    outline: 2px solid var(--cat-color, var(--zi-concerns-teal));
    outline-offset: 3px;
}

.zi-concerns-card-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

.zi-concerns-card-idx {
    font-family: var(--zi-classic-sans);
    font-size: 0.72rem;
    color: var(--zi-concerns-ink-soft);
    letter-spacing: 0.06em;
}

.zi-concerns-card-cat {
    font-family: var(--zi-classic-sans);
    font-size: 0.66rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cat-color, var(--zi-concerns-teal));
    font-weight: 600;
    text-align: right;
}

.zi-concerns-logo-ring {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: var(--zi-concerns-mist);
    border: 1.5px solid var(--cat-color, var(--zi-concerns-teal));
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 20px;
    color: var(--cat-color, var(--zi-concerns-teal));
    overflow: hidden;
}

.zi-concerns-logo-ring img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 6px;
    background: #fff;
}

.zi-concerns-logo-ring svg {
    width: 26px;
    height: 26px;
}

.zi-concerns-card-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.zi-concerns-card-name {
    font-family: var(--zi-classic-serif);
    font-size: 1.14rem;
    font-weight: 600;
    margin: 18px 0 0;
    color: var(--zi-concerns-deep);
    line-height: 1.3;
}

.zi-concerns-card-desc {
    margin: 10px 0 0;
    color: var(--zi-concerns-ink-soft);
    font-size: 0.9rem;
    line-height: 1.55;
    font-family: var(--zi-classic-sans);
}

.zi-concerns-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 16px;
}

.zi-concerns-tag {
    background: var(--zi-concerns-mist);
    color: var(--zi-concerns-ink-soft);
    font-size: 0.72rem;
    padding: 5px 11px;
    border-radius: 5px;
    font-family: var(--zi-classic-sans);
}

.zi-concerns-card-foot {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid var(--zi-concerns-line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-shrink: 0;
}

.zi-concerns-domain {
    font-family: var(--zi-classic-sans);
    font-size: 0.72rem;
    color: var(--zi-concerns-ink-soft);
}

.zi-concerns-visit {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--zi-concerns-deep);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--zi-classic-sans);
    white-space: nowrap;
}

.zi-concerns-visit svg {
    width: 14px;
    height: 14px;
    transition: transform 0.2s ease;
}

.zi-concerns-visit:hover {
    color: var(--zi-concerns-teal);
}

.zi-concerns-visit:hover svg {
    transform: translateX(3px);
}

.zi-concerns-visit--muted {
    color: var(--zi-concerns-ink-soft);
    font-weight: 500;
}

.zi-concerns-page .zi-concerns-unified {
    padding-top: 0;
}

.home .zi-concerns-page--home .zi-concerns-section:has(+ .zi-concerns-logos-wrap),
.home .zi-concerns-page--home .zi-concerns-section:has(+ .zi-concerns-unified-logos) {
    padding-bottom: 32px;
}

.zi-concerns-section:has(+ .zi-concerns-logos-wrap),
.zi-concerns-section:has(+ .zi-concerns-unified-logos) {
    padding-bottom: 28px;
}

/* Brands + Partners — same flow as Companies Profile cards section */
.zi-concerns-logos-wrap {
    max-width: var(--zi-content-max, 1200px);
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--zi-content-pad, 32px) 70px;
    box-sizing: border-box;
}

.zi-concerns-section + .zi-concerns-logos-wrap,
.zi-concerns-section + .zi-concerns-unified-logos {
    padding-top: 0;
}

.zi-concerns-logos-wrap > .zi-concerns-logos-band:first-child {
    margin-top: 56px;
    padding-top: 48px;
}

.zi-concerns-logos-band {
    margin: 0;
    padding: 0;
}

.zi-concerns-logos-band + .zi-concerns-logos-band {
    margin-top: 48px;
    padding-top: 48px;
    border-top: 1px solid var(--zi-concerns-line, #e4e8ef);
}

.zi-concerns-unified-band .zi-concerns-logos-band + .zi-concerns-logos-band,
.zi-concerns-unified-logos .zi-concerns-logos-band + .zi-concerns-logos-band {
    margin-top: 32px;
    padding-top: 0;
    border-top: none;
}

.zi-concerns-page .zi-partners-band {
    padding-bottom: 0 !important;
}

.zi-concerns-logos-header {
    text-align: center;
    margin-bottom: 32px;
}

.zi-concerns-logos-eyebrow {
    margin: 0 0 10px;
    font-family: var(--zi-classic-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #2c5dab;
}

.zi-concerns-logos-title {
    margin: 0 0 14px;
    font-family: var(--zi-classic-serif);
    font-size: clamp(26px, 3.2vw, 40px);
    font-weight: 600;
    color: var(--zi-concerns-deep, #0B2E59);
    line-height: 1.15;
}

.zi-concerns-logos-header .zi-stats-divider {
    margin: 0 auto 18px;
}

.zi-concerns-logos-header .zi-stats-divider span:nth-child(2) {
    background: #2c5dab;
    border-radius: 0;
    width: 10px;
    height: 10px;
    transform: rotate(45deg);
}

.zi-concerns-logos-header .zi-stats-divider span:nth-child(1),
.zi-concerns-logos-header .zi-stats-divider span:nth-child(3) {
    background: var(--zi-classic-navy, #1c244b);
    border-radius: 0;
    width: 6px;
    height: 6px;
    transform: rotate(45deg);
    opacity: 0.35;
}

.zi-concerns-unified {
    padding: 56px 0 72px;
    background: var(--zi-classic-paper, #fbfaf7);
}

.zi-concerns-unified .zi-why-section--embedded {
    margin-top: 0;
    padding: 0;
    background: transparent;
}

.zi-concerns-unified .zi-why-section--embedded::before {
    display: none;
}

.zi-concerns-card-actions {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.zi-concerns-pdf {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid rgba(44, 93, 171, 0.35);
    color: #2c5dab !important;
    background: rgba(44, 93, 171, 0.08);
    text-decoration: none !important;
    overflow: hidden;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.zi-concerns-pdf svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
    animation: zi-pdf-download 1.1s ease-in-out infinite;
}

.zi-concerns-pdf:hover {
    background: #2c5dab;
    border-color: #2c5dab;
    color: #fff !important;
}

.zi-concerns-pdf:hover svg {
    animation: none;
}

/* Arrow moves down like a file downloading */
@keyframes zi-pdf-download {
    0% {
        transform: translateY(-5px);
        opacity: 0.35;
    }
    55% {
        transform: translateY(3px);
        opacity: 1;
    }
    70% {
        transform: translateY(3px);
        opacity: 1;
    }
    100% {
        transform: translateY(6px);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .zi-concerns-pdf svg {
        animation: none;
    }
}

@media (max-width: 980px) {
    .zi-concerns-grid { grid-template-columns: repeat(2, 1fr); }
    .zi-concerns-flow {
        min-width: 680px;
    }
}

/* Our Concerns — laptop / small desktop */
@media (min-width: 981px) and (max-width: 1599px) {
    .zi-concerns-flow-wrap {
        max-width: min(100%, 1080px);
        margin-left: auto;
        margin-right: auto;
    }

    .zi-concerns-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px;
    }
}

/* Our Concerns — 1920×1080 / FHD desktop */
@media (min-width: 1600px) and (max-width: 2399px) and (min-height: 900px) and (max-height: 1100px) {
    .zi-concerns-hero {
        padding: 52px var(--zi-content-pad, 48px) 26px;
    }

    .home .zi-concerns-page--home .zi-concerns-hero {
        padding: 44px var(--zi-content-pad) 18px;
    }

    .zi-concerns-hero-inner {
        max-width: min(var(--zi-content-max, 1560px), 1480px);
    }

    .zi-concerns-flow-wrap {
        max-width: min(100%, 1380px);
        margin-top: 32px;
    }

    .zi-concerns-flow-node text {
        font-size: 10px;
    }

    .zi-concerns-title {
        font-size: clamp(2rem, 2.6vw, 2.65rem);
    }

    .zi-concerns-lede {
        max-width: 68ch;
        margin-top: 14px;
        font-size: 0.98rem;
    }

    .zi-concerns-filters {
        margin-top: 26px;
        gap: 8px;
    }

    .zi-concerns-chip {
        font-size: 0.8rem;
        padding: 8px 18px;
    }

    .zi-concerns-section {
        padding: 52px var(--zi-content-pad, 48px) 76px;
    }

    .zi-concerns-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 22px;
    }

    .zi-concerns-card {
        padding: 24px 22px;
    }

    .zi-concerns-card-name {
        font-size: 1.08rem;
    }

    .zi-concerns-card-desc {
        font-size: 0.86rem;
        line-height: 1.5;
    }

    .zi-concerns-card-foot {
        padding-top: 14px;
        gap: 10px;
        flex-wrap: wrap;
    }

    .home .zi-concerns-page--home #companies-profile.zi-concerns-section {
        margin-top: -36px;
    }
}

@media (max-width: 640px) {
    .zi-concerns-hero { padding: 48px var(--zi-content-pad, 20px) 24px; }
    .zi-concerns-section { padding: 48px var(--zi-content-pad, 20px) 72px; }
    .zi-concerns-logos-wrap,
    .zi-concerns-unified-logos { padding: 0 var(--zi-content-pad, 20px) 56px; }
    .zi-concerns-grid { grid-template-columns: 1fr; }
    .zi-concerns-flow-node text { font-size: 8px; }
}
