/**
 * Xeosol Homepage — premium minimal (9 sections)
 * Scoped under .xeosol-home
 */

.xeosol-home {
    --xeo-navy: #07182F;
    --xeo-navy-mid: #0E2342;
    --xeo-orange: #F5A623;
    --xeo-orange-dark: #e09410;
    --xeo-surface: #F5F7FB;
    --xeo-text: #0f1a2e;
    --xeo-muted: #5a6778;
    --xeo-border: rgba(15, 26, 46, 0.08);
    --xeo-shadow: 0 8px 32px rgba(7, 24, 47, 0.08);
    --xeo-shadow-lg: 0 20px 48px rgba(7, 24, 47, 0.12);
    --xeo-radius: 12px;
    --xeo-radius-lg: 16px;
    --xeo-site-header-h: 118px;
    --xh-max: 1120px;
    overflow-x: hidden;
}

.xeosol-home * { box-sizing: border-box; }

html:has(.xeosol-home) { scroll-behavior: smooth; }

/* ── Site header on homepage ── */
.page-wrapper:has(.xeosol-home) .main-footer { margin-top: 0; }

.page-wrapper:has(.xeosol-home) .main-header.header-style-four .header-lower {
    background: transparent;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.page-wrapper:has(.xeosol-home) .main-header.header-style-four .main-menu .navigation > li > a {
    color: rgba(255, 255, 255, 0.88);
}
.page-wrapper:has(.xeosol-home) .main-header.header-style-four .main-menu .navigation > li.current > a,
.page-wrapper:has(.xeosol-home) .main-header.header-style-four .main-menu .navigation > li > a:hover {
    color: var(--xeo-orange);
}
.page-wrapper:has(.xeosol-home:not(.xeosol-home--past-hero)) .main-header .site-logo--light,
.page-wrapper:has(.xeosol-home:not(.xeosol-home--past-hero)) .sticky-header .site-logo--light {
    display: block;
}
.page-wrapper:has(.xeosol-home:not(.xeosol-home--past-hero)) .main-header .site-logo--dark,
.page-wrapper:has(.xeosol-home:not(.xeosol-home--past-hero)) .sticky-header .site-logo--dark {
    display: none;
}
.page-wrapper:has(.xeosol-home) .sticky-header.fixed-header {
    background: rgba(7, 24, 47, 0.98);
    backdrop-filter: blur(12px);
}
.page-wrapper:has(.xeosol-home:not(.xeosol-home--past-hero)) .sticky-header.fixed-header .main-menu .navigation > li > a {
    color: rgba(255, 255, 255, 0.88);
}
.page-wrapper:has(.xeosol-home:not(.xeosol-home--past-hero)) .sticky-header.fixed-header .main-menu .navigation > li.current > a,
.page-wrapper:has(.xeosol-home:not(.xeosol-home--past-hero)) .sticky-header.fixed-header .main-menu .navigation > li > a:hover {
    color: var(--xeo-orange);
}

.page-wrapper:has(.xeosol-home--past-hero) .main-header.header-style-four .header-lower {
    background: rgba(255, 255, 255, 0.98);
    border-bottom: 1px solid var(--xeo-border);
}
.page-wrapper:has(.xeosol-home--past-hero) .main-header .site-logo--light,
.page-wrapper:has(.xeosol-home--past-hero) .sticky-header .site-logo--light {
    display: none;
}
.page-wrapper:has(.xeosol-home--past-hero) .main-header .site-logo--dark,
.page-wrapper:has(.xeosol-home--past-hero) .sticky-header .site-logo--dark {
    display: block;
}
.page-wrapper:has(.xeosol-home--past-hero) .main-header.header-style-four .main-menu .navigation > li > a {
    color: var(--xeo-text);
}
.page-wrapper:has(.xeosol-home--past-hero) .main-header.header-style-four .main-menu .navigation > li.current > a,
.page-wrapper:has(.xeosol-home--past-hero) .main-header.header-style-four .main-menu .navigation > li > a:hover {
    color: var(--xeo-orange-dark);
}
.page-wrapper:has(.xeosol-home--past-hero) .sticky-header.fixed-header {
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 1px 0 var(--xeo-border);
}
.page-wrapper:has(.xeosol-home--past-hero) .sticky-header.fixed-header .main-menu .navigation > li > a {
    color: var(--xeo-text);
}
.page-wrapper:has(.xeosol-home--past-hero) .sticky-header.fixed-header .main-menu .navigation > li.current > a,
.page-wrapper:has(.xeosol-home--past-hero) .sticky-header.fixed-header .main-menu .navigation > li > a:hover {
    color: var(--xeo-orange-dark);
}

/* ── Shared ── */
.xh-shell {
    width: 100%;
    max-width: var(--xh-max);
    margin: 0 auto;
    padding: 0 24px;
}

.xh-heading {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--xeo-text);
    margin: 0 0 16px;
}

.xh-heading--light { color: #fff; }

.xh-section-head {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 48px;
}

.xh-section-head--wide {
    max-width: 760px;
}

.xh-section-head--wide .xh-lead {
    margin-top: 4px;
}

.xh-section-head--light .xh-lead--light {
    color: rgba(255, 255, 255, 0.72);
    margin: 0 auto;
}

.xh-lead {
    font-size: 1.05rem;
    line-height: 1.65;
    color: var(--xeo-muted);
    margin: 0;
}

.xh-lead--light {
    color: rgba(255, 255, 255, 0.72);
}

.xh-reveal {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}
.xh-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.xh-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 28px;
    border-radius: 8px;
    background: var(--xeo-orange);
    color: var(--xeo-navy);
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    border: none;
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 4px 16px rgba(245, 166, 35, 0.35);
}
.xh-btn-primary:hover {
    background: var(--xeo-orange-dark);
    color: var(--xeo-navy);
    transform: translateY(-1px);
    box-shadow: 0 8px 24px rgba(245, 166, 35, 0.4);
    text-decoration: none;
}

.xh-btn-ghost {
    display: inline-flex;
    align-items: center;
    padding: 13px 24px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color 0.2s ease, background 0.2s ease;
}
.xh-btn-ghost:hover {
    border-color: rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
    text-decoration: none;
}

/* ── 1. Hero (premium SaaS) ── */
.xh-hero {
    position: relative;
    padding: calc(var(--xeo-site-header-h) + 56px) 0 0;
    background: linear-gradient(165deg, #07182F 0%, #0E2342 100%);
    overflow: hidden;
}

.xh-hero__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.xh-hero__grid-pattern {
    position: absolute;
    inset: 0;
    opacity: 0.35;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: radial-gradient(ellipse 80% 70% at 50% 40%, #000 20%, transparent 75%);
}

.xh-hero__glow {
    position: absolute;
    width: 680px;
    height: 680px;
    top: 10%;
    right: -8%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(43, 154, 230, 0.22) 0%, transparent 68%);
    filter: blur(2px);
}

.xh-hero__main {
    position: relative;
    z-index: 2;
}

.xh-hero__grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 56px;
    align-items: center;
    padding-bottom: 56px;
}

.xh-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px 8px 12px;
    margin-bottom: 28px;
    border-radius: 100px;
    border: 1px solid rgba(43, 154, 230, 0.35);
    background: rgba(43, 154, 230, 0.08);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(147, 197, 253, 0.95);
}

.xh-hero__badge-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #3b9ae6;
    box-shadow: 0 0 12px rgba(59, 154, 230, 0.8);
}

.xh-hero__title {
    font-size: clamp(2.15rem, 4.2vw, 3.15rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.03em;
    color: #fff;
    margin: 0 0 22px;
    max-width: 580px;
}

.xh-hero__title em {
    font-style: normal;
    display: block;
    margin-top: 6px;
    background: linear-gradient(135deg, #7ec8f7 0%, #3b9ae6 55%, #60a5fa 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.xh-hero__sub {
    font-size: 1.0625rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.68);
    margin: 0 0 32px;
    max-width: 500px;
}

.xh-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-bottom: 36px;
}

.xh-hero .xh-btn-primary {
    padding: 15px 26px;
    border-radius: 10px;
    font-size: 15px;
    gap: 10px;
}

.xh-hero .xh-btn-ghost {
    padding: 14px 24px;
    border-radius: 10px;
    border-color: rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.03);
}

.xh-hero__cred {
    max-width: 540px;
    padding-top: 28px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.xh-hero__cred-title {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.92);
    margin: 0 0 10px;
    letter-spacing: -0.01em;
}

.xh-hero__cred-text {
    font-size: 14px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.52);
    margin: 0 0 22px;
}

.xh-hero__cred-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.xh-hero__cred-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px 9px 12px;
    border-radius: 100px;
    background: rgba(255, 255, 255, 0.04);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid #2A3C5E;
    font-size: 12.5px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
    letter-spacing: 0.01em;
    cursor: default;
    user-select: none;
    transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.xh-hero__cred-badge:hover {
    border-color: rgba(59, 154, 230, 0.45);
    background: rgba(255, 255, 255, 0.07);
    box-shadow: 0 0 20px rgba(59, 154, 230, 0.15);
}

.xh-hero__cred-badge-icon {
    font-size: 14px;
    line-height: 1;
    opacity: 0.95;
}

/* Visual + dashboard cards */
.xh-hero__visual {
    position: relative;
    min-height: 440px;
}

.xh-hero__photo {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 32px 64px rgba(0, 0, 0, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.xh-hero__photo img {
    display: block;
    width: 100%;
    height: auto;
    min-height: 420px;
    object-fit: cover;
    object-position: center 15%;
}

.xh-hero__dash {
    position: absolute;
    padding: 14px 16px;
    border-radius: 14px;
    background: rgba(10, 28, 52, 0.88);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
    color: #fff;
    font-size: 12px;
}

.xh-hero__dash-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.88);
}

.xh-hero__dash-pill {
    padding: 4px 10px;
    border-radius: 100px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 10px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.55);
}

.xh-hero__dash--perf {
    top: -25%;
    right: -26%;
    width: min(280px, 90%);
    z-index: 3;
}

.xh-hero__dash-body--split {
    display: flex;
    align-items: center;
    gap: 14px;
}

.xh-hero__ring {
    position: relative;
    width: 72px;
    height: 72px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.xh-hero__ring svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.xh-hero__ring circle:first-child {
    fill: none;
    stroke: rgba(255, 255, 255, 0.1);
    stroke-width: 6;
}

.xh-hero__ring circle:last-child {
    fill: none;
    stroke: #3b9ae6;
    stroke-width: 6;
    stroke-linecap: round;
    stroke-dasharray: 214;
    stroke-dashoffset: 17;
}

.xh-hero__ring strong {
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
    color: #fff;
    position: relative;
    z-index: 1;
}

.xh-hero__ring span {
    font-size: 8px;
    color: rgba(255, 255, 255, 0.5);
    text-align: center;
    line-height: 1.2;
    position: relative;
    z-index: 1;
    max-width: 56px;
}

.xh-hero__dash-stats {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
}

.xh-hero__dash-stats li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 4px 0;
    font-size: 11px;
    color: rgba(255, 255, 255, 0.5);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.xh-hero__dash-stats li:last-child { border-bottom: none; }

.xh-hero__dash-stats strong {
    color: #fff;
    font-weight: 700;
}

.xh-hero__dash--tech {
    bottom: -24%;
    right: -17%;
    width: min(340px, 96%);
    z-index: 3;
}

.xh-hero__dash-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 12px;
}

.xh-hero__tech-logos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.xh-hero__tech-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 8px 6px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.xh-hero__tech-item img {
    width: 20px;
    height: 20px;
    object-fit: contain;
    filter: brightness(0) invert(1);
    opacity: 0.92;
}

.xh-hero__tech-item em {
    font-style: normal;
    font-size: 9px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.72);
    text-align: center;
    line-height: 1.2;
}

.xh-hero__tech-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.xh-hero__tech-row span {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.85);
    font-size: 16px;
}

.xh-hero__tech-more {
    font-size: 14px !important;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.45) !important;
}

.xh-hero__dash--eng {
    bottom: 13%;
    left: -19%;
    width: 160px;
    z-index: 3;
}

.xh-hero__dash-metric {
    display: block;
    font-size: 1.75rem;
    font-weight: 800;
    line-height: 1;
    margin: 4px 0 6px;
    letter-spacing: -0.02em;
    color: #fff;
}

.xh-hero__dash-delta {
    font-size: 11px;
    color: #6ee7a0;
    font-weight: 600;
}

.xh-hero__dash-delta i {
    font-size: 9px;
    margin-right: 4px;
}

/* Bottom feature row */
.xh-hero__features {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    padding: 28px 0 48px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.xh-hero__feat {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 24px 22px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    transition: background 0.25s ease, border-color 0.25s ease;
}

.xh-hero__feat:hover {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.12);
}

.xh-hero__feat-icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    border-radius: 12px;
    background: rgba(59, 154, 230, 0.12);
    border: 1px solid rgba(59, 154, 230, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #7ec8f7;
    font-size: 17px;
}

.xh-hero__feat h3 {
    font-size: 0.95rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 6px;
    letter-spacing: -0.01em;
}

.xh-hero__feat p {
    font-size: 13px;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.52);
    margin: 0;
}

/* ── 2. Two engineering hubs ── */
.xh-hubs {
    padding: 88px 0;
    background: #F5F7FB;
}

.xh-hubs__head {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 52px;
}

.xh-hubs__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--xeo-orange-dark);
    margin-bottom: 14px;
}

.xh-hubs__title {
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--xeo-navy);
    margin: 0 0 16px;
}

.xh-hubs__intro {
    font-size: 1.05rem;
    line-height: 1.65;
    color: var(--xeo-muted);
    margin: 0;
}

.xh-hubs__layout {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 20px;
    align-items: stretch;
    margin-bottom: 40px;
}

.xh-hubs__card {
    padding: 36px 32px;
    background: #fff;
    border: 1px solid rgba(42, 60, 94, 0.14);
    border-radius: 16px;
    box-shadow: var(--xeo-shadow);
    transition: box-shadow 0.25s ease, border-color 0.25s ease;
}

.xh-hubs__card:hover {
    box-shadow: var(--xeo-shadow-lg);
    border-color: rgba(42, 60, 94, 0.22);
}

.xh-hubs__card-flag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 20px;
    margin-bottom: 16px;
    border-radius: 3px;
    overflow: hidden;
    line-height: 0;
    background: transparent;
    border: 1px solid #ddd;
}

.xh-hubs__card-flag svg {
    display: block;
    width: 28px;
    height: 20px;
    border-radius: 2px;
}

.xh-hubs__card-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--xeo-navy);
    margin: 0 0 6px;
    letter-spacing: -0.01em;
}

.xh-hubs__card-sub {
    font-size: 13px;
    font-weight: 600;
    color: var(--xeo-orange-dark);
    margin: 0 0 22px;
}

.xh-hubs__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

.xh-hubs__list li {
    position: relative;
    padding-left: 18px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--xeo-muted);
}

.xh-hubs__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--xeo-orange);
}

.xh-hubs__connector {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: 120px;
    padding: 0 8px;
}

.xh-hubs__connector-line {
    flex: 1;
    width: 2px;
    min-height: 40px;
    background: linear-gradient(180deg, transparent, rgba(42, 60, 94, 0.2), transparent);
}

.xh-hubs__connector-badge {
    padding: 8px 14px;
    border-radius: 100px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-align: center;
    color: var(--xeo-navy);
    background: #fff;
    border: 1px solid rgba(42, 60, 94, 0.14);
    box-shadow: var(--xeo-shadow-sm);
    white-space: nowrap;
}

.xh-hubs__footer {
    text-align: center;
}

.xh-hubs__tagline {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--xeo-navy);
    margin: 0 0 20px;
    letter-spacing: -0.01em;
}

.xh-hubs__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--xeo-orange-dark);
    text-decoration: none;
    border-bottom: 2px solid rgba(245, 166, 35, 0.35);
    padding-bottom: 2px;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.xh-hubs__cta:hover {
    color: var(--xeo-navy);
    border-color: var(--xeo-orange);
    text-decoration: none;
}

/* ── 2. Trust cards (legacy — unused) ── */
.xh-trust {
    padding: 64px 0;
    background: #fff;
}

.xh-trust__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.xh-trust__card {
    padding: 32px 28px;
    background: #fff;
    border: 1px solid var(--xeo-border);
    border-radius: var(--xeo-radius-lg);
    box-shadow: var(--xeo-shadow);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.xh-trust__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--xeo-shadow-lg);
}

.xh-trust__icon {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    background: var(--xeo-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--xeo-navy-mid);
    font-size: 20px;
    margin-bottom: 18px;
}

.xh-trust__card h3 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--xeo-text);
    margin: 0 0 10px;
}

.xh-trust__card p {
    font-size: 14px;
    line-height: 1.55;
    color: var(--xeo-muted);
    margin: 0;
}

/* ── 3. Why XeoSol ── */
.xh-why {
    padding: 80px 0;
    background: var(--xeo-surface);
}

.xh-why__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
}

.xh-why__media img {
    display: block;
    width: 100%;
    border-radius: var(--xeo-radius-lg);
    box-shadow: var(--xeo-shadow-lg);
    aspect-ratio: 4/3;
    object-fit: cover;
}

.xh-why__list {
    list-style: none;
    margin: 28px 0 0;
    padding: 0;
    display: grid;
    gap: 12px;
}

.xh-why__list li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 15px;
    color: var(--xeo-text);
}

.xh-why__list i {
    color: var(--xeo-orange);
    font-size: 14px;
}

/* ── 4. Services (bento) ── */
.xh-services {
    padding: 96px 0;
    background: #fff;
}

.xh-services__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: repeat(3, minmax(0, auto));
    gap: 20px;
    margin-bottom: 64px;
}

.xh-services__featured {
    grid-column: 1;
    grid-row: 1 / -1;
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 36px 32px 32px;
    background: #fff;
    border: 1px solid var(--xeo-border);
    border-radius: 22px;
    box-shadow: var(--xeo-shadow-lg);
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.xh-services__featured::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg, #3b9ae6 0%, #5b7cfa 55%, rgba(91, 124, 250, 0.35) 100%);
}

.xh-services__featured::after {
    content: "";
    position: absolute;
    top: -80px;
    right: -80px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(59, 154, 230, 0.08) 0%, transparent 70%);
    pointer-events: none;
}

.xh-services__featured:hover {
    transform: translateY(-3px);
    box-shadow: 0 24px 56px rgba(7, 24, 47, 0.14);
    border-color: rgba(59, 154, 230, 0.18);
}

.xh-services__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
    padding: 6px 12px;
    margin-bottom: 20px;
    border-radius: 100px;
    background: rgba(245, 166, 35, 0.1);
    border: 1px solid rgba(245, 166, 35, 0.22);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--xeo-orange-dark);
}

.xh-services__badge i,
.xh-services__badge span[aria-hidden="true"] {
    color: var(--xeo-orange);
    font-size: 10px;
}

.xh-services__featured-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: rgba(59, 154, 230, 0.1);
    border: 1px solid rgba(59, 154, 230, 0.16);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #3b9ae6;
    font-size: 24px;
    margin-bottom: 18px;
}

.xh-services__featured-title {
    font-size: clamp(1.35rem, 2.2vw, 1.65rem);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: var(--xeo-text);
    margin: 0 0 8px;
}

.xh-services__featured-sub {
    font-size: 14px;
    font-weight: 600;
    color: #3b9ae6;
    margin: 0 0 16px;
}

.xh-services__featured-desc {
    font-size: 14px;
    line-height: 1.65;
    color: var(--xeo-muted);
    margin: 0 0 22px;
    max-width: 52ch;
}

.xh-services__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
}

.xh-services__chips span {
    padding: 6px 11px;
    border-radius: 100px;
    background: var(--xeo-surface);
    border: 1px solid var(--xeo-border);
    font-size: 11px;
    font-weight: 600;
    color: var(--xeo-text);
    letter-spacing: 0.01em;
}

.xh-services__highlights {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
    display: grid;
    gap: 8px;
}

.xh-services__highlights li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    font-weight: 500;
    color: var(--xeo-text);
}

.xh-services__highlights i {
    color: #3b9ae6;
    font-size: 11px;
}

.xh-services__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    font-size: 14px;
    font-weight: 700;
    color: var(--xeo-orange-dark);
    text-decoration: none;
    transition: gap 0.2s ease, color 0.2s ease;
}

.xh-services__link:hover {
    color: var(--xeo-orange);
    gap: 12px;
    text-decoration: none;
}

.xh-services__support {
    display: flex;
    flex-direction: column;
    padding: 26px 24px;
    background: #fff;
    border: 1px solid var(--xeo-border);
    border-radius: 20px;
    box-shadow: var(--xeo-shadow);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.xh-services__support:nth-child(2) { grid-column: 2; grid-row: 1; }
.xh-services__support:nth-child(3) { grid-column: 3; grid-row: 1; }
.xh-services__support:nth-child(4) { grid-column: 2; grid-row: 2; }
.xh-services__support:nth-child(5) { grid-column: 3; grid-row: 2; }
.xh-services__support:nth-child(6) { grid-column: 2 / 4; grid-row: 3; }

.xh-services__support:hover {
    transform: translateY(-3px);
    box-shadow: var(--xeo-shadow-lg);
    border-color: rgba(59, 154, 230, 0.14);
}

.xh-services__support-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(59, 154, 230, 0.08);
    border: 1px solid rgba(59, 154, 230, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #3b9ae6;
    font-size: 18px;
    margin-bottom: 16px;
}

.xh-services__support h3 {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--xeo-text);
    margin: 0 0 10px;
    letter-spacing: -0.01em;
}

.xh-services__support p {
    font-size: 13px;
    line-height: 1.55;
    color: var(--xeo-muted);
    margin: 0;
}

.xh-services__footer {
    text-align: center;
    max-width: 760px;
    margin: 0 auto;
    padding-top: 8px;
}

.xh-services__footer-title {
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--xeo-text);
    margin: 0 0 14px;
}

.xh-services__footer-text {
    font-size: 1rem;
    line-height: 1.65;
    color: var(--xeo-muted);
    margin: 0 0 28px;
}

.xh-services__footer .xh-btn-primary i {
    margin-left: 8px;
    font-size: 13px;
}

/* ── 5. Engagement models ── */
.xh-engage {
    padding: 88px 0;
    background: var(--xeo-surface);
}

.xh-engage__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 52px;
}

.xh-engage-card {
    display: flex;
    flex-direction: column;
    padding: 36px 28px;
    background: #fff;
    border: 1px solid var(--xeo-border);
    border-radius: var(--xeo-radius-lg);
    box-shadow: var(--xeo-shadow);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.xh-engage-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--xeo-shadow-lg);
    border-color: rgba(245, 166, 35, 0.22);
}

.xh-engage-card__icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--xeo-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--xeo-navy-mid);
    font-size: 20px;
    margin-bottom: 20px;
}

.xh-engage-card__badge {
    display: inline-flex;
    align-self: flex-start;
    padding: 6px 12px;
    margin-bottom: 14px;
    border-radius: 100px;
    background: rgba(245, 166, 35, 0.1);
    border: 1px solid rgba(245, 166, 35, 0.22);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--xeo-orange-dark);
}

.xh-engage-card h3 {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--xeo-text);
    margin: 0 0 12px;
    letter-spacing: -0.01em;
}

.xh-engage-card p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--xeo-muted);
    margin: 0;
}

.xh-engage__closing {
    max-width: 780px;
    margin: 0 auto;
    padding-top: 8px;
    text-align: center;
    font-size: 1.05rem;
    line-height: 1.65;
    font-weight: 500;
    color: var(--xeo-text);
}

/* ── 5. Building products ── */
.xh-build {
    padding: 88px 0;
    background: var(--xeo-navy);
}

.xh-build .xh-section-head--wide {
    margin-bottom: 44px;
}

.xh-build__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 44px;
}

.xh-build-card {
    display: flex;
    flex-direction: column;
    padding: 28px 24px;
    border-radius: 20px;
    background: linear-gradient(165deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.03) 100%);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
    text-decoration: none;
    color: inherit;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

.xh-build-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 44px rgba(0, 0, 0, 0.28);
    border-color: rgba(59, 154, 230, 0.28);
    background: linear-gradient(165deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.04) 100%);
    text-decoration: none;
    color: inherit;
}

.xh-build-card__badge {
    display: inline-flex;
    align-self: flex-start;
    padding: 5px 10px;
    margin-bottom: 18px;
    border-radius: 100px;
    background: rgba(59, 154, 230, 0.12);
    border: 1px solid rgba(59, 154, 230, 0.22);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #7ec4f0;
}

.xh-build-card__badge--client {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.14);
    color: rgba(255, 255, 255, 0.72);
}

.xh-build-card__icon {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: rgba(59, 154, 230, 0.12);
    border: 1px solid rgba(59, 154, 230, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #3b9ae6;
    font-size: 20px;
    margin-bottom: 16px;
}

.xh-build-card h3 {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
    color: #fff;
    margin: 0 0 10px;
    letter-spacing: -0.01em;
}

.xh-build-card p {
    font-size: 13px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.62);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.xh-build__cta {
    text-align: center;
}

.xh-build__cta .xh-btn-primary i {
    margin-left: 8px;
    font-size: 13px;
}

.xh-build__cta-note {
    margin: 16px 0 0;
    font-size: 14px;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.52);
}

/* ── 6. How it works ── */
.xh-steps {
    padding: 80px 0;
    background: var(--xeo-surface);
}

.xh-steps__track {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: stretch;
    gap: 0;
}

.xh-steps__item {
    flex: 1;
    position: relative;
    padding: 28px 22px;
    background: #fff;
    border-radius: var(--xeo-radius-lg);
    border: 1px solid var(--xeo-border);
    box-shadow: var(--xeo-shadow);
}

.xh-steps__item:not(:last-child) {
    margin-right: 48px;
}

.xh-steps__item:not(:last-child)::after {
    content: "→";
    position: absolute;
    right: -30px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    line-height: 1;
    color: var(--xeo-orange);
    opacity: 0.7;
    pointer-events: none;
}

.xh-steps__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--xeo-navy);
    color: var(--xeo-orange);
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 14px;
}

.xh-steps__item h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--xeo-text);
    margin: 0 0 8px;
}

.xh-steps__item p {
    font-size: 13px;
    line-height: 1.5;
    color: var(--xeo-muted);
    margin: 0;
}

/* ── 6. Products ── */
.xh-products {
    padding: 80px 0;
    background: var(--xeo-navy);
}

.xh-products__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.xh-product-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--xeo-radius-lg);
    overflow: hidden;
    transition: transform 0.25s ease, border-color 0.25s ease;
}
.xh-product-card:hover {
    transform: translateY(-4px);
    border-color: rgba(245, 166, 35, 0.35);
    text-decoration: none;
    color: inherit;
}

.xh-product-card__img {
    height: 140px;
    overflow: hidden;
}
.xh-product-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.9;
}

.xh-product-card h3 {
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    margin: 16px 18px 6px;
}

.xh-product-card p {
    font-size: 13px;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.58);
    margin: 0 18px 18px;
}

/* ── 7. Industries ── */
.xh-industries {
    padding: 72px 0;
    background: var(--xeo-navy-mid);
}

.xh-industries__grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 16px;
}

.xh-industries__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 132px;
    padding: 28px 12px;
    border-radius: var(--xeo-radius);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    text-align: center;
    transition: background 0.2s ease, border-color 0.2s ease;
}
.xh-industries__item:hover {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(245, 166, 35, 0.25);
}

.xh-industries__item i {
    font-size: 26px;
    color: var(--xeo-orange);
}

.xh-industries__item span {
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.88);
}

a.xh-industries__item {
    text-decoration: none;
    color: inherit;
}

.xh-industries--compact {
    padding: 48px 0 52px;
}

.xh-industries--compact .xh-section-head {
    margin-bottom: 28px;
}

.xh-industries--compact .xh-industries__item {
    min-height: 96px;
    padding: 20px 10px;
}

.xeosol-home .xh-hero__sub a,
.xeosol-home .xh-hubs__intro a,
.xeosol-home .xh-lead a,
.xeosol-home .xh-services__footer-text a,
.xeosol-home .xh-engage__closing a {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: rgba(245, 166, 35, 0.45);
    text-underline-offset: 3px;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.xeosol-home .xh-hero__sub a:hover,
.xeosol-home .xh-hubs__intro a:hover,
.xeosol-home .xh-lead a:hover,
.xeosol-home .xh-services__footer-text a:hover,
.xeosol-home .xh-engage__closing a:hover {
    color: var(--xeo-orange);
    text-decoration-color: var(--xeo-orange);
}

.xeosol-home .xh-services .xh-lead a,
.xeosol-home .xh-services__footer-text a,
.xeosol-home .xh-engage__closing a {
    color: var(--xeo-text);
}

/* ── 8. Contact ── */
.xh-contact {
    padding: 72px 0 80px;
    background: var(--xeo-surface);
}

.xh-contact__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 48px;
    align-items: center;
}

.xh-contact__head {
    text-align: left;
    max-width: 480px;
    margin: 0;
}

.xh-contact__head .xh-heading {
    margin-bottom: 16px;
}

.xh-contact__head .xh-lead {
    margin: 0 0 28px;
}

.xh-contact__head .xh-btn-primary {
    margin-bottom: 20px;
}

.xh-contact__sla {
    font-size: 14px;
    color: var(--xeo-muted);
    margin: 0;
}
.xh-contact__sla i {
    color: var(--xeo-orange-dark);
    margin-right: 6px;
}
.xh-contact__sla strong {
    color: var(--xeo-text);
}

.xh-contact__form-wrap .contact-section-two {
    padding: 0;
    margin: 0;
    background: transparent;
}

.xh-contact__form-wrap .contact-section-two.pull-up {
    margin-top: 0;
}
.xh-contact__form-wrap .contact-section-two .auto-container {
    max-width: none;
    padding: 0;
    margin: 0 !important;
}
.xh-contact__form-wrap .flex-container { display: block; }
.xh-contact__form-wrap .form-column,
.xh-contact__form-wrap .team-block-two {
    width: 100%;
    max-width: none;
    flex: none;
    padding: 0;
}
.xh-contact__form-wrap .team-block-two { display: none; }
.xh-contact__form-wrap .contact-form {
    position: relative;
    overflow: hidden;
    background: #fff;
    border-radius: var(--xeo-radius-lg);
    border: 1px solid var(--xeo-border);
    padding: 28px 32px;
    box-shadow: var(--xeo-shadow-lg);
    max-width: none;
    margin: 0;
}

.xh-contact__form-wrap .contact-form.light::before {
    display: none;
    content: none;
}

.xh-contact__form-wrap .contact-form .title-box {
    margin-bottom: 20px;
}

.xh-contact__form-wrap .contact-form .title-box .sub-title {
    display: none;
}

.xh-contact__form-wrap .contact-form .form-group {
    margin-bottom: 16px;
}

.xh-contact__form-wrap .contact-form .form-group input,
.xh-contact__form-wrap .contact-form .form-group textarea {
    border-radius: 8px;
    border: 1px solid var(--xeo-border);
    padding: 12px 14px;
}
.xh-contact__form-wrap .contact-form .theme-btn {
    border-radius: 8px;
    background: var(--xeo-orange);
    border-color: var(--xeo-orange);
}

/* ── Responsive ── */
@media (max-width: 991px) {
    .xh-hero__grid {
        grid-template-columns: 1fr;
        gap: 40px;
        padding-bottom: 40px;
    }
    .xh-hero__visual {
        min-height: 360px;
        max-width: 520px;
        margin: 0 auto;
    }
    .xh-hero__dash--perf {
        top: -20%;
        right: -31px;
        width: 260px;
    }
    .xh-hero__dash--eng {
        left: -34px;
        bottom: 10%;
    }
    .xh-hero__dash--tech {
        right: -43px;
        bottom: -12%;
        width: 260px;
    }
    .xh-hero__features {
        grid-template-columns: 1fr 1fr;
    }
    .xh-hero__grid,
    .xh-why__grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .xh-hubs__layout {
        grid-template-columns: 1fr;
    }
    .xh-hubs__connector {
        flex-direction: row;
        min-width: auto;
        padding: 8px 0;
    }
    .xh-hubs__connector-line {
        width: auto;
        height: 2px;
        min-height: 0;
        flex: 1;
        background: linear-gradient(90deg, transparent, rgba(42, 60, 94, 0.2), transparent);
    }
    .xh-trust__grid,
    .xh-engage__grid {
        grid-template-columns: 1fr;
    }
    .xh-services__layout {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
    }
    .xh-services__featured {
        grid-column: 1 / -1;
        grid-row: auto;
    }
    .xh-services__support:nth-child(2),
    .xh-services__support:nth-child(3),
    .xh-services__support:nth-child(4),
    .xh-services__support:nth-child(5),
    .xh-services__support:nth-child(6) {
        grid-column: auto;
        grid-row: auto;
    }
    .xh-services__support--wide {
        grid-column: 1 / -1;
    }
    .xh-steps__track {
        flex-wrap: wrap;
        gap: 20px;
    }
    .xh-steps__item {
        flex: 1 1 calc(50% - 10px);
        margin-right: 0 !important;
    }
    .xh-steps__item:not(:last-child)::after {
        display: none;
    }
    .xh-products__grid {
        grid-template-columns: 1fr 1fr;
    }
    .xh-build__grid {
        grid-template-columns: 1fr 1fr;
    }
    .xh-industries__grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .xh-contact__grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }
    .xh-contact__head {
        max-width: none;
        text-align: center;
    }
    .xh-contact__head .xh-lead {
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 600px) {
    .xh-hero { padding-top: calc(var(--xeo-site-header-h) + 32px); }
    .xh-hero__title em { display: inline; margin-top: 0; }
    .xh-hero__features {
        grid-template-columns: 1fr;
    }
    .xh-hero__dash--perf,
    .xh-hero__dash--tech,
    .xh-hero__dash--eng {
        position: relative;
        left: auto;
        right: auto;
        top: auto;
        bottom: auto;
        width: 100%;
        margin-top: 12px;
    }
    .xh-hero__visual {
        min-height: auto;
        display: flex;
        flex-direction: column;
    }
    .xh-hero__photo img { min-height: 280px; }
    .xh-steps__track {
        flex-direction: column;
        gap: 16px;
    }
    .xh-steps__item {
        flex: 1 1 auto;
    }
    .xh-products__grid,
    .xh-build__grid,
    .xh-industries__grid {
        grid-template-columns: 1fr;
    }
    .xh-services__layout {
        grid-template-columns: 1fr;
    }
    .xh-services__support--wide {
        grid-column: auto;
    }
    .xh-trust,
    .xh-why,
    .xh-services,
    .xh-engage,
    .xh-build,
    .xh-steps,
    .xh-products,
    .xh-industries,
    .xh-contact {
        padding: 56px 0;
    }
    .xh-contact__form-wrap .contact-form {
        padding: 28px 20px;
    }
}
