/* =========================================================
   AIC FESTIVAL 2027 — GLOBAL BRAND FOUNDATION V4
   AIC gold palette supplied by the project
 
   ========================================================= */

:root{
    --primary:#F4A300;
    --primary-dark:#D88900;
    --secondary:#F4A300;
    --gold-light:#FFC04A;
    --gold-soft:#FFF8EE;
    --accent:#F4A300;
    --off-white:#FFF8EE;
    --sand:#FFF8EE;
    --radius-lg:18px;

    --black:#111111;
    --charcoal:#1E1E1E;
    --white:#FFFFFF;
    --cream:#FFF8EE;
    --text:#333333;
    --muted:#666666;
    --border:#E8E8E8;

    --shadow:0 10px 30px rgba(0,0,0,.08);
    --shadow-lg:0 20px 45px rgba(0,0,0,.14);
    --radius:15px;
    --transition:.35s ease;
    --container:1200px;
}

*,
*::before,
*::after{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
    overflow-x:hidden;
}

body{
    margin:0;
    color:var(--text);
    background:var(--white);
    font-family:Arial,Helvetica,sans-serif;
    line-height:1.7;
    overflow-x:hidden;
}

img,
video{
    max-width:100%;
}

img{
    display:block;
}

a{
    color:inherit;
    text-decoration:none;
}

button,
input,
select,
textarea{
    font:inherit;
}

.container{
    width:min(calc(100% - 40px),var(--container));
    margin-inline:auto;
}

h1,h2,h3,h4,h5,h6{
    color:var(--black);
    line-height:1.2;
}

.section-heading{
    max-width:850px;
    margin:0 auto 60px;
    text-align:center;
}

.section-heading span{
    color:var(--primary);
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
}

.section-heading h2{
    margin:15px 0;
    font-size:clamp(2rem,4vw,2.65rem);
}

.section-heading p{
    color:var(--muted);
}

.btn-primary,
.btn-secondary,
.btn-warning,
.btn-outline,
.btn-outline-light,
.btn-outline-dark{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:15px 35px;
    border:2px solid transparent;
    border-radius:30px;
    font-weight:700;
    text-decoration:none;
    transition:var(--transition);
}

.btn-primary,
.btn-warning{
    background:linear-gradient(135deg,#F4A300,#D88900);
    color:#fff;
}

.btn-primary:hover,
.btn-warning:hover{
    background:#F4A300;
    border-color:#F4A300;
    color:#fff;
    transform:translateY(-4px);
}

.btn-secondary{
    background:#111;
    border-color:#111;
    color:#fff;
}

.btn-secondary:hover{
    background:#F4A300;
    border-color:#F4A300;
    color:#fff;
    transform:translateY(-4px);
}

.btn-outline{
    background:transparent;
    border-color:#F4A300;
    color:#111;
}

.btn-outline:hover{
    background:#F4A300;
    color:#fff;
}

.btn-outline-light{
    background:transparent;
    border-color:#fff;
    color:#fff;
}

.btn-outline-light:hover{
    background:#F4A300;
    border-color:#F4A300;
    color:#fff;
}

/* HEADER */

.header{
    position:absolute;
    inset:0 0 auto;
    z-index:1000;
    width:100%;
    background:transparent;
    transition:.35s ease;
}

.header.scrolled{
    position:fixed;
    background:rgba(17,17,17,.97);
    box-shadow:0 5px 25px rgba(0,0,0,.16);
    backdrop-filter:blur(8px);
}

.nav-container{
    min-height:90px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
}

.brand{
    display:flex;
    align-items:center;
    gap:13px;
    min-width:0;
}

.brand img{
    width:auto;
    height:70px;
    max-width:95px;
    object-fit:contain;
}

.brand-name{
    display:flex;
    flex-direction:column;
    line-height:1.05;
}

.brand-name strong{
    color:#fff;
    font-size:.75rem;
    letter-spacing:.07em;
    white-space:nowrap;
}

.brand-name small{
    margin-top:5px;
    color:#F4A300;
    font-size:.67rem;
    font-weight:800;
    letter-spacing:.12em;
}

nav>ul{
    display:flex;
    align-items:center;
    gap:3px;
    margin:0;
    padding:0;
    list-style:none;
}

nav li{
    position:relative;
}

nav a{
    display:flex;
    align-items:center;
    gap:7px;
    min-height:44px;
    padding:10px 12px;
    color:#fff;
    font-size:.9rem;
    font-weight:700;
    transition:.3s ease;
}

nav a:hover,
nav a.active{
    color:#F4A300;
}

nav .register-btn{
    margin-left:6px;
    padding:11px 20px;
    background:linear-gradient(135deg,#F4A300,#D88900);
    border-radius:30px;
    color:#fff;
}

nav .register-btn:hover{
    color:#fff;
    background:#D88900;
}

.dropdown-menu{
    position:absolute;
    top:calc(100% + 8px);
    left:0;
    min-width:190px;
    margin:0;
    padding:8px;
    list-style:none;
    background:#111;
    border:1px solid #333;
    border-radius:12px;
    box-shadow:var(--shadow-lg);
    opacity:0;
    visibility:hidden;
    transform:translateY(8px);
    transition:.3s ease;
}

.dropdown:hover>.dropdown-menu,
.dropdown:focus-within>.dropdown-menu{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.dropdown-menu a{
    width:100%;
    border-radius:8px;
}

.dropdown-menu a:hover,
.dropdown-menu a.active{
    background:rgba(244,163,0,.12);
    color:#F4A300;
}

.menu-toggle{
    display:none;
    width:44px;
    height:44px;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.4);
    border-radius:9px;
    background:transparent;
    color:#fff;
}

/* BREADCRUMB */

.breadcrumb{
    padding:25px 0;
    background:#FFF8EE;
}

.breadcrumb .container{
    display:flex;
    align-items:center;
    gap:9px;
    flex-wrap:wrap;
}

.breadcrumb a{
    color:#F4A300;
    font-weight:600;
}

.breadcrumb a:hover{
    color:#D88900;
}

/* FOOTER */

.footer{
    background:#111;
    color:#fff;
    padding:70px 0 20px;
}

.footer-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:40px;
}

.footer-brand img{
    width:auto;
    height:88px;
    max-width:125px;
    object-fit:contain;
    margin-bottom:20px;
}

.footer h3,
.footer h4{
    margin:0 0 20px;
    color:#fff;
}

.footer p{
    color:#bbb;
    line-height:1.7;
}

.footer ul{
    margin:0;
    padding:0;
    list-style:none;
}

.footer ul li{
    margin-bottom:10px;
}

.footer a{
    color:#bbb;
}

.footer a:hover{
    color:#F4A300;
}

.footer-bottom{
    margin-top:40px;
    padding-top:20px;
    border-top:1px solid #333;
    color:#fcfafa;
    text-align:center;
}

.footer-bottom p{
    margin:0;
}


/* FOOTER SOCIAL LINKS */

.footer-social h4{
    margin:0 0 20px;
    color:#fff;
}

.social-links{
    display:flex;
    align-items:center;
    gap:10px;
}

.social-links a{
    width:42px;
    height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #333;
    border-radius:50%;
    background:transparent;
    color:#fff;
    transition:.3s ease;
}

.social-links a:hover{
    background:#F4A300;
    border-color:#F4A300;
    color:#111;
    transform:translateY(-3px);
}

/* BACK TO TOP */

#backToTop{
    position:fixed;
    right:20px;
    bottom:20px;
    z-index:999;
    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:50%;
    background:#F4A300;
    color:#111;
    box-shadow:var(--shadow);
    opacity:0;
    visibility:hidden;
    transform:translateY(10px);
    transition:.3s ease;
}

#backToTop.show{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

/* RESPONSIVE */

@media(max-width:1100px){
    .container{
        width:min(calc(100% - 32px),var(--container));
    }

    nav a{
        padding-inline:8px;
        font-size:.83rem;
    }
}

@media(max-width:900px){
    .menu-toggle{
        display:flex;
    }

    nav{
        position:absolute;
        top:100%;
        left:16px;
        right:16px;
        display:none;
        padding:10px;
        background:#111;
        border:1px solid #333;
        border-radius:12px;
        box-shadow:var(--shadow-lg);
    }

    nav.mobile-open{
        display:block;
    }

    nav>ul{
        display:flex;
        flex-direction:column;
        align-items:stretch;
    }

    nav a{
        width:100%;
        padding:12px 14px;
    }

    nav .register-btn{
        margin:5px 0 0;
        justify-content:center;
    }

    .dropdown-menu{
        position:static;
        display:none;
        width:100%;
        opacity:1;
        visibility:visible;
        transform:none;
        box-shadow:none;
        background:#1b1b1b;
    }

    .dropdown.open>.dropdown-menu{
        display:block;
    }

    .footer-grid{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:600px){
    .container{
        width:min(calc(100% - 24px),var(--container));
    }

    .nav-container{
        min-height:76px;
    }

    .brand img{
        height:56px;
        max-width:75px;
    }

    .brand-name strong{
        font-size:.6rem;
        letter-spacing:.045em;
    }

    .brand-name small{
        font-size:.52rem;
    }

    /* Mobile footer */
    .footer{
        padding:48px 0 18px;
    }

    .footer-grid{
        display:grid;
        grid-template-columns:1fr;
        gap:32px;
        width:100%;
    }

    .footer-brand,
    .footer-links,
    .footer-contact,
    .footer-social{
        width:100%;
        min-width:0;
    }

    .footer-brand{
        display:block;
    }

    .footer-brand img{
        height:72px;
        max-width:115px;
        margin:0 auto 16px;
    }

    .footer h3,
    .footer h4,
    .footer-brand p,
    .footer-grid > div:nth-child(3) p{
        text-align:center;
    }

    .footer ul{
        text-align:center;
    }

    .footer ul li{
        margin-bottom:9px;
    }

    .footer-social .social-links{
        justify-content:center;
    }

    .footer-bottom{
        margin-top:34px;
        padding-top:18px;
        padding-inline:12px;
    }

    .footer-bottom p{
        margin:0;
        font-size:.82rem;
        line-height:1.55;
    }

    .footer-credit{
        margin-top:4px;
        font-size:.76rem;
    }

    .btn-primary,
    .btn-secondary,
    .btn-warning,
    .btn-outline,
    .btn-outline-light,
    .btn-outline-dark{
        width:100%;
    }
}

@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,
    *::before,
    *::after{
        animation-duration:.01ms!important;
        transition-duration:.01ms!important;
    }
}
/* =========================================================
   FOOTER DEVELOPER CREDIT
   ========================================================= */

.footer-credit {
    margin: 8px 0 0;
    font-size: 0.82rem;
    line-height: 1.5;
    text-align: center;
    color: rgba(255, 255, 255, 0.58);
}

.footer-credit a {
    color: #F4A300;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.25s ease;
}

.footer-credit a:hover,
.footer-credit a:focus-visible {
    color: #FFC04A;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .footer-credit a {
        transition: none;
    }
}
