/* ===================================================
   GLOBAL CONFIGURATION
   =================================================== */
:root{
    /*  Bright Futuristic Palette  */
    --color-primary:#00e0ff;
    --color-primary-dark:#0093a3;
    --color-secondary:#ff008c;
    --color-secondary-dark:#c5006c;
    --color-accent:#ffe600;
    --color-bg:#0d0d0d;
    --color-surface:#1c1c1c;
    --color-light:#ffffff;
    --color-muted:#c4c4c4;
    --radius:12px;
    --transition-fast:.25s cubic-bezier(.55,.05,.65,.95);
    --transition-slow:.7s cubic-bezier(.22,1,.36,1);
    --shadow-elevate:0 8px 24px rgba(0,0,0,.4);
    --shadow-soft:0 4px 12px rgba(0,0,0,.25);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
    margin:0;
    font-family:'Source Sans Pro',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
    font-size:1rem;
    line-height:1.6;
    background:var(--color-bg);
    color:var(--color-light);
    overflow-x:hidden;
}

/* UTILITY */
.text-center{text-align:center;}
.text-light{color:var(--color-light);}
.section-title{
    font-family:'Playfair Display',serif;
    font-size:2.25rem;
    font-weight:900;
    color:var(--color-primary);
    margin:0 0 1rem;
    text-shadow:1px 1px 3px rgba(0,0,0,.5);
}

/* ===================================================
   LAYOUT HELPERS
   =================================================== */
.container{
    width:90%;
    max-width:1280px;
    margin:0 auto;
}
.section{
    padding:4rem 0;
    position:relative;
}
.block-layout{display:block;}
.columns{display:flex;flex-wrap:wrap;gap:2rem;}
.column{flex:1 1 100%;}
.column.is-two-thirds{flex:0 0 66.666%;}
.flex{display:flex;}
.flex-center{justify-content:center;align-items:center;}
.space-between{justify-content:space-between;}

.parallax{
    background-attachment:fixed;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
}
@media(max-width:1024px){
    .parallax{background-attachment:scroll;}
}

/* ===================================================
   HEADER & NAV
   =================================================== */
.site-header{
    position:fixed;
    top:0;left:0;width:100%;
    z-index:1000;
    background:rgba(13,13,13,.8);
    backdrop-filter:blur(6px);
    box-shadow:var(--shadow-soft);
}
.logo{
    font-family:'Playfair Display',serif;
    font-size:1.5rem;
    color:var(--color-accent);
    text-decoration:none;
}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem;}
.main-nav a{
    color:var(--color-light);
    text-decoration:none;
    font-weight:600;
    position:relative;
    transition:color var(--transition-fast);
}
.main-nav a::after{
    content:'';
    position:absolute;
    left:0;bottom:-4px;
    width:0;height:2px;
    background:var(--color-secondary);
    transition:width var(--transition-fast);
}
.main-nav a:hover{color:var(--color-primary);}
.main-nav a:hover::after{width:100%;}
/* Burger */
.burger{
    display:none;
    flex-direction:column;
    gap:5px;
    background:none;border:0;
    cursor:pointer;
}
.burger span{
    width:26px;height:3px;
    background:var(--color-light);
    transition:transform .3s ease,opacity .3s ease;
}
/* Mobile Nav */
@media(max-width:768px){
    .burger{display:flex;}
    .main-nav{position:fixed;inset:0 0 0 50%;background:var(--color-surface);transform:translateX(100%);transition:transform var(--transition-slow);}
    .main-nav.open{transform:translateX(0);}
    .main-nav ul{flex-direction:column;padding:4rem 2rem;}
}

/* ===================================================
   HERO
   =================================================== */
.hero{
    height:100vh;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
}
.hero-title{
    font-family:'Playfair Display',serif;
    font-size:3rem;
    color:#fff;
    margin:0 0 1rem;
}
.hero-subtitle{
    font-size:1.25rem;
    max-width:640px;
    margin:0 auto 2rem;
    color:#fff;
}
.progress-bar{width:80%;max-width:400px;height:4px;background:rgba(255,255,255,.2);margin:2rem auto 0;border-radius:4px;overflow:hidden;}
.progress{
    display:block;height:100%;
    width:0;background:var(--color-secondary);
    animation:loadbar 5s infinite;
}
@keyframes loadbar{
    0%{width:0;}
    50%{width:100%;}
    100%{width:0;}
}

/* ===================================================
   BUTTONS
   =================================================== */
.btn,button,input[type='submit']{
    display:inline-block;
    padding:.75rem 1.5rem;
    border:none;
    border-radius:var(--radius);
    background:var(--color-secondary);
    color:var(--color-light);
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
    transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);
}
.btn-primary{background:var(--color-primary);}
.btn:hover,button:hover,input[type='submit']:hover{
    transform:translateY(-3px);
    box-shadow:0 6px 20px rgba(0,0,0,.35);
}
.btn:active{transform:translateY(0);}

/* ===================================================
   CARDS
   =================================================== */
.cards-wrapper,.stats-grid{
    display:grid;
    grid-gap:2rem;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
}
.card{
    background:var(--color-surface);
    border-radius:var(--radius);
    box-shadow:var(--shadow-soft);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding:1.5rem;
    transition:transform var(--transition-fast);
}
.card:hover{transform:translateY(-6px);}
.card-image,.image-container{width:100%;height:200px;overflow:hidden;}
.card-image img,.image-container img{
    width:100%;height:100%;object-fit:cover;
    display:block;margin:0 auto;
}
.card-content h3{margin:0 0 .5rem;font-family:'Playfair Display',serif;font-size:2rem;color:var(--color-secondary);}

/* ===================================================
   TIMELINE / PROCESS
   =================================================== */
.timeline{display:grid;grid-template-columns:1fr;gap:2rem;margin-top:2rem;}
.step{
    background:var(--color-surface);
    padding:2rem;
    border-left:6px solid var(--color-primary);
    border-radius:var(--radius);
    box-shadow:var(--shadow-soft);
}
.step-number{
    font-family:'Playfair Display',serif;
    font-size:2rem;
    color:var(--color-accent);
}

/* ===================================================
   EVENTS
   =================================================== */
.events-timeline{display:grid;gap:1.5rem;}
.event{
    display:flex;flex-direction:column;align-items:flex-start;
    background:rgba(255,255,255,.06);
    padding:1.5rem;border-radius:var(--radius);
    box-shadow:var(--shadow-soft);
}
.event .date{
    font-weight:700;
    color:var(--color-primary);
    margin-bottom:.5rem;
}

/* ===================================================
   FAQ
   =================================================== */
details{background:var(--color-surface);padding:1rem 1.5rem;border-radius:var(--radius);margin-bottom:1rem;box-shadow:var(--shadow-soft);}
details summary{cursor:pointer;font-weight:600;color:var(--color-accent);}
details[open] summary{color:var(--color-primary);}

/* ===================================================
   CONTACT FORM
   =================================================== */
.contact-form{max-width:600px;margin:0 auto;display:grid;gap:1.25rem;}
.field label{display:block;font-weight:700;margin-bottom:.25rem;}
.field input,.field textarea{
    width:100%;padding:.75rem 1rem;border-radius:var(--radius);
    border:1px solid var(--color-muted);
    background:rgba(255,255,255,.05);color:var(--color-light);
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--color-primary);}

/* ===================================================
   FOOTER
   =================================================== */
.site-footer{
    background:#111;
    padding:3rem 0;
    text-align:center;
}
.footer-links a,.social-links a{
    color:var(--color-muted);
    margin:0 .5rem;
    text-decoration:none;
    transition:color var(--transition-fast);
}
.footer-links a:hover,.social-links a:hover{color:var(--color-primary);}
.social-links{margin-top:1rem;font-weight:700;}
/* "Icon-like" underline animation for social text */
.social-links a::before{
    content:'';
    display:block;
    width:0;height:2px;
    background:var(--color-secondary);
    margin:0 auto 4px;
    transition:width var(--transition-fast);
}
.social-links a:hover::before{width:100%;}

/* ===================================================
   MODAL
   =================================================== */
.modal{display:none;position:fixed;z-index:2000;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);justify-content:center;align-items:center;}
.modal-content{
    background:var(--color-surface);
    padding:2rem;
    border-radius:var(--radius);
    box-shadow:var(--shadow-elevate);
    max-width:480px;width:90%;
    text-align:center;
}
.close-modal{position:absolute;top:1rem;right:1rem;font-size:1.5rem;cursor:pointer;color:var(--color-light);}

/* ===================================================
   PROGRESS INDICATORS
   =================================================== */
.progress-indicator{
    width:100%;
    height:6px;
    background:rgba(255,255,255,.1);
}
.progress-indicator span{
    display:block;
    height:100%;
    width:0;
    background:var(--color-accent);
    animation:progressAnim 10s linear infinite;
}
@keyframes progressAnim{
    0%{width:0;}
    50%{width:100%;}
    100%{width:0;}
}

/* ===================================================
   NON-LINEAR MOTION ANIMATIONS
   =================================================== */
@keyframes floatY{
    0%{transform:translateY(0);}
    50%{transform:translateY(-15px);}
    100%{transform:translateY(0);}
}
[data-animate='float']{animation:floatY 6s cubic-bezier(.3,.6,.4,1) infinite;}

/* ===================================================
   PAGE SPECIFIC
   =================================================== */
.legal-page{padding-top:100px;}
.success-page{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
}
.success-page .btn{margin-top:1.5rem;}

/* ===================================================
   IMAGE RULES & OVERLAYS
   =================================================== */
.section[data-overlay='dark']::before{
    content:'';
    position:absolute;inset:0;
    background:linear-gradient(rgba(0,0,0,.55),rgba(0,0,0,.35));
    z-index:0;
}
.section[data-overlay='dark']>*{position:relative;z-index:1;}

img{max-width:100%;height:auto;border-radius:var(--radius);}
body {
    margin: 0;
    font-family: 'Source Sans Pro', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 1rem;
    line-height: 1.6;
    background: var(--color-bg);
    color: #c3bdbd;
    overflow-x: hidden;
}