:root{

    --primary-color:#2c5282;
    --primary-light:#ebf8ff;

    --accent-color:#3182ce;

    --text-color:#2d3748;

    --bg-color:#f7fafc;

    --white:#ffffff;

    --border:#e2e8f0;

    --transition:all .3s ease;
}

/* ==================================
   RESET
================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:
    Inter,
    "Segoe UI",
    sans-serif;

    background:var(--bg-color);

    color:var(--text-color);

    line-height:1.6;
}

.container{

    width:90%;

    max-width:1200px;

    margin:auto;
}

/* ==================================
   HEADER
================================== */

.site-header{

    background:white;

    border-bottom:1px solid var(--border);

    position:sticky;

    top:0;

    z-index:1000;
}

.nav-container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    height:72px;
}

.logo{

    text-decoration:none;

    color:var(--primary-color);

    font-size:2rem;

    font-weight:700;
}

.main-nav{

    display:flex;

    align-items:center;

    gap:2rem;
}

.main-nav a{

    text-decoration:none;

    color:var(--text-color);
}

/* ==================================
   HERO
================================== */

.frivillig-hero{

    background:
    linear-gradient(
        145deg,
        #ffffff,
        var(--primary-light)
    );

    padding:6rem 0;

    text-align:center;
}

.sub-badge{

    display:inline-block;

    background:var(--primary-color);

    color:white;

    padding:.35rem .8rem;

    border-radius:20px;

    font-size:.75rem;

    font-weight:700;

    letter-spacing:.5px;

    margin-bottom:1rem;
}

.frivillig-hero h1{

    font-size:
    clamp(
        2.5rem,
        5vw,
        4.2rem
    );

    color:var(--primary-color);

    line-height:1.2;

    margin-bottom:1rem;
}

.frivillig-hero p{

    max-width:750px;

    margin:auto;

    color:#4a5568;

    font-size:1.1rem;
}

/* ==================================
   INFO
================================== */

.frivillig-info-section{

    padding:5rem 0;
}

.split-grid-2{

    display:grid;

    grid-template-columns:
    1.1fr .9fr;

    gap:4rem;

    align-items:start;
}

.info-block-left h2{

    color:var(--primary-color);

    font-size:2.3rem;

    margin-bottom:1rem;
}

.info-block-left > p{

    color:#64748b;

    margin-bottom:2rem;
}

/* ==================================
   BENEFITS
================================== */

.benefits-list{

    list-style:none;

    display:flex;

    flex-direction:column;

    gap:1.5rem;
}

.benefits-list li{

    position:relative;

    padding-left:2rem;
}

.benefits-list li::before{

    content:"✨";

    position:absolute;

    left:0;
}

.benefits-list strong{

    display:block;

    color:var(--primary-color);

    margin-bottom:.2rem;
}

/* ==================================
   REQUIREMENTS
================================== */

.requirements-box{

    background:white;

    border:1px solid #e2e8f0;

    border-left:5px solid var(--accent-color);

    border-radius:10px;

    padding:2.5rem;

    box-shadow:
    0 10px 25px rgba(0,0,0,.03);
}

.requirements-box h3{

    color:var(--primary-color);

    margin-bottom:.5rem;
}

.requirements-box p{

    color:#64748b;
}

.requirements-box hr{

    border:none;

    height:1px;

    background:#e2e8f0;

    margin:1.5rem 0;
}

.req-checklist{

    list-style:none;

    display:flex;

    flex-direction:column;

    gap:1rem;
}

.req-checklist li{

    position:relative;

    padding-left:1.7rem;
}

.req-checklist li::before{

    content:"✓";

    position:absolute;

    left:0;

    color:#10b981;

    font-weight:700;
}

/* ==================================
   APPLICATION
================================== */

.frivillig-apply-section{

    background:white;

    padding:5rem 0 7rem;
}

.narrow-form-wrapper{

    max-width:720px;
}

.form-header-center{

    text-align:center;

    margin-bottom:3rem;
}

.form-header-center h2{

    font-size:2rem;

    color:var(--primary-color);

    margin-bottom:.75rem;
}

.form-header-center p{

    color:#64748b;
}

/* ==================================
   FORM
================================== */

.standard-form{

    display:flex;

    flex-direction:column;

    gap:1.5rem;
}

.form-group{

    display:flex;

    flex-direction:column;

    gap:.5rem;
}

.form-group label{

    font-weight:600;
}

.form-group input,
.form-group textarea{

    width:100%;

    padding:.9rem 1rem;

    border:2px solid #e2e8f0;

    border-radius:8px;

    background:#f8fafc;

    font-family:inherit;

    transition:var(--transition);
}

.form-group textarea{

    resize:vertical;
}

.form-group input:focus,
.form-group textarea:focus{

    outline:none;

    border-color:var(--accent-color);

    background:white;
}

.form-row-2{

    display:flex;

    gap:1rem;
}

.form-row-2 .form-group:first-child{

    flex:3;
}

.form-row-2 .form-group:last-child{

    flex:1;
}

/* ==================================
   BUTTON
================================== */

.btn-submit{

    border:none;

    background:var(--primary-color);

    color:white;

    padding:1rem;

    border-radius:8px;

    cursor:pointer;

    font-weight:700;

    transition:var(--transition);
}

.btn-submit:hover{

    background:var(--accent-color);
}

.btn-block{

    width:100%;
}

/* ==================================
   ALERTS
================================== */

.success-box{

    background:#dcfce7;

    color:#166534;

    padding:15px;

    border-radius:10px;

    margin-bottom:20px;

    font-weight:600;
}

.error-box{

    background:#fee2e2;

    color:#991b1b;

    padding:15px;

    border-radius:10px;

    margin-bottom:20px;
}

/* ==================================
   MOBILE
================================== */

@media(max-width:992px){

    .split-grid-2{

        grid-template-columns:1fr;

        gap:3rem;
    }

}

@media(max-width:768px){

    .main-nav{

        display:none;
    }

    .frivillig-hero h1{

        font-size:2.2rem;
    }

    .form-row-2{

        flex-direction:column;
    }

}