/* ==================================================================
   Radiscon - enterprise design tokens, header and homepage hero
   File: public/css/radiscon-cyber.css
   Plain CSS (no Tailwind build needed). All classes are prefixed rc-
   so they never collide with the existing Tailwind styles.
   No glows, grids or gradient text: solid surfaces, 1px hairlines,
   and the brand blue used sparingly as the single accent.
   ================================================================== */

:root {
  /* Brand */
  --rc-cyan: #00b5f6;           /* accent on dark surfaces (8.6:1 on --rc-bg) */
  --rc-purple: #2b00a7;         /* logo colour; never text on dark (1.6:1) */
  --rc-blue: #0f76da;           /* solid buttons, white text 4.5:1 */
  --rc-blue-hover: #0b5fb3;     /* white text 6.4:1 */
  --rc-blue-ink: #0b5fb3;       /* accent text on white (6.4:1) */

  /* Dark surfaces (hero) */
  --rc-bg: #0b0f19;
  --rc-surface: #111827;
  --rc-surface-hover: #161f30;
  --rc-line: rgba(255, 255, 255, 0.08);
  --rc-line-strong: rgba(255, 255, 255, 0.16);

  /* Text on dark */
  --rc-text: #ffffff;
  --rc-text-muted: #94a3b8;     /* 7.4:1 on --rc-bg */
  --rc-text-soft: #cbd5e1;      /* secondary headings, 13:1 */

  /* Light surfaces (header) */
  --rc-light: #ffffff;
  --rc-light-line: #e5e7eb;
  --rc-ink: #0f172a;            /* 17.9:1 on white */
  --rc-ink-muted: #475569;      /* 7.6:1 on white */

  /* Type */
  --rc-font-display: 'Poppins', system-ui, sans-serif;
  --rc-font-body: 'Inter', system-ui, sans-serif;

  /* Shape and spacing */
  --rc-radius: 12px;
  --rc-radius-sm: 8px;
  --rc-gutter: clamp(20px, 4vw, 40px);
  --rc-container: 1240px;
  --rc-header-h: 76px;

  /* Motion */
  --rc-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --rc-dur-fast: 150ms;
  --rc-dur: 250ms;
  --rc-dur-header: 250ms;
}

/* ---------------------------------------------------------------- */
/* Hero                                                              */
/* ---------------------------------------------------------------- */
.rc-hero {
  background-color: var(--rc-bg);
  color: var(--rc-text);
  font-family: var(--rc-font-body);
  /* room for the fixed site header */
  padding: calc(var(--rc-header-h) + clamp(56px, 8vw, 112px)) var(--rc-gutter) clamp(64px, 8vw, 112px);
}

.rc-hero__inner {
  max-width: var(--rc-container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(48px, 6vw, 96px);
  align-items: center;
}

.rc-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: var(--rc-cyan);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.rc-eyebrow::before {
  content: "";
  flex: 0 0 auto;
  width: 28px;
  height: 2px;
  background: currentColor;
}

.rc-hero__title {
  margin: 24px 0 0;
  max-width: 16ch;
  font-family: var(--rc-font-display);
  font-weight: 600;
  font-size: clamp(36px, 4.6vw, 58px);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--rc-text);
}

.rc-hero__lead {
  margin: 24px 0 0;
  max-width: 54ch;
  font-size: clamp(16px, 1.4vw, 18px);
  line-height: 1.7;
  color: var(--rc-text-muted);
}

.rc-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 40px;
}

.rc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: var(--rc-radius-sm);
  font-family: var(--rc-font-body);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.rc-btn--primary {
  background: var(--rc-blue);
  color: #ffffff;
}

.rc-btn--primary:hover,
.rc-btn--primary:focus-visible {
  background: var(--rc-blue-hover);
}

.rc-btn--secondary {
  border-color: var(--rc-line-strong);
  background: transparent;
  color: var(--rc-text);
}

.rc-btn--secondary:hover,
.rc-btn--secondary:focus-visible {
  border-color: rgba(255, 255, 255, 0.4);
  background: rgba(255, 255, 255, 0.04);
}

.rc-btn:focus-visible {
  outline: 2px solid var(--rc-cyan);
  outline-offset: 3px;
}

/* Stats: a quiet row separated by hairlines, no boxes */
.rc-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 56px 0 0;
  padding: 28px 0 0;
  list-style: none;
  max-width: 560px;
  border-top: 1px solid var(--rc-line);
}

.rc-stat {
  padding: 0 24px;
  border-left: 1px solid var(--rc-line);
}

.rc-stat:first-child {
  padding-left: 0;
  border-left: 0;
}

.rc-stat__value {
  display: block;
  font-family: var(--rc-font-display);
  font-size: 28px;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--rc-text);
}

.rc-stat__label {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--rc-text-muted);
}

.rc-hero__offices {
  margin: 28px 0 0;
  font-size: 13px;
  color: var(--rc-text-muted);
}

/* Compliance programs card */
.rc-card {
  padding: 32px;
  border: 1px solid var(--rc-line);
  border-radius: var(--rc-radius);
  background: var(--rc-surface);
}

.rc-card__kicker {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rc-text-muted);
}

.rc-card__title {
  margin: 10px 0 0;
  font-family: var(--rc-font-display);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--rc-text);
}

.rc-programs {
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--rc-line);
}

.rc-programs li {
  border-bottom: 1px solid var(--rc-line);
}

.rc-program {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 -12px;
  padding: 16px 12px;
  border-radius: var(--rc-radius-sm);
  color: var(--rc-text);
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.rc-program:hover,
.rc-program:focus-visible {
  background: var(--rc-surface-hover);
}

.rc-program:focus-visible {
  outline: 2px solid var(--rc-cyan);
  outline-offset: -2px;
}

.rc-program__badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 84px;
  height: 28px;
  padding: 0 8px;
  border: 1px solid var(--rc-line-strong);
  border-radius: 6px;
  color: var(--rc-cyan);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.rc-program__name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.35;
}

.rc-program__desc {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 400;
  color: var(--rc-text-muted);
}

.rc-program__arrow {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  color: var(--rc-text-muted);
  transition: transform 0.15s ease, color 0.15s ease;
}

.rc-program:hover .rc-program__arrow,
.rc-program:focus-visible .rc-program__arrow {
  color: var(--rc-text);
  transform: translateX(3px);
}

.rc-card__note {
  margin: 20px 0 0;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--rc-text-muted);
}

/* Responsive: two columns need ~1100px to breathe */
@media (max-width: 1099px) {
  .rc-hero__inner {
    grid-template-columns: minmax(0, 1fr);
  }
  .rc-hero__title {
    max-width: 20ch;
  }
}

@media (max-width: 560px) {
  .rc-eyebrow {
    font-size: 12px;
    letter-spacing: 0.08em;
  }
  .rc-eyebrow::before {
    width: 20px;
  }
  .rc-hero__actions {
    margin-top: 32px;
  }
  .rc-btn {
    width: 100%;
  }
  .rc-stats {
    margin-top: 40px;
    padding-top: 24px;
  }
  .rc-stat {
    padding: 0 12px;
  }
  .rc-stat__value {
    font-size: 22px;
  }
  .rc-stat__label {
    font-size: 12px;
  }
  .rc-card {
    padding: 24px 20px;
  }
  /* Badge above the name so the text gets the full row width */
  .rc-program {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 12px;
  }
  .rc-program__badge {
    justify-self: start;
    width: auto;
    height: 24px;
    font-size: 10.5px;
  }
  .rc-program__name {
    grid-column: 1;
  }
  .rc-program__arrow {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
}

@media (max-width: 359px) {
  .rc-stats {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
  .rc-stat {
    padding: 0;
    border-left: 0;
  }
}

/* ==================================================================
   Header (partials/header.php)
   White bar so the official full-colour logo (Images/logo-w.png:
   purple #2b00a7 + cyan) shows exactly as designed.
   Layout utilities (hidden, lg:flex, lg:hidden) stay on the markup so
   the existing menu scripts keep working; these rules never set
   `display` on those elements, so they cannot override the breakpoints.
   ================================================================== */
.rc-header {
  background: var(--rc-light);
  border-bottom: 1px solid var(--rc-light-line);
  font-family: var(--rc-font-body);
  transition: box-shadow var(--rc-dur-header) var(--rc-ease);
}

/* Compact header once the page is scrolled (class set by radiscon-ui.js).
   The header is position: fixed, so shrinking it never shifts the page. */
.rc-header.is-scrolled {
  --rc-header-h: 60px;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
}

.rc-header__bar {
  max-width: var(--rc-container);
  margin: 0 auto;
  height: var(--rc-header-h);
  padding: 0 var(--rc-gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  transition: height var(--rc-dur-header) var(--rc-ease);
}

.rc-header__logo {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

/* Official logo, true colours (no filter). 971 x 257 source. */
.rc-logo {
  display: block;
  height: 38px;
  width: auto;
  max-width: none;
  transition: height var(--rc-dur-header) var(--rc-ease);
}

.rc-header.is-scrolled .rc-logo {
  height: 30px;
}

.rc-header.is-scrolled .rc-btn-cta {
  min-height: 38px;
}

.rc-nav {
  align-items: center;
  gap: 4px;
}

/* The nav and the Services item fill the bar's height, so the pointer
   never leaves the menu area between the button and the mega-menu. */
.rc-nav {
  align-self: stretch;
}

.rc-nav__item {
  display: flex;
  align-items: center;
  align-self: stretch;
}

.rc-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  border: 0;
  background: none;
  color: var(--rc-ink-muted);
  font: 500 15px/1 var(--rc-font-body);
  text-decoration: none;
  cursor: pointer;
  transition: color 0.15s ease;
}

/* Active page: solid 2px rule on the header's bottom edge */
.rc-nav__link::after {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  /* sits on the bar's bottom edge: link box is 35px tall, centred in the bar */
  bottom: calc((35px - var(--rc-header-h)) / 2);
  height: 2px;
  background: var(--rc-blue);
  transform: scaleX(0);
  transition: transform 0.15s ease, bottom var(--rc-dur-header) var(--rc-ease);
}

.rc-nav__link:hover,
.rc-nav__link:focus-visible {
  color: var(--rc-ink);
}

.rc-nav__link.is-active {
  color: var(--rc-ink);
  font-weight: 600;
}

.rc-nav__link.is-active::after {
  transform: scaleX(1);
}

.rc-nav__link:focus-visible {
  outline: 2px solid var(--rc-blue);
  outline-offset: 2px;
  border-radius: 6px;
}

.rc-nav__arrow {
  width: 12px;
  height: 12px;
  transition: transform 0.15s ease;
}

/* Services dropdown (shown by the existing hover/click scripts) */
.rc-dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 50;
  width: 340px;
  padding-top: 12px;
}

#services-dropdown.is-open {
  display: block;
}

.rc-dropdown__panel {
  padding: 8px;
  border: 1px solid var(--rc-light-line);
  border-radius: var(--rc-radius);
  background: var(--rc-light);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
}

.rc-dropdown__link {
  display: block;
  padding: 10px 14px;
  border-radius: 6px;
  color: var(--rc-ink-muted);
  font-size: 14px;
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.rc-dropdown__link:hover,
.rc-dropdown__link:focus-visible {
  background: #f1f5f9;
  color: var(--rc-ink);
}

.rc-dropdown__link--strong {
  color: var(--rc-ink);
  font-weight: 600;
}

.rc-dropdown__divider {
  height: 1px;
  margin: 6px 8px;
  background: var(--rc-light-line);
}

/* Right side: CTA + mobile toggle */
.rc-header__actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.rc-btn-cta {
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 20px;
  border: 0;
  border-radius: var(--rc-radius-sm);
  background: var(--rc-blue);
  color: #ffffff;
  font: 600 14px/1 var(--rc-font-body);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--rc-dur-fast) ease, min-height var(--rc-dur-header) var(--rc-ease);
}

.rc-btn-cta:hover,
.rc-btn-cta:focus-visible {
  background: var(--rc-blue-hover);
}

.rc-btn-cta:focus-visible {
  outline: 2px solid var(--rc-blue);
  outline-offset: 3px;
}

.rc-menu-toggle {
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--rc-light-line);
  border-radius: var(--rc-radius-sm);
  background: var(--rc-light);
  color: var(--rc-ink);
  cursor: pointer;
}

.rc-menu-toggle svg {
  width: 20px;
  height: 20px;
}

.rc-menu-toggle:hover,
.rc-menu-toggle:focus-visible {
  background: #f8fafc;
  border-color: #cbd5e1;
}

/* Mobile menu. The closed state is scaleY(0), which hides it visually but
   keeps its layout height, so it is taken out of flow here; otherwise the
   fixed header stretches down over the hero on phones. */
.rc-mobile-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  max-height: calc(100vh - var(--rc-header-h));
  overflow-y: auto;
  padding: 8px var(--rc-gutter) 24px;
  border-top: 1px solid var(--rc-light-line);
  background: var(--rc-light);
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
}

.rc-mobile-menu__link {
  display: block;
  padding: 14px 0;
  border-bottom: 1px solid #f1f5f9;
  color: var(--rc-ink-muted);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
}

.rc-mobile-menu__link.is-active,
.rc-mobile-menu__link:hover {
  color: var(--rc-ink);
  font-weight: 600;
}

.rc-mobile-menu__sub {
  margin: 4px 0;
  padding-left: 14px;
  border-left: 2px solid var(--rc-light-line);
}

.rc-mobile-menu__sub a {
  display: block;
  padding: 9px 0;
  color: var(--rc-ink-muted);
  font-size: 14px;
  text-decoration: none;
}

.rc-mobile-menu__sub a:hover {
  color: var(--rc-blue-ink);
}

.rc-btn-cta--block {
  display: flex;
  width: 100%;
  min-height: 48px;
  margin-top: 20px;
}

@media (max-width: 480px) {
  .rc-logo {
    height: 32px;
  }
  .rc-header.is-scrolled .rc-logo {
    height: 28px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rc-btn,
  .rc-program,
  .rc-program__arrow,
  .rc-header,
  .rc-header__bar,
  .rc-logo,
  .rc-nav__link,
  .rc-nav__link::after,
  .rc-btn-cta,
  .rc-dropdown__link {
    transition: none;
  }
}

/* Sizing safety: padding and borders stay inside declared widths
   on every page, with or without Tailwind's base reset. */
.rc-header,
.rc-header *,
.rc-hero,
.rc-hero * {
  box-sizing: border-box;
}


/* ==================================================================
   Page components (homepage sections, service-page template)
   Bands alternate light / muted / dark; one accent (brand blue on
   light, cyan on dark); weight-600 headings; hairline borders.
   ================================================================== */
.rc-section {
  padding: clamp(64px, 8vw, 112px) var(--rc-gutter);
  font-family: var(--rc-font-body);
  color: var(--rc-ink);
  background: var(--rc-light);
}

.rc-section--muted {
  background: #f8fafc;
  border-top: 1px solid var(--rc-light-line);
  border-bottom: 1px solid var(--rc-light-line);
}

.rc-section--dark {
  background: var(--rc-bg);
  color: var(--rc-text);
}

.rc-section,
.rc-section *,
.rc-page-hero,
.rc-page-hero *,
.rc-cta-band,
.rc-cta-band * {
  box-sizing: border-box;
}

.rc-container {
  max-width: var(--rc-container);
  margin: 0 auto;
}

/* Section heading block */
.rc-section-head {
  max-width: 720px;
  margin-bottom: clamp(32px, 4vw, 56px);
}

.rc-section-head--center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.rc-section-head--center .rc-eyebrow {
  justify-content: center;
}

.rc-section .rc-eyebrow {
  color: var(--rc-blue-ink);
}

.rc-section--dark .rc-eyebrow {
  color: var(--rc-cyan);
}

.rc-h2 {
  margin: 16px 0 0;
  font-family: var(--rc-font-display);
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: inherit;
}

.rc-lead {
  margin: 16px 0 0;
  font-size: clamp(16px, 1.3vw, 18px);
  line-height: 1.7;
  color: var(--rc-ink-muted);
}

.rc-section--dark .rc-lead {
  color: var(--rc-text-muted);
}

.rc-prose {
  max-width: 72ch;
  font-size: 17px;
  line-height: 1.75;
  color: var(--rc-ink-muted);
}

.rc-prose p {
  margin: 0 0 1.1em;
}

.rc-prose strong {
  color: var(--rc-ink);
}

/* Two-column layouts */
.rc-split {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(40px, 6vw, 96px);
  align-items: start;
}

.rc-split--even {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rc-section--tight {
  padding-top: clamp(48px, 6vw, 72px);
  padding-bottom: clamp(48px, 6vw, 72px);
}

.rc-section .rc-hero__actions {
  margin-top: 32px;
}

.rc-h2--sm {
  margin-bottom: 20px;
  font-size: clamp(20px, 2vw, 24px);
}

.rc-note {
  margin: 16px 0 0;
  font-size: 13px;
  line-height: 1.55;
  color: var(--rc-ink-muted);
}

/* Fact list (About block) */
.rc-facts {
  margin: 0;
  border-top: 1px solid var(--rc-light-line);
}

.rc-fact {
  padding: 22px 0;
  border-bottom: 1px solid var(--rc-light-line);
}

.rc-fact dt {
  font-family: var(--rc-font-display);
  font-size: 20px;
  font-weight: 600;
  color: var(--rc-ink);
}

.rc-fact dd {
  margin: 6px 0 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--rc-ink-muted);
}

.rc-fact dd strong {
  color: var(--rc-ink);
  font-weight: 600;
}

/* Panel on dark bands (AI benefits) */
.rc-panel {
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid var(--rc-line);
  border-radius: var(--rc-radius);
  background: var(--rc-surface);
}

.rc-panel__title {
  margin: 0;
  font-family: var(--rc-font-display);
  font-size: 20px;
  font-weight: 600;
  color: var(--rc-text);
}

.rc-benefits {
  margin: 20px 0 0;
}

.rc-benefits > div {
  padding: 16px 0;
  border-top: 1px solid var(--rc-line);
}

.rc-benefits dt {
  font-weight: 600;
  color: var(--rc-text);
}

.rc-benefits dd {
  margin: 4px 0 0;
  font-size: 15px;
  color: var(--rc-text-muted);
}

.rc-quote {
  margin: 20px 0 0;
  padding: 4px 0 4px 20px;
  border-left: 2px solid var(--rc-cyan);
}

.rc-quote p {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--rc-text-soft);
}

.rc-quote footer {
  margin-top: 8px;
  font-size: 13px;
  color: var(--rc-text-muted);
}

.rc-checklist.rc-checklist--spaced {
  margin-top: 28px;
}

@media (max-width: 1023px) {
  .rc-split,
  .rc-split--even {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Card grid */
.rc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.rc-grid--2 {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr));
}

.rc-grid > li {
  display: flex;
}

.rc-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 28px;
  border: 1px solid var(--rc-light-line);
  border-radius: var(--rc-radius);
  background: var(--rc-light);
  color: var(--rc-ink);
  text-decoration: none;
  transition: transform var(--rc-dur) var(--rc-ease), border-color var(--rc-dur) var(--rc-ease),
    box-shadow var(--rc-dur) var(--rc-ease), opacity var(--rc-dur) var(--rc-ease);
}

a.rc-tile:hover,
a.rc-tile:focus-visible {
  transform: translateY(-2px);
  border-color: var(--rc-blue);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
}

a.rc-tile:focus-visible {
  outline: 2px solid var(--rc-blue);
  outline-offset: 2px;
}

.rc-tile__tag {
  align-self: flex-start;
  margin-bottom: 12px;
  color: var(--rc-blue-ink);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.rc-tile__title {
  margin: 0;
  font-family: var(--rc-font-display);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--rc-ink);
}

.rc-tile__text {
  margin: 10px 0 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--rc-ink-muted);
}

.rc-tile__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  padding-top: 20px;
  color: var(--rc-blue-ink);
  font-size: 14px;
  font-weight: 600;
}

.rc-tile__link svg {
  width: 14px;
  height: 14px;
  transition: transform var(--rc-dur) var(--rc-ease);
}

a.rc-tile:hover .rc-tile__link svg,
a.rc-tile:focus-visible .rc-tile__link svg {
  transform: translateX(3px);
}

/* Tiles on dark bands */
.rc-section--dark .rc-tile {
  border-color: var(--rc-line);
  background: var(--rc-surface);
  color: var(--rc-text);
}

.rc-section--dark .rc-tile__title {
  color: var(--rc-text);
}

.rc-section--dark .rc-tile__text {
  color: var(--rc-text-muted);
}

.rc-section--dark .rc-tile__tag {
  color: var(--rc-cyan);
}

.rc-section--dark .rc-tile__link {
  color: var(--rc-cyan);
}

.rc-section--dark a.rc-tile:hover,
.rc-section--dark a.rc-tile:focus-visible {
  border-color: var(--rc-line-strong);
  background: var(--rc-surface-hover);
  box-shadow: none;
}

/* Filter chips */
.rc-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
}

.rc-chip {
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid var(--rc-light-line);
  border-radius: 999px;
  background: var(--rc-light);
  color: var(--rc-ink-muted);
  font: 500 14px/1 var(--rc-font-body);
  cursor: pointer;
  transition: background-color var(--rc-dur-fast) ease, border-color var(--rc-dur-fast) ease,
    color var(--rc-dur-fast) ease;
}

.rc-chip:hover {
  border-color: #cbd5e1;
  color: var(--rc-ink);
}

.rc-chip[aria-pressed="true"] {
  border-color: var(--rc-ink);
  background: var(--rc-ink);
  color: #ffffff;
}

.rc-chip:focus-visible {
  outline: 2px solid var(--rc-blue);
  outline-offset: 2px;
}

/* Chips only work with JS, so hide them without it */
html:not(.rc-js) .rc-chips {
  display: none;
}

.rc-grid > li.is-entering .rc-tile {
  opacity: 0;
  transform: translateY(8px);
}

/* Static text chips (frameworks, industries) */
.rc-taglist {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.rc-taglist li {
  padding: 8px 14px;
  border: 1px solid var(--rc-light-line);
  border-radius: var(--rc-radius-sm);
  background: var(--rc-light);
  color: var(--rc-ink);
  font-size: 14px;
  font-weight: 500;
}

.rc-section--dark .rc-taglist li {
  border-color: var(--rc-line-strong);
  background: transparent;
  color: var(--rc-text);
}

/* Numbered process steps */
.rc-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: rc-step;
  border-top: 1px solid var(--rc-light-line);
}

.rc-steps li {
  counter-increment: rc-step;
  padding: 28px 24px 0 0;
}

.rc-steps li::before {
  content: counter(rc-step, decimal-leading-zero);
  display: block;
  margin-bottom: 14px;
  color: var(--rc-blue-ink);
  font: 600 14px/1 var(--rc-font-display);
  letter-spacing: 0.06em;
}

.rc-steps h3 {
  margin: 0;
  font-family: var(--rc-font-display);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.35;
}

.rc-steps p {
  margin: 8px 0 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--rc-ink-muted);
}

.rc-section--dark .rc-steps {
  border-color: var(--rc-line);
}

.rc-section--dark .rc-steps li::before {
  color: var(--rc-cyan);
}

.rc-section--dark .rc-steps p {
  color: var(--rc-text-muted);
}

/* Check list (feature bullets) */
.rc-checklist {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.rc-checklist li {
  position: relative;
  padding-left: 30px;
  font-size: 16px;
  line-height: 1.6;
}

.rc-checklist li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 5px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--rc-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
}

.rc-section--dark .rc-checklist li {
  color: var(--rc-text-soft);
}

/* FAQ accordion (native details/summary, no JS) */
.rc-faq {
  max-width: 880px;
  border-top: 1px solid var(--rc-light-line);
}

.rc-faq details {
  border-bottom: 1px solid var(--rc-light-line);
}

.rc-faq summary {
  position: relative;
  display: block;
  padding: 22px 48px 22px 0;
  cursor: pointer;
  list-style: none;
  font-family: var(--rc-font-display);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--rc-ink);
}

.rc-faq summary::-webkit-details-marker {
  display: none;
}

/* plus icon that turns into a cross */
.rc-faq summary::before,
.rc-faq summary::after {
  content: "";
  position: absolute;
  right: 6px;
  top: 50%;
  width: 14px;
  height: 2px;
  margin-top: -1px;
  border-radius: 1px;
  background: var(--rc-ink-muted);
  transition: transform var(--rc-dur) var(--rc-ease);
}

.rc-faq summary::after {
  transform: rotate(90deg);
}

.rc-faq details[open] summary::before {
  transform: rotate(45deg);
}

.rc-faq details[open] summary::after {
  transform: rotate(135deg);
}

.rc-faq summary:hover {
  color: var(--rc-blue-ink);
}

.rc-faq summary:focus-visible {
  outline: 2px solid var(--rc-blue);
  outline-offset: 4px;
  border-radius: 4px;
}

.rc-faq__answer {
  padding: 0 48px 24px 0;
  font-size: 16px;
  line-height: 1.7;
  color: var(--rc-ink-muted);
}

.rc-faq__answer p {
  margin: 0;
}

/* Smooth open/close where the browser supports animating to auto height */
@supports (interpolate-size: allow-keywords) {
  .rc-faq {
    interpolate-size: allow-keywords;
  }
  .rc-faq details::details-content {
    height: 0;
    overflow: hidden;
    transition: height var(--rc-dur) var(--rc-ease), content-visibility var(--rc-dur) allow-discrete;
  }
  .rc-faq details[open]::details-content {
    height: auto;
  }
}

/* Inner-page title band (replaces photo heroes; pure CSS for fast LCP) */
.rc-page-hero {
  background: var(--rc-bg);
  color: var(--rc-text);
  font-family: var(--rc-font-body);
  padding: calc(var(--rc-header-h) + clamp(40px, 6vw, 80px)) var(--rc-gutter) clamp(48px, 6vw, 80px);
}

.rc-page-hero__title {
  margin: 20px 0 0;
  max-width: 22ch;
  font-family: var(--rc-font-display);
  font-size: clamp(32px, 4vw, 50px);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--rc-text);
}

.rc-page-hero__lead {
  margin: 20px 0 0;
  max-width: 64ch;
  font-size: clamp(16px, 1.4vw, 18px);
  line-height: 1.7;
  color: var(--rc-text-muted);
}

.rc-page-hero .rc-hero__actions {
  margin-top: 32px;
}

/* Breadcrumb */
.rc-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 13px;
  color: var(--rc-text-muted);
}

.rc-breadcrumb li + li::before {
  content: "/";
  margin-right: 8px;
  color: rgba(148, 163, 184, 0.5);
}

.rc-breadcrumb a {
  color: var(--rc-text-muted);
  text-decoration: none;
  transition: color var(--rc-dur-fast) ease;
}

.rc-breadcrumb a:hover {
  color: var(--rc-text);
}

.rc-breadcrumb [aria-current="page"] {
  color: var(--rc-text-soft);
}

/* Closing CTA band */
.rc-cta-band {
  padding: clamp(56px, 7vw, 88px) var(--rc-gutter);
  background: var(--rc-surface);
  color: var(--rc-text);
  font-family: var(--rc-font-body);
}

.rc-cta-band__inner {
  max-width: var(--rc-container);
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.rc-cta-band__title {
  margin: 0;
  max-width: 24ch;
  font-family: var(--rc-font-display);
  font-size: clamp(24px, 2.6vw, 34px);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.015em;
}

.rc-cta-band__text {
  margin: 12px 0 0;
  max-width: 56ch;
  color: var(--rc-text-muted);
  font-size: 16px;
  line-height: 1.6;
}

.rc-cta-band .rc-hero__actions {
  margin-top: 0;
}

/* Secondary button on light bands */
.rc-section .rc-btn--secondary {
  border-color: #cbd5e1;
  color: var(--rc-ink);
}

.rc-section .rc-btn--secondary:hover,
.rc-section .rc-btn--secondary:focus-visible {
  border-color: var(--rc-ink);
  background: #f8fafc;
}

.rc-section--dark .rc-btn--secondary {
  border-color: var(--rc-line-strong);
  color: var(--rc-text);
}

/* Reveal on scroll (radiscon-ui.js adds .rc-js to <html> and
   .is-revealed to each element). Without JS nothing is hidden. */
.rc-js [data-reveal]:not([data-reveal="stagger"]),
.rc-js [data-reveal="stagger"] > * {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 300ms var(--rc-ease), transform 300ms var(--rc-ease);
}

.rc-js [data-reveal].is-revealed:not([data-reveal="stagger"]),
.rc-js [data-reveal="stagger"].is-revealed > * {
  opacity: 1;
  transform: none;
}

/* Services dropdown: fade + short slide (works with the existing
   hidden / is-open toggles; display is still owned by those classes) */
#services-dropdown:not(.hidden) .rc-dropdown__panel,
#services-dropdown.is-open .rc-dropdown__panel {
  animation: rc-drop-in 180ms var(--rc-ease);
}

@keyframes rc-drop-in {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* Mobile menu links fade in one after another when it opens */
.mobile-menu.open .rc-mobile-menu__link,
.mobile-menu.open .rc-mobile-menu__sub,
.mobile-menu.open .rc-btn-cta--block {
  animation: rc-fade-in 240ms var(--rc-ease) both;
}

.mobile-menu.open > :nth-child(2) { animation-delay: 30ms; }
.mobile-menu.open > :nth-child(3) { animation-delay: 60ms; }
.mobile-menu.open > :nth-child(4) { animation-delay: 90ms; }
.mobile-menu.open > :nth-child(5) { animation-delay: 120ms; }
.mobile-menu.open > :nth-child(6) { animation-delay: 150ms; }
.mobile-menu.open > :nth-child(n + 7) { animation-delay: 180ms; }

@keyframes rc-fade-in {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 560px) {
  .rc-tile {
    padding: 24px 20px;
  }
  .rc-faq summary {
    font-size: 16px;
    padding-right: 36px;
  }
  .rc-faq__answer {
    padding-right: 0;
  }
  .rc-cta-band .rc-hero__actions {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rc-tile,
  .rc-tile__link svg,
  .rc-chip,
  .rc-faq summary::before,
  .rc-faq summary::after,
  .rc-breadcrumb a {
    transition: none;
  }
  .rc-js [data-reveal]:not([data-reveal="stagger"]),
  .rc-js [data-reveal="stagger"] > * {
    opacity: 1;
    transform: none;
    transition: none;
  }
  #services-dropdown .rc-dropdown__panel,
  .mobile-menu.open .rc-mobile-menu__link,
  .mobile-menu.open .rc-mobile-menu__sub,
  .mobile-menu.open .rc-btn-cta--block {
    animation: none;
  }
  a.rc-tile:hover,
  a.rc-tile:focus-visible {
    transform: none;
  }
  .rc-faq details::details-content {
    transition: none;
  }
}

/* ==================================================================
   Services mega-menu (partials/header.php)
   Positioned against the header bar, so it can be wider than the
   Services button and stays centred on the page.
   ================================================================== */
.rc-header__bar {
  position: relative;
}

.rc-dropdown.rc-mega {
  left: 50%;
  width: min(960px, calc(100vw - 48px));
  transform: translateX(-50%);
  padding-top: 0;
}

.rc-mega__panel {
  padding: 28px 28px 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.rc-mega__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 24px;
}

.rc-mega__heading {
  margin: 0 0 8px;
  padding: 0 10px;
  color: var(--rc-blue-ink);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.rc-mega .rc-dropdown__link {
  padding: 8px 10px;
  line-height: 1.35;
}

.rc-mega .rc-dropdown__link.is-active {
  color: var(--rc-ink);
  font-weight: 600;
}

.rc-mega__footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  margin: 20px -28px 0;
  padding: 16px 38px;
  border-top: 1px solid var(--rc-light-line);
  border-radius: 0 0 var(--rc-radius) var(--rc-radius);
  background: #f8fafc;
}

.rc-mega__all {
  color: var(--rc-blue-ink);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

.rc-mega__all:hover,
.rc-mega__all:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Arrow follows the click-open state too */
.rc-nav__item:has(#services-dropdown.is-open) .rc-nav__arrow {
  transform: rotate(180deg);
}

.rc-mobile-menu__heading {
  margin: 12px 0 2px;
  color: var(--rc-blue-ink);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* ==================================================================
   Footer (partials/footer.php)
   ================================================================== */
.rc-footer {
  background: var(--rc-bg);
  color: var(--rc-text-muted);
  font-family: var(--rc-font-body);
  font-size: 14px;
  line-height: 1.6;
}

.rc-footer,
.rc-footer * {
  box-sizing: border-box;
}

.rc-footer__inner {
  max-width: var(--rc-container);
  margin: 0 auto;
  padding: clamp(56px, 7vw, 88px) var(--rc-gutter) 48px;
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 2fr) minmax(0, 8fr);
  gap: clamp(32px, 4vw, 56px);
}

.rc-footer a {
  color: var(--rc-text-muted);
  text-decoration: none;
  transition: color var(--rc-dur-fast) ease;
}

.rc-footer a:hover,
.rc-footer a:focus-visible {
  color: var(--rc-text);
}

/* Reversed logo (Images/logo-reversed.png: white + brand cyan) made for dark backgrounds */
.rc-footer__logo {
  display: inline-flex;
}

.rc-footer__logo img {
  display: block;
  height: 38px;
  width: auto;
}

.rc-footer__tagline {
  margin: 20px 0 0;
  max-width: 36ch;
}

.rc-footer__heading {
  margin: 0 0 14px;
  color: var(--rc-text);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.rc-footer__contact {
  display: grid;
  gap: 6px;
  margin-top: 28px;
}

.rc-footer__contact .rc-footer__heading {
  margin-bottom: 8px;
}

/* Offices row: full width, room for up to six offices (4 per row on desktop) */
.rc-footer__offices-row {
  border-top: 1px solid var(--rc-line);
}

.rc-footer__offices-inner {
  max-width: var(--rc-container);
  margin: 0 auto;
  padding: 40px var(--rc-gutter) 44px;
}

.rc-footer__offices {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px 32px;
}

.rc-footer__office-card {
  padding-left: 16px;
  border-left: 2px solid var(--rc-line-strong);
}

.rc-footer address {
  font-style: normal;
}

.rc-footer__office {
  display: block;
  margin-bottom: 4px;
  color: var(--rc-text);
  font-weight: 600;
}

.rc-footer__nav,
.rc-footer__group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.rc-footer__nav .rc-footer__heading,
.rc-footer__group .rc-footer__heading {
  margin-bottom: 6px;
}

.rc-footer__services {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 36px 32px;
}

.rc-footer__bottom {
  border-top: 1px solid var(--rc-line);
}

.rc-footer__bottom-inner {
  max-width: var(--rc-container);
  margin: 0 auto;
  padding: 20px var(--rc-gutter);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 13px;
}

.rc-footer__bottom-inner p {
  margin: 0;
}

.rc-footer__legal {
  display: flex;
  align-items: center;
  gap: 14px;
}

.rc-footer__legal span {
  width: 1px;
  height: 12px;
  background: var(--rc-line-strong);
}

/* Scroll-to-top button (visibility toggled by the footer script) */
.rc-to-top {
  z-index: 40;
  border: 1px solid var(--rc-light-line);
  border-radius: var(--rc-radius-sm);
  background: var(--rc-light);
  color: var(--rc-ink);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  cursor: pointer;
  transition: opacity var(--rc-dur) var(--rc-ease), background-color var(--rc-dur-fast) ease;
}

.rc-to-top:hover,
.rc-to-top:focus-visible {
  background: #f1f5f9;
}

.rc-to-top:focus-visible {
  outline: 2px solid var(--rc-blue);
  outline-offset: 2px;
}

@media (max-width: 1023px) {
  .rc-footer__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rc-footer__brand {
    grid-column: 1 / -1;
  }
  .rc-footer__services {
    grid-column: 1 / -1;
  }
}

@media (max-width: 1023px) {
  .rc-footer__offices {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .rc-footer__inner,
  .rc-footer__services,
  .rc-footer__offices {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .rc-footer a,
  .rc-to-top {
    transition: none;
  }
}

/* ==================================================================
   Service-page template (partials/service-page.php)
   ================================================================== */
.rc-page-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: clamp(40px, 6vw, 88px);
  align-items: start;
}

.rc-page-hero__eyebrow {
  margin-top: 28px;
}

.rc-page-hero__lead--sub {
  font-size: 16px;
}

.rc-contact-card {
  margin-top: 44px;
  padding: 28px;
  border: 1px solid var(--rc-line);
  border-radius: var(--rc-radius);
  background: var(--rc-surface);
}

.rc-contact-card__title {
  margin: 8px 0 0;
  font-family: var(--rc-font-display);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--rc-text);
}

.rc-contact-card__list {
  margin: 20px 0 0;
  border-top: 1px solid var(--rc-line);
}

.rc-contact-card__list > div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--rc-line);
  font-size: 14px;
}

.rc-contact-card__list dt {
  color: var(--rc-text-muted);
}

.rc-contact-card__list dd {
  margin: 0;
}

.rc-contact-card__list a {
  color: var(--rc-text);
  font-weight: 500;
  text-decoration: none;
}

.rc-contact-card__list a:hover,
.rc-contact-card__list a:focus-visible {
  color: var(--rc-cyan);
}

.rc-checklist--grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
  gap: 16px 40px;
}

.rc-checklist--grid li {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--rc-light-line);
}

.rc-section__note {
  margin-top: 32px;
}

.rc-h2--md {
  font-size: clamp(24px, 2.4vw, 30px);
}

@media (max-width: 1023px) {
  .rc-page-hero__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .rc-contact-card {
    margin-top: 0;
  }
}

/* ==================================================================
   About and Contact pages
   ================================================================== */
.rc-page-hero__aside {
  margin-top: 44px;
}

.rc-benefits--flush {
  margin-top: 0;
}

.rc-benefits--flush > div:first-child {
  border-top: 0;
  padding-top: 0;
}

.rc-benefits dt [data-countup] {
  color: var(--rc-cyan);
}

.rc-grid--spaced {
  margin-top: 28px;
}

.rc-tile--muted {
  background: #f8fafc;
}

.rc-tile__title--spaced {
  margin-top: 28px;
}

.rc-facts--compact {
  margin-top: 16px;
}

.rc-facts--compact .rc-fact {
  padding: 14px 0;
}

.rc-facts--compact .rc-fact dt {
  font-size: 16px;
}

.rc-h3 {
  margin: 0;
  font-family: var(--rc-font-display);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--rc-ink);
}

.rc-h3--spaced {
  margin: 36px 0 16px;
}

.rc-h3--section {
  margin: clamp(48px, 6vw, 72px) 0 20px;
}

.rc-steps h4,
.rc-steps__title {
  margin: 0;
  font-family: var(--rc-font-display);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.35;
}

.rc-checklist--sm li {
  font-size: 15px;
}

/* Dark panel placed on a light or muted band */
.rc-panel--dark-on-light .rc-checklist li,
.rc-panel .rc-checklist li {
  color: var(--rc-text-soft);
}

.rc-panel__text {
  margin: 12px 0 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--rc-text-muted);
}

.rc-panel__note {
  margin: 20px 0 0;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--rc-text-muted);
}

/* Contact hero */
.rc-page-hero__grid--form {
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
}

.rc-contact-list {
  margin: 32px 0 0;
  border-top: 1px solid var(--rc-line);
}

.rc-contact-list > div {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--rc-line);
  font-size: 15px;
  line-height: 1.55;
}

.rc-contact-list dt {
  color: var(--rc-text-muted);
}

.rc-contact-list dd {
  margin: 0;
  color: var(--rc-text-soft);
}

.rc-contact-list a {
  color: var(--rc-text);
  text-decoration: none;
}

.rc-contact-list a:hover,
.rc-contact-list a:focus-visible {
  color: var(--rc-cyan);
}

.rc-mini-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 24px;
}

.rc-mini-card {
  padding: 16px 18px;
  border: 1px solid var(--rc-line);
  border-radius: var(--rc-radius-sm);
  font-size: 14px;
  color: var(--rc-text-muted);
}

.rc-mini-card p {
  margin: 0;
}

.rc-mini-card__title {
  margin-bottom: 6px !important;
  color: var(--rc-text);
  font-weight: 600;
}

/* Contact form */
.rc-form {
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid var(--rc-line);
  border-radius: var(--rc-radius);
  background: var(--rc-surface);
}

.rc-form__title {
  margin: 0;
  font-family: var(--rc-font-display);
  font-size: 22px;
  font-weight: 600;
  color: var(--rc-text);
}

.rc-form__intro {
  margin: 8px 0 20px;
  font-size: 15px;
  color: var(--rc-text-muted);
}

.rc-form__field {
  display: block;
  margin-top: 16px;
}

.rc-form__field span {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 500;
  color: var(--rc-text-soft);
}

.rc-form__field input,
.rc-form__field textarea {
  display: block;
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--rc-line-strong);
  border-radius: var(--rc-radius-sm);
  background: var(--rc-bg);
  color: var(--rc-text);
  font: 400 15px/1.5 var(--rc-font-body);
  transition: border-color var(--rc-dur-fast) ease;
}

.rc-form__field input:focus,
.rc-form__field textarea:focus {
  outline: 2px solid var(--rc-cyan);
  outline-offset: 1px;
  border-color: transparent;
}

.rc-form__trap {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.rc-form__submit {
  width: 100%;
  margin-top: 24px;
  border: 0;
  cursor: pointer;
}

.rc-form__alert {
  margin: 0 0 8px;
  padding: 12px 14px;
  border-radius: var(--rc-radius-sm);
  font-size: 14px;
  line-height: 1.5;
}

.rc-form__alert--ok {
  border: 1px solid rgba(34, 197, 94, 0.4);
  background: rgba(34, 197, 94, 0.1);
  color: #bbf7d0;
}

.rc-form__alert--error {
  border: 1px solid rgba(248, 113, 113, 0.4);
  background: rgba(248, 113, 113, 0.1);
  color: #fecaca;
}

/* Office cards */
.rc-offices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.rc-office {
  overflow: hidden;
  border: 1px solid var(--rc-light-line);
  border-radius: var(--rc-radius);
  background: var(--rc-light);
}

.rc-office__map iframe {
  display: block;
}

.rc-office__body {
  padding: 24px 28px 28px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--rc-ink-muted);
}

.rc-office__body address {
  margin-top: 10px;
  font-style: normal;
}

.rc-office__body p {
  margin: 8px 0 0;
}

.rc-office__body a[href^="tel:"] {
  color: var(--rc-ink);
  font-weight: 500;
  text-decoration: none;
}

.rc-office__body .rc-tile__link {
  padding-top: 14px;
  text-decoration: none;
}

@media (max-width: 1023px) {
  .rc-page-hero__aside {
    margin-top: 0;
  }
  .rc-offices {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 560px) {
  .rc-mini-cards {
    grid-template-columns: minmax(0, 1fr);
  }
  .rc-contact-list > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
  }
}

.rc-lead--tight {
  margin: 0 0 28px;
}

/* ==================================================================
   Hero background photo (partials/hero.php)
   The photo sits behind a dark gradient that is near-solid under the
   text (contrast stays as before) and opens up towards the right.
   ================================================================== */
.rc-hero--media {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.rc-hero__media {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.rc-hero__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 65% center;
  animation: rc-hero-settle 1.6s var(--rc-ease) both;
}

.rc-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(11, 15, 25, 0.98) 0%, rgba(11, 15, 25, 0.96) 50%, rgba(11, 15, 25, 0.86) 64%, rgba(11, 15, 25, 0.6) 82%, rgba(11, 15, 25, 0.45) 100%),
    linear-gradient(180deg, rgba(11, 15, 25, 0.35) 0%, rgba(11, 15, 25, 0) 30%, rgba(11, 15, 25, 0) 70%, var(--rc-bg) 100%);
}

/* The programs card stays readable over the photo: near-opaque surface,
   a brighter hairline and a soft shadow to lift it off the background */
.rc-hero--media .rc-card {
  border-color: var(--rc-line-strong);
  background: rgba(17, 24, 39, 0.97);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}

/* Secondary text one step lighter over the photo (#b4bfcd: 10:1 on the hero) */
.rc-hero--media .rc-hero__lead,
.rc-hero--media .rc-stat__label,
.rc-hero--media .rc-hero__offices,
.rc-hero--media .rc-program__desc,
.rc-hero--media .rc-card__note,
.rc-hero--media .rc-card__kicker {
  color: #b4bfcd;
}

.rc-hero--media .rc-programs,
.rc-hero--media .rc-programs li,
.rc-hero--media .rc-stats,
.rc-hero--media .rc-stat {
  border-color: rgba(255, 255, 255, 0.12);
}

@keyframes rc-hero-settle {
  from {
    opacity: 0;
    transform: scale(1.04);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* Stacked layout: darker overall so text over the photo stays crisp */
@media (max-width: 1099px) {
  .rc-hero__media::after {
    background: linear-gradient(180deg, rgba(11, 15, 25, 0.9) 0%, rgba(11, 15, 25, 0.95) 45%, var(--rc-bg) 100%);
  }
}

/* ==================================================================
   Navigation hover (EC-Council style, in brand blue): the item's text
   turns blue and a 3px bar grows along the header's top edge above it.
   The current page shows the same bar. The link box is 35px tall and
   centred in the bar, so the offset below reaches the top edge.
   ================================================================== */
.rc-nav__link::after {
  top: calc((35px - var(--rc-header-h)) / 2);
  bottom: auto;
  left: 0;
  right: 0;
  height: 3px;
  border-radius: 0 0 2px 2px;
  transform-origin: center;
  transition: transform 200ms var(--rc-ease), top var(--rc-dur-header) var(--rc-ease);
}

.rc-nav__link:hover,
.rc-nav__link:focus-visible,
.rc-nav__item:hover .rc-nav__button,
.rc-nav__item:has(#services-dropdown.is-open) .rc-nav__button {
  color: var(--rc-blue-ink);
}

.rc-nav__link:hover::after,
.rc-nav__link:focus-visible::after,
.rc-nav__item:hover .rc-nav__button::after,
.rc-nav__item:has(#services-dropdown.is-open) .rc-nav__button::after {
  transform: scaleX(1);
}

/* Mega-menu links: colour shift and a 3px nudge */
.rc-mega .rc-dropdown__link {
  transition: background-color var(--rc-dur-fast) ease, color var(--rc-dur-fast) ease,
    transform var(--rc-dur-fast) var(--rc-ease);
}

.rc-mega .rc-dropdown__link:hover,
.rc-mega .rc-dropdown__link:focus-visible {
  color: var(--rc-blue-ink);
  transform: translateX(3px);
}

/* Header CTA: lift-free, just a slightly deeper blue (already set) */

@media (prefers-reduced-motion: reduce) {
  .rc-hero__media img {
    animation: none;
  }
  .rc-nav__link::after,
  .rc-mega .rc-dropdown__link {
    transition: none;
  }
  .rc-mega .rc-dropdown__link:hover,
  .rc-mega .rc-dropdown__link:focus-visible {
    transform: none;
  }
}
