.elementor-kit-6{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS */@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Hanken+Grotesk:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

/* Raincoat Systems — Navy Monolith design system (site-wide). Wrap a page's root container in class "rcs-home". */

.rcs-home{
  --ink:#0E1A2B; --ink-2:#13233a; --ink-3:#1b2f4d; --yellow:#FFC83D;
  --paper:#F6F4EE; --slate:#5E6E86; --slate-light:#9aa8bd; --line:rgba(255,255,255,.08);
  --rcs-display:"Space Grotesk",sans-serif; --body:"Hanken Grotesk",sans-serif; --mono:"JetBrains Mono",monospace;
  background:var(--ink); color:var(--paper);
  font-family:var(--body); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:clip;
}
.rcs-home.e-con{ --row-gap:0px; --column-gap:0px; gap:0; padding:0; }

/* ---------- Elementor resets ---------- */
.rcs-home .e-con,
.rcs-home .e-con-inner{ gap:0; max-width:none; --container-max-width:none; }
.rcs-home .e-con{ width:100%; padding:0; }
.rcs-home .e-con > .e-con-inner{ display:contents; }
.rcs-home .elementor-widget{ margin:0; }
.rcs-home .elementor-widget-container{ margin:0; }
.rcs-home p{ margin:0; }
.rcs-home a{ color:inherit; text-decoration:none; }
.rcs-home .elementor-heading-title{ margin:0; }
/* labels styled via a wrapper class (eyebrow/.num/kickers/badges) inherit color+font over Elementor's heading defaults; scoped to the label classes so it does NOT outrank tag-based heading rules (.svc h3 ...) */
.rcs-home .mono .elementor-heading-title, .rcs-home .eyebrow .elementor-heading-title, .rcs-home .num .elementor-heading-title, .rcs-home .kicker .elementor-heading-title, .rcs-home .kick .elementor-heading-title, .rcs-home .micro .elementor-heading-title, .rcs-home .n .elementor-heading-title, .rcs-home .s-n .elementor-heading-title, .rcs-home .tag .elementor-heading-title, .rcs-home .badge .elementor-heading-title, .rcs-home .lbl .elementor-heading-title{ color:inherit; font-family:inherit; line-height:inherit; font-weight:inherit; }

.rcs-home .mono{ font-family:var(--mono); font-weight:500; font-size:12px; letter-spacing:.18em; text-transform:uppercase; }
.rcs-home .eyebrow{ color:var(--yellow); }
.rcs-home .wrap{ max-width:1240px; margin:0 auto; padding-inline:56px; width:100%; }
.rcs-home .sec{ padding:108px 0; }

/* ---------- NAV ---------- */
.rcs-home .site-head{ position:sticky; top:0; z-index:50; background:rgba(14,26,43,.82); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
/* TB header location wrapper is the body-level scroll child — it must be the sticky element (a sticky .site-head nested in the 79px header can only stick within that short box). */
header.elementor-location-header{ position:sticky; top:0; z-index:100; }
/* The TB header wraps the nav in its own .rcs-home, which paints a solid ink background. That opaque layer sits behind the translucent .site-head and kills the frosted-glass effect. Make the header wrapper transparent so the page shows through the nav blur. */
header.elementor-location-header .rcs-home{ background:transparent; }
/* At scroll 0 the sticky header sits ABOVE the page content, so behind the translucent nav is only the white page body -> nav reads grayish. Paint the body ink so the nav stays navy at the very top too (when scrolled, navy sections are behind it). */
body:has(.rcs-home){ background:#0E1A2B; }
.rcs-home .nav-bar{ display:flex; align-items:center; justify-content:space-between; height:78px; max-width:1240px; margin:0 auto; padding:0 56px; }
.rcs-home .nav-logo{ display:flex; align-items:center; gap:13px; }
.rcs-home .nav-logo .mk{ width:34px; height:34px; }
.rcs-home .nav-logo .name{ font-family:var(--rcs-display); font-weight:600; letter-spacing:.06em; font-size:17px; color:var(--paper); }
.rcs-home .nav-logo .name b{ color:var(--yellow); font-weight:600; }
.rcs-home .nav-links{ display:flex; align-items:center; gap:38px; }
.rcs-home .nav-links a{ font-size:14.5px; color:var(--slate-light); transition:color .2s; }
.rcs-home .nav-links a:hover{ color:var(--paper); }
.rcs-home .nav-links a.btn-yellow,
.rcs-home .nav-links a.btn-yellow:hover{ color:var(--ink); }

/* ---------- BUTTONS ---------- */
.rcs-home a.btn{ display:inline-flex; align-items:center; gap:9px; font-family:var(--rcs-display); font-weight:600; font-size:14.5px; padding:12px 22px; border-radius:2px; transition:transform .15s,background .2s,color .2s; line-height:1.2; }
.rcs-home a.btn-yellow{ background:var(--yellow); color:var(--ink); white-space:nowrap; }
.rcs-home a.btn-yellow:hover{ transform:translateY(-2px); background:#ffd463; color:var(--ink); }
.rcs-home .elementor-widget-button .elementor-button{ display:inline-flex; align-items:center; justify-content:center; gap:9px; font-family:var(--rcs-display); font-weight:600; font-size:14.5px; padding:12px 22px; border-radius:2px; border:none; background-image:none; background-color:transparent; box-shadow:none; transition:transform .15s,background .2s,color .2s; line-height:1.2; }
.rcs-home .elementor-button .elementor-button-content-wrapper{ display:inline-flex; align-items:center; gap:9px; }
.rcs-home .elementor-button .elementor-button-text{ color:inherit; font:inherit; }
.rcs-home .btn-yellow .elementor-button{ background-color:var(--yellow); color:var(--ink); white-space:nowrap; }
.rcs-home .btn-yellow .elementor-button:hover{ transform:translateY(-2px); background-color:#ffd463; color:var(--ink); }
.rcs-home .btn-ghost .elementor-button{ border:1px solid var(--slate); color:var(--paper); }
.rcs-home .btn-ghost .elementor-button:hover{ border-color:var(--yellow); color:var(--yellow); }
.rcs-home .btn-ink .elementor-button{ background-color:var(--ink); color:var(--paper); }
.rcs-home .btn-ink .elementor-button:hover{ transform:translateY(-2px); background-color:#13233a; color:var(--paper); }
.rcs-home .btn-ink-ghost .elementor-button{ border:1px solid var(--ink); color:var(--ink); }
.rcs-home .btn-ink-ghost .elementor-button:hover{ background-color:var(--ink); color:var(--paper); }

/* ---------- HERO ---------- */
.rcs-home .hero{ position:relative; padding:120px 0 88px; overflow:hidden; }
/* .hero-grid sits in an Elementor container that collapses to height:0, so the inset:0 grid gets no size. Paint the masked grid as a ::before on .hero itself (guaranteed position:relative + real height). */
.rcs-home .hero::before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:64px 64px; -webkit-mask-image:radial-gradient(ellipse 70% 60% at 30% 30%,#000 0%,transparent 75%); mask-image:radial-gradient(ellipse 70% 60% at 30% 30%,#000 0%,transparent 75%); opacity:.5; }
.rcs-home .hero .hero-backdrop{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.rcs-home .hero .watermark{ position:absolute; right:-120px; top:-60px; width:720px; height:720px; opacity:.05; }
.rcs-home .hero .hero-grid{ position:absolute; inset:0; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:64px 64px; -webkit-mask-image:radial-gradient(ellipse 70% 60% at 30% 30%,#000 0%,transparent 75%); mask-image:radial-gradient(ellipse 70% 60% at 30% 30%,#000 0%,transparent 75%); opacity:.5; }
.rcs-home .hero-inner{ position:relative; z-index:2; max-width:980px; margin:0 auto; }
.rcs-home .hero-inner .wrap{ padding:0; }
.rcs-home .hero h1,
.rcs-home .hero .hero-h1{ font-family:var(--rcs-display); font-weight:600; font-size:78px; line-height:1.02; letter-spacing:-.02em; margin:26px 0 30px; text-wrap:balance; color:var(--paper); }
.rcs-home .hero h1 .hl,
.rcs-home .hero .hero-h1 .hl{ color:var(--yellow); }
.rcs-home .hero .lead{ font-size:21px; color:var(--slate-light); max-width:680px; line-height:1.55; }
.rcs-home .hero-cta{ display:flex; flex-direction:row; gap:16px; margin-top:40px; flex-wrap:wrap; }
.rcs-home .hero-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:84px; border-top:1px solid var(--line); }
.rcs-home .stat{ padding:30px 30px 30px 0; border-right:1px solid var(--line); }
.rcs-home .stat + .stat{ padding-left:40px; }
.rcs-home .stat:last-child{ border-right:none; }
.rcs-home .stat .num{ font-family:var(--rcs-display); font-weight:700; font-size:46px; color:var(--paper); line-height:1; letter-spacing:-.02em; display:flex; align-items:baseline; gap:12px; }
.rcs-home .stat .num span{ color:var(--yellow); }
.rcs-home .stat .num .unit{ font-size:15px; font-weight:600; line-height:1.15; letter-spacing:.01em; align-self:flex-end; margin-bottom:6px; color:var(--yellow); }
.rcs-home .stat .lbl{ color:var(--slate-light); font-size:14px; margin-top:12px; }

/* ---------- PROOF ---------- */
.rcs-home .proof{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.rcs-home .proof-wrap{ display:flex; flex-direction:row; align-items:center; gap:48px; padding-top:30px; padding-bottom:30px; }
.rcs-home .proof .lbl{ color:var(--slate); white-space:nowrap; }
.rcs-home .proof .marks{ display:flex; gap:46px; flex-wrap:wrap; align-items:center; color:var(--slate-light); font-family:var(--rcs-display); font-weight:500; font-size:18px; letter-spacing:.01em; }

/* ---------- SECTION HEADS ---------- */
.rcs-home .sec-head{ display:flex; flex-direction:row; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:58px; }
.rcs-home .sec-head h2{ font-family:var(--rcs-display); font-weight:600; font-size:44px; letter-spacing:-.015em; line-height:1.08; max-width:620px; text-wrap:balance; color:var(--paper); }
.rcs-home .sec-head p{ color:var(--slate-light); max-width:340px; }

/* ---------- SERVICES ---------- */
.rcs-home .services{ background:var(--ink-2); }
.rcs-home .svc-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; border:1px solid var(--line); }
.rcs-home .svc{ padding:42px 40px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); position:relative; transition:background .2s; }
.rcs-home .svc:nth-child(2n){ border-right:none; }
.rcs-home .svc:hover{ background:var(--ink-3); }
.rcs-home .svc .n{ font-family:var(--mono); font-size:13px; color:var(--yellow); }
.rcs-home .svc h3{ font-family:var(--rcs-display); font-weight:600; font-size:24px; margin:18px 0 12px; color:var(--paper); }
.rcs-home .svc p{ color:var(--slate-light); font-size:15.5px; line-height:1.6; }
.rcs-home .svc.feature{ grid-column:span 2; border-right:none; display:flex; flex-direction:row; gap:48px; align-items:center; background:var(--ink-3); }
.rcs-home .svc.feature .txt{ flex:1; }
.rcs-home .svc.feature h3{ font-size:30px; }
.rcs-home .svc.feature .tag{ display:inline-block; font-family:var(--mono); font-size:11px; color:var(--ink); background:var(--yellow); padding:5px 10px; letter-spacing:.12em; align-self:flex-start; margin-bottom:0; }

/* ---------- PLACEHOLDERS ---------- */
.rcs-home .ph{ position:relative; width:100%; border:1px solid var(--line); background:repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0 14px,transparent 14px 28px),var(--ink-2); display:flex; align-items:center; justify-content:center; border-radius:3px; }
.rcs-home .ph .ph-lbl{ font-family:var(--mono); font-size:12px; color:var(--slate); letter-spacing:.1em; text-align:center; padding:18px; }
.rcs-home .ph-feature{ width:300px; aspect-ratio:4/3; flex:none; }
.rcs-home .case-media .ph{ aspect-ratio:4/3; }
.rcs-home .about .ph{ aspect-ratio:1/1; }

/* ---------- WORK ---------- */
.rcs-home .case{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; margin-bottom:96px; }
.rcs-home .case:last-child{ margin-bottom:0; }
.rcs-home .case.flip .case-media{ order:2; }
.rcs-home .case-media{ position:relative; }
.rcs-home .badge{ position:absolute; top:18px; left:18px; background:var(--yellow); color:var(--ink); font-family:var(--mono); font-size:11px; letter-spacing:.1em; padding:6px 11px; text-transform:uppercase; }
.rcs-home .case .kicker{ font-family:var(--mono); font-size:12px; color:var(--yellow); letter-spacing:.16em; text-transform:uppercase; }
.rcs-home .case h3{ font-family:var(--rcs-display); font-weight:600; font-size:34px; letter-spacing:-.015em; margin:16px 0 18px; line-height:1.1; color:var(--paper); }
.rcs-home .case p{ color:var(--slate-light); font-size:16.5px; }
.rcs-home .case-metrics{ display:flex; flex-direction:row; gap:40px; margin-top:30px; padding-top:26px; border-top:1px solid var(--line); }
.rcs-home .case-metrics .metric{ width:auto; flex:0 0 auto; }
.rcs-home .case-metrics .num{ font-family:var(--rcs-display); font-weight:700; font-size:34px; color:var(--yellow); line-height:1; }
.rcs-home .case-metrics .lbl{ color:var(--slate-light); font-size:13px; margin-top:8px; }
.rcs-home .case .role{ margin-top:24px; display:flex; gap:10px; flex-wrap:wrap; }
.rcs-home .chip{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--slate-light); border:1px solid var(--line); padding:6px 11px; border-radius:2px; text-transform:uppercase; }

/* ---------- APPROACH ---------- */
.rcs-home .approach{ background:var(--ink-2); }
.rcs-home .steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); }
.rcs-home .step{ padding:40px 36px 40px 0; border-right:1px solid var(--line); }
.rcs-home .step + .step{ padding-left:40px; }
.rcs-home .step:last-child{ border-right:none; padding-right:0; }
.rcs-home .step .s-n{ font-family:var(--mono); font-size:13px; color:var(--yellow); }
.rcs-home .step h4{ font-family:var(--rcs-display); font-weight:600; font-size:21px; margin:20px 0 12px; color:var(--paper); }
.rcs-home .step p{ color:var(--slate-light); font-size:14.5px; }

/* ---------- ABOUT ---------- */
.rcs-home .about{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:72px; align-items:center; }
.rcs-home .about .kicker{ font-family:var(--mono); font-size:12px; color:var(--yellow); letter-spacing:.16em; text-transform:uppercase; }
.rcs-home .about h2{ font-family:var(--rcs-display); font-weight:600; font-size:40px; letter-spacing:-.015em; margin:18px 0 22px; line-height:1.12; color:var(--paper); }
.rcs-home .about p{ color:var(--slate-light); font-size:17px; margin-bottom:18px; }
.rcs-home .about .sig{ font-family:var(--rcs-display); font-weight:600; color:var(--paper); font-size:18px; margin-top:28px; }
.rcs-home .about .sig span{ color:var(--slate); font-weight:400; font-size:14px; display:block; margin-top:4px; font-family:var(--body); }

/* ---------- VENTURE ---------- */
.rcs-home .venture{ background:var(--ink-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.rcs-home .venture-wrap{ padding-top:84px; padding-bottom:84px; display:flex; flex-direction:column; align-items:center; text-align:center; }
.rcs-home .venture .rule{ width:44px; height:3px; min-height:3px; background:var(--yellow); margin-bottom:26px; }
.rcs-home .venture .kick{ font-family:var(--mono); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--yellow); margin-bottom:18px; }
.rcs-home .venture h2{ font-family:var(--rcs-display); font-weight:600; font-size:38px; letter-spacing:-.02em; line-height:1.08; max-width:760px; text-wrap:balance; color:var(--paper); }
.rcs-home .venture h2 .hl{ color:var(--yellow); }
.rcs-home .venture p{ color:var(--slate-light); font-size:18px; line-height:1.6; max-width:580px; margin-top:22px; }
.rcs-home .venture .micro{ font-family:var(--mono); font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin-top:26px; }

/* ---------- CTA ---------- */
.rcs-home .cta{ background:var(--yellow); color:var(--ink); }
.rcs-home .cta-wrap{ padding-top:96px; padding-bottom:96px; text-align:center; display:flex; flex-direction:column; align-items:center; }
.rcs-home .cta h2{ font-family:var(--rcs-display); font-weight:700; font-size:62px; letter-spacing:-.025em; line-height:1.02; text-wrap:balance; max-width:900px; margin:0 auto; color:var(--ink); }
.rcs-home .cta p{ font-size:19px; color:rgba(14,26,43,.72); margin:24px auto 40px; max-width:560px; }
.rcs-home .cta-actions{ display:flex; flex-direction:row; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ---------- FOOTER ---------- */
.rcs-home .site-foot{ background:var(--ink); border-top:1px solid var(--line); padding:64px 0 40px; }
.rcs-home .foot-inner{ max-width:1240px; margin:0 auto; padding:0 56px; }
.rcs-home .foot-top{ display:flex; justify-content:space-between; gap:60px; flex-wrap:wrap; padding-bottom:48px; border-bottom:1px solid var(--line); }
.rcs-home .foot-brand .name{ font-family:var(--rcs-display); font-weight:600; letter-spacing:.06em; font-size:18px; display:flex; align-items:center; gap:12px; color:var(--paper); }
.rcs-home .foot-brand .name .mk{ width:30px; height:30px; }
.rcs-home .foot-brand p{ color:var(--slate); max-width:300px; margin-top:18px; font-size:14.5px; }
.rcs-home .foot-cols{ display:flex; gap:64px; }
.rcs-home .foot-col h5{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--slate); margin-bottom:16px; }
.rcs-home .foot-col a,.rcs-home .foot-col span{ display:block; color:var(--slate-light); font-size:14.5px; margin-bottom:11px; transition:color .2s; }
.rcs-home .foot-col a:hover{ color:var(--yellow); }
.rcs-home .foot-bot{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding-top:28px; color:var(--slate); font-size:13px; }
.rcs-home .foot-bot a{ color:var(--slate); }
.rcs-home .foot-bot a:hover{ color:var(--slate-light); }

/* ---------- RESPONSIVE ---------- */
@media (max-width:1000px){
  .rcs-home .wrap{ padding-inline:36px; }
  .rcs-home .nav-bar,.rcs-home .foot-inner{ padding:0 36px; }
  .rcs-home .sec{ padding:84px 0; }
  .rcs-home .hero{ padding:84px 0 72px; }
  .rcs-home .hero h1,.rcs-home .hero .hero-h1{ font-size:clamp(44px,7.4vw,62px); }
  .rcs-home .hero .lead{ font-size:19px; }
  .rcs-home .hero .watermark{ width:520px; right:-160px; }
  .rcs-home .sec-head h2{ font-size:36px; }
  .rcs-home .cta h2{ font-size:48px; }
  .rcs-home .steps{ grid-template-columns:repeat(2,1fr); }
  .rcs-home .step{ padding:34px 30px 34px 0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
  .rcs-home .step + .step{ padding-left:0; }
  .rcs-home .step:nth-child(odd){ padding-left:0; }
  .rcs-home .step:nth-child(even){ padding-left:34px; border-right:none; }
  .rcs-home .step:nth-child(n+3){ padding-bottom:0; border-bottom:none; }
  .rcs-home .about{ gap:48px; }
}

@media (max-width:640px){
  .rcs-home .wrap{ padding-inline:22px; }
  .rcs-home .nav-bar,.rcs-home .foot-inner{ padding:0 22px; }
  .rcs-home{ font-size:16px; }
  .rcs-home .sec{ padding:60px 0; }
  .rcs-home .nav-bar{ height:64px; }
  .rcs-home .nav-logo .mk{ width:30px; height:30px; }
  .rcs-home .nav-logo .name{ font-size:15px; letter-spacing:.04em; }
  .rcs-home .nav-links{ gap:0; }
  .rcs-home .nav-links a:not(.btn-yellow){ display:none; }
  .rcs-home .nav-links a.btn-yellow{ padding:11px 18px; font-size:14px; }
  .rcs-home .hero{ padding:56px 0 56px; }
  .rcs-home .hero h1,.rcs-home .hero .hero-h1{ font-size:clamp(34px,9vw,44px); margin:18px 0 22px; }
  .rcs-home .hero .lead{ font-size:17px; }
  .rcs-home .hero-cta{ gap:12px; margin-top:30px; }
  .rcs-home .hero-cta .btn{ flex:1; justify-content:center; }
  .rcs-home .hero-cta .elementor-widget-button{ flex:1; }
  .rcs-home .hero-cta .elementor-button{ width:100%; }
  .rcs-home .hero::before,
  .rcs-home .hero .hero-grid{ background-size:44px 44px; }
  .rcs-home .hero .watermark{ width:380px; right:-120px; top:-20px; }
  .rcs-home .hero-stats{ grid-template-columns:1fr; margin-top:48px; border-top:none; }
  .rcs-home .stat{ padding:22px 0; border-right:none; border-top:1px solid var(--line); }
  .rcs-home .stat + .stat{ padding-left:0; }
  .rcs-home .stat .num{ font-size:40px; }
  .rcs-home .proof-wrap{ flex-direction:column; align-items:flex-start; gap:16px; }
  .rcs-home .proof .marks{ gap:14px 28px; font-size:16px; }
  .rcs-home .sec-head{ flex-direction:column; align-items:flex-start; gap:14px; margin-bottom:36px; }
  .rcs-home .sec-head h2{ font-size:30px; }
  .rcs-home .sec-head p{ font-size:15px; }
  .rcs-home .svc-grid{ grid-template-columns:1fr; }
  .rcs-home .svc{ padding:30px 24px; border-right:none; }
  .rcs-home .svc.feature{ grid-column:span 1; flex-direction:column; align-items:flex-start; gap:24px; }
  .rcs-home .svc.feature h3{ font-size:25px; }
  .rcs-home .ph-feature{ width:100%; }
  .rcs-home .case{ grid-template-columns:1fr; gap:28px; margin-bottom:56px; }
  .rcs-home .case.flip .case-media{ order:0; }
  .rcs-home .case h3{ font-size:27px; }
  .rcs-home .case-metrics{ gap:28px; }
  .rcs-home .case-metrics .num{ font-size:28px; }
  .rcs-home .steps{ grid-template-columns:1fr; }
  .rcs-home .step,
  .rcs-home .step:nth-child(odd),
  .rcs-home .step:nth-child(even){ padding:28px 0; border-right:none; border-bottom:1px solid var(--line); }
  .rcs-home .step:last-child{ border-bottom:none; padding-bottom:0; }
  .rcs-home .about{ grid-template-columns:1fr; gap:32px; }
  .rcs-home .about .ph{ aspect-ratio:4/3; }
  .rcs-home .about h2{ font-size:28px; }
  .rcs-home .about p{ font-size:16px; }
  .rcs-home .venture-wrap{ padding-top:56px; padding-bottom:56px; }
  .rcs-home .venture h2{ font-size:28px; }
  .rcs-home .venture p{ font-size:16px; }
  .rcs-home .cta-wrap{ padding-top:60px; padding-bottom:60px; }
  .rcs-home .cta h2{ font-size:34px; }
  .rcs-home .cta p{ font-size:17px; }
  .rcs-home .cta-actions{ flex-direction:column; width:100%; }
  .rcs-home .cta-actions .btn{ justify-content:center; }
  .rcs-home .cta-actions .elementor-button{ width:100%; }
  .rcs-home .site-foot{ padding:48px 0 32px; }
  .rcs-home .foot-top{ flex-direction:column; gap:36px; }
  .rcs-home .foot-cols{ gap:40px; }
  .rcs-home .foot-bot{ flex-direction:column; align-items:flex-start; gap:12px; }
}

/* ---------- ELEMENTOR INTEGRATION PATCHES ---------- */
.rcs-home .e-con{ align-items:stretch; }
.rcs-home .venture-wrap, .rcs-home .cta-wrap, .rcs-home .case, .rcs-home .about, .rcs-home .ph{ align-items:center; }
@media (min-width:641px){
  .rcs-home .svc.feature, .rcs-home .proof-wrap{ align-items:center; }
  .rcs-home .sec-head{ align-items:flex-end; }
}
.rcs-home{ font-weight:400; letter-spacing:normal; }
.rcs-home .elementor-widget-text-editor, .rcs-home .lead, .rcs-home .lbl, .rcs-home .nav-links a{ font-weight:400; letter-spacing:normal; }
/* Body-style labels (.lbl: stat descriptions / metric captions) and text widgets have no explicit font and fall back to the kit global typography (Roboto once a custom_css write wipes the brand globals). Pin the brand body font so they never regress. Mono labels (.mono.lbl) excluded; display headings & .num/.mono resets win by specificity. */
.rcs-home .lbl:not(.mono){ font-family:var(--body); }
.rcs-home .elementor-widget-text-editor, .rcs-home .elementor-widget-text-editor .elementor-widget-container{ font-family:var(--body); }
.rcs-home .elementor-widget-text-editor{ color:var(--slate-light); }
.rcs-home .sec-head .elementor-widget-text-editor{ max-width:340px; }
.rcs-home .svc:not(.feature) .elementor-widget-text-editor{ font-size:15.5px; line-height:1.6; }
.rcs-home .svc.feature .txt .elementor-widget-text-editor{ font-size:15.5px; line-height:1.6; }
.rcs-home .case-body > .elementor-widget-text-editor{ font-size:16.5px; }
.rcs-home .step .elementor-widget-text-editor{ font-size:14.5px; }
.rcs-home .about-body .elementor-widget-text-editor{ font-size:17px; margin-bottom:18px; }
.rcs-home .venture .elementor-widget-text-editor{ font-size:18px; line-height:1.6; max-width:580px; margin:22px auto 0; }
.rcs-home .cta .elementor-widget-text-editor{ color:rgba(14,26,43,.72); font-size:19px; max-width:560px; margin:24px auto 40px; }
.rcs-home .stat .num .elementor-heading-title{ display:flex; align-items:baseline; gap:12px; }
.rcs-home .stat .num .elementor-heading-title .unit{ align-self:flex-end; }

/* ---------- LEGAL / PROSE PAGES (Impressum, Privacy, etc.) ---------- */
.rcs-home .legal{ position:relative; padding-top:150px; padding-bottom:112px; }
.rcs-home .legal-wrap{ max-width:880px; width:100%; margin:0 auto; padding-inline:56px; position:relative; z-index:1; }
.rcs-home .legal-head{ margin-bottom:48px; padding-bottom:40px; border-bottom:1px solid var(--line); }
.rcs-home .legal-head .eyebrow{ display:block; margin-bottom:20px; }
.rcs-home .legal-head h1{ font-family:var(--rcs-display); font-weight:600; font-size:clamp(38px,5.4vw,58px); letter-spacing:-.02em; line-height:1.04; color:var(--paper); margin:0; text-wrap:balance; }
.rcs-home .legal-head .legal-sub{ color:var(--slate-light); font-size:18px; line-height:1.55; margin:20px 0 0; max-width:640px; }
.rcs-home .prose{ color:var(--slate-light); font-size:16px; line-height:1.74; }
.rcs-home .prose h2{ font-family:var(--rcs-display); font-weight:600; font-size:25px; letter-spacing:-.01em; color:var(--paper); margin:54px 0 16px; line-height:1.2; }
.rcs-home .prose h2:first-child{ margin-top:0; }
.rcs-home .prose h3{ font-family:var(--rcs-display); font-weight:600; font-size:18px; color:var(--paper); margin:34px 0 10px; }
.rcs-home .prose p{ margin:0 0 18px; }
.rcs-home .prose p:last-child{ margin-bottom:0; }
.rcs-home .prose strong{ color:var(--paper); font-weight:600; }
.rcs-home .prose a{ color:var(--yellow); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; word-break:break-word; }
.rcs-home .prose a:hover{ color:#ffd463; }
.rcs-home .prose ul{ list-style:none; margin:0 0 18px; padding:0; }
.rcs-home .prose ul li{ position:relative; padding-left:22px; margin-bottom:11px; }
.rcs-home .prose ul li:last-child{ margin-bottom:0; }
.rcs-home .prose ul li::before{ content:""; position:absolute; left:2px; top:10px; width:6px; height:6px; background:var(--yellow); }
.rcs-home .reg-list{ list-style:none; margin:26px 0 6px; padding:0; border-top:1px solid var(--line); }
.rcs-home .reg-list li{ display:flex; gap:20px; justify-content:space-between; align-items:baseline; padding:13px 0; border-bottom:1px solid var(--line); font-size:15px; }
.rcs-home .reg-list li .k{ color:var(--slate); font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.rcs-home .reg-list li .val{ color:var(--paper); text-align:right; }
.rcs-home .prose ul.reg-list li::before{ top:50%; transform:translateY(-50%); }
.rcs-home .info-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin:34px 0 6px; }
.rcs-home .info-card{ border:1px solid var(--line); background:var(--ink-2); padding:24px 26px; border-radius:3px; }
.rcs-home .info-card h4{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--slate); margin:0 0 12px; }
.rcs-home .info-card .v{ color:var(--paper); font-size:15.5px; line-height:1.65; }
.rcs-home .info-card .v a{ color:var(--yellow); }
.rcs-home .info-card.full{ grid-column:span 2; }
@media (max-width:640px){
  .rcs-home .legal{ padding-top:104px; padding-bottom:72px; }
  .rcs-home .legal-wrap{ padding-inline:22px; }
  .rcs-home .prose h2{ font-size:22px; margin-top:42px; }
  .rcs-home .info-grid{ grid-template-columns:1fr; }
  .rcs-home .info-card.full{ grid-column:span 1; }
  .rcs-home .reg-list li{ flex-direction:column; gap:3px; }
  .rcs-home .reg-list li .val{ text-align:left; }
}/* End custom CSS */