/* ============================================================================
   REALCOMM GLOBAL / SITE-WIDE STYLESHEET
   v3.0 · 27 July 2026
   ----------------------------------------------------------------------------
   ONE FILE. It governs the entire site, not only the pasted blocks.

   Two layers, deliberately separated:

     GLOBAL LAYER  (sections 1 to 6)
       Applies to everything on the front end: native Elementor widgets,
       WordPress core blocks, forms, tables, anything you add later.
       Add a heading widget in six months and it will already match.

       Written with :where() so it carries ZERO specificity. It sets the
       floor and never fights anything. Any class you write beats it.

     COMPONENT LAYER  (sections 7 onward)
       Scoped under .rcg so it cannot collide with anything. This is what
       styles the page blocks you paste into HTML widgets.

   ----------------------------------------------------------------------------
   INSTALLED AT
     /wp-content/themes/hello-elementor-child/assets/stylesheet.css

     Enqueued from the child theme functions.php as handle 'rcg-styles',
     declared dependent on 'hello-elementor-child-style' so it always loads
     after it and can override it. Version is filemtime(), so saving this
     file busts the browser cache automatically.

     Do NOT also paste this into Elementor > Custom CSS. One copy only.

   ----------------------------------------------------------------------------
   TO CHANGE ANYTHING SITE-WIDE
   Edit the tokens in section 7. One value, every page.

   TWO RULES
   1. HTML widget, never Text Editor. Text Editor strips class attributes.
   2. No per-widget <style> blocks. Everything lives here.
   ============================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Jost:wght@300;400;500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');


/* ============================================================================
   1. GLOBAL BASE
   Front end only. Scoped away from wp-admin and the Elementor editor chrome.
   ============================================================================ */
:where(body:not(.wp-admin)){
  font-family:'Inter','Helvetica Neue',Arial,sans-serif;
  font-size:17px;
  line-height:1.65;
  color:#14202E;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

:where(body:not(.wp-admin) h1),
:where(body:not(.wp-admin) h2),
:where(body:not(.wp-admin) h3),
:where(body:not(.wp-admin) h4),
:where(body:not(.wp-admin) h5),
:where(body:not(.wp-admin) h6){
  font-family:'Jost','Helvetica Neue',Arial,sans-serif;
  color:#081C36;
  font-weight:600;
  line-height:1.16;
  letter-spacing:-.012em;
}
:where(body:not(.wp-admin) h1){ font-size:clamp(38px,5.4vw,60px); line-height:1.06; letter-spacing:-.025em; }
:where(body:not(.wp-admin) h2){ font-size:clamp(29px,3.5vw,42px); line-height:1.12; letter-spacing:-.02em; }
:where(body:not(.wp-admin) h3){ font-size:clamp(21px,2vw,26px);   line-height:1.25; font-weight:500; }
:where(body:not(.wp-admin) h4){ font-size:19px; font-weight:600; }
:where(body:not(.wp-admin) h5){ font-size:16px; font-weight:600; }
:where(body:not(.wp-admin) h6){
  font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:#5C6874;
}

:where(body:not(.wp-admin) a){ color:#1560A8; text-decoration:none; transition:color .2s ease; }
:where(body:not(.wp-admin) a:hover){ color:#0B3B7C; }

:where(body:not(.wp-admin) strong),
:where(body:not(.wp-admin) b){ font-weight:600; color:#081C36; }
:where(body:not(.wp-admin) em),
:where(body:not(.wp-admin) i){ font-style:italic; }
:where(body:not(.wp-admin) small){ font-size:14px; color:#5C6874; }
:where(body:not(.wp-admin) code),
:where(body:not(.wp-admin) kbd),
:where(body:not(.wp-admin) samp){
  font-family:'IBM Plex Mono',monospace; font-size:.9em;
  background:#F2F5F8; border:1px solid #DCE3EA; border-radius:2px; padding:.1em .4em;
}
:where(body:not(.wp-admin) pre){
  font-family:'IBM Plex Mono',monospace; font-size:14px; line-height:1.6;
  background:#F2F5F8; border:1px solid #DCE3EA; border-radius:3px;
  padding:20px 22px; overflow-x:auto;
}
:where(body:not(.wp-admin) hr){ border:0; height:1px; background:#DCE3EA; margin:44px 0; }

:where(body:not(.wp-admin) blockquote){
  margin:32px 0; padding:24px 30px;
  background:#F2F5F8; border-left:3px solid #2E8FD6; border-radius:0 3px 3px 0;
  font-size:17.5px; line-height:1.68; color:#25323F;
}
:where(body:not(.wp-admin) blockquote p:last-child){ margin-bottom:0; }
:where(body:not(.wp-admin) blockquote cite){
  display:block; margin-top:14px; font-style:normal;
  font-family:'IBM Plex Mono',monospace; font-size:11px;
  letter-spacing:.16em; text-transform:uppercase; color:#5C6874;
}

:where(body:not(.wp-admin) img){ max-width:100%; height:auto; }
:where(body:not(.wp-admin) figure){ margin:32px 0; }
:where(body:not(.wp-admin) figcaption){
  margin-top:12px; font-size:14px; line-height:1.55; color:#5C6874;
}

::selection{ background:#2E8FD6; color:#fff; }
::-moz-selection{ background:#2E8FD6; color:#fff; }

html{ scroll-behavior:smooth; scroll-padding-top:104px; }


/* ============================================================================
   2. LISTS AND TABLES  (content areas only, never navigation)
   ============================================================================ */
:where(.entry-content ul, .entry-content ol,
.elementor-widget-text-editor ul, .elementor-widget-text-editor ol){
  margin:0 0 1.05em 1.15em; padding:0;
}
:where(.entry-content li, .elementor-widget-text-editor li){ margin-bottom:.5em; }
:where(.entry-content ul li, .elementor-widget-text-editor ul li)::marker{ color:#2E8FD6; }

:where(body:not(.wp-admin) table){
  width:100%; border-collapse:collapse; margin:30px 0; font-size:16px;
}
:where(body:not(.wp-admin) th){
  text-align:left; padding:13px 16px;
  border-bottom:2px solid #0B3B7C;
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:#5C6874;
}
:where(body:not(.wp-admin) td){ padding:13px 16px; border-bottom:1px solid #DCE3EA; }
:where(body:not(.wp-admin) tbody tr:hover){ background:#F2F5F8; }


/* ============================================================================
   3. NATIVE ELEMENTOR AND WORDPRESS BUTTONS
   Anything you add later inherits the brand automatically.
   ============================================================================ */
.elementor-button,
.wp-block-button__link,
body:not(.wp-admin) input[type="submit"],
body:not(.wp-admin) button[type="submit"]{
  font-family:'Jost',sans-serif !important;
  font-size:14px !important; font-weight:600 !important;
  letter-spacing:.09em !important; text-transform:uppercase !important;
  line-height:1 !important;
  padding:15px 30px !important;
  border-radius:2px !important;
  border:1.5px solid #0B3B7C !important;
  background:#0B3B7C !important; color:#fff !important;
  transition:background .22s ease,border-color .22s ease,transform .22s ease !important;
}
.elementor-button:hover,
.wp-block-button__link:hover,
body:not(.wp-admin) input[type="submit"]:hover,
body:not(.wp-admin) button[type="submit"]:hover{
  background:#081C36 !important; border-color:#081C36 !important;
  color:#fff !important; transform:translateY(-1px);
}
.elementor-button.rcg-ghost,
.wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent !important; color:#0B3B7C !important; border-color:#DCE3EA !important;
}
.elementor-button.rcg-ghost:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover{
  border-color:#0B3B7C !important; background:transparent !important; color:#0B3B7C !important;
}


/* ============================================================================
   4. FORMS
   Covers Elementor Forms, Contact Form 7, Gravity, WPForms, core blocks.
   ============================================================================ */
:where(body:not(.wp-admin)) :where(
  input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
  input[type="number"], input[type="search"], input[type="password"], select, textarea){
  font-family:'Inter',sans-serif; font-size:16px; line-height:1.5;
  color:#14202E; background:#fff;
  border:1px solid #DCE3EA; border-radius:2px;
  padding:13px 15px; width:100%;
  transition:border-color .2s ease, box-shadow .2s ease;
}
:where(body:not(.wp-admin)) :where(input, select, textarea):focus{
  outline:none; border-color:#2E8FD6;
  box-shadow:0 0 0 3px rgba(46,143,214,.16);
}
:where(body:not(.wp-admin)) :where(input, textarea)::placeholder{ color:#9AA6B2; }
:where(body:not(.wp-admin)) :where(label){
  display:block; margin-bottom:7px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:#5C6874;
}
:where(body:not(.wp-admin)) :where(textarea){ min-height:150px; resize:vertical; }


/* ============================================================================
   5. ACCESSIBILITY
   ============================================================================ */
body:not(.wp-admin) a:focus-visible,
body:not(.wp-admin) button:focus-visible,
body:not(.wp-admin) input:focus-visible,
body:not(.wp-admin) select:focus-visible,
body:not(.wp-admin) textarea:focus-visible,
body:not(.wp-admin) [tabindex]:focus-visible{
  outline:2px solid #2E8FD6; outline-offset:3px; border-radius:2px;
}
.rcg-skip-link{
  position:absolute; left:-9999px; top:0; z-index:9999;
  background:#0B3B7C; color:#fff; padding:12px 20px;
  font-family:'Jost',sans-serif; font-size:14px; letter-spacing:.08em; text-transform:uppercase;
}
.rcg-skip-link:focus{ left:12px; top:12px; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
}


/* ============================================================================
   6. UTILITIES
   Small helpers, usable on any element anywhere on the site.
   ============================================================================ */
.rcg-u-center{ text-align:center; }
.rcg-u-right{ text-align:right; }
.rcg-u-narrow{ max-width:720px; }
.rcg-u-narrow-center{ max-width:720px; margin-left:auto; margin-right:auto; }
.rcg-u-nowrap{ white-space:nowrap; }
.rcg-u-caps{ text-transform:uppercase; letter-spacing:.12em; }
.rcg-u-mono{ font-family:'IBM Plex Mono',monospace; }
.rcg-u-hide{ display:none !important; }
.rcg-u-sr{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.rcg-u-mt-0{ margin-top:0 !important; }
.rcg-u-mt-1{ margin-top:12px !important; }
.rcg-u-mt-2{ margin-top:24px !important; }
.rcg-u-mt-3{ margin-top:40px !important; }
.rcg-u-mt-4{ margin-top:64px !important; }
.rcg-u-mb-0{ margin-bottom:0 !important; }
.rcg-u-mb-1{ margin-bottom:12px !important; }
.rcg-u-mb-2{ margin-bottom:24px !important; }
.rcg-u-mb-3{ margin-bottom:40px !important; }
@media (max-width:768px){
  .rcg-u-hide-mobile{ display:none !important; }
}
@media (min-width:769px){
  .rcg-u-hide-desktop{ display:none !important; }
}


/* ------------------------------------------------------------
   7. DESIGN TOKENS
   ------------------------------------------------------------ */
:root{
  /* brand colour, sampled from the logo artwork */
  --rcg-navy-deep : #081C36;   /* darkest ground, hero fields          */
  --rcg-navy      : #0B3B7C;   /* primary brand blue, headings         */
  --rcg-blue      : #1560A8;   /* mid blue                             */
  --rcg-bright    : #2E8FD6;   /* accent, links, rules                 */
  --rcg-cyan      : #58BEEE;   /* highlight, waveform, on-dark accents */
  --rcg-steel     : #5C6874;   /* secondary text, the silver arc       */
  --rcg-line      : #DCE3EA;   /* hairlines                            */
  --rcg-mist      : #F2F5F8;   /* section tint                         */
  --rcg-paper     : #FFFFFF;
  --rcg-ink       : #14202E;   /* body text                            */

  /* on-dark */
  --rcg-on-dark        : #EAF1F8;
  --rcg-on-dark-soft   : #9DB3CC;
  --rcg-on-dark-line   : rgba(255,255,255,.14);

  /* type */
  --rcg-display : 'Jost', 'Helvetica Neue', Arial, sans-serif;
  --rcg-body    : 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --rcg-mono    : 'IBM Plex Mono', 'SFMono-Regular', Menlo, monospace;

  /* rhythm */
  --rcg-max     : 1180px;
  --rcg-narrow  : 780px;
  --rcg-gut     : 28px;
  --rcg-sec     : 104px;   /* vertical section padding */
}

/* ------------------------------------------------------------
   8. SCOPED RESET  (everything lives under .rcg)
   ------------------------------------------------------------ */
.rcg, .rcg *, .rcg *::before, .rcg *::after{ box-sizing:border-box; }
.rcg{
  font-family:var(--rcg-body);
  color:var(--rcg-ink);
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.rcg p{ margin:0 0 1.05em; }
.rcg p:last-child{ margin-bottom:0; }
.rcg img{ max-width:100%; height:auto; display:block; }
.rcg a{ color:var(--rcg-blue); text-decoration:none; }
.rcg a:hover{ color:var(--rcg-navy); }
.rcg ul,.rcg ol{ margin:0; padding:0; }
.rcg h1,.rcg h2,.rcg h3,.rcg h4,.rcg h5,.rcg h6{
  font-family:var(--rcg-display);
  color:var(--rcg-navy-deep);
  margin:0; font-weight:600; line-height:1.16; letter-spacing:-.012em;
}

/* ------------------------------------------------------------
   9. LAYOUT PRIMITIVES
   ------------------------------------------------------------ */
.rcg-wrap{ width:100%; max-width:var(--rcg-max); margin:0 auto; padding:0 var(--rcg-gut); }
.rcg-wrap--narrow{ max-width:var(--rcg-narrow); }
.rcg-section{ padding:var(--rcg-sec) 0; }
.rcg-section--tight{ padding:68px 0; }
.rcg-section--mist{ background:var(--rcg-mist); }
.rcg-section--dark{ background:var(--rcg-navy-deep); }

/* the brand rule: the logo's blue spectrum, left to right */
.rcg-rule{
  height:3px; width:100%; border:0; margin:0;
  background:linear-gradient(90deg,
    var(--rcg-navy-deep) 0%, var(--rcg-navy) 26%,
    var(--rcg-blue) 52%, var(--rcg-bright) 74%, var(--rcg-cyan) 100%);
}
.rcg-rule--short{ width:56px; height:3px; }
.rcg-hair{ height:1px; background:var(--rcg-line); border:0; margin:0; }

/* ------------------------------------------------------------
   10. TYPE COMPONENTS
   ------------------------------------------------------------ */
.rcg-eyebrow{
  font-family:var(--rcg-mono);
  font-size:11px; font-weight:500;
  text-transform:uppercase; letter-spacing:.22em;
  color:var(--rcg-bright);
  display:flex; align-items:center; gap:12px;
  margin:0 0 22px;
}
.rcg-eyebrow::before{
  content:""; width:26px; height:2px; background:var(--rcg-bright); flex:none;
}
.rcg-eyebrow--center{ justify-content:center; }

.rcg-h1{ font-size:clamp(38px,5.4vw,66px); line-height:1.06; letter-spacing:-.025em; font-weight:600; }
.rcg-h2{ font-size:clamp(29px,3.5vw,44px); line-height:1.12; letter-spacing:-.02em; }
.rcg-h3{ font-size:clamp(21px,2vw,26px); line-height:1.25; letter-spacing:-.012em; }
.rcg-h4{ font-size:18px; line-height:1.35; font-weight:600; }

.rcg-lead{ font-size:clamp(17px,1.35vw,20.5px); line-height:1.62; color:#33414F; }
.rcg-small{ font-size:15px; line-height:1.6; color:var(--rcg-steel); }

.rcg-mono{
  font-family:var(--rcg-mono); font-size:12px; font-weight:500;
  letter-spacing:.12em; text-transform:uppercase; color:var(--rcg-steel);
}
.rcg-em{ color:var(--rcg-navy); font-weight:600; }

/* on-dark modifier: add to any dark container */
.rcg-on-dark, .rcg-on-dark p{ color:var(--rcg-on-dark); }
.rcg-on-dark h1,.rcg-on-dark h2,.rcg-on-dark h3,.rcg-on-dark h4{ color:#fff; }
.rcg-on-dark .rcg-lead{ color:var(--rcg-on-dark-soft); }
.rcg-on-dark .rcg-eyebrow{ color:var(--rcg-cyan); }
.rcg-on-dark .rcg-eyebrow::before{ background:var(--rcg-cyan); }
.rcg-on-dark .rcg-small{ color:var(--rcg-on-dark-soft); }
.rcg-on-dark .rcg-mono{ color:var(--rcg-on-dark-soft); }
.rcg-on-dark a{ color:var(--rcg-cyan); }

/* ------------------------------------------------------------
   11. BUTTONS
   ------------------------------------------------------------ */
.rcg-btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--rcg-display); font-size:14px; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase;
  padding:15px 30px; border-radius:2px; border:1.5px solid transparent;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
  cursor:pointer; line-height:1;
}
.rcg-btn:hover{ transform:translateY(-1px); }
.rcg-btn--primary{ background:var(--rcg-navy); color:#fff !important; border-color:var(--rcg-navy); }
.rcg-btn--primary:hover{ background:var(--rcg-navy-deep); border-color:var(--rcg-navy-deep); color:#fff !important; }
.rcg-btn--ghost{ background:transparent; color:var(--rcg-navy) !important; border-color:var(--rcg-line); }
.rcg-btn--ghost:hover{ border-color:var(--rcg-navy); color:var(--rcg-navy) !important; }
.rcg-on-dark .rcg-btn--ghost{ color:#fff !important; border-color:var(--rcg-on-dark-line); }
.rcg-on-dark .rcg-btn--ghost:hover{ border-color:var(--rcg-cyan); color:var(--rcg-cyan) !important; }
.rcg-btn .ar{ font-size:16px; line-height:1; transition:transform .22s ease; }
.rcg-btn:hover .ar{ transform:translateX(3px); }

/* text link with underline reveal */
.rcg-link{
  font-family:var(--rcg-display); font-weight:600; font-size:14px;
  letter-spacing:.09em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:9px;
  color:var(--rcg-blue); padding-bottom:3px;
  border-bottom:1.5px solid var(--rcg-line);
  transition:border-color .22s ease,color .22s ease;
}
.rcg-link:hover{ border-color:var(--rcg-bright); color:var(--rcg-navy); }
.rcg-on-dark .rcg-link{ color:var(--rcg-cyan); border-color:var(--rcg-on-dark-line); }
.rcg-on-dark .rcg-link:hover{ border-color:var(--rcg-cyan); color:#fff; }

/* ============================================================
   12. HEADER
   ============================================================ */
.rcg-header{
  position:sticky; top:0; z-index:900;
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--rcg-line);
}
.rcg-header__bar{
  display:flex; align-items:center; justify-content:space-between;
  gap:32px; height:88px;
}
.rcg-header__logo{ flex:0 0 auto; }
.rcg-header__logo img{ height:52px; width:auto; max-width:none; }
.rcg-nav{ display:flex; align-items:center; gap:26px; flex:1 1 auto; justify-content:center; }
.rcg-nav a{
  font-family:var(--rcg-display); font-size:13px; font-weight:500; white-space:nowrap;
  letter-spacing:.11em; text-transform:uppercase;
  color:var(--rcg-navy-deep); position:relative; padding:6px 0;
}
.rcg-nav a::before{
  content:""; position:absolute; top:-3px; left:0; right:0; height:2px;
  background:var(--rcg-bright); transform:scaleX(0); transform-origin:left;
  transition:transform .24s ease;
}
.rcg-nav a:hover{ color:var(--rcg-navy-deep); }
.rcg-nav a:hover::before, .rcg-nav a.is-current::before{ transform:scaleX(1); }
.rcg-header__cta{ display:flex; align-items:center; gap:18px; flex:0 0 auto; }
.rcg-header__cta .rcg-btn{ padding:12px 22px; font-size:12.5px; }

/* mobile toggle (pure CSS, no JS) */
.rcg-burger{ display:none; }
.rcg-burger__box{
  display:none; width:44px; height:44px; align-items:center; justify-content:center;
  border:1px solid var(--rcg-line); border-radius:2px; cursor:pointer; background:#fff;
}
.rcg-burger__box span{ display:block; width:20px; height:1.5px; background:var(--rcg-navy-deep); position:relative; }
.rcg-burger__box span::before,.rcg-burger__box span::after{
  content:""; position:absolute; left:0; width:20px; height:1.5px; background:var(--rcg-navy-deep);
}
.rcg-burger__box span::before{ top:-6px; } .rcg-burger__box span::after{ top:6px; }

/* ============================================================
   13. HERO
   ============================================================ */
.rcg-hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(1100px 620px at 78% 18%, rgba(46,143,214,.30) 0%, rgba(8,28,54,0) 62%),
    radial-gradient(760px 520px at 8% 92%, rgba(21,96,168,.30) 0%, rgba(8,28,54,0) 60%),
    linear-gradient(160deg,#0A2445 0%,var(--rcg-navy-deep) 55%,#04101F 100%);
  padding:132px 0 118px;
}
.rcg-hero::after{  /* fine technical grid, barely there */
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(circle at 50% 40%, #000 0%, transparent 78%);
  -webkit-mask-image:radial-gradient(circle at 50% 40%, #000 0%, transparent 78%);
}
.rcg-hero__inner{ position:relative; z-index:2; max-width:900px; }
.rcg-hero .rcg-h1{ color:#fff; }
.rcg .rcg-hero__sub{ margin-top:28px; max-width:640px; }
.rcg-hero__actions{ margin-top:40px; display:flex; flex-wrap:wrap; gap:16px; }

/* waveform band along the bottom of the hero */
.rcg-wave{
  position:absolute; left:0; right:0; bottom:0; height:180px; z-index:1;
  display:flex; align-items:flex-end; justify-content:space-between; gap:3px;
  padding:0 3%; opacity:.55; pointer-events:none;
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.rcg-wave i{
  display:block; flex:1 1 0; min-width:2px; max-width:9px; border-radius:2px;
  background:linear-gradient(180deg,var(--rcg-cyan),rgba(46,143,214,.15));
  animation:rcg-pulse 3.4s ease-in-out infinite;
}
@keyframes rcg-pulse{ 0%,100%{ transform:scaleY(.42);} 50%{ transform:scaleY(1);} }
.rcg-wave i{ transform-origin:bottom; }
@media (prefers-reduced-motion:reduce){ .rcg-wave i{ animation:none; } }

/* page hero: smaller, for interior pages */
.rcg-phero{
  background:linear-gradient(150deg,#0A2445 0%,var(--rcg-navy-deep) 70%,#04101F 100%);
  padding:96px 0 84px; position:relative; overflow:hidden;
}
.rcg-phero::after{
  content:""; position:absolute; right:-140px; top:-140px; width:520px; height:520px;
  border-radius:50%; border:1px solid rgba(88,190,238,.16);
  box-shadow:0 0 0 60px rgba(88,190,238,.04);
}
.rcg-phero__inner{ position:relative; z-index:2; max-width:760px; }
.rcg-phero .rcg-lead{ margin-top:22px; }

/* ============================================================
   14. FACT STRIP
   ============================================================ */
.rcg-facts{ background:var(--rcg-navy-deep); border-top:1px solid rgba(255,255,255,.07); }
.rcg-facts__grid{
  display:grid; grid-template-columns:repeat(4,1fr);
  border-left:1px solid var(--rcg-on-dark-line);
}
.rcg-facts__item{
  padding:34px 26px; border-right:1px solid var(--rcg-on-dark-line);
}
.rcg-facts__n{
  font-family:var(--rcg-display); font-size:clamp(24px,2.4vw,32px);
  font-weight:600; color:#fff; line-height:1; letter-spacing:-.01em;
}
.rcg-facts__l{
  font-family:var(--rcg-mono); font-size:10.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--rcg-on-dark-soft); margin-top:12px; line-height:1.5;
}

/* ============================================================
   15. GRIDS & CARDS
   ============================================================ */
.rcg-grid{ display:grid; gap:28px; }
.rcg-grid--2{ grid-template-columns:repeat(2,1fr); }
.rcg-grid--3{ grid-template-columns:repeat(3,1fr); }
.rcg-grid--4{ grid-template-columns:repeat(4,1fr); }

/* split: sticky heading left, content right */
.rcg-split{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:72px; align-items:start; }
.rcg-split__aside{ position:sticky; top:118px; }

.rcg-card{
  background:#fff; border:1px solid var(--rcg-line); border-radius:3px;
  padding:38px 34px; position:relative;
  transition:border-color .24s ease, box-shadow .24s ease, transform .24s ease;
}
.rcg-card::before{
  content:""; position:absolute; left:0; top:0; height:3px; width:100%;
  background:linear-gradient(90deg,var(--rcg-navy),var(--rcg-bright),var(--rcg-cyan));
  transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.rcg-card:hover{ border-color:#C2D0DE; box-shadow:0 14px 36px -22px rgba(11,59,124,.42); transform:translateY(-2px); }
.rcg-card:hover::before{ transform:scaleX(1); }
.rcg-card__no{
  font-family:var(--rcg-mono); font-size:11px; font-weight:600;
  letter-spacing:.14em; color:var(--rcg-bright); margin-bottom:18px; display:block;
}
.rcg-card .rcg-h4{ margin-bottom:12px; }
.rcg-card p{ font-size:15.5px; line-height:1.62; color:#3D4B59; }

/* research-question card: the question is the headline */
.rcg-qcard .q{
  font-family:var(--rcg-display); font-size:20px; font-weight:500; line-height:1.32;
  color:var(--rcg-navy-deep); letter-spacing:-.008em; margin-bottom:14px;
}
.rcg-qcard .q::before{ content:"“"; color:var(--rcg-bright); }
.rcg-qcard .q::after{ content:"”"; color:var(--rcg-bright); }

/* ============================================================
   16. RECORD LIST  (patent data, filings, facts)
   ============================================================ */
.rcg-record{ border-top:1px solid var(--rcg-line); }
.rcg-record__row{
  display:grid; grid-template-columns:210px 1fr; gap:24px;
  padding:17px 0; border-bottom:1px solid var(--rcg-line); align-items:baseline;
}
.rcg-record__k{
  font-family:var(--rcg-mono); font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--rcg-steel);
}
.rcg-record__v{ font-size:16.5px; color:var(--rcg-ink); }
.rcg-record__v strong{ color:var(--rcg-navy-deep); font-weight:600; }
.rcg-record__v .num{ font-family:var(--rcg-mono); font-weight:500; color:var(--rcg-navy); letter-spacing:.01em; }
.rcg-on-dark .rcg-record,.rcg-on-dark .rcg-record__row{ border-color:var(--rcg-on-dark-line); }
.rcg-on-dark .rcg-record__v{ color:var(--rcg-on-dark); }
.rcg-on-dark .rcg-record__v strong{ color:#fff; }
.rcg-on-dark .rcg-record__v .num{ color:var(--rcg-cyan); }

/* ============================================================
   17. CLAIM BLOCK
   ============================================================ */
.rcg-claim{
  border-left:3px solid var(--rcg-bright);
  background:var(--rcg-mist);
  padding:32px 36px; border-radius:0 3px 3px 0;
}
.rcg-claim__src{
  font-family:var(--rcg-mono); font-size:10.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--rcg-steel); margin-bottom:16px;
}
.rcg-claim__t{ font-size:17.5px; line-height:1.68; color:#25323F; }
.rcg-on-dark .rcg-claim{ background:rgba(255,255,255,.045); border-left-color:var(--rcg-cyan); }
.rcg-on-dark .rcg-claim__t{ color:var(--rcg-on-dark); }

/* ============================================================
   18. TIMELINE
   ============================================================ */
.rcg-time{ position:relative; padding-left:34px; }
.rcg-time::before{
  content:""; position:absolute; left:5px; top:8px; bottom:8px; width:1px;
  background:linear-gradient(180deg,var(--rcg-bright),var(--rcg-line));
}
.rcg-time__i{ position:relative; padding-bottom:42px; }
.rcg-time__i:last-child{ padding-bottom:0; }
.rcg-time__i::before{
  content:""; position:absolute; left:-34px; top:7px; width:11px; height:11px;
  border-radius:50%; background:#fff; border:2.5px solid var(--rcg-bright);
}
.rcg-time__i--muted::before{ border-color:var(--rcg-line); }
.rcg-time__y{
  font-family:var(--rcg-mono); font-size:12px; font-weight:600;
  letter-spacing:.14em; color:var(--rcg-bright); margin-bottom:8px;
}
.rcg-time__i--muted .rcg-time__y{ color:var(--rcg-steel); }
.rcg-time__h{ font-family:var(--rcg-display); font-size:19px; font-weight:600; color:var(--rcg-navy-deep); margin-bottom:7px; }
.rcg-time__p{ font-size:15.5px; line-height:1.62; color:#3D4B59; }
.rcg-on-dark .rcg-time__i::before{ background:var(--rcg-navy-deep); }
.rcg-on-dark .rcg-time__h{ color:#fff; }
.rcg-on-dark .rcg-time__p{ color:var(--rcg-on-dark-soft); }
.rcg-on-dark .rcg-time::before{ background:linear-gradient(180deg,var(--rcg-cyan),rgba(255,255,255,.12)); }

/* ============================================================
   19. DISCLOSURE TABLE  (published / held)
   ============================================================ */
.rcg-disc{ display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--rcg-line); border-radius:3px; overflow:hidden; }
.rcg-disc__col{ padding:38px 34px; }
.rcg-disc__col + .rcg-disc__col{ border-left:1px solid var(--rcg-line); background:var(--rcg-mist); }
.rcg-disc__h{
  font-family:var(--rcg-mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  display:flex; align-items:center; gap:10px; margin-bottom:22px; font-weight:600;
}
.rcg-disc__col:first-child .rcg-disc__h{ color:var(--rcg-bright); }
.rcg-disc__col:last-child  .rcg-disc__h{ color:var(--rcg-steel); }
.rcg-disc ul{ list-style:none; }
.rcg-disc li{
  position:relative; padding-left:24px; margin-bottom:13px;
  font-size:15.5px; line-height:1.55; color:#3D4B59;
}
.rcg-disc li:last-child{ margin-bottom:0; }
.rcg-disc__col:first-child li::before{
  content:""; position:absolute; left:0; top:.55em; width:9px; height:2px; background:var(--rcg-bright);
}
.rcg-disc__col:last-child li::before{
  content:""; position:absolute; left:0; top:.42em; width:9px; height:9px;
  border:1.5px solid var(--rcg-steel); border-radius:1px;
}

/* ============================================================
   20. CTA BAND
   ============================================================ */
.rcg-cta{
  background:linear-gradient(120deg,var(--rcg-navy) 0%,var(--rcg-navy-deep) 62%,#04101F 100%);
  padding:80px 0; position:relative; overflow:hidden;
}
.rcg-cta__inner{ display:flex; align-items:center; justify-content:space-between; gap:48px; flex-wrap:wrap; position:relative; z-index:2; }
.rcg-cta__t{ max-width:600px; }

/* ============================================================
   21. FOOTER
   ============================================================ */
.rcg-footer{ background:var(--rcg-navy-deep); padding:74px 0 0; }
.rcg-footer__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:48px; padding-bottom:56px; }
.rcg-footer__logo img{ height:64px; width:auto; margin-bottom:22px; }
.rcg-footer__blurb{ font-size:15px; line-height:1.62; color:var(--rcg-on-dark-soft); max-width:330px; }
.rcg-footer__h{
  font-family:var(--rcg-mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--rcg-cyan); margin-bottom:20px; font-weight:600;
}
.rcg-footer ul{ list-style:none; }
.rcg-footer li{ margin-bottom:11px; }
.rcg-footer li a, .rcg-footer address{
  font-size:15px; color:var(--rcg-on-dark-soft); font-style:normal; line-height:1.7;
  transition:color .2s ease;
}
.rcg-footer li a:hover{ color:#fff; }
.rcg-footer__bottom{
  border-top:1px solid var(--rcg-on-dark-line); padding:24px 0 30px;
  display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;
}
.rcg-footer__legal{
  font-family:var(--rcg-mono); font-size:10.5px; letter-spacing:.11em;
  text-transform:uppercase; color:#6E8199; line-height:1.9;
}
.rcg-footer__legal .dot{ color:var(--rcg-bright); }
.rcg-social{ display:flex; gap:12px; }
.rcg-social a{
  width:36px; height:36px; border:1px solid var(--rcg-on-dark-line); border-radius:2px;
  display:flex; align-items:center; justify-content:center;
  color:var(--rcg-on-dark-soft); transition:all .22s ease;
}
.rcg-social a:hover{ border-color:var(--rcg-cyan); color:var(--rcg-cyan); }
.rcg-social svg{ width:16px; height:16px; fill:currentColor; }

/* ============================================================
   22. RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  :root{ --rcg-sec:78px; }
  .rcg-split{ grid-template-columns:1fr; gap:40px; }
  .rcg-split__aside{ position:static; }
  .rcg-grid--4{ grid-template-columns:repeat(2,1fr); }
  .rcg-grid--3{ grid-template-columns:repeat(2,1fr); }
  .rcg-facts__grid{ grid-template-columns:repeat(2,1fr); }
  .rcg-facts__item{ border-bottom:1px solid var(--rcg-on-dark-line); }
  .rcg-footer__top{ grid-template-columns:1fr 1fr; gap:40px; }
}
@media (max-width:768px){
  :root{ --rcg-sec:62px; --rcg-gut:22px; }
  .rcg{ font-size:16px; }
  .rcg-header__bar{ height:74px; }
  .rcg-header__logo img{ height:42px; }
  .rcg-nav, .rcg-header__cta{ display:none; }
  .rcg-burger__box{ display:flex; }
  .rcg-burger:checked ~ .rcg-nav{
    display:flex; flex-direction:column; align-items:flex-start; gap:0;
    position:absolute; top:100%; left:0; right:0; background:#fff;
    border-bottom:1px solid var(--rcg-line); padding:8px 22px 20px;
  }
  .rcg-burger:checked ~ .rcg-nav a{ padding:14px 0; width:100%; border-bottom:1px solid var(--rcg-line); }
  .rcg-burger:checked ~ .rcg-nav a::before{ display:none; }
  .rcg-hero{ padding:82px 0 96px; }
  .rcg-wave{ height:120px; opacity:.38; }
  .rcg-phero{ padding:64px 0 56px; }
  .rcg-grid--2,.rcg-grid--3,.rcg-grid--4{ grid-template-columns:1fr; }
  .rcg-facts__grid{ grid-template-columns:1fr; border-left:0; }
  .rcg-facts__item{ border-right:0; padding:26px 0; }
  .rcg-record__row{ grid-template-columns:1fr; gap:6px; padding:15px 0; }
  .rcg-disc{ grid-template-columns:1fr; }
  .rcg-disc__col + .rcg-disc__col{ border-left:0; border-top:1px solid var(--rcg-line); }
  .rcg-card{ padding:30px 26px; }
  .rcg-claim{ padding:26px 24px; }
  .rcg-cta__inner{ flex-direction:column; align-items:flex-start; gap:28px; }
  .rcg-footer__top{ grid-template-columns:1fr; gap:34px; }
  .rcg-btn{ padding:14px 24px; font-size:13px; }
}

/* ============================================================
   23. PULL QUOTE
   Large, centered, the one line the site is willing to shout.
   ============================================================ */
.rcg-pull{ padding:118px 0; background:var(--rcg-paper); }
.rcg-pull--dark{ background:var(--rcg-navy-deep); }
.rcg-pull__inner{ max-width:960px; margin:0 auto; text-align:center; padding:0 var(--rcg-gut); }
.rcg-pull__mark{
  width:38px; height:3px; margin:0 auto 34px;
  background:linear-gradient(90deg,var(--rcg-navy),var(--rcg-bright),var(--rcg-cyan));
}
.rcg-pull__q{
  font-family:var(--rcg-display);
  font-size:clamp(28px,4.2vw,52px); line-height:1.16; letter-spacing:-.022em;
  font-weight:500; color:var(--rcg-navy-deep);
}
.rcg-pull--dark .rcg-pull__q{ color:#fff; }
.rcg-pull__attr{
  margin-top:30px;
  font-family:var(--rcg-mono); font-size:11px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--rcg-steel);
}
.rcg-pull--dark .rcg-pull__attr{ color:var(--rcg-on-dark-soft); }

/* ============================================================
   24. MISSION BAND
   ============================================================ */
.rcg-mission{ padding:96px 0; background:var(--rcg-mist); border-top:1px solid var(--rcg-line); }
.rcg-mission__inner{ max-width:900px; margin:0 auto; padding:0 var(--rcg-gut); text-align:center; }
.rcg-mission__t{
  font-family:var(--rcg-display); font-weight:400;
  font-size:clamp(21px,2.3vw,30px); line-height:1.46; letter-spacing:-.01em;
  color:var(--rcg-navy-deep);
}
.rcg-mission__t strong{ font-weight:600; color:var(--rcg-navy); }

/* ============================================================
   25. IP STRIP
   The credibility anchor on the home page, not the full record.
   ============================================================ */
.rcg-ip{
  display:grid; grid-template-columns:1.15fr 1fr; gap:56px; align-items:center;
  border:1px solid var(--rcg-on-dark-line); border-radius:3px; padding:44px 46px;
  background:rgba(255,255,255,.035);
}
.rcg-ip__no{
  font-family:var(--rcg-mono); font-size:clamp(24px,3vw,38px); font-weight:500;
  color:#fff; letter-spacing:.01em; line-height:1.1;
}
.rcg-ip__t{ margin-top:16px; font-size:17px; line-height:1.5; color:var(--rcg-on-dark); }
.rcg-ip__meta{ display:grid; gap:16px; }
.rcg-ip__row{ display:grid; grid-template-columns:110px 1fr; gap:16px; align-items:baseline; }
.rcg-ip__k{
  font-family:var(--rcg-mono); font-size:10.5px; letter-spacing:.15em;
  text-transform:uppercase; color:var(--rcg-on-dark-soft);
}
.rcg-ip__v{ font-size:15.5px; color:#fff; line-height:1.45; }

/* ============================================================
   26. COMPACT RESEARCH CARD
   ============================================================ */
.rcg-rcard{ padding:34px 30px 32px; }
.rcg-rcard__k{
  font-family:var(--rcg-mono); font-size:10.5px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--rcg-bright);
  display:block; margin-bottom:16px;
}
.rcg-rcard__q{
  font-family:var(--rcg-display); font-size:19.5px; font-weight:500; line-height:1.3;
  color:var(--rcg-navy-deep); letter-spacing:-.008em; margin-bottom:12px;
}
.rcg-rcard p{ font-size:15px; line-height:1.6; color:#4A5765; }

@media (max-width:1024px){
  .rcg-ip{ grid-template-columns:1fr; gap:34px; padding:36px 32px; }
}
@media (max-width:768px){
  .rcg-pull{ padding:74px 0; }
  .rcg-mission{ padding:64px 0; }
  .rcg-ip__row{ grid-template-columns:1fr; gap:4px; }
}

/* light variant of the IP strip, for use on paper/mist sections */
.rcg-ip--light{
  background:#fff; border-color:var(--rcg-line);
  box-shadow:0 18px 44px -34px rgba(11,59,124,.45);
}
.rcg-ip--light .rcg-ip__no{ color:var(--rcg-navy); }
.rcg-ip--light .rcg-ip__t{ color:#3D4B59; }
.rcg-ip--light .rcg-ip__k{ color:var(--rcg-steel); }
.rcg-ip--light .rcg-ip__v{ color:var(--rcg-navy-deep); }

/* emphasis on dark grounds must not use the navy token, it disappears */
.rcg-on-dark .rcg-em{ color:var(--rcg-cyan); font-weight:600; }

/* ============================================================
   27. FOOTER LOGO KNOCKOUT
   The footer sits on navy, so it needs a white logo. Rather than
   requiring a second upload, this knocks the normal logo to pure
   white. Works on any PNG with a transparent background.
   If you later upload a true white-knockout PNG, swap the src and
   delete this rule.
   ============================================================ */
.rcg-footer__logo img{ filter:brightness(0) invert(1); opacity:.94; }


/* ============================================================================
   28. PRINT
   Someone will print the Patent page for a meeting. Make it read well.
   ============================================================================ */
@media print{
  .rcg-header, .rcg-footer, .rcg-cta, .rcg-wave, .rcg-burger__box{ display:none !important; }
  body:not(.wp-admin){ font-size:11pt; color:#000; background:#fff; }
  .rcg-section, .rcg-section--tight{ padding:18pt 0 !important; }
  .rcg-section--dark, .rcg-hero, .rcg-phero, .rcg-pull--dark{
    background:#fff !important; color:#000 !important;
  }
  .rcg-on-dark, .rcg-on-dark p, .rcg-on-dark h1, .rcg-on-dark h2,
  .rcg-on-dark h3, .rcg-on-dark h4, .rcg-on-dark .rcg-lead,
  .rcg-on-dark .rcg-record__v{ color:#000 !important; }
  .rcg-split{ grid-template-columns:1fr !important; gap:14pt !important; }
  .rcg-card, .rcg-claim, .rcg-disc{ break-inside:avoid; }
  .rcg-time__i{ break-inside:avoid; }
  a[href^="http"]::after{
    content:" (" attr(href) ")"; font-size:8pt; color:#555; word-break:break-all;
  }
  a[href^="/"]::after, a[href^="#"]::after, a[href^="mailto"]::after{ content:""; }
}


/* ============================================================================
   END OF FILE

   Changing a colour site-wide:  edit the token in section 7, once.
   Adding a page:                wrap markup in <section class="rcg ...">.
   Adding a native widget:       it already inherits from sections 1 to 4.
   ============================================================================ */