/*
Theme Name: Nahid Islam — Official Profile
Theme URI: https://ncpbd.org
Author: Custom Build
Author URI: https://ncpbd.org
Description: A neutral, biographical WordPress profile theme for Bangladeshi politician Nahid Islam — Convener of the National Citizen Party (NCP), Member of Parliament for Dhaka-11, and Opposition Chief Whip. Includes custom post types for career timeline, press mentions, and photo gallery, all editable from the WordPress dashboard. Colors follow the NCP's official green with the water lily (Shapla) motif.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nahid-profile
Tags: custom-colors, custom-menu, custom-logo, featured-images, translation-ready, one-column, threaded-comments

This theme, and any information presented within it, is an independent,
unofficial profile site built for informational purposes. It is not an
official communication channel of any government office or political party
unless configured and confirmed as such by the site owner.
*/

/* =========================================================
   0. DESIGN TOKENS
   ========================================================= */
:root{
  /* NCP brand green + supporting palette (water lily / Shapla motif) */
  --ncp-green-900:#0b3d24;
  --ncp-green-800:#0f4c2e;
  --ncp-green-700:#146638;
  --ncp-green-600:#1a7d43;
  --ncp-green-500:#22954f;
  --ncp-green-100:#e6f4ea;
  --ncp-green-50:#f3faf5;

  --bd-red:#d21f3c;          /* Bangladesh flag red — used sparingly */
  --lily-gold:#c9a24b;       /* Shapla / accent gold */

  --ink-900:#12181a;
  --ink-700:#3a4548;
  --ink-500:#6b787c;
  --ink-300:#aab5b8;
  --paper-0:#ffffff;
  --paper-50:#fbfaf7;
  --paper-100:#f4f2ec;
  --line:#e4e1d8;

  --font-display:'Playfair Display', Georgia, 'Noto Serif Bengali', serif;
  --font-body:'Work Sans', 'Noto Sans Bengali', -apple-system, BlinkMacSystemFont, sans-serif;

  --radius-sm:6px;
  --radius-md:14px;
  --radius-lg:28px;
  --shadow-sm:0 2px 10px rgba(15,76,46,.08);
  --shadow-md:0 12px 40px rgba(15,76,46,.14);
  --container:1180px;
}

/* =========================================================
   1. RESET & BASE
   ========================================================= */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink-900);
  background:var(--paper-50);
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;height:auto;}
a{color:var(--ncp-green-700);text-decoration:none;transition:color .2s ease;}
a:hover{color:var(--bd-red);}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink-900);line-height:1.2;margin:0 0 .5em;font-weight:700;}
h1{font-size:clamp(2.2rem,4vw,3.4rem);}
h2{font-size:clamp(1.7rem,3vw,2.4rem);}
h3{font-size:1.35rem;}
p{margin:0 0 1.1em;}
ul{padding-left:1.2em;}
.container{max-width:var(--container);margin:0 auto;padding:0 24px;}
section{padding:88px 0;}
@media(max-width:780px){section{padding:56px 0;}}

.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 30px;border-radius:100px;font-weight:600;font-size:.95rem;
  border:2px solid transparent;cursor:pointer;transition:all .2s ease;
}
.btn-primary{background:var(--ncp-green-700);color:#fff;}
.btn-primary:hover{background:var(--ncp-green-800);color:#fff;transform:translateY(-2px);}
.btn-outline{border-color:var(--ncp-green-700);color:var(--ncp-green-700);background:transparent;}
.btn-outline:hover{background:var(--ncp-green-700);color:#fff;}
.btn-outline-light{border-color:rgba(255,255,255,.6);color:#fff;}
.btn-outline-light:hover{background:#fff;color:var(--ncp-green-800);}

.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;color:var(--ncp-green-700);margin-bottom:14px;
}
.eyebrow::before{content:"";width:24px;height:2px;background:var(--lily-gold);}
.section-head{max-width:720px;margin-bottom:48px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}

/* =========================================================
   2. HEADER
   ========================================================= */
.site-header{
  position:sticky;top:0;z-index:999;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:var(--container);margin:0 auto;}
.site-branding{display:flex;align-items:center;gap:12px;}
.site-branding img.custom-logo{max-height:46px;width:auto;border-radius:8px;}
.brand-mark{
  width:42px;height:42px;border-radius:50%;
  background:var(--ncp-green-700);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:700;font-size:1.1rem;
}
.site-title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;margin:0;line-height:1.1;}
.site-title a{color:var(--ink-900);}
.site-tagline{font-size:.72rem;color:var(--ink-500);letter-spacing:.04em;margin:0;}

.primary-nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0;}
.primary-nav a{
  display:block;padding:10px 16px;border-radius:100px;
  font-weight:600;font-size:.93rem;color:var(--ink-700);
}
.primary-nav a:hover,.primary-nav .current-menu-item>a{background:var(--ncp-green-100);color:var(--ncp-green-800);}
.header-cta{display:flex;align-items:center;gap:14px;}
.menu-toggle{display:none;background:none;border:2px solid var(--line);border-radius:10px;padding:9px 11px;cursor:pointer;}
.menu-toggle span{display:block;width:20px;height:2px;background:var(--ink-900);margin:4px 0;}

@media(max-width:900px){
  .primary-nav{position:fixed;top:78px;left:0;right:0;bottom:0;background:#fff;transform:translateX(100%);transition:transform .3s ease;overflow-y:auto;padding:20px;}
  .primary-nav.is-open{transform:translateX(0);}
  .primary-nav ul{flex-direction:column;}
  .primary-nav a{padding:16px;font-size:1.05rem;}
  .menu-toggle{display:block;}
  .header-cta .btn-primary{display:none;}
}

/* =========================================================
   3. HERO
   ========================================================= */
.hero{
  position:relative;overflow:hidden;
  background:linear-gradient(160deg,var(--ncp-green-900) 0%,var(--ncp-green-700) 55%,var(--ncp-green-600) 100%);
  color:#fff;padding:100px 0 0;
}
.hero-shapla{
  position:absolute;right:-80px;top:-80px;width:520px;height:520px;opacity:.14;
  background:radial-gradient(circle,var(--lily-gold) 0%,transparent 70%);
  pointer-events:none;
}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;text-align:center;}}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);
  padding:7px 16px;border-radius:100px;font-size:.78rem;letter-spacing:.1em;
  text-transform:uppercase;font-weight:700;margin-bottom:22px;
}
.hero h1{color:#fff;margin-bottom:16px;}
.hero h1 .hl{color:var(--lily-gold);}
.hero-lede{font-size:1.15rem;color:rgba(255,255,255,.85);max-width:540px;margin-bottom:30px;}
@media(max-width:900px){.hero-lede{margin-left:auto;margin-right:auto;}}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:40px;}
@media(max-width:900px){.hero-actions{justify-content:center;}}
.hero-stats{display:flex;gap:36px;flex-wrap:wrap;}
@media(max-width:900px){.hero-stats{justify-content:center;}}
.hero-stat b{display:block;font-family:var(--font-display);font-size:1.8rem;color:var(--lily-gold);}
.hero-stat span{font-size:.82rem;color:rgba(255,255,255,.72);}

.hero-portrait{position:relative;}
.hero-portrait-frame{
  border-radius:var(--radius-lg);overflow:hidden;
  border:6px solid rgba(255,255,255,.18);
  box-shadow:var(--shadow-md);aspect-ratio:4/5;
  background:linear-gradient(160deg,var(--ncp-green-800),var(--ncp-green-600));
}
.hero-portrait-frame img{width:100%;height:100%;object-fit:cover;}
.hero-portrait-badge{
  position:absolute;bottom:-22px;left:-22px;background:#fff;color:var(--ink-900);
  border-radius:var(--radius-md);padding:16px 20px;box-shadow:var(--shadow-md);
  display:flex;align-items:center;gap:12px;max-width:260px;
}
@media(max-width:900px){.hero-portrait-badge{left:50%;transform:translateX(-50%);}}
.hero-portrait-badge .dot{width:10px;height:10px;border-radius:50%;background:var(--ncp-green-600);flex:none;}
.hero-portrait-badge small{display:block;color:var(--ink-500);font-size:.72rem;}
.hero-wave{display:block;width:100%;line-height:0;margin-top:60px;}

/* =========================================================
   4. GENERIC PAGE HERO (interior pages)
   ========================================================= */
.page-hero{
  background:linear-gradient(160deg,var(--ncp-green-900),var(--ncp-green-700));
  color:#fff;padding:70px 0;text-align:center;
}
.page-hero .eyebrow{color:var(--lily-gold);}
.page-hero .eyebrow::before{background:#fff;}
.page-hero h1{color:#fff;margin-bottom:10px;}
.page-hero p{color:rgba(255,255,255,.8);max-width:640px;margin:0 auto;}
.breadcrumb{font-size:.85rem;color:rgba(255,255,255,.65);margin-top:14px;}
.breadcrumb a{color:rgba(255,255,255,.85);}

/* =========================================================
   5. CARDS / GRID COMPONENTS
   ========================================================= */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:28px;box-shadow:var(--shadow-sm);}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
@media(max-width:900px){.grid-3{grid-template-columns:1fr 1fr;}.grid-2{grid-template-columns:1fr;}}
@media(max-width:600px){.grid-3{grid-template-columns:1fr;}}

.value-card .icon{
  width:52px;height:52px;border-radius:14px;background:var(--ncp-green-100);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;font-size:1.4rem;
}

/* Section: About/bio split */
.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start;}
@media(max-width:900px){.split{grid-template-columns:1fr;}}
.pull-photo{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);position:sticky;top:110px;}
.pull-photo img{aspect-ratio:4/5;object-fit:cover;}
.quote-block{
  border-left:4px solid var(--lily-gold);padding:18px 26px;margin:30px 0;
  background:var(--ncp-green-50);border-radius:0 var(--radius-md) var(--radius-md) 0;
  font-family:var(--font-display);font-style:italic;font-size:1.15rem;color:var(--ncp-green-900);
}
.quote-block cite{display:block;font-family:var(--font-body);font-style:normal;font-size:.85rem;color:var(--ink-500);margin-top:10px;}

/* =========================================================
   6. TIMELINE (Career / Biography)
   ========================================================= */
.timeline{position:relative;max-width:880px;margin:0 auto;padding-left:0;}
.timeline::before{
  content:"";position:absolute;left:130px;top:0;bottom:0;width:2px;
  background:linear-gradient(var(--ncp-green-600),var(--line));
}
@media(max-width:700px){.timeline::before{left:22px;}}
.timeline-item{display:grid;grid-template-columns:110px 40px 1fr;gap:0 20px;margin-bottom:38px;position:relative;}
@media(max-width:700px){.timeline-item{grid-template-columns:0px 44px 1fr;}}
.timeline-date{padding-top:6px;font-weight:700;color:var(--ncp-green-700);font-size:.88rem;text-align:right;}
@media(max-width:700px){.timeline-date{display:none;}}
.timeline-dot{
  width:20px;height:20px;border-radius:50%;background:#fff;border:4px solid var(--ncp-green-600);
  margin:4px auto 0;position:relative;z-index:2;
}
.timeline-content{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:22px 24px;box-shadow:var(--shadow-sm);}
.timeline-content .tl-date-mobile{display:none;font-size:.8rem;font-weight:700;color:var(--ncp-green-700);margin-bottom:6px;}
@media(max-width:700px){.timeline-content .tl-date-mobile{display:block;}}
.timeline-content h3{margin-bottom:6px;font-size:1.15rem;}
.timeline-tag{
  display:inline-block;background:var(--ncp-green-100);color:var(--ncp-green-800);
  font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:100px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em;
}

/* =========================================================
   7. NEWS / PRESS LIST
   ========================================================= */
.press-item{
  display:flex;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);align-items:flex-start;
}
.press-item .press-source{
  flex:none;width:120px;font-size:.78rem;font-weight:700;color:var(--ncp-green-700);text-transform:uppercase;letter-spacing:.04em;padding-top:3px;
}
.press-item h3{font-size:1.08rem;margin-bottom:6px;}
.press-item .press-date{font-size:.8rem;color:var(--ink-500);}
.press-item a.press-link{font-size:.85rem;font-weight:600;}

/* =========================================================
   8. GALLERY
   ========================================================= */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr);}}
.gallery-item{
  position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:1/1;
  box-shadow:var(--shadow-sm);cursor:pointer;
}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.gallery-item:hover img{transform:scale(1.08);}
.gallery-caption{
  position:absolute;left:0;right:0;bottom:0;padding:14px;
  background:linear-gradient(transparent,rgba(11,61,36,.85));color:#fff;
  font-size:.82rem;font-weight:600;opacity:0;transition:opacity .25s ease;
}
.gallery-item:hover .gallery-caption{opacity:1;}
.lightbox-overlay{
  position:fixed;inset:0;background:rgba(11,17,18,.92);z-index:9999;
  display:none;align-items:center;justify-content:center;padding:40px;
}
.lightbox-overlay.is-open{display:flex;}
.lightbox-overlay img{max-width:90vw;max-height:82vh;border-radius:12px;}
.lightbox-close{position:absolute;top:26px;right:34px;color:#fff;font-size:2rem;background:none;border:0;cursor:pointer;}

/* =========================================================
   9. PARTY / NCP SECTION
   ========================================================= */
.party-banner{
  background:var(--ncp-green-900);color:#fff;border-radius:var(--radius-lg);
  padding:50px;display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center;
}
@media(max-width:700px){.party-banner{grid-template-columns:1fr;text-align:center;padding:36px 26px;}}
.party-symbol{
  width:96px;height:96px;border-radius:50%;background:var(--lily-gold);
  display:flex;align-items:center;justify-content:center;font-size:2.4rem;flex:none;margin:0 auto;
}
.stat-row{display:flex;gap:44px;flex-wrap:wrap;margin-top:20px;}
@media(max-width:700px){.stat-row{justify-content:center;}}
.stat-row b{display:block;font-family:var(--font-display);font-size:1.9rem;color:var(--lily-gold);}
.stat-row span{font-size:.8rem;color:rgba(255,255,255,.7);}

/* =========================================================
   10. CONTACT
   ========================================================= */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.contact-info-item{display:flex;gap:16px;margin-bottom:24px;}
.contact-info-item .icon{
  width:44px;height:44px;border-radius:12px;background:var(--ncp-green-100);
  color:var(--ncp-green-700);display:flex;align-items:center;justify-content:center;flex:none;font-size:1.1rem;
}
.social-row{display:flex;gap:12px;margin-top:20px;}
.social-row a{
  width:42px;height:42px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--ncp-green-700);font-size:1rem;
}
.social-row a:hover{background:var(--ncp-green-700);color:#fff;border-color:var(--ncp-green-700);}

.contact-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:34px;box-shadow:var(--shadow-sm);}
.form-row{margin-bottom:18px;}
.form-row label{display:block;font-weight:600;font-size:.88rem;margin-bottom:6px;}
.form-row input,.form-row textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-family:var(--font-body);font-size:.95rem;background:var(--paper-50);
}
.form-row input:focus,.form-row textarea:focus{outline:2px solid var(--ncp-green-500);outline-offset:1px;}
.form-note{font-size:.82rem;color:var(--ink-500);margin-top:10px;}
.form-success{background:var(--ncp-green-100);color:var(--ncp-green-900);padding:14px 18px;border-radius:10px;margin-bottom:18px;font-weight:600;}

/* =========================================================
   11. CTA BAND
   ========================================================= */
.cta-band{
  background:linear-gradient(120deg,var(--ncp-green-700),var(--ncp-green-900));
  color:#fff;border-radius:var(--radius-lg);padding:60px;text-align:center;
}
.cta-band h2{color:#fff;}
.cta-band p{color:rgba(255,255,255,.82);max-width:560px;margin:0 auto 26px;}

/* =========================================================
   12. FOOTER
   ========================================================= */
.site-footer{background:var(--ncp-green-900);color:rgba(255,255,255,.78);padding:70px 0 26px;margin-top:100px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:50px;}
@media(max-width:800px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:500px){.footer-grid{grid-template-columns:1fr;}}
.footer-grid h4{color:#fff;font-family:var(--font-body);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px;}
.footer-grid ul{list-style:none;padding:0;margin:0;}
.footer-grid li{margin-bottom:10px;}
.footer-grid a{color:rgba(255,255,255,.78);font-size:.92rem;}
.footer-grid a:hover{color:var(--lily-gold);}
.footer-brand p{color:rgba(255,255,255,.65);font-size:.92rem;max-width:320px;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.14);padding-top:24px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.8rem;color:rgba(255,255,255,.55);
}
.widget{margin-bottom:0;}
.widget ul{list-style:none;padding:0;margin:0;}

/* =========================================================
   13. WORDPRESS CORE / EDITOR CONTENT
   ========================================================= */
.entry-content{max-width:760px;margin:0 auto;}
.entry-content h2{margin-top:1.6em;}
.entry-content img{border-radius:var(--radius-md);margin:1.4em 0;box-shadow:var(--shadow-sm);}
.entry-content blockquote{
  border-left:4px solid var(--lily-gold);margin:1.6em 0;padding:.4em 1.4em;
  font-family:var(--font-display);font-style:italic;color:var(--ncp-green-900);background:var(--ncp-green-50);border-radius:0 12px 12px 0;
}
.alignwide{max-width:1000px;margin-left:auto;margin-right:auto;}
.alignfull{max-width:100%;}
.wp-block-image{margin:1.6em 0;}
.wp-caption-text,figcaption{font-size:.85rem;color:var(--ink-500);text-align:center;margin-top:8px;}

/* Accessibility */
.screen-reader-text{
  position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;
}
.skip-link{position:absolute;left:-999px;top:0;background:var(--ncp-green-800);color:#fff;padding:12px 20px;z-index:10000;}
.skip-link:focus{left:10px;top:10px;}

/* Fade-in on scroll */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;}
.reveal.is-visible{opacity:1;transform:none;}

/* Placeholder image styling (bundled SVGs) */
.placeholder-note{
  font-size:.72rem;color:var(--bd-red);background:#fff5f5;border:1px dashed var(--bd-red);
  padding:6px 10px;border-radius:8px;display:inline-block;margin-top:8px;
}
