:root {
    --ec-hub-ink: #123b4a;
    --ec-hub-body: #26383d;
    --ec-hub-muted: #587078;
    --ec-hub-teal: #5ce1e6;
    --ec-hub-orange: #ff8a3d;
    --ec-hub-orange-hover: #ed7024;
    --ec-hub-aqua: #f3fafa;
    --ec-hub-aqua-strong: #dff8f8;
    --ec-hub-white: #fff;
    --ec-hub-line: #cfe2e2;
    --ec-hub-radius: 24px;
    --ec-hub-shadow: 0 18px 48px rgba(18, 59, 74, .13);
}

body.page-template-page-template-ec-hub,
body.page-template-page-template-ec-hub-php {
    background: var(--ec-hub-white) !important;
}

body.page-template-page-template-ec-hub #page,
body.page-template-page-template-ec-hub-php #page,
body.page-template-page-template-ec-hub #content > .ast-container,
body.page-template-page-template-ec-hub-php #content > .ast-container {
    max-width: none !important;
    width: 100% !important;
}

body.page-template-page-template-ec-hub #content > .ast-container,
body.page-template-page-template-ec-hub-php #content > .ast-container {
    display: block !important;
    padding: 0 !important;
}

.ec-site-header + .ec-hub,
.ec-hub {
    color: var(--ec-hub-body);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    line-height: 1.6;
    margin: 0 !important;
    overflow: hidden;
    width: 100%;
}

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

.ec-hub h1,
.ec-hub h2,
.ec-hub h3,
.ec-hub p {
    margin: 0;
}

.ec-hub h1,
.ec-hub h2,
.ec-hub h3 {
    color: var(--ec-hub-ink);
    font-family: Georgia, "Times New Roman", serif;
    line-height: 1.05;
}

.ec-hub h1 {
    font-size: clamp(2.45rem, 4vw, 4.15rem);
    letter-spacing: -.04em;
}

.ec-hub h2 {
    font-size: clamp(2rem, 3.5vw, 3.2rem);
    letter-spacing: -.03em;
}

.ec-hub h3 {
    font-size: clamp(1.4rem, 2vw, 1.85rem);
}

.ec-hub-wrap {
    margin-inline: auto;
    max-width: 1240px;
    padding-inline: 24px;
}

.ec-hub-kicker {
    color: var(--ec-hub-ink);
    font-size: .74rem;
    font-weight: 900;
    letter-spacing: .14em;
    margin-bottom: 12px !important;
    text-transform: uppercase;
}

.ec-hub-hero {
    background: var(--ec-hub-ink);
    color: var(--ec-hub-white);
    padding: 34px 0 38px;
}

.ec-hub-hero__grid {
    align-items: center;
    display: grid;
    gap: 46px;
    grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
}

.ec-hub-hero h1 {
    color: var(--ec-hub-white);
}

.ec-hub-hero .ec-hub-kicker {
    color: var(--ec-hub-teal);
}

.ec-hub-breadcrumb {
    align-items: center;
    color: var(--ec-hub-aqua-strong);
    display: flex;
    font-size: .78rem;
    gap: 8px;
    margin-bottom: 18px;
}

.ec-hub-breadcrumb a {
    color: var(--ec-hub-aqua-strong);
    text-decoration: none;
}

.ec-hub-breadcrumb a:hover,
.ec-hub-breadcrumb a:focus {
    color: var(--ec-hub-orange);
}

.ec-hub-hero__copy {
    color: var(--ec-hub-aqua-strong);
    font-size: 1.08rem;
    margin-top: 18px !important;
    max-width: 650px;
}

.ec-hub-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

.ec-hub-button {
    align-items: center;
    border: 2px solid transparent;
    border-radius: 999px;
    display: inline-flex;
    font-size: .88rem;
    font-weight: 900;
    justify-content: center;
    min-height: 50px;
    padding: 11px 23px;
    text-decoration: none;
    transition: background .2s, color .2s, transform .2s;
}

.ec-hub-button:hover,
.ec-hub-button:focus {
    transform: translateY(-2px);
}

.ec-hub-button--primary {
    background: var(--ec-hub-orange);
    color: var(--ec-hub-ink);
}

.ec-hub-button--primary:hover,
.ec-hub-button--primary:focus {
    background: var(--ec-hub-orange-hover);
    color: var(--ec-hub-white);
}

.ec-hub-button--ghost {
    border-color: var(--ec-hub-white);
    color: var(--ec-hub-white);
}

.ec-hub-button--ghost:hover,
.ec-hub-button--ghost:focus {
    background: var(--ec-hub-white);
    color: var(--ec-hub-ink);
}

.ec-hub-trust {
    border-top: 1px solid rgba(255, 255, 255, .22);
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    list-style: none;
    margin: 24px 0 0;
    padding: 18px 0 0;
}

.ec-hub-trust li {
    display: flex;
    flex-direction: column;
}

.ec-hub-trust strong {
    color: var(--ec-hub-white);
    font-size: .9rem;
}

.ec-hub-trust span {
    color: var(--ec-hub-aqua-strong);
    font-size: .72rem;
}

.ec-hub-hero__media {
    border-radius: var(--ec-hub-radius);
    box-shadow: var(--ec-hub-shadow);
    display: block;
    height: 460px;
    overflow: hidden;
}

.ec-hub-hero__media img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.ec-hub-section {
    padding: 76px 0;
}

.ec-hub-section--aqua {
    background: var(--ec-hub-aqua);
}

.ec-hub-section--white {
    background: var(--ec-hub-white);
}

.ec-hub-heading {
    align-items: end;
    display: flex;
    gap: 60px;
    justify-content: space-between;
}

.ec-hub-heading > div {
    max-width: 760px;
}

.ec-hub-heading > p {
    color: var(--ec-hub-muted);
    max-width: 390px;
}

.ec-hub-service-grid,
.ec-location-grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 38px;
}

.ec-hub-service-card,
.ec-location-card {
    background: var(--ec-hub-white);
    border: 1px solid var(--ec-hub-line);
    border-radius: var(--ec-hub-radius);
    box-shadow: 0 8px 24px rgba(18, 59, 74, .06);
    overflow: hidden;
}

.ec-hub-service-card {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    min-height: 250px;
}

.ec-hub-service-card picture,
.ec-location-card picture {
    background: var(--ec-hub-aqua-strong);
    display: block;
    overflow: hidden;
}

.ec-hub-service-card img,
.ec-location-card img {
    display: block;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
    width: 100%;
}

.ec-hub-service-card:hover img,
.ec-location-card:hover img {
    transform: scale(1.025);
}

.ec-hub-service-card > div {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    padding: 28px;
}

.ec-hub-service-card p,
.ec-location-card p {
    color: var(--ec-hub-muted);
    font-size: .92rem;
    margin-top: 11px !important;
}

.ec-hub-service-card a,
.ec-location-card span,
.ec-hub-text-link {
    color: var(--ec-hub-ink);
    font-size: .84rem;
    font-weight: 900;
    margin-top: auto;
    padding-top: 18px;
    text-decoration: none;
}

.ec-hub-service-card a:hover,
.ec-hub-service-card a:focus,
.ec-hub-text-link:hover,
.ec-hub-text-link:focus {
    color: var(--ec-hub-orange-hover);
}

.ec-location-card {
    color: inherit;
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    min-height: 280px;
    text-decoration: none;
    transition: border-color .2s, box-shadow .2s, transform .2s;
}

.ec-location-card:hover,
.ec-location-card:focus {
    border-color: var(--ec-hub-teal);
    box-shadow: var(--ec-hub-shadow);
    transform: translateY(-3px);
}

.ec-location-card > div {
    display: flex;
    flex-direction: column;
    padding: 28px;
}

.ec-location-card small {
    color: var(--ec-hub-muted);
    display: block;
    font-size: .73rem;
    font-weight: 700;
    margin-top: 14px;
}

.ec-hub-split {
    align-items: start;
    display: grid;
    gap: 80px;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
}

.ec-hub-split > div > p:not(.ec-hub-kicker) {
    color: var(--ec-hub-muted);
    font-size: 1.02rem;
    margin-top: 18px !important;
}

.ec-hub-steps {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ec-hub-steps li {
    border-bottom: 1px solid var(--ec-hub-line);
    display: grid;
    gap: 18px;
    grid-template-columns: 48px minmax(0, 1fr);
    padding: 18px 0;
}

.ec-hub-steps li:first-child {
    padding-top: 0;
}

.ec-hub-steps li > span {
    align-items: center;
    background: var(--ec-hub-teal);
    border-radius: 50%;
    color: var(--ec-hub-ink);
    display: flex;
    font-size: .72rem;
    font-weight: 900;
    height: 44px;
    justify-content: center;
    width: 44px;
}

.ec-hub-steps strong {
    color: var(--ec-hub-ink);
}

.ec-hub-steps p {
    color: var(--ec-hub-muted);
    font-size: .9rem;
    margin-top: 3px !important;
}

.ec-area-panel {
    background: var(--ec-hub-aqua);
    border-top: 6px solid var(--ec-hub-teal);
    border-radius: var(--ec-hub-radius);
    padding: 32px;
}

.ec-area-panel ul {
    list-style: none;
    margin: 22px 0 0;
    padding: 0;
}

.ec-area-panel li {
    border-bottom: 1px solid var(--ec-hub-line);
    color: var(--ec-hub-body);
    padding: 11px 0;
}

.ec-hub-actions--dark .ec-hub-text-link {
    padding: 0 5px;
}

.ec-hub-cta {
    background: var(--ec-hub-ink);
    color: var(--ec-hub-white);
    padding: 60px 0;
}

.ec-hub-cta__inner {
    align-items: center;
    display: grid;
    gap: 60px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.ec-hub-cta h2,
.ec-hub-cta p {
    color: var(--ec-hub-white);
}

.ec-hub-cta .ec-hub-kicker {
    color: var(--ec-hub-teal);
}

.ec-hub-cta p:not(.ec-hub-kicker) {
    color: var(--ec-hub-aqua-strong);
    margin-top: 12px !important;
}

.ec-hub-cta .ec-hub-actions {
    margin-top: 0;
}

@media (max-width: 960px) {
    .ec-hub-hero__grid,
    .ec-hub-split {
        gap: 42px;
        grid-template-columns: 1fr;
    }

    .ec-hub-hero__media {
        height: 430px;
    }

    .ec-hub-heading {
        align-items: start;
        flex-direction: column;
        gap: 14px;
    }

    .ec-hub-service-card,
    .ec-location-card {
        grid-template-columns: 170px minmax(0, 1fr);
    }

    .ec-hub-cta__inner {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .ec-hub-wrap {
        padding-inline: 18px;
    }

    .ec-hub h1 {
        font-size: clamp(2.2rem, 10vw, 3rem);
    }

    .ec-hub h2 {
        font-size: clamp(1.85rem, 8vw, 2.55rem);
    }

    .ec-hub-hero {
        padding: 24px 0 30px;
    }

    .ec-hub-hero__media {
        height: 340px;
    }

    .ec-hub-trust {
        gap: 10px;
    }

    .ec-hub-trust strong {
        font-size: .78rem;
    }

    .ec-hub-trust span {
        font-size: .65rem;
    }

    .ec-hub-section {
        padding: 56px 0;
    }

    .ec-hub-service-grid,
    .ec-location-grid {
        grid-template-columns: 1fr;
    }

    .ec-hub-service-card,
    .ec-location-card {
        grid-template-columns: 1fr;
    }

    .ec-hub-service-card picture,
    .ec-location-card picture {
        height: 230px;
    }

    .ec-hub-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .ec-hub-cta .ec-hub-actions {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ec-hub-button,
    .ec-location-card,
    .ec-hub-service-card img,
    .ec-location-card img {
        transition: none;
    }
}

/* Distinct, page-specific media and compact proof-of-work video. */
.ec-hub-hero__media--contain{aspect-ratio:4/3;background:var(--ec-hub-ink);height:auto}
.ec-hub-hero__media--contain img{object-fit:contain}
.ec-hub-service-graphic{align-items:center;background:var(--ec-hub-ink);color:var(--ec-hub-white);display:flex;flex-direction:column;gap:14px;justify-content:center;min-height:250px;padding:24px;text-align:center}
.ec-hub-service-graphic svg{fill:none;height:86px;stroke:var(--ec-hub-teal);stroke-linecap:round;stroke-linejoin:round;stroke-width:4;width:86px}
.ec-hub-service-graphic b{font-family:Georgia,"Times New Roman",serif;font-size:1.15rem;line-height:1.15}
.ec-hub-split--video{align-items:center;gap:42px;grid-template-columns:minmax(0,.8fr) minmax(220px,.55fr) minmax(0,1fr)}
.ec-hub-process-media{background:var(--ec-hub-ink);border:4px solid var(--ec-hub-white);border-radius:22px;box-shadow:var(--ec-hub-shadow);margin:0;overflow:hidden}
.ec-hub-process-media video{aspect-ratio:9/16;background:var(--ec-hub-ink);display:block;max-height:430px;object-fit:contain;width:100%}
.ec-hub-process-media figcaption{color:var(--ec-hub-aqua-strong);font-size:.7rem;font-weight:800;letter-spacing:.04em;padding:10px 12px;text-align:center;text-transform:uppercase}
@media (max-width:960px){.ec-hub-split--video{grid-template-columns:1fr}.ec-hub-process-media{justify-self:center;max-width:360px;width:100%}}
@media (max-width:720px){.ec-hub-hero__media--contain{height:auto}.ec-hub-service-graphic{min-height:230px}.ec-hub-process-media video{max-height:390px}}
