/*
Theme Name:        Boris Nkemateh — Portfolio Property Trust
Theme URI:         https://right-drone-91490802.figma.site
Author:            Property Trust Group
Author URI:        https://propertytrustgroup.com
Description:       Official portfolio site for Hon. Boris Nkemateh — Global Real Estate Developer, Diplomat & Philanthropist. Chairman & MD of Property Trust Group, Buea, Cameroon.
Version:           1.0.0
Requires at least: 6.0
Tested up to:      6.5
Requires PHP:      8.0
License:           GNU General Public License v2 or later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       boris-nkemateh
Tags:              dark, gold, luxury, one-page, portfolio, real-estate, full-width-template, custom-header, custom-menu
*/

/* ============================================================
   VARIABLES
   ============================================================ */
:root {
  --gold:       #D4AF37;
  --gold-mid:   #F0D060;
  --gold-dark:  #9A7B1C;
  --gold-dim:   rgba(212,175,55,0.3);
  --gold-faint: rgba(212,175,55,0.08);
  --bg:         #060606;
  --bg2:        #080808;
  --bg3:        #0A0800;
  --dark-card:  rgba(17,17,17,0.8);
  --cream:      #F5F0E8;
  --text-mid:   #C8C0B0;
  --text-muted: #A09880;
  --text-dim:   #888880;
  --text-dark:  #555555;
  --font-serif: 'Cinzel', serif;
  --font-body:  'Raleway', sans-serif;
  --font-quote: 'Playfair Display', serif;
  --ease:       cubic-bezier(0.25,0.46,0.45,0.94);
  --trans:      all 0.35s var(--ease);
  --max-w:      1280px;
  --pad:        clamp(1.5rem, 5vw, 2.5rem);
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*,*::before,*::after { box-sizing: border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family: var(--font-body);
  background: var(--bg);
  color: var(--cream);
  min-height: 100vh;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; transition:var(--trans); }
ul,ol { list-style:none; }
button { cursor:pointer; border:none; background:none; font-family:inherit; color:inherit; }

/* Scrollbar */
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:var(--bg); }
::-webkit-scrollbar-thumb { background:var(--gold); }
::-webkit-scrollbar-thumb:hover { background:var(--gold-mid); }
::selection { background:rgba(212,175,55,0.3); color:var(--cream); }

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1,h2,h3,h4 {
  font-family: var(--font-serif);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0.04em;
}
h1 { font-size: clamp(2.4rem, 5vw, 4.5rem); }
h2 { font-size: clamp(1.8rem, 3.5vw, 3rem); letter-spacing: 0.04em; }
h3 { font-size: clamp(1rem, 2vw, 1.2rem); }
p  { margin-bottom: 1em; font-family: var(--font-body); }
p:last-child { margin-bottom:0; }

.eyebrow {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.5rem;
}
.eyebrow::before,
.eyebrow::after {
  content: '';
  display: block;
  height: 1px;
  width: 48px;
  background: var(--gold);
  flex-shrink: 0;
}
.eyebrow--left::before { display:none; }
.eyebrow--left { gap:.75rem; margin-bottom:.75rem; }
.eyebrow--left::after { display:none; }
.eyebrow--left .rule { display:inline-block; height:1px; width:40px; background:var(--gold); }

.gold-line { display:inline-block; height:1px; width:40px; background:var(--gold); flex-shrink:0; }

/* ============================================================
   LAYOUT
   ============================================================ */
.wrap {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad);
}
.section { padding: clamp(4rem, 8vw, 7rem) 0; }
.section-top { border-top: 1px solid transparent;
  background: linear-gradient(var(--bg),var(--bg)) padding-box,
              linear-gradient(90deg,transparent,var(--gold) 50%,transparent) border-box;
  border-top: 1px solid transparent; }
.divider-gold {
  height: 1px;
  background: linear-gradient(90deg,transparent,var(--gold) 50%,transparent);
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: 1rem 2rem;
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  transition: var(--trans);
  cursor: pointer;
  white-space: nowrap;
}
.btn-gold {
  background: linear-gradient(135deg,var(--gold),var(--gold-mid),var(--gold-dark));
  color: var(--bg);
  border: none;
}
.btn-gold:hover { transform:scale(1.05); filter:brightness(1.1); }
.btn-outline-gold {
  background: transparent;
  color: var(--gold);
  border: 1px solid var(--gold);
}
.btn-outline-gold:hover { background:var(--gold-faint); transform:scale(1.05); }
.btn-ghost {
  background: transparent;
  color: var(--text-mid);
  border: 1px solid var(--gold-dim);
}
.btn-ghost:hover { transform:scale(1.05); }

/* ============================================================
   HEADER / NAV
   ============================================================ */
#site-header {
  position: fixed;
  top:0; left:0; right:0;
  z-index: 500;
  transition: background .5s ease, box-shadow .5s ease;
  background: rgba(0,0,0,0.95);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 4px 40px rgba(212,175,55,0.12);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad);
}

/* Logo */
.site-logo { display:flex; flex-direction:column; line-height:1; cursor:pointer; }
.logo-hon {
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--gold);
}
.logo-name {
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--cream);
  letter-spacing: .08em;
  margin-top: 2px;
}

/* Primary nav */
.primary-nav {
  display: flex;
  align-items: center;
  gap: 2rem;
}
.primary-nav a {
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--text-dim);
  transition: color .2s;
}
.primary-nav a:hover { color:var(--gold); }

/* Theme toggle */
.theme-toggle {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 1px solid var(--gold-dim);
  color: var(--gold);
  display: flex; align-items:center; justify-content:center;
  transition: var(--trans);
}
.theme-toggle:hover { background:var(--gold-faint); }
.theme-toggle svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; }

/* Mobile toggle */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  width: 28px; padding:4px 0;
  color: var(--gold);
}
.hamburger svg { width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:2; }

/* Mobile drawer */
.mobile-drawer {
  position: fixed;
  top:0; right:-110%;
  width: min(320px,100vw);
  height: 100vh;
  background: #0A0A0A;
  z-index: 9999;
  padding: 6rem 2.5rem 2.5rem;
  transition: right .4s var(--ease);
  border-left: 1px solid var(--gold-dim);
}
.mobile-drawer.open { right:0; }
.mobile-drawer-close {
  position:absolute; top:1.4rem; right:1.4rem;
  width:40px; height:40px;
  border:1px solid var(--gold-dim);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--cream); font-size:1.2rem;
  transition:var(--trans);
}
.mobile-drawer-close:hover { border-color:var(--gold); color:var(--gold); }
.mobile-drawer nav { display:flex; flex-direction:column; }
.mobile-drawer nav a {
  font-family: var(--font-serif);
  font-size: 1.4rem; color: rgba(255,255,255,.6);
  padding: .8rem 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
  transition: color .3s;
}
.mobile-drawer nav a:hover { color:var(--gold); }
.mobile-drawer .btn { margin-top:2rem; width:100%; justify-content:center; }
.mobile-overlay {
  position:fixed; inset:0;
  background:rgba(0,0,0,.6);
  z-index:9998;
  opacity:0; visibility:hidden;
  transition:var(--trans);
}
.mobile-overlay.open { opacity:1; visibility:visible; }

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.hero-bg {
  position: absolute; inset:0;
}
.hero-bg img {
  width:100%; height:100%;
  object-fit: cover; object-position:center;
}
.hero-bg-overlay {
  position: absolute; inset:0;
  background: linear-gradient(135deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.75) 50%,rgba(10,8,3,.88) 100%);
}
.hero-bg-glow {
  position: absolute; inset:0; opacity:.2;
  background:
    radial-gradient(at 20% 50%,rgba(212,175,55,.15) 0%,transparent 60%),
    radial-gradient(at 80% 20%,rgba(212,175,55,.1) 0%,transparent 50%);
}
.hero-main {
  position: relative; z-index:2;
  flex:1;
  display: flex;
  flex-direction: row;
  align-items: center;
  max-width: var(--max-w);
  margin: 0 auto;
  width:100%;
  padding: 8rem var(--pad) 5rem;
  gap: 4rem;
}
.hero-text { flex:1; display:flex; flex-direction:column; justify-content:center; }
.hero-superscript {
  display:flex; align-items:center; gap:1rem;
  margin-bottom: 1.5rem;
}
.hero-superscript .bar { height:1px; width:48px; background:var(--gold); }
.hero-superscript span {
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.35em; text-transform:uppercase;
  color:var(--gold);
}
.hero h1 {
  font-family:var(--font-serif);
  font-size: clamp(2.4rem,5vw,4.5rem);
  font-weight:700; line-height:1.1;
  letter-spacing:.04em;
  color:var(--cream);
  margin-bottom:1.5rem;
}
.hero h1 .gold { color:var(--gold); }
.hero-tagline {
  font-family:var(--font-quote);
  font-size: clamp(1rem,2vw,1.2rem);
  line-height:1.7; font-style:italic;
  color:var(--text-mid);
  max-width:480px;
  margin-bottom:2.5rem;
}
.hero-actions { display:flex; flex-wrap:wrap; gap:1rem; }
.hero-portrait {
  flex-shrink:0;
  display:none;
}
@media(min-width:1024px){ .hero-portrait { display:block; } }
.hero-portrait-inner {
  position:relative;
  width:280px;
}
.hero-portrait-inner::before,
.hero-portrait-inner::after {
  content:'';
  position:absolute;
  width:80px; height:80px;
  border:2px solid var(--gold);
}
.hero-portrait-inner::before { top:-16px; left:-16px; border-right:none; border-bottom:none; }
.hero-portrait-inner::after  { bottom:-16px; right:-16px; border-left:none; border-top:none; }
.hero-portrait-inner img {
  width:100%; aspect-ratio:3/4; object-fit:cover; object-position:top;
  filter:contrast(1.05) saturate(0.95);
  position:relative; z-index:1;
}

/* Stat bar */
.hero-stats {
  position: relative; z-index:2;
  background:rgba(0,0,0,.8);
  border-top:1px solid rgba(212,175,55,.25);
  backdrop-filter:blur(20px);
}
.hero-stats-grid {
  max-width:var(--max-w); margin:0 auto;
  padding: 0 var(--pad);
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1px;
  background:rgba(212,175,55,.1);
}
.stat-cell {
  display:flex; flex-direction:column;
  align-items:center; text-align:center;
  padding: 1.25rem 1.5rem;
  background:rgba(6,6,6,.9);
}
.stat-cell .num {
  font-family:var(--font-serif);
  font-size:1.1rem; font-weight:700;
  color:var(--gold);
  letter-spacing:.05em;
  margin-bottom:.3rem;
}
.stat-cell .lbl {
  font-family:var(--font-body);
  font-size:.6rem; font-weight:600;
  letter-spacing:.15em; text-transform:uppercase;
  color:#888880;
  line-height:1.4; text-align:center;
}

/* Scroll cue */
.hero-scroll {
  position:absolute; bottom:1.5rem; left:50%;
  transform:translateX(-50%);
  z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:.4rem;
  color:var(--gold); opacity:.6;
  font-family:var(--font-body);
  font-size:.55rem; letter-spacing:.2em; text-transform:uppercase;
  animation: scrollBounce 2.2s infinite;
}
.hero-scroll svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; }
@keyframes scrollBounce {
  0%,100% { transform:translateX(-50%) translateY(0); }
  50%      { transform:translateX(-50%) translateY(8px); }
}

/* ============================================================
   ABOUT
   ============================================================ */
.about-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:6rem; align-items:center;
}
.about-img-wrap { position:relative; }
.about-img-num {
  position:absolute; top:-3rem; left:-1.5rem;
  font-family:var(--font-serif);
  font-size:8rem; font-weight:700;
  color:rgba(212,175,55,.06); line-height:1;
  pointer-events:none; user-select:none;
}
.about-img-accent {
  position:absolute; top:2rem; left:-2rem;
  width:12rem; height:16rem;
  background:rgba(212,175,55,.07);
  border:1px solid rgba(212,175,55,.2);
  display:none;
}
@media(min-width:1024px){ .about-img-accent { display:block; } }
.about-img-wrap img {
  width:100%; aspect-ratio:3/4; max-height:600px;
  object-fit:cover; object-position:top;
  filter:contrast(1.05);
  position:relative; z-index:1;
}
.about-badge {
  position:absolute; bottom:1.5rem; right:-1rem;
  background:rgba(6,6,6,.92);
  border:1px solid rgba(212,175,55,.3);
  backdrop-filter:blur(20px);
  padding:1rem 1.5rem;
  display:none;
  min-width:200px;
  z-index:2;
}
@media(min-width:1024px){ .about-badge { display:block; } }
.about-badge .badge-role {
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.3rem;
}
.about-badge .badge-co {
  font-family:var(--font-serif);
  font-size:.85rem; font-weight:600; color:var(--cream);
}
.about-text blockquote {
  border-left:3px solid var(--gold);
  padding:.25rem 0 .25rem 1.25rem;
  font-family:var(--font-quote);
  font-size:1.1rem; font-style:italic;
  line-height:1.7; color:var(--text-mid);
  margin-bottom:2rem;
}
.about-text p {
  font-family:var(--font-body);
  font-size:.95rem; line-height:1.9;
  color:var(--text-muted);
}
.trait-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:1rem; margin-top:2rem;
}
.trait-card {
  padding:1rem;
  background:var(--gold-faint);
  border:1px solid rgba(212,175,55,.2);
  transition:var(--trans);
}
.trait-card:hover { transform:scale(1.02); }
.trait-card .tc-label {
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.3rem;
}
.trait-card .tc-desc {
  font-family:var(--font-body);
  font-size:.78rem; color:var(--text-dim); line-height:1.5;
}

/* ============================================================
   ACHIEVEMENTS
   ============================================================ */
.achievements {
  background:linear-gradient(var(--bg) 0%,var(--bg3) 50%,var(--bg) 100%);
  position:relative; overflow:hidden;
}
.achievements::before {
  content:'';
  position:absolute; inset:0; opacity:.05;
  background-image:repeating-linear-gradient(45deg,var(--gold) 0,var(--gold) 1px,transparent 1px,transparent 10px);
}
.achieve-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:rgba(212,175,55,.15);
  position:relative; z-index:1;
}
.achieve-cell {
  display:flex; flex-direction:column;
  align-items:center; text-align:center;
  padding:3rem 2rem;
  background:var(--bg);
  position:relative; overflow:hidden;
  transition:var(--trans);
}
.achieve-cell::before {
  content:'';
  position:absolute; inset:0; opacity:0;
  background:radial-gradient(rgba(212,175,55,.08) 0%,transparent 70%);
  transition:opacity .5s;
}
.achieve-cell:hover::before { opacity:1; }
.achieve-num {
  font-family:var(--font-serif);
  font-size:clamp(2.2rem,4vw,3.5rem);
  font-weight:700; color:var(--gold);
  line-height:1; letter-spacing:.02em;
  margin-bottom:.75rem;
  position:relative; z-index:1;
}
.achieve-title {
  font-family:var(--font-body);
  font-size:.8rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--cream); margin-bottom:.3rem;
  position:relative; z-index:1;
}
.achieve-sub {
  font-family:var(--font-body);
  font-size:.7rem; letter-spacing:.12em; text-transform:uppercase;
  color:#555;
  position:relative; z-index:1;
}

/* ============================================================
   PROPERTY TRUST GROUP
   ============================================================ */
.ptg-section { background:var(--bg2); }
.ptg-header { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:end; margin-bottom:5rem; }
.ptg-desc { font-family:var(--font-body); font-size:.95rem; line-height:1.9; color:var(--text-muted); }
.service-list { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin-bottom:1.5rem; }
.svc-item {
  display:flex; align-items:flex-start; gap:.75rem;
  padding:1rem;
  background:var(--gold-faint);
  border:1px solid rgba(212,175,55,.2);
  transition:var(--trans);
}
.svc-item:hover { transform:scale(1.02); }
.svc-item svg { width:14px; height:14px; stroke:var(--gold); fill:none; stroke-width:2; flex-shrink:0; margin-top:2px; }
.svc-item span {
  font-family:var(--font-body);
  font-size:.78rem; font-weight:600;
  color:var(--text-mid); letter-spacing:.05em;
}
.ptg-photo-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:rgba(212,175,55,.15);
}
.ptg-photo {
  position:relative; overflow:hidden;
  aspect-ratio:3/4; background:var(--bg2);
}
.ptg-photo img { width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .7s var(--ease); }
.ptg-photo:hover img { transform:scale(1.1); }
.ptg-photo-overlay {
  position:absolute; inset:0;
  background:linear-gradient(transparent 40%,rgba(0,0,0,.85) 100%);
  transition:var(--trans);
}
.ptg-photo-tag {
  position:absolute; top:1rem; left:1rem;
  padding:.3rem .75rem;
  background:rgba(212,175,55,.9);
  color:var(--bg);
  font-family:var(--font-body);
  font-size:.6rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
}
.ptg-photo-info { position:absolute; bottom:0; left:0; right:0; padding:1.25rem; }
.ptg-photo-title {
  font-family:var(--font-serif);
  font-size:.9rem; font-weight:600;
  color:var(--cream); letter-spacing:.05em;
  margin-bottom:.25rem;
}
.ptg-photo-loc {
  font-family:var(--font-body);
  font-size:.7rem; color:var(--gold);
  letter-spacing:.12em; text-transform:uppercase;
}

/* ============================================================
   GLOBAL PRESENCE
   ============================================================ */
.global-section { background:#050505; overflow:hidden; }
.global-bg-text {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  font-family:var(--font-serif);
  font-size:clamp(6rem,18vw,18rem);
  font-weight:700;
  color:rgba(212,175,55,.03);
  white-space:nowrap; line-height:1;
  pointer-events:none; user-select:none;
}
.global-map {
  border:1px solid rgba(212,175,55,.2);
  background:rgba(10,8,3,.8);
  padding:2rem; min-height:280px;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1px;
}
.global-map svg { width:100%; max-height:280px; opacity:.25; }
.global-grid {
  display:grid; grid-template-columns:repeat(5,1fr);
  gap:1px; background:rgba(212,175,55,.15);
}
.globe-cell {
  padding:1.5rem;
  background:#050505;
  position:relative; overflow:hidden;
  transition:var(--trans);
}
.globe-cell::before {
  content:'';
  position:absolute; inset:0; opacity:0;
  background:radial-gradient(at center bottom,rgba(212,175,55,.08) 0%,transparent 70%);
  transition:opacity .5s;
}
.globe-cell:hover::before { opacity:1; }
.globe-cell .flag { font-size:1.8rem; margin-bottom:.75rem; }
.globe-cell .region {
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.3rem;
}
.globe-cell .country {
  font-family:var(--font-serif);
  font-size:.85rem; font-weight:600;
  color:var(--cream); letter-spacing:.03em;
  margin-bottom:1rem;
}
.globe-cell ul { display:flex; flex-direction:column; gap:.5rem; }
.globe-cell li {
  display:flex; align-items:flex-start; gap:.5rem;
}
.globe-cell li svg { width:10px; height:10px; stroke:var(--gold); fill:none; stroke-width:2; flex-shrink:0; margin-top:3px; }
.globe-cell li span {
  font-family:var(--font-body);
  font-size:.72rem; color:var(--text-dim); line-height:1.4;
}

/* ============================================================
   LEADERSHIP
   ============================================================ */
.leadership-section { background:var(--bg); }
.leadership-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:rgba(212,175,55,.15);
}
.leader-card {
  padding:2rem;
  background:var(--bg);
  position:relative; overflow:hidden;
  transition:var(--trans);
}
.leader-card::before {
  content:'';
  position:absolute; inset:0; opacity:0;
  background:radial-gradient(at left top,rgba(212,175,55,.08) 0%,transparent 65%);
  transition:opacity .7s;
}
.leader-card:hover::before { opacity:1; }
.leader-icon {
  width:56px; height:56px;
  border:1px solid rgba(212,175,55,.3);
  background:var(--gold-faint);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1.5rem;
  position:relative; z-index:1;
}
.leader-icon svg { width:22px; height:22px; stroke:var(--gold); fill:none; stroke-width:2; }
.leader-title {
  font-family:var(--font-serif);
  font-size:.85rem; font-weight:700;
  color:var(--cream); letter-spacing:.05em;
  line-height:1.3; margin-bottom:.5rem;
  position:relative; z-index:1;
}
.leader-org {
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.2rem;
  position:relative; z-index:1;
}
.leader-rule {
  height:1px; width:32px;
  background:rgba(212,175,55,.4);
  margin-bottom:1.25rem;
  position:relative; z-index:1;
}
.leader-desc {
  font-family:var(--font-body);
  font-size:.82rem; line-height:1.8;
  color:var(--text-dim);
  position:relative; z-index:1;
}
.leader-quote-card {
  padding:2rem;
  background:linear-gradient(135deg,rgba(212,175,55,.07) 0%,rgba(212,175,55,.02) 100%);
  border:1px solid rgba(212,175,55,.2);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center;
}
.leader-quote-mark {
  font-family:var(--font-serif);
  font-size:4rem; color:rgba(212,175,55,.3);
  line-height:1; margin-bottom:1rem; font-weight:700;
}
.leader-quote-text {
  font-family:var(--font-quote);
  font-size:1rem; font-style:italic;
  line-height:1.7; color:var(--text-mid);
  margin-bottom:1.5rem;
}
.leader-quote-attr {
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--gold);
}

/* ============================================================
   PHILANTHROPY / FOUNDATIONS
   ============================================================ */
.philanthropy-section { background:#070705; }
.found-row {
  display:grid; grid-template-columns:1fr 1fr;
  gap:1px; background:rgba(212,175,55,.15);
  margin-bottom:1px;
}
.found-img {
  position:relative; overflow:hidden; min-height:400px;
}
.found-img img { width:100%; height:100%; object-fit:cover; object-position:center; min-height:400px; }
.found-img-overlay {
  position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(0,0,0,.5) 0%,transparent 60%);
}
.found-img-tag {
  position:absolute;
  padding:.5rem 1rem;
  background:var(--gold); color:var(--bg);
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
}
.found-tag-tl { top:2rem; left:2rem; }
.found-tag-tr { top:2rem; right:2rem; }
.found-content {
  padding:2.5rem 3rem;
  background:#070705;
  display:flex; flex-direction:column; justify-content:center;
}
.found-acronym {
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.5rem;
}
.found-name {
  font-family:var(--font-serif);
  font-size:1.1rem; font-weight:700;
  color:var(--cream); letter-spacing:.03em;
  line-height:1.4; margin-bottom:1.5rem;
}
.found-desc {
  font-family:var(--font-body);
  font-size:.9rem; line-height:1.9;
  color:var(--text-muted); margin-bottom:2rem;
}
.found-tags { display:flex; flex-direction:column; gap:.75rem; }
.found-tag-item { display:flex; align-items:center; gap:.75rem; }
.found-tag-icon {
  width:32px; height:32px; flex-shrink:0;
  border:1px solid rgba(212,175,55,.3);
  background:var(--gold-faint);
  display:flex; align-items:center; justify-content:center;
}
.found-tag-icon svg { width:14px; height:14px; stroke:var(--gold); fill:none; stroke-width:2; }
.found-tag-label {
  font-family:var(--font-body);
  font-size:.82rem; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--text-mid);
}
.found-tags-grid { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }

/* ============================================================
   GALLERY
   ============================================================ */
.gallery-section { background:var(--bg); }
.gallery-filters {
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:.75rem; margin-bottom:3rem;
}
.gallery-filter {
  padding:.5rem 1.25rem;
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  transition:var(--trans); cursor:pointer;
  border:1px solid rgba(212,175,55,.25);
  background:transparent; color:var(--text-dim);
}
.gallery-filter.active,
.gallery-filter:hover {
  border-color:var(--gold);
  background:var(--gold); color:var(--bg);
}
.gallery-masonry {
  columns:1;
  gap:1rem;
}
@media(min-width:640px)  { .gallery-masonry { columns:2; } }
@media(min-width:1024px) { .gallery-masonry { columns:3; } }
.gallery-item {
  break-inside:avoid;
  position:relative; overflow:hidden;
  cursor:pointer; margin-bottom:1rem;
  display:block;
}
.gallery-item img {
  width:100%; display:block;
  object-fit:cover; object-position:center;
  transition:transform .7s var(--ease);
}
.gallery-item:hover img { transform:scale(1.1); }
.gallery-item-hover {
  position:absolute; inset:0; opacity:0;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:1.25rem;
  background:linear-gradient(transparent 30%,rgba(0,0,0,.8) 100%);
  transition:opacity .4s;
}
.gallery-item:hover .gallery-item-hover { opacity:1; }
.gi-cat {
  font-family:var(--font-body);
  font-size:.6rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.3rem;
}
.gi-title {
  font-family:var(--font-serif);
  font-size:.8rem; font-weight:600;
  color:var(--cream); letter-spacing:.04em;
}
.gi-zoom {
  position:absolute; bottom:1.25rem; right:1.25rem;
  width:36px; height:36px;
  border:1px solid var(--gold);
  color:var(--gold);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.gi-zoom svg { width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2; }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testimonials-section {
  background:linear-gradient(var(--bg),var(--bg3));
  position:relative; overflow:hidden;
}
.testi-bg-quote {
  position:absolute; top:5rem; left:50%;
  transform:translateX(-50%);
  font-family:var(--font-quote);
  font-size:clamp(10rem,25vw,22rem);
  color:rgba(212,175,55,.04);
  line-height:1; font-weight:700;
  pointer-events:none; user-select:none;
}
.testi-card {
  padding:2.5rem 3rem 3rem;
  background:var(--dark-card);
  border:1px solid rgba(212,175,55,.2);
  backdrop-filter:blur(20px);
  position:relative; overflow:hidden;
  max-width:860px; margin:0 auto;
}
.testi-card::before,
.testi-card::after {
  content:'';
  position:absolute;
  width:48px; height:48px;
  border:2px solid var(--gold);
}
.testi-card::before { top:0; left:0; border-right:none; border-bottom:none; }
.testi-card::after  { bottom:0; right:0; border-left:none; border-top:none; }
.testi-quote-icon {
  color:var(--gold); opacity:.6; margin-bottom:2rem;
}
.testi-quote-icon svg { width:36px; height:36px; stroke:currentColor; fill:none; stroke-width:2; }
blockquote.testi-text {
  font-family:var(--font-quote);
  font-size:clamp(1rem,2vw,1.2rem);
  font-style:italic; line-height:1.8;
  color:#D8D0BC;
  margin-bottom:2.5rem;
}
.testi-author { display:flex; align-items:center; gap:1rem; }
.testi-initial {
  width:40px; height:40px;
  background:var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-serif);
  font-size:.9rem; font-weight:700; color:var(--bg);
  flex-shrink:0;
}
.testi-name {
  font-family:var(--font-serif);
  font-size:.85rem; font-weight:700;
  color:var(--cream); letter-spacing:.03em;
}
.testi-role {
  font-family:var(--font-body);
  font-size:.7rem; color:var(--gold);
  letter-spacing:.12em; text-transform:uppercase; font-weight:700;
}
.testi-controls {
  display:flex; align-items:center;
  justify-content:space-between; margin-top:2rem;
}
.testi-dots { display:flex; gap:.5rem; }
.testi-dot {
  height:8px; transition:var(--trans); cursor:pointer;
  background:rgba(212,175,55,.3);
}
.testi-dot.active { width:24px; background:var(--gold); }
.testi-dot:not(.active) { width:8px; }
.testi-arrows { display:flex; gap:.75rem; }
.testi-arrow {
  width:40px; height:40px;
  border:1px solid rgba(212,175,55,.3);
  color:var(--gold);
  display:flex; align-items:center; justify-content:center;
  transition:var(--trans); cursor:pointer;
}
.testi-arrow:hover { background:rgba(212,175,55,.15); }
.testi-arrow svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; }

/* ============================================================
   CONTACT
   ============================================================ */
.contact-section {
  background:var(--bg);
  position:relative; overflow:hidden;
}
.contact-section::before {
  content:'';
  position:absolute; inset:0; opacity:.03;
  background-image:radial-gradient(circle,var(--gold) 1px,transparent 1px);
  background-size:40px 40px;
}
.contact-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:1px; background:rgba(212,175,55,.15);
  position:relative; z-index:1;
}
.contact-left { padding:2.5rem 3rem; background:var(--bg); }
.contact-right {
  padding:2.5rem 3rem;
  background:linear-gradient(135deg,var(--bg3),#080600);
  border:1px solid rgba(212,175,55,.15);
  position:relative; overflow:hidden;
}
.contact-bg-initial {
  position:absolute; top:-2rem; right:-2rem;
  font-family:var(--font-serif);
  font-size:12rem; font-weight:700;
  color:rgba(212,175,55,.06); line-height:1;
  pointer-events:none; user-select:none;
}
.contact-head {
  font-family:var(--font-serif);
  font-size:1.1rem; font-weight:700;
  color:var(--cream); letter-spacing:.04em;
  margin-bottom:2rem;
}
.contact-items { display:flex; flex-direction:column; gap:1.5rem; margin-bottom:3rem; }
.contact-item { display:flex; align-items:center; gap:1.25rem; }
.c-icon {
  width:48px; height:48px; flex-shrink:0;
  border:1px solid rgba(212,175,55,.4);
  background:var(--gold-faint);
  display:flex; align-items:center; justify-content:center;
  transition:var(--trans);
}
.contact-item:hover .c-icon { transform:scale(1.1); }
.c-icon svg { width:18px; height:18px; stroke:var(--gold); fill:none; stroke-width:2; }
.c-label {
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.2rem;
}
.c-value {
  font-family:var(--font-body);
  font-size:.95rem; color:var(--text-mid); font-weight:500;
}
.social-head {
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.75rem;
}
.social-links { display:flex; flex-wrap:wrap; gap:.75rem; }
.soc-btn {
  width:44px; height:44px;
  border:1px solid rgba(212,175,55,.35);
  color:var(--gold);
  display:flex; align-items:center; justify-content:center;
  transition:var(--trans);
}
.soc-btn:hover { background:var(--gold); color:var(--bg); transform:scale(1.1); }
.soc-btn svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; }

/* Contact right side */
.contact-hq-region {
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.5rem;
  position:relative; z-index:1;
}
.contact-hq-name {
  font-family:var(--font-serif);
  font-size:1rem; font-weight:600;
  color:var(--cream); letter-spacing:.04em;
  line-height:1.5; margin-bottom:2rem;
  position:relative; z-index:1;
}
.contact-divider {
  height:1px; background:rgba(212,175,55,.25);
  margin-bottom:2rem; position:relative; z-index:1;
}
.contact-quote {
  font-family:var(--font-quote);
  font-size:1.1rem; font-style:italic;
  line-height:1.8; color:var(--text-mid);
  margin-bottom:1.5rem;
  position:relative; z-index:1;
}
.contact-quote-attr {
  font-family:var(--font-serif);
  font-size:.85rem; font-weight:700;
  color:var(--gold); letter-spacing:.08em;
  position:relative; z-index:1; margin-bottom:2.5rem;
}

/* ============================================================
   FOOTER
   ============================================================ */
#site-footer {
  background:#030303;
  border-top:1px solid rgba(212,175,55,.2);
  position:relative;
}
#site-footer::before {
  content:'';
  position:absolute; top:0; left:0; right:0;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--gold) 30%,var(--gold-mid) 50%,var(--gold) 70%,transparent);
}
.footer-inner {
  max-width:var(--max-w); margin:0 auto;
  padding:4rem var(--pad) 2rem;
}
.footer-grid {
  display:grid; grid-template-columns:1.4fr 1fr 1fr;
  gap:3rem; margin-bottom:4rem;
}
.footer-brand .fhon {
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.35em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.25rem;
}
.footer-brand .fname {
  font-family:var(--font-serif);
  font-size:1.3rem; font-weight:700;
  color:var(--cream); letter-spacing:.06em;
  margin-bottom:1rem;
}
.footer-brand p {
  font-family:var(--font-body);
  font-size:.78rem; line-height:1.9;
  color:#666; max-width:260px; margin-bottom:0;
}
.footer-col-head {
  font-family:var(--font-body);
  font-size:.68rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.5rem;
}
.footer-nav { display:flex; flex-direction:column; gap:.75rem; }
.footer-nav a {
  font-family:var(--font-body);
  font-size:.78rem; color:#555;
  letter-spacing:.08em; text-transform:uppercase;
  font-weight:600;
}
.footer-nav a:hover { color:var(--gold); }
.footer-socials { display:flex; flex-wrap:wrap; gap:.75rem; margin-bottom:2rem; }
.footer-soc {
  width:40px; height:40px;
  border:1px solid rgba(212,175,55,.3); color:var(--gold);
  display:flex; align-items:center; justify-content:center;
  transition:var(--trans);
}
.footer-soc:hover { background:var(--gold); color:var(--bg); }
.footer-soc svg { width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2; }
.footer-ptg-link {
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  color:#444; transition:color .3s;
}
.footer-ptg-link:hover { color:var(--gold); }
.footer-bottom {
  display:flex; align-items:center; justify-content:space-between;
  padding-top:2rem;
  border-top:1px solid rgba(255,255,255,.05);
  flex-wrap:wrap; gap:1rem;
}
.footer-copy, .footer-power {
  font-family:var(--font-body);
  font-size:.7rem; letter-spacing:.12em; text-transform:uppercase;
  color:#333;
}
.footer-power a { color:var(--gold); }

/* WhatsApp FAB */
.whatsapp-fab {
  position:fixed; bottom:2rem; right:2rem;
  z-index:400;
  display:flex; align-items:center; gap:.75rem;
  padding:.75rem 1.25rem;
  background:linear-gradient(135deg,var(--gold),var(--gold-mid),var(--gold-dark));
  box-shadow:0 8px 32px rgba(212,175,55,.3);
  color:var(--bg);
  font-family:var(--font-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  transition:var(--trans);
}
.whatsapp-fab:hover {
  transform:scale(1.05);
  box-shadow:0 0 30px rgba(212,175,55,.4);
}
.whatsapp-fab svg { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2; }
.whatsapp-fab .fab-text { display:none; }
@media(min-width:640px){ .whatsapp-fab .fab-text { display:inline; } }

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal { opacity:0; transform:translateY(30px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.up { transform:translateY(30px); }
.reveal.left { transform:translateX(30px); }
.reveal.scale { transform:scale(.9); }
.reveal.visible { opacity:1; transform:none; }
.reveal:nth-child(2) { transition-delay:.1s; }
.reveal:nth-child(3) { transition-delay:.2s; }
.reveal:nth-child(4) { transition-delay:.3s; }
.reveal:nth-child(5) { transition-delay:.4s; }
.reveal:nth-child(6) { transition-delay:.5s; }

/* ============================================================
   WORDPRESS CORE
   ============================================================ */
.screen-reader-text {
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%);
  height:1px; margin:-1px; overflow:hidden; padding:0;
  position:absolute; width:1px; word-wrap:normal!important;
}
.alignleft  { float:left;  margin:0 2rem 1rem 0; }
.alignright { float:right; margin:0 0 1rem 2rem; }
.aligncenter { display:block; margin:0 auto 1rem; }
.wp-caption { max-width:100%; }
.wp-caption-text { font-size:.8rem; color:var(--text-dim); text-align:center; padding-top:.5rem; }
.entry-content { font-family:var(--font-body); }
.entry-content p { color:var(--text-muted); line-height:1.9; }
.entry-content h2,h3 { color:var(--cream); margin:2rem 0 1rem; }
.entry-content a { color:var(--gold); }
.entry-content a:hover { color:var(--gold-mid); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1280px){
  .global-grid    { grid-template-columns:repeat(3,1fr); }
  .footer-grid    { grid-template-columns:1fr 1fr; }
}
@media(max-width:1024px){
  .primary-nav    { display:none; }
  .hamburger      { display:flex; }
  .hero-main      { flex-direction:column; padding-bottom:2rem; }
  .hero-stats-grid{ grid-template-columns:repeat(3,1fr); }
  .about-grid,
  .ptg-header,
  .contact-grid   { grid-template-columns:1fr; gap:2rem; }
  .achieve-grid   { grid-template-columns:repeat(2,1fr); }
  .leadership-grid{ grid-template-columns:1fr 1fr; }
  .ptg-photo-grid { grid-template-columns:1fr 1fr; }
  .found-row      { grid-template-columns:1fr; }
  .global-grid    { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:768px){
  .hero-stats-grid{ grid-template-columns:repeat(2,1fr); }
  .achieve-grid   { grid-template-columns:1fr; }
  .leadership-grid{ grid-template-columns:1fr; }
  .ptg-photo-grid { grid-template-columns:1fr; }
  .global-grid    { grid-template-columns:1fr; }
  .footer-grid    { grid-template-columns:1fr; }
  .footer-bottom  { flex-direction:column; text-align:center; }
  .trait-grid,
  .service-list,
  .found-tags-grid{ grid-template-columns:1fr; }
  .contact-grid   { grid-template-columns:1fr; }
}
