/* Bootstrap overrides */
:root {
    --bs-primary: #0B56EF;
    --bs-primary-rgb: 11, 86, 239;
    
    /* Brand Colors */
    --brand-navy: #020C58;
    --brand-navy-rgb: 2, 12, 88;
    --brand-teal: #3A8569;
    --brand-teal-rgb: 58, 133, 105;
    
    /* Font Sizes - Using clamp for responsive typography */
    --fs-display-4: clamp(2.5rem, 5vw, 3.5rem);
    --fs-display-6: clamp(1.5rem, 3vw, 2rem);
    --fs-lead: clamp(1.1rem, 2vw, 1.25rem);
    --fs-base: clamp(1rem, 1.5vw, 1.125rem);
    --fs-small: clamp(0.875rem, 1.2vw, 1rem);
}


/* Custom color utility classes */
.text-brand-navy { color: var(--brand-navy) !important; }
.text-brand-teal { color: var(--brand-teal) !important; }
.bg-brand-navy { background-color: var(--brand-navy) !important; }
.bg-brand-teal { background-color: var(--brand-teal) !important; }

/* Typography */
body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: var(--fs-base);
    color: #212529;
}

.display-4 { font-size: var(--fs-display-4); }
.display-6 { font-size: var(--fs-display-6); }
.lead { font-size: var(--fs-lead); }

/* General styles */
h1, h2, h3, h4, h5, h6 {
    color: var(--brand-navy);
}

/* Main content styles */
main {
    min-height: calc(100vh - 200px);
    position: relative;
    overflow: hidden;
}

/* Abstract Background Pattern */
.abstract-shapes {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

.abstract-shape {
    position: absolute;
    opacity: 0.07;
    transition: transform 0.5s ease;
}

/* Circle shape with gradient */
.shape-circle {
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: linear-gradient(45deg, var(--brand-navy), var(--brand-teal));
    top: -150px;
    right: -100px;
    animation: floatAnimation 20s infinite alternate ease-in-out;
}

/* Organic blob shape */
.shape-blob {
    width: 300px;
    height: 300px;
    background: var(--brand-teal);
    bottom: 10%;
    left: -100px;
    border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
    animation: blobAnimation 15s infinite alternate ease-in-out;
}

/* Dotted pattern */
.shape-dots {
    width: 200px;
    height: 200px;
    background-image: radial-gradient(var(--brand-navy) 2px, transparent 2px);
    background-size: 15px 15px;
    top: 30%;
    right: 10%;
    animation: rotateAnimation 30s linear infinite;
}

/* Abstract lines */
.shape-lines {
    width: 250px;
    height: 250px;
    background: repeating-linear-gradient(
        45deg,
        var(--brand-navy),
        var(--brand-navy) 2px,
        transparent 2px,
        transparent 10px
    );
    bottom: 15%;
    right: 20%;
    animation: floatAnimation 25s infinite alternate-reverse ease-in-out;
}


/* Animations */
@keyframes floatAnimation {
    0% { transform: translate(0, 0) rotate(0deg); }
    100% { transform: translate(20px, 20px) rotate(5deg); }
}

@keyframes blobAnimation {
    0% { border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%; }
    100% { border-radius: 70% 30% 30% 70% / 70% 70% 30% 30%; }
}

@keyframes rotateAnimation {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}


/* Responsive adjustments for abstract shapes */
@media (max-width: 768px) {
    .shape-circle {
        width: 300px;
        height: 300px;
        top: -100px;
        right: -50px;
    }

    .shape-blob {
        width: 200px;
        height: 200px;
        bottom: 5%;
        left: -50px;
    }

    .shape-dots {
        width: 150px;
        height: 150px;
        background-size: 10px 10px;
    }

    .shape-lines {
        width: 180px;
        height: 180px;
    }

    .shape-wave {
        width: 300px;
        height: 300px;
    }
}

@media (max-width: 576px) {
    .shape-circle {
        width: 200px;
        height: 200px;
        top: -50px;
        right: -30px;
    }

    .shape-blob {
        width: 150px;
        height: 150px;
        bottom: 3%;
        left: -30px;
    }

    .shape-dots {
        width: 100px;
        height: 100px;
        background-size: 8px 8px;
    }

    .shape-lines {
        width: 120px;
        height: 120px;
    }

    .shape-wave {
        width: 200px;
        height: 200px;
    }
}

/* Make sure content stays above shapes */
.content-wrapper {
    position: relative;
    z-index: 1;
}

/* Navigation styles */
.navbar {
    padding: clamp(0.5rem, 2vw, 1rem) 0;
    min-height: clamp(70px, 10vw, 90px);
    background-color: #fff !important;
}

.navbar-brand {
    font-weight: 700;
    font-size: clamp(1.25rem, 2vw, 1.5rem);
}

.navbar-brand img {
    height: clamp(50px, 8vw, 75px);
    width: auto;
}

.nav-link {
    font-weight: 600;
    font-size: var(--fs-base);
    padding: 0.5rem 0.75rem !important;
    transition: color 0.3s ease;
    color: var(--brand-navy) !important;
}

@media (min-width: 992px) {
    .nav-link {
        padding: 0.5rem clamp(1rem, 1.5vw, 1.25rem) !important;
    }
}

/* Footer styles */
.footer {
    background-color: #f8f9fa !important;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    padding: clamp(3rem, 5vw, 4rem) 0 clamp(2rem, 4vw, 3rem);
}

/* Organizers section */
.footer-organizers {
    margin-top: 0.5rem;
    width: 100%;
}

.organizer-logos-row {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: start;
    gap: clamp(1rem, 3vw, 3rem);
    flex-wrap: nowrap;
    width: 100%;
}

.organizer-group {
    flex: 1;
    display: flex;
    justify-content: center;
    max-width: 200px;
}

.organizer-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
    height: 100%;
}

.organizer-label {
    color: #4a5568;
    font-size: clamp(0.65rem, 1.2vw, 0.75rem);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0;
    opacity: 0.8;
    line-height: 1.2;
}

.organizer-logo {
    width: clamp(85px, 25vw, 150px);
    height: auto;
    transition: transform 0.3s ease;
    object-fit: contain;
}

.organizer-logo:hover {
    transform: translateY(-2px);
}

.footer-copyright {
    padding-top: clamp(2rem, 3vw, 2.5rem);
    margin-top: clamp(2rem, 3vw, 2.5rem);
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.footer-copyright p {
    font-size: var(--fs-small);
    color: #64748b;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .navbar-nav .nav-item {
        margin: 0.25rem 0;
    }
    
    .organizer-logos-row {
        gap: 1rem;
    }

    .organizer-group {
        max-width: 33%;
    }

    .organizer-header {
        gap: 0.5rem;
    }

    .organizer-label {
        font-size: clamp(0.6rem, 1.5vw, 0.7rem);
        letter-spacing: 0.3px;
    }
    
    .organizer-logo {
        width: clamp(70px, 20vw, 85px);
    }

    .shape-1 {
        width: 200px;
        height: 200px;
        top: -50px;
        right: -50px;
    }

    .shape-2 {
        width: 150px;
        height: 150px;
        bottom: 10%;
        left: -30px;
    }

    .shape-3 {
        width: 180px;
        height: 180px;
        bottom: -50px;
        right: 10%;
    }
}

@media (max-width: 576px) {
    .organizer-logos-row {
        gap: 0.75rem;
    }

    .organizer-group {
        max-width: 33%;
    }

    .organizer-header {
        gap: 0.4rem;
    }

    .organizer-label {
        font-size: clamp(0.55rem, 1.2vw, 0.6rem);
        letter-spacing: 0.2px;
    }

    .organizer-logo {
        width: clamp(60px, 18vw, 70px);
    }

    .shape-1 {
        width: 150px;
        height: 150px;
        top: -30px;
        right: -30px;
    }

    .shape-2 {
        width: 120px;
        height: 120px;
        bottom: 5%;
        left: -20px;
    }

    .shape-3 {
        width: 140px;
        height: 140px;
        bottom: -30px;
        right: 5%;
    }
} 