/*
Theme Name: EM Africa
Theme URI: https://emafrica.co.ke/
Author: EM Africa
Description: A fast, editorial theme for EM Africa Academy, Schools and Rovay Agency.
Version: 1.2.0
Text Domain: em-africa
*/

:root { --ink:#11100e; --paper:#f3efe6; --gold:#d8ab45; --lime:#d7ea5f; --line:rgba(17,16,14,.18); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; } img { display:block; width:100%; } button { font:inherit; }
.site-header { position:absolute; z-index:20; top:0; left:0; width:100%; height:88px; padding:0 4vw; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; color:white; border-bottom:1px solid rgba(255,255,255,.34); }
.brand { display:flex; align-items:center; }
.brand img { width:106px; height:58px; object-fit:contain; object-position:left center; }
.desktop-nav { display:flex; gap:34px; font-size:12px; text-transform:uppercase; letter-spacing:.13em; }
.desktop-nav a { opacity:.82; transition:opacity .2s; }.desktop-nav a:hover { opacity:1; }
.header-cta { justify-self:end; display:flex; align-items:center; gap:8px; font-size:12px; text-transform:uppercase; letter-spacing:.1em; }
.menu-button,.mobile-nav { display:none; }
.hero { min-height:760px; height:100svh; position:relative; color:white; overflow:hidden; background:#1b1a17; }
.hero-images,.hero-image,.hero-wash { position:absolute; inset:0; }
.hero-image { background-size:cover; opacity:0; transform:scale(1.025); transition:opacity 1.5s ease,transform 7s ease; }
.hero-image.active { opacity:1; transform:scale(1); }
.hero-wash { background:linear-gradient(90deg,rgba(5,5,4,.78) 0%,rgba(5,5,4,.39) 51%,rgba(5,5,4,.08)),linear-gradient(0deg,rgba(0,0,0,.48),transparent 48%); }
.hero-content { position:relative; height:100%; z-index:2; padding:148px 4vw 58px; display:flex; flex-direction:column; justify-content:space-between; }
.eyebrow,.section-label { font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.eyebrow::before,.section-label::before { content:''; display:inline-block; width:28px; height:1px; background:currentColor; vertical-align:middle; margin-right:12px; }
.hero h1 { margin:0; max-width:930px; font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(58px,8vw,118px); line-height:.85; letter-spacing:-.055em; }
.hero h1 em,.contact h2 em { color:var(--gold); font-weight:400; }
.hero-bottom { display:flex; align-items:end; justify-content:space-between; }
.hero-bottom p { max-width:390px; margin:0 0 6px; font-family:Georgia,serif; font-size:20px; line-height:1.4; }
.round-link { width:64px; height:64px; border:1px solid rgba(255,255,255,.6); border-radius:50%; display:grid; place-items:center; transition:background .2s,color .2s; }
.round-link:hover { background:white; color:var(--ink); }
.hero-progress { position:absolute; z-index:3; right:4vw; bottom:146px; display:flex; gap:6px; }
.hero-progress button { border:0; padding:0; width:26px; height:2px; background:rgba(255,255,255,.45); cursor:pointer; }.hero-progress button.active { background:white; }
.section-shell { padding:120px 6vw; }
[data-reveal] { opacity:0; transform:translateY(25px); transition:opacity .7s ease,transform .7s ease; } [data-reveal].is-visible { opacity:1; transform:none; }
.intro { display:grid; grid-template-columns:1fr 2.2fr; gap:5vw; }
.section-label { color:#6d675e; margin:9px 0 0; }
.intro h2,.press h2 { font-family:Georgia,serif; font-weight:400; font-size:clamp(45px,6vw,86px); line-height:.98; letter-spacing:-.045em; margin:0; }
.intro-copy { grid-column:2; max-width:650px; margin:25px 0 0; font-size:20px; line-height:1.55; color:#5e584f; }
.pillars { padding-top:20px; }
.pillar { display:grid; grid-template-columns:1.1fr 1fr; border-top:1px solid var(--line); min-height:590px; padding:54px 0; gap:7vw; }
.pillar:nth-child(even) .pillar-image-wrap { order:2; }.pillar:nth-child(even) .pillar-content { order:1; }
.pillar-image-wrap { overflow:hidden; min-height:470px; }.pillar-image { height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); }.pillar:hover .pillar-image { transform:scale(1.025); }
.pillar-content { display:flex; flex-direction:column; justify-content:center; }.pillar-number { font-size:12px; color:#756f66; margin-bottom:auto; padding-top:5px; }
.pillar-kicker { font-family:Georgia,serif; font-style:italic; color:#846a2d; font-size:18px; margin:0 0 12px; }
.division-logo { width:150px; height:70px; object-fit:contain; object-position:left center; margin:0 0 22px; }
.pillar h3 { font-family:Georgia,serif; font-size:clamp(42px,5vw,72px); line-height:.95; letter-spacing:-.04em; font-weight:400; margin:0 0 28px; }
.pillar-content>p:not(.pillar-kicker) { max-width:500px; font-size:18px; line-height:1.55; color:#625c53; }
.pillar-footer { margin-top:auto; padding-top:35px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.pillar-footer a { width:44px;height:44px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:.2s}.pillar-footer a:hover{background:var(--ink);color:white}
.rovay-work{background:#f8f5ee;padding:110px 6vw;border-top:1px solid var(--line)}.rovay-head{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:8vw}.rovay-head img{width:min(320px,80%);height:150px;object-fit:contain;object-position:left center}.rovay-head>p{font-family:Georgia,serif;font-size:clamp(30px,4vw,56px);line-height:1.05;letter-spacing:-.035em;margin:0}.brand-list{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:80px 0 70px}.brand-list span{padding:27px 12px;text-align:center;font-size:10px;text-transform:uppercase;letter-spacing:.1em;border-right:1px solid var(--line)}.brand-list span:last-child{border-right:0}.rovay-services{display:grid;grid-template-columns:1fr repeat(3,1.2fr);gap:35px}.rovay-services h3{font-family:Georgia,serif;font-size:28px;font-weight:400;margin:0 0 14px}.rovay-services div p{font-size:14px;line-height:1.55;color:#6b655c}.rovay-services>a{grid-column:2/5;justify-self:start;margin-top:28px;display:flex;gap:9px;align-items:center;border-bottom:1px solid;padding-bottom:8px;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.proof { background:#171612; color:white; display:grid; grid-template-columns:1fr 1.25fr; min-height:820px; }
.proof-image { min-height:700px; overflow:hidden; }.proof-image img { height:100%; object-fit:cover; object-position:center 28%; filter:saturate(.8); }
.proof-content { padding:100px 7vw; display:flex; flex-direction:column; justify-content:center; }.proof .section-label { color:#aaa49a; }
.proof blockquote { font-family:Georgia,serif; font-size:clamp(42px,5vw,75px); line-height:1.02; letter-spacing:-.04em; margin:55px 0 35px; }
.proof-content>p:not(.section-label){max-width:520px;color:#aaa49a;line-height:1.6}
.stats { border-top:1px solid #514e47; margin-top:70px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding-top:30px; }
.stats div{display:flex;flex-direction:column;gap:8px}.stats strong{font-family:Georgia,serif;font-size:42px;color:var(--gold);font-weight:400}.stats span{font-size:10px;line-height:1.4;text-transform:uppercase;letter-spacing:.12em;color:#aaa49a}
.press-heading { display:grid;grid-template-columns:1fr 2.2fr;margin-bottom:70px}.press-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px;align-items:end}
.press-card{margin:0;overflow:hidden}.press-card img{height:430px;object-fit:cover;object-position:top;transition:transform .7s}.press-card:hover img{transform:scale(1.018)}.press-tall img{height:620px}.press-card figcaption{font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin-top:14px;color:#6b655c}
.testimonial{text-align:center;border-top:1px solid var(--line)}.testimonial blockquote{max-width:1000px;margin:55px auto 30px;font-family:Georgia,serif;font-size:clamp(42px,6vw,82px);line-height:1.04;letter-spacing:-.04em}.quote-stage{min-height:390px;display:grid;place-items:center}.quote-slide{grid-area:1/1;margin:0;opacity:0;visibility:hidden;transition:opacity .55s ease}.quote-slide.active{opacity:1;visibility:visible}.quote-slide figcaption{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:#756f65}.quote-controls{display:flex;justify-content:center;gap:8px;margin-top:35px}.quote-controls button{border:0;border-top:1px solid #aaa39a;background:transparent;padding:12px 18px;color:#8b857b;font-size:10px;cursor:pointer}.quote-controls button.active{border-top-color:var(--ink);color:var(--ink)}
.contact { background:var(--lime); min-height:700px; padding:110px 6vw 36px; display:flex; flex-direction:column; }.contact h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(62px,10vw,150px);line-height:.84;letter-spacing:-.06em;margin:60px 0}.contact h2 em{color:var(--ink)}
.contact-actions{display:flex;gap:12px;margin-top:auto}.contact-actions a{display:flex;align-items:center;justify-content:space-between;min-width:280px;border-bottom:1px solid var(--ink);padding:16px 0;font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.contact footer{border-top:1px solid rgba(17,16,14,.25);margin-top:80px;padding-top:28px;display:grid;grid-template-columns:1fr auto auto;gap:50px;align-items:center;font-size:10px;text-transform:uppercase;letter-spacing:.13em}.contact .brand img{filter:brightness(.2);width:90px;height:52px}
@media (max-width:800px){.site-header{height:70px;grid-template-columns:1fr auto}.desktop-nav,.header-cta{display:none}.menu-button{display:block;background:transparent;border:0;color:white}.mobile-nav{display:none;position:absolute;top:70px;left:0;width:100%;padding:28px 5vw;background:var(--ink);flex-direction:column;gap:22px;text-transform:uppercase;font-size:12px;letter-spacing:.12em}.hero{min-height:680px}.hero-content{padding:125px 5vw 42px}.hero h1{font-size:clamp(54px,16vw,80px)}.hero-bottom p{font-size:16px;max-width:250px}.round-link{width:52px;height:52px}.hero-progress{bottom:110px;right:5vw}.section-shell{padding:80px 5vw}.intro{display:block}.intro .section-label{margin-bottom:40px}.intro-copy{font-size:17px;margin-top:30px}.pillar{grid-template-columns:1fr;min-height:0;gap:30px;padding:35px 0 60px}.pillar:nth-child(even) .pillar-image-wrap,.pillar:nth-child(even) .pillar-content{order:initial}.pillar-image-wrap{min-height:410px}.pillar-number{margin-bottom:45px}.pillar h3{font-size:48px}.proof{grid-template-columns:1fr}.proof-image{min-height:520px}.proof-content{padding:70px 5vw}.stats{grid-template-columns:1fr;gap:30px}.press-heading{display:block}.press-heading .section-label{margin-bottom:38px}.press-grid{grid-template-columns:1fr 1fr}.press-tall{grid-column:span 2}.press-tall img{height:480px}.press-card img{height:330px}.contact{min-height:650px;padding:80px 5vw 28px}.contact h2{margin:50px 0}.contact-actions{flex-direction:column}.contact-actions a{min-width:0}.contact footer{grid-template-columns:1fr;gap:16px;margin-top:60px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-image,[data-reveal],.pillar-image,.press-card img{transition:none!important;transform:none!important}[data-reveal]{opacity:1}}

@media (max-width:800px){.mobile-nav.open{display:flex}}
@media (max-width:800px){.rovay-work{padding:75px 5vw}.rovay-head{grid-template-columns:1fr;gap:30px}.rovay-head img{height:100px}.brand-list{grid-template-columns:repeat(2,1fr);margin:55px 0}.brand-list span{border-bottom:1px solid var(--line)}.rovay-services{grid-template-columns:1fr;gap:24px}.rovay-services>a{grid-column:1}}

.recent{display:grid;grid-template-columns:.8fr 2fr;gap:6vw;border-bottom:1px solid var(--line)}.recent-heading h2{font-family:Georgia,serif;font-size:clamp(42px,5vw,72px);font-weight:400;line-height:1;letter-spacing:-.04em;margin:48px 0 0}.recent-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:end}.recent figure{margin:0;overflow:hidden}.recent figure:first-child{padding-bottom:90px}.recent img{height:620px;object-fit:cover;object-position:center top;transition:transform .7s}.recent figure:hover img{transform:scale(1.018)}.recent figcaption{font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin-top:14px;color:#6b655c}
@media (max-width:800px){.recent{grid-template-columns:1fr;gap:50px}.recent-heading h2{margin-top:35px}.recent-grid{gap:10px}.recent figure:first-child{padding-bottom:45px}.recent img{height:440px}}
