/* =========================================================
   Pakistan Millat Party (F) — Bootstrap theme overrides
========================================================= */
:root{
  --pmp-green-900:#0A3D24;
  --pmp-green-800:#0F5C36;
  --pmp-green-700:#146B41;
  --pmp-green-100:#E7F0EA;
  --pmp-paper:#FFFFFF;
  --pmp-paper-2:#EEF6F1;
  --pmp-ink:#1B1B18;
  --pmp-ink-soft:#4B4A44;
  --pmp-gold:#C9A24B;
  --pmp-gold-soft:#E4CE94;
  --pmp-maroon:#7A1F2B;
  --pmp-line:#DCD6C4;

  --bs-font-sans-serif: "Inter", "Noto Nastaliq Urdu", sans-serif;
  --bs-body-color: var(--pmp-ink);
  --bs-body-bg: var(--pmp-paper);
  --bs-link-color: var(--pmp-green-800);
  --bs-link-hover-color: var(--pmp-green-900);
}

body{ font-family: var(--bs-font-sans-serif); }
.font-display{ font-family:"Lora","Noto Nastaliq Urdu",serif; }
.font-mono{ font-family:"IBM Plex Mono", monospace; }
.text-ur{ font-family:"Noto Nastaliq Urdu", serif; }

/* ---------- utility color classes ---------- */
.bg-pmp-green{ background-color: var(--pmp-green-800) !important; }
.bg-pmp-green-dark{ background-color: var(--pmp-green-900) !important; }
.bg-pmp-paper2{ background-color: var(--pmp-paper-2) !important; }
.bg-pmp-100{ background-color: var(--pmp-green-100) !important; }
.bg-pmp-white{ background-color:#FFFFFF !important; }
.text-pmp-green{ color: var(--pmp-green-800) !important; }
.text-pmp-green-dark{ color: var(--pmp-green-900) !important; }
.text-pmp-gold{ color: var(--pmp-gold) !important; }
.text-pmp-soft{ color: var(--pmp-ink-soft) !important; }
.border-pmp{ border-color: var(--pmp-line) !important; }
.border-pmp-gold{ border-color: var(--pmp-gold) !important; }

/* Pakistan-flag inspired stripe divider: green / white / green */
.pmp-flag-rule{
  height:6px; width:100%;
  background: linear-gradient(90deg, var(--pmp-green-800) 0 32%, #ffffff 32% 68%, var(--pmp-green-800) 68% 100%);
}
.pmp-flag-rule.thin{ height:4px; }

/* Buttons */
.btn-pmp-gold{
  background-color: var(--pmp-gold); border-color: var(--pmp-gold); color: var(--pmp-green-900); font-weight:700;
}
.btn-pmp-gold:hover{ background-color: var(--pmp-gold-soft); border-color: var(--pmp-gold-soft); color: var(--pmp-green-900); }
.btn-pmp-green{ background-color: var(--pmp-green-800); border-color: var(--pmp-green-800); color:#fff; font-weight:700; }
.btn-pmp-green:hover{ background-color: var(--pmp-green-700); border-color: var(--pmp-green-700); color:#fff; }
.btn-pmp-outline{ border:1px solid rgba(255,255,255,.65); color:#fff; font-weight:700; }
.btn-pmp-outline:hover{ background:rgba(255,255,255,.1); border-color:#fff; color:#fff; }

/* Eyebrow label */
.eyebrow{
  font-family:"IBM Plex Mono", monospace; font-size:.72rem; letter-spacing:.16em;
  text-transform:uppercase; color: var(--pmp-gold); display:inline-flex; align-items:center; gap:.6em;
}
.eyebrow::before{ content:""; width:22px; height:1px; background: var(--pmp-gold); }
.eyebrow-light{ color: var(--pmp-gold-soft); }
.eyebrow-light::before{ background: var(--pmp-gold-soft); }

/* Seal / signature motif */
.pmp-seal{
  width:60px; height:60px; border-radius:50%; border:1.5px solid var(--pmp-gold);
  display:flex; align-items:center; justify-content:center; position:relative; flex:none;
}
.pmp-seal::before{ content:""; position:absolute; inset:5px; border:1px dashed var(--pmp-gold-soft); border-radius:50%; }
.pmp-seal i{ color: var(--pmp-gold); font-size:1.4rem; }
.seal-tag{
  display:inline-flex; align-items:center; gap:.5em; font-family:"IBM Plex Mono",monospace;
  font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color: var(--pmp-green-800);
  border:1px solid var(--pmp-green-800); border-radius:999px; padding:.32em .9em .32em .6em;
}
.seal-tag .dot{ width:7px; height:7px; border-radius:50%; background: var(--pmp-green-800); }

/* Top utility bar */
.topbar{ background: var(--pmp-green-900); color:#D8E6DC; font-family:"IBM Plex Mono",monospace; font-size:.72rem; }
.topbar a{ color:#D8E6DC; }
.topbar a:hover{ color: var(--pmp-gold-soft); }

/* Navbar */
.navbar-pmp{ background: var(--pmp-paper-2); border-bottom:1px solid var(--pmp-line); }
.navbar-pmp .navbar-brand-name{ font-family:"Lora",serif; font-weight:700; color: var(--pmp-green-900); font-size:1.05rem; line-height:1.2; }
.navbar-pmp .navbar-brand-ur{ color: var(--pmp-ink-soft); font-size:.92rem; }
.navbar-pmp .nav-link{ color: var(--pmp-green-900); font-weight:600; font-size:.92rem; }
.navbar-pmp .nav-link:hover{ color: var(--pmp-green-700); }
.navbar-pmp .nav-link.active{
  color: var(--pmp-green-800) !important; position:relative;
}
.navbar-pmp .nav-link.active::after{
  content:""; position:absolute; left:14px; right:14px; bottom:2px; height:2px; background: var(--pmp-gold);
}

/* Hero carousel */
.pmp-hero{ position:relative; }
.pmp-hero .carousel-item{ height:80vh; min-height:540px; max-height:780px; }
.pmp-hero .carousel-item img{ width:100%; height:100%; object-fit:cover; }
.pmp-hero .carousel-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,61,36,.18) 0%, rgba(10,61,36,.58) 78%, rgba(10,61,36,.88) 100%);
}
.pmp-hero .carousel-caption-custom{
  position:absolute; left:0; bottom:0; padding:0 0 60px; z-index:5; color:#fff; text-align:left;
}
.pmp-hero .carousel-indicators [data-bs-target]{
  width:10px; height:10px; border-radius:50%; background-color: var(--pmp-gold-soft); opacity:.6; border:none;
}
.pmp-hero .carousel-indicators .active{ opacity:1; background-color: var(--pmp-gold); }

/* Section spacing */
.section-py{ padding-top:88px; padding-bottom:88px; }
.section-py-sm{ padding-top:56px; padding-bottom:56px; }

/* Pillar / feature cards — white card, bold green top edge */
.pmp-card{
  background:#FFFFFF; border:1px solid var(--pmp-line); border-top:4px solid var(--pmp-green-800);
  border-radius:10px; transition:.25s ease;
}
.pmp-card:hover{ transform:translateY(-4px); box-shadow:0 18px 40px -20px rgba(10,61,36,.35); border-top-color: var(--pmp-gold); }

/* Gallery */
.gallery-item{ overflow:hidden; border-radius:8px; position:relative; }
.gallery-item img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; display:block; }
.gallery-item:hover img{ transform:scale(1.07); }
.gallery-item .g-caption{
  position:absolute; left:0; right:0; bottom:0; padding:10px 12px; color:#fff; font-size:.78rem;
  background:linear-gradient(0deg, rgba(10,61,36,.88), transparent); opacity:0; transition:opacity .25s ease;
}
.gallery-item:hover .g-caption{ opacity:1; }

/* Leader cards */
.leader-photo{ aspect-ratio:4/3.2; overflow:hidden; border-radius:10px 10px 0 0; }
.leader-photo img{ width:100%; height:100%; object-fit:cover; object-position:top center; }

/* Tables */
.table-pmp thead th{
  font-family:"IBM Plex Mono",monospace; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase;
  color: var(--pmp-green-800); background-color: var(--pmp-green-100); border-bottom:none;
}
.table-pmp td, .table-pmp th{ vertical-align:middle; padding:14px 16px; }
.status-pill{
  display:inline-flex; align-items:center; gap:.4em; font-size:.76rem; font-weight:700;
  color: var(--pmp-green-800); background: var(--pmp-green-100); padding:.3em .8em; border-radius:999px;
}
.status-pill .dot{ width:6px; height:6px; border-radius:50%; background: var(--pmp-green-800); }

/* Certificate card */
.certificate{
  background: var(--pmp-paper-2); border:1px solid var(--pmp-line); border-radius:14px; padding:42px; position:relative;
}
.certificate::before{
  content:""; position:absolute; inset:10px; border:1px dashed var(--pmp-line); border-radius:8px; pointer-events:none;
}
.note-box{ border-left:3px solid var(--pmp-maroon); background:#FBEFEF; color:#5c1620; padding:16px 18px; border-radius:6px; font-size:.88rem; }

/* CTA band */
.cta-band{ background: var(--pmp-green-800); border-radius:14px; color:#fff; }

/* Contact icons */
.contact-ic{
  width:42px; height:42px; border-radius:8px; background: var(--pmp-green-100);
  display:flex; align-items:center; justify-content:center; flex:none;
}
.contact-ic i{ color: var(--pmp-green-800); font-size:1.1rem; }
.social-ic{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--pmp-line);
  display:flex; align-items:center; justify-content:center; color: var(--pmp-green-800);
}
.social-ic:hover{ border-color: var(--pmp-gold); background: var(--pmp-green-100); }

/* Footer */
footer.pmp-footer{ background: var(--pmp-green-900); color:#D8E6DC; }
footer.pmp-footer a{ color:#D8E6DC; }
footer.pmp-footer a:hover{ color: var(--pmp-gold-soft); }
footer.pmp-footer h6{
  color:#fff; font-family:"IBM Plex Mono",monospace; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;
}
footer.pmp-footer hr{ border-color: rgba(255,255,255,.14); }

/* Reveal on scroll */
.reveal{ opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

@media (max-width:767.98px){
  .pmp-hero .carousel-item{ height:70vh; min-height:460px; }
}
