/* =====================================================================
   OBSCA ETHIOPIA — Design tokens
   Palette: deep teal (trust/health), warm ochre (sun/hope), muted brick
   (earth), warm parchment background. Display type: Fraunces. Body: Inter.
   Signature: radiating "sunburst" motif in the hero + a thin tri-stripe
   divider (nod to the Ethiopian flag) used sparingly between sections.
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,400;0,600;0,700;1,500&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --teal-900:#123433;
  --teal-800:#1F4B4A;
  --teal-700:#2C635F;
  --ochre-500:#D8A24A;
  --ochre-400:#E6B860;
  --brick-600:#A6502E;
  --parchment:#F7F3E9;
  --card:#FFFDF8;
  --ink:#1E2A28;
  --ink-soft:#4B5A57;
  --line:#E4DCC8;
  --green-flag:#2E7D46;
  --yellow-flag:#F1C21B;
  --red-flag:#B4292F;
  --radius:16px;
  --radius-sm:10px;
  --shadow:0 10px 30px rgba(18,52,51,0.10);
  --shadow-lg:0 22px 50px rgba(18,52,51,.16);
  --ease:cubic-bezier(.22,.7,.32,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter',sans-serif;
  color:var(--ink);
  background:var(--parchment);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Fraunces',serif;
  color:var(--teal-900);
  margin:0 0 .5em;
  line-height:1.15;
  letter-spacing:-.01em;
}
h1{font-size:2.7rem;font-weight:700;}
h2{font-size:2.05rem;font-weight:600;}
h3{font-size:1.3rem;font-weight:600;}
p{margin:0 0 1em;}
a{color:var(--brick-600);text-decoration:none;transition:color .2s ease;}
a:hover{text-decoration:underline;}
img{max-width:100%;display:block;}
.container{width:100%;max-width:1160px;margin:0 auto;padding:0 20px;}

/* Gentle reveal-on-load for section content — keeps things feeling alive
   without needing any JS beyond the CSS animation itself. */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
section > .container > *{animation:fadeUp .6s var(--ease) both;}
@media(prefers-reduced-motion:reduce){
  section > .container > *{animation:none;}
}

/* tri-stripe divider - signature detail, used between major sections */
.tri-stripe{height:4px;width:100%;display:flex;}
.tri-stripe span{flex:1;}
.tri-stripe .g{background:var(--green-flag);}
.tri-stripe .y{background:var(--yellow-flag);}
.tri-stripe .r{background:var(--red-flag);}

/* Buttons */
.btn{
  display:inline-block;
  padding:.8rem 1.7rem;
  border-radius:999px;
  font-weight:600;
  font-size:.95rem;
  border:2px solid transparent;
  cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .2s ease, color .2s ease;
}
.btn-primary{background:var(--ochre-500);color:var(--teal-900);box-shadow:0 8px 20px rgba(216,162,74,.35);}
.btn-primary:hover{background:var(--ochre-400);text-decoration:none;transform:translateY(-2px);box-shadow:0 12px 26px rgba(216,162,74,.45);}
.btn-outline{border-color:var(--card);color:var(--card);background:transparent;}
.btn-outline:hover{background:rgba(255,255,255,.14);text-decoration:none;transform:translateY(-2px);}
.btn-dark{background:var(--teal-800);color:#fff;}
.btn-dark:hover{background:var(--teal-900);text-decoration:none;transform:translateY(-2px);box-shadow:0 10px 22px rgba(18,52,51,.28);}
.btn-small{padding:.5rem 1.1rem;font-size:.82rem;border-radius:8px;}
.btn-danger{background:#fff;color:var(--red-flag);border-color:var(--red-flag);}

/* ===================== HEADER / NAV ===================== */
header.site-header{
  background:rgba(18,52,51,.92);
  backdrop-filter:saturate(160%) blur(10px);
  -webkit-backdrop-filter:saturate(160%) blur(10px);
  position:sticky;top:0;z-index:50;
  box-shadow:0 2px 16px rgba(0,0,0,.18);
}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;padding:.85rem 0;}
.brand{display:flex;align-items:center;gap:.6rem;color:#fff;font-family:'Fraunces',serif;font-size:1.35rem;font-weight:700;}
.brand span{color:var(--ochre-500);}
.brand-logo{height:42px;width:auto;display:block;border-radius:6px;transition:transform .25s var(--ease);}
.brand:hover .brand-logo{transform:scale(1.04);}
.brand-mark{
  width:38px;height:38px;border-radius:50%;
  background:conic-gradient(var(--ochre-500) 0turn, var(--green-flag) .33turn, var(--red-flag) .66turn, var(--ochre-500) 1turn);
  display:flex;align-items:center;justify-content:center;
  color:var(--teal-900);font-weight:700;font-family:'Fraunces',serif;
}
nav.main-nav ul{list-style:none;display:flex;align-items:center;gap:1.6rem;margin:0;padding:0;}
nav.main-nav a{color:#EAE6D8;font-weight:500;font-size:.95rem;position:relative;padding-bottom:.2rem;}
nav.main-nav a:not(.btn)::after{
  content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--ochre-500);
  transition:right .25s var(--ease);
}
nav.main-nav a:not(.btn):hover::after, nav.main-nav a.active::after{right:0;}
nav.main-nav a:hover, nav.main-nav a.active{color:var(--ochre-500);text-decoration:none;}
.nav-toggle{display:none;background:none;border:none;color:#fff;font-size:1.6rem;cursor:pointer;}

@media(max-width:860px){
  nav.main-nav{
    position:absolute;top:100%;left:0;right:0;background:var(--teal-900);
    max-height:0;overflow:hidden;transition:max-height .3s ease;
  }
  nav.main-nav.open{max-height:420px;}
  nav.main-nav ul{flex-direction:column;padding:1rem 20px;gap:1rem;}
  .nav-toggle{display:block;}
}

/* ===================== HERO ===================== */
.hero{
  position:relative;
  background:radial-gradient(circle at 80% 20%, var(--teal-700) 0%, var(--teal-900) 60%);
  color:#fff;
  overflow:hidden;
  padding:5.5rem 0 6rem;
}
.hero::before{ /* radiating sunburst signature */
  content:"";
  position:absolute;
  top:-220px;right:-220px;
  width:640px;height:640px;
  border-radius:50%;
  background:
    repeating-conic-gradient(from 0deg, rgba(216,162,74,.22) 0deg 6deg, transparent 6deg 18deg);
  opacity:.9;
  animation:spin 90s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}
@media(prefers-reduced-motion:reduce){.hero::before{animation:none;}}
.hero::after{ /* soft glow to lift the sunburst off the flat teal */
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 15% 110%, rgba(216,162,74,.14), transparent 55%);
  pointer-events:none;
}
.hero-inner{position:relative;z-index:2;max-width:640px;}
.eyebrow{
  display:inline-block;color:var(--ochre-500);letter-spacing:.14em;
  text-transform:uppercase;font-size:.78rem;font-weight:700;margin-bottom:1rem;
}
.hero h1{color:#fff;font-size:3.1rem;}
.hero p.lead{color:#D9E4E2;font-size:1.15rem;max-width:520px;}
.hero-actions{display:flex;gap:1rem;margin-top:1.8rem;flex-wrap:wrap;}

/* ===================== SECTIONS ===================== */
section{padding:4.5rem 0;}
.section-head{max-width:680px;margin:0 auto 3rem;text-align:center;}
.section-head .eyebrow{color:var(--brick-600);}
.section-head p{color:var(--ink-soft);}
.bg-alt{background:var(--card);}

.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s ease;
}

/* Hover-lift polish applied across clickable/informational cards site-wide */
.card:hover, .pillar:hover, .post-card:hover, .method-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
}
.pillar, .method-card{transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s ease;}
.post-card{text-decoration:none;color:inherit;display:block;}

/* Pillars / What we do grid */
.grid{display:grid;gap:1.6rem;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);} }
@media(max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;} }

.pillar{padding:1.8rem;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);}
.pillar .icon{
  width:52px;height:52px;border-radius:12px;background:var(--teal-800);color:var(--ochre-500);
  display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:1rem;
  transition:transform .3s var(--ease), background .3s ease;
}
.pillar:hover .icon{background:var(--ochre-500);color:var(--teal-900);transform:rotate(-6deg) scale(1.06);}
.pillar ul{margin:.6rem 0 0;padding-left:1.1rem;color:var(--ink-soft);}
.pillar ul li{margin-bottom:.3rem;}

/* Vision / Mission split */
.vm-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;}
@media(max-width:760px){.vm-grid{grid-template-columns:1fr;}}
.vm-card{background:linear-gradient(150deg, var(--teal-800), var(--teal-900));color:#fff;padding:2.2rem;border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.vm-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.vm-card h3{color:var(--ochre-500);}
.vm-card.alt{background:linear-gradient(150deg, var(--brick-600), #7d3a21);}

/* ===================== EXECUTIVES / TEAM ===================== */
/* Deliberately compact: the photo is a small, styled avatar rather than a
   large portrait — quick to scan in a grid and quick to load (source files
   are also downscaled to 500px on upload, see functions.php). */
.team-card {
  border-radius: var(--radius);
  background: var(--card);
  border: 1px solid var(--line);
  padding: 1.25rem;
  box-shadow: 0 4px 15px rgba(18, 52, 51, 0.05);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s ease;
  position: relative;
}

.team-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 32px rgba(18, 52, 51, 0.14);
  border-color: var(--ochre-500);
}

.team-header {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.team-photo-frame {
  position: relative;
  width: 58px;
  height: 58px;
  min-width: 58px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--teal-800);
  padding: 2px;
  background-image: conic-gradient(var(--ochre-500), var(--brick-600), var(--ochre-500));
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.14);
}

.team-photo-frame img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 2px solid var(--card);
  object-fit: cover;
  display: block;
  transition: transform 0.35s var(--ease);
}

.team-card:hover .team-photo-frame img {
  transform: scale(1.1);
}

.team-photo-placeholder {
  position: absolute;
  inset: 2px;
  border-radius: 50%;
  border: 2px solid var(--card);
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(160deg, var(--teal-800), var(--teal-900));
  color: var(--ochre-500);
  font-family: 'Fraunces', serif;
  font-size: 1.3rem;
  font-weight: 700;
}

.team-info {
  flex: 1;
  min-width: 0;
}

.team-card h3 {
  margin: 0 0 0.25rem;
  font-size: 1.05rem;
  line-height: 1.25;
  color: var(--teal-900);
}

.team-role {
  display: inline-block;
  background: rgba(216, 162, 74, 0.15);
  color: var(--brick-600);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
}

.team-body {
  margin-top: 0.9rem;
  padding-top: 0.8rem;
  border-top: 1px dashed var(--line);
}

.team-card p {
  color: var(--ink-soft);
  font-size: 0.88rem;
  margin: 0;
  line-height: 1.5;
}

/* ===================== READ MORE / READ LESS ===================== */
.readmore-text{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;}
.readmore-text.is-expanded{-webkit-line-clamp:unset;display:block;overflow:visible;}
.readmore-toggle{
  display:none;margin-top:.6rem;background:none;border:none;padding:0;
  color:var(--brick-600);font-weight:700;font-size:.85rem;cursor:pointer;
  align-items:center;gap:.35rem;font-family:inherit;
}
.readmore-toggle:hover{text-decoration:underline;}
.readmore-toggle.is-visible{display:inline-flex;}
.readmore-toggle .arrow{display:inline-block;transition:transform .2s ease;font-size:.7em;}
.readmore-toggle.is-open .arrow{transform:rotate(180deg);}
.vm-card .readmore-toggle{color:var(--ochre-500);}

/* Gallery */
.gallery-item{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;background:#ddd;box-shadow:var(--shadow);transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.gallery-item:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.4s var(--ease);}
.gallery-item:hover img{transform:scale(1.08);}
.gallery-caption{
  position:absolute;left:0;right:0;bottom:0;padding:1rem;
  background:linear-gradient(to top, rgba(18,52,51,.92), transparent);
  color:#fff;font-size:.9rem;font-weight:500;
}

/* News / Research cards */
.post-card img{width:100%;height:190px;object-fit:cover;transition:transform .4s var(--ease);}
.post-card:hover img{transform:scale(1.05);}
.post-card{overflow:hidden;}
.post-card .body{padding:1.4rem;}
.post-meta{font-size:.8rem;color:var(--brick-600);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:.4rem;}
.post-card h3{margin-bottom:.5rem;}
.post-card p{color:var(--ink-soft);font-size:.95rem;}

/* Single post page */
.single-hero-img{width:100%;max-height:420px;object-fit:cover;border-radius:var(--radius);margin-bottom:2rem;}
.single-content{max-width:760px;margin:0 auto;}
.single-content .post-meta{margin-bottom:1rem;}

/* Donate page */
.donate-hero{background:linear-gradient(135deg, var(--brick-600), #7d3a21);color:#fff;padding:3.5rem 0;text-align:center;}
.methods-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:-2.5rem;position:relative;z-index:3;}
@media(max-width:860px){.methods-grid{grid-template-columns:1fr;}}
.method-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.6rem;border-top:5px solid var(--ochre-500);transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.method-card h3{display:flex;align-items:center;gap:.5rem;}
.method-card dl{margin:1rem 0 0;}
.method-card dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-top:.7rem;}
.method-card dd{margin:0;font-weight:600;color:var(--teal-900);}

.donate-form-wrap{max-width:720px;margin:3rem auto 0;background:var(--card);padding:2.2rem;border-radius:var(--radius);box-shadow:var(--shadow);}
.form-row{margin-bottom:1.2rem;}
.form-row label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.4rem;color:var(--teal-900);}
.form-row input, .form-row select, .form-row textarea{
  width:100%;padding:.7rem .9rem;border:1px solid var(--line);border-radius:8px;
  font-family:inherit;font-size:.95rem;background:#fff;
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{
  outline:2px solid var(--ochre-500);outline-offset:1px;border-color:var(--ochre-500);
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
@media(max-width:600px){.form-grid{grid-template-columns:1fr;}}
.hint{font-size:.82rem;color:var(--ink-soft);margin-top:.3rem;}
.alert{padding:1rem 1.2rem;border-radius:10px;margin-bottom:1.5rem;font-size:.95rem;}
.alert-success{background:#E4F3E7;color:#1E5E33;border:1px solid #b8e0c2;}
.alert-error{background:#FBE8E6;color:#8a2c25;border:1px solid #f3c3bd;}

/* Stats strip */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;text-align:center;}
@media(max-width:760px){.stats{grid-template-columns:repeat(2,1fr);}}
.stats .num{font-family:'Fraunces',serif;font-size:2.3rem;color:var(--ochre-500);font-weight:700;}
.stats .label{color:#D9E4E2;font-size:.88rem;}
.stats-strip{background:var(--teal-900);color:#fff;padding:3rem 0;}

/* Footer */
footer.site-footer{background:linear-gradient(180deg, var(--teal-900), #0d2726);color:#c9d6d3;padding:3.5rem 0 1.5rem;margin-top:3rem;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;margin-bottom:2rem;}
@media(max-width:760px){.footer-grid{grid-template-columns:1fr;}}
.footer-grid h4{color:#fff;font-family:'Fraunces',serif;margin-bottom:1rem;}
.footer-grid ul{list-style:none;padding:0;margin:0;}
.footer-grid ul li{margin-bottom:.5rem;}
.footer-grid a{color:#c9d6d3;transition:color .2s ease;}
.footer-grid a:hover{color:var(--ochre-500);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:1.3rem;text-align:center;font-size:.85rem;color:#93a6a2;}
.footer-bottom a{color:#93a6a2;}
.footer-bottom a:hover{color:var(--ochre-500);}

/* Empty state */
.empty-state{text-align:center;padding:3rem 1rem;color:var(--ink-soft);}

/* Utility */
.text-center{text-align:center;}
.mt-2{margin-top:2rem;}
.mb-0{margin-bottom:0;}
