/* Design tokens & refined transitions */
:root{
    --brand: #D0634B;
    --brand-dark: #d94414;
    --muted: #666666;
    --elevation-1: 0 6px 18px rgba(0,0,0,0.08);
    --ease-smooth: cubic-bezier(.2,.9,.2,1);
    --ease-fast: cubic-bezier(.4,0,.2,1);
    --action-duration: 240ms;
}

* { transition-timing-function: var(--ease-fast); }

/* Respect user pref for reduced motion */
@media (prefers-reduced-motion: reduce) {
    * { 
        transition: none !important; 
        animation: none !important; 
        /* transition: all 1ms !important;
        animation: forwards 1ms !important; */
    }
}
body {
    font-family: "Poppins", sans-serif;
    background-color: #ffffff;
    margin: 0;
    padding: 0;
}
h1,h2,h3,h4,h5,h6 {
    color: #333;
    margin: 0;
    padding: 0;
}
.text-primary{
    color: #D0634B !important;
}
.bg-primary{
    background: #D0634B !important;
}
/* Banner 2nd Section */
.banner-2nd {
    position: relative;
    /* min-height: 520px; */
    width: 100%;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 0;
    margin-bottom: 0;
    padding: 100px 0px;
}
.banner-2nd .banner-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(120deg, rgba(0,0,0,0.7) 60%, rgba(240,90,40,0.5) 100%);
    z-index: 1;
    /* border-radius: 0 0 40px 40px; */
}
.banner-2nd .banner-content {
    position: relative;
    z-index: 2;
    padding: 80px 0 60px 0;
    max-width: 700px;
    margin: 0 auto;
}
.banner-2nd h2 {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 18px;
    letter-spacing: 1px;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.banner-2nd p {
    font-size: 1.2rem;
    margin-bottom: 30px;
    color: #fff;
    text-shadow: 0 1px 4px rgba(0,0,0,0.2);
}
.banner-2nd .btn-main {
    /* margin-top: 10px; */
    box-shadow: 0 2px 8px rgba(240,90,40,0.15);
}
.banner-2nd .btn-outline-light {
    border-width: 2px;
    font-weight: 600;
    margin-bottom: 10px;
}
.btn-outline-primary{
    border-color: #D0634B;
    color: #D0634B;
}
.btn-outline-primary:hover{
    border-color: #D0634B;
    background-color: #D0634B !important;
    color: #f7f7f7;
}

/* Navbar */
.navbar {
    /* background-color: rgba(0, 0, 0, 0.7); */
    position: fixed;
    width: 100%;
    z-index: 10;
}

/* Top bar */
.top-bar {
    transition: transform 0.35s ease, opacity 0.35s ease;
    will-change: transform, opacity;
}
.topbar-hidden {
    transform: translateY(-120%);
    opacity: 0;
}

/* Navbar when scrolled */
.navbar.scrolled {
    /* background: #ffffff; */
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
    transition: background 0.3s ease, box-shadow 0.3s ease;
}
.navbar.scrolled .nav-link {
    color: var(--brand) !important;
}
.navbar.scrolled .navbar-brand img {
    filter: none; /* prevent any color filter if applied */
}

/* ensure content doesn't sit under fixed navbar */
body.has-fixed-navbar {
    padding-top: 80px; /* default; JS will adjust to actual navbar height */
}

/* Site navbar hide and fixed navbar show behavior */
#siteNavbar {
    transition: transform 0.35s ease, opacity 0.35s ease;
    will-change: transform, opacity;
}
#siteNavbar.site-hidden {
    transform: translateY(-120%);
    opacity: 0;
    pointer-events: none;
}

#fixedNavbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1060;
    transform: translateY(-120%);
    transition: transform 0.28s ease;
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
}
#fixedNavbar.visible {
    transform: translateY(0);
}
#fixedNavbar .nav-link {
    color: #D0634B !important;
    font-weight: 600;
}
#fixedNavMain {
    background-color: #fff ;
}
#fixedNavMain .nav-link{
    font-size: 14px;
}
#fixedNavbar .navbar-brand img {
    height: 42px;
}

#fixedNavbar .navbar-toggler {
    border-color: rgba(0,0,0,0.08);
}
#fixedNavbar .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(208,99,75, 0.9)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

/* Responsive adjustments for fixed navbar */
@media (max-width: 767px) {
    #fixedNavbar .nav-link { font-size: 0.9rem; }
}

.navbar-nav .nav-link {
    color: #fff !important;
    font-weight: 500;
    text-transform: uppercase;
    margin: 0 8px;
}

.navbar-nav .nav-link.active {
    color: #D0634B !important;
}
#fixedNavMain .active{
    background-color: transparent !important;
    border-radius: 7px;
    border : 1px solid #d0634b;
}
nav .active{
    background-color: #d0634b;
    border-radius: 7px;
}
nav .active a{
    color: #fff !important;
}
.btn-main {
    background-color: #D0634B;
    border: none;
    color: #fff;
    padding: 8px 20px;
    border-radius: 10px;
    font-weight: 600;
}

.btn-main:hover {
    background-color: #d94414;
}
.show{
    background-color: #010101;
}
/* Hero Section */
.hero {
    position: relative;
    background: url('../images/banner/hero.png') center center/cover no-repeat;
    min-height: 700px;
    width: 100%;
    /* display: flex; */
    align-items: center;
    justify-content: center;
    text-align: center;
    /* margin-top: -200px; */
}

.overlay {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.55);
    z-index: 1;
}

/* YouTube hero background */
.hero-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 0;
}
.hero-video iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    /* ensure the iframe always covers the hero area */
    min-width: 100%;
    min-height: 115%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    pointer-events: none;
    opacity: 0.95;
}

/* hide video on small screens to save data */
@media (max-width: 767px) {
    .hero-video iframe{ 
        /* display: none;  */
        aspect-ratio: 1;
    }
    .hero { background-size: cover; }
}

.hero-content { z-index: 3; position: relative; }

.hero-content {
    position: relative;
    z-index: 2;
    padding-top: 250px;
    padding-bottom: 80px;
    max-width: 700px;
}

.countdown {
    display: flex;
    justify-content: center;
    gap: 25px;
    /* font-size: 1.1rem; */
    font-weight: 600;
    margin-bottom: 25px;
    color: white;
}
.hero-content p{
    color: white;
}
.counter{
    font-size: 30px;
}
.counter-title{
    font-size: 12px;
}
.countdown div {
    text-align: center;
}

.countdown span {
    display: block;
    /* font-size: 2rem; */
    font-weight: 700;
}

h1 {
    font-weight: 700;
    font-size: 2.5rem;
    margin-bottom: 15px;
}

p {
    font-size: 1.1rem;
    margin-bottom: 25px;
}
/* Footer */
.footer-dark {
    background-color: #292929; /* Dark background from image */
    color: #ffffff; /* Light text color */
    padding-top: 40px;
    font-size: 14px;
}
.footer-logo {
    max-width: 150px; /* Adjust size as needed */
    height: auto;
}
.footer-heading {
    color: #ffffff;
    font-weight: bold;
    margin-bottom: 15px;
}
.footer-links a,
.footer-contact a {
    color: #ffffff;
    text-decoration: none;
    display: block;
    margin-bottom: 8px;
    transition: color 0.2s;
}
.footer-links a:hover,
.footer-contact a:hover {
    color: #D0634B; /* Orange/Salmon hover effect */
}
.social-icons a {
    color: #ffffff;
    font-size: 20px;
    margin-right: 12px;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: transparent;
    text-decoration: none;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.12s ease;
}
.social-icons a:hover,
.social-icons a:focus {
    background-color: #D0634B; /* bootstrap primary in this theme */
    color: #ffffff;
    transform: translateY(-2px);
    outline: none;
}
.social-icons a:focus-visible {
    box-shadow: 0 0 0 4px rgba(208,99,75,0.14);
}
.email-input-group .form-control {
    background-color: #D0634B; /* Orange/Salmon background */
    border: none;
    color: #ffffff;
    padding-right: 0; /* Remove default padding for icon */
}
.email-input-group .form-control::placeholder {
    color: #ffffff;
    opacity: 0.8;
}
.email-input-group .btn {
    background-color: #D0634B; /* Darker orange/salmon for button */
    border: none;
    color: #ffffff;
}
.developer-bar {
    background-color: #222222; /* Slightly darker bottom bar */
    color: #999999;
    padding: 15px 0;
    text-align: center;
    margin-top: 40px;
}
.check-stall-link {
    color: #D0634B; /* Match the input color */
    text-decoration: none;
    font-size: 18px;
    font-weight: bold;
    display: block;
    margin-top: 20px;
}
/* Mobile adjustment */
@media (max-width: 767px) {
    .footer-logo-col, .footer-links-col, .footer-contact-col {
        text-align: center;
        margin-bottom: 30px;
    }
    .footer-links {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    .footer-links a {
        width: 45%; /* Two links per row */
    }
}
/* Animation */
.fade-in {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Cards, buttons and subtle motion */
.card, .event-card, .news-card {
    transition: transform var(--action-duration) var(--ease-smooth), box-shadow var(--action-duration) var(--ease-smooth), opacity var(--action-duration) var(--ease-smooth);
    will-change: transform, box-shadow, opacity;
}
.card:hover, .event-card:hover, .news-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--elevation-1);
}
.btn-main, .btn-outline-light, .btn-outline-primary {
    transition: transform 200ms var(--ease-fast), box-shadow 200ms var(--ease-fast), background-color 180ms var(--ease-fast);
}
.btn-main:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(208,99,75,0.14); }

/* Hero transitions */
.overlay { transition: background-color 300ms var(--ease-smooth), opacity 300ms var(--ease-smooth); }
.hero-video iframe { transition: transform 600ms var(--ease-smooth), opacity 400ms var(--ease-smooth); }

/* Ensure line-clamp uses standard property too */
.two-line {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
}

/* News listing & sidebar */
.news-card { border: none; overflow: hidden; }
.news-card img { width: 100%; height: 100%; object-fit: cover; }
.news-article img { max-height: 420px; object-fit: cover; width: 100%; }
.sidebar .calendar { background: linear-gradient(180deg, #fff 0%, #fff 100%); border: 1px solid rgba(0,0,0,0.06); }
.sidebar h5 { margin-bottom: 12px; }
.sidebar .input-group .form-control { border-right: 0; }
.sidebar .input-group .btn-main { border-radius: 0 6px 6px 0; }

/* Events */
.event-section{
    background-image: url('../images/bg/event.png');
    background-size: 100% auto;
    background-position: center;
    position: relative;
}
.bg-element{
    position: absolute;
    top: 40%;
    left: 20%;
    width: 300px;
    z-index: 0;
    pointer-events: none; /* Ensure it doesn't interfere with interactions */
}
.bg-element-top-left{
    width: 250px;
    position: absolute;
    top: 0;
    left: 0;
}
.bg-element-top-right{
    width: 250px;
    position: absolute;
    top: 0;
    right: 0;
}
.event-content{
    padding: 30px 150px;
}
.section-title {
    text-align: center;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 30px;
    position: relative;
}

.day-tabs {
    display: flex;
    justify-content: center;
    /* gap: 15px; */
    flex-wrap: wrap;
}

.day-tab {
    border: 2px solid #D0634B;
    /* border-radius: 10px; */
    padding: 10px 40px;
    text-align: center;
    cursor: pointer;
    background-color: #fff;
    transition: all 0.3s ease;
}

.day-tab.active {
    background-color: #D0634B;
    color: #fff;
}
.day-tab.active h5, .day-tab.active i{
    color: #fff !important;
}

.day-tab span {
    display: block;
    font-size: 0.9rem;
    color: #666;
}

.day-tab.active span {
    color: #fff;
}

.event-date {
    background-color: #D0634B;
    color: #fff;
    text-align: center;
    padding: 8px 20px;
    border-radius: 6px;
    font-weight: 600;
    display: inline-block;
    margin: 25px auto 10px;
}

.event-location {
    text-align: center;
    font-size: 0.95rem;
    color: #555;
    margin-bottom: 40px;
}

/* Timeline */
.schedule-item {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    /* margin-bottom: 40px; */
    position: relative;
}

.schedule-item::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #cecdcd;
    transform: translateX(-50%);
    z-index: 0;
}
.schedule-item::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 15px;
    bottom: 0;
    width: 20px;
    height : 20px;
    border-radius: 50%;
    border : 5px solid #fff;
    background: #cecdcd;
    transform: translateX(-50%);
    z-index: 0;
}
.schedule-dec{
    position: relative;
}
.schedule-dec::after{
    content: "";
    position: absolute;
    /* left: -4.3%; */
    bottom: 55px;
    width: 20px;
    height : 20px;
    border-radius: 50%;
    border : 5px solid #fff;
    background: #cecdcd;
    transform: translateX(-50%);
    z-index: 0;
}
.left::after{
    left: -4.3%;
}
.right::after{
    right: -8.6%;
}
.schedule-content {
    width: 50%;
    padding: 20px;
    position: relative;
    z-index: 2;
}

.schedule-content img {
    width: 100%;
    border-radius: 10px;
}

.schedule-text {
    width: 50%;
    padding: 20px;
}

.schedule-text h4 {
    font-weight: 600;
    margin-bottom: 5px;
    color : black;
}

.schedule-text p {
    font-size: 0.95rem;
    color: #555;
}

.schedule-text .time {
    color: #D0634B;
    font-weight: 500;
    font-size: 0.9rem;
    margin-bottom: 10px;
}

@media (max-width: 767px) {
    .schedule-item {
        flex-direction: column;
    }
    .schedule-item::before {
        display: none;
    }
    .schedule-content, .schedule-text {
        width: 100%;
        text-align: center;
    }
    .event-content{
        padding: 30px 10px;
    }
}

/* festival-archive */
.festival-archive{
    background-image: url('../images/bg/festival-archive-bg.png');
    background-size: 100% auto;
    background-position: top;
    position: relative;
    padding: 50px 0;
}
.event-card{
    position: relative;
}
.event-body{
    position: absolute;
    z-index: 1;
    top: 0;
    height: 100%;
    display: flex;
    align-items: center;
    padding: 20px;
    text-align: center;
    background-color: #29221f4d;
}
/* Client */
.client{
    width: 100%;
    aspect-ratio: 4/3;
    display: flex;
    align-items: center;
    justify-content: center;
    /* padding: 10px; */
}
.client-logo{
    max-width: 100%;
    height: 50px;
}

/* Sponsor border tiles with decorative dots */
.sponsor-border {
    border: .5px solid #D0634B;
    padding: 18px;
    /* border-radius: 8px; */
    background: #fff;
    transition: transform var(--action-duration) var(--ease-smooth), box-shadow var(--action-duration) var(--ease-smooth), border-color var(--action-duration);
    position: relative;
    margin-top: 0;
}

.sponsor-border:hover {
    /* transform: translateY(-6px); */
    box-shadow: 0 10px 30px rgba(0,0,0,0.06);
    border-color: rgba(208,99,75,0.12);
}
/* .sponsor-border::before, */
.border-after::after {
    content: '';
    position: absolute;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: var(--brand);
    opacity: 0.95;
}
/* .sponsor-border::before { 
    bottom: -7px;
    right: -7px;
    z-index: 9; 
} */
.border-after::after  {
    bottom: -7px;
    right: -7px;
    z-index: 9; 
}

/* Social Media Feed */
.social-media-section{
    background-image: url('../images/bg/social-media-bg.png');
    background-size: 100% auto;
    background-position: center;
    position: relative;
    padding: 50px 0;
    overflow: hidden;
}
.social-media-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(123, 33, 30, 0.7); /* #7B211E with 70% opacity */
    z-index: 1;
    pointer-events: none;
}
.social-media-section > * {
    position: relative;
    z-index: 2;
}

/* News Section */
.news-section .news-card {
    overflow: hidden;
    border: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.news-section .news-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}
.news-card .card-img-top {
    width: 100%;
    aspect-ratio: 4 / 3; /* enforce 4:3 ratio */
    height: auto; /* let aspect-ratio control height */
    object-fit: cover;
    display: block;
}
.news-card .card-img-overlay {
    background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.35) 60%, rgba(0,0,0,0.6) 100%);
    pointer-events: none;
}
.news-card .btn-outline-primary {
    pointer-events: auto; /* enable clicking through overlay */
}
.news-card .card-body { padding: 16px; }
.news-card .card-title { font-size: 1.05rem; font-weight: 700; margin-bottom: 8px; color: #333; }
.news-card .card-text { color: #666; margin-bottom: 0; }

/* two-line truncation */
.two-line {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* polished news visuals */
.news-media { position: relative; height: 160px; }
.news-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 380ms var(--ease-smooth); }
.news-card:hover .news-media img { transform: scale(1.06); }
.date-badge { position: absolute; top: 10px; left: 10px; background: rgba(0,0,0,0.7); color: #fff; padding: 6px 8px; border-radius: 6px; font-weight: 700; font-size: 0.85rem; }
.category-tag { position: absolute; bottom: 10px; left: 10px; background: rgba(208,99,75,0.95); color: #fff; padding: 4px 8px; border-radius: 20px; font-size: 0.75rem; }
.news-meta { font-size: 0.85rem; }

/* Sidebar card polish */
.sidebar .card, .sidebar .calendar { box-shadow: 0 6px 20px rgba(0,0,0,0.06); border: 1px solid rgba(0,0,0,0.04); }
.sidebar .list-unstyled a { color: #333; text-decoration: none; display: block; padding: 6px 0; }
.sidebar .list-unstyled a:hover { color: var(--brand); }

/* Calendar widget */
.calendar-grid { display: flex; flex-direction: column; gap: 6px; }
.calendar-row { display: grid; grid-template-columns: repeat(7,1fr); gap: 6px; }
.calendar-cell { background: transparent; border: none; padding: 8px; text-align: center; }
.calendar-weekday { font-weight: 700; color: #666; font-size: 0.8rem; }
.calendar-cell.day { background: #f8f8f8; border-radius: 8px; cursor: pointer; }
.calendar-cell.empty { background: transparent; }
.calendar-cell.day.has-event { background: linear-gradient(180deg,#fff,#fff); box-shadow: 0 4px 14px rgba(208,99,75,0.06); border: 1px solid rgba(208,99,75,0.12); }
.calendar-cell.day:hover { transform: translateY(-3px); }
.calendar-header .btn { padding: 4px 8px; }
.calendar-grid .calendar-row .calendar-cell.day { padding: 10px 6px; }
.calendar #calendarEvents { min-height: 40px; }

/* Google Calendar embed styling */
.calendar iframe { width: 100%; border: none; height: 300px; }

/* Pagination tweaks */
.pagination { justify-content: center; }

/* Circular pagination controls */
.pagination .page-item { margin: 0 6px; }
.pagination .page-link {
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #333;
    border: 1px solid rgba(0,0,0,0.08);
    background: #fff;
    transition: background-color var(--action-duration) var(--ease-fast), transform 160ms var(--ease-fast), box-shadow var(--action-duration);
}
.pagination .page-link:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 18px rgba(0,0,0,0.06);
}
.pagination .page-item.active .page-link {
    background: var(--brand);
    color: #fff;
    border-color: var(--brand);
    box-shadow: 0 8px 18px rgba(208,99,75,0.12);
}
.pagination .page-item.disabled .page-link {
    opacity: 0.5;
    pointer-events: none;
}
.pagination .page-link:focus {
    outline: none;
    box-shadow: 0 0 0 6px rgba(208,99,75,0.10);
}

@media (max-width: 576px) {
    .pagination .page-link { width: 34px; height: 34px; }
}

.news-card .card-img-overlay .btn { margin-bottom: 12px; }

/* Contact Page */
.contact-info li { margin-bottom: 10px; color: #333; }
.contact-info a { color: #D0634B; text-decoration: none; }
.contact-form .form-control { border-radius: 8px; }
.map-container { border-radius: 8px; overflow: hidden; box-shadow: 0 6px 20px rgba(0,0,0,0.06); }

/* Contact info cards */
.contact-info-grid .contact-card { background: #fff; border: 1px solid rgba(0,0,0,0.04); }
.contact-icon { width: 56px; height: 56px; background: #F7EDE6; color: #D0634B; flex-shrink: 0; }
.contact-icon i { color: #D0634B; }
.contact-body h6 { margin: 0; font-size: 0.95rem; color: #333; }
.contact-body p { margin: 0; color: #666; }
.contact-card a { color: #D0634B; text-decoration: none; }
.social-icons a { 
    margin-right: 12px; font-size: 20px;background: #F7EDE6;
    color: #D0634B; border : 1px solid #D0634B; width: 40px; height: 40px;
    border-radius: 50px; display: flex; align-items: center; justify-content: center; 
}
.social-icons a:hover { color: #ffffff !important; }
.carousel-control-next, .carousel-control-prev{
    width: 30px;
}
.input-group i{
    color: #D0634B;
}
/* About Page */
.pg-about .about-section{
    background-color: #292929;
}
.pg-about p{
    text-align: justify;
}
/* Archive Page */
.archive-card{
    background-color: #F0F0F0;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.form-wrapper {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    padding: 40px;
    margin: 50px auto;
    max-width: 900px;
}

section {
    margin-bottom: 40px;
}

section h5 {
    font-weight: 600;
    color: #0d6efd;
    border-bottom: 2px solid #0d6efd20;
    padding-bottom: 10px;
    margin-bottom: 25px;
}

label {
    font-weight: 500;
}

.btn-primary {
    background: #0d6efd;
    border: none;
    border-radius: 8px;
    transition: 0.3s;
}

.btn-primary:hover {
    background: #0b5ed7;
    transform: translateY(-2px);
}

.form-note {
    color: #6c757d;
    font-size: 0.9rem;
}

.divider {
    height: 1px;
    background: #dee2e6;
    margin: 40px 0;
}