/* @section: warwick-sitebuilder-visual-css
   Just Transitions — visual Warwick SiteBuilder v2.
   Project rules are namespaced inside .fcr; ID7 suppression is intentionally outside the namespace. */

/* @section: warwick-id7-suppression */
.id7-site-footer { display: none !important; }
.id7-navigation .navbar { display: none !important; }
.id7-header-text { display: none !important; }

.fcr {
  --fc-navy: #0d2137;
  --fc-navy-2: #081827;
  --fc-blue: #183a5a;
  --fc-teal: #00a592;
  --fc-teal-dark: #005f52;   /* darkened from #007e6e for AA contrast on light backgrounds */
  --fc-teal-soft: #dff5f1;
  --fc-gold: #c5a028;
  --fc-clay: #b66a42;
  --fc-lilac: #695b91;
  --fc-ink: #172033;
  --fc-body: #3c4456;
  --fc-muted: #667085;
  --fc-warm: #f6f1e8;
  --fc-paper: #fffdf8;
  --fc-border: #e5ded1;
  --fc-shadow: 0 24px 70px rgba(13, 33, 55, .15);
  font-family: Arial, Helvetica, sans-serif !important;
  color: var(--fc-ink) !important;
  background: var(--fc-paper) !important;
  line-height: 1.55 !important;
}

.fcr *, .fcr *::before, .fcr *::after { box-sizing: border-box !important; }
.fcr a { color: var(--fc-teal-dark) !important; }
.fcr a:hover { color: var(--fc-navy) !important; }
.fcr p { margin-top: 0 !important; color: var(--fc-body) !important; }

/* @section: custom-navigation */
.fcr .fc-nav {
  position: sticky !important;
  top: 0 !important;
  z-index: 80 !important;
  background: rgba(255,253,248,.96) !important;
  border-bottom: 1px solid var(--fc-border) !important;
  box-shadow: 0 10px 30px rgba(13,33,55,.07) !important;
}
.fcr .fc-nav-inner {
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 12px 22px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 20px !important;
}
.fcr .fc-nav-brand {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  text-decoration: none !important;
  color: var(--fc-navy) !important;
}
.fcr .fc-nav-dot {
  width: 12px !important;
  height: 12px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, var(--fc-teal), var(--fc-gold)) !important;
  box-shadow: 0 0 0 6px rgba(0,165,146,.13) !important;
}
.fcr .fc-nav-name {
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  letter-spacing: -.02em !important;
}
.fcr .fc-nav-school {
  border-left: 1px solid var(--fc-border) !important;
  padding-left: 10px !important;
  color: var(--fc-muted) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}
.fcr .fc-nav-links {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 4px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.fcr .fc-nav .fc-nav-links a {
  display: inline-block !important;
  padding: 7px 10px !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  color: var(--fc-body) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}
.fcr .fc-nav .fc-nav-links a:hover { background: var(--fc-teal-soft) !important; color: var(--fc-teal-dark) !important; }
.fcr .fc-nav .fc-nav-links .fc-nav-cta { background: var(--fc-navy) !important; color: #fff !important; padding-left: 14px !important; padding-right: 14px !important; }
.fcr .fc-nav .fc-nav-links .fc-nav-cta:hover { background: var(--fc-teal-dark) !important; color: #fff !important; }

/* @section: hero */
.fcr .fc-hero {
  position: relative !important;
  overflow: hidden !important;
  min-height: 650px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 520px) !important;
  align-items: center !important;
  gap: 42px !important;
  padding: 88px max(24px, calc((100vw - 1180px) / 2)) 92px !important;
  background:
    radial-gradient(circle at 78% 20%, rgba(0,165,146,.22), transparent 30%),
    radial-gradient(circle at 18% 8%, rgba(197,160,40,.18), transparent 28%),
    linear-gradient(118deg, var(--fc-navy-2) 0%, var(--fc-navy) 54%, #123f4d 100%) !important;
}
.fcr .fc-hero::before {
  content: '' !important;
  position: absolute !important;
  inset: auto -8% -28% 36% !important;
  height: 430px !important;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,.07) 0 1px, transparent 1px 36px) !important;
  transform: rotate(-7deg) !important;
}
.fcr .fc-hero-copy, .fcr .fc-hero-visual { position: relative !important; z-index: 1 !important; }
.fcr .fc-kicker, .fcr .fc-label {
  color: var(--fc-teal-dark) !important;   /* was --fc-teal (#00a592, ~2.95:1 on white — fails AA); --fc-teal-dark (#005f52) gives ~16:1 */
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  margin: 0 0 16px !important;
}
.fcr .fc-hero .fc-kicker {
  color: rgba(255, 255, 255, .75) !important;
}
.fcr .fc-hero h1 {
  max-width: 760px !important;
  margin: 0 0 24px !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: clamp(44px, 7vw, 82px) !important;
  line-height: .98 !important;
  letter-spacing: -.045em !important;
  color: #fff !important;
}
.fcr .fc-hero h2 {
  max-width: 760px !important;
  margin: 0 0 24px !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: clamp(44px, 7vw, 82px) !important;
  line-height: .98 !important;
  letter-spacing: -.045em !important;
  color: #fff !important;
}
.fcr .fc-hero-lede {
  max-width: 650px !important;
  color: rgba(255,255,255,.83) !important;
  font-size: 20px !important;
  line-height: 1.65 !important;
  margin-bottom: 28px !important;
  border-left: 4px solid var(--fc-teal) !important;
  padding-left: 20px !important;
}
.fcr .fc-actions { display: flex !important; flex-wrap: wrap !important; gap: 12px !important; }
.fcr .fc-button {
  display: inline-block !important;
  border-radius: 999px !important;
  padding: 12px 22px !important;
  text-decoration: none !important;
  font-weight: 800 !important;
  border: 1px solid transparent !important;
}
.fcr .fc-button-primary { background: var(--fc-teal-dark) !important; color: #fff !important; box-shadow: 0 12px 30px rgba(0,165,146,.28) !important; } /* #005f52 on #fff = ~16:1; was #00a592 ~2.5:1 — failed AA */
.fcr .fc-button-primary:hover { background: var(--fc-navy) !important; color: #fff !important; }
.fcr .fc-button-secondary { color: #fff !important; border-color: rgba(255,255,255,.36) !important; background: rgba(255,255,255,.08) !important; }
.fcr .fc-button-secondary:hover { color: #fff !important; border-color: #fff !important; }

/* @section: hero-visual */
.fcr .fc-hero-visual {
  min-height: 430px !important;
  border-radius: 34px !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.13), rgba(255,255,255,.03)),
    radial-gradient(circle at 50% 50%, rgba(0,165,146,.24), transparent 44%) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  box-shadow: var(--fc-shadow) !important;
}
.fcr .fc-orbit {
  position: absolute !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: 50% !important;
  inset: 58px !important;
}
.fcr .fc-orbit-two { inset: 118px !important; border-color: rgba(0,165,146,.34) !important; }
.fcr .fc-visual-card {
  position: absolute !important;
  width: 132px !important;
  padding: 14px !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.93) !important;
  color: var(--fc-navy) !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.2) !important;
}
.fcr .fc-visual-card span { display: block !important; color: var(--fc-muted) !important; font-size: 11px !important; text-transform: uppercase !important; letter-spacing: .12em !important; font-weight: 800 !important; }
.fcr .fc-visual-card strong { display: block !important; font-family: Georgia, 'Times New Roman', serif !important; font-size: 24px !important; line-height: 1 !important; }
.fcr .fc-visual-card-main { width: 172px !important; left: 50% !important; top: 50% !important; transform: translate(-50%, -50%) !important; background: var(--fc-teal) !important; color: #fff !important; }
.fcr .fc-visual-card-main span { color: rgba(255,255,255,.72) !important; }
.fcr .fc-visual-card-a { left: 9% !important; top: 18% !important; }
.fcr .fc-visual-card-b { right: 8% !important; top: 22% !important; }
.fcr .fc-visual-card-c { right: 21% !important; bottom: 13% !important; }

/* @section: evidence-strip */
.fcr .fc-evidence {
  max-width: 1180px !important;
  margin: -44px auto 0 !important;
  position: relative !important;
  z-index: 5 !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
  padding: 0 22px !important;
}
.fcr .fc-evidence article {
  background: #fff !important;
  border: 1px solid var(--fc-border) !important;
  border-radius: 22px !important;
  padding: 24px !important;
  box-shadow: 0 18px 50px rgba(13,33,55,.12) !important;
}
.fcr .fc-evidence span {
  display: block !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 48px !important;
  line-height: .95 !important;
  color: var(--fc-teal-dark) !important;
  margin-bottom: 10px !important;
}
.fcr .fc-evidence p { font-weight: 700 !important; color: var(--fc-ink) !important; margin-bottom: 8px !important; }
.fcr .fc-evidence small { color: var(--fc-muted) !important; }

/* @section: section-layout */
.fcr .fc-section, .fcr .fc-closing, .fcr .fc-references { padding: 82px 22px !important; }
.fcr .fc-section > *, .fcr .fc-closing > *, .fcr .fc-references > * { max-width: 1180px !important; margin-left: auto !important; margin-right: auto !important; }
.fcr .fc-section-warm { background: var(--fc-warm) !important; }
.fcr .fc-section-head { margin-bottom: 36px !important; }
.fcr .fc-section-head-centred { text-align: center !important; }
.fcr h2 {
  margin: 0 0 16px !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  color: var(--fc-navy) !important;
  font-size: clamp(34px, 5vw, 56px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.035em !important;
}
.fcr h3 { margin: 0 0 10px !important; color: var(--fc-navy) !important; line-height: 1.2 !important; }
.fcr .fc-lead { max-width: 780px !important; font-size: 18px !important; color: var(--fc-body) !important; }
.fcr .fc-section-head-centred .fc-lead { margin-left: auto !important; margin-right: auto !important; }

/* @section: challenge */
.fcr .fc-feature-grid {
  display: grid !important;
  grid-template-columns: 1.3fr .85fr .85fr !important;
  gap: 18px !important;
}
.fcr .fc-feature {
  min-height: 220px !important;
  background: #fff !important;
  border: 1px solid var(--fc-border) !important;
  border-radius: 24px !important;
  padding: 28px !important;
  box-shadow: 0 12px 36px rgba(13,33,55,.07) !important;
}
.fcr .fc-feature-quote { background: var(--fc-navy) !important; border-left: 8px solid var(--fc-teal) !important; }
.fcr .fc-feature-quote p { color: #fff !important; font-family: Georgia, 'Times New Roman', serif !important; font-size: 23px !important; line-height: 1.35 !important; }
.fcr .fc-feature-quote cite { color: rgba(255,255,255,.68) !important; }
.fcr .fc-icon {
  display: inline-grid !important;
  place-items: center !important;
  width: 64px !important;
  height: 64px !important;
  border-radius: 50% !important;
  background: var(--fc-teal-soft) !important;
  color: var(--fc-teal-dark) !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 28px !important;
  font-weight: 800 !important;
  margin-bottom: 24px !important;
}

/* @section: justice-framework */
.fcr .fc-justice-wheel {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
}
.fcr .fc-justice-wheel article {
  position: relative !important;
  overflow: hidden !important;
  min-height: 240px !important;
  border-radius: 28px !important;
  padding: 28px !important;
  background: #fff !important;
  border: 1px solid var(--fc-border) !important;
  box-shadow: 0 12px 36px rgba(13,33,55,.08) !important;
}
.fcr .fc-justice-wheel article::after {
  content: '' !important;
  position: absolute !important;
  width: 130px !important;
  height: 130px !important;
  right: -34px !important;
  bottom: -42px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, rgba(0,165,146,.20), rgba(197,160,40,.18)) !important;
}
.fcr .fc-justice-wheel span { color: var(--fc-teal-dark) !important; font-size: 12px !important; font-weight: 900 !important; letter-spacing: .16em !important; }
.fcr .fc-justice-wheel h3 { font-size: 25px !important; margin-top: 36px !important; }

/* @section: minerals */
.fcr .fc-mineral-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 22px !important; }
.fcr .fc-mineral {
  overflow: hidden !important;
  border-radius: 28px !important;
  background: #fff !important;
  border: 1px solid var(--fc-border) !important;
  box-shadow: 0 18px 56px rgba(13,33,55,.11) !important;
}
.fcr .fc-mineral-image {
  min-height: 190px !important;
  position: relative !important;
  background-color: var(--fc-navy) !important;
}
.fcr .fc-mineral-image::before, .fcr .fc-mineral-image::after {
  content: '' !important;
  position: absolute !important;
  border-radius: 999px !important;
}
.fcr .fc-mineral-image::before { inset: 24px !important; border: 1px solid rgba(255,255,255,.28) !important; }
.fcr .fc-mineral-image::after { width: 130px !important; height: 130px !important; right: -28px !important; bottom: -28px !important; background: rgba(255,255,255,.22) !important; }
.fcr .fc-cobalt .fc-mineral-image { background: radial-gradient(circle at 30% 25%, #82a9ff, transparent 24%), linear-gradient(135deg, #172b66, #5162a8) !important; }
.fcr .fc-lithium .fc-mineral-image { background: radial-gradient(circle at 20% 80%, #f8df95, transparent 24%), linear-gradient(135deg, #a76c45, #ead6b3) !important; }
.fcr .fc-nickel .fc-mineral-image { background: radial-gradient(circle at 70% 28%, #97e2d5, transparent 24%), linear-gradient(135deg, #1b4d4e, #6d827c) !important; }
.fcr .fc-mineral-body { padding: 26px !important; }
.fcr .fc-mineral h3 { font-family: Georgia, 'Times New Roman', serif !important; font-size: 32px !important; }
.fcr .fc-tagline { color: var(--fc-muted) !important; font-weight: 700 !important; font-size: 14px !important; }
.fcr dl { margin: 20px 0 !important; }
.fcr dt { color: var(--fc-muted) !important; font-size: 11px !important; font-weight: 900 !important; letter-spacing: .12em !important; text-transform: uppercase !important; }
.fcr dd { margin: 0 0 14px !important; color: var(--fc-ink) !important; font-weight: 800 !important; }
.fcr .fc-image-note { max-width: 1180px !important; margin: 18px auto 0 !important; color: var(--fc-muted) !important; font-size: 13px !important; }

/* Override fc-label/kicker on dark backgrounds — teal-dark (#005f52) is invisible on navy; use teal (#00a592) which gives ~3.2:1 on dark navy, acceptable for decorative uppercase label; or use white for full AA */
.fcr .fc-section-dark .fc-label,
.fcr .fc-section-dark .fc-kicker,
.fcr .fc-workshop-card .fc-label,
.fcr .fc-workshop-card .fc-kicker { color: rgba(255,255,255,.75) !important; }

/* @section: governance */
.fcr .fc-section-dark {
  background: linear-gradient(135deg, var(--fc-navy-2), #0e3441) !important;
  color: #fff !important;
}
.fcr .fc-section-dark h2, .fcr .fc-section-dark h3 { color: #fff !important; }
.fcr .fc-section-dark p { color: rgba(255,255,255,.78) !important; }
.fcr .fc-process {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
}
.fcr .fc-process article {
  position: relative !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  background: rgba(255,255,255,.08) !important;
  border-radius: 24px !important;
  padding: 24px !important;
}
.fcr .fc-process span {
  display: inline-grid !important;
  place-items: center !important;
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  background: var(--fc-teal) !important;
  color: #fff !important;
  font-weight: 900 !important;
  margin-bottom: 28px !important;
}
.fcr .fc-risk-tags { display: flex !important; flex-wrap: wrap !important; gap: 10px !important; margin-top: 28px !important; }
.fcr .fc-risk-tags span { border: 1px solid rgba(255,255,255,.22) !important; color: rgba(255,255,255,.88) !important; padding: 8px 12px !important; border-radius: 999px !important; font-size: 13px !important; font-weight: 700 !important; }

/* @section: policy-workshop */
.fcr .fc-policy-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 18px !important; }
.fcr .fc-policy-grid article, .fcr .fc-audience-grid article {
  background: #fff !important;
  border: 1px solid var(--fc-border) !important;
  border-radius: 24px !important;
  padding: 24px !important;
  box-shadow: 0 12px 36px rgba(13,33,55,.07) !important;
}
.fcr .fc-policy-grid span { display: inline-block !important; color: var(--fc-teal-dark) !important; font-size: 12px !important; font-weight: 900 !important; letter-spacing: .12em !important; text-transform: uppercase !important; margin-bottom: 14px !important; }
.fcr .fc-workshop { background: linear-gradient(135deg, #fff, var(--fc-warm)) !important; }
.fcr .fc-workshop-card {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .55fr) !important;
  gap: 28px !important;
  background: var(--fc-navy) !important;
  color: #fff !important;
  border-radius: 34px !important;
  padding: 42px !important;
  box-shadow: var(--fc-shadow) !important;
}
.fcr .fc-workshop-card h2 { color: #fff !important; }
.fcr .fc-workshop-card p { color: rgba(255,255,255,.8) !important; }
.fcr .fc-workshop-meta { display: grid !important; gap: 10px !important; margin: 0 !important; }
.fcr .fc-workshop-meta div { background: rgba(255,255,255,.10) !important; border: 1px solid rgba(255,255,255,.14) !important; border-radius: 16px !important; padding: 16px !important; }
.fcr .fc-workshop-meta dt { color: rgba(255,255,255,.58) !important; font-size: 11px !important; font-weight: 900 !important; letter-spacing: .12em !important; text-transform: uppercase !important; }
.fcr .fc-workshop-meta dd { margin: 0 !important; color: #fff !important; font-weight: 800 !important; }
.fcr .fc-audience-grid { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 14px !important; margin-top: 22px !important; }
.fcr .fc-audience-grid article { padding: 18px !important; }
.fcr .fc-audience-grid h3 { font-size: 17px !important; }
.fcr .fc-audience-grid p { font-size: 14px !important; }
.fcr .fc-contact-strip { display: flex !important; flex-wrap: wrap !important; gap: 16px 28px !important; margin-top: 20px !important; border-top: 1px solid var(--fc-border) !important; padding-top: 20px !important; }

/* @section: closing-references */
.fcr .fc-closing { background: var(--fc-navy-2) !important; text-align: center !important; }
.fcr .fc-closing blockquote { max-width: 920px !important; color: #fff !important; font-family: Georgia, 'Times New Roman', serif !important; font-size: clamp(30px, 5vw, 54px) !important; line-height: 1.12 !important; }
.fcr .fc-closing p { color: rgba(255,255,255,.68) !important; }
.fcr .fc-references { background: #f7f2e9 !important; padding-top: 34px !important; padding-bottom: 34px !important; }
.fcr .fc-references summary { cursor: pointer !important; font-weight: 900 !important; color: var(--fc-navy) !important; font-size: 18px !important; }
.fcr .fc-references ol { margin-top: 18px !important; padding-left: 24px !important; }
.fcr .fc-references li { margin-bottom: 10px !important; color: var(--fc-body) !important; }

/* @section: responsive */
@media (max-width: 1020px) {
  .fcr .fc-hero, .fcr .fc-feature-grid, .fcr .fc-workshop-card { grid-template-columns: 1fr !important; }
  .fcr .fc-hero-visual { min-height: 360px !important; }
  .fcr .fc-evidence, .fcr .fc-justice-wheel, .fcr .fc-mineral-grid, .fcr .fc-process, .fcr .fc-policy-grid, .fcr .fc-audience-grid { grid-template-columns: 1fr !important; }
  .fcr .fc-nav-inner { display: block !important; }
  .fcr .fc-nav-links { margin-top: 12px !important; }
}

@media (max-width: 620px) {
  .fcr .fc-hero { min-height: 0 !important; padding: 58px 18px 72px !important; }
  .fcr .fc-hero h1 { font-size: 42px !important; }
  .fcr .fc-hero-lede { font-size: 17px !important; }
  .fcr .fc-section, .fcr .fc-closing, .fcr .fc-references { padding: 58px 18px !important; }
  .fcr .fc-evidence { margin-top: -28px !important; padding: 0 18px !important; }
  .fcr .fc-nav-brand { flex-wrap: wrap !important; }
  .fcr .fc-nav-school { border-left: 0 !important; padding-left: 22px !important; width: 100% !important; }
  .fcr .fc-nav .fc-nav-links a { font-size: 12px !important; padding: 6px 8px !important; }
  .fcr .fc-actions { display: block !important; }
  .fcr .fc-button { width: 100% !important; text-align: center !important; margin-bottom: 10px !important; }
  .fcr .fc-hero-visual { display: none !important; }
  .fcr .fc-workshop-card { padding: 26px !important; border-radius: 24px !important; }
}
