/* Gengold Slider v1.5.4 — Centurion Technology Solutions */

/* ── Wrapper ──────────────────────────────── */
.gg-slider-wrap {
    position: relative;
    width: 100%;
    height: var(--gg-height, 500px);
    overflow: hidden;
    display: block;
    background: #000;
    /* Trap internal z-indexes inside the slider's own stacking context so
       nothing can escape and overlay floating page UI (bottom nav, chat
       widgets, etc.). `contain` gives older Android WebViews a stronger
       paint boundary than `isolation` alone.
       z-index:5 keeps us above ordinary page sections (which sit at
       z-index:0/auto) so the arrows and CTA buttons remain clickable.
       Floating page UI uses position:fixed at very high z-index and is
       unaffected by this. */
    z-index: 5;
    isolation: isolate;
    contain: layout paint;
}
.gg-slider-wrap.gg-is-fullwidth {
    width: 100vw;
    max-width: 100vw;
}

/* The reserved-space placeholder for full-width mode. Must not intercept
   pointer events — clicks here belong to the slider painted on top. */
.gg-fw-placeholder {
    pointer-events: none;
}

/* ── Track / Slide ────────────────────────── */
.gg-slider-track { position:relative; width:100%; height:100%; }
.gg-slide {
    position:absolute; inset:0;
    opacity:0; transition:opacity 0.7s ease;
    pointer-events:none;
}
.gg-slide.is-active { opacity:1; pointer-events:auto; }

/* ── BG image (independent opacity) ─────────── */
.gg-slide-bg {
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    opacity:var(--gg-img-opacity,1);
    z-index:0; transition:opacity .3s;
}

/* ── Overlay ──────────────────────────────── */
.gg-slide-overlay {
    position:absolute; inset:0;
    /* color set via inline style per-slide */
    z-index:1;
}

/* ══════════════════════════════════════════
   Elementor gap fix — scoped to slider only
══════════════════════════════════════════ */

/* The widget container div — only when it contains the slider */
.elementor-widget-shortcode:has(.gg-slider-wrap) .elementor-widget-container {
    padding:     0 !important;
    margin:      0 !important;
    line-height: 0 !important;
    font-size:   0 !important;
}

/* Any <p> WordPress wraps the shortcode output in — slider only */
.elementor-widget-shortcode:has(.gg-slider-wrap) .elementor-widget-container > p {
    margin:  0 !important;
    padding: 0 !important;
}

/* The widget element itself */
.elementor-widget.elementor-widget-shortcode:has(.gg-slider-wrap) {
    margin:  0 !important;
    padding: 0 !important;
}

/* Parent container/column */
.elementor-element:has(> .elementor-widget-container > .gg-slider-wrap),
.elementor-element:has(> .elementor-widget-container > p > .gg-slider-wrap) {
    padding: 0 !important;
}

/* Restore normal line-height inside the slider itself */
.elementor-widget-shortcode .gg-slider-wrap,
.elementor-widget-shortcode .gg-slider-wrap * {
    line-height: normal;
    font-size:   initial;
}
.elementor-widget-shortcode .gg-slide-heading,
.elementor-widget-shortcode .gg-slide-subheading,
.elementor-widget-shortcode .gg-slide-btn {
    font-size:   revert !important;
    line-height: revert !important;
}

/* ── Content ──────────────────────────────── */
.gg-slide-content {
    position:absolute; inset:0; z-index:2;
    display:flex; flex-direction:column;
    padding:clamp(20px,5vw,80px) clamp(24px,8vw,120px);
}

/* ── Heading wrapper ─────────────────────── */
.gg-heading-wrap {
    max-width:800px;
    margin-bottom:0.4em;
}

/* Full-width bg: stretch outside the content padding */
.gg-heading-wrap.gg-fw-bg,
.gg-subheading-wrap.gg-fw-bg {
    max-width:none;
    width:auto;
    /* Pull left to cancel content padding, extend right */
    margin-left:  calc(-1 * clamp(24px, 8vw, 120px));
    margin-right: calc(-1 * clamp(24px, 8vw, 120px));
    border-radius:0 !important;
}

/* ── Heading ──────────────────────────────── */
.gg-slide-heading {
    font-size:clamp(1.8rem,5vw,4rem);
    font-weight:700;
    line-height:1.15;
    margin:0 !important;
    padding:0 !important;
    text-shadow:0 2px 8px rgba(0,0,0,0.35);
    border:none !important;
    background:none !important;
}

/* ── Subheading wrapper ───────────────────── */
.gg-subheading-wrap {
    max-width:700px;
    margin-bottom:1.4em;
    transition:background .3s, padding .3s;
}

/* ── Subheading text ─────────────────────── */
.gg-slide-subheading {
    font-size:clamp(0.9rem,2vw,1.2rem);
    line-height:1.65;
    margin:0 !important;
    padding:0 !important;
    text-shadow:0 1px 4px rgba(0,0,0,0.3);
    font-weight:400;
}
.gg-subheading-wrap[style*="background"] .gg-slide-subheading,
.gg-heading-wrap[style*="background"] .gg-slide-heading {
    text-shadow:none;
}

/* ── Button row ──────────────────────────── */
.gg-btn-row {
    display:flex;
    width:100%;
    margin-top:4px;
}

/* ── Button ──────────────────────────────── */
.gg-slide-btn {
    display:inline-block;
    padding:clamp(10px,1.4vw,14px) clamp(20px,3vw,36px);
    border-width:2px;
    border-style:solid;
    border-radius:4px;
    font-size:clamp(0.82rem,1.4vw,0.98rem);
    font-weight:600;
    letter-spacing:0.06em;
    text-decoration:none !important;
    text-transform:uppercase;
    cursor:pointer;
    white-space:nowrap;
    transition:filter .2s ease;
    /* NO color/background/border defaults here — all come from inline style */
}
.gg-slide-btn:hover { filter:brightness(1.18); text-decoration:none !important; }
.gg-slide-btn:focus { outline:2px solid rgba(255,255,255,0.6); text-decoration:none !important; }

/* ── Arrows ──────────────────────────────── */
.gg-arrow {
    position:absolute; top:50%; transform:translateY(-50%);
    z-index:2; background:rgba(0,0,0,0.28); border:none;
    color:#fff; font-size:clamp(26px,4vw,44px); line-height:1;
    width:clamp(38px,5vw,56px); height:clamp(38px,5vw,56px);
    cursor:pointer; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s; padding:0;
    appearance:none; -webkit-appearance:none;
}
.gg-arrow:hover  { background:rgba(0,0,0,0.58); }
.gg-arrow-prev   { left:clamp(10px,2vw,24px); }
.gg-arrow-next   { right:clamp(10px,2vw,24px); }

/* ── Dots ────────────────────────────────── */
.gg-dots {
    position:absolute; bottom:14px; left:50%; transform:translateX(-50%);
    z-index:2; display:flex; gap:8px; align-items:center;
}
.gg-dot {
    width:10px; height:10px; border-radius:50%;
    background:rgba(255,255,255,0.5); border:none;
    cursor:pointer; padding:0;
    transition:background .2s, transform .2s;
    appearance:none; -webkit-appearance:none;
}
.gg-dot.is-active { background:#fff; transform:scale(1.3); }
.gg-dot:hover     { background:rgba(255,255,255,0.85); }

/* ── Responsive ──────────────────────────── */
@media (max-width:768px) {
    .gg-slider-wrap  { height:max(280px,calc(var(--gg-height,500px)*.65)); }
    .gg-slide-content { padding:clamp(16px,5vw,28px); }
    .gg-slide-heading  { font-size:clamp(1.5rem,8vw,3rem); }
    .gg-slide-subheading { font-size:clamp(.82rem,3.5vw,1.05rem); }
    .gg-heading-wrap.gg-fw-bg,
    .gg-subheading-wrap.gg-fw-bg {
        margin-left:calc(-1*clamp(16px,5vw,28px));
        margin-right:calc(-1*clamp(16px,5vw,28px));
    }
}
@media (max-width:480px) {
    .gg-slider-wrap { height:max(240px,calc(var(--gg-height,500px)*.55)); }
    .gg-slide-heading { font-size:clamp(1.3rem,9vw,2.2rem); }
    .gg-arrow { display:none; }
}

/* ── Kadence / Elementor resets ──────────── */
.gg-slider-wrap * { box-sizing:border-box; }
.gg-slide-content p { margin-bottom:0; }
