/* =====================================
   LOVE VATAN CAMPAIGN
   SECTION 01
   RESET + HEADER + HERO
===================================== */

/* ---------- Reset ---------- */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

@font-face {
    font-family: 'Estedad';
    src: url('../fonts/Estedad-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Estedad';
    src: url('../fonts/Estedad-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: 'Estedad';
    src: url('../fonts/Estedad-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'Estedad';
    src: url('../fonts/Estedad-ExtraBold.woff2') format('woff2');
    font-weight: 800;
    font-style: normal;
}

body{

    direction:rtl;

    overflow-x:hidden;

    background:#ffffff;

    color:#222;

    line-height:1.8;

    font-family:
    "Estedad",
    "IRANSansX",
    Tahoma,
    sans-serif;
}

img{

    max-width:100%;

    display:block;
}

a{

    text-decoration:none;
}

ul{

    list-style:none;
}

/* ---------- Variables ---------- */

:root{

    --primary:#18106B;

    --secondary:#2D1CBF;

    --light:#F8F9FC;

    --white:#FFFFFF;

    --border:#E5E7EB;

    --text:#1F2937;

    --radius:24px;

    --shadow:
    0 12px 40px rgba(24,16,107,.08);

    --transition:.3s ease;
}

/* ---------- Container ---------- */

.container{

    width:100%;

    max-width:1400px;

    margin:auto;

    padding-right:24px;

    padding-left:24px;
}

/* ---------- Section Spacing ---------- */

.section{

    padding-top:160px;

    padding-bottom:160px;
}

/* ---------- Header ---------- */

.header{

    position:sticky;

    top:0;

    z-index:1000;

    background:rgba(255,255,255,.95);

    backdrop-filter:blur(12px);

    border-bottom:1px solid var(--border);
}

.navbar{

    display:flex;

    align-items:center;

    justify-content:space-between;

    min-height:85px;
}

/* ---------- Logo ---------- */

.logo-mini{

    font-size:1.3rem;

    font-weight:800;

    color:var(--primary);
}

/* ---------- Menu ---------- */

.nav-menu{

    display:flex;

    align-items:center;

    gap:35px;
}

.nav-menu a{

    color:var(--text);

    font-size:15px;

    font-weight:600;

    transition:var(--transition);
}

.nav-menu a:hover{

    color:var(--secondary);
}

/* ---------- Mobile Button ---------- */

.mobile-menu-btn{

    display:none;

    border:none;

    background:none;

    font-size:28px;

    cursor:pointer;

    color:var(--primary);
}

/* ---------- Buttons ---------- */

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-width:170px;

    height:58px;

    padding:0 30px;

    border-radius:16px;

    font-size:15px;

    font-weight:700;

    transition:var(--transition);
}

.btn-primary{

    background:var(--primary);

    color:#fff;
}

.btn-primary:hover{

    background:var(--secondary);

    transform:translateY(-3px);
}

.btn-outline{

    border:2px solid var(--primary);

    color:var(--primary);

    background:transparent;
}

.btn-outline:hover{

    background:var(--primary);

    color:#fff;
}

/* =====================================
   HERO SECTION
===================================== */

.hero{

    min-height:90vh;

    display:flex;

    align-items:center;

    position:relative;
}

.hero-content{

    display:grid;

    grid-template-columns:1fr 1fr;

    align-items:center;

    gap:80px;
}

/* ---------- Hero Text ---------- */

.hero-text h1{

    font-size:3rem;

    line-height:1.3;

    color:var(--primary);

    font-weight:900;

    margin-bottom:24px;
}

.hero-text p{

    font-size:1.25rem;

    color:#555;

    max-width:600px;

    margin-bottom:40px;
}

.hero-buttons{

    display:flex;

    gap:18px;

    flex-wrap:wrap;
}

/* ---------- Hero Logo ---------- */

.hero-logo{

    position:relative;

    display:flex;

    justify-content:center;

    align-items:center;
}


.logo-glow{

    position:absolute;

    width:300px;

    height:300px;

    border-radius:50%;

    background:rgba(32,21,122,.08);

    filter:blur(40px);

    animation:glowBeat 2s infinite;

    z-index:-1;
}


@keyframes glowBeat{

    0%{

        transform:scale(1);

        opacity:.5;
    }

    15%{

        transform:scale(1.15);

        opacity:.9;
    }

    30%{

        transform:scale(1);

        opacity:.5;
    }

    100%{

        transform:scale(1);

        opacity:.5;
    }
}


.hero-logo img{

    animation:pulse 2s ease-in-out infinite;



    will-change:transform;

    backface-visibility:hidden;



    width:100%;

    max-width:520px;

    object-fit:contain;

    filter:
    drop-shadow(
    0 20px 50px
    rgba(24,16,107,.12)
    );
}

@keyframes pulse{

    0%{
        transform:scale(1);
    }

    8%{
        transform:scale(1.08);
    }

    16%{
        transform:scale(1);
    }

    100%{
        transform:scale(1);
    }
}







/* ---------- Hero Decoration ---------- */

.hero::before{

       display: none;
    position:absolute;

    width:450px;

    height:450px;

    background:

    radial-gradient(
    rgba(45,28,191,.08),
    transparent 70%
    );

    left:-150px;

    top:-100px;

    border-radius:50%;
}

.hero::after{

    

    position:absolute;

    width:10px;

    height:10px;

    background:

    radial-gradient(
    rgba(24,16,107,.06),
    transparent 70%
    );

    right:-120px;

    bottom:-420px;

    border-radius:50%;
}

/* =====================================
   DONATION SECTION + WAVES
===================================== */

.donation-wave{

    position:relative;

    background:#18106b;

    overflow:hidden;

    padding-top:220px;

    padding-bottom:220px;
}

/* ---------- Wave Top ---------- */

.wave-top{
    position:absolute;
    top:-1px;
    left:0;
    width:100%;
    height:120px;
    background:#fff;

    clip-path: ellipse(75% 100% at 50% 0%);
}

/* ---------- Wave Bottom ---------- */

.wave-bottom{
    position:absolute;
    bottom:-1px;
    left:0;
    width:100%;
    height:120px;
    background:#fff;

    clip-path: ellipse(75% 100% at 50% 100%);
}

/* ---------- Donation Card ---------- */

.donation-card{

    position:relative;

    z-index:5;

    max-width:900px;

    margin:auto;

    text-align:center;

    background:#fff;

    border-radius:32px;

    padding:70px;

    box-shadow:var(--shadow);

    border:1px solid var(--border);
}

/* ---------- Icon ---------- */

.donation-icon{

    width:90px;

    height:90px;

    margin:auto;

    margin-bottom:30px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:40px;

    background:
    rgba(24,16,107,.08);

    color:var(--primary);
}

/* ---------- Title ---------- */

.donation-card h2{

    color:var(--primary);

    font-size:2rem;

    margin-bottom:30px;

    line-height:1.8;
}

/* ---------- Card Number ---------- */

.card-number{

    background:

    linear-gradient(
    135deg,
    var(--primary),
    var(--secondary)
    );

    color:#fff;

    font-size:2rem;

    font-weight:800;

    border-radius:20px;

    padding:22px;

    margin-bottom:25px;

    letter-spacing:2px;
}

/* ---------- Amount ---------- */

.amount-box{

    background:var(--light);

    border-radius:18px;

    padding:18px 30px;

    color:#555;

    margin-bottom:35px;

    font-size:1.1rem;

    border:1px solid var(--border);
}

/* =====================================
   NEEDS SECTION
===================================== */

.needs{

    background:#fff;
}

/* ---------- Section Title ---------- */

.section-title{

    text-align:center;

    margin-bottom:80px;
}

.section-title h2{

    color:var(--primary);

    font-size:3rem;

    font-weight:900;

    position:relative;

    display:inline-block;
}

.section-title h2::after{

    content:"";

    position:absolute;

    bottom:-15px;

    right:50%;

    transform:translateX(50%);

    width:90px;

    height:5px;

    border-radius:50px;

    background:
    linear-gradient(
    to left,
    var(--primary),
    var(--secondary)
    );
}

/* ---------- Grid ---------- */

.needs-grid{

    display:grid;

    grid-template-columns:
    repeat(4,1fr);

    gap:30px;
}

/* ---------- Card ---------- */

.need-card{

    background:#fff;

    border-radius:24px;

    padding:40px 25px;

    text-align:center;

    border:1px solid var(--border);

    box-shadow:
    0 5px 20px rgba(0,0,0,.03);

    transition:all .35s ease;
}

.need-card:hover{

    transform:
    translateY(-10px);

    box-shadow:
    0 25px 40px
    rgba(24,16,107,.10);

    border-color:
    rgba(24,16,107,.20);
}

/* ---------- Icon ---------- */

.need-card span{

    display:flex;

    align-items:center;

    justify-content:center;

    width:85px;

    height:85px;

    margin:auto;

    margin-bottom:20px;

    border-radius:20px;

    background:
    rgba(24,16,107,.07);

    font-size:38px;
}

/* ---------- Text ---------- */

.need-card h3{

    font-size:1.05rem;

    color:var(--text);

    line-height:1.8;

    font-weight:700;
}

/* =====================================
   DELIVERY SECTION
===================================== */

.delivery{

    background:#ffffff;
}

.delivery-wrapper{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:center;
}

/* ---------- Delivery Info ---------- */

.delivery-info h2{

    color:var(--primary);

    font-size:3rem;

    font-weight:900;

    margin-bottom:25px;
}

.delivery-info p{

    font-size:1.1rem;

    color:#555;

    margin-bottom:40px;

    line-height:2;
}

/* ---------- Info Cards ---------- */

.info-box{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:20px;

    background:#fff;

    border:1px solid var(--border);

    border-radius:20px;

    padding:22px 28px;

    margin-bottom:18px;

    box-shadow:
    0 8px 20px rgba(0,0,0,.04);
}

.info-box strong{

    color:var(--primary);

    font-size:1rem;
}

.info-box span{

    color:#444;

    font-weight:600;
}

/* ---------- Delivery Image ---------- */

.delivery-image{

    position:relative;
}

.delivery-image img{

    width:100%;

    border-radius:32px;

    object-fit:cover;

    box-shadow:
    0 25px 50px rgba(24,16,107,.12);
}

/* =====================================
   VOLUNTEER SECTION
===================================== */

.volunteer{

    background:var(--light);
}

.volunteer-wrapper{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:center;
}

/* ---------- Volunteer Image ---------- */

.volunteer-image{

    position:relative;
}

.volunteer-image img{

    width:100%;

    border-radius:32px;

    object-fit:cover;

    box-shadow:
    0 25px 50px rgba(24,16,107,.12);
}

/* ---------- Content ---------- */

.volunteer-content h2{

    color:var(--primary);

    font-size:3rem;

    font-weight:900;

    margin-bottom:24px;
}

.volunteer-content p{

    color:#555;

    font-size:1.15rem;

    line-height:2;

    margin-bottom:40px;
}

/* ---------- Roles ---------- */

.roles{

    display:flex;

    flex-wrap:wrap;

    gap:16px;

    margin-bottom:45px;
}

.role{

    background:#fff;

    border:1px solid var(--border);

    padding:14px 24px;

    border-radius:16px;

    font-weight:700;

    color:var(--primary);

    transition:.3s ease;

    cursor:pointer;
}

.role:hover{

    background:var(--primary);

    color:#fff;

    transform:translateY(-4px);
}

/* ---------- Volunteer Button ---------- */

.volunteer-btn{

    min-width:220px;
}

/* =====================================
   FOOTER
===================================== */

.footer{

    background:var(--primary);

    color:#fff;

    padding-top:70px;

    padding-bottom:70px;
}

.footer-content{

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    text-align:center;
}

/* ---------- Social ---------- */

.socials{

    display:flex;

    gap:20px;

    flex-wrap:wrap;

    margin-bottom:30px;
}

.socials a{

    color:#fff;

    border:1px solid rgba(255,255,255,.25);

    padding:12px 22px;

    border-radius:14px;

    transition:.3s ease;
}

.socials a:hover{

    background:#fff;

    color:var(--primary);
}

/* ---------- Copyright ---------- */

.copyright{

    opacity:.85;

    font-size:.95rem;

    line-height:2;
}

/* =====================================
   ANIMATIONS
===================================== */

.fade-up{

    opacity:0;

    transform:translateY(40px);

    transition:
    opacity .8s ease,
    transform .8s ease;
}

.fade-up.show{

    opacity:1;

    transform:translateY(0);
}

/* =====================================
   IMAGE OPTIMIZATION
===================================== */

.hero-logo img,
.delivery-image img,
.volunteer-image img{

    width:100%;

    height:auto;

    display:block;
}

/* =====================================
   TABLET
===================================== */

@media (max-width:1200px){

    .hero-content{

        gap:60px;
    }

    .delivery-wrapper{

        gap:50px;
    }

    .volunteer-wrapper{

        gap:50px;
    }

    .hero-text h1{

        font-size:3.2rem;
    }

    .section-title h2{

        font-size:2.5rem;
    }

    .delivery-info h2,
    .volunteer-content h2{

        font-size:2.4rem;
    }

    .needs-grid{

        grid-template-columns:
        repeat(2,1fr);
    }
}

/* =====================================
   MOBILE MENU
===================================== */

@media (max-width:992px){

    .mobile-menu-btn{

        display:block;
    }

    .nav-menu{

        position:absolute;

        top:85px;

        right:0;

        width:100%;

        background:#fff;

        border-top:1px solid var(--border);

        flex-direction:column;

        align-items:center;

        gap:25px;

        padding:30px;

        box-shadow:
        0 15px 30px rgba(0,0,0,.08);

        display:none;
    }

    .nav-menu.active{

        display:flex;
    }

    .hero{

        min-height:auto;
    }

    .hero-content{

        grid-template-columns:1fr;

        text-align:center;
    }

    .hero-text{

        order:2;
    }

    .hero-logo{

        order:1;
    }

    .hero-buttons{

        justify-content:center;
    }

    .delivery-wrapper{

        grid-template-columns:1fr;
    }

    .volunteer-wrapper{

        grid-template-columns:1fr;
    }

    .delivery-image{

        order:1;
    }

    .delivery-info{

        order:2;
    }

    .volunteer-image{

        order:1;
    }

    .volunteer-content{

        order:2;
    }

    .info-box{

        flex-direction:column;

        align-items:flex-start;
    }
}

/* =====================================
   MOBILE
===================================== */

@media (max-width:768px){

    .container{

        padding-left:18px;

        padding-right:18px;
    }

    .section{

        padding-top:100px;

        padding-bottom:100px;
    }

    .donation-wave{

        padding-top:140px;

        padding-bottom:140px;
    }

    .hero-text h1{

        font-size:2.4rem;

        line-height:1.5;
    }

    .hero-text p{

        font-size:1rem;
    }

    .hero-logo img{

        max-width:300px;
    }

    .btn{

        width:100%;
    }

    .hero-buttons{

        flex-direction:column;
    }

    .section-title{

        margin-bottom:50px;
    }

    .section-title h2{

        font-size:2rem;
    }

    .donation-card{

        padding:35px 25px;
    }

    .donation-card h2{

        font-size:1.4rem;
    }

    .card-number{

        font-size:1.1rem;

        line-height:2;
    }

    .amount-box{

        font-size:.95rem;
    }

    .needs-grid{

        grid-template-columns:1fr;
    }

    .need-card{

        padding:30px 20px;
    }

    .need-card span{

        width:70px;

        height:70px;

        font-size:30px;
    }

    .delivery-info h2,
    .volunteer-content h2{

        font-size:2rem;
    }

    .roles{

        gap:12px;
    }

    .role{

        width:100%;

        text-align:center;
    }

    .socials{

        flex-direction:column;

        width:100%;
    }

    .socials a{

        width:100%;
    }
}

/* =====================================
   SMALL MOBILE
===================================== */

@media (max-width:480px){

    .hero-text h1{

        font-size:2rem;
    }

    .hero-text p{

        font-size:.95rem;
    }

    .logo-mini{

        font-size:1rem;
    }

    .navbar{

        min-height:75px;
    }

    .card-number{

        font-size:1rem;
    }

    .delivery-info h2,
    .volunteer-content h2{

        font-size:1.7rem;
    }
}

/* =====================================
   PERFORMANCE
===================================== */

.need-card,
.role,
.btn,
.info-box,
.delivery-image img,
.volunteer-image img{

    will-change:
    transform;
}

/* =====================================
   SELECTION COLOR
===================================== */

::selection{

    background:var(--primary);

    color:#fff;
}

/* =====================================
   SCROLLBAR
===================================== */

::-webkit-scrollbar{

    width:10px;
}

::-webkit-scrollbar-track{

    background:#f1f1f1;
}

::-webkit-scrollbar-thumb{

    background:var(--primary);

    border-radius:50px;
}

::-webkit-scrollbar-thumb:hover{

    background:var(--secondary);
}


.nav-menu a.active{

    color:var(--primary);

    font-weight:800;

    position:relative;
}

.nav-menu a.active::after{

    content:"";

    position:absolute;

    bottom:-8px;

    right:0;

    width:100%;

    height:3px;

    border-radius:50px;

    background:var(--primary);
}
