/* ============================================================
   IDP AMERICAS | MEGA MENU
   Shared layout and Card Printers styling
   ============================================================ */

/* 1. BASE LAYOUT */
.idp-mega-menu {
    width: 100%;
    background: #fff;
}

.idp-mega-menu__main {
    display: grid;
    grid-template-columns: 25% 30% 45%;
    min-height: 520px;
}

.idp-mega-menu__intro,
.idp-mega-menu__categories,
.idp-mega-menu__panels {
    padding: 25px;
    min-width: 0;
}

.idp-mega-menu__intro,
.idp-mega-menu__categories {
    border-right: 1px solid #BCDCFF;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) {
    font-family: 'Familjen Grotesk', sans-serif;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) h3,
:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) p,
:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) a,
:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) button,
:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) span {
    font-family: inherit;
}

/* 2. INTRO COLUMN */
:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__intro h3 {
    margin: 0 0 25px;
    color: #2E3E7F;
    font-size: 30px;
    font-weight: 600;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__intro p {
    margin: 0 0 30px;
    color: #111;
    font-size: 20px;
    line-height: 1.3;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__intro-button {
    display: inline-block;
    padding: 12px 25px;
    background: #0F152D;
    color: #fff;
    border-radius: 30px;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 500;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__intro-button:hover {
    background: #323850;
    color: #fff;
}

/* 3. PARENT CATEGORIES */
.idp-mega-menu__categories {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__category {
    display: block;
    width: 100%;
    padding: 25px;
    background: #F2F7FA;
    border: 0;
    border-radius: 8px;
    color: #111;
    text-align: left;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.3;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__category:hover,
:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__category.is-active {
    background: #2E3E7F;
    color: #fff;
}

/* 4. SUB-NAVIGATION GRID AND LINKS */
:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    align-content: start;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__panel[hidden] {
    display: none;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__subitem {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 80px;
    padding: 20px 42px 20px 25px;
    background: #F2F7FA;
    border-radius: 8px;
    color: #111;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
    transition: background-color 0.2s ease;
    border: 2px solid #F2F7FA;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__subitem:hover,
:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__subitem:focus-visible {
    background: #bfc5d500;
    color: #2E3E7F;
    border: 2px solid #2E3E7F;
}

/* 5. SUB-NAVIGATION HOVER ARROW */
:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__subitem::after {
    content: '';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    background-image: url('/wp-content/themes/oceanwp-child-theme-master/assets/images/mega-menu-arrow.svg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: 0;
    transition: opacity 0.2s ease;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__subitem:hover::after,
:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__subitem:focus-visible::after {
    opacity: 1;
}

/* 6. RELATED TECHNOLOGY */
:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 30px 40px;
    background: #2E3E7F;
    color: #fff;
    font-family: 'Open Sans', sans-serif;
    font-size: 16px;
    font-weight: 400;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related-heading {
    flex: 0 0 22%;
    color: #fff !important;
    font-family: 'Open Sans', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    color: #fff !important;
    font-family: 'Open Sans', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related-links a {
    color: #fff !important;
    font-family: 'Open Sans', sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    text-decoration: none;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related-links a:hover {
    color: #eeeeee !important;
}

:is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related-links a:not(:last-child)::after {
    content: '|';
    color: #fff;
    margin: 0 16px;
}

/* 7. FLUID RELATED LINKS: 1025px–1293px */
@media (min-width: 1025px) and (max-width: 1293px) {
    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related-links a {
        font-size: clamp(10px, calc(10px + 5 * (100vw - 1025px) / 268), 15px) !important;
    }

    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related-links a:not(:last-child)::after {
        margin: 0 15px;
    }
}

/* 8. TABLET: 768px–1024px */
@media (min-width: 768px) and (max-width: 1024px) {
    /* Columns and spacing */
    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__main {
        grid-template-columns: 28% 28% 44%;
    }

    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__intro,
    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__categories,
    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__panels {
        padding: clamp(12px, 1.953vw, 20px);
    }

    /* Intro */
    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__intro h3 {
        font-size: clamp(22px, 2.734vw, 28px);
    }

    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__intro p {
        font-size: clamp(14px, 1.758vw, 18px);
        line-height: 1.5;
    }

    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__intro-button {
        font-size: 13px;
    }

    /* Parent categories */
    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__category {
        min-height: clamp(54px, 7.031vw, 72px);
        padding: clamp(12px, 1.563vw, 16px);
        font-size: clamp(15px, 1.953vw, 20px);
    }

    /* Sub-navigation */
    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__panel {
        gap: 8px;
    }

    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__subitem {
        min-height: clamp(54px, 6.836vw, 70px);
        padding: clamp(10px, 1.367vw, 14px) 42px clamp(10px, 1.367vw, 14px) clamp(10px, 1.367vw, 14px);
        font-size: clamp(12px, 1.563vw, 16px);
        line-height: 1.3;
    }

    /* Related Technology */
    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related {
        gap: 15px;
        padding: 15px 20px;
    }

    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related-heading {
        flex: 0 0 18%;
        font-size: clamp(12px, 1.563vw, 16px);
    }

    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related-links {
        font-size: clamp(12px, 1.563vw, 16px);
    }

    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related-links a {
        font-size: clamp(10px, calc(10px + 2 * (100vw - 768px) / 256), 12px) !important;
        letter-spacing: 0;
    }

    :is(.idp-mega-menu--printers, .idp-mega-menu--solutions, .idp-mega-menu--markets) .idp-mega-menu__related-links a:not(:last-child)::after {
        margin: 0 10px;
    }
}

/* 9. MARKETS: FEATURED CONTENT PANEL */
.idp-mega-menu--markets .idp-mega-menu__main {
    grid-template-columns: 25% 30% 45%;
}
.idp-mega-menu--markets .idp-mega-menu__panel {
    display: block;
}
.idp-mega-menu--markets .idp-mega-menu__panel[hidden] {
    display: none;
}
.idp-mega-menu--markets .idp-mega-menu__feature-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #d9d9d9;
    overflow: hidden;
    margin-bottom: 25px;
}
.idp-mega-menu--markets .idp-mega-menu__feature-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.idp-mega-menu--markets .idp-mega-menu__feature-description {
    font-size: 18px;
    line-height: 1.45;
    color: #111;
    margin-bottom: 20px;
}
.idp-mega-menu--markets .idp-mega-menu__feature-button {
    display: inline-block;
    padding: 9px 24px;
    border-radius: 30px;
    background: linear-gradient(110deg, #a7c3e0, #e6eef5);
    color: #111;
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
}
.idp-mega-menu--markets .idp-mega-menu__feature-button:hover {
    background: linear-gradient(110deg, #e6eef5, #a7c3e0);
    color: #111;
}
@media (min-width: 768px) and (max-width: 1024px) {
    .idp-mega-menu--markets .idp-mega-menu__main {
        grid-template-columns: 28% 28% 44%;
    }
    .idp-mega-menu--markets .idp-mega-menu__feature-description {
        font-size: clamp(13px, 1.563vw, 16px);
    }
    .idp-mega-menu--markets .idp-mega-menu__feature-button {
        font-size: 13px;
    }
}


/* ============================================================
   10. SUPPORT + RESOURCES: INTRO + DIRECT LINK GRID
   ============================================================ */
:is(.idp-mega-menu--support, .idp-mega-menu--resources) {
    font-family: 'Familjen Grotesk', sans-serif;
}
:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__main {
    grid-template-columns: 25% minmax(0, 75%);
    min-height: 0;
}
:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__intro {
    border-right: 1px solid #BCDCFF;
}
:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__intro h3 {
    margin: 0 0 25px;
    color: #2E3E7F;
    font-size: 30px;
    font-weight: 600;
}
:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__intro p {
    margin: 0 0 30px;
    color: #111;
    font-size: 20px;
    line-height: 1.3;
}
:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__intro-button {
    display: inline-block;
    padding: 12px 25px;
    background: #0F152D;
    color: #fff;
    border-radius: 30px;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 500;
}
:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__intro-button:hover {
    background: #323850;
    color: #fff;
}
:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__support-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    align-content: start;
    padding: 20px 25px;
    min-width: 0;
}
/* SUPPORT: WHITE ARROW */
:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__support-item::after {
    content: "";
    position: absolute;
    right: 25px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    background: url('/wp-content/themes/oceanwp-child-theme-master/assets/images/mega-menu-white-arrow.svg') center / contain no-repeat;
    opacity: 0;
    transition: opacity 0.2s ease;
}

:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__support-item:hover::after,
:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__support-item:focus-visible::after {
    opacity: 1;
}

/* SUPPORT: RESTORE CARD STYLING */
:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__support-item {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 94px;
    padding: 20px 55px 20px 28px;
    background: #F2F7FA;
    color: #111;
    border-radius: 8px;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

/* Card hover and keyboard focus, with no default selected item */
:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__support-item:hover,
:is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__support-item:focus-visible {
    background: #2E3E7F;
    color: #fff;
}

@media (min-width: 768px) and (max-width: 1024px) {
    :is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__main {
        grid-template-columns: 28% minmax(0, 72%);
    }
    :is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__intro,
    :is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__support-links {
        padding: clamp(12px, 1.953vw, 20px);
    }
    :is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__intro h3 {
        font-size: clamp(22px, 2.734vw, 28px);
    }
    :is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__intro p {
        font-size: clamp(14px, 1.758vw, 18px);
        line-height: 1.5;
    }
    :is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__intro-button {
        font-size: 13px;
    }
    :is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__support-item {
        min-height: clamp(54px, 7.031vw, 72px);
        padding: 12px 42px 12px 15px;
        font-size: clamp(15px, 1.953vw, 20px);
    }
    :is(.idp-mega-menu--support, .idp-mega-menu--resources) .idp-mega-menu__support-item::after {
        right: 12px;
    }
}


/* Mobile accordion content INSIDE Elementor's existing Off-Canvas widget */
.idp-mobile-menu {
    width: 100%;
    font-family: 'Familjen Grotesk', sans-serif;
    color: #2E3E7F;
}
.idp-mobile-menu,
.idp-mobile-menu * { box-sizing: border-box; }

.idp-mobile-menu__section { border-bottom: 1px solid #dce8f3; }
.idp-mobile-menu__section:first-child { border-top: 1px solid #dce8f3; }

.idp-mobile-menu summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    list-style: none;
    cursor: pointer;
}
.idp-mobile-menu summary::-webkit-details-marker { display: none; }
.idp-mobile-menu summary:focus-visible,
.idp-mobile-menu a:focus-visible { outline: 2px solid #2E3E7F; outline-offset: -2px; }

.idp-mobile-menu__top {
    padding: 17px 16px;
    color: #2E3E7F;
    font-size: 19px;
    line-height: 1.3;
    font-weight: 600;
}
.idp-mobile-menu__section-body { padding: 0 0 9px; }

.idp-mobile-menu__group { border-top: 1px solid #edf2f7; }
.idp-mobile-menu__second {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 13px 17px 13px 30px;
    color: #2E3E7F !important;
    font-size: 16px;
    line-height: 1.35;
    font-weight: 500 !important;
    text-decoration: none !important;
}
.idp-mobile-menu a.idp-mobile-menu__second:hover,
.idp-mobile-menu a.idp-mobile-menu__third:hover {
    background: #F2F7FA;
    color: #2E3E7F;
}

.idp-mobile-menu__second--plain { cursor: default; }

.idp-mobile-menu__group-body {
    padding: 2px 0 7px;
    background: #F8FBFD;
}
.idp-mobile-menu__third {
    display: block;
    font-size: 14px;
    line-height: 1.35;
    text-decoration: none  !important;
    font-family: 'Familjen Grotesk', sans-serif  !important;
    font-weight: 500  !important;
    color: #2E3E7F  !important;
    padding: 11px 16px 11px 48px;
}
.idp-mobile-menu__caret {
    display: inline-block;
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform .18s ease;
}
.idp-mobile-menu details[open] > summary > .idp-mobile-menu__caret {
    transform: rotate(225deg);
}
.idp-mobile-menu__cta {
    display: inline-block;
    margin: 12px 16px 10px 30px;
    padding: 10px 18px;
    background: #2E3E7F;
    border-radius: 5px;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}
.idp-mobile-menu__cta:hover { background: #0F152D; color: #fff; }

/* Mobile menu - CTA buttons */
.idp-mobile-menu .idp-mobile-menu__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF !important;
    line-height: 1.2;
    text-decoration: none;
    border-radius: 30px;
    transition: background-color 0.2s ease;
    padding: 12px 25px;
    background: #0F152D;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 500;
}

.idp-mobile-menu .idp-mobile-menu__cta:hover {
    background: #323850;
    color: #FFFFFF !important;
}

/* Consistent typography for all second-level menu items */
.idp-mobile-menu .idp-mobile-menu__second,
.idp-mobile-menu a.idp-mobile-menu__second,
.idp-mobile-menu summary.idp-mobile-menu__second {
    font-family: 'Familjen Grotesk', sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.35;
    color: #2E3E7F;
    text-decoration: none;
}

