﻿:root {
    --beamy: #7D85D0;
    --ink: #1f1f1f;
    --card: rgba(125,133,208,.70);
    --white70: rgba(255,255,255,.70);
    --shadow: 15px 15px 8px rgba(0,0,0,.45);
}

* {
    box-sizing: border-box;
}

img {
    max-width: 100%;
    height: auto;
}

/* Your button stays the same (kept) */
.button-30 {
    align-items: center;
    appearance: none;
    background-color: #FCFCFD;
    border-radius: 4px;
    border-width: 0;
    box-shadow: rgba(45, 35, 66, 0.4) 0 2px 4px,rgba(45, 35, 66, 0.3) 0 7px 13px -3px,#D6D6E7 0 -3px 0 inset;
    box-sizing: border-box;
    color: #36395A;
    cursor: pointer;
    display: inline-flex;
    font-family: "JetBrains Mono", monospace;
    height: 48px;
    justify-content: center;
    line-height: 1;
    overflow: hidden;
    padding-left: 16px;
    padding-right: 16px;
    transition: box-shadow .15s,transform .15s;
    user-select: none;
    -webkit-user-select: none;
    touch-action: manipulation;
    white-space: nowrap;
    will-change: box-shadow,transform;
    font-size: 18px;
}

    .button-30:focus {
        box-shadow: #D6D6E7 0 0 0 1.5px inset, rgba(45, 35, 66, 0.4) 0 2px 4px, rgba(45, 35, 66, 0.3) 0 7px 13px -3px, #D6D6E7 0 -3px 0 inset;
    }

    .button-30:hover {
        box-shadow: rgba(45, 35, 66, 0.4) 0 4px 8px, rgba(45, 35, 66, 0.3) 0 7px 13px -3px, #D6D6E7 0 -3px 0 inset;
        transform: translateY(-2px);
        color: #7D85D0;
        font-weight: bold;
    }

    .button-30:active {
        box-shadow: #D6D6E7 0 3px 7px inset;
        transform: translateY(2px);
    }

body {
    margin: 0;
    font-family: 'Times New Roman', sans-serif;
    font-size: 15px;
    background: url("../../Images/registerBackground2.png");
    overflow-x: hidden;
}

html {
    height: 100%;
}

/* =========================
   HERO (Left/Right)
   ========================= */
.heroWrap {
    padding-top: 145px; /* navbar space */
    padding-left: 175px;
    padding-right: 175px;
}

.heroGrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: stretch;
}

.heroCard {
    background: var(--card);
    box-shadow: var(--shadow);
    border-radius: 6px;
    overflow: hidden;
    min-height: 750px;
}

/* Left */
.LeftArea {
}

.heroLeftTextBlock {
    padding: 32px 18px 0 18px;
}

.heroLeftText {
    margin: 0;
    text-align: center;
    font-size: 35px;
    color: var(--white70);
    line-height: 1.15;
}

.heroLeftTextSmall {
    font-size: 35px;
}

.heroDeskCutout {
    display: block;
    margin: 14px auto 0 auto;
    height: 400px;
    width: auto;
}

.heroLeftTextBlockBottom {
    padding-top: 20px;
    padding-bottom: 28px;
}

/* Right */
.RightArea {
    color: var(--white70);
}

.RightAreaHeader {
    margin: 18px 12px 10px 12px;
    text-align: center;
    font-size: 70px;
    font-family: 'New Machiato', sans-serif;
}

/* carousel controls color */
.carousel-control-prev-icon,
.carousel-control-next-icon {
    background-color: var(--beamy);
    width: 35px;
    height: 35px;
    border-radius: 8px;
}

/* Desktop carousel (2 images per slide) */
.heroCarouselDesktop {
    display: block;
}

.heroCarouselMobile {
    display: none;
}

.heroCarousel {
    padding: 0 12px 0 12px;
}

#carouselExampleIndicators .carousel-item {
    text-align: center;
}

#carouselExampleIndicators .heroShot {
    height: 440px;
    width: auto;
    display: inline-block;
    vertical-align: middle;
}

    #carouselExampleIndicators .heroShot:first-child {
        margin-right: 18px;
    }

.heroPricing {
    text-align: center;
    padding: 10px 12px 0 12px;
}

.RightAreaFooter {
    font-size: 50px;
    margin-top: 10px;
}

.RightAreaFooter2 {
    font-size: 12px;
    margin-top: -8px;
}

.heroCTA {
    display: flex;
    justify-content: center;
    padding: 14px 12px 22px 12px;
}

/* =========================
   NEW PAGE PREVIEWS
   ========================= */
.pagePreviews {
    padding: 55px 175px;
}

/* =========================
   SECTION TITLE (Animated)
   ========================= */
.sectionTitle {
    text-align: center;
    font-size: 56px;
    margin: 0 0 12px 0;
    font-family: 'New Machiato', 'Times New Roman', serif;
    letter-spacing: -0.02em;
    background: linear-gradient( 90deg, #7D85D0 0%, #9aa0da 35%, #6f757c 70%, #7D85D0 100% );
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: sectionFadeUp 0.8s ease-out forwards, sectionGradient 6s ease-in-out infinite;
    opacity: 0;
}

    .sectionTitle::after {
        content: "";
        display: block;
        width: 64px;
        height: 3px;
        margin: 14px auto 0 auto;
        border-radius: 999px;
        background: linear-gradient( 90deg, transparent, #7D85D0, transparent );
        opacity: 0.7;
    }

/* =========================
   SECTION SUBTITLE
   ========================= */
.sectionSub {
    text-align: center;
    max-width: 920px;
    margin: 0 auto 36px auto;
    padding: 14px 22px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 0.4px;
    color: #1f1f1f;
    background: linear-gradient( 90deg, rgba(125,133,208,0.28), rgba(255,255,255,0.85), rgba(125,133,208,0.28) );
    border-radius: 999px;
    box-shadow: 0 10px 28px rgba(0,0,0,0.14), inset 0 1px 0 rgba(255,255,255,0.85);
    animation: sectionFadeUp 0.9s ease-out forwards;
    opacity: 0;
}

/* =========================
   KEYFRAMES
   ========================= */
@keyframes sectionFadeUp {
    from {
        opacity: 0;
        transform: translateY(14px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes sectionGradient {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

@keyframes sectionSubGradient {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

/* =========================
   ACCESSIBILITY
   ========================= */
@media (prefers-reduced-motion: reduce) {
    .sectionTitle,
    .sectionSub {
        animation: none;
        opacity: 1;
        transform: none;
    }
}

.previewGrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 52px;
}

.previewCard {
    background: rgba(255,255,255,.75);
    border-radius: 10px;
    box-shadow: 10px 10px 14px rgba(0,0,0,.20);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.previewMedia {
    background: rgba(125,133,208,.10);
    padding: 18px;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 220px;
}

    .previewMedia img {
        max-height: 190px;
        object-fit: contain;
    }

.previewBody {
    padding: 16px 18px 18px 18px;
    color: var(--ink);
}

    .previewBody h3 {
        margin: 0 0 8px 0;
        font-size: 28px;
    }

    .previewBody p {
        margin: 0 0 12px 0;
        font-size: 16px;
        line-height: 1.35;
    }

.previewBtn {
    display: inline-block;
    text-decoration: none;
    background: var(--beamy);
    color: white;
    padding: 10px 14px;
    border-radius: 10px;
    font-weight: 600;
}
    .previewBtn,
    .previewBtn:hover,
    .previewBtn:focus,
    .previewBtn:active,
    .previewBtn:visited {
        text-decoration: none !important;
        color: #fff !important;
    }

/* =========================
   3D MODEL SECTION
   ========================= */
.modelSection {
    padding: 10px 175px 0 175px;
}

.modelInner {
    text-align: center;
}

.modelDiv {
    margin: 24px auto 0 auto;
    width: 100%;
    max-width: 900px;
    position: relative; /* needed for overlay */
}

#container3D {
    width: 100%;
    height: 450px; /* was 520 */
    overflow: hidden;
}

    #container3D canvas {
        display: block;
        width: 100% !important;
        height: 100% !important;
        margin-top: 50px;
    }

/* ===== NEW: Canvas overlay hint button (top-left) ===== */
.modelHint {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -80%);
    z-index: 50;
    width: 210px;
    max-width: calc(100% - 28px);
    padding: 14px 14px 12px 14px;
    border-radius: 18px;
    border: 1px solid rgba(255,255,255,0.70);
    background: rgba(255,255,255,0.30);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 14px 30px rgba(0,0,0,0.18);
    color: #1f1f1f;
    cursor: default;
    user-select: none;
    transition: width .28s ease, transform .20s ease, background .20s ease, box-shadow .20s ease;
    outline: none;
    margin-bottom: 20px;
}

.modelHintTop {
    display: flex;
    align-items: center;
    gap: 10px;
}

.modelHintPill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(125,133,208,0.35);
    border: 1px solid rgba(125,133,208,0.55);
    font-weight: 900;
    letter-spacing: 0.6px;
    font-size: 18px;
}

.modelHintMini {
    font-size: 12px;
    font-weight: 700;
    opacity: 0.85;
    white-space: nowrap;
}

/* ===== Toggle open/close on click ===== */
.modelHint.isOpen {
    width: 360px;
    background: rgba(255,255,255,0.42);
    box-shadow: 0 18px 40px rgba(0,0,0,0.22);
    transform: translate(-50%, -90%);
}

    .modelHint.isOpen .modelHintBody {
        max-height: 200px;
        opacity: 1;
    }

/* Mobile centering version (match your existing overrides) */
@media (max-width: 1250px) {
    .modelHint.isOpen {
        width: min(420px, calc(100% - 24px)) !important;
        transform: translateX(-50%) !important;
    }
}

/* Hidden details by default */
.modelHintBody {
    margin-top: 10px;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height .30s ease, opacity .20s ease;
}

.modelHintTitle {
    font-weight: 900;
    font-size: 14px;
    letter-spacing: 0.3px;
    margin-bottom: 4px;
}

.modelHintText {
    font-size: 13px;
    line-height: 1.35;
    font-weight: 700;
    opacity: 0.95;
}

/* Expand on hover (desktop) OR focus (mobile tap) */
.modelHint:hover,
.modelHint:focus {
    width: 360px;
    background: rgba(255,255,255,0.42);
    box-shadow: 0 18px 40px rgba(0,0,0,0.22);
    transform: translate(-50%, -90%);
}

    .modelHint:hover .modelHintBody,
    .modelHint:focus .modelHintBody {
        max-height: 200px;
        opacity: 1;
    }

.modelHint {
    pointer-events: auto;
}

/* =========================
   INSTALLATIONS SECTION
   ========================= */
.installationsWrap {
    padding: 40px 175px 70px 175px;
}

.installationsInner {
    background: rgba(255,255,255,.70);
    border-radius: 10px;
    padding: 26px;
}

.installTitle {
    text-align: center;
    font-family: 'My Big Heart', cursive;
    font-size: 64px;
    margin: 0;
}

.installSub {
    text-align: center;
    margin-top: 6px;
    margin-bottom: 18px;
    font-size: 18px;
}

.installGrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    align-items: start;
}

.installButtons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 10px;
}

    .installButtons button {
        border: none;
        padding: 10px;
        cursor: pointer;
        border-radius: 8px;
        box-shadow: 4px 4px 10px rgba(0,0,0,.15);
        font-size: 14px;
    }

.installationbtnimg {
    height: 90px;
    width: 170px;
    object-fit: contain;
}

.installationbtnRow1 {
    background-color: #ffffff;
}

.installationbtnRow2 {
    background-color: #ffeee6;
}

.installationbtnRow3 {
    background-color: #ffddcc;
}

.installationbtnRow4 {
    background-color: #ffccb3;
}

.installFeatured {
    position: static !important; /* stop sticky */
    top: auto !important;
    align-self: start;
    max-height: none;
    height: auto;
    overflow: visible;
}

.featuredPhoto {
    height: 400px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

.installationsTextTop {
    font-size: 30px;
    font-weight: bold;
    margin-top: 10px;
}

.installationsTextBelow {
    font-size: 18px;
    margin-top: 8px;
}

.installCTA {
    margin-top: 14px;
}

/* =========================
   MID BREAKPOINT (1780 -> 981)
   ========================= */
@media (max-width: 1780px) {
    .heroWrap {
        margin-top: 15px;
        padding-left: 90px;
        padding-right: 90px;
        padding-top: 135px;
    }

    .heroGrid {
        gap: 16px;
    }

    .heroCard {
        min-height: 640px;
    }

    .heroLeftText {
        font-size: 28px;
    }

    .heroLeftTextSmall {
        font-size: 28px;
    }

    .heroDeskCutout {
        height: 320px;
    }

    .RightAreaHeader {
        font-size: 56px;
    }

    .RightAreaFooter {
        font-size: 38px;
    }

    .RightAreaFooter2 {
        font-size: 12px;
    }

    #carouselExampleIndicators .heroShot {
        height: 340px;
    }

        #carouselExampleIndicators .heroShot:first-child {
            margin-right: 14px;
        }
}

/* =========================
   MOBILE BREAKPOINTS
   ========================= */
@media (max-width: 1250px) {
    #container3D {
        height: 350px;
        margin-top: 5px;
    }

    .modelHint {
        margin-top: -80px;
        margin-bottom: 80px;
    }

    .heroWrap {
        margin-top: 25px;
        padding-left: 16px;
        padding-right: 16px;
        padding-top: 120px;
    }

    .heroGrid {
        grid-template-columns: 1fr;
    }

    .heroCard {
        min-height: 0;
    }

    .RightArea {
        order: 1;
    }

    .LeftArea {
        order: 2;
    }

    .RightAreaHeader {
        font-size: 44px;
    }

    .RightAreaFooter {
        font-size: 34px;
    }

    .heroLeftText {
        font-size: 26px;
    }

    .heroLeftTextSmall {
        font-size: 24px;
    }

    .heroDeskCutout {
        height: 280px;
    }

    .heroCarouselDesktop {
        display: none !important;
    }

    .heroCarouselMobile {
        display: block !important;
    }

    #carouselMobile .carousel-item {
        text-align: center;
    }

    #carouselMobile .heroShotSingle {
        width: 100%;
        max-height: 360px;
        object-fit: contain;
        display: block;
        margin: 0 auto;
    }

    .pagePreviews {
        padding: 30px 16px;
    }

    .sectionTitle {
        font-size: 40px;
    }

    .previewGrid {
        grid-template-columns: 1fr;
    }

    .previewMedia {
        min-height: 180px;
    }

    .modelSection {
        padding: 10px 16px 0 16px;
    }

    .modelTitle {
        font-size: 22px;
        margin-bottom: 20px;
    }

    #container3D {
        height: 450px;
    }

    .modelHint {
        left: 10px;
        top: 10px;
        width: 200px;
    }

        .modelHint:hover,
        .modelHint:focus {
            width: min(360px, calc(100% - 20px));
        }

    .installationsWrap {
        padding: 18px 16px 50px 16px;
    }

    .installTitle {
        font-size: 44px;
    }

    .installGrid {
        grid-template-columns: 1fr;
    }

    .installButtons {
        grid-template-columns: repeat(2, minmax(0,1fr));
    }

    .installationbtnimg {
        width: 130px;
        height: 72px;
    }

    .featuredPhoto {
        height: 280px;
    }
}

@media (max-width: 520px) {
    .installButtons {
        grid-template-columns: 1fr;
    }

    #container3D {
        height: 240px;
    }
}

.installationsWrap,
.installationsInner,
.installGrid {
    overflow: visible;
}

@media (min-width: 981px) {
    .installGrid {
        align-items: start;
    }

    .featuredPhoto {
        max-height: 60vh;
        width: auto;
    }
}

/* =========================================================
   INSTALL FEATURED: Desktop should scroll normally (not sticky)
   ========================================================= */
@media (max-width: 980px) {
    .installFeatured {
        position: static !important; /* stop sticky */
        top: auto !important;
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }
}

@media (min-width: 981px) {
    .installFeatured {
        position: static !important; /* stop sticky */
        top: auto !important;
        align-self: auto !important;
    }
}

/* =========================================================
   MOBILE INSTALLATIONS DROPDOWN (sleek + animated)
   ========================================================= */
.installMobileSelect {
    display: none;
}

@media (max-width: 980px) {
    .installMobileSelect {
        display: block;
        margin: 10px 0 14px 0;
    }

    .installButtons {
        display: none;
    }

    .installSelectBtn {
        width: 100%;
        border: 0;
        border-radius: 14px;
        padding: 12px 14px;
        background: rgba(255,255,255,.92);
        box-shadow: 8px 8px 18px rgba(0,0,0,.12);
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 10px;
        text-align: left;
        cursor: pointer;
        position: relative;
        overflow: hidden;
    }

    .installSelectLabel {
        display: block;
        font-size: 12px;
        opacity: .7;
        letter-spacing: .3px;
        margin-bottom: 2px;
    }

    .installSelectValue {
        display: block;
        font-size: 16px;
        font-weight: 800;
        color: var(--ink);
        transform: translateY(0);
        transition: transform .25s ease, letter-spacing .25s ease, opacity .25s ease;
    }

    .installSelectChevron {
        align-self: center;
        font-size: 16px;
        opacity: .7;
        transition: transform .25s ease, opacity .25s ease;
    }

    .installSelectMenu {
        margin-top: 10px;
        background: rgba(255,255,255,.92);
        border-radius: 14px;
        box-shadow: 8px 8px 18px rgba(0,0,0,.12);
        overflow: hidden;
        max-height: 0;
        opacity: 0;
        transform: translateY(-6px);
        pointer-events: none;
        transition: max-height .35s ease, opacity .25s ease, transform .25s ease;
    }

    .installSelectItem {
        width: 100%;
        border: 0;
        background: transparent;
        padding: 12px 14px;
        text-align: left;
        cursor: pointer;
        font-weight: 700;
        color: var(--ink);
        opacity: 0;
        transform: translateY(-6px);
    }

        .installSelectItem:hover {
            background: rgba(125,133,208,.10);
        }

    .installMobileSelect.is-open .installSelectMenu {
        max-height: 520px;
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }

    .installMobileSelect.is-open .installSelectChevron {
        transform: rotate(180deg);
        opacity: 1;
    }

    .installMobileSelect.is-open .installSelectValue {
        transform: translateY(-1px);
        letter-spacing: .2px;
    }

    .installMobileSelect.is-open .installSelectItem {
        animation: installItemIn .35s ease forwards;
    }

        .installMobileSelect.is-open .installSelectItem:nth-child(1) {
            animation-delay: 0.02s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(2) {
            animation-delay: 0.04s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(3) {
            animation-delay: 0.06s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(4) {
            animation-delay: 0.08s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(5) {
            animation-delay: 0.10s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(6) {
            animation-delay: 0.12s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(7) {
            animation-delay: 0.14s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(8) {
            animation-delay: 0.16s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(9) {
            animation-delay: 0.18s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(10) {
            animation-delay: 0.20s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(11) {
            animation-delay: 0.22s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(12) {
            animation-delay: 0.24s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(13) {
            animation-delay: 0.26s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(14) {
            animation-delay: 0.28s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(15) {
            animation-delay: 0.30s;
        }

        .installMobileSelect.is-open .installSelectItem:nth-child(16) {
            animation-delay: 0.32s;
        }

    @keyframes installItemIn {
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}

html {
    overflow-x: hidden;
    overflow-y: auto;
    height: auto;
    width: 100% !important;
}

body {
    position: relative;
    overflow-x: hidden;
}

/* ✅ Force the Try Me hint to stay centered on mobile */
@media (max-width: 1250px) {
    .modelHint {
        left: 50% !important;
        right: auto !important;
        top: 10px !important;
        transform: translateX(-50%) !important;
        width: min(360px, calc(100% - 24px)) !important;
        max-width: calc(100% - 24px) !important;
    }

        .modelHint:hover,
        .modelHint:focus {
            width: min(420px, calc(100% - 24px)) !important;
            transform: translateX(-50%) !important;
        }
}

@media (max-width: 520px) {
    .modelHint {
        top: 10px !important;
        width: calc(100% - 24px) !important;
    }

    .modelHintMini {
        white-space: normal !important;
    }
}

/* =========================================================
   FLUX overlay (moves via JS transform)
   ========================================================= */
#containerFlux,
#containerFlux.fluxCorner {
    position: fixed;
    z-index: 9999;
    pointer-events: none;
    top: 250px;
    left: 18px;
    width: clamp(170px, 20vw, 340px);
    aspect-ratio: 4 / 5;
    height: auto;
    overflow: visible;
    transform: translate3d(0, 0, 0);
    will-change: transform;
    contain: paint;
}

@media (max-width: 420px) {
    #containerFlux,
    #containerFlux.fluxCorner {
        top: 210px;
        left: 10px;
        width: 160px;
        aspect-ratio: 4 / 5;
        height: auto;
    }
}

@media (min-width: 421px) and (max-width: 1024px) {
    #containerFlux,
    #containerFlux.fluxCorner {
        top: 230px;
        left: 14px;
        width: clamp(180px, 22vw, 320px);
        aspect-ratio: 4 / 5;
        height: auto;
    }
}

@media (min-width: 1025px) {
    #containerFlux,
    #containerFlux.fluxCorner {
        width: clamp(180px, 18vw, 360px);
        aspect-ratio: 3 / 4;
        height: auto;
    }
}

#containerFlux canvas,
#containerFlux.fluxCorner canvas {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

#containerFlux canvas,
#containerFlux.fluxCorner canvas {
    pointer-events: auto;
    cursor: pointer;
    position: relative;
    z-index: 1;
}

/* =========================================================
   ✅ MODAL LIGHTBOX (TRANSPARENT + NO BACKDROP)
   ========================================================= */

/* Make it clear images are clickable */
/* ✅ Remove magnifying-glass cursor on desktop (and keep it clickable) */
img.js-zoomable,
#carouselExampleIndicators img.js-zoomable,
#carouselMobile img.js-zoomable {
    cursor: pointer !important;
}


/* Transparent modal shell */
.beamyLightboxModal .modal-dialog {
    width: min(92vw, 1100px);
    max-width: 1100px;
}

.beamyLightboxModal .modal-content.beamyLightboxContent {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* Close button */
.beamyLightboxClose {
    position: absolute;
    top: 8px;
    right: 10px;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    font-size: 28px;
    line-height: 44px;
    background: rgba(255,255,255,0.22);
    color: #fff;
    z-index: 5;
}

/* Carousel image display */
.beamyLightboxModal .carousel-item {
    text-align: center;
}

.beamyLightboxModal .beamyLightboxImg {
    width: 100%;
    height: auto;
    max-height: 92vh;
    object-fit: contain;
    border-radius: 14px;
    background: transparent;
}

/* Make prev/next controls visible on transparent background */
.beamyLightboxModal .carousel-control-prev,
.beamyLightboxModal .carousel-control-next {
    width: 12%;
}

/* Keep your rounded icon style */
.beamyLightboxModal .carousel-control-prev-icon,
.beamyLightboxModal .carousel-control-next-icon {
    background-color: var(--beamy);
    width: 40px;
    height: 40px;
    border-radius: 10px;
}

/* =========================================
   3D MODEL BACKGROUND (SAFE + MINIMAL)
   ========================================= */
#container3D {
    position: relative;
    background-image: url("../../Images/TryMeBg.png");
    background-size: cover;
    background-position: center -30px;
    background-repeat: no-repeat;
    border-radius: 18px;
    margin-bottom: 50px;
}

    #container3D canvas {
        position: relative;
        z-index: 1;
        display: block;
        margin: 0 auto;
    }

.modelInner {
    text-align: center;
}

.modelHint {
    position: static !important;
    transform: none !important;
    margin: 0 auto 12px auto !important;
    z-index: auto !important;
    display: inline-block;
}

.modelDiv {
    margin: 0 auto;
    width: 100%;
    max-width: 900px;
}

/* Always show the background image (desktop + mobile) */
#container3D {
    background-image: url("../../Images/TryMeBg.png") !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-position: center -30px !important;
}

@media (max-width: 1250px) {
    #container3D {
        background-position: center -30px !important;
    }
}

/* TRY ME HINT ABOVE THE MODEL — NO CLIPPING */
.modelDiv {
    padding-top: 78px;
    overflow: visible !important;
}

.modelHint {
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    margin: 0 !important;
    z-index: 20 !important;
}

#container3D {
    overflow: visible !important;
}

    #container3D canvas {
        display: block;
        margin: 0 auto !important;
    }

/* MOBILE spacing */
@media (max-width: 1250px) {
    .modelDiv {
        padding-top: -36px !important;
    }

    #container3D {
        margin-top: -36px !important;
    }

        #container3D canvas {
            margin-top: -36px !important;
        }
}

@media (max-width: 520px) {
    .modelDiv {
        padding-top: -36px !important;
    }
}


/* =========================================================
   FIX: Add BACKGROUND for beamyLightboxModal (Bootstrap modal)
   - restores a nice dark backdrop
   - adds a dark/glass panel behind the image
   ========================================================= */

/* 1) Bring back the dim backdrop (you currently set it to opacity:0) */
.modal-backdrop.show {
    opacity: .75 !important; /* adjust .55 - .85 */
}

/* 2) Keep the modal shell centered and sized */
.beamyLightboxModal .modal-dialog {
    width: min(92vw, 800px);
    max-width: 800px;
}

/* 3) Give the modal content a background again (this is the key) */
.beamyLightboxModal .modal-content.beamyLightboxContent {
    background: rgba(125,133,209,0.85) !important; /* dark panel */
    border: 1px solid rgba(255,255,255,0.10) !important;
    box-shadow: 0 20px 70px rgba(0,0,0,0.70) !important;
    border-radius: 18px !important;
    padding: 14px !important;
}

/* 4) Image styling stays clean */
.beamyLightboxModal .beamyLightboxImg {
    background: transparent;
    border-radius: 14px;
}

/* 5) Close button stays visible on dark panel */
.beamyLightboxClose {
    background: rgba(255,255,255,0.14);
}


/* =========================================================
   MOBILE: Disable lightbox modal entirely
   ========================================================= */
@media (max-width: 768px) {

    /* Prevent Bootstrap modal from showing on mobile */
    .beamyLightboxModal.modal.show {
        display: none !important;
    }

    /* Also hide the backdrop if it tries to appear */
    .modal-backdrop {
        display: none !important;
    }
}

/* 🔥 HARD OVERRIDE: Install Featured must NEVER be sticky/fixed */
.installationsWrap .installFeatured,
.installationsWrap .installGrid .installFeatured {
    position: static !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    inset: auto !important;
    transform: none !important;
}


/* =========================================================
   INSTALLATIONS: make the RIGHT side (installFeatured) sticky
   ========================================================= */

/* Important: sticky only works if parents don't clip overflow */
.installationsWrap,
.installationsInner,
.installGrid {
    overflow: visible;
}

/* Desktop/tablet: 2-column layout */
@media (min-width: 981px) {

    /* Make sure grid items can shrink properly */
    .installGrid {
        align-items: start;
    }

    /* Sticky right column */
    .installFeatured {
        position: sticky;
        top: 120px; /* adjust if your navbar is taller */
        align-self: start; /* required for sticky inside grid */
        max-height: calc(100vh - 140px);
        overflow: auto; /* if description becomes long, it scrolls inside */
        padding-bottom: 10px;
    }

        /* Optional: nicer internal scrolling (won't affect anything else) */
        .installFeatured::-webkit-scrollbar {
            width: 10px;
        }

        .installFeatured::-webkit-scrollbar-thumb {
            background: rgba(125,133,208,.45);
            border-radius: 10px;
        }
}

/* Mobile: turn sticky off so it behaves normally */
@media (max-width: 980px) {
    .installFeatured {
        position: static;
        max-height: none;
        overflow: visible;
    }
}



/* =========================================================
   ✅ RESTORE installFeatured scrolling + sticky (DESKTOP)
   Put this at the VERY BOTTOM of your CSS
   ========================================================= */

/* Sticky requires parents NOT to clip overflow */
.installationsWrap,
.installationsInner,
.installGrid {
    overflow: visible !important;
}

@media (min-width: 981px) {

    /* Restore sticky & internal scrolling even if older rules tried to kill it */
    .installationsWrap .installGrid .installFeatured {
        position: sticky !important;
        top: 145px !important; /* matches your navbar spacing */
        align-self: start !important;
        max-height: calc(100vh - 170px) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding-bottom: 12px;
        -webkit-overflow-scrolling: touch;
    }
}

/* Mobile: normal flow */
@media (max-width: 980px) {
    .installationsWrap .installGrid .installFeatured {
        position: static !important;
        max-height: none !important;
        overflow: visible !important;
    }
}
