:root{
  --bg:#f7f8fb;
  --card:#ffffff;
  --text:#222;
  --muted:#666;
  --accent:#2d9bf0;
  --success:#28a745;
  --maxw:1100px;
  --radius:12px;
  --shadow: #000;
}

/* Dark theme vars (toggled by .dark on body) */
body.dark {
  --bg:#0f1113;
  --card:#121417;
  --text:#e7eef8;
  --muted:#9aa3ad;
  --accent:#62b0ff;
  --success:#47d36b;
  --shadow:#fff;
}

/* Base reset */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Inter,ui-sans-serif,system-ui,Segoe UI,Roboto,"Helvetica Neue",Arial;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.45;
}

/* Container */
.container{max-width:var(--maxw);margin:0 auto;padding:1.25rem}


.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{font-weight:700;font-size:1.1rem;color:var(--accent)}
.nav{display:flex;gap:1rem;align-items:center}
.nav a{color:var(--text);text-decoration:none;padding:.45rem .6rem;border-radius:8px}
.nav a:hover{background:rgba(0,0,0,0.04)}
.theme-toggle{background:transparent;border:1px solid rgba(0,0,0,0.06);padding:.4rem .6rem;border-radius:8px;cursor:pointer}

/* Hero */
.hero{padding:2.2rem 0;display:flex;flex-direction:column;align-items:flex-start;gap:.8rem}
.hero h1{margin:0;font-size:1.6rem}
.hero p{margin:0;color:var(--text)}

/* Search & categories */
.tools{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin:1rem 0}
.search{flex:1;min-width:200px}
.search input{width:100%;padding:.6rem .8rem;border-radius:10px;border:1px solid rgba(0,0,0,0.08);background:var(--bg);color:var(--text)}
.category-filter{display:flex;gap:.5rem;flex-wrap:wrap}
.chip{padding:.45rem .7rem;border-radius:999px;background:var(--card);border:1px solid rgba(0,0,0,0.04);cursor:pointer;color:var(--muted)}
.chip.active{background:var(--accent);color:#fff;box-shadow:0 6px 18px rgba(45,155,240,0.12)}

/* Grid */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
.card{
  background:var(--card);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow: 0 8px 20px rgba(15,17,19,0.04);
  display:flex;flex-direction:column;
}
.card .thumb{height:160px; background-size:cover;background-position:center}
.card .body{padding:1rem;flex:1;display:flex;flex-direction:column}
.title{color:var(--muted);font-weight:700;margin-bottom:.35rem}
.short{color:var(--muted);font-size:.95rem;margin-bottom:.8rem}
.meta{display:flex;gap:.6rem;align-items:center;margin-top:auto}
.goal{font-weight:700;color:var(--accent)}
.progress{height:10px;background:rgba(0,0,0,0.06);border-radius:999px;overflow:hidden;flex:1}
.progress > i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#6bd3ff);}

/* small bits */
.badge{padding:.25rem .5rem;border-radius:6px;background:rgba(0,0,0,0.04);font-size:.8rem;color:var(--muted)}
.row{display:flex;gap:.5rem;align-items:center;}

/* Donate button */
.btn{background:var(--accent);color:#fff;padding:.6rem .9rem;border-radius:8px;border:none;cursor:pointer}

/* Donate Modal & Campaign page */
.modal-back{position:fixed;inset:0;background:rgba(0,0,0,0.6);display:none;align-items:center;justify-content:center;z-index:500}
.modal{background:var(--card);padding:1rem;border-radius:12px;width:92%;max-width:480px}
.modal h3{margin-top:0}
.modal input, .modal textarea, .modal select{width:100%;padding:.6rem;border-radius:8px;border:1px solid rgba(0,0,0,0.06);margin-bottom:.6rem;background:transparent;color:var(--text)}

/* campaign detail */
.property-detail{display:grid;grid-template-columns:1fr 360px;gap:1rem}
@media(max-width:980px){.property-detail{grid-template-columns:1fr}}
.gallery-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.6rem}
.gallery-row img{width:100%;height:90px;object-fit:cover;border-radius:8px}



/* small helpers */
.center{text-align:center}
.hidden{display:none}





/* --------------------
   HEADER
---------------------*/
header{
    background:#fff;
  padding:.9rem 0;
    box-shadow:0 2px 8px rgba(0,0,0,0.1);
    position:fixed;
    top:0;
    z-index:10;
    
  backdrop-filter: blur(6px);
  border-bottom:1px solid rgba(0,0,0,0.04);
  left: 0;
  right: 0;
}


nav{
    display:flex;
    justify-content:space-between;
    align-items:center;
    max-width:1200px;
    margin:auto;
}
.logo{
    font-size:24px;
    font-weight:700;
    color:#2c62ff;
}
.nav-links{
    display:flex;
    gap:25px;
}
.nav-links a{
    text-decoration:none;
    color:#333;
    font-weight:500;
}
.nav-links a:hover{
    color:#2c62ff;
}

/* Mobile toggle */
#menuToggle{
    display:none;
    font-size:26px;
    cursor:pointer;
}

/* --------------------
   HERO
---------------------*/
.hero{
    text-align:center;
    padding:100px 20px;
    background:linear-gradient(135deg, #2c62ff, #6c2fff);
    color:#fff;
    animation:fadeIn 1.2s ease;
}
.hero h1{
    font-size:42px;
    margin-bottom:15px;
}
.hero p{
    font-size:20px;
    opacity:0.9;
}
.btn{
    margin-top:25px;
    display:inline-block;
    padding:12px 28px;
    background:#fff;
    color:#2c62ff;
    border-radius:6px;
    font-weight:600;
    text-decoration:none;
    transition:0.3s;
}
.btn:hover{
    background:#000;
    color:#fff;
}

/* --------------------
   FEATURES
---------------------*/
.features{
    max-width:1200px;
    margin:60px auto;
    padding:0 20px;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:25px;
}
.feature{
    background:var(--bg);
    padding:25px;
    border-radius:10px;
    box-shadow:0 4px 10px var(--shadow);
    text-align:center;
    animation:fadeUp 0.9s ease;
}
.feature i{
    font-size:40px;
    color:#2c62ff;
    margin-bottom:10px;
}
.feature h3{
    margin-bottom:10px;
    font-size:20px;
}

/* --------------------
   CAMPAIGN PREVIEW
---------------------*/
.home-campaigns{
    max-width:1200px;
    margin:80px auto;
    padding:0 20px;
}
.home-campaigns h2{
    text-align:center;
    margin-bottom:20px;
}
.campaign-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:25px;
}
.campaign-card{
    background: var(--bg);
    border-radius:10px;
    box-shadow:0 4px 10px rgba(0,0,0,0.08);
    overflow:hidden;
    animation:fadeUp 1.1s ease;
    cursor:pointer;
    transition:0.3s;
}
.campaign-card:hover{
    transform:translateY(-5px);
}
.campaign-card img{
    width:100%;
    height:180px;
    object-fit:cover;
}
.campaign-card .info{
    padding:15px;
}


/* --------------------
   FOOTER
---------------------*/
footer{
    background:#111;
    color:var(--muted);
    padding:2rem 0;
    text-align:center;
    margin-top:2rem;
}

/* --------------------
   ANIMATIONS
---------------------*/
@keyframes fadeIn{
    from{opacity:0; transform:translateY(-20px);}
    to{opacity:1; transform:translateY(0);}
}
@keyframes fadeUp{
    from{opacity:0; transform:translateY(20px);}
    to{opacity:1; transform:translateY(0);}
}

/* --------------------
   RESPONSIVE
---------------------*/
@media(max-width:900px){
    .features,
    .campaign-grid{
        grid-template-columns:repeat(2, 1fr);
    }
}

@media(max-width:700px){
    .nav-links{
        display:none;
        flex-direction:column;
        background:#fff;
        position:absolute;
        right:20px;
        top:70px;
        padding:20px;
        width:160px;
        box-shadow:0 4px 10px rgba(0,0,0,0.1);
        border-radius:8px;
    }
    .nav-links.show{
        display:flex;
    }
    #menuToggle{
        display:block;
    }

    .features,
    .campaign-grid{
        grid-template-columns:1fr;
    }

    .hero h1{
        font-size:32px;
    }
}