/* ==========================================================================
   RCN Ghana — Ember and Ink
   Realisation of the saved design direction. Tokens first, then components.
   ========================================================================== */

/* ---------- Faces (self hosted, no third party request) ---------- */

@font-face{font-family:"Archivo";src:url("../fonts/archivo-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Archivo";src:url("../fonts/archivo-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Archivo";src:url("../fonts/archivo-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Archivo";src:url("../fonts/archivo-800.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/publicsans-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/publicsans-400i.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/publicsans-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/publicsans-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

/* ---------- Tokens ---------- */

:root{
  --bg:#FBFAF8;
  --surface:#FFFFFF;
  --ink:#101040;
  --ink-deep:#0A0B2E;
  --accent:#D06010;        /* decoration: rules, large display words, borders */
  --accent-ink:#A6480B;    /* anything that must pass AA as text or a button */
  --accent-deep:#B0241A;   /* hover and pressed */
  --muted:#5C6080;
  --hairline:#DFE0E8;
  --on-dark:#F2F1F7;
  --on-dark-muted:#A7A9C4;

  --fd:"Archivo","Helvetica Neue",Arial,sans-serif;
  --fb:"Public Sans","Helvetica Neue",Arial,sans-serif;

  --xs:8px; --sm:16px; --md:28px; --lg:56px; --xl:104px;
  --r-sm:3px; --r-md:4px;

  --wrap:1200px;
  --gut:24px;
}

/* ---------- Neutralise the parent theme without stripping it ----------
   :where() keeps these at zero specificity so component rules always win. */

:where(.rcn) body,
.rcn{background:var(--bg)}

.rcn :where(h1,h2,h3,h4,h5,h6){
  font-family:var(--fd);
  color:var(--ink);
  margin:0;
  letter-spacing:-0.015em;
}
.rcn :where(p,li,dd,dt){font-family:var(--fb)}
.rcn :where(figure,blockquote,ul,ol,dl){margin:0;padding:0;border:0}
.rcn :where(li){list-style:none}
.rcn :where(img){max-width:100%;height:auto;display:block}

.rcn{
  font-family:var(--fb);
  color:var(--ink);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

/* Astra wrappers: let our sections run full bleed. */
.rcn-page :where(#primary,#content,.site-content,.ast-container,.entry-content,.site-main){
  margin:0;padding:0;max-width:none;width:auto;
}
.rcn-page :where(.entry-header,.ast-single-entry-banner,.page-title){display:none}
.rcn-page :where(.entry-content) > * {max-width:none}
.rcn .ast-container{display:block}

/* ---------- Layout primitives ---------- */

.rcn-wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}

.rcn-s{padding-block:clamp(56px,8vw,var(--xl))}
.rcn-s--light{background:var(--bg)}
.rcn-s--surface{background:var(--surface)}
.rcn-s--dark{background:var(--ink-deep);color:var(--on-dark)}
.rcn-s--dark :where(h1,h2,h3,h4){color:var(--on-dark)}
.rcn-s--dark :where(p){color:var(--on-dark-muted)}

/* The one repeated ornament: a short flame rule opening a section. */
.rcn-rule{display:block;width:40px;height:3px;background:var(--accent);border:0;margin:0 0 var(--md)}

.rcn-h2{
  font-size:clamp(1.9rem,3.6vw,2.9rem);
  line-height:1.08;
  font-weight:700;
  max-width:18ch;
}
.rcn-lede{
  margin-top:var(--sm);
  color:var(--muted);
  max-width:62ch;
  font-size:1.05rem;
}
.rcn-s--dark .rcn-lede{color:var(--on-dark-muted)}

.rcn-em{color:var(--accent)}
.rcn-s--light .rcn-em,.rcn-s--surface .rcn-em{color:var(--accent-ink)}

/* ---------- Buttons: one radius, one intent per label ---------- */

.rcn-btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--fb);font-weight:600;font-size:.98rem;
  line-height:1;letter-spacing:.01em;
  padding:16px 26px;border-radius:var(--r-md);
  background:var(--accent-ink);color:#fff;
  border:1.5px solid var(--accent-ink);
  text-decoration:none;
  transition:background .18s ease,border-color .18s ease,transform .08s ease;
  white-space:nowrap;
}
.rcn-btn:hover,.rcn-btn:focus{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}
.rcn-btn:active{transform:translateY(1px)}
.rcn-btn--sm{padding:11px 18px;font-size:.9rem}

.rcn-btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.rcn-btn--ghost:hover,.rcn-btn--ghost:focus{background:var(--ink);color:#fff;border-color:var(--ink)}
.rcn-s--dark .rcn-btn--ghost{color:var(--on-dark);border-color:var(--on-dark)}
.rcn-s--dark .rcn-btn--ghost:hover,.rcn-s--dark .rcn-btn--ghost:focus{background:var(--on-dark);color:var(--ink-deep)}

.rcn-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--md)}

:where(.rcn) a:focus-visible,
:where(.rcn) button:focus-visible{outline:2px solid var(--accent-ink);outline-offset:3px}
.rcn-s--dark a:focus-visible{outline-color:var(--accent)}

.rcn-skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:12px 18px;z-index:100}
.rcn-skip:focus{left:0}

/* ---------- Header ---------- */

.rcn-head{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--bg) 92%,transparent);
  backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--hairline);
}
.rcn-head__in{display:flex;align-items:center;justify-content:space-between;gap:var(--md);min-height:78px}
.rcn-head__brand{display:flex;align-items:center;text-decoration:none}
.rcn-head__brand img{width:auto;height:46px}
.rcn-head__word{font-family:var(--fd);font-weight:700;color:var(--ink);font-size:1.1rem}

.rcn-nav{display:flex;align-items:center;gap:var(--md)}
.rcn-nav__list{display:flex;align-items:center;gap:var(--md);margin:0;padding:0}
.rcn-nav__list li{list-style:none;margin:0}
.rcn-nav__list a{
  font-family:var(--fb);font-weight:500;font-size:.98rem;
  color:var(--ink);text-decoration:none;padding:6px 0;position:relative;white-space:nowrap;
}
.rcn-nav__list a::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;
  background:var(--accent);transition:right .22s ease;
}
.rcn-nav__list a:hover::after,
.rcn-nav__list .current-menu-item > a::after{right:0}

.rcn-burger{display:none;background:none;border:0;padding:10px;cursor:pointer}
.rcn-burger span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:transform .2s ease,opacity .2s ease}
.rcn-burger[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.rcn-burger[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}

/* ---------- Hero: split, off centre, one moment ---------- */

.rcn-hero{position:relative;background:var(--bg);overflow:hidden}
.rcn-hero__in{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);
  align-items:center;
  padding-block:clamp(48px,7vw,88px);
}
.rcn-hero__title{
  font-size:clamp(2.35rem,5.1vw,4rem);
  line-height:1.03;
  font-weight:800;
  letter-spacing:-0.025em;
  max-width:15ch;
}
.rcn-hero__sub{
  margin-top:var(--md);color:var(--muted);
  font-size:clamp(1.02rem,1.5vw,1.16rem);max-width:46ch;
}

/* The portrait breaks its frame: it bleeds past the container edge. */
.rcn-hero__fig{position:relative;margin-right:calc(50% - 50vw)}
.rcn-hero__fig img{
  width:100%;height:clamp(340px,46vw,560px);object-fit:cover;object-position:center 22%;
  border-radius:var(--r-sm) 0 0 var(--r-sm);
}
.rcn-hero__fig::after{
  content:"";position:absolute;left:0;bottom:0;width:88px;height:6px;background:var(--accent);
}

/* ---------- Meetings: a hairline register, never three equal cards ---------- */

.rcn-meet__head{max-width:var(--wrap)}
.rcn-meet__list{margin-top:var(--lg);border-top:1px solid var(--hairline)}
.rcn-meet__item{
  display:grid;grid-template-columns:auto 1fr 1.15fr;gap:clamp(20px,4vw,56px);
  align-items:start;
  padding-block:var(--md);
  border-bottom:1px solid var(--hairline);
}
.rcn-meet__n{
  font-family:var(--fd);font-weight:600;font-size:.86rem;
  color:var(--accent-ink);letter-spacing:.14em;padding-top:8px;
}
.rcn-meet__name{font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1.1;font-weight:700}
.rcn-meet__when{
  display:block;margin-top:6px;font-family:var(--fb);font-weight:600;
  font-size:.95rem;color:var(--accent-ink);
}
.rcn-meet__body{color:var(--muted);margin:0;font-size:1.02rem;max-width:52ch}

/* ---------- Conference: the one filled panel, on the navy ground ---------- */

.rcn-conf__in{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,5vw,72px);align-items:start}
.rcn-conf__title{font-size:clamp(1.9rem,3.8vw,3rem);line-height:1.05;font-weight:800;max-width:16ch}
.rcn-conf__body p{margin:0 0 1em;color:var(--on-dark-muted);max-width:60ch}

.rcn-facts{margin-top:var(--md);border-top:1px solid rgba(242,241,247,.18)}
.rcn-facts div{
  display:grid;grid-template-columns:130px 1fr;gap:var(--sm);
  padding-block:14px;border-bottom:1px solid rgba(242,241,247,.18);
}
.rcn-facts dt{font-family:var(--fb);font-weight:600;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0}
.rcn-facts dd{margin:0;color:var(--on-dark);font-size:1.02rem}
.rcn-facts dd ul li{margin:0 0 2px}

/* ---------- Testimonial: scale contrast, no card ---------- */

.rcn-quote{max-width:24ch}
.rcn-quote__mark{font-family:var(--fd);font-weight:800;font-size:clamp(3.4rem,8vw,6rem);line-height:.7;color:var(--accent);display:block;margin-bottom:var(--sm)}
.rcn-quote__text{
  font-family:var(--fd);font-weight:600;
  font-size:clamp(1.4rem,2.9vw,2.15rem);line-height:1.18;letter-spacing:-0.015em;
  color:var(--ink);max-width:22ch;
}
.rcn-quote__in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.rcn-quote__aside{color:var(--muted);max-width:46ch}

/* ---------- Leaders: two column split, portrait overlapping the ground ---------- */

.rcn-leader{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,5vw,72px);align-items:start}
.rcn-leader + .rcn-leader{margin-top:clamp(56px,7vw,96px);padding-top:clamp(56px,7vw,96px);border-top:1px solid var(--hairline)}
.rcn-leader--flip{grid-template-columns:1.15fr .85fr}
.rcn-leader--flip .rcn-leader__fig{order:2}
.rcn-leader--flip .rcn-leader__body{order:1}

.rcn-leader__fig{position:relative}
.rcn-leader__fig img{
  width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 12%;
  border-radius:var(--r-sm);background:var(--hairline);
}
.rcn-leader__fig::before{
  content:"";position:absolute;inset:auto auto -14px -14px;width:96px;height:96px;
  background:var(--accent);opacity:.12;border-radius:var(--r-sm);z-index:-1;
}
.rcn-leader__role{
  font-family:var(--fb);font-weight:600;font-size:.8rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--accent-ink);display:block;margin-bottom:10px;
}
.rcn-leader__name{font-size:clamp(1.6rem,3.1vw,2.4rem);line-height:1.05;font-weight:700}
.rcn-leader__body p{margin:var(--sm) 0 0;color:var(--muted);max-width:64ch;font-size:1.02rem}


/* leaders wrapper */
.rcn-leaders{margin-top:clamp(48px,6vw,80px)}

/* ---------- Video ---------- */

.rcn-video{max-width:960px;margin-inline:auto}
.rcn-video .wp-block-embed__wrapper,.rcn-video iframe,.rcn-video video{width:100%;border-radius:var(--r-sm)}

/* ---------- Contact ---------- */

.rcn-contact__in{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,5vw,72px);align-items:start}
.rcn-contact__facts{margin-top:var(--md);border-top:1px solid var(--hairline)}
.rcn-contact__facts > div{padding-block:18px;border-bottom:1px solid var(--hairline)}
.rcn-contact__k{font-family:var(--fb);font-weight:600;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);display:block;margin-bottom:4px}
.rcn-contact__v,.rcn-contact__v a{color:var(--ink);text-decoration:none;font-size:1.06rem}
.rcn-contact__v a:hover{color:var(--accent-ink);text-decoration:underline}

.rcn-form{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:clamp(22px,3.5vw,38px)}
.rcn-form label{display:block;font-family:var(--fb);font-weight:600;font-size:.85rem;letter-spacing:.06em;color:var(--ink);margin-bottom:7px}
.rcn-form .rcn-field + .rcn-field{margin-top:var(--sm)}
.rcn-form input,.rcn-form textarea{
  width:100%;font-family:var(--fb);font-size:1rem;color:var(--ink);
  background:var(--bg);border:1px solid var(--hairline);border-radius:var(--r-md);
  padding:13px 14px;transition:border-color .18s ease;
}
.rcn-form input::placeholder,.rcn-form textarea::placeholder{color:var(--muted);opacity:1}
.rcn-form input:focus,.rcn-form textarea:focus{border-color:var(--accent-ink);outline:2px solid var(--accent-ink);outline-offset:1px}
.rcn-form textarea{min-height:150px;resize:vertical}
.rcn-form .rcn-btn{margin-top:var(--md);width:100%}
.rcn-note{margin-top:12px;font-size:.88rem;color:var(--muted)}

/* ---------- Footer ---------- */

.rcn-foot{background:var(--ink-deep);color:var(--on-dark);padding-block:clamp(48px,6vw,80px) var(--md)}
.rcn-foot__top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:clamp(28px,4vw,56px)}
.rcn-foot__brand img{height:64px;width:auto;margin-bottom:var(--sm)}
.rcn-foot__line{font-family:var(--fd);font-weight:600;font-size:1.05rem;line-height:1.25;color:var(--on-dark);max-width:22ch;margin:0}
.rcn-foot__h{font-family:var(--fb);font-weight:600;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.rcn-foot__col p{margin:0;color:var(--on-dark-muted);font-size:.98rem;line-height:1.8}
.rcn-foot__col a{color:var(--on-dark-muted);text-decoration:none}
.rcn-foot__col a:hover{color:var(--on-dark);text-decoration:underline}
.rcn-foot__base{
  margin:clamp(40px,5vw,64px) 0 0;padding-top:var(--md);
  border-top:1px solid rgba(242,241,247,.16);
  color:var(--on-dark-muted);font-size:.9rem;
}

/* ---------- Motion: dial is 0.25, so a single restrained reveal ---------- */

.js .rcn-rv{opacity:0;transform:translateY(14px)}
.js .rcn-rv.is-in{opacity:1;transform:none;transition:opacity .55s ease,transform .55s ease}

@media (prefers-reduced-motion:reduce){
  .js .rcn-rv{opacity:1;transform:none;transition:none}
  *{scroll-behavior:auto!important}
}

/* ---------- Collapse, declared per layout ---------- */

@media (max-width:1000px){
  .rcn-foot__top{grid-template-columns:1fr 1fr}
  .rcn-foot__brand{grid-column:1 / -1}
}

@media (max-width:900px){
  .rcn-burger{display:block}
  .rcn-nav{
    position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--bg);border-bottom:1px solid var(--hairline);
    padding:var(--sm) var(--gut) var(--md);
    display:none;
  }
  .rcn-nav.is-open{display:flex}
  .rcn-nav__list{flex-direction:column;align-items:stretch;gap:0}
  .rcn-nav__list a{display:block;padding:14px 0;border-bottom:1px solid var(--hairline)}
  .rcn-nav__list a::after{display:none}
  .rcn-nav__cta{margin-top:var(--sm);align-self:flex-start}

  .rcn-hero__in{grid-template-columns:1fr;gap:var(--md)}
  .rcn-hero__fig{margin-right:calc(50% - 50vw);margin-left:calc(50% - 50vw)}
  .rcn-hero__fig img{height:clamp(260px,54vw,380px);border-radius:0}

  .rcn-meet__item{grid-template-columns:auto 1fr;gap:var(--sm) var(--md)}
  .rcn-meet__body{grid-column:2 / -1}

  .rcn-conf__in,.rcn-quote__in,.rcn-contact__in{grid-template-columns:1fr;gap:var(--md)}
  .rcn-leader,.rcn-leader--flip{grid-template-columns:1fr;gap:var(--md)}
  .rcn-leader--flip .rcn-leader__fig{order:0}
  .rcn-leader--flip .rcn-leader__body{order:0}
  .rcn-leader__fig img{aspect-ratio:3/2;object-position:center 15%}
  .rcn-leader__fig{max-width:420px}
}

@media (max-width:600px){
  .rcn{font-size:16px}
  .rcn-foot__top{grid-template-columns:1fr}
  .rcn-facts div{grid-template-columns:1fr;gap:2px}
  .rcn-btns .rcn-btn{width:100%}
  .rcn-quote{max-width:none}
  .rcn-head__brand img{height:38px}
}

/* Spectra form block kept for its delivery and validation, dressed in our tokens. */
.rcn-form .uagb-forms-main-form{margin:0}
.rcn-form .uagb-forms-form-label{font-family:var(--fb);font-weight:600;font-size:.85rem;letter-spacing:.06em;color:var(--ink);margin-bottom:7px}
.rcn-form .uagb-forms-main-form input[type=text],.rcn-form .uagb-forms-main-form input[type=email],.rcn-form .uagb-forms-main-form input[type=tel],.rcn-form .uagb-forms-main-form textarea{width:100%;font-family:var(--fb);font-size:1rem;color:var(--ink);background:var(--bg);border:1px solid var(--hairline);border-radius:var(--r-md);padding:13px 14px;box-shadow:none}
.rcn-form .uagb-forms-main-form input:focus,.rcn-form .uagb-forms-main-form textarea:focus{border-color:var(--accent-ink);outline:2px solid var(--accent-ink);outline-offset:1px}
.rcn-form .uagb-forms-main-form textarea{min-height:150px;resize:vertical}
.rcn-form .uagb-forms-main-form .uagb-forms-form-container{gap:var(--sm)}
.rcn-form .uagb-forms-main-form button[type=submit],.rcn-form .uagb-forms-main-form .uagb-forms-submit-button{font-family:var(--fb);font-weight:600;font-size:.98rem;line-height:1;padding:16px 26px;border-radius:var(--r-md);background:var(--accent-ink);color:#fff;border:1.5px solid var(--accent-ink);width:100%;box-shadow:none;transition:background .18s ease,border-color .18s ease}
.rcn-form .uagb-forms-main-form button[type=submit]:hover,.rcn-form .uagb-forms-main-form button[type=submit]:focus{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}

/* Event poster: leads the section, breaks its frame a little on wide screens. */
.rcn-poster{display:block;margin:var(--lg) 0 0;border-radius:var(--r-sm);overflow:hidden;position:relative;outline-offset:4px}
.rcn-poster img{width:100%;height:auto;display:block;transform:scale(1.001);transition:transform .5s ease}
.rcn-poster:hover img,.rcn-poster:focus-visible img{transform:scale(1.02)}
.rcn-poster::after{content:"";position:absolute;left:0;bottom:0;width:120px;height:6px;background:var(--accent)}
.rcn-s--dark .rcn-conf__in{margin-top:clamp(36px,5vw,64px)}
.rcn-facts dd a{color:var(--on-dark);text-decoration:none;border-bottom:1px solid rgba(242,241,247,.35)}
.rcn-facts dd a:hover{color:var(--accent);border-bottom-color:var(--accent)}
@media (min-width:1300px){.rcn-poster{margin-right:-40px;margin-left:-40px}}
@media (prefers-reduced-motion:reduce){.rcn-poster img,.rcn-poster:hover img{transform:none;transition:none}}
