/*
Theme Name: OneLife Africa
Description: Block-editor theme for OneLife Africa. Every page is built from editable sections (Patterns). By Vinwill Creations.
Author: Vinwill Creations
Version: 2.7.1
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: onelife
*/
:root{
  --green:#12503C; --green-dk:#0C3A2B; --green-lt:#46D391; --crimson:#9E1B32; --gold:#E8A93B;
  --cream:#FAF8F3; --sand:#F1EEE6; --text:#4A4A44; --line:#DCD8CC; --sec:4.5rem;
  --serif:'Playfair Display',Georgia,serif; --sans:'Inter',system-ui,sans-serif;
  --ease:cubic-bezier(.22,.8,.3,1); --spring:cubic-bezier(.34,1.56,.64,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--text);font:400 1rem/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--serif);color:var(--green);line-height:1.15}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.wrap{width:min(1240px,100% - 3rem);margin-inline:auto}
.screen-reader-text{position:absolute;left:-9999px}

/* ---------- Buttons ---------- */
.btn,.wp-block-button .wp-block-button__link{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.5rem;background:var(--crimson);color:#fff;border:1.5px solid var(--crimson);border-radius:3px;font:600 .9rem var(--sans);text-decoration:none;transition:background .15s}
.btn::after,.wp-block-button .wp-block-button__link::after{content:"→";font-weight:400}
.btn:hover,.wp-block-button .wp-block-button__link:hover{background:#7e1327;color:#fff}
.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button{background:transparent;color:var(--crimson);border:1.5px solid var(--crimson)}
.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button:hover{background:var(--crimson);color:#fff}
.hero .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button{color:#fff;border-color:rgba(255,255,255,.7)}
.hero .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button:hover{background:rgba(255,255,255,.14)}
.wp-block-buttons.actions.actions{display:flex;flex-wrap:wrap;gap:1rem}
p.link{margin:0}
p.link a{color:var(--crimson);font-weight:600;font-size:.9rem;text-decoration:none}
p.link a::after{content:" →"}
p.link a:hover{text-decoration:underline}

/* ---------- Header ---------- */
.site-header{--hdr-logo:var(--green);position:relative;z-index:50;background:var(--hdr-bg,#fff);color:var(--hdr-text,#222);box-shadow:0 1px 0 var(--line)}
.site-header.is-sticky{position:sticky;top:0}
.site-header.is-transparent{position:absolute;left:0;right:0;top:0;box-shadow:none;transition:background .2s}
.site-header.is-transparent.is-sticky{position:fixed}
.site-header.is-transparent:not(.scrolled){background:transparent;--hdr-text:var(--hdr-tcolor,#fff);--hdr-logo:var(--hdr-tcolor,#fff)}
.admin-bar .site-header.is-sticky{top:32px}
@media (max-width:782px){.admin-bar .site-header.is-sticky{top:46px}}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:78px;gap:1.5rem}
.hz{display:flex;align-items:center;gap:1.8rem;flex:1}
.hz.l{justify-content:flex-start}.hz.c{flex:0 1 auto;justify-content:center}.hz.r{justify-content:flex-end}
.logo{text-decoration:none;display:flex;flex-direction:column;line-height:1}
.logo b{font:800 2.1rem var(--serif);color:var(--hdr-logo);letter-spacing:-.02em}
.logo small{font:600 .6rem var(--sans);color:var(--crimson);letter-spacing:.5em;text-align:right;margin-top:3px}
.logo img{max-height:52px;width:auto}
.nav ul,.nav2 ul{display:flex;gap:2.2rem;list-style:none;margin:0;padding:0}
.nav a,.nav2 a{text-decoration:none;font-weight:500;font-size:.88rem;color:var(--hdr-text,#222)}
.nav2 a{font-size:.8rem;opacity:.85}
.nav a:hover,.nav2 a:hover{color:var(--crimson)}
.nav .current-menu-item>a{
  color:var(--crimson);
  position:relative;
}
.nav .current-menu-item>a::after{
  content:'';
  position:absolute;
  bottom:-4px;
  left:0;
  right:0;
  height:2px;
  background:var(--crimson);
}
.site-header.is-transparent:not(.scrolled) .nav a:hover{color:var(--gold)}
.h-search{color:var(--hdr-text,#222);display:flex}
.h-html{font-size:.85rem}.h-html a{color:inherit}
.h-social{display:flex;gap:.9rem}
.h-social a{color:var(--hdr-text,#222);display:flex}
.h-social svg{width:18px;height:18px;fill:currentColor}
.hz .btn{
  padding:.65rem 1.35rem;
  background:var(--green);
  border-color:var(--green);
  border-radius:50px;
  font-size:.85rem;
  font-weight:600;
  color:#fff;
}
.hz .btn::after{display:none}
.hz .btn:hover{background:var(--green-dk);border-color:var(--green-dk);color:#fff}
.nav-toggle{display:none;background:none;border:1.5px solid currentColor;color:var(--hdr-text,#222);padding:.45rem .8rem;font:600 .9rem var(--sans);border-radius:3px;cursor:pointer}
.nav li{position:relative}
.nav .sub-menu{display:none;position:absolute;top:100%;left:-1rem;min-width:220px;flex-direction:column;gap:0;background:#fff;border:1px solid var(--line);box-shadow:0 8px 20px rgba(0,0,0,.08);padding:.5rem 0;z-index:60}
.nav li:hover>.sub-menu,.nav li:focus-within>.sub-menu{display:flex}
.nav .sub-menu a{display:block;padding:.5rem 1rem;white-space:nowrap;color:#222}
.site-header--blocks .bh{min-height:78px}
.hdr-trans .hero{padding-top:78px;min-height:558px}
.hdr-trans .page-hero{padding-top:calc(4rem + 78px)}

/* Footer */
.site-footer{background:#08291F;color:#cfdcd5;font-size:.92rem}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2.5rem;padding:3.5rem 0 2.5rem}
.site-footer .widget>*:last-child{margin-bottom:0}
.site-footer h4,.site-footer .widget-title{font-family:var(--serif);color:var(--gold);font-size:1.15rem;margin:0 0 .9rem}
.site-footer p{margin:0 0 .6rem;line-height:1.6;color:#cfdcd5}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{color:var(--gold);text-decoration:underline}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin:0 0 .5rem}
.footer-bar{border-top:1px solid rgba(255,255,255,.12);padding:1.1rem 0;font-size:.82rem;color:#9fb5aa}
.footer-bar .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* ---------- Plain page content ---------- */
.entry-content>:where(:not(.alignfull)){max-width:1240px;margin-inline:auto;padding-inline:1.5rem;box-sizing:border-box}
.entry-content>.alignfull{max-width:none}
.entry-content>.page-title{margin-top:3rem;font-size:clamp(2rem,4vw,3rem)}
.entry-content>:last-child:not(.alignfull){margin-bottom:3rem}
.entry-content>p,.entry-content>ul,.entry-content>ol{max-width:820px}
.entry-content>h2,.entry-content>h3{margin-top:1.8em}

/* ---------- Photo slot (Image blocks with class "photo") ---------- */
.photo{position:relative;overflow:hidden;margin:0;display:block;min-height:200px;background:linear-gradient(135deg,#d8cfb8,#a9b59c)}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:480px;display:flex;align-items:center;color:#fff;background:linear-gradient(120deg,#2b2a22 0%,#7a5a3c 45%,#d98a45 80%,#f1b365 100%) center/cover}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,18,16,.82) 0%,rgba(15,18,16,.55) 45%,rgba(15,18,16,0) 75%)}
.hero .wrap{position:relative;padding:3rem 0}
.hero-inner{max-width:640px}
.hero h1{color:#fff;font-size:clamp(2.6rem,5.2vw,4.2rem);font-weight:700;line-height:1.08;margin:0 0 1.2rem}
.hero p{font-size:1.05rem;max-width:58ch;color:#fff;margin:0}
.hero .actions{margin:1.6rem 0 1.8rem}
.hero .tagline{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;margin:0}

/* ---------- Beliefs ---------- */
.belief{display:grid;grid-template-columns:minmax(1.5rem,1fr) minmax(0,680px) minmax(0,560px) minmax(0,1fr);background:var(--cream)}
.belief .copy{grid-column:2;padding:var(--sec) 3.5rem var(--sec) 0}
.belief .photo{grid-column:3 / 5;min-height:340px}
.belief h2{font-size:clamp(1.9rem,3vw,2.5rem);font-weight:700;margin:0 0 .5em}
.belief .copy>p{margin:0 0 1em}
.values{display:grid;grid-template-columns:repeat(5,1fr);margin-top:2rem}
.value{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 .8rem;border-left:1px solid var(--line)}
.value:first-child{border-left:0;padding-left:0}
.value svg{width:38px;height:38px;margin:0 0 .5rem;flex:none;stroke:var(--crimson);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.value.g svg{stroke:var(--green)}
.value .vt{font:600 .72rem var(--sans);letter-spacing:.06em;text-transform:uppercase;color:#222;margin:0}
.value .vd{font-size:.78rem;line-height:1.4;margin:.3rem 0 0;min-height:4.2em}

/* ---------- Five-card row ---------- */
.stages{padding:var(--sec) 0}
.stages-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:.4rem}
.stages h2{font-size:clamp(1.9rem,3vw,2.5rem);margin:0 0 .2rem}
.stages .sub{font-size:1.2rem;margin:0;padding-top:.7rem;position:relative}
.stages .sub::before{content:"";position:absolute;top:0;left:0;width:32px;height:2px;background:var(--crimson)}
.stages .lead{max-width:90ch;margin:.6rem 0 0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:1.6rem}
.card{background:var(--sand);display:flex;flex-direction:column}
.card .photo{aspect-ratio:4/3;min-height:0}
.card .body{padding:1rem 1.1rem 1.3rem;display:flex;flex-direction:column;flex:1}
.card h4{font-size:1.1rem;margin:0 0 .4rem}
.card .body p:not(.link){font-size:.85rem;line-height:1.5;flex:1;margin:0 0 1rem}

/* ---------- Verse + message ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
.quote{position:relative;min-height:290px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;padding:2rem;background:linear-gradient(160deg,#37402f,#b8803c) center/cover}
.quote::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.35)}
.quote>*{position:relative}
.quote .q-text{font:italic 400 1.35rem/1.45 var(--serif);max-width:430px;margin:0;color:#fff}
.quote .q-ref{font:500 .75rem var(--sans);letter-spacing:.2em;text-transform:uppercase;margin:1.4rem 0 0;padding-top:1rem;color:#fff}
.quote .q-ref::before{content:"";position:absolute;top:0;left:50%;width:70px;height:2px;margin-left:-35px;background:var(--crimson)}
.work{padding:var(--sec) 1.5rem;display:flex;flex-direction:column;justify-content:center;background:var(--cream)}
.work>*{max-width:520px}
.work h2{font-size:clamp(1.7rem,2.6vw,2.2rem);margin:0 0 .5em}
.work p{margin:0 0 1em}
.work .wp-block-buttons{margin-top:.6rem}

/* ---------- Stories ---------- */
.stories{padding:var(--sec) 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem;align-items:center}
.stories h2{font-size:clamp(1.9rem,3vw,2.5rem);margin:0 0 .5em}
.stories-copy>p{margin:0 0 1em}
.stories .actions{margin-top:1.4rem}
.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;background:var(--sand)}
.story .thumb{position:relative;min-height:260px}
.story .thumb .photo{position:absolute;inset:0;min-height:0}
.story .play{position:absolute;inset:0;margin:auto;width:54px;height:54px;border:2px solid #fff;border-radius:50%;background:rgba(0,0,0,.2);z-index:2}
.story .play::after{content:"";position:absolute;left:21px;top:15px;border-left:16px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent}
.story .body{padding:1.6rem;display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--line)}
.story .label{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#555;margin:0 0 .7rem}
.story h3{font-size:1.4rem;margin:0 0 .6rem}
.story .sq{font-style:italic;font-size:.92rem;margin:0 0 1em}

/* ---------- Green band ---------- */
.band{background:var(--green-dk);color:#fff;padding:3rem 0}
.band-grid{display:grid;grid-template-columns:auto 1fr auto;gap:2.2rem;align-items:center}
.band h2{color:#fff;font-size:clamp(1.6rem,2.6vw,2.2rem);margin:0}
.band h2 mark{background:none;color:var(--gold)}
.band-grid>p{margin:0;font-size:.82rem;line-height:1.6;padding-left:2.2rem;border-left:2px solid var(--gold);color:#e8efe9}

/* ---------- Inner-page sections ---------- */
.page-hero{background:var(--green-dk);color:#fff;padding:4rem 0}
.page-hero h1{color:#fff;font-size:clamp(2.2rem,5vw,3.6rem);margin:0}
.page-hero p{color:#e8efe9;margin:.8rem 0 0;max-width:60ch}
.tp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem;align-items:center;padding:var(--sec) 0}
.tp h2{font-size:clamp(1.8rem,3vw,2.4rem);margin:0 0 .5em}
.tp p{margin:0 0 1em}
.tp .photo{aspect-ratio:4/3}

@media (max-width:1000px){
  .belief,.split,.stories,.tp{grid-template-columns:minmax(0,1fr)}
  .belief .copy{grid-column:1;padding:3rem 1.5rem}
  .belief .photo{grid-column:1}
  .work{padding:3rem 1.5rem}
  .cards{grid-template-columns:repeat(2,1fr)}
  .cards .card:last-child:nth-child(odd){grid-column:1 / -1}
  .values{grid-template-columns:repeat(2,1fr);row-gap:1.5rem}
  .value{border-left:0}
  .band-grid{grid-template-columns:minmax(0,1fr)}
  .band-grid>p{padding-left:0;border-left:0;border-top:2px solid var(--gold);padding-top:1rem}
}
@media (max-width:600px){
  .cards{grid-template-columns:1fr}
  .cards .card:last-child:nth-child(odd){grid-column:auto}
  .story{grid-template-columns:1fr}
  .hz .btn{display:none}
  .wp-block-buttons.actions.actions{flex-direction:column;align-items:stretch}
  .actions .wp-block-button .wp-block-button__link{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ---------- Written page sections (v2.4) ---------- */
.prose-sec{padding:var(--sec) 0}
.prose-sec:nth-of-type(even){background:var(--sand)}
.prose{width:min(760px,100% - 3rem);margin-inline:auto}
.prose h2{font-size:clamp(1.7rem,3.2vw,2.4rem);margin:0 0 .6em}
.prose h3{font-size:1.3rem;margin:1.6em 0 .4em}
.prose p,.prose li{font-size:1.05rem}
.prose ul{padding-left:1.2rem}
.prose li{margin:.5em 0}
.prose .wp-block-quote{border-left:3px solid var(--gold);margin:1.6em 0;padding:.2em 0 .2em 1.4rem}
.prose .wp-block-quote p{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--green);margin:0 0 .4em}
.prose .wp-block-quote cite{font-style:normal;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}
.prose .wp-block-buttons{margin-top:1.8rem;gap:.8rem}

/* ---------- v2.5 · Get Involved hub, forms, trust block ---------- */
.ol-pic{aspect-ratio:16/8;min-height:0;border-radius:6px;margin:0 0 1.8rem}
.prose-sec.ol-hub .wrap,.ol-hub .wrap{width:min(1100px,100% - 3rem)}
.ol-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem}
.ol-card{display:block;text-decoration:none;color:var(--text)}
.ol-card img{width:100%;aspect-ratio:5/3;object-fit:cover;border-radius:6px;display:block}
.ol-card h3{font-size:1.3rem;margin:.9rem 0 .3rem}.ol-card p{margin:0 0 .5rem;font-size:.97rem}
.ol-card span{color:var(--crimson);font:600 .9rem var(--sans)}.ol-card span::after{content:" →"}
.ol-card:hover span{text-decoration:underline}
.ol-form{background:#fff;border:1px solid var(--line);border-radius:6px;padding:1.6rem;margin:1.4rem 0}
.ol-form fieldset{border:0;margin:0;padding:0}.ol-form legend,.ol-form label{font:500 .92rem var(--sans);color:var(--text)}
.ol-f{margin:0 0 1.1rem}.ol-f>label{display:block}.ol-f legend{margin-bottom:.5rem;padding:0}
.ol-form input[type=text],.ol-form input[type=email],.ol-form input[type=number],.ol-form textarea{display:block;width:100%;margin-top:.35rem;padding:.75rem .9rem;border:1.5px solid var(--line);border-radius:3px;background:var(--cream);font:1rem var(--sans);color:#222}
.ol-form input:focus,.ol-form textarea:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px rgba(18,80,60,.15)}
.ol-opts .ol-o{display:flex;gap:.6rem;align-items:flex-start;margin:.45rem 0;cursor:pointer;font-size:1rem}
.ol-opts input,.ol-consent input{margin-top:.3rem;accent-color:var(--green);width:1.05rem;height:1.05rem;flex:none}
.ol-consent label{display:flex;gap:.6rem;align-items:flex-start;font-size:.97rem;cursor:pointer}
.ol-chips{display:flex;flex-wrap:wrap;gap:.6rem}.ol-chips .ol-o{position:relative;flex:1 0 22%;margin:0}
.ol-chips input{position:absolute;opacity:0;inset:0;cursor:pointer}
.ol-chips span{display:block;text-align:center;padding:.7rem .5rem;border:1.5px solid var(--line);border-radius:3px;background:var(--cream);font:600 1rem var(--sans);color:var(--green)}
.ol-chips input:checked+span{background:var(--green);border-color:var(--green);color:#fff}
.ol-chips input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}
.ol-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.ol-hp{position:absolute;left:-9999px}.ol-err{color:var(--crimson);font-weight:600}
.ol-thanks{background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:4px;padding:1.2rem 1.4rem;margin:1.4rem 0;color:var(--green)}
.ol-formsec .prose small{color:#6b6b63}
.ol-progs .ol-prog{display:grid;grid-template-columns:120px 1fr;gap:1.2rem;align-items:center;padding:1.1rem 0;border-bottom:1px solid var(--line)}
.ol-prog img{width:120px;height:120px;object-fit:cover;border-radius:6px}.ol-prog h3{margin:0 0 .2rem;font-size:1.2rem}.ol-prog p{margin:0}
.ol-story{display:grid;grid-template-columns:minmax(0,280px) 1fr;gap:2rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:6px;padding:1.4rem}
.ol-story img{width:100%;border-radius:6px;display:block}.ol-story h3{margin-top:0}
.ol-ways{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0 1.6rem}
.ol-ways div{background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:4px;padding:1.1rem}.ol-ways h3{margin:0 0 .3rem;font-size:1.1rem}.ol-ways p{margin:0;font-size:.95rem}
.ol-trust{background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:6px;padding:1.6rem 1.8rem}
.ol-trust h2{margin-top:0}
.ol-more{margin-top:1rem;border-top:1px solid var(--line);padding-top:1rem}
.ol-more summary{cursor:pointer;font:600 .95rem var(--sans);color:var(--crimson)}.ol-more summary:hover{text-decoration:underline}
.ol-more div{margin-top:.8rem}
.ol-final{background:var(--green-dk);color:#fff;text-align:center;padding:var(--sec) 0}
.ol-final h2,.ol-final p{color:#fff}.ol-final .prose{text-align:center}.ol-final p{margin-inline:auto}
.ol-final .wp-block-buttons{justify-content:center}.ol-final .wp-block-button__link{background:#fff;color:var(--green-dk);border-color:#fff}
.ol-foot-connect{padding:2.2rem 0 1.4rem;border-bottom:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:space-between}
.ol-foot-connect h4{margin:0 0 .2rem}.ol-foot-connect p{margin:0}
.ol-foot-connect .ol-form{background:transparent;border:0;padding:0;margin:0;display:flex;gap:.6rem;flex-wrap:wrap}
.ol-foot-connect .ol-f{margin:0}.ol-foot-connect input[type=email]{margin:0;min-width:240px;background:#fff}
.ol-foot-connect .ol-thanks{background:transparent;color:#fff;margin:0}
@media(max-width:860px){.ol-cards{grid-template-columns:1fr 1fr}.ol-story{grid-template-columns:1fr}}
@media(max-width:560px){.ol-cards,.ol-ways,.ol-row{grid-template-columns:1fr}.ol-progs .ol-prog{grid-template-columns:90px 1fr}.ol-prog img{width:90px;height:90px}.ol-chips .ol-o{flex-basis:30%}}

/* v2.5.1 · Get Involved cards built from editable blocks */
.ol-hub .wp-block-columns.ol-cardrow{gap:1.8rem;margin:0 0 2.4rem}
.ol-cardimg{margin:0 0 .9rem}.ol-cardimg a{display:block}
.ol-cardimg img{width:100%;aspect-ratio:5/3;object-fit:cover;border-radius:6px;display:block}
.ol-hub .ol-cardrow h3{font-size:1.3rem;margin:0 0 .3rem}.ol-hub .ol-cardrow p{margin:0 0 .5rem;font-size:.97rem}
.ol-hub .ol-cardrow p.link a{color:var(--crimson)}
.ol-trust .wp-block-group,.ol-trust h3{margin-top:1.2rem}

/* ---------- Young people & alumni pages (v2.6) ---------- */
.ol-ph{display:block;width:100%;aspect-ratio:5/3;border-radius:6px;background:linear-gradient(135deg,#d8cfb8,#a9b59c)}
.ol-story .ol-ph{aspect-ratio:1/1}
.ol-cards.four{grid-template-columns:repeat(4,1fr)}
.ol-card2 h3{font-size:1.2rem;margin:.9rem 0 .3rem}.ol-card2 p{margin:0 0 .5rem;font-size:.95rem}.ol-card2 img{width:100%;aspect-ratio:5/3;object-fit:cover;border-radius:6px;display:block}
.ol-alum{grid-template-columns:220px 1fr;align-items:start}
.ol-alum .ol-ph{width:220px;height:240px;aspect-ratio:auto}.ol-alum img{width:220px;height:240px}
.ol-alum .ol-field{color:var(--text);font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;margin:0 0 .3rem}
.ol-alum h4{margin:.2rem 0 .5rem;font-size:1.1rem}
.ol-alum .ol-more{font-size:.92rem;margin:.6rem 0}
.ol-box{background:var(--sand);border-radius:8px;padding:1.6rem 1.8rem}.ol-box h3{margin-top:0}
@media(max-width:860px){.ol-cards.four{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ol-cards.four{grid-template-columns:1fr}.ol-alum{grid-template-columns:1fr}.ol-alum .ol-ph{width:100%;height:auto;aspect-ratio:5/3}}

/* ---------- Journey With Purpose (v2.7) ---------- */
.ol-eyebrow{font:600 .8rem var(--sans);letter-spacing:.12em;color:var(--crimson);margin:0 0 .6rem}
.ol-cards.two{grid-template-columns:1fr 1fr}
.ol-form select{display:block;width:100%;margin-top:.35rem;padding:.75rem .9rem;border:1.5px solid var(--line);border-radius:3px;background:var(--cream);font:1rem var(--sans)}
.ol-photo-wide .ol-ph{aspect-ratio:16/8;margin:0 0 1.4rem}
.ol-who{list-style:none;padding:0;margin:1.2rem 0}.ol-who li{margin:0 0 1rem;padding-left:1.1rem;border-left:3px solid var(--gold)}
.ol-season{width:100%;border-collapse:collapse;margin:1rem 0}.ol-season th,.ol-season td{text-align:left;vertical-align:top;padding:.8rem .4rem;border-bottom:1px solid var(--line)}.ol-season th{width:28%;font-weight:700}
.ol-small{font-size:.85rem;color:#6b6b63;margin:.8rem 0 0}
.ol-dark{background:var(--green-dk);color:#fff;border-radius:10px;padding:1.4rem 1.4rem 1.8rem}.ol-dark .ol-ph{aspect-ratio:16/8;margin-bottom:1.2rem}.ol-dark h3,.ol-dark p{color:#fff}.ol-dark .ol-hl{color:#d9e8c8;font-weight:600}
@media(max-width:560px){.ol-cards.two{grid-template-columns:1fr}.ol-season th{width:34%}}
