﻿/* =======================
   GLOBAL RESET
   ======================= */
html {
    font-size: 14px;
    overflow-x: hidden;
    position: relative;
    min-height: 100%;
}

body {
    margin-top: 70px;
    margin-bottom: 60px;
    font-family: 'Montserrat', sans-serif;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
}

/* main content expands to push footer down */
main {
    flex: 1;
    padding-top: 50px;
}

/* footer styling */
.footer {
    background-color: #000;
    color: white;
    margin-top: auto;
    padding: 15px;
    text-align: center;
}

/* =======================
   NAVBAR
   ======================= */
.custom-navbar {
    background: #000; /* solid black always */
    padding: 0.8rem 0;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.8); /* new shadow */
}

    .custom-navbar .nav-link {
        position: relative;
        color: #fff !important;
        font-weight: 500;
        margin: 0 10px;
        transition: color 0.3s ease;
    }

        /* Yellow underline animation */
        .custom-navbar .nav-link::after {
            content: "";
            position: absolute;
            left: 0;
            bottom: -5px;
            width: 0%;
            height: 2px;
            background-color: #E88012;
            transition: width 0.3s ease-in-out;
        }

        .custom-navbar .nav-link:hover::after {
            width: 100%;
        }

        .custom-navbar .nav-link:hover {
            color: #E88012 !important;
        }

        .custom-navbar .nav-link.active {
            color: #E88012 !important;
        }

/* Navbar buttons */
.btn-light {
    color: #000;
    font-weight: 600;
    border-radius: 20px;
}

.btn-orange {
    background-color: #E88012;
    color: black;
    font-weight: 600;
    border-radius: 20px;
    border: 2px solid transparent; /* reserve border space */
    transition: all 0.3s;
}

    .btn-orange:hover {
        background-color: #000;
        color: #E88012;
        border-color: #E88012; /* just change color, not size */
    }

/* =======================
   Email Confirmation Warning Div
   ======================= */
.verify-alert {
    position: fixed;
    top: 70px; 
    left: 0;
    width: 100%;
    z-index: 2000; 
    margin: 0;
    border-radius: 0;
}


/* =======================
   HERO BANNER
   ======================= */
.hero-banner {
    position: relative;
    height: 80vh;
    width: 100%;
    background: linear-gradient(135deg, #000, #111);
    color: white;
    overflow: hidden;
    display: flex;
    align-items: center;
}

.hero-content {
    max-width: 650px;
    z-index: 2;
}

    .hero-content h1 {
        font-size: 3rem;
        font-weight: 700;
        line-height: 1.2;
    }

    .hero-content p {
        font-size: 1.2rem;
        color: #ddd;
    }

/* CTA button */
.btn-cta {
    background-color: #E88012;
    color: #000;
    font-weight: 600;
    padding: 12px 28px;
    border-radius: 30px;
    border: 2px solid transparent; /* reserve border space */
    transition: all 0.3s ease-in-out;
    text-decoration: none;
}

    .btn-cta:hover {
        background-color: #000;
        color: #E88012;
        border-color: #E88012; /* only color changes */
    }

/* Floating circles */
.shape {
    position: absolute;
    border-radius: 50%;
    opacity: 0.2;
    animation: float 8s ease-in-out infinite;
}

.shape-1 {
    width: 180px;
    height: 180px;
    background: #E88012;
    top: 15%;
    left: -60px;
}

.shape-2 {
    width: 120px;
    height: 120px;
    background: #FFD700;
    bottom: 20%;
    right: -50px;
    animation-delay: 2s;
}

.shape-3 {
    width: 90px;
    height: 90px;
    background: #E88012;
    bottom: 30%;
    left: 40%;
    animation-delay: 4s;
}

@keyframes float {
    0%, 100% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-20px);
    }
}

/* Single animated glowing line */
.moving-line {
    position: absolute;
    left: 0;
    width: 100%;
    height: 3px; /* line thickness */
    background: linear-gradient(90deg, transparent, #E88012, transparent);
    opacity: 0.7;
    animation: moveLine 5s linear infinite;
    z-index: 1; /* stays behind text */
    top: 80%; /* placed lower in hero */
}

@keyframes moveLine {
    0% {
        transform: translateX(-100%);
        opacity: 0;
    }

    20% {
        opacity: 0.9;
    }

    50% {
        opacity: 0.7;
    }

    80% {
        opacity: 0.9;
    }

    100% {
        transform: translateX(100%);
        opacity: 0;
    }
}

/* Default (desktop/tablet) */
.moving-line {
    top: 90%; /* keep as you already set */
}

/* On small screens: push line lower */
@media (max-width: 767.98px) {
    .moving-line {
        top: 98%; /* almost bottom of banner */
    }
}




/* Responsive adjustments */
@media (max-width: 768px) {
    .hero-banner {
        height: 70vh;
        text-align: center;
    }

    .hero-content {
        max-width: 100%;
    }

        .hero-content h1 {
            font-size: 2rem;
        }

        .hero-content p {
            font-size: 1rem;
        }
}

/* =======================
   OTHER ELEMENTS
   ======================= */
.custom-img-container {
    overflow: hidden;
}

.custom-img {
    max-height: 200px;
    object-fit: cover;
    transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}

    .custom-img:hover {
        transform: scale(1.05);
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
        cursor: pointer;
    }

.custom-container {
    margin-top: 70px !important;
}

.side-picture {
    position: relative;
    background: url('/images/shared/banner-mobile.jpg') no-repeat center center;
    background-size: cover;
    width: 100%;
    max-width: 100vw;
    overflow-x: hidden;
}

.my-labels {
    font-weight: bold;
    font-size: 15px;
}

.card-img-top {
    height: 200px;
    object-fit: cover;
}

.btn-black-outline {
    background-color: black;
    color: #ffcc00;
    border: none;
}

    .btn-black-outline:hover {
        background-color: #1a1a1a;
        color: #ffcc00;
    }

.newsletter-section {
    margin-top: 0;
    border-top: none;
}

@media (max-width: 768px) {
    #events h2 {
        writing-mode: horizontal-tb !important;
        transform: none !important;
    }
}

/* =======================
   FEATURE POST BLOCK
   ======================= */

/* Feature Post Block (Right Side of Hero) */
.feature-post {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 16px;
    padding: 20px;
    color: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    height: 100%;
}

/* Image area */
/* Feature image only shows when an actual image exists */
.feature-image {
    height: auto !important; /* no fixed height */
    width: 45% !important; /* slightly larger so text balances well */
    display: flex;
    align-items: center;
    justify-content: center;
}

    .feature-image img {
        width: 100%;
        height: auto !important; /* maintain aspect ratio */
        object-fit: contain !important; /* show full image (no edges cut) */
        border-radius: 12px;
    }

        /* Explicitly hide only when no src */
        .feature-image img[src=""],
        .feature-image img:not([src]) {
            display: none;
        }



/* Text area */
.feature-body {
    flex: 1;
}

    .feature-body h4 {
        margin: 0 0 8px;
        font-size: 1.25rem;
        color: #FFD700; /* yellow accent */
    }

    .feature-body p {
        font-size: 0.95rem;
        margin-bottom: 0;
        color: #ddd;
    }

.feature-title {
    cursor: pointer !important; /* force pointer cursor */
    color: #E88012;
    margin: 0;
    text-decoration: none;
}

    .feature-title:hover {
        color: yellow;
    }

.feature-cta {
    color: #E88012;
    text-decoration: none;
}

.feature-cta:hover {
    color: yellow;
}
/* Responsive: stack vertically */
@media (max-width: 991.98px) {
    .feature-post {
        flex-direction: column;
        text-align: center;
    }

    .feature-image {
        width: auto !important;
        max-width: 100px;
    }
}

/* === SOME OVERRIDES === */

/* Keep feature card from stretching the full column */
.feature-post {
    height: auto;
}

/* Clamp summary lines (safe on small screens) */
.feature-summary {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

/* Let the hero grow naturally on mobile so the stacked feature card fits.
   Your current mobile rule sets height:70vh; which can crop/push content. */
@media (max-width: 767.98px) {
    .hero-banner {
        height: auto !important; /* allow content height */
        min-height: 0 !important;
        padding: 2.5rem 0 1.25rem; /* comfortable spacing */
        text-align: center; /* keep your current alignment */
    }

    /* Make the feature post compact on phones */
    .feature-post {
        flex-direction: row !important; /* avoid super-tall stack */
        text-align: left;
        align-items: flex-start;
        gap: 12px;
    }

    .feature-image {
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        flex: 0 0 auto;
    }

        .feature-image img {
            width: 96px;
            height: 96px;
            object-fit: cover;
            border-radius: 12px;
            display: block;
        }
}


/* CHANGES for ARTICLE DETAILS PAGE*/

/* On md+ keep a comfortable hero height without forcing the feature card to stretch */
@media (min-width: 768px) {
    .hero-banner {
        min-height: 70vh;
    }
    /* you already have 80vh; this is a gentler floor */
}

/* Article image: show the whole image on md+ (no crop) */
@media (min-width: 768px) {
    .article-image-wrap {
        aspect-ratio: auto !important; /* stop forcing a box */
        height: auto; /* let image define height */
        background: #0d0d0d; /* subtle letterbox if needed */
    }

    .article-hero-img {
        width: 100%;
        height: auto !important;
        object-fit: contain !important; /* show full image */
        object-position: center center; /* center it in the box */
        display: block;
    }
}


/* On small screens let the image take natural height above text */
@media (max-width: 767.98px) {
    .article-image-wrap {
        aspect-ratio: auto !important; /* stop forcing a box */
        height: auto; /* let image define height */
        background: #0d0d0d; /* subtle letterbox if needed */
    }

    .article-hero-img {
        width: 100%;
        height: auto !important;
        object-fit: contain !important; /* show full image */
        object-position: center center; /* center it in the box */
        display: block;
    }
}



