/* ===========================================================
   Audere — all shared styles
   Single source of truth. No inline <style> blocks anywhere.
   =========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

/* -----------------------------------------------------------
   Base
   ----------------------------------------------------------- */
html {
    scrollbar-gutter: stable;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: 'Inter', sans-serif;
    color: #0b1b32;
    overflow-x: hidden;
}

/* -----------------------------------------------------------
   Layout containers
   ----------------------------------------------------------- */
.fixed-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

.fixed-container-cta {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

@media (min-width: 1024px) {
    .fixed-container-cta {
        padding: 0 100px;
    }
}

/* -----------------------------------------------------------
   Navigation — active state
   ----------------------------------------------------------- */
.nav-active {
    position: relative;
    color: #1d4ed8 !important;
}

@media (min-width: 1024px) {
    .nav-active::after {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        bottom: -14px;
        height: 2px;
        background: #1d4ed8;
    }
}

@media (max-width: 1023px) {
    #mobile-menu .nav-active {
        border-left: 4px solid #1d4ed8;
        padding-left: 12px;
        background: #f8faff;
    }
}

/* -----------------------------------------------------------
   Buttons
   ----------------------------------------------------------- */
.gold-btn {
    background-color: #d4a537;
    color: #ffffff;
    transition: background-color 0.3s;
}

.gold-btn:hover {
    background-color: #c4951f;
}

/* -----------------------------------------------------------
   Hero
   ----------------------------------------------------------- */
.hero-gradient {
    background: linear-gradient(100deg, #1d4ed8 0%, #2563eb 55%, #60a5fa 100%);
}

/* -----------------------------------------------------------
   Logo marquee
   ----------------------------------------------------------- */
.marquee {
    position: relative;
    overflow: hidden;
    width: 100%;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 80px, #000 calc(100% - 80px), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 80px, #000 calc(100% - 80px), transparent 100%);
}

.marquee-track {
    display: flex;
    gap: 5rem;
    width: max-content;
    animation: marquee-scroll 32s linear infinite;
}

.marquee:hover .marquee-track {
    animation-play-state: paused;
}

.marquee-item {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 160px;
}

@keyframes marquee-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
    .marquee-track {
        animation: none;
    }
}

/* -----------------------------------------------------------
   Programme cards
   ----------------------------------------------------------- */
.prog-card {
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    border: 1px solid #eef1f5;
    transition: transform 0.3s ease;
}

.prog-card:hover {
    transform: translateY(-5px);
}

/* -----------------------------------------------------------
   Testimonials
   ----------------------------------------------------------- */
.testimonials-bg {
    background: #eaf2fc;
    border-radius: 0 0 40px 40px;
}

@media (min-width: 1024px) {
    .testimonials-bg {
        border-radius: 0 0 56px 56px;
    }
}

/* -----------------------------------------------------------
   FAQ accordion
   ----------------------------------------------------------- */
.faq-item summary {
    list-style: none;
    cursor: pointer;
    outline: none;
}

.faq-item summary::-webkit-details-marker {
    display: none;
}

.faq-item[open] {
    border-color: #3b82f6;
}

.faq-item[open] .faq-icon-plus {
    display: none;
}

.faq-item:not([open]) .faq-icon-minus {
    display: none;
}

/* -----------------------------------------------------------
   Responsive grid utility
   ----------------------------------------------------------- */
.responsive-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .responsive-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* -----------------------------------------------------------
   Events page
   ----------------------------------------------------------- */
.events-hero {
    background: linear-gradient(100deg, #081327 0%, #0f2a5a 45%, #1d4ed8 100%);
}

.form-input {
    width: 100%;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 14px 16px;
    font-family: inherit;
    color: #0b1b32;
    background: #ffffff;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.form-input::placeholder {
    color: #9ca3af;
}

.form-input:focus {
    border-color: #1d4ed8;
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.12);
}

textarea.form-input {
    min-height: 120px;
    resize: vertical;
}

.pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 56px;
    min-width: 110px;
    padding: 0 22px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #ffffff;
    color: #4b5563;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
}

.pill:hover {
    border-color: #cbd5e1;
}

input[type="radio"]:checked + .pill {
    background: #eaf2fc;
    border-color: #1d4ed8;
    color: #1d4ed8;
    font-weight: 600;
}

input[type="radio"]:focus-visible + .pill {
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.15);
}

/* -----------------------------------------------------------
   About page
   ----------------------------------------------------------- */
.philosophy-bg {
    background: #1d6fd8;
}

.philosophy-quote {
    border-left: 4px solid #f5c33b;
}

.global-quote {
    border-left: 4px solid #cbd5e1;
}

.deeiper-list li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 10px;
}

.deeiper-list li::before {
    content: '';
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin-top: 3px;
    border-radius: 50%;
    background: #f5a623;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'><path d='M14.5 7.5 10 12l4.5 4.5L13 18l-6-6 6-6z' transform='rotate(180 12 12)'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px 12px;
}

.keynotes-list li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin-bottom: 8px;
    color: #374151;
    font-size: 14px;
}

.keynotes-list li::before {
    content: '';
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin-top: 4px;
    border-radius: 50%;
    background: #0b1b32;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'><path d='M14.5 7.5 10 12l4.5 4.5L13 18l-6-6 6-6z' transform='rotate(180 12 12)'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 10px 10px;
}

/* Podcast player */
.pill-speed {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 28px;
    border-radius: 14px;
    border: 1px solid #e5e7eb;
    color: #4b5563;
    font-size: 12px;
    font-weight: 500;
    background: #ffffff;
}

.play-btn {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #22c55e;
}

.progress-row {
    height: 1px;
    background: #e5e7eb;
    position: relative;
}

/* -----------------------------------------------------------
   Event details page
   ----------------------------------------------------------- */
.dot-list li {
    position: relative;
    padding-left: 18px;
    margin-bottom: 8px;
    color: #4b5563;
    font-size: 15px;
    line-height: 1.6;
}

.dot-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 10px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #4b5563;
}

.qty-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    height: 56px;
    padding: 0 8px;
}

.qty-btn {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #0b1b32;
    border-radius: 6px;
}

.qty-btn:hover {
    background: #f3f4f6;
}

.qty-value {
    flex: 1;
    text-align: center;
    font-size: 16px;
    color: #0b1b32;
    font-weight: 500;
}

/* -----------------------------------------------------------
   Flatpickr overrides — matches site form-input style
   ----------------------------------------------------------- */
.flatpickr-calendar {
    font-family: 'Inter', sans-serif;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(15, 23, 42, 0.10);
}

.flatpickr-day.selected,
.flatpickr-day.selected:hover {
    background: #1d4ed8;
    border-color: #1d4ed8;
}

.flatpickr-day:hover {
    background: #eaf2fc;
}

.flatpickr-months .flatpickr-month,
.flatpickr-weekdays {
    background: #1d4ed8;
    color: #ffffff;
}

.flatpickr-weekday {
    color: rgba(255,255,255,0.8) !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
    color: #ffffff;
}

.flatpickr-prev-month svg,
.flatpickr-next-month svg {
    fill: #ffffff;
}

.flatpickr-time input:hover,
.flatpickr-time input:focus {
    background: #eaf2fc;
}
