/*
Theme Name: FFEG Signature
Theme URI: https://example.com
Author: FFEG
Description: Official one-page WordPress theme for Firm Foundation and Environment Ghana, featuring the signature interactive growth-rings organizational diagram. Fully editable via the WordPress classic/Elementor content flow — edit the front page in Elementor, the block editor, or any page builder, and your changes render automatically.
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: ffeg
*/

/* ==========================================================
   FFEG Content — front-end styles
   Loaded site-wide by the ffeg-content plugin, independent of
   whichever theme is active. All selectors are prefixed ffeg-
   to avoid clashing with theme styles.
   ========================================================== */
:root{
  --ffeg-canopy-950:#0f2e1a;
  --ffeg-canopy-900:#15381f;
  --ffeg-canopy-800:#1c4a29;
  --ffeg-canopy-700:#265f36;
  --ffeg-leaf-500:#6fa34a;
  --ffeg-leaf-400:#8fbf68;
  --ffeg-clay-500:#be5a34;
  --ffeg-clay-400:#d17a51;
  --ffeg-gold-300:#d8b25c;
  --ffeg-parchment-100:#f1ecdd;
  --ffeg-parchment-200:#e8e0c9;
  --ffeg-ink-900:#1d1b16;
  --ffeg-ink-700:#3a362c;
  --ffeg-line:rgba(29,27,22,0.12);
  --ffeg-line-dark:rgba(241,236,221,0.16);
  --ffeg-display:'Fraunces', Georgia, serif;
  --ffeg-body:'Work Sans', sans-serif;
  --ffeg-mono:'IBM Plex Mono', 'Courier New', monospace;
}

/* Reset a few things ONLY within our sections, so we don't fight the active theme elsewhere */
.ffeg-nav, .ffeg-hero, .ffeg-stats, .ffeg-about, .ffeg-work, .ffeg-structure,
.ffeg-campaigns, .ffeg-achievements, .ffeg-values, .ffeg-contact, .ffeg-site-footer, .ffeg-footer-motto{
  box-sizing:border-box;
  font-family:var(--ffeg-body);
}
.ffeg-nav *, .ffeg-hero *, .ffeg-stats *, .ffeg-about *, .ffeg-work *, .ffeg-structure *,
.ffeg-campaigns *, .ffeg-achievements *, .ffeg-values *, .ffeg-contact *, .ffeg-site-footer *, .ffeg-footer-motto *{
  box-sizing:border-box;
}
.ffeg-wrap{max-width:1160px;margin:0 auto;padding:0 32px;}
@media (max-width:640px){.ffeg-wrap{padding:0 20px;}}

/* Defensive baseline for core blocks — WordPress normally loads its own
   block-library CSS for these, but some themes/setups dequeue it, so we
   don't rely on that being present within any ffeg- section. */
.ffeg-nav, .ffeg-hero, .ffeg-stats, .ffeg-about, .ffeg-work, .ffeg-structure,
.ffeg-campaigns, .ffeg-achievements, .ffeg-values, .ffeg-contact, .ffeg-site-footer{
  --_ffeg-noop:0; /* scoping anchor */
}
.ffeg-hero .wp-block-buttons, .ffeg-stats .wp-block-buttons, .ffeg-about .wp-block-buttons,
.ffeg-work .wp-block-buttons, .ffeg-structure .wp-block-buttons, .ffeg-campaigns .wp-block-buttons,
.ffeg-achievements .wp-block-buttons, .ffeg-values .wp-block-buttons, .ffeg-contact .wp-block-buttons,
.ffeg-site-footer .wp-block-buttons{
  display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0; list-style:none;
}
.ffeg-hero .wp-block-button, .ffeg-stats .wp-block-button, .ffeg-about .wp-block-button,
.ffeg-work .wp-block-button, .ffeg-structure .wp-block-button, .ffeg-campaigns .wp-block-button,
.ffeg-achievements .wp-block-button, .ffeg-values .wp-block-button, .ffeg-contact .wp-block-button,
.ffeg-site-footer .wp-block-button{
  margin:0;
}
.ffeg-hero .wp-block-button__link, .ffeg-stats .wp-block-button__link, .ffeg-about .wp-block-button__link,
.ffeg-work .wp-block-button__link, .ffeg-structure .wp-block-button__link, .ffeg-campaigns .wp-block-button__link,
.ffeg-achievements .wp-block-button__link, .ffeg-values .wp-block-button__link, .ffeg-contact .wp-block-button__link,
.ffeg-site-footer .wp-block-button__link{
  display:inline-block; text-decoration:none; cursor:pointer; line-height:1.3; border:0; box-shadow:none;
}
.ffeg-hero .wp-block-columns, .ffeg-stats .wp-block-columns, .ffeg-about .wp-block-columns,
.ffeg-work .wp-block-columns, .ffeg-structure .wp-block-columns, .ffeg-campaigns .wp-block-columns,
.ffeg-achievements .wp-block-columns, .ffeg-values .wp-block-columns, .ffeg-contact .wp-block-columns,
.ffeg-site-footer .wp-block-columns{
  display:flex; flex-wrap:wrap; gap:24px; margin:0 0 24px;
}
.ffeg-hero .wp-block-column, .ffeg-stats .wp-block-column, .ffeg-about .wp-block-column,
.ffeg-work .wp-block-column, .ffeg-structure .wp-block-column, .ffeg-campaigns .wp-block-column,
.ffeg-achievements .wp-block-column, .ffeg-values .wp-block-column, .ffeg-contact .wp-block-column,
.ffeg-site-footer .wp-block-column{
  flex:1 1 0; min-width:0;
}
.ffeg-hero .wp-block-group, .ffeg-stats .wp-block-group, .ffeg-about .wp-block-group,
.ffeg-work .wp-block-group, .ffeg-structure .wp-block-group, .ffeg-campaigns .wp-block-group,
.ffeg-achievements .wp-block-group, .ffeg-values .wp-block-group, .ffeg-contact .wp-block-group,
.ffeg-site-footer .wp-block-group{
  margin:0;
}
figure.wp-block-image{margin:0;}

.ffeg-eyebrow{
  font-family:var(--ffeg-mono);
  font-size:12.5px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ffeg-clay-500);
  margin:0 0 10px;
}
.ffeg-eyebrow--light{color:var(--ffeg-leaf-400);}

/* reveal-on-scroll (progressive enhancement; content is visible even without JS) */
.ffeg-reveal{opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform .8s ease;}
.ffeg-reveal.ffeg-in{opacity:1; transform:translateY(0);}
.ffeg-reveal-stagger.wp-block-columns > *, .ffeg-reveal-stagger.wp-block-buttons > *{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
.ffeg-reveal-stagger.ffeg-in.wp-block-columns > *, .ffeg-reveal-stagger.ffeg-in.wp-block-buttons > *{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .ffeg-reveal, .ffeg-reveal-stagger > *{opacity:1 !important; transform:none !important;}
}

/* ================= NAV ================= */
.ffeg-nav{position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(15,46,26,0.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--ffeg-line-dark);}
.ffeg-nav-inner{height:74px; display:flex; align-items:center; justify-content:space-between;}
.ffeg-brandmark{display:flex; align-items:center; gap:11px; color:var(--ffeg-parchment-100); text-decoration:none;}
.ffeg-brandmark svg{width:34px;height:34px;flex-shrink:0;}
.ffeg-brandmark-text{font-family:var(--ffeg-display); font-weight:600; font-size:18px;}
.ffeg-brandmark-text span{display:block; font-family:var(--ffeg-mono); font-size:9.5px; letter-spacing:.16em; color:var(--ffeg-leaf-400); font-weight:500; margin-top:1px;}
.ffeg-links{display:block;}
.ffeg-links-list{display:flex; gap:34px; align-items:center; list-style:none; margin:0; padding:0;}
.ffeg-links-list li{list-style:none; margin:0;}
.ffeg-links-list a{color:var(--ffeg-parchment-200); text-decoration:none; font-size:14.5px; font-weight:500; font-family:var(--ffeg-body);}
.ffeg-links-list a:hover{color:var(--ffeg-leaf-400);}
.ffeg-links-list a.current{color:var(--ffeg-leaf-400); font-weight:600;}
.ffeg-links-list li.current-menu-item > a,
.ffeg-links-list li.current_page_item > a{color:var(--ffeg-leaf-400); font-weight:600;}
.ffeg-nav-cta{font-family:var(--ffeg-mono); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; background:var(--ffeg-clay-500); color:var(--ffeg-parchment-100); padding:10px 18px; border-radius:2px; text-decoration:none; border:1px solid var(--ffeg-clay-500);}
.ffeg-nav-cta:hover{background:transparent; color:var(--ffeg-clay-400);}
.ffeg-nav-toggle{display:none;}
@media (max-width:900px){
  .ffeg-links{position:fixed; top:74px; left:0; right:0; background:var(--ffeg-canopy-950); padding:22px 28px 30px; border-bottom:1px solid var(--ffeg-line-dark); transform:translateY(-130%); transition:transform .35s ease;}
  .ffeg-links.open{transform:translateY(0);}
  .ffeg-links-list{flex-direction:column; align-items:flex-start; gap:20px;}
  .ffeg-nav-toggle{display:flex; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px;}
  .ffeg-nav-toggle span{width:22px; height:2px; background:var(--ffeg-parchment-100);}
}

/* ================= HERO ================= */
.ffeg-hero{position:relative; background:var(--ffeg-canopy-950); color:var(--ffeg-parchment-100); overflow:hidden; padding:154px 0 100px; margin:0 !important;}
.ffeg-hero-rings{position:absolute; right:-220px; top:50%; transform:translateY(-50%); width:900px; height:900px; opacity:.9; pointer-events:none;}
@media (max-width:900px){ .ffeg-hero-rings{right:-420px; opacity:.55;} }
.ffeg-hero-rings svg{width:100%;height:100%;}
.ffeg-hero-rings circle{fill:none; stroke:var(--ffeg-canopy-700); stroke-width:1;}
.ffeg-hero-rings .ffeg-r1{stroke:var(--ffeg-leaf-500); opacity:.55; animation:ffegSpin 90s linear infinite;}
.ffeg-hero-rings .ffeg-r2{stroke:var(--ffeg-canopy-700); opacity:.8; animation:ffegSpin 130s linear infinite reverse;}
.ffeg-hero-rings .ffeg-r3{stroke:var(--ffeg-canopy-700); opacity:.5; animation:ffegSpin 200s linear infinite;}
.ffeg-hero-rings .ffeg-r4{fill:var(--ffeg-gold-300); stroke:none; opacity:.85; animation:ffegPulse 5s ease-in-out infinite;}
@keyframes ffegSpin{to{transform:rotate(360deg);}}
@keyframes ffegPulse{0%,100%{opacity:.7; r:56;} 50%{opacity:1; r:64;}}
.ffeg-hero-inner{position:relative; z-index:2;}
.ffeg-hero-eyebrow{color:var(--ffeg-leaf-400); margin-bottom:26px;}
.ffeg-hero-title{font-family:var(--ffeg-display); font-weight:600; font-size:clamp(40px, 6vw, 74px); line-height:1.05; max-width:820px; margin:0 0 30px; color:var(--ffeg-parchment-100);}
.ffeg-hero-title em{font-style:italic; font-weight:450; color:var(--ffeg-leaf-400);}
.ffeg-hero-sub{max-width:520px; font-size:17.5px; line-height:1.65; color:var(--ffeg-parchment-200); margin:0 0 44px;}
.wp-block-buttons.ffeg-hero-actions{gap:16px;}
.wp-block-button.ffeg-btn-primary .wp-block-button__link{font-family:var(--ffeg-mono); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; padding:15px 26px; border-radius:2px; background:var(--ffeg-clay-500); color:var(--ffeg-parchment-100); border:1px solid var(--ffeg-clay-500);}
.wp-block-button.ffeg-btn-primary .wp-block-button__link:hover{background:var(--ffeg-clay-400);}
.wp-block-button.ffeg-btn-ghost .wp-block-button__link{font-family:var(--ffeg-mono); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; padding:15px 26px; border-radius:2px; background:transparent; color:var(--ffeg-parchment-100); border:1px solid var(--ffeg-line-dark);}
.wp-block-button.ffeg-btn-ghost .wp-block-button__link:hover{border-color:var(--ffeg-leaf-400); color:var(--ffeg-leaf-400);}

/* ================= STATS ================= */
.ffeg-stats{background:var(--ffeg-canopy-800); border-top:1px solid var(--ffeg-line-dark); border-bottom:1px solid var(--ffeg-line-dark); padding:46px 0; margin:0 !important;}
.wp-block-columns.ffeg-stats-grid{display:grid !important; grid-template-columns:repeat(4,1fr); gap:0;}
.ffeg-stat{padding:0 26px; border-left:1px solid var(--ffeg-line-dark);}
.ffeg-stat:first-child{border-left:none; padding-left:0;}
.ffeg-stat-num{font-family:var(--ffeg-display); font-size:44px; font-weight:600; color:var(--ffeg-gold-300); line-height:1; margin:0 0 8px;}
.ffeg-stat-label{font-family:var(--ffeg-mono); font-size:11.5px; letter-spacing:.03em; color:var(--ffeg-parchment-200); line-height:1.5; margin:0;}
@media (max-width:760px){
  .wp-block-columns.ffeg-stats-grid{grid-template-columns:repeat(2,1fr) !important; gap:30px 0;}
  .ffeg-stat{border-left:none; padding-left:0;}
}

/* ================= ABOUT ================= */
.ffeg-about{background:var(--ffeg-parchment-100); padding:120px 0; margin:0 !important;}
.wp-block-columns.ffeg-about-grid{display:grid !important; grid-template-columns:0.85fr 1.15fr; gap:64px;}
.ffeg-about-title{font-family:var(--ffeg-display); font-size:clamp(28px,3.4vw,40px); color:var(--ffeg-canopy-950); margin:18px 0 0;}
.ffeg-about-p{font-size:16.5px; line-height:1.75; color:var(--ffeg-ink-700); margin:0 0 20px;}
@media (max-width:820px){.wp-block-columns.ffeg-about-grid{grid-template-columns:1fr !important; gap:26px;}}

.wp-block-columns.ffeg-mv-grid{display:grid !important; grid-template-columns:1fr 1fr; gap:24px; margin-top:80px !important;}
.ffeg-mv-card{background:var(--ffeg-canopy-950); padding:44px 40px; border-radius:3px;}
.ffeg-mv-card--clay{background:var(--ffeg-clay-500);}
.ffeg-mv-index{font-family:var(--ffeg-mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ffeg-parchment-100); opacity:.75; margin:0 0 18px;}
.ffeg-mv-text{font-family:var(--ffeg-display); font-size:22px; font-weight:450; line-height:1.4; color:var(--ffeg-parchment-100); margin:0;}
@media (max-width:820px){.wp-block-columns.ffeg-mv-grid{grid-template-columns:1fr !important;}}

/* ================= SECTION HEAD (shared) ================= */
.ffeg-section-head{margin-bottom:56px; max-width:640px;}
.ffeg-section-title{font-family:var(--ffeg-display); font-size:clamp(28px,3.4vw,40px); margin:18px 0 0; color:var(--ffeg-canopy-950); line-height:1.15;}
.ffeg-section-title--light{color:var(--ffeg-parchment-100);}

/* ================= WORK ================= */
.ffeg-work{background:var(--ffeg-canopy-950); padding:120px 0; margin:0 !important;}
.wp-block-columns.ffeg-work-grid{border-left:1px solid var(--ffeg-line-dark); border-top:1px solid var(--ffeg-line-dark); margin-bottom:0 !important; gap:0 !important;}
.ffeg-work-card{background:var(--ffeg-canopy-950); padding:36px 32px; border-right:1px solid var(--ffeg-line-dark); border-bottom:1px solid var(--ffeg-line-dark);}
.ffeg-work-card--empty{background:transparent;}
.ffeg-work-num{font-family:var(--ffeg-mono); font-size:12.5px; color:var(--ffeg-gold-300); margin:0 0 18px;}
.ffeg-work-card-title{font-family:var(--ffeg-display); font-weight:600; font-size:19px; color:var(--ffeg-parchment-100); margin:0 0 10px;}
.ffeg-work-card-desc{font-size:14.5px; line-height:1.65; color:var(--ffeg-parchment-200); margin:0;}
@media (max-width:900px){.wp-block-columns.ffeg-work-grid{flex-wrap:wrap !important;} .ffeg-work-card{flex:0 0 50% !important;}}
@media (max-width:600px){.ffeg-work-card{flex:0 0 100% !important;}}

/* ================= STRUCTURE ================= */
.ffeg-structure{background:var(--ffeg-parchment-100); padding:120px 0; margin:0 !important;}
.ffeg-structure-intro{margin-top:22px; max-width:520px; font-size:16px; line-height:1.7; color:var(--ffeg-ink-700);}

/* ================= CAMPAIGNS ================= */
.ffeg-campaigns{background:var(--ffeg-parchment-200); padding:120px 0; margin:0 !important;}
.wp-block-columns.ffeg-camp-grid{display:grid !important; grid-template-columns:0.9fr 1.1fr; gap:64px;}
.ffeg-camp-copy{margin-top:20px; font-size:16px; line-height:1.75; color:var(--ffeg-ink-700);}
.ffeg-camp-item{background:var(--ffeg-parchment-100); padding:26px 28px; border:1px solid var(--ffeg-line); margin-bottom:-1px;}
.ffeg-camp-mark{font-family:var(--ffeg-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ffeg-clay-500); margin:0 0 10px;}
.ffeg-camp-text{font-size:15.5px; line-height:1.6; color:var(--ffeg-ink-700); margin:0;}
@media (max-width:820px){.wp-block-columns.ffeg-camp-grid{grid-template-columns:1fr !important;}}

/* ================= ACHIEVEMENTS ================= */
.ffeg-achievements{background:var(--ffeg-parchment-100); padding:120px 0; margin:0 !important;}
.ffeg-log{border-top:1px solid var(--ffeg-line);}
.wp-block-columns.ffeg-log-row{border-bottom:1px solid var(--ffeg-line); padding:22px 4px !important; margin-bottom:0 !important; align-items:baseline !important;}
.ffeg-log-tag-col{flex:0 0 160px !important;}
.ffeg-log-tag{font-family:var(--ffeg-mono); font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--ffeg-clay-500); margin:0;}
.ffeg-log-text{font-size:16px; line-height:1.55; color:var(--ffeg-ink-900); margin:0;}
@media (max-width:640px){.wp-block-columns.ffeg-log-row{flex-wrap:wrap !important;} .ffeg-log-tag-col{flex-basis:100% !important; margin-bottom:4px;}}

/* ================= VALUES ================= */
.ffeg-values{background:var(--ffeg-canopy-950); padding:100px 0; margin:0 !important;}
.wp-block-buttons.ffeg-values-list{gap:14px !important; margin-top:10px;}
.wp-block-button.ffeg-value-chip .wp-block-button__link{font-family:var(--ffeg-mono); font-size:13.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--ffeg-parchment-100); background:transparent; border:1px solid var(--ffeg-line-dark); border-radius:30px; padding:12px 24px;}
.wp-block-button.ffeg-value-chip .wp-block-button__link:hover{border-color:var(--ffeg-leaf-400); color:var(--ffeg-leaf-400);}

/* ================= CONTACT ================= */
.ffeg-contact{background:var(--ffeg-parchment-100); padding:120px 0; margin:0 !important;}
.wp-block-columns.ffeg-contact-grid{border-left:1px solid var(--ffeg-line); border-top:1px solid var(--ffeg-line); margin-top:60px !important; margin-bottom:0 !important; gap:0 !important;}
.ffeg-contact-card{padding:30px 28px; border-right:1px solid var(--ffeg-line); border-bottom:1px solid var(--ffeg-line);}
.ffeg-contact-name{font-family:var(--ffeg-display); font-size:18px; font-weight:600; color:var(--ffeg-canopy-950); margin:0 0 6px;}
.ffeg-contact-role{font-family:var(--ffeg-mono); font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ffeg-clay-500); margin:0 0 6px;}
.ffeg-contact-phones{font-size:14.5px; margin:0;}
.ffeg-contact-phones a{color:var(--ffeg-ink-700); text-decoration:none;}
.ffeg-contact-phones a:hover{color:var(--ffeg-leaf-500);}
@media (max-width:820px){.ffeg-contact-card{flex-basis:50% !important;}}
@media (max-width:560px){.ffeg-contact-card{flex-basis:100% !important;}}

.ffeg-contact-cta.wp-block-columns{background:var(--ffeg-canopy-950); border-radius:3px; padding:50px 48px; margin-top:70px !important; align-items:center !important;}
.ffeg-cta-copy{max-width:480px; font-size:16px; line-height:1.65; color:var(--ffeg-parchment-200); margin:14px 0 0;}
.ffeg-contact-cta .wp-block-button__link{font-family:var(--ffeg-mono); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; padding:15px 26px; border-radius:2px; background:var(--ffeg-clay-500); color:var(--ffeg-parchment-100);}

/* ================= FOOTER ================= */
.ffeg-site-footer{background:var(--ffeg-canopy-950); border-top:1px solid var(--ffeg-line-dark); padding:64px 0 50px; margin:0 !important;}
.wp-block-columns.ffeg-footer-grid{align-items:center !important;}
.ffeg-footer-badge img{border-radius:4px; background:var(--ffeg-parchment-100); padding:14px;}
.ffeg-footer-org{font-family:var(--ffeg-display); font-weight:600; font-size:18px; color:var(--ffeg-parchment-100); margin:0 0 8px;}
.ffeg-footer-addr{font-size:13.5px; color:var(--ffeg-parchment-200); line-height:1.7; margin:0 0 10px;}
.ffeg-footer-links{font-size:13.5px; line-height:2; margin:0;}
.ffeg-footer-links a{color:var(--ffeg-parchment-200); text-decoration:none;}
.ffeg-footer-links a:hover{color:var(--ffeg-leaf-400);}
.ffeg-footer-motto{background:var(--ffeg-clay-500); text-align:center; padding:16px; margin:0 !important;}
.ffeg-footer-motto p{font-family:var(--ffeg-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ffeg-parchment-100); margin:0;}

/* Footer widget areas */
.ffeg-widget-title{font-family:var(--ffeg-mono); font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ffeg-parchment-100); margin:0 0 14px;}
.ffeg-footer-about-col, .ffeg-footer-links-col, .ffeg-footer-contact-col{font-size:13.5px; color:var(--ffeg-parchment-200); line-height:1.7;}
.footer-widget{margin-bottom:22px;}
.footer-widget:last-child{margin-bottom:0;}
.footer-widget ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.footer-widget a{color:var(--ffeg-parchment-200); text-decoration:none;}
.footer-widget a:hover{color:var(--ffeg-leaf-400);}
.footer-widget img{max-width:100%; height:auto;}
@media (max-width:900px){
  .ffeg-footer-grid{grid-template-columns:1fr 1fr !important;}
  .ffeg-footer-badge-col{grid-column:1 / -1;}
}
@media (max-width:560px){
  .ffeg-footer-grid{grid-template-columns:1fr !important;}
}

/* ================= STRUCTURE RINGS (Custom HTML block content) ================= */
.ffeg-structure-body{display:grid; grid-template-columns:1fr 1.15fr; gap:56px; align-items:center;}
.ffeg-rings-wrap{position:relative; width:100%; max-width:460px; aspect-ratio:1/1; margin:0 auto;}
.ffeg-rings-svg{width:100%; height:100%;}
.ffeg-ring-circle{fill:none; stroke:var(--ffeg-canopy-700); stroke-width:1.4; opacity:.55; transition:stroke .3s ease, opacity .3s ease, stroke-width .3s ease;}
.ffeg-ring-group{cursor:pointer;}
.ffeg-ring-group.active .ffeg-ring-circle{stroke:var(--ffeg-clay-500); opacity:1; stroke-width:2.2;}
.ffeg-ring-group:hover .ffeg-ring-circle{stroke:var(--ffeg-leaf-500); opacity:1;}
#ffegRingsSvg .ffeg-ring-circle{stroke-dasharray:1200; stroke-dashoffset:1200; transition:stroke-dashoffset 1.4s ease, stroke .3s ease, opacity .3s ease, stroke-width .3s ease;}
#ffegRingsSvg.ffeg-drawn .ffeg-ring-group[data-ring="0"] .ffeg-ring-circle{stroke-dashoffset:0; transition-delay:.05s;}
#ffegRingsSvg.ffeg-drawn .ffeg-ring-group[data-ring="1"] .ffeg-ring-circle{stroke-dashoffset:0; transition-delay:.15s;}
#ffegRingsSvg.ffeg-drawn .ffeg-ring-group[data-ring="2"] .ffeg-ring-circle{stroke-dashoffset:0; transition-delay:.25s;}
#ffegRingsSvg.ffeg-drawn .ffeg-ring-group[data-ring="3"] .ffeg-ring-circle{stroke-dashoffset:0; transition-delay:.35s;}
#ffegRingsSvg.ffeg-drawn .ffeg-ring-group[data-ring="4"] .ffeg-ring-circle{stroke-dashoffset:0; transition-delay:.45s;}
#ffegRingsSvg.ffeg-drawn .ffeg-ring-group[data-ring="5"] .ffeg-ring-circle{stroke-dashoffset:0; transition-delay:.55s;}
.ffeg-ring-core{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:17%; height:17%; border-radius:50%; background:var(--ffeg-canopy-950); color:var(--ffeg-parchment-100); display:flex; align-items:center; justify-content:center; text-align:center; font-family:var(--ffeg-mono); font-size:12px; letter-spacing:.04em; line-height:1.4; padding:10px; pointer-events:none;}
.ffeg-ring-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px;}
.ffeg-ring-list li{display:flex; gap:18px; align-items:flex-start; padding:18px 20px; border-radius:2px; cursor:pointer; transition:background .25s ease; border-left:2px solid transparent;}
.ffeg-ring-list li:hover, .ffeg-ring-list li.active{background:var(--ffeg-parchment-200); border-left-color:var(--ffeg-clay-500);}
.ffeg-ring-tag{font-family:var(--ffeg-mono); font-size:12px; color:var(--ffeg-clay-500); margin-top:3px; flex-shrink:0;}
.ffeg-ring-list h3{font-family:var(--ffeg-display); font-size:17px; font-weight:700; color:var(--ffeg-canopy-950); margin:0 0 5px;}
.ffeg-ring-list p{font-size:14.5px; line-height:1.6; color:var(--ffeg-ink-700); margin:0;}
@media (max-width:900px){.ffeg-structure-body{grid-template-columns:1fr;}}

/* Push page content below the fixed nav bar */
body{padding-top:0;}
.ffeg-nav + div + .ffeg-hero, .ffeg-hero{scroll-margin-top:74px;}
[id^="ffeg-"]{scroll-margin-top:90px;}

/* ================= CONTACT FORM ================= */
.ffeg-contact-form-wrap{margin-top:60px;}
.ffeg-contact-split{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
.ffeg-form-box{
  background:var(--ffeg-parchment-100); border-radius:6px; padding:44px;
}
.ffeg-form-box h3{font-family:var(--ffeg-display); font-size:22px; font-weight:600; color:var(--ffeg-canopy-950); margin:0 0 6px;}
.ffeg-form-box .ffeg-form-sub{font-size:14px; color:var(--ffeg-ink-700); margin:0 0 28px;}
.ffeg-form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.ffeg-form-group{margin-bottom:20px;}
.ffeg-form-group label{display:block; font-family:var(--ffeg-mono); font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--ffeg-ink-700); margin-bottom:8px;}
.ffeg-form-group input,
.ffeg-form-group select,
.ffeg-form-group textarea{
  width:100%; padding:13px 14px; border:1.5px solid var(--ffeg-line); border-radius:3px;
  font-family:var(--ffeg-body); font-size:14.5px; color:var(--ffeg-ink-900); background:#fff;
  transition:border-color .2s ease;
}
.ffeg-form-group input:focus, .ffeg-form-group select:focus, .ffeg-form-group textarea:focus{outline:none; border-color:var(--ffeg-leaf-500);}
.ffeg-form-group textarea{min-height:120px; resize:vertical;}
.ffeg-form-submit{
  width:100%; border:none; cursor:pointer;
  font-family:var(--ffeg-mono); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase;
  padding:15px 26px; border-radius:3px; background:var(--ffeg-clay-500); color:#fff;
  transition:background .25s ease;
}
.ffeg-form-submit:hover{background:var(--ffeg-clay-400);}
.ffeg-form-submit:disabled{opacity:.6; cursor:default;}
#ffeg-form-feedback{display:none; padding:12px 16px; border-radius:3px; margin-bottom:18px; font-size:14px;}
@media (max-width:820px){.ffeg-contact-split{grid-template-columns:1fr;} .ffeg-form-row{grid-template-columns:1fr;}}
