/* ==========================================================
   CoregenX header — desktop nav + mega menus, mobile/tablet drawer
   (moved out of index.html inline <style>)
   ========================================================== */

/* ─── Icons (SVG sprite, referenced with <use>) ─── */
.cx-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

.cx-ico {
    display: block;
    width: 1em;
    height: 1em;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cx-ico--medium {
    stroke-width: 2;
}

.cx-ico--bold {
    stroke-width: 2.2;
}

.cx-ico--menu {
    stroke-width: 2.4;
}

.cx-ico--fill {
    fill: currentColor;
    stroke: none;
}

/* ─── Type scale ───
   One font and one set of sizes shared by the desktop nav, the dropdown
   panels, the action buttons and the mobile drawer. Sizes step down at the
   breakpoints below; every text rule in this file reads these variables. */
.cx-header {
    --cx-font: 'Jost', sans-serif;
    --cx-fs-nav: 16px;
    /* top-level menu links (desktop + mobile rows) */
    --cx-fs-head-title: 22px;
    /* dropdown header card title */
    --cx-fs-head-desc: 15px;
    /* dropdown header card text */
    --cx-fs-item-title: 17px;
    /* service link title */
    --cx-fs-item-desc: 14.5px;
    /* service link description */
    --cx-fs-action: 14px;
    /* "WhatsApp" / "Email Us", quick-contact tiles */
    --cx-fs-action-sub: 13px;
    /* "Chat with us", email address */
    --cx-fs-cta: 15px;
    /* Get a Quote buttons */
    --cx-fs-cta-lg: 17px;
    /* Get a Quote at the bottom of the drawer */
    font-family: var(--cx-font);
}

.cx-header a,
.cx-header button {
    font-family: var(--cx-font);
}

/* Some page stylesheets style bare elements (css/blog.css makes every <span>
   bold). This zero-specificity reset keeps header text at the weights set by
   the class rules in this file, which still win over it. */
:where(.cx-header) span {
    font-weight: inherit;
}

@media (max-width: 1440px) {
    .cx-header {
        --cx-fs-nav: 15px;
        --cx-fs-head-title: 19px;
        --cx-fs-head-desc: 14px;
        --cx-fs-item-title: 16px;
        --cx-fs-item-desc: 12.5px;
        --cx-fs-action: 13px;
        --cx-fs-action-sub: 12.5px;
        --cx-fs-cta: 14px;
    }
}

@media (max-width: 1320px) {
    .cx-header {
        --cx-fs-head-title: 18px;
        --cx-fs-head-desc: 11.5px;
        --cx-fs-item-title: 15.5px;
    }
}

/* Mobile + tablet drawer: same family and weights, sized for touch */
@media (max-width: 1199px) {
    .cx-header {
        --cx-fs-nav: 16px;
        --cx-fs-head-title: 17px;
        --cx-fs-head-desc: 13.5px;
        --cx-fs-item-title: 15.5px;
        --cx-fs-item-desc: 13.5px;
        --cx-fs-action: 14px;
        --cx-fs-action-sub: 12px;
        --cx-fs-cta: 14px;
        --cx-fs-cta-lg: 16px;
    }
}

@media (max-width: 359px) {
    .cx-header {
        --cx-fs-action: 13px;
    }
}

/* ─── Header bar ─── */
.cx-header {
    padding: 14px 44px;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1000;
    box-shadow: 0 2px 16px rgba(0, 0, 0, .06);
}

.cx-header .cx-header__inner {
    display: flex;
    align-items: center;
    gap: 0;
}

/* Logo */
.cx-header .cx-header__logo {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    margin-right: 32px;
}

.cx-header .cx-header__logo img {
    height: 64px;
    max-height: 64px;
    width: auto;
    display: block;
    object-fit: contain;
}

/* Nav – sits towards the right, near the CTA buttons */
.cx-header .cx-header__nav {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    margin: 0 28px 0 auto;
    flex: 1 1 auto;
}

.cx-header .cx-header__nav>ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.cx-header .cx-header__nav>ul>li {
    margin: 0;
    padding: 0;
    position: relative;
}

.cx-header .cx-header__nav>ul>li>a {
    position: relative;
    display: block;
    font-size: var(--cx-fs-nav);
    font-weight: 500;
    color: #343c55;
    padding: 6px 14px;
    border-radius: 6px;
    transition: background .2s, color .2s;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

.cx-header .cx-header__nav>ul>li>a:hover,
.cx-header .cx-header__nav>ul>li.active>a {
    color: #f9758f;
    background: rgba(249, 117, 143, .06);
}

/* ─── Desktop mega menus (Who We Are, Solutions, Expertise) ─── */
.cx-header .cx-header__inner {
    position: relative;
}

/* The panel is positioned against the header row, not the <li> */
.cx-header .cx-header__nav>ul>li.cx-has-mega {
    position: static;
}

.cx-header .cx-header__nav>ul>li.cx-has-mega>a.cx-mega-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border-radius: 8px;
}

/* Invisible bridge so the pointer can travel from the link to the panel */
.cx-header .cx-mega-trigger::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 32px;
}

.cx-mega-trigger__chevron {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    stroke-width: 2.5;
    transition: transform .25s ease;
}

.cx-header .cx-header__nav>ul>li.cx-has-mega.is-open>a.cx-mega-trigger {
    color: #13a58c;
    background: #e8f7f3;
}

.cx-header .cx-has-mega.is-open .cx-mega-trigger__chevron {
    transform: rotate(180deg);
}

.cx-header .cx-mega {
    --cx-caret-x: 30%;
    position: absolute;
    top: 100%;
    left: 50%;
    width: min(1640px, calc(100vw - 64px));
    padding-top: 14px;
    font-family: var(--cx-font);
    line-height: 1.4;
    text-align: left;
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 10px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s;
    z-index: 1001;
}

.cx-header .cx-has-mega.is-open .cx-mega {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

.cx-mega__panel {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: auto 1fr;
    padding: 32px;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 30px 80px rgba(15, 26, 60, .18), 0 2px 8px rgba(15, 26, 60, .06);
    max-height: calc(100vh - 130px);
    overflow-y: auto;
}

/* Caret pointing at the menu link */
.cx-header .cx-mega::before {
    content: '';
    position: absolute;
    top: 6px;
    left: var(--cx-caret-x);
    width: 18px;
    height: 18px;
    background: #fff;
    border-radius: 3px 0 0 0;
    transform: translateX(-50%) rotate(45deg);
    z-index: 1;
}

/* Columns with vertical dividers */
.cx-mega__col {
    min-width: 0;
    padding: 0 26px;
    /* share row heights so all three header cards line up */
    display: grid;
    grid-row: span 2;
    grid-template-rows: subgrid;
    align-content: start;
}

.cx-mega__col:first-child {
    padding-left: 0;
}

.cx-mega__col:last-child {
    padding-right: 0;
}

.cx-mega__col+.cx-mega__col {
    border-left: 1px solid #e6e9ef;
}

/* Accent colours (shared by the desktop panels and the mobile drawer) */
.cx-accent--tech {
    --cx-accent: #2f6fe4;
    --cx-accent-bg: linear-gradient(135deg, #eaf2ff 0%, #f4f8ff 100%);
    --cx-accent-soft: #f3f7ff;
}

.cx-accent--marketing {
    --cx-accent: #13a58c;
    --cx-accent-bg: linear-gradient(135deg, #e3f6f0 0%, #f0faf7 100%);
    --cx-accent-soft: #f0faf7;
}

.cx-accent--consulting {
    --cx-accent: #f28a26;
    --cx-accent-bg: linear-gradient(135deg, #fff2e6 0%, #fff8f1 100%);
    --cx-accent-soft: #fff8f1;
}

.cx-accent--about {
    --cx-accent: #f9758f;
    --cx-accent-bg: linear-gradient(135deg, #ffecf0 0%, #fff6f8 100%);
    --cx-accent-soft: #fff6f8;
}

.cx-accent--expertise {
    --cx-accent: #7c5ce6;
    --cx-accent-bg: linear-gradient(135deg, #f0ecff 0%, #f8f6ff 100%);
    --cx-accent-soft: #f8f6ff;
}

/* Compact single-column panel, centred under its own link (set by JS) */
.cx-header .cx-mega.cx-mega--compact {
    left: var(--cx-anchor-x, 50%);
    width: 520px;
    max-width: calc(100vw - 32px);
}

.cx-mega--compact .cx-mega__panel {
    grid-template-columns: minmax(0, 1fr);
    padding: 24px;
}

/* Column header card */
.cx-mega__head {
    display: flex;
    align-items: center;
    gap: 26px;
    padding: 26px 28px;
    margin-bottom: 22px;
    border-radius: 14px;
    background: var(--cx-accent-bg);
}

.cx-mega__head-icon {
    flex: 0 0 auto;
    display: flex;
    color: var(--cx-accent);
}

.cx-mega__head-icon svg {
    width: 60px;
    height: 60px;
}

.cx-mega__head-text {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.cx-mega__head-title {
    font-size: var(--cx-fs-head-title);
    font-weight: 600;
    line-height: 1.2;
    color: #0f1a3c;
}

.cx-mega__head-desc {
    font-size: var(--cx-fs-head-desc);
    line-height: 1.5;
    color: #4b5470;
}

/* Service links */
.cx-mega__list {
    border-top: 1px solid #e6e9ef;
}

.cx-header .cx-mega__item {
    display: flex;
    align-items: center;
    gap: 24px;
    margin: 0;
    padding: 22px 14px 22px 12px;
    font-size: inherit;
    line-height: inherit;
    color: #0f1a3c;
    text-decoration: none;
    border-bottom: 1px solid #e6e9ef;
    border-radius: 0;
    transition: background .2s ease;
}

.cx-header .cx-mega__item:last-child {
    border-bottom: 0;
}

.cx-header .cx-mega__item:hover,
.cx-header .cx-mega__item:focus-visible {
    background: var(--cx-accent-soft);
    outline: none;
}

.cx-mega__item-icon {
    flex: 0 0 44px;
    display: flex;
    justify-content: center;
    color: #1f2a44;
    transition: color .2s ease;
}

.cx-mega__item-icon svg {
    width: 38px;
    height: 38px;
}

.cx-mega__item-text {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.cx-mega__item-title {
    font-size: var(--cx-fs-item-title);
    font-weight: 600;
    line-height: 1.3;
    color: #0f1a3c;
    transition: color .2s ease;
}

.cx-mega__item-desc {
    font-size: var(--cx-fs-item-desc);
    line-height: 1.5;
    color: #5a6178;
}

.cx-mega__item-arrow {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    color: #1f2a44;
    transition: transform .2s ease, color .2s ease;
}

.cx-header .cx-mega__item:hover .cx-mega__item-title,
.cx-header .cx-mega__item:hover .cx-mega__item-icon,
.cx-header .cx-mega__item:hover .cx-mega__item-arrow {
    color: var(--cx-accent);
}

.cx-header .cx-mega__item:hover .cx-mega__item-arrow {
    transform: translateX(4px);
}

/* Dimmed, blurred page behind the open mega menu */
.cx-mega-backdrop {
    position: fixed;
    inset: 0;
    z-index: 998;
    background: rgba(15, 23, 42, .35);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s;
}

.cx-mega-backdrop.is-visible {
    opacity: 1;
    visibility: visible;
}

/* ─── Current page (aria-current / .has-current are set by js/cx-site.js) ─── */
.cx-header .cx-header__nav>ul>li>a[aria-current="page"],
.cx-header .cx-header__nav>ul>li.has-current>a.cx-mega-trigger {
    color: #13a58c;
}

.cx-header .cx-mega__item[aria-current="page"] {
    background: var(--cx-accent-soft);
}

.cx-header .cx-mega__item[aria-current="page"] .cx-mega__item-title,
.cx-header .cx-mega__item[aria-current="page"] .cx-mega__item-icon {
    color: var(--cx-accent);
}

/* ─── Desktop Action Buttons (compact) ─── */
.cx-header__actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
    margin-left: 0;
}

.cx-header__action-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    padding: 6px 8px;
    border-radius: 8px;
    transition: background .2s;
}

.cx-header__action-btn:hover {
    background: #f5f7fa;
}

.cx-header__action-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.cx-header__action-icon svg {
    width: 18px;
    height: 18px;
}

.cx-header__action-icon--wa {
    background: rgba(37, 211, 102, .1);
    color: #25D366;
}

.cx-header__action-icon--email {
    background: #eef2f7;
    color: #343c55;
}

.cx-header__action-text {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
    white-space: nowrap;
}

.cx-header__action-text strong {
    font-size: var(--cx-fs-action);
    font-weight: 600;
    color: #343c55;
}

.cx-header__action-text small {
    font-size: var(--cx-fs-action-sub);
    color: #7a8096;
    font-weight: 400;
}

#header-email .cx-header__action-text strong {
    font-size: 14px;
    font-weight: 600;
    color: #1e2538;
}

#header-email .cx-header__action-text small {
    font-size: 13.5px;
    font-weight: 500;
    color: #333c52;
    letter-spacing: -0.01em;
}

/* CTA Button */
.cx-header__cta {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 18px;
    background: linear-gradient(135deg, #2ec4a5 0%, #38c9a9 100%);
    color: #fff;
    font-size: var(--cx-fs-cta);
    font-weight: 600;
    border-radius: 50px;
    text-decoration: none;
    white-space: nowrap;
    transition: transform .2s, box-shadow .2s;
    box-shadow: 0 4px 14px rgba(46, 196, 165, .25);
}

.cx-header__cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(46, 196, 165, .35);
    color: #fff;
}

.cx-header__cta span {
    font-size: 15px;
    line-height: 1;
}

/* ─── Mobile / tablet header bar (quote + WhatsApp + menu) ─── */
.cx-header__mobile-btns {
    display: none;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.cx-header__mobile-cta {
    display: none;
    align-items: center;
    height: 42px;
    padding: 0 18px;
    border-radius: 50px;
    background: linear-gradient(135deg, #2ec4a5 0%, #38c9a9 100%);
    box-shadow: 0 4px 14px rgba(46, 196, 165, .25);
    font-family: var(--cx-font);
    font-size: var(--cx-fs-cta);
    font-weight: 600;
    line-height: 1;
    color: #fff;
    text-decoration: none;
    white-space: nowrap;
}

.cx-header__mobile-cta:hover,
.cx-header__mobile-cta:focus {
    color: #fff;
}

.cx-header__mobile-wa {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(37, 211, 102, .12);
    color: #25D366;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: transform .2s;
}

.cx-header__mobile-wa svg {
    width: 22px;
    height: 22px;
}

.cx-header__mobile-wa:hover {
    color: #25D366;
    transform: scale(1.05);
}

.cx-header__hamburger {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #f1f4f8;
    color: #0f1a3c;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s, color .2s;
    -webkit-tap-highlight-color: transparent;
}

.cx-header__hamburger svg {
    width: 22px;
    height: 22px;
}

.cx-header__hamburger:hover {
    background: #e6eaf0;
}

.cx-header__hamburger.active {
    background: #13a58c;
    color: #fff;
}

.cx-header__hamburger:focus-visible,
.cx-header__mobile-wa:focus-visible,
.cx-header__mobile-cta:focus-visible {
    outline: 2px solid #13a58c;
    outline-offset: 2px;
}

.cx-hamburger__close {
    display: none;
}

.cx-header__hamburger.active .cx-hamburger__open {
    display: none;
}

.cx-header__hamburger.active .cx-hamburger__close {
    display: block;
}

/* ─── Mobile / tablet drawer ─── */
.cx-mobile-drawer {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 999;
    background: #fff;
    border-top: 1px solid #eef0f4;
    border-radius: 0 0 20px 20px;
    box-shadow: 0 24px 48px rgba(15, 26, 60, .16);
    max-height: calc(100vh - 72px);
    max-height: calc(100dvh - 72px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    font-family: var(--cx-font);
    text-align: left;
}

.cx-mobile-drawer.open {
    display: block;
    animation: cxDrawerSlide .3s ease;
}

@keyframes cxDrawerSlide {
    from {
        opacity: 0;
        transform: translateY(-12px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Page behind the open drawer can't scroll (class set by JS).
   Only <html> is locked: also locking <body> turns it into a scroll
   container, which breaks the sticky header once the page is scrolled. */
html.cx-menu-open {
    overflow: hidden;
}

/* Floating WhatsApp / back-to-top buttons would cover the drawer's buttons */
html.cx-menu-open #whatsappButton,
html.cx-menu-open #backtotop {
    display: none !important;
}

/* Top-level rows */
.cx-mnav__list {
    list-style: none;
    margin: 0;
    padding: 8px 14px 4px;
}

.cx-mnav__row {
    list-style: none;
    margin: 0;
    padding: 0;
    border-bottom: 1px solid #eef0f4;
}

.cx-mnav__row:last-child {
    border-bottom: 0;
}

.cx-mnav__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 56px;
    margin: 4px 0;
    padding: 0 14px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    font-family: inherit;
    font-size: var(--cx-fs-nav);
    font-weight: 500;
    line-height: 1.2;
    color: #0f1a3c;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: background .2s, color .2s;
    -webkit-tap-highlight-color: transparent;
}

.cx-mnav__link:hover,
.cx-mnav__link:focus-visible {
    background: #f5f7fa;
    color: #0f1a3c;
    outline: none;
}

.cx-has-submenu.open>.cx-mnav__toggle {
    background: #e8f7f3;
    color: #13a58c;
}

.cx-mnav__chevron {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    color: #7a8096;
    transition: transform .25s ease, color .2s;
}

.cx-has-submenu.open .cx-mnav__chevron {
    transform: rotate(180deg);
    color: #13a58c;
}

/* Accordion panel (animates its height open/closed) */
.cx-submenu {
    display: grid;
    grid-template-rows: 0fr;
    visibility: hidden;
    transition: grid-template-rows .3s ease, visibility .3s;
}

.cx-has-submenu.open>.cx-submenu {
    grid-template-rows: 1fr;
    visibility: visible;
}

.cx-submenu__inner {
    min-height: 0;
    overflow: hidden;
}

/* Groups inside a section — same header cards as the desktop panels */
.cx-msub__group {
    padding: 4px 0 10px;
}

.cx-msub__group+.cx-msub__group {
    padding-top: 8px;
}

.cx-msub__head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    margin-bottom: 4px;
    border-radius: 14px;
    background: var(--cx-accent-bg);
}

.cx-msub__head-icon {
    flex: 0 0 auto;
    display: flex;
    color: var(--cx-accent);
}

.cx-msub__head-icon svg {
    width: 34px;
    height: 34px;
}

.cx-msub__head-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.cx-msub__head-title {
    font-size: var(--cx-fs-head-title);
    font-weight: 600;
    line-height: 1.25;
    color: #0f1a3c;
}

.cx-msub__head-desc {
    font-size: var(--cx-fs-head-desc);
    line-height: 1.45;
    color: #4b5470;
}

/* Service links */
.cx-msub__item {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 64px;
    padding: 12px 10px 12px 12px;
    border-bottom: 1px solid #f0f2f5;
    border-radius: 0;
    color: #0f1a3c;
    text-decoration: none;
    transition: background .2s;
    -webkit-tap-highlight-color: transparent;
}

.cx-msub__item:last-child {
    border-bottom: 0;
}

.cx-msub__item:hover,
.cx-msub__item:active,
.cx-msub__item:focus-visible {
    background: var(--cx-accent-soft);
    color: #0f1a3c;
    outline: none;
}

.cx-msub__item-icon {
    flex: 0 0 32px;
    display: flex;
    justify-content: center;
    color: #1f2a44;
    transition: color .2s;
}

.cx-msub__item-icon svg {
    width: 26px;
    height: 26px;
}

.cx-msub__item-text {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.cx-msub__item-title {
    font-size: var(--cx-fs-item-title);
    font-weight: 600;
    line-height: 1.3;
    color: #0f1a3c;
    transition: color .2s;
}

.cx-msub__item-desc {
    font-size: var(--cx-fs-item-desc);
    line-height: 1.45;
    color: #5a6178;
}

.cx-msub__item-arrow {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    color: #9aa1b5;
    transition: color .2s, transform .2s;
}

.cx-msub__item:hover .cx-msub__item-icon,
.cx-msub__item:hover .cx-msub__item-title,
.cx-msub__item:hover .cx-msub__item-arrow,
.cx-msub__item:active .cx-msub__item-icon,
.cx-msub__item:active .cx-msub__item-title,
.cx-msub__item:active .cx-msub__item-arrow {
    color: var(--cx-accent);
}

.cx-msub__item:hover .cx-msub__item-arrow {
    transform: translateX(3px);
}

/* Current page inside the drawer */
.cx-mnav__row>.cx-mnav__link[aria-current="page"],
.cx-has-submenu.has-current>.cx-mnav__toggle {
    color: #13a58c;
}

.cx-msub__item[aria-current="page"] {
    background: var(--cx-accent-soft);
}

.cx-msub__item[aria-current="page"] .cx-msub__item-title,
.cx-msub__item[aria-current="page"] .cx-msub__item-icon {
    color: var(--cx-accent);
}

/* Quick contact tiles */
.cx-mdrawer__contact {
    margin-top: 4px;
    padding: 16px 20px 4px;
    border-top: 1px solid #eef0f4;
}

.cx-mdrawer__label {
    margin: 0 0 10px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #7a8096;
}

.cx-mdrawer__quick {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.cx-quick {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 84px;
    padding: 12px 6px;
    border-radius: 14px;
    background: #f5f7fa;
    font-size: var(--cx-fs-action);
    font-weight: 600;
    line-height: 1.2;
    color: #0f1a3c;
    text-decoration: none;
    transition: background .2s, transform .2s;
    -webkit-tap-highlight-color: transparent;
}

.cx-quick:hover,
.cx-quick:focus-visible {
    background: #eef1f6;
    color: #0f1a3c;
    outline: none;
}

.cx-quick:active {
    transform: scale(.97);
}

.cx-quick__icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
}

.cx-quick__icon svg {
    width: 20px;
    height: 20px;
}

.cx-quick--call .cx-quick__icon {
    background: #e3f6f0;
    color: #13a58c;
}

.cx-quick--wa .cx-quick__icon {
    background: rgba(37, 211, 102, .12);
    color: #25D366;
}

.cx-quick--mail .cx-quick__icon {
    background: #e9edf3;
    color: #343c55;
}

/* Get a Quote — pinned to the bottom of the drawer while scrolling */
.cx-mobile-drawer__cta-wrap {
    position: sticky;
    bottom: 0;
    z-index: 1;
    padding: 16px 20px 18px;
    padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px));
    background: linear-gradient(to top, #fff 72%, rgba(255, 255, 255, 0));
}

.cx-mobile-drawer__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 16px 28px;
    background: linear-gradient(135deg, #2ec4a5 0%, #38c9a9 100%);
    color: #fff;
    font-size: var(--cx-fs-cta-lg);
    font-weight: 600;
    border-radius: 50px;
    text-decoration: none;
    box-shadow: 0 6px 24px rgba(46, 196, 165, .3);
    transition: transform .2s, box-shadow .2s;
}

.cx-mobile-drawer__cta:hover,
.cx-mobile-drawer__cta:focus {
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(46, 196, 165, .4);
    color: #fff;
}

.cx-mobile-drawer__cta span {
    font-size: 20px;
    line-height: 1;
}

/* Dimmed page behind the drawer (sits below the header, so the header stays sharp) */
.cx-mobile-overlay {
    position: fixed;
    inset: 0;
    z-index: 998;
    background: rgba(15, 23, 42, .4);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s;
    /* dragging on the dimmed area must not scroll the page underneath */
    touch-action: none;
}

.cx-mobile-overlay.open {
    opacity: 1;
    visibility: visible;
}

/* ─── Responsive ─── */
@media (max-width: 1440px) {
    .cx-header .cx-header__nav>ul {
        gap: 0;
    }

    .cx-header .cx-header__nav>ul>li>a {
        padding: 5px 10px;
    }

    .cx-header__actions {
        gap: 6px;
    }

    .cx-header__action-btn {
        padding: 5px 6px;
        gap: 6px;
    }

    .cx-header__action-icon {
        width: 32px;
        height: 32px;
    }

    .cx-header__cta {
        padding: 8px 18px;
    }

    .cx-header .cx-header__logo img {
        height: 54px;
    }

    .cx-header .cx-header__nav>ul>li.cx-has-mega>a.cx-mega-trigger {
        padding: 8px 14px;
    }

    .cx-header .cx-mega {
        width: calc(100vw - 40px);
    }

    .cx-header .cx-mega.cx-mega--compact {
        width: 420px;
    }

    .cx-mega__panel {
        padding: 24px;
        border-radius: 16px;
    }

    .cx-mega--compact .cx-mega__panel {
        padding: 20px;
    }

    .cx-mega__col {
        padding: 0 18px;
    }

    .cx-mega__head {
        gap: 18px;
        padding: 18px 20px;
        margin-bottom: 14px;
    }

    .cx-mega__head-icon svg {
        width: 46px;
        height: 46px;
    }

    .cx-header .cx-mega__item {
        gap: 16px;
        padding: 15px 10px 15px 8px;
    }

    .cx-mega__item-icon {
        flex-basis: 34px;
    }

    .cx-mega__item-icon svg {
        width: 30px;
        height: 30px;
    }

    .cx-mega__item-arrow {
        flex-basis: 18px;
        width: 18px;
        height: 18px;
    }
}

@media (max-width: 1320px) {
    .cx-header .cx-mega {
        width: calc(100vw - 24px);
    }

    .cx-mega__panel {
        padding: 20px;
    }

    .cx-mega__col {
        padding: 0 14px;
    }

    .cx-mega__head {
        gap: 14px;
        padding: 16px;
    }

    .cx-mega__head-icon svg {
        width: 40px;
        height: 40px;
    }

    .cx-header .cx-mega__item {
        gap: 12px;
        padding: 13px 8px 13px 6px;
    }
}

/* Small desktops / laptops at 100% zoom (1200–1320px): tighter spacing so the
   full WhatsApp and Email labels still fit next to the nav */
@media (min-width: 1200px) and (max-width: 1320px) {
    .cx-header {
        padding-left: 32px;
        padding-right: 32px;
    }

    .cx-header .cx-header__logo {
        margin-right: 18px;
    }

    .cx-header .cx-header__logo img {
        height: 52px;
    }

    .cx-header .cx-header__nav {
        margin-right: 14px;
    }

    #header-email .cx-header__action-text small {
        font-size: 12px;
    }

    .cx-header .cx-header__nav>ul>li>a {
        padding: 5px 9px;
    }

    .cx-header .cx-header__nav>ul>li.cx-has-mega>a.cx-mega-trigger {
        gap: 4px;
        padding: 8px 10px;
    }

    .cx-header__actions {
        gap: 4px;
        margin-left: 0;
    }

    .cx-header__action-btn {
        padding: 4px 6px 4px 4px;
    }

    .cx-header__cta {
        padding: 8px 16px;
    }
}

/* Mobile + tablet: desktop nav hidden, drawer takes over */
@media (max-width: 1199px) {

    .cx-header .cx-header__nav,
    .cx-header__actions,
    .cx-mega-backdrop {
        display: none;
    }

    .cx-header__mobile-btns {
        display: flex;
    }

    .cx-header {
        padding: 0 28px;
    }

    .cx-header .cx-header__inner {
        min-height: 72px;
    }

    .cx-header .cx-header__logo {
        margin-right: 12px;
    }

    .cx-header .cx-header__logo img {
        height: 44px;
    }
}

/* Large phones and up: show the quote button in the header bar */
@media (min-width: 576px) and (max-width: 1199px) {
    .cx-header__mobile-cta {
        display: inline-flex;
    }
}

/* Tablets: drawer becomes a floating card, like the desktop panels */
@media (min-width: 768px) and (max-width: 1199px) {
    .cx-mobile-drawer {
        top: calc(100% + 10px);
        left: auto;
        right: 16px;
        width: 520px;
        border-top: 0;
        border-radius: 20px;
        box-shadow: 0 30px 80px rgba(15, 26, 60, .18), 0 2px 8px rgba(15, 26, 60, .06);
        max-height: calc(100vh - 100px);
        max-height: calc(100dvh - 100px);
    }
}

/* Desktop: never show the drawer or its overlay */
@media (min-width: 1200px) {

    .cx-mobile-drawer,
    .cx-mobile-overlay {
        display: none !important;
    }
}

/* Phones */
@media (max-width: 575px) {
    .cx-header {
        padding: 0 24px;
    }

    .cx-header .cx-header__inner {
        min-height: 64px;
    }

    .cx-header .cx-header__logo img {
        height: 38px;
    }

    .cx-mobile-drawer {
        max-height: calc(100vh - 64px);
        max-height: calc(100dvh - 64px);
    }

    .cx-mnav__list {
        padding: 6px 10px 4px;
    }

    .cx-mnav__link {
        padding: 0 12px;
    }

    .cx-mdrawer__contact {
        padding: 14px 14px 4px;
    }

    .cx-mobile-drawer__cta-wrap {
        padding-left: 14px;
        padding-right: 14px;
    }
}

/* Very small phones */
@media (max-width: 359px) {
    .cx-header__mobile-btns {
        gap: 6px;
    }

    .cx-header__mobile-wa,
    .cx-header__hamburger {
        width: 40px;
        height: 40px;
    }

    .cx-quick {
        min-height: 76px;
    }
}