:root{
  --ink:#221B13;
  --sidebar-bg:#1B2B20;
  --gold:#BE8A3D;
  --gold-soft:#E6C583;
  --gold-deep:#9C6F2C;
  --green:#33593A;
  --green-soft:#436B49;
  --maroon:#B5502E;
  --cream:#F8F3E8;
  --paper:#FFFFFF;
  --text:#2B2620;
  --text-soft:#7A7266;
  --line:#E9E1D0;
  --radius:12px;
  --radius-sm:8px;
  --shadow: 0 20px 45px -25px rgba(34,27,19,0.38);
  --shadow-sm: 0 8px 20px -14px rgba(34,27,19,0.28);
  --sidebar-w: 250px;
  --topbar-h: 62px;
  --ease: cubic-bezier(.4,0,.2,1);
}
*{ box-sizing:border-box; }
body{
  margin:0; background:var(--cream); color:var(--text);
  font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size:14.5px; line-height:1.5;
}
h1,h2,h3,h4{ font-family:'Fraunces', Georgia, serif; margin:0 0 8px; color:var(--ink); }
a{ color:var(--maroon); text-decoration:none; }
a:hover{ text-decoration:underline; }
img{ max-width:100%; display:block; }
p{ margin:0 0 12px; }
.muted{ color:var(--text-soft); }
a:focus-visible, button:focus-visible, summary:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:6px; padding:9px 16px; border-radius:8px;
  font-size:13.5px; font-weight:600; cursor:pointer; border:1px solid transparent; transition:all .15s var(--ease);
}
.btn-primary{ background:var(--green); color:#fff; }
.btn-primary:hover{ background:var(--green-soft); text-decoration:none; }
.btn-outline{ background:var(--paper); color:var(--ink); border-color:var(--line); }
.btn-outline:hover{ border-color:var(--ink); text-decoration:none; }
.btn-danger{ background:#fff; color:var(--maroon); border-color:#E9C7BE; }
.btn-danger:hover{ background:#FBEDE9; text-decoration:none; }
.btn-sm{ padding:6px 11px; font-size:12.5px; }

/* ---------- Forms ---------- */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; }
.field{ display:flex; flex-direction:column; gap:5px; }
.field.full{ grid-column:1 / -1; }
label{ font-size:12.5px; font-weight:600; color:var(--ink); }
input, select, textarea{
  font-family:inherit; font-size:14px; padding:9px 11px; border:1px solid var(--line); border-radius:8px;
  background:var(--paper); color:var(--text); width:100%;
}
input:focus, select:focus, textarea:focus{ outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold); }
textarea{ min-height:110px; resize:vertical; }

/* ---------- Cards / tables ---------- */
.card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:22px 24px; margin-bottom:20px; box-shadow:var(--shadow-sm); }
a.card{ transition:transform .15s var(--ease), box-shadow .15s var(--ease); }
a.card:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
table{ width:100%; border-collapse:collapse; }
th, td{ text-align:left; padding:11px 10px; border-bottom:1px solid var(--line); font-size:13.5px; vertical-align:middle; }
th{ font-size:11.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--text-soft); font-weight:700; }
tr:hover td{ background:#FAF6EA; }
.thumb{ width:44px; height:44px; object-fit:cover; border-radius:6px; border:1px solid var(--line); }

.badge{ display:inline-block; padding:3px 9px; border-radius:20px; font-size:11px; font-weight:700; letter-spacing:.3px; }
.badge-completed{ background:#E4EEE4; color:var(--green); }
.badge-ongoing{ background:#FBF0DA; color:#8A6416; }
.badge-proposed{ background:#F7E3DA; color:#95441F; }

.alert{ padding:11px 14px; border-radius:8px; margin-bottom:16px; font-size:13.5px; }
.alert-success{ background:#E4EEE4; color:var(--green); }
.alert-error{ background:#FBEAE5; color:var(--maroon); }

.pagination{ display:flex; gap:6px; margin-top:16px; flex-wrap:wrap; }
.pagination a, .pagination span{
  display:inline-flex; align-items:center; justify-content:center; min-width:32px; height:32px; padding:0 8px;
  border:1px solid var(--line); border-radius:7px; font-size:13px; color:var(--text);
}
.pagination .current{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
.pagination a:hover{ border-color:var(--ink); text-decoration:none; }

/* ---------- Admin layout ---------- */
.app-shell{ display:flex; min-height:100vh; }
.sidebar{
  width:var(--sidebar-w); flex-shrink:0; background:var(--sidebar-bg); color:#E9E2D3; min-height:100vh;
  position:fixed; top:0; left:0; bottom:0; overflow-y:auto; transition:transform .2s var(--ease); z-index:40;
}
.sidebar .brand{ display:flex; align-items:center; gap:10px; padding:18px 18px 16px; }
.sidebar .brand .mark{ width:30px; height:30px; border-radius:7px; background:var(--gold); color:var(--ink); font-family:'Fraunces',serif; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.sidebar .brand span{ font-size:14px; font-weight:700; color:#fff; line-height:1.25; }
.sidebar nav{ padding:6px 10px 20px; display:flex; flex-direction:column; gap:2px; }
.sidebar nav .nav-title{ font-size:10.5px; text-transform:uppercase; letter-spacing:1px; color:#9C927A; margin:14px 10px 6px; }
.sidebar nav a{ color:#D8D0BE; padding:9px 10px; border-radius:7px; font-size:13.5px; font-weight:500; }
.sidebar nav a:hover{ background:rgba(255,255,255,0.06); text-decoration:none; color:#fff; }
.sidebar nav a.active{ background:var(--gold); color:var(--ink); font-weight:700; }

.main{ margin-left:var(--sidebar-w); flex:1; min-width:0; }
.topbar{
  height:var(--topbar-h); background:var(--paper); border-bottom:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; padding:0 24px; position:sticky; top:0; z-index:30;
}
.topbar .menu-toggle{ display:none; background:none; border:none; font-size:20px; cursor:pointer; }
.topbar .who{ font-size:13px; color:var(--text-soft); }
.topbar .who a{ color:var(--maroon); }
.content{ padding:26px 28px 60px; max-width:1180px; margin:0 auto; }
.content h1{ font-size:24px; margin-bottom:4px; }
.page-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:20px; flex-wrap:wrap; }

@media (max-width: 880px){
  .sidebar{ transform:translateX(-100%); box-shadow:var(--shadow); }
  .sidebar.open{ transform:translateX(0); }
  .main{ margin-left:0; }
  .topbar .menu-toggle{ display:block; }
  .form-grid{ grid-template-columns:1fr; }
}

/* ---------- Public site ---------- */
.public-nav{
  display:flex; align-items:center; justify-content:space-between; padding:16px 5vw;
  background:var(--ink); color:#fff; position:relative; flex-wrap:wrap; gap:10px;
}
.public-nav .brand{ display:flex; align-items:center; gap:10px; color:#fff; }
.public-nav .brand .mark{ width:34px; height:34px; border-radius:8px; background:var(--gold); color:var(--ink); font-family:'Fraunces',serif; font-weight:700; display:flex; align-items:center; justify-content:center; }
.public-nav .brand span{ font-weight:700; font-size:16px; }
.nav-toggle{ display:none; background:none; border:none; color:#fff; font-size:20px; cursor:pointer; padding:4px 8px; }
.public-nav .links{ display:flex; gap:2px; align-items:center; }
.public-nav .links a{ color:#D8D0BE; padding:8px 12px; border-radius:7px; font-size:13.5px; font-weight:600; white-space:nowrap; }
.public-nav .links a:hover, .public-nav .links a.active{ background:rgba(255,255,255,0.09); color:#fff; text-decoration:none; }
.donate-btn{
  background:var(--gold) !important; color:var(--ink) !important; font-weight:700 !important;
  padding:8px 16px !important; margin-left:4px;
}
.donate-btn:hover{ background:var(--gold-soft) !important; }
@media (max-width: 880px){ .donate-btn{ margin-left:0; margin-top:4px; text-align:center; } }

.admin-link{
  border:1px solid rgba(255,255,255,0.35) !important; color:#fff !important; font-weight:600 !important;
  padding:7px 14px !important; border-radius:20px !important; margin-left:6px; font-size:12.5px !important;
}
.admin-link:hover{ background:rgba(255,255,255,0.12) !important; border-color:#fff !important; text-decoration:none !important; }
@media (max-width: 880px){ .admin-link{ margin-left:0; margin-top:4px; text-align:center; border-radius:7px !important; } }

.nav-dropdown{ position:relative; }
.nav-dropdown summary{
  list-style:none; cursor:pointer; color:#D8D0BE; padding:8px 12px; border-radius:7px; font-size:13.5px; font-weight:600;
  display:flex; align-items:center; gap:5px; user-select:none;
}
.nav-dropdown summary::-webkit-details-marker{ display:none; }
.nav-dropdown summary::after{ content:"\25BE"; font-size:10px; margin-top:1px; }
.nav-dropdown summary:hover{ background:rgba(255,255,255,0.09); color:#fff; }
.nav-dropdown[open] summary{ background:rgba(255,255,255,0.09); color:#fff; }
.nav-dropdown .dropdown-menu{
  position:absolute; top:calc(100% + 6px); left:0; background:var(--ink); border:1px solid rgba(255,255,255,0.1);
  border-radius:9px; padding:6px; min-width:190px; box-shadow:var(--shadow); z-index:60; display:flex; flex-direction:column; gap:1px;
}
.nav-dropdown .dropdown-menu a{ color:#D8D0BE; padding:8px 10px; border-radius:6px; font-size:13.5px; font-weight:500; white-space:nowrap; }
.nav-dropdown .dropdown-menu a:hover, .nav-dropdown .dropdown-menu a.active{ background:rgba(255,255,255,0.09); color:#fff; text-decoration:none; }

@media (max-width: 880px){
  .public-nav{ flex-wrap:nowrap; }
  .nav-toggle{ display:block; }
  .public-nav .links{
    display:none; position:absolute; top:100%; left:0; right:0; background:var(--ink); flex-direction:column;
    align-items:stretch; padding:8px; gap:2px; border-top:1px solid rgba(255,255,255,0.08); box-shadow:var(--shadow); z-index:60;
  }
  .public-nav .links.open{ display:flex; }
  .public-nav .links a{ padding:11px 12px; }
  .nav-dropdown{ width:100%; }
  .nav-dropdown summary{ padding:11px 12px; }
  .nav-dropdown .dropdown-menu{ position:static; box-shadow:none; border:none; margin-top:2px; padding:0 0 0 12px; background:transparent; }
}

.hero-wrap{ padding:22px 5vw 0; }
.hero{
  background:linear-gradient(135deg, var(--ink) 0%, #2A2016 100%); color:#fff;
  padding:60px 5vw 50px; text-align:center; border-radius:var(--radius); box-shadow:var(--shadow);
}
.hero-wrap .hero{ border-bottom:3px solid var(--gold); }
.hero .eyebrow{ font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--gold-soft); font-weight:700; margin-bottom:10px; }
.hero h1{ color:#fff; font-size:38px; max-width:820px; margin:0 auto 14px; }
.hero p{ color:#D8D0BE; max-width:640px; margin:0 auto; font-size:15.5px; }
@media (max-width: 640px){ .hero-wrap{ padding:14px 4vw 0; } }

/* ---------- Homepage hero slider ---------- */
.slider{
  position:relative; overflow:hidden; background:var(--ink);
  margin:22px 5vw 0; border-radius:var(--radius); box-shadow:var(--shadow); border-bottom:3px solid var(--gold);
}
@media (max-width: 640px){ .slider{ margin:14px 4vw 0; } }
.slider-track{ display:flex; transition:transform .6s var(--ease); }
.slide{ position:relative; min-width:100%; }
.slide img{ width:100%; height:min(62vh, 560px); object-fit:cover; display:block; }
.slide-caption{
  position:absolute; left:0; right:0; bottom:0; padding:34px 6vw 30px;
  background:linear-gradient(0deg, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0) 70%); color:#fff;
}
.slide-caption h2{ color:#fff; font-size:30px; margin-bottom:4px; }
.slide-caption p{ color:#E8DFC8; margin:0; font-size:14.5px; max-width:640px; }
.slider-arrow{
  position:absolute; top:50%; transform:translateY(-50%); background:rgba(27,22,17,0.45); color:#fff;
  border:none; width:38px; height:38px; border-radius:50%; font-size:14px; cursor:pointer; transition:background .15s var(--ease);
}
.slider-arrow:hover{ background:rgba(27,22,17,0.75); }
.slider-arrow.prev{ left:16px; } .slider-arrow.next{ right:16px; }
.slider-dots{ position:absolute; bottom:14px; right:6vw; display:flex; gap:7px; }
.slider-dots button{ width:9px; height:9px; border-radius:50%; border:1.5px solid #fff; background:transparent; padding:0; cursor:pointer; opacity:.7; }
.slider-dots button.active{ background:var(--gold); border-color:var(--gold); opacity:1; }
@media (max-width: 640px){ .slide-caption h2{ font-size:22px; } .slider-dots{ right:16px; } }

.section{ padding:44px 5vw; max-width:1180px; margin:0 auto; }
.section-title{ font-size:11.5px; letter-spacing:2.5px; text-transform:uppercase; color:var(--maroon); font-weight:700; margin-bottom:6px; }
.section h2{ font-size:26px; margin-bottom:16px; }

.grid-3{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:center; }
@media (max-width: 860px){ .grid-3{ grid-template-columns:1fr 1fr; } .grid-2{ grid-template-columns:1fr; } }
@media (max-width: 560px){ .grid-3{ grid-template-columns:1fr; } }

.tile{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .15s var(--ease); }
.tile:hover{ transform:translateY(-3px); }
.tile img{ width:100%; height:170px; object-fit:cover; }
.tile .body{ padding:16px 18px; }
.tile h3{ font-size:16px; margin-bottom:6px; }
.tile p{ font-size:13px; color:var(--text-soft); margin-bottom:0; }

.tabs{ display:flex; gap:8px; margin-bottom:24px; flex-wrap:wrap; }
.tabs a{ padding:8px 16px; border-radius:20px; border:1px solid var(--line); font-size:13px; font-weight:600; color:var(--text); }
.tabs a.active{ background:var(--ink); color:#fff; border-color:var(--ink); }
.tabs a:hover{ text-decoration:none; border-color:var(--ink); }

.public-footer{ background:var(--ink); color:#B9AF98; padding:16px 5vw; text-align:center; font-size:12px; margin-top:40px; }
.public-footer a{ color:var(--gold-soft); }
.footer-line{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:0; }
.footer-line span{ padding:0 10px; border-left:1px solid rgba(255,255,255,0.15); line-height:1.6; }
.footer-line span:first-child{ border-left:none; padding-left:0; }
.footer-copy{ margin-top:4px; opacity:.6; font-size:11px; }
@media (max-width: 640px){ .footer-line span{ border-left:none; padding:0 8px; } }

.rich-content h2{ font-size:20px; margin-top:22px; }
.rich-content h3{ font-size:17px; margin-top:18px; }
.rich-content ul, .rich-content ol{ padding-left:22px; }
.rich-content img{ border-radius:10px; margin:12px 0; }

/* ---------- Chiefs page ---------- */
.chiefs-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; }
@media (max-width: 980px){ .chiefs-grid{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width: 720px){ .chiefs-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 460px){ .chiefs-grid{ grid-template-columns:1fr; } }
.chief-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:24px 18px;
  text-align:center; box-shadow:var(--shadow-sm); transition:transform .15s var(--ease), box-shadow .15s var(--ease);
}
.chief-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.chief-photo{
  width:96px; height:96px; border-radius:50%; object-fit:cover; margin:0 auto 14px; border:3px solid var(--cream);
  box-shadow:0 0 0 2px var(--line);
}
.chief-photo-placeholder{
  display:flex; align-items:center; justify-content:center; background:var(--green); color:#fff;
  font-family:'Fraunces',serif; font-size:34px; font-weight:700;
}
.chief-card h3{ font-size:16px; margin-bottom:2px; }
.chief-role{ font-size:12px; letter-spacing:.5px; text-transform:uppercase; color:var(--maroon); font-weight:700; margin-bottom:10px; }
.chief-meta{ font-size:13px; color:var(--text-soft); margin-bottom:4px; }
.chief-meta a{ color:var(--text-soft); }
.chief-meta a:hover{ color:var(--maroon); }

.search-box{ display:flex; gap:8px; margin-bottom:22px; max-width:420px; }
.gallery-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; }
.gallery-grid img{ width:100%; height:150px; object-fit:cover; border-radius:8px; cursor:pointer; }
@media (max-width: 700px){ .gallery-grid{ grid-template-columns:repeat(2, 1fr); } }
