/* ==========================================================
   PPPP Universal Style.css v2.0
   People's Power & Peace Party (PPPP)
   Power to the People • Peace for the People
   ========================================================== */


/* ==========================================================
   RESET
========================================================== */

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


/* ==========================================================
   ROOT VARIABLES
========================================================== */

:root{

    --primary:#1b8f3d;
    --primary-dark:#147332;
    --secondary:#2bb673;

    --background:#2aa866;
    --background-dark:#218c57;

    --white:#ffffff;
    --black:#111111;

    --gray:#e8e8e8;

    --radius:14px;

    --shadow:
    0 8px 18px rgba(0,0,0,.20);

    --transition:.25s ease;

}


/* ==========================================================
   HTML
========================================================== */

html{

    scroll-behavior:smooth;

}


/* ==========================================================
   BODY
========================================================== */

body{

    min-height:100vh;

    font-family:

    Arial,
    Helvetica,
    sans-serif;

    background:

    linear-gradient(
    135deg,

    var(--background),

    var(--background-dark),

    var(--background)

    );

    background-size:cover;

    background-attachment:fixed;

    color:var(--white);

    overflow-x:hidden;

}


/* ==========================================================
   CONTAINER
========================================================== */

.container{

    width:min(1200px,95%);

    margin:auto;

}


/* ==========================================================
   TYPOGRAPHY
========================================================== */

h1,h2,h3,h4,h5,h6,
p,
span,
label,
small,
strong{

    color:var(--white);

}

p{

    line-height:1.7;

}

b{

    color:#ffe082;

}


/* ==========================================================
   LINKS
========================================================== */

a{

    color:var(--white);

    text-decoration:none;

    transition:var(--transition);

}

a:hover{

    opacity:.85;

}


/* ==========================================================
   MEDIA
========================================================== */

img,
video,
iframe{

    max-width:100%;

    display:block;

    border-radius:var(--radius);

}

audio{

    width:100%;

}


/* ==========================================================
   HR
========================================================== */

hr{

    border:none;

    height:2px;

    background:rgba(255,255,255,.25);

}


/* ==========================================================
   TEXT SELECTION
========================================================== */

::selection{

    background:#ffffff;

    color:#111111;

}


/* ==========================================================
   SCROLLBAR
========================================================== */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#1c7d4f;

}

::-webkit-scrollbar-thumb{

    background:var(--primary);

    border-radius:50px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--primary-dark);

}
/* ==========================================================
   HEADER
========================================================== */

.header{

    text-align:center;

    padding:40px 20px;

    color:#fff;

}

.header h1{

    font-size:clamp(32px,7vw,58px);

    margin-bottom:12px;

    text-shadow:0 4px 12px rgba(0,0,0,.25);

}

.header h2{

    font-size:clamp(18px,4vw,32px);

    margin-bottom:10px;

}

.header p{

    font-size:clamp(14px,3vw,22px);

    opacity:.95;

}


/* ==========================================================
   NAVIGATION
========================================================== */

nav{

    display:flex;

    justify-content:center;

    align-items:center;

    flex-wrap:wrap;

    gap:12px;

    padding:15px;

}

nav a{

    padding:12px 18px;

    border-radius:50px;

    background:rgba(255,255,255,.12);

    backdrop-filter:blur(10px);

    transition:.25s;

}

nav a:hover{

    background:rgba(255,255,255,.20);

    transform:translateY(-2px);

}


/* ==========================================================
   TOOLBAR
========================================================== */

.toolbar{

    display:flex;

    justify-content:center;

    align-items:center;

    flex-wrap:wrap;

    gap:15px;

    margin:25px auto;

    padding:0 15px;

}


/* ==========================================================
   INPUT
========================================================== */

input,
textarea,
select{

    font-family:inherit;

    font-size:16px;

}

input[type="text"],
input[type="search"],
input[type="email"],
textarea,
select{

    width:min(500px,100%);

    padding:14px 16px;

    border:none;

    outline:none;

    border-radius:14px;

    background:#ffffff;

    color:#111111;

    box-shadow:

    0 4px 12px rgba(0,0,0,.15);

}

textarea{

    min-height:140px;

    resize:vertical;

}


/* ==========================================================
   SEARCH BOX
========================================================== */

.search-box{

    width:min(500px,100%);

    margin:auto;

}


/* ==========================================================
   BUTTON
========================================================== */

button,
.btn{

    border:none;

    padding:12px 20px;

    border-radius:14px;

    cursor:pointer;

    background:var(--primary);

    color:#fff;

    font-size:15px;

    font-weight:bold;

    transition:var(--transition);

    box-shadow:var(--shadow);

}

button:hover,
.btn:hover{

    background:var(--primary-dark);

    transform:translateY(-2px);

}


/* ==========================================================
   SMALL BUTTON
========================================================== */

.btn-small{

    padding:8px 14px;

    font-size:13px;

}


/* ==========================================================
   ROUND BUTTON
========================================================== */

.btn-round{

    width:50px;

    height:50px;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

}


/* ==========================================================
   COUNTERS
========================================================== */

.total,
#total,
#totalEmails,
#totalPhotos,
#totalVideos,
#totalLyrics,
#totalColors{

    text-align:center;

    margin-top:15px;

    font-size:18px;

    font-weight:bold;

}


/* ==========================================================
   BADGE
========================================================== */

.badge{

    display:inline-block;

    padding:6px 12px;

    border-radius:50px;

    background:#ffffff22;

    font-size:13px;

}


/* ==========================================================
   RESPONSIVE
========================================================== */

@media(max-width:600px){

    .header h1{

        font-size:32px;

    }

    .header h2{

        font-size:20px;

    }

    nav{

        gap:8px;

    }

    nav a{

        padding:10px 14px;

    }

}
/* ==========================================================
   GRID SYSTEM
========================================================== */

.grid{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(280px,1fr));

    gap:18px;

    padding:20px;

}

.grid-2{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:20px;

}

.grid-3{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:20px;

}

.grid-4{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:20px;

}


/* ==========================================================
   CARD
========================================================== */

.card{

    background:rgba(255,255,255,.12);

    backdrop-filter:blur(10px);

    border-radius:16px;

    padding:18px;

    box-shadow:var(--shadow);

    transition:var(--transition);

    cursor:pointer;

    overflow:hidden;

}

.card:nth-child(8n+1){
    background:#ff6b6b;
}

.card:nth-child(8n+2){
    background:#6c5ce7;
}

.card:nth-child(8n+3){
    background:#00b894;
}

.card:nth-child(8n+4){
    background:#fdcb6e;
    color:#111;
}

.card:nth-child(8n+5){
    background:#e17055;
}

.card:nth-child(8n+6){
    background:#0984e3;
}

.card:nth-child(8n+7){
    background:#e84393;
}

.card:nth-child(8n){
    background:#2d3436;
}

.card:hover{

    transform:translateY(-5px);

    box-shadow:
    0 12px 24px rgba(0,0,0,.28);

}

.card h3{

    margin-bottom:10px;

}

.card p{

    opacity:.95;

}


/* ==========================================================
   EMAIL CARD
========================================================== */

.email{

    font-weight:bold;

    font-size:18px;

    word-break:break-word;

}


/* ==========================================================
   COLOR CARD
========================================================== */

.color-card{

    height:180px;

    border-radius:16px;

    display:flex;

    justify-content:center;

    align-items:center;

    text-align:center;

    font-weight:bold;

    color:#fff;

    box-shadow:var(--shadow);

    transition:.25s;

}

.color-card:hover{

    transform:scale(1.03);

}


/* ==========================================================
   PHOTO GALLERY
========================================================== */

.gallery{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(220px,1fr));

    gap:18px;

    padding:20px;

}

.gallery img{

    width:100%;

    aspect-ratio:1/1;

    object-fit:cover;

    border-radius:16px;

    transition:.30s;

    cursor:pointer;

}

.gallery img:hover{

    transform:scale(1.05);

}


/* ==========================================================
   VIDEO
========================================================== */

.video-player{

    width:100%;

    border-radius:16px;

    overflow:hidden;

    box-shadow:var(--shadow);

}

video{

    width:100%;

    background:#000;

}


/* ==========================================================
   AUDIO
========================================================== */

audio{

    width:100%;

    margin-top:12px;

}


/* ==========================================================
   LYRICS BOX
========================================================== */

.lyrics{

    background:rgba(255,255,255,.10);

    border-radius:16px;

    padding:20px;

    line-height:1.9;

    white-space:pre-wrap;

}


/* ==========================================================
   GLASS EFFECT
========================================================== */

.glass{

    background:rgba(255,255,255,.10);

    backdrop-filter:blur(12px);

    border:1px solid rgba(255,255,255,.15);

}


/* ==========================================================
   ANIMATIONS
========================================================== */

.fade{

    animation:fade .4s ease;

}

@keyframes fade{

    from{

        opacity:0;

        transform:translateY(10px);

    }

    to{

        opacity:1;

        transform:none;

    }

}

.zoom{

    animation:zoom .3s ease;

}

@keyframes zoom{

    from{

        opacity:0;

        transform:scale(.95);

    }

    to{

        opacity:1;

        transform:scale(1);

    }

}


/* ==========================================================
   RESPONSIVE
========================================================== */

@media(max-width:900px){

    .grid-4{

        grid-template-columns:repeat(2,1fr);

    }

    .grid-3{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:600px){

    .grid,
    .grid-2,
    .grid-3,
    .grid-4{

        grid-template-columns:1fr;

    }

}
/* ==========================================================
   FOOTER
========================================================== */

footer{

    text-align:center;

    padding:60px 20px 40px;

    color:#fff;

}

footer h2{

    font-size:clamp(20px,4vw,32px);

    margin-bottom:15px;

}

footer h3{

    font-size:clamp(18px,3vw,26px);

    margin:15px 0;

}

footer p{

    margin:8px 0;

    line-height:1.7;

}

footer a{

    color:#fff;

}

footer hr{

    margin-bottom:30px;

}


/* ==========================================================
   TOAST
========================================================== */

.toast{

    position:fixed;

    left:50%;

    bottom:25px;

    transform:translateX(-50%);

    padding:12px 20px;

    background:#111;

    color:#fff;

    border-radius:12px;

    box-shadow:var(--shadow);

    opacity:0;

    visibility:hidden;

    transition:.30s;

    z-index:9999;

}

.toast.show{

    opacity:1;

    visibility:visible;

}


/* ==========================================================
   MODAL
========================================================== */

.modal{

    display:none;

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.8);

    justify-content:center;

    align-items:center;

    z-index:99999;

}

.modal-content{

    max-width:95%;

    max-height:90vh;

    border-radius:16px;

    overflow:hidden;

}

.modal img{

    width:100%;

    height:auto;

}


/* ==========================================================
   LOADER
========================================================== */

.loader{

    width:60px;

    height:60px;

    margin:30px auto;

    border:6px solid rgba(255,255,255,.25);

    border-top:6px solid #fff;

    border-radius:50%;

    animation:spin 1s linear infinite;

}

@keyframes spin{

    to{

        transform:rotate(360deg);

    }

}


/* ==========================================================
   PROGRESS BAR
========================================================== */

.progress{

    width:100%;

    height:12px;

    background:rgba(255,255,255,.20);

    border-radius:999px;

    overflow:hidden;

}

.progress div{

    height:100%;

    background:var(--primary);

}


/* ==========================================================
   BACK TO TOP
========================================================== */

#topBtn{

    display:none;

    position:fixed;

    right:25px;

    bottom:25px;

    width:65px;

    height:65px;

    border:none;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    font-size:28px;

    cursor:pointer;

    z-index:9999;

    box-shadow:var(--shadow);

    transition:.25s;

}

#topBtn:hover{

    background:var(--primary-dark);

    transform:scale(1.08);

}


/* ==========================================================
   STATUS
========================================================== */

.success{

    background:#2e7d32 !important;

}

.info{

    background:#0288d1 !important;

}

.warning{

    background:#f9a825 !important;

}

.danger{

    background:#c62828 !important;

}


/* ==========================================================
   UTILITIES
========================================================== */

.text-center{

    text-align:center;

}

.text-left{

    text-align:left;

}

.text-right{

    text-align:right;

}

.bold{

    font-weight:bold;

}

.hidden{

    display:none;

}

.round{

    border-radius:var(--radius);

}

.shadow{

    box-shadow:var(--shadow);

}

.w100{

    width:100%;

}

.mt10{margin-top:10px;}
.mt20{margin-top:20px;}
.mt30{margin-top:30px;}

.mb10{margin-bottom:10px;}
.mb20{margin-bottom:20px;}
.mb30{margin-bottom:30px;}

.p10{padding:10px;}
.p20{padding:20px;}
.p30{padding:30px;}


/* ==========================================================
   PRINT
========================================================== */

@media print{

    button,

    .toolbar,

    #topBtn{

        display:none !important;

    }

}


/* ==========================================================
   MOBILE
========================================================== */

@media(max-width:600px){

    footer h2,

    footer h3,

    footer p{

        white-space:normal;

    }

    #topBtn{

        width:55px;

        height:55px;

        font-size:24px;

        right:15px;

        bottom:15px;

    }

}

/* ==========================================
   SECTION DESIGN
========================================== */

main{
    width:min(1200px,95%);
    margin:auto;
    padding:20px 0;
}

main section{
    margin:18px 0;
    padding:25px;
    border-radius:18px;
    color:#fff;
    box-shadow:0 6px 18px rgba(0,0,0,.25);
}

/* 1 */
main section:nth-of-type(8n+1){
    background:#ff6b6b;
}

/* 2 */
main section:nth-of-type(8n+2){
    background:#6c5ce7;
}

/* 3 */
main section:nth-of-type(8n+3){
    background:#00b894;
}

/* 4 */
main section:nth-of-type(8n+4){
    background:#fdcb6e;
    color:#111;
}

main section:nth-of-type(8n+4) h2,
main section:nth-of-type(8n+4) p,
main section:nth-of-type(8n+4) li,
main section:nth-of-type(8n+4) a{
    color:#111;
}

/* 5 */
main section:nth-of-type(8n+5){
    background:#e17055;
}

/* 6 */
main section:nth-of-type(8n+6){
    background:#0984e3;
}

/* 7 */
main section:nth-of-type(8n+7){
    background:#e84393;
}

/* 8 */
main section:nth-of-type(8n){
    background:#2d3436;
}

main section h2{
    margin-bottom:15px;
}

main section p,
main section li{
    line-height:1.8;
}

main section ul{
    padding-left:25px;
}

:root{
    --site-bg:#49c9e7;
    --white:#ffffff;
}

/* পুরো ওয়েবসাইট */
html,
body{
    background:var(--site-bg);
    color:#fff;
    min-height:100%;
}

/* Header */
header{
    background:var(--site-bg);
    color:#fff;
    padding:30px 20px;
    text-align:center;
}

/* Main */
main{
    background:var(--site-bg);
    width:min(1200px,95%);
    margin:auto;
    padding:20px 0;
}

/* Footer */
footer{
    background:var(--site-bg);
    color:#fff;
    text-align:center;
    padding:30px 20px;
}

/* ==========================================================
   UNIVERSAL OVERRIDE
   Keeps section/card colors but removes white page backgrounds
   ========================================================== */

/* Site background */
html,
body{
    background:var(--site-bg) !important;
    color:#fff;
}

/* Transparent page containers */
body > header,
body > main,
body > footer{
    background:transparent !important;
}

/* Don't touch section/card colors */
main section,
.card{
    color:inherit;
}

/* FAQ / Details */
details{
    background:transparent !important;
    border:1px solid rgba(255,255,255,.25) !important;
    border-radius:12px;
    color:inherit;
}

details summary{
    color:inherit;
}

/* White wrappers only */
main,
.container,
.wrapper,
.content,
.page,
.page-content{
    background:transparent !important;
}

/* Bootstrap style classes */
.bg-white,
.bg-light,
.white,
.light{
    background:transparent !important;
}

/* Text */
h1,h2,h3,h4,h5,h6,
p,
li,
span,
label,
strong,
small{
    color:inherit;
}

/* Links */
a{
    color:inherit;
}

/* ==========================================================
   PPPP UNIVERSAL WHITE BOX FIX
   ========================================================== */

/* White containers */
.box,
.amount,
details,
table,
thead,
tbody,
tr,
td,
th,
select,
option{
    color:#111 !important;
}

/* Everything inside white containers */
.box *,
.amount *,
details *,
table *,
thead *,
tbody *,
tr *,
td *,
th *,
select *,
option *{
    color:#111 !important;
}

/* Form controls */
input,
textarea,
select{
    color:#111 !important;
}

/* Placeholders */
input::placeholder,
textarea::placeholder{
    color:#666 !important;
}

/* Hover button inside amount selector */
.amount:hover,
.amount:hover *{
    color:#fff !important;
}