/*
 * ISG Website — Dark Futuristic Redesign v3
 * Dark navy + neon purple / cyan / pink accents. Glassy cards, glowing borders.
 * Loaded after isg-beautify.css so these rules win the cascade.
 */

/* -------------------------------------------------------------------------- */
/*  Dark mode design tokens                                                   */
/* -------------------------------------------------------------------------- */

:root {
    --isg-dark-bg:        #06090f;       /* page background */
    --isg-dark-surface:   #0e1424;       /* card background */
    --isg-dark-elevated:  #161e34;       /* elevated card */
    --isg-dark-border:    rgba(255, 255, 255, .08);
    --isg-dark-text:      #e2e8f0;       /* primary text */
    --isg-dark-text-mute: #94a3b8;       /* secondary text */
    --isg-neon-purple:    #a78bfa;
    --isg-neon-pink:      #f472b6;
    --isg-neon-cyan:      #22d3ee;
    --isg-neon-glow:      0 0 32px -4px rgba(167, 139, 250, .55);
}

/* -------------------------------------------------------------------------- */
/*  Safety: keep Elementor's "invisible-until-animated" widgets visible       */
/* -------------------------------------------------------------------------- */

.elementor-invisible,
.elementor-element.elementor-invisible,
.elementor-widget.elementor-invisible {
    opacity: 1 !important;
    visibility: visible !important;
    animation: none !important;
}

/* -------------------------------------------------------------------------- */
/*  Page-level — animated mesh background on deep navy                        */
/* -------------------------------------------------------------------------- */

@keyframes isg-drift {
    0%   { transform: translate3d(0, 0, 0); }
    50%  { transform: translate3d(40px, -30px, 0); }
    100% { transform: translate3d(0, 0, 0); }
}

@keyframes isg-glow-pulse {
    0%, 100% { box-shadow: 0 0 24px -4px rgba(167, 139, 250, .35); }
    50%      { box-shadow: 0 0 36px -2px rgba(167, 139, 250, .65); }
}

@keyframes isg-shimmer {
    0%   { transform: translateX(-120%); }
    60%  { transform: translateX(120%); }
    100% { transform: translateX(120%); }
}

body.home,
body.page-id-8 {
    background: var(--isg-dark-bg) !important;
    color: var(--isg-dark-text);
}

body.home::after,
body.page-id-8::after {
    content: "";
    position: fixed;
    inset: -10vh -10vw;
    background:
        radial-gradient(50vw 50vw at 18% 22%, rgba(167, 139, 250, .35), transparent 60%),
        radial-gradient(40vw 40vw at 82% 38%, rgba(34, 211, 238, .25), transparent 60%),
        radial-gradient(50vw 50vw at 50% 92%, rgba(244, 114, 182, .22), transparent 60%);
    filter: blur(60px) saturate(140%);
    z-index: -1;
    pointer-events: none;
    animation: isg-drift 22s ease-in-out infinite;
}

body.home::before,
body.page-id-8::before {
    content: "";
    position: fixed;
    inset: 0;
    background-image:
        linear-gradient(rgba(167, 139, 250, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(167, 139, 250, .045) 1px, transparent 1px);
    background-size: 60px 60px;
    pointer-events: none;
    z-index: -1;
    mask-image: radial-gradient(ellipse 80% 70% at 50% 40%, #000 30%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 40%, #000 30%, transparent 80%);
}

/* Override beautify's light section tints — go dark */
.elementor-element.elementor-element-c0b41b0,
.elementor-element.elementor-element-49ebf6b,
.elementor-element.elementor-element-1fb7b8a,
.elementor-element.elementor-element-c9e327f,
.elementor-element.elementor-element-e34b201 {
    background: transparent !important;
    padding-top: 72px !important;
    padding-bottom: 72px !important;
}

.isg-extra .isg-foundation,
.isg-extra .isg-advanced {
    background: transparent !important;
    padding: 72px 24px !important;
    margin: 0 !important;
}

#isg-extra-sections .isg-extra__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* -------------------------------------------------------------------------- */
/*  Section headings — bright text on dark                                    */
/* -------------------------------------------------------------------------- */

.ekit-heading--title.elementskit-section-title,
.isg-section__title {
    font-size: clamp(32px, 4vw, 56px) !important;
    font-weight: 800 !important;
    letter-spacing: -.03em !important;
    line-height: 1.05 !important;
    color: var(--isg-dark-text) !important;
}

.ekit-heading--title.elementskit-section-title span span,
.isg-section__title .grad {
    background: linear-gradient(135deg, #a78bfa 0%, #f472b6 50%, #22d3ee 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-fill-color: transparent;
}

.ekit-heading--title.elementskit-section-title::after {
    width: 96px !important;
    height: 6px !important;
    background: linear-gradient(135deg, #a78bfa 0%, #f472b6 50%, #22d3ee 100%) !important;
    box-shadow: 0 0 20px -2px rgba(167, 139, 250, .65);
}

.ekit-heading__description p,
.isg-section__sub {
    color: var(--isg-dark-text-mute) !important;
    font-size: clamp(15px, 1.1vw, 17px) !important;
    line-height: 1.7 !important;
    max-width: 660px;
    margin: 0 auto !important;
}

/* -------------------------------------------------------------------------- */
/*  Hero — Smart Slider on dark mesh                                          */
/* -------------------------------------------------------------------------- */

section.elementor-section.elementor-top-section:first-of-type,
.elementor-element.e-con.e-parent:first-of-type {
    background: transparent !important;
}

/* Reset card visual from every Smart Slider layer; only innermost gets it */
.n2-ss-slider .n2-ss-layer-with-background {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.n2-ss-slider .n2-ss-layer-col.n2-ss-layer-with-background {
    background: rgba(14, 20, 36, .82) !important;
    backdrop-filter: blur(20px) saturate(160%);
    -webkit-backdrop-filter: blur(20px) saturate(160%);
    border: 1px solid rgba(167, 139, 250, .28) !important;
    border-radius: 24px !important;
    padding: 36px 40px !important;
    box-shadow:
        0 0 0 1px rgba(167, 139, 250, .15),
        0 32px 80px -28px rgba(167, 139, 250, .55),
        inset 0 1px 0 rgba(255, 255, 255, .08) !important;
}

@media (min-width: 1024px) {
    .n2-ss-slider .n2-ss-layer-col.n2-ss-layer-with-background {
        width: 560px !important;
        max-width: 90vw !important;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .n2-ss-slider .n2-ss-layer-col.n2-ss-layer-with-background {
        width: 440px !important;
        max-width: 85vw !important;
    }
}

.n2-ss-slider [class*="n2-font-c93b26"],
.n2-ss-slider [class*="n2-font-424c233b"] {
    font-size: clamp(28px, 3.4vw, 46px) !important;
    font-weight: 800 !important;
    letter-spacing: -.025em !important;
    line-height: 1.08 !important;
    background: linear-gradient(135deg, #fff 0%, #a78bfa 60%, #22d3ee 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.n2-ss-slider .n2-ss-layer-col .n2-ss-item-content p,
.n2-ss-slider [class*="n2-font-cf47fbd3"] {
    color: var(--isg-dark-text-mute) !important;
    font-size: clamp(14px, 1.1vw, 16px) !important;
    line-height: 1.65 !important;
}

/* Hero CTA — neon glow + shimmer */
.n2-ss-button-container a {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: linear-gradient(135deg, #a78bfa 0%, #f472b6 50%, #22d3ee 100%) !important;
    color: #06090f !important;
    padding: 14px 30px !important;
    border-radius: 999px !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: .04em;
    box-shadow:
        0 0 24px -2px rgba(167, 139, 250, .65),
        0 16px 32px -10px rgba(167, 139, 250, .65) !important;
    transition: transform .3s ease, box-shadow .3s ease, filter .3s ease !important;
}

.n2-ss-button-container a::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .45) 50%, transparent 70%);
    transform: translateX(-120%);
    z-index: -1;
    transition: transform .8s ease;
}

.n2-ss-button-container a:hover {
    transform: translateY(-3px);
    filter: brightness(1.12);
    box-shadow:
        0 0 36px 0 rgba(167, 139, 250, .85),
        0 20px 40px -10px rgba(167, 139, 250, .85) !important;
}

.n2-ss-button-container a:hover::before {
    animation: isg-shimmer 1.2s ease forwards;
}

/* Hero slider arrows — dark glass */
.n2-ss-slider-controls .nextend-arrow {
    background: rgba(14, 20, 36, .8) !important;
    border: 1px solid rgba(167, 139, 250, .3) !important;
    backdrop-filter: blur(10px);
    box-shadow: 0 0 24px -4px rgba(167, 139, 250, .45) !important;
}

/* -------------------------------------------------------------------------- */
/*  Learning Journey step cards — glowing borders                             */
/* -------------------------------------------------------------------------- */

.elementor-element.e-con-boxed.e-child:has(.thim-ekits-heading) {
    background: rgba(14, 20, 36, .68) !important;
    backdrop-filter: blur(16px) saturate(160%);
    -webkit-backdrop-filter: blur(16px) saturate(160%);
    border: 1px solid var(--isg-dark-border) !important;
    border-radius: 20px !important;
    padding: 26px 26px 26px 96px !important;
    box-shadow:
        0 0 0 1px rgba(167, 139, 250, .04),
        0 24px 48px -16px rgba(0, 0, 0, .55) !important;
    transition: transform .4s ease, border-color .4s ease, box-shadow .4s ease;
}

.elementor-element.e-con-boxed.e-child:has(.thim-ekits-heading):hover {
    border-color: rgba(167, 139, 250, .45) !important;
    transform: translateY(-6px);
    box-shadow:
        0 0 0 1px rgba(167, 139, 250, .25),
        0 0 32px -4px rgba(167, 139, 250, .35),
        0 32px 56px -20px rgba(0, 0, 0, .75) !important;
}

.elementor-element.e-con-boxed.e-child:has(.thim-ekits-heading)::after {
    font-size: 44px !important;
    left: 22px !important;
    background: linear-gradient(135deg, #a78bfa 0%, #f472b6 50%, #22d3ee 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.thim-ekits-heading .title {
    font-size: 22px !important;
    font-weight: 800 !important;
    color: var(--isg-dark-text) !important;
}

.thim-ekits-heading .title span {
    color: var(--isg-neon-purple) !important;
}

.thim-ekits-heading .sub-heading {
    color: var(--isg-neon-cyan) !important;
    font-size: 11px !important;
    letter-spacing: .16em !important;
    font-weight: 800 !important;
}

.thim-ekits-heading .desc p,
.thim-ekits-heading .desc {
    color: var(--isg-dark-text-mute) !important;
}

/* -------------------------------------------------------------------------- */
/*  Mission / Vision — neon glass cards                                       */
/* -------------------------------------------------------------------------- */

.elementskit-infobox {
    background: rgba(14, 20, 36, .68) !important;
    backdrop-filter: blur(20px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    border: 1px solid var(--isg-dark-border) !important;
    border-radius: 24px !important;
    padding: 32px !important;
    box-shadow:
        0 0 0 1px rgba(167, 139, 250, .06),
        0 24px 48px -20px rgba(0, 0, 0, .65) !important;
    transition: border-color .4s ease, transform .4s ease, box-shadow .4s ease;
}

.elementskit-infobox:hover {
    border-color: rgba(167, 139, 250, .4) !important;
    transform: translateY(-4px);
    box-shadow:
        0 0 0 1px rgba(167, 139, 250, .25),
        0 0 32px -4px rgba(167, 139, 250, .35),
        0 32px 56px -20px rgba(0, 0, 0, .75) !important;
}

.elementskit-info-box-icon {
    width: 56px !important;
    height: 56px !important;
    border-radius: 14px !important;
    background: linear-gradient(135deg, rgba(167, 139, 250, .25), rgba(34, 211, 238, .15)) !important;
    border: 1px solid rgba(167, 139, 250, .35) !important;
    box-shadow: 0 0 24px -4px rgba(167, 139, 250, .35);
}

.elementskit-info-box-icon svg {
    fill: var(--isg-neon-purple) !important;
    color: var(--isg-neon-purple) !important;
}

.elementskit-infobox .box-body .box-title,
.elementskit-infobox .box-body .elementskit-info-box-title,
.elementskit-infobox .box-body h2,
.elementskit-infobox .box-body h3,
.elementskit-infobox .box-body h4 {
    color: var(--isg-dark-text) !important;
}

.elementskit-infobox .box-body p {
    color: var(--isg-dark-text-mute) !important;
}

/* -------------------------------------------------------------------------- */
/*  Organizations — logo strip in dark glass card                             */
/* -------------------------------------------------------------------------- */

.elementor-element.elementor-element-1fb7b8a .elementor-widget-image:has(img[src*="logo.png"]) {
    background: rgba(14, 20, 36, .68) !important;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid var(--isg-dark-border) !important;
    border-radius: 24px !important;
    padding: 32px 40px !important;
    box-shadow: 0 24px 48px -20px rgba(0, 0, 0, .65) !important;
}

.elementor-element.elementor-element-1fb7b8a .elementor-widget-image img {
    filter: brightness(1.1) saturate(1.1);
}

/* -------------------------------------------------------------------------- */
/*  Available Courses — dark photo cards with neon overlays                   */
/* -------------------------------------------------------------------------- */

.elementor-widget-elementskit-image-box .elementskit-info-image-box {
    background: rgba(14, 20, 36, .82) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid var(--isg-dark-border) !important;
    border-radius: 20px !important;
    box-shadow: 0 24px 48px -20px rgba(0, 0, 0, .65) !important;
    transition: transform .4s ease, border-color .4s ease, box-shadow .4s ease !important;
    overflow: hidden;
}

.elementor-widget-elementskit-image-box .elementskit-info-image-box::before {
    background: linear-gradient(135deg, #a78bfa 0%, #f472b6 50%, #22d3ee 100%) !important;
    color: #06090f !important;
}

.elementor-widget-elementskit-image-box .elementskit-info-image-box:hover {
    transform: translateY(-8px) !important;
    border-color: rgba(167, 139, 250, .45) !important;
    box-shadow:
        0 0 0 1px rgba(167, 139, 250, .25),
        0 0 36px -4px rgba(167, 139, 250, .45),
        0 36px 64px -20px rgba(0, 0, 0, .75) !important;
}

.elementor-widget-elementskit-image-box .elementskit-info-box-title {
    color: var(--isg-neon-purple) !important;
}

.elementor-widget-elementskit-image-box .elementskit-box-style-content {
    color: var(--isg-dark-text-mute) !important;
}

.elementor-widget-elementskit-image-box .elementskit-btn {
    color: var(--isg-neon-cyan) !important;
}

/* Magazine layout on desktop */
@media (min-width: 1024px) {
    .elementor-element[data-id="6b054b7d"] > .e-con-inner {
        display: grid !important;
        grid-template-columns: 2fr 1fr !important;
        gap: 22px;
    }

    .elementor-element[data-id="6b054b7d"] > .e-con-inner > :nth-child(1) {
        grid-row: span 2;
    }

    .elementor-element[data-id="6b054b7d"] > .e-con-inner > :nth-child(1) .elementskit-box-header img {
        height: 440px !important;
    }
}

/* -------------------------------------------------------------------------- */
/*  Foundation Courses — bright tiles still punchy on dark                    */
/* -------------------------------------------------------------------------- */

.isg-eyebrow {
    background: rgba(167, 139, 250, .12) !important;
    color: var(--isg-neon-purple) !important;
    border: 1px solid rgba(167, 139, 250, .25);
}

.isg-section__title {
    color: var(--isg-dark-text) !important;
}

.isg-section__sub {
    color: var(--isg-dark-text-mute) !important;
}

.isg-fcard {
    border-radius: 20px !important;
    border: 1px solid var(--isg-dark-border);
    box-shadow: 0 24px 48px -20px rgba(0, 0, 0, .65) !important;
    transition: transform .4s ease, box-shadow .4s ease !important;
    background: rgba(14, 20, 36, .68) !important;
}

.isg-fcard:hover {
    transform: translateY(-8px) scale(1.02) !important;
    box-shadow:
        0 0 36px -4px rgba(167, 139, 250, .55),
        0 36px 64px -20px rgba(0, 0, 0, .75) !important;
}

.isg-fcard__label {
    color: var(--isg-dark-text) !important;
}

.isg-fcard__btn {
    background: rgba(167, 139, 250, .12) !important;
    color: var(--isg-neon-purple) !important;
    border: 1px solid rgba(167, 139, 250, .25);
}

.isg-fcard:hover .isg-fcard__btn {
    background: linear-gradient(135deg, #a78bfa 0%, #22d3ee 100%) !important;
    color: #06090f !important;
    border-color: transparent;
}

/* -------------------------------------------------------------------------- */
/*  Advanced Courses — dark with neon overlays                                */
/* -------------------------------------------------------------------------- */

.isg-acard {
    border-radius: 20px !important;
    border: 1px solid var(--isg-dark-border);
    box-shadow: 0 24px 48px -20px rgba(0, 0, 0, .65) !important;
    transition: transform .4s ease, box-shadow .4s ease !important;
}

.isg-acard:hover {
    transform: translateY(-8px) scale(1.02) !important;
    box-shadow:
        0 0 36px -4px rgba(244, 114, 182, .55),
        0 36px 64px -20px rgba(0, 0, 0, .75) !important;
}

.isg-acard__overlay {
    background: linear-gradient(180deg, rgba(6, 9, 15, .15) 0%, rgba(6, 9, 15, .55) 50%, rgba(6, 9, 15, .92) 100%) !important;
}

.isg-acard__label {
    color: #fff !important;
    font-size: 22px !important;
    letter-spacing: -.02em !important;
}

.isg-acard__btn {
    background: rgba(255, 255, 255, .12) !important;
    color: #fff !important;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, .2);
}

.isg-acard:hover .isg-acard__btn {
    background: linear-gradient(135deg, #a78bfa 0%, #22d3ee 100%) !important;
    color: #06090f !important;
    border-color: transparent;
}

/* -------------------------------------------------------------------------- */
/*  Future-Ready section — dark with bright image + glowing CTAs              */
/* -------------------------------------------------------------------------- */

.elementor-element.elementor-element-e34b201 img {
    border-radius: 24px !important;
    box-shadow:
        0 0 36px -4px rgba(167, 139, 250, .35),
        0 24px 56px -20px rgba(0, 0, 0, .65) !important;
}

.elementor-element.elementor-element-e34b201 .elementor-widget-heading .elementor-heading-title {
    color: var(--isg-dark-text) !important;
    font-size: clamp(28px, 3.2vw, 44px) !important;
    font-weight: 800 !important;
    letter-spacing: -.025em !important;
}

.elementor-element.elementor-element-e34b201 .elementor-widget-text-editor,
.elementor-element.elementor-element-e34b201 .elementor-widget-text-editor p {
    color: var(--isg-dark-text-mute) !important;
}

.elementor-element.elementor-element-e34b201 .elementor-icon-list-text {
    color: var(--isg-dark-text) !important;
    font-weight: 500;
}

.elementor-element.elementor-element-e34b201 .elementor-icon-list-icon i,
.elementor-element.elementor-element-e34b201 .elementor-icon-list-icon svg {
    color: var(--isg-neon-cyan) !important;
    fill: var(--isg-neon-cyan) !important;
}

.elementor-element.elementor-element-e34b201 .elementor-button {
    background: linear-gradient(135deg, #a78bfa 0%, #f472b6 50%, #22d3ee 100%) !important;
    color: #06090f !important;
    padding: 12px 28px !important;
    border-radius: 999px !important;
    font-weight: 800 !important;
    box-shadow: 0 0 24px -2px rgba(167, 139, 250, .55) !important;
}

.elementor-element.elementor-element-e34b201 .elementor-widget-button + .elementor-widget-button .elementor-button {
    background: transparent !important;
    color: var(--isg-neon-cyan) !important;
    box-shadow: inset 0 0 0 1.5px var(--isg-neon-cyan) !important;
}

.elementor-element.elementor-element-e34b201 .elementor-widget-button + .elementor-widget-button .elementor-button:hover {
    background: rgba(34, 211, 238, .12) !important;
}

/* -------------------------------------------------------------------------- */
/*  Header — dark glass, fixed                                                */
/* -------------------------------------------------------------------------- */

.ekit-template-content-header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9000;
    background: rgba(6, 9, 15, .82) !important;
    backdrop-filter: blur(20px) saturate(160%);
    -webkit-backdrop-filter: blur(20px) saturate(160%);
    border-bottom: 1px solid rgba(167, 139, 250, .12) !important;
}

body.isg-scrolled .ekit-template-content-header {
    background: rgba(6, 9, 15, .96) !important;
    box-shadow: 0 0 24px -4px rgba(167, 139, 250, .25);
}

.ekit-template-content-header .elementor-element[data-element_type="container"]:first-child {
    background: transparent !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
}

.ekit-template-content-header .elementor-nav-menu .elementor-item,
.ekit-template-content-header .elementskit-menu-container .elementskit-navbar-nav > li > a {
    color: var(--isg-dark-text) !important;
}

.ekit-template-content-header .elementor-nav-menu .elementor-item:hover,
.ekit-template-content-header .elementskit-menu-container .elementskit-navbar-nav > li > a:hover {
    color: var(--isg-neon-purple) !important;
    background: rgba(167, 139, 250, .1);
}

/* Dropdown menus stay light for readability */
.ekit-template-content-header .elementskit-submenu-panel,
.elementskit-navbar-nav .elementskit-dropdown {
    background: rgba(14, 20, 36, .96) !important;
    border: 1px solid rgba(167, 139, 250, .18) !important;
    box-shadow: 0 0 36px -4px rgba(167, 139, 250, .35) !important;
}

.ekit-template-content-header .elementskit-submenu-panel a.dropdown-item,
.elementskit-navbar-nav .elementskit-dropdown a.dropdown-item {
    color: var(--isg-dark-text) !important;
}

.ekit-template-content-header .elementskit-submenu-panel a.dropdown-item:hover,
.elementskit-navbar-nav .elementskit-dropdown a.dropdown-item:hover {
    background: rgba(167, 139, 250, .15) !important;
    color: var(--isg-neon-purple) !important;
}

/* Push body down for fixed header */
body.home,
body.page-id-8 {
    padding-top: 96px !important;
}

@media (max-width: 1023px) {
    body.home,
    body.page-id-8 {
        padding-top: 80px !important;
    }
}

@media (max-width: 767px) {
    body.home,
    body.page-id-8 {
        padding-top: 72px !important;
    }
}

.ekit-template-content-header .elementor-widget-image img {
    max-height: 56px;
    width: auto;
    object-fit: contain;
}

/* Logo overlay (PGS SUPER AI swap) — keep working */
.ekit-template-content-header .elementor-element-dc6fa9b .elementor-widget-container {
    position: relative;
}

.ekit-template-content-header .elementor-element-dc6fa9b .elementor-widget-container::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("/isg_website/wp-content/uploads/pgs-super-ai.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
    background-color: transparent;
    pointer-events: none;
}

/* -------------------------------------------------------------------------- */
/*  Footer — stays dark (matches body), with neon accent hover                */
/* -------------------------------------------------------------------------- */

.ekit-template-content-footer,
.ekit-template-content-footer .elementor-element[data-element_type="container"] {
    background: rgba(6, 9, 15, .85) !important;
    border-top: 1px solid rgba(167, 139, 250, .12);
}

.ekit-template-content-footer a:hover {
    color: var(--isg-neon-purple) !important;
}

.ekit-template-content-footer .elementor-social-icon:hover,
.ekit-template-content-footer .elementor-widget-social-icons a:hover {
    background: linear-gradient(135deg, #a78bfa 0%, #22d3ee 100%) !important;
    box-shadow: 0 0 24px -4px rgba(167, 139, 250, .55);
}

/* -------------------------------------------------------------------------- */
/*  Latest Updates — keep hidden                                              */
/* -------------------------------------------------------------------------- */

.elementor-element.elementor-element-530037d {
    display: none !important;
}

/* -------------------------------------------------------------------------- */
/*  GTranslate switcher — dark variant                                        */
/* -------------------------------------------------------------------------- */

.gt_float_switcher {
    background: rgba(14, 20, 36, .92) !important;
    border: 1px solid rgba(167, 139, 250, .25) !important;
    color: var(--isg-dark-text) !important;
}

.gt_float_switcher .gt-selected .gt-current-lang {
    color: var(--isg-dark-text) !important;
}

.gt_float_switcher .gt_options {
    background: rgba(14, 20, 36, .96) !important;
    border: 1px solid rgba(167, 139, 250, .25) !important;
}

.gt_float_switcher .gt_options a {
    color: var(--isg-dark-text) !important;
}

.gt_float_switcher .gt_options a:hover {
    background: rgba(167, 139, 250, .15) !important;
    color: var(--isg-neon-purple) !important;
}

/* -------------------------------------------------------------------------- */
/*  Responsive                                                                 */
/* -------------------------------------------------------------------------- */

@media (max-width: 1023px) {
    .ekit-heading--title.elementskit-section-title {
        font-size: clamp(28px, 5vw, 40px) !important;
    }

    .elementor-element.elementor-element-c0b41b0,
    .elementor-element.elementor-element-49ebf6b,
    .elementor-element.elementor-element-1fb7b8a,
    .elementor-element.elementor-element-c9e327f,
    .elementor-element.elementor-element-e34b201,
    .isg-extra .isg-foundation,
    .isg-extra .isg-advanced {
        padding-top: 56px !important;
        padding-bottom: 56px !important;
    }

    .isg-foundation__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 16px !important;
    }

    .isg-advanced__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 16px !important;
    }
}

@media (max-width: 767px) {
    .ekit-heading--title.elementskit-section-title {
        font-size: 26px !important;
    }

    .ekit-heading__description p {
        font-size: 14px !important;
    }

    .isg-foundation__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    .isg-advanced__grid {
        grid-template-columns: 1fr !important;
    }

    .elementor-element[data-id="6b054b7d"] > .e-con-inner {
        grid-template-columns: 1fr !important;
    }

    .elementor-element[data-id="6b054b7d"] > .e-con-inner > :nth-child(1) {
        grid-row: auto !important;
    }

    .n2-ss-slider .n2-ss-layer-col.n2-ss-layer-with-background {
        padding: 22px 24px !important;
        border-radius: 18px !important;
    }

    .ekit-template-content-footer .elementor-column {
        width: 100% !important;
        margin-bottom: 24px;
    }
}

/* -------------------------------------------------------------------------- */
/*  Accessibility                                                              */
/* -------------------------------------------------------------------------- */

a:focus-visible,
button:focus-visible,
.elementor-button:focus-visible,
.isg-fcard:focus-visible,
.isg-acard:focus-visible {
    outline: 3px solid rgba(167, 139, 250, .65) !important;
    outline-offset: 3px !important;
    border-radius: 12px;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* -------------------------------------------------------------------------- */
/*  Global polish — overflow protection, image safety, no horizontal scroll   */
/* -------------------------------------------------------------------------- */

html, body {
    overflow-x: hidden;
    max-width: 100vw;
}

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

.elementor-section.elementor-section-boxed > .elementor-container {
    max-width: 100% !important;
    overflow-x: hidden;
}

/* Ensure Smart Slider container doesn't push past viewport */
.n2-ss-slider {
    max-width: 100% !important;
    overflow: hidden;
}

/* Future-Ready section — stack image + content on tablet & mobile */
@media (max-width: 1023px) {
    .elementor-element.elementor-element-e34b201 .elementor-container {
        flex-direction: column !important;
    }
    .elementor-element.elementor-element-e34b201 .elementor-column {
        width: 100% !important;
    }
}

/* Mobile-specific final guards */
@media (max-width: 767px) {
    /* Prevent any section from exceeding viewport width */
    body.home .elementor-section,
    body.page-id-8 .elementor-section,
    body.home .e-con.e-parent,
    body.page-id-8 .e-con.e-parent {
        max-width: 100vw;
        overflow-x: hidden;
    }

    /* Mission/Vision cards — stack vertically with full width */
    .elementskit-infobox {
        flex-direction: column !important;
        gap: 14px !important;
        padding: 24px !important;
    }

    /* Smaller mobile cards */
    .isg-fcard__art {
        aspect-ratio: 1 / 0.9;
    }

    .isg-fcard__art svg {
        width: 50%;
        height: 50%;
    }

    /* Tighten section vertical padding on mobile */
    .elementor-element.elementor-element-c0b41b0,
    .elementor-element.elementor-element-49ebf6b,
    .elementor-element.elementor-element-1fb7b8a,
    .elementor-element.elementor-element-c9e327f,
    .elementor-element.elementor-element-e34b201,
    .isg-extra .isg-foundation,
    .isg-extra .isg-advanced {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }

    /* Nav menu collapsed state — make sure hamburger works */
    .ekit-template-content-header .elementskit-menu-hamburger {
        display: flex !important;
    }

    /* Smaller section underline on mobile */
    .ekit-heading--title.elementskit-section-title::after {
        width: 64px !important;
        height: 4px !important;
    }
}

/* Very small phones (<400px) — extra tight */
@media (max-width: 399px) {
    .isg-foundation__grid {
        grid-template-columns: 1fr !important;
    }

    .ekit-heading--title.elementskit-section-title {
        font-size: 22px !important;
    }

    .n2-ss-slider .n2-ss-layer-col.n2-ss-layer-with-background {
        padding: 18px 20px !important;
    }
}

/* ============================================================
   STICKY HEADER — ElementsKit / Elementor header (2026-06-01)
   Loaded last so it overrides ElementsKit defaults.
   ============================================================ */
.ekit-template-content-header,
.ekit-template-content-header-yes,
header.ekit-template-content-header,
.elementor-location-header {
    position: fixed !important;
    top: 0 !important;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 9999;
    background: #ffffff;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
    transition: background 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease;
}

.ekit-template-content-header.is-scrolled,
.elementor-location-header.is-scrolled {
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.10);
}

/* Reserve space so content doesn't sit under the fixed header */
body {
    padding-top: 90px;
}
@media (max-width: 1024px) { body { padding-top: 80px; } }
@media (max-width: 768px)  { body { padding-top: 70px; } }

/* Offset header below the WP admin bar when logged in */
body.admin-bar .ekit-template-content-header,
body.admin-bar .elementor-location-header { top: 32px !important; }
@media (max-width: 782px) {
    body.admin-bar .ekit-template-content-header,
    body.admin-bar .elementor-location-header { top: 46px !important; }
}
