/* ====================================================================
   Risitinerig Services - industrial dark theme
   ==================================================================== */
:root {
  --rns-navy:        #0B1E3F;
  --rns-navy-deep:   #061330;
  --rns-navy-soft:   #132A55;
  --rns-orange:      #2C6CB0;
  --rns-orange-hi:   #4E86C8;
  --rns-steel:       #E5EAF2;
  --rns-steel-soft:  #B8C3D6;
  --rns-line:        rgba(255,255,255,0.08);
  --rns-card:        #0F2347;
  --rns-shadow:      0 10px 40px -10px rgba(0,0,0,.45);
  --rns-white:       #EFF1F5;   /* soft light surface - toned, not stark white */
  --rns-white-text:  #F2F4F8;   /* soft, clean white for text on dark (never pure white) */
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
html { overflow-x: clip; }
body.rns-page {
  font-family: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  background: var(--rns-navy-deep);
  color: var(--rns-steel);
  -webkit-font-smoothing: antialiased;
  margin: 0;
}
h1,h2,h3,h4,h5,h6 { font-family: 'Barlow Condensed', 'Inter', sans-serif; letter-spacing:.5px; }
h1 { font-weight: 800; }
h2 { font-weight: 700; }
a { color: var(--rns-orange-hi); text-decoration: none; }
a:hover { color: var(--rns-white-text); }

/* ----------------- Navbar (sticky, with scroll-state) ----------------- */
.rns-navbar {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  background: rgba(6,19,48,0.88);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--rns-line);
  padding: .55rem 0;
  z-index: 2147483000; /* always above everything */
  transition:
    padding .25s cubic-bezier(.4,0,.2,1),
    background-color .25s ease,
    border-color .25s ease,
    box-shadow .25s ease;
}
.rns-navbar.is-scrolled {
  padding: .45rem 0;
  background: rgba(6,19,48,0.97);
  border-bottom-color: rgba(255,255,255,.10);
  box-shadow: 0 10px 30px -12px rgba(0,0,0,.55);
}

/* Logo image (white + orange version, sits on the dark navbar) */
.rns-navbar .navbar-brand { padding: 0; margin-right: 1rem; }
.navbar-brand-logo {
  height: 64px;
  width: auto;
  display: block;
  transition: height .25s cubic-bezier(.4,0,.2,1);
}
.rns-navbar.is-scrolled .navbar-brand-logo { height: 56px; }

/* Legacy brand-mark / brand-text kept for the admin login screen.
   They are not used on the public navbar anymore. */
.brand-mark {
  width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center;
  background: var(--rns-orange); color:var(--rns-white-text); border-radius:8px; font-size:1.25rem;
  box-shadow: 0 4px 14px rgba(44,108,176,0.45);
}
.brand-text strong { color:var(--rns-white-text); font-size:1.05rem; line-height:1; display:block; letter-spacing:.5px; }
.brand-text small  { color: var(--rns-steel-soft); font-size:.72rem; display:block; margin-top:2px; }

/* Nav links */
.rns-navbar .nav-link {
  color: var(--rns-steel-soft);
  font-weight: 500;
  padding: .65rem 1rem;
  position: relative;
  transition: color .18s ease;
}
.rns-navbar .nav-link:hover { color: var(--rns-white-text); }
.rns-navbar .nav-link.active {
  color: var(--rns-white-text);
  text-decoration: underline;
  text-decoration-color: #9BC6F2;
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
}
.rns-navbar .nav-link.active::after { content: none; }
/* Vertically center every nav item (fixes the Book a Service button sitting low) */
@media (min-width: 992px) {
  .rns-navbar .navbar-nav > .nav-item { display: flex; align-items: center; }
}

/* Toggler */
.navbar-toggler {
  border-color: rgba(255,255,255,0.18);
  padding: .45rem .55rem;
}
.navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(44,108,176,.25); }
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255,255,255,0.9)' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

/* Mobile: collapsed menu sits below the navbar with a dark backdrop */
@media (max-width: 991.98px) {
  .navbar-brand-logo { height: 58px; }
  .rns-navbar.is-scrolled .navbar-brand-logo { height: 50px; }
  .rns-navbar .navbar-collapse {
    margin-top: .55rem;
    padding: .8rem 0;
    border-top: 1px solid var(--rns-line);
  }
  .rns-navbar .nav-link.active::after { display: none; }
  .rns-navbar .nav-link.active { background: rgba(44,108,176,.08); border-radius: 6px; }
}
@media (max-width: 575.98px) {
  .navbar-brand-logo { height: 48px; }
  .rns-navbar.is-scrolled .navbar-brand-logo { height: 44px; }
}

/* ====================================================================
   Button system - refined, accessible, consistent across variants
   ==================================================================== */

.btn {
  --btn-bg:          transparent;
  --btn-color:       var(--rns-white-text);
  --btn-border:      transparent;
  --btn-shadow:      none;
  --btn-bg-hover:    var(--btn-bg);
  --btn-color-hover: var(--btn-color);
  --btn-border-hover:var(--btn-border);
  --btn-shadow-hover:var(--btn-shadow);
  --btn-ring:        rgba(255,255,255,.28);

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: .72rem 1.25rem;
  min-height: 46px;
  font-family: inherit;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: .005em;
  border-radius: 8px;
  border: 1px solid var(--btn-border);
  background: var(--btn-bg);
  color: var(--btn-color);
  box-shadow: var(--btn-shadow);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition:
    background-color .18s cubic-bezier(.4,0,.2,1),
    border-color    .18s cubic-bezier(.4,0,.2,1),
    color           .18s cubic-bezier(.4,0,.2,1),
    box-shadow      .18s cubic-bezier(.4,0,.2,1),
    transform       .12s cubic-bezier(.4,0,.2,1);
}

.btn:hover {
  background: var(--btn-bg-hover);
  border-color: var(--btn-border-hover);
  color: var(--btn-color-hover);
  box-shadow: var(--btn-shadow-hover);
  transform: translateY(-1px);
}
.btn:active {
  transform: translateY(0);
  transition-duration: .04s;
}
.btn:focus { outline: none; box-shadow: var(--btn-shadow); }
.btn:focus-visible {
  outline: 3px solid var(--btn-ring);
  outline-offset: 2px;
}
.btn:disabled, .btn.disabled {
  opacity: .55;
  pointer-events: none;
  transform: none;
}

/* Icon in button: flex gap is the single source of truth - kill bootstrap me-1/ms-1 */
.btn > .bi,
.btn > [class*="bi-"] { font-size: 1.05em; line-height: 1; margin: 0 !important; }

/* ---- Variants ------------------------------------------------------ */

/* Primary - orange. Default CTA. */
.btn-accent {
  --btn-bg:           var(--rns-orange);
  --btn-color:        var(--rns-white-text);
  --btn-border:       var(--rns-orange);
  --btn-shadow:       inset 0 1px 0 rgba(255,255,255,.14), 0 1px 2px rgba(44,108,176,.18);
  --btn-bg-hover:     var(--rns-orange-hi);
  --btn-border-hover: var(--rns-orange-hi);
  --btn-shadow-hover: inset 0 1px 0 rgba(255,255,255,.18), 0 8px 20px rgba(44,108,176,.32);
  --btn-ring:         rgba(44,108,176,.45);
}
.btn-accent:active {
  --btn-shadow: inset 0 2px 4px rgba(0,0,0,.18);
  --btn-shadow-hover: inset 0 2px 4px rgba(0,0,0,.18);
}

/* Ghost - translucent surface on dark backgrounds */
.btn-ghost {
  --btn-bg:           rgba(255,255,255,.04);
  --btn-color:        var(--rns-white-text);
  --btn-border:       rgba(255,255,255,.20);
  --btn-bg-hover:     rgba(255,255,255,.10);
  --btn-border-hover: rgba(255,255,255,.36);
}

/* Outline-light - same role as ghost; alias for the Bootstrap class */
.btn-outline-light {
  --btn-bg:           transparent;
  --btn-color:        var(--rns-white-text);
  --btn-border:       rgba(255,255,255,.38);
  --btn-bg-hover:     rgba(255,255,255,.10);
  --btn-color-hover:  var(--rns-white-text);
  --btn-border-hover: rgba(255,255,255,.6);
}

/* Light - for use on coloured (orange CTA) backgrounds */
.btn-light {
  --btn-bg:           var(--rns-white);
  --btn-color:        var(--rns-navy);
  --btn-border:       var(--rns-white);
  --btn-shadow:       0 1px 2px rgba(0,0,0,.08);
  --btn-bg-hover:     #E4E7EC;
  --btn-color-hover:  var(--rns-navy);
  --btn-border-hover: #E4E7EC;
  --btn-shadow-hover: 0 8px 22px -6px rgba(0,0,0,.25);
  --btn-ring:         rgba(255,255,255,.55);
}

/* Outline-secondary - admin neutral action */
.btn-outline-secondary {
  --btn-bg:           var(--rns-white);
  --btn-color:        #445371;
  --btn-border:       #D7DFEC;
  --btn-shadow:       0 1px 0 rgba(11,30,63,.02);
  --btn-bg-hover:     #E8EAEE;
  --btn-color-hover:  var(--rns-navy);
  --btn-border-hover: #B8C3D6;
  --btn-ring:         rgba(11,30,63,.18);
}

/* Outline-danger - admin destructive action */
.btn-outline-danger {
  --btn-bg:           var(--rns-white);
  --btn-color:        #C53030;
  --btn-border:       rgba(197,48,48,.32);
  --btn-bg-hover:     #FFF5F5;
  --btn-color-hover:  #9B2C2C;
  --btn-border-hover: #C53030;
  --btn-ring:         rgba(197,48,48,.32);
}

/* Dark - admin filter pill (active state) */
.btn-dark {
  --btn-bg:           var(--rns-navy);
  --btn-color:        var(--rns-white-text);
  --btn-border:       var(--rns-navy);
  --btn-bg-hover:     #132A55;
  --btn-color-hover:  var(--rns-white-text);
  --btn-border-hover: #132A55;
  --btn-shadow:       0 1px 2px rgba(0,0,0,.18);
  --btn-shadow-hover: 0 6px 14px -2px rgba(0,0,0,.30);
}

/* Link - quiet cancel / close action */
.btn-link {
  --btn-bg:        transparent;
  --btn-color:     var(--rns-orange-hi);
  --btn-border:    transparent;
  --btn-bg-hover:  transparent;
  --btn-color-hover: var(--rns-orange);
  --btn-ring:      rgba(44,108,176,.35);
  min-height: 0;
  padding: .35rem .6rem;
  text-decoration: none;
}
.btn-link:hover { transform: none; text-decoration: underline; text-underline-offset: 3px; }
.admin-body .btn-link { --btn-color: #6B7B99; --btn-color-hover: var(--rns-navy); }

/* ---- Sizes --------------------------------------------------------- */

.btn-lg {
  padding: .92rem 1.6rem;
  min-height: 54px;
  font-size: 1.02rem;
  border-radius: 10px;
  gap: .65rem;
}
.btn-sm {
  padding: .42rem .85rem;
  min-height: 36px;
  font-size: .82rem;
  border-radius: 7px;
  gap: .4rem;
}
.btn-sm > .bi, .btn-sm > [class*="bi-"] { font-size: 1em; }

/* ----------------- Hero v2 (kinetic word rotator) ----------------- */
.rns-hero {
  position: relative; min-height: auto; display:flex; align-items:center;
  padding: 3.25rem 0 3.75rem;
  background:
    linear-gradient(115deg, rgba(6,19,48,.97) 0%, rgba(6,19,48,.92) 45%, rgba(6,19,48,.87) 100%),
    var(--rns-hero-img) center/cover no-repeat,
    linear-gradient(135deg, #0B1E3F 0%, #1A3870 100%);
  color:var(--rns-white-text); overflow:visible;
  border-bottom: 1px solid var(--rns-line);
  z-index: 2;
}
.rns-hero > .rns-hero-noise { overflow:hidden; }
.rns-hero::before {
  content:""; position:absolute; inset:0;
  background: radial-gradient(900px 500px at 85% 110%, rgba(44,108,176,0.22), transparent 65%);
  pointer-events:none;
}
.rns-hero::after {
  content:""; position:absolute; left:0; right:0; bottom:0;
  height:70px;
  background: linear-gradient(180deg, transparent 0%, var(--rns-navy-deep) 100%);
  pointer-events:none;
}
.rns-hero .container { position:relative; z-index:2; }

.rns-hero-noise {
  position:absolute; inset:0; opacity:.06; pointer-events:none; z-index:1;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.6'/></svg>");
}

.hero-eyebrow {
  display:inline-flex; align-items:center; gap:.6rem;
  color: var(--rns-orange-hi);
  font-size:.78rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  padding:.5rem .9rem;
  background: rgba(44,108,176,.10);
  border: 1px solid rgba(44,108,176,.35);
  border-radius: 50px;
  margin-bottom: 1.6rem;
}
.hero-eyebrow .dot {
  width:8px; height:8px; border-radius:50%;
  background: var(--rns-orange);
  box-shadow: 0 0 0 0 rgba(44,108,176,.7);
  animation: pulse-dot 2.2s infinite;
}
@keyframes pulse-dot {
  0%   { box-shadow: 0 0 0 0 rgba(44,108,176,.7); }
  70%  { box-shadow: 0 0 0 12px rgba(44,108,176,0); }
  100% { box-shadow: 0 0 0 0 rgba(44,108,176,0); }
}

.hero-title {
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 800;
  font-size: clamp(2rem, 4.4vw, 3.7rem);
  line-height: .98;
  letter-spacing: -0.015em;
  text-transform: uppercase;
  color: var(--rns-white-text);
  text-shadow: 0 6px 40px rgba(0,0,0,.45);
  margin-bottom: 1.25rem;
}
.hero-title-prefix {
  display:block;
  font-size: .42em;
  font-weight: 700;
  letter-spacing: .14em;
  color: var(--rns-steel);
  margin-bottom: .35rem;
  opacity:.95;
}
.hero-title-tail {
  display:block;
  color:var(--rns-white-text);
  margin-top: .25rem;
  font-size: .82em;
  white-space: nowrap;
  letter-spacing: -.005em;
}

/* Word rotator - CSS grid stacks all words in the same cell */
.word-rotator {
  display: inline-grid;
  vertical-align: top;
  position: relative;
}
.word-rotator .word {
  grid-area: 1 / 1;
  color: var(--rns-orange-hi);
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .55s cubic-bezier(.2,.65,.3,1), transform .55s cubic-bezier(.2,.65,.3,1);
  white-space: nowrap;
}
.word-rotator .word.is-active {
  opacity: 1;
  transform: translateY(0);
}
.word-rotator::after {
  /* subtle accent underline that pulses with the word change */
  content:""; position:absolute; left:0; right:18%; bottom:-8px;
  height:6px; background: var(--rns-orange); border-radius:3px;
  transform-origin: left center;
  animation: bar-pulse 2.8s infinite;
  opacity:.85;
}
@keyframes bar-pulse {
  0%, 100% { transform: scaleX(.2); }
  40%, 60% { transform: scaleX(1); }
}

.hero-lead {
  color: var(--rns-steel);
  font-size: clamp(1rem, 1.4vw, 1.18rem);
  max-width: 640px;
  line-height: 1.55;
  margin-bottom: 2rem;
}

.hero-ctas {
  display:flex; flex-wrap:wrap; gap:.75rem;
  margin-bottom: 0;
}

/* Hero stats v2 - pill bar with animated count-up */
.hero-stats-v2 {
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 1px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  overflow: hidden;
  max-width: 780px;
  backdrop-filter: blur(6px);
}
.hero-stats-v2 .stat {
  padding: 1.1rem 1.2rem;
  background: rgba(11,30,63,.55);
  display:flex; flex-direction:column; gap:.25rem;
}
.hero-stats-v2 .stat-val {
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 800;
  font-size: clamp(1.6rem, 2.4vw, 2.3rem);
  color:var(--rns-white-text);
  line-height:1;
  display:inline-flex; align-items:baseline;
}
.hero-stats-v2 .stat-suffix { color: var(--rns-orange-hi); margin-left:2px; }
.hero-stats-v2 .stat-static { color: var(--rns-orange-hi); }
.hero-stats-v2 .stat-label {
  color: var(--rns-steel-soft);
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* ----------------- Pop-out half-right image ----------------- */
.hero-popout {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  margin-bottom: -90px;   /* pops down into the accred strip */
  margin-top: 1.5rem;
}
.hero-popout-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 18px;
  border: 6px solid #0B1E3F;
  box-shadow:
    0 30px 70px -15px rgba(0,0,0,.65),
    0 0 0 1px rgba(255,255,255,.04) inset;
  transform: rotate(-2.2deg);
  z-index: 2;
  background: var(--rns-navy);
}
.hero-popout-frame {
  position: absolute;
  inset: 22px -22px -22px 22px;
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(44,108,176,.95) 0%, rgba(44,108,176,.55) 45%, transparent 90%);
  z-index: 1;
  transform: rotate(2.4deg);
  filter: blur(.4px);
}
.hero-popout-tape {
  position: absolute;
  top: 28px; right: -34px;
  background: var(--rns-orange);
  color: var(--rns-white-text);
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 800;
  font-size: .82rem;
  letter-spacing: .22em;
  padding: .35rem 1.6rem;
  transform: rotate(35deg);
  z-index: 3;
  text-transform: uppercase;
  box-shadow: 0 6px 18px rgba(0,0,0,.35);
}
.hero-popout-badge {
  position: absolute;
  bottom: -28px; left: -28px;
  background: var(--rns-white);
  color: var(--rns-navy);
  padding: .85rem 1.15rem;
  border-radius: 14px;
  box-shadow:
    0 18px 44px -10px rgba(0,0,0,.55),
    0 0 0 1px rgba(11,30,63,.08);
  z-index: 4;
  display: flex; align-items: center; gap: .8rem;
  min-width: 220px;
}
.hero-popout-badge i {
  color: var(--rns-orange);
  font-size: 2rem;
  line-height:1;
}
.hero-popout-badge strong {
  display:block;
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-size: 1.25rem;
  color: var(--rns-navy);
  letter-spacing:.02em;
}
.hero-popout-badge span {
  font-size: .68rem;
  color: #6B7B99;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 600;
}

/* Smaller heights on tablet+ since the image takes vertical mass on the right */
@media (min-width: 992px) {
  .rns-hero { min-height: auto; padding: 3.25rem 0 3.75rem; }
}
@media (max-width: 1199.98px) {
  .hero-popout { margin-bottom: -70px; }
  .hero-popout-badge { min-width: 0; padding: .7rem .9rem; }
  .hero-popout-badge i { font-size: 1.6rem; }
  .hero-popout-badge strong { font-size: 1.05rem; }
}

/* ----------------- Accreditation strip ----------------- */
.accred-strip {
  background: var(--rns-navy-deep);
  border-top: 1px solid var(--rns-line);
  border-bottom: 1px solid var(--rns-line);
  padding: 1.1rem 0;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.accred-strip .container {
  display:flex; align-items:center; gap:1.2rem;
}
.accred-label {
  color: var(--rns-orange-hi);
  font-size:.7rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  flex-shrink:0;
}
.accred-marquee {
  position:relative; flex-grow:1; min-width:0; overflow:hidden;
  mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.accred-track {
  display:flex; gap:2rem; align-items:center;
  width: max-content;
  animation: accred-scroll 42s linear infinite;
}
.accred-marquee:hover .accred-track { animation-play-state: paused; }
.accred-track .accred {
  color: var(--rns-steel-soft);
  font-family:'Barlow Condensed','Inter',sans-serif;
  font-weight:700;
  font-size: 1.05rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  white-space:nowrap;
  opacity:.85;
}
.accred-track .accred-sep {
  color: var(--rns-orange);
  font-size: .8rem;
  opacity:.7;
}
@keyframes accred-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Mobile tweaks */
@media (max-width: 991.98px) {
  .rns-hero { min-height: auto; padding: 3rem 0 3.25rem; }
  .hero-stats-v2 { grid-template-columns: repeat(2, 1fr); max-width: 100%; }
}
@media (max-width: 575.98px) {
  .hero-title { font-size: clamp(2.4rem, 11vw, 3.4rem); }
  .word-rotator::after { right: 10%; height:4px; bottom:-4px; }
  .accred-strip .container { flex-direction: column; align-items:flex-start; gap:.6rem; }
  .accred-marquee { width:100%; }
}
@media (prefers-reduced-motion: reduce) {
  .word-rotator .word { transition:none; }
  .accred-track { animation:none; }
  .word-rotator::after { animation:none; transform:scaleX(.7); }
  .hero-eyebrow .dot { animation:none; }
  .hero-scroll-line::after { animation:none; }
}

/* ----------------- Section helpers ----------------- */
.section { padding: 5rem 0; }
.section-light { background: var(--rns-navy); }
.section-darker { background: var(--rns-navy-deep); }
.section-title { color:var(--rns-white-text); margin-bottom: 1rem; font-size: clamp(1.8rem, 3vw, 2.6rem); }
.section-sub { color: var(--rns-steel-soft); max-width: 720px; margin: 0 auto 3rem; }
.eyebrow-text {
  color: var(--rns-orange-hi); font-weight:700; text-transform:uppercase;
  letter-spacing:.18em; font-size:.78rem; margin-bottom:.6rem;
}

/* ----------------- Lifecycle phase strip ----------------- */
.capabilities-section { padding: 5.5rem 0; }

.lifecycle-strip {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  margin: 0 auto 3.5rem;
  max-width: 1100px;
  padding: 0;
  position: relative;
}
.phase-node {
  position: relative;
  text-align: center;
  z-index: 1;
}
.phase-node:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 26px;
  left: 50%;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, var(--rns-orange) 0%, rgba(44,108,176,.18) 100%);
  z-index: 0;
}
.phase-node .phase-num {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px; height: 54px;
  border-radius: 50%;
  background: var(--rns-card);
  border: 2px solid var(--rns-orange);
  color: var(--rns-orange-hi);
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 800;
  font-size: 1.4rem;
  line-height: 1;
}
.phase-node .phase-label {
  display: block;
  margin-top: .75rem;
  color: var(--rns-steel);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  line-height: 1.3;
}

@media (max-width: 767.98px) {
  .lifecycle-strip {
    overflow-x: auto;
    grid-template-columns: repeat(5, minmax(130px, 1fr));
    padding: .5rem .25rem 1rem;
    margin-left: -.5rem; margin-right: -.5rem;
    scrollbar-width: thin;
  }
  .phase-node .phase-label { font-size: .68rem; white-space: nowrap; }
}

/* ----------------- Service cards ----------------- */
.service-card {
  background: var(--rns-card);
  border:1px solid var(--rns-line);
  border-radius: 14px; padding: 2rem 1.6rem;
  height:100%;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
  display:flex; flex-direction:column;
}
.service-card:hover {
  transform: translateY(-4px);
  border-color: rgba(44,108,176,.45);
  box-shadow: var(--rns-shadow);
}
.service-card .svc-icon {
  width:54px; height:54px; border-radius:12px;
  background: rgba(44,108,176,.12); color: var(--rns-orange-hi);
  display:inline-flex; align-items:center; justify-content:center; font-size:1.55rem;
  margin-bottom:1.2rem;
}
.service-card h3 { color:var(--rns-white-text); font-size:1.3rem; margin-bottom:.5rem; }
.service-card p  { color: var(--rns-steel-soft); flex-grow:1; }
.service-card .read-more { color: var(--rns-orange-hi); font-weight:600; }
.service-card .read-more i { transition: transform .2s ease; }
.service-card:hover .read-more i { transform: translateX(4px); }

.service-card.with-image { padding:0; overflow:hidden; }
.service-card.with-image .svc-img {
  height: 200px;
  background-size:cover; background-position:center;
  border-bottom: 3px solid var(--rns-orange);
}
.service-card.with-image .svc-body { padding: 1.6rem; display:flex; flex-direction:column; flex-grow:1; }

/* Lifecycle-aware enhancements */
.svc-phase {
  display: flex;
  align-items: center;
  gap: .55rem;
  padding-bottom: 1rem;
  margin-bottom: 1.4rem;
  border-bottom: 1px solid var(--rns-line);
}
.svc-phase .phase-pill {
  background: var(--rns-orange);
  color: var(--rns-white-text);
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 800;
  font-size: .82rem;
  padding: .22rem .55rem;
  border-radius: 4px;
  line-height: 1;
  letter-spacing: .04em;
}
.svc-phase .phase-pill-label {
  color: var(--rns-orange-hi);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1;
}
.svc-standard {
  display: inline-block;
  align-self: flex-start;
  padding: .25rem .65rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--rns-orange-hi);
  background: rgba(44,108,176,.08);
  border: 1px solid rgba(44,108,176,.3);
  border-radius: 4px;
  margin-bottom: .9rem;
  font-family: 'Inter',sans-serif;
}

/* ----------------- Feature row (legacy) ----------------- */
.feature-tile {
  background: rgba(255,255,255,0.03);
  border:1px solid var(--rns-line);
  padding:1.4rem; border-radius:12px; height:100%;
}
.feature-tile i { font-size:1.6rem; color: var(--rns-orange-hi); margin-bottom:.6rem; }
.feature-tile h5 { color:var(--rns-white-text); margin-bottom:.4rem; }
.feature-tile p  { color: var(--rns-steel-soft); font-size:.95rem; margin:0; }

/* ----------------- Why-us split (image + numbered list) ----------------- */
.why-section { padding: 5.5rem 0; }

.why-image {
  position: relative;
  height: 100%;
  min-height: 540px;
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  background: var(--rns-navy-soft);
  border: 1px solid var(--rns-line);
}
.why-image img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  object-position: center 35%;
}
.why-image::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(6,19,48,0) 35%, rgba(6,19,48,.92) 100%),
    linear-gradient(135deg, rgba(44,108,176,.08) 0%, transparent 50%);
}
.why-image-caption {
  position: absolute; bottom: 1.6rem; left: 1.6rem; right: 1.6rem;
  color: var(--rns-white-text); z-index: 2;
}
.why-image-caption .cap-eyebrow {
  display: inline-block;
  color: var(--rns-orange-hi);
  letter-spacing: .22em; font-size: .68rem; font-weight: 700;
  text-transform: uppercase;
  padding: .25rem .65rem;
  background: rgba(44,108,176,.12);
  border: 1px solid rgba(44,108,176,.35);
  border-radius: 50px;
}
.why-image-caption strong {
  display: block;
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 700;
  font-size: 1.35rem;
  line-height: 1.2;
  margin-top: .55rem;
  letter-spacing: .02em;
}
.why-image-stamp {
  position: absolute;
  top: 1.6rem; right: 1.6rem;
  background: var(--rns-orange);
  color: var(--rns-white-text);
  padding: 1rem 1.1rem;
  border-radius: 14px;
  text-align: center;
  z-index: 2;
  min-width: 140px;
  transform: rotate(2deg);
}
.why-image-stamp .num {
  display: block;
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 800;
  font-size: 2.4rem;
  line-height: 1;
  letter-spacing: -.01em;
}
.why-image-stamp .num small { font-size: .55em; margin-left: 1px; }
.why-image-stamp .lbl {
  display: block;
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  margin-top: .35rem;
  line-height: 1.25;
  font-weight: 600;
}

.why-list {
  list-style: none; padding: 0; margin: 0;
}
.why-item {
  display: flex; gap: 1.4rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--rns-line);
  position: relative;
}
.why-item:first-child { padding-top: 0; }
.why-item:last-child { border-bottom: none; padding-bottom: 0; }
.why-num {
  flex-shrink: 0;
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 800;
  font-size: 2.4rem;
  color: var(--rns-orange);
  line-height: 1;
  width: 64px;
  letter-spacing: -.02em;
}
.why-body { min-width: 0; flex-grow: 1; }
.why-body h3 {
  color: var(--rns-white-text);
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
  margin: 0 0 .45rem;
  letter-spacing: .005em;
}
.why-body > p {
  color: var(--rns-steel-soft);
  margin-bottom: .6rem;
  line-height: 1.55;
}
.why-outcome {
  display: flex; align-items: flex-start; gap: .65rem;
  color: var(--rns-steel);
  font-size: .9rem;
  padding: .55rem .85rem;
  background: rgba(44,108,176,.07);
  border-left: 3px solid var(--rns-orange);
  border-radius: 0 6px 6px 0;
  margin: 0;
  line-height: 1.45;
}
.why-outcome strong {
  flex-shrink: 0;
  color: var(--rns-orange-hi);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .65rem;
  font-weight: 700;
  padding: .12rem .4rem;
  border: 1px solid rgba(44,108,176,.4);
  border-radius: 4px;
  background: rgba(44,108,176,.05);
  white-space: nowrap;
  margin-top: 1px;
}

@media (max-width: 991.98px) {
  .why-image { min-height: 400px; margin-bottom: 1rem; }
  .why-image-stamp { transform: none; min-width: 0; padding: .8rem .9rem; }
  .why-image-stamp .num { font-size: 2rem; }
}
@media (max-width: 575.98px) {
  .why-item { gap: 1rem; }
  .why-num { font-size: 1.9rem; width: 48px; }
  .why-body h3 { font-size: 1.25rem; }
  .why-outcome { flex-direction: column; gap: .35rem; }
}

/* ----------------- Testimonials (legacy - kept for admin-controlled use) ----------------- */
.testimonial-card {
  background: var(--rns-card); border:1px solid var(--rns-line);
  padding: 2rem; border-radius:14px; height:100%; display:flex; flex-direction:column;
}
.testimonial-card .quote { color:var(--rns-white-text); font-size:1.05rem; line-height:1.6; flex-grow:1; }
.testimonial-card .author { color: var(--rns-orange-hi); font-weight:700; margin-top:1rem; }
.testimonial-card .role   { color: var(--rns-steel-soft); font-size:.85rem; }
.testimonial-card .stars i { color: var(--rns-orange); }

/* ----------------- Recent work / inspection log ----------------- */
.recent-work-section {
  padding: 7rem 0 6rem;
  position: relative;
  overflow: hidden;
}

/* Wave divider at the top - bleeds the prior section's colour into this one */
.section-wave-top {
  position: absolute;
  top: 0; left: 0; right: 0;
  width: 100%;
  height: 90px;
  display: block;
  pointer-events: none;
}
.section-wave-top path {
  fill: var(--rns-navy-deep);
}

/* Decorative background - soft orange radial glow, very subtle */
.recent-work-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(700px 380px at 12% 15%, rgba(44,108,176,.06), transparent 60%),
    radial-gradient(800px 420px at 88% 90%, rgba(44,108,176,.05), transparent 65%);
  pointer-events: none;
}
.recent-work-section > .container { position: relative; z-index: 1; }

/* Hero image strip - wide cinematic image with rounded corners + caption overlay */
.log-hero {
  position: relative;
  max-width: 1080px;
  margin: 0 auto 3rem;
  border-radius: 22px;
  overflow: hidden;
  aspect-ratio: 21 / 7;
  background: var(--rns-navy-soft);
}
.log-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  display: block;
}
.log-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(6,19,48,.85) 0%, rgba(6,19,48,.3) 45%, rgba(6,19,48,.0) 70%),
    linear-gradient(180deg, rgba(6,19,48,0) 50%, rgba(6,19,48,.5) 100%);
}
.log-hero figcaption {
  position: absolute;
  left: 2rem;
  bottom: 1.6rem;
  right: 2rem;
  z-index: 1;
  color: var(--rns-white-text);
  max-width: 520px;
}
.log-hero-eyebrow {
  display: inline-block;
  color: var(--rns-orange-hi);
  font-size: .7rem; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase;
  padding: .28rem .7rem;
  background: rgba(44,108,176,.12);
  border: 1px solid rgba(44,108,176,.35);
  border-radius: 50px;
  margin-bottom: .65rem;
}
.log-hero figcaption strong {
  display: block;
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-size: clamp(1.3rem, 2vw, 1.85rem);
  font-weight: 700;
  letter-spacing: .015em;
  line-height: 1.2;
}

@media (max-width: 767.98px) {
  .log-hero { aspect-ratio: 16 / 10; border-radius: 16px; }
  .log-hero figcaption { left: 1.2rem; right: 1.2rem; bottom: 1.2rem; }
  .log-hero figcaption strong { font-size: 1.2rem; }
}

.job-log {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  max-width: 1080px;
  margin: 0 auto;
}

.job-entry {
  background: var(--rns-card);
  border: 1px solid var(--rns-line);
  border-left: 3px solid var(--rns-orange);
  border-radius: 18px;
  overflow: hidden;
  transition: border-color .25s ease, background .25s ease, transform .25s ease;
}
.job-entry:hover {
  background: #112B5A;
  border-left-color: var(--rns-orange-hi);
}

.job-entry-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1.5rem;
  padding: 1.1rem 1.6rem;
  border-bottom: 1px solid var(--rns-line);
  background: rgba(255,255,255,.025);
}

.job-meta {
  display: flex;
  align-items: baseline;
  gap: .75rem;
  flex-shrink: 0;
}
.job-num {
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 800;
  font-size: 1.85rem;
  color: var(--rns-orange);
  line-height: 1;
  letter-spacing: -.02em;
}
.job-num::before { content: '#'; opacity: .55; margin-right: 1px; }
.job-date {
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-size: .82rem;
  font-weight: 700;
  color: var(--rns-steel-soft);
  letter-spacing: .18em;
  text-transform: uppercase;
}

.job-title-block strong {
  display: block;
  color: var(--rns-white-text);
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  line-height: 1.15;
}
.job-title-block span {
  color: var(--rns-steel-soft);
  font-size: .9rem;
  line-height: 1.3;
}

.job-standard {
  padding: .3rem .75rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--rns-orange-hi);
  background: rgba(44,108,176,.08);
  border: 1px solid rgba(44,108,176,.3);
  border-radius: 4px;
  white-space: nowrap;
  flex-shrink: 0;
}

.job-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 0;
  padding: 0;
}
.job-field {
  padding: 1.4rem 1.6rem;
}
.job-field:first-child {
  border-right: 1px solid var(--rns-line);
}
.job-field dt {
  color: var(--rns-orange-hi);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  margin-bottom: .45rem;
}
.job-field dd {
  color: var(--rns-steel);
  margin: 0;
  line-height: 1.55;
  font-size: .94rem;
}

.job-disclaimer {
  text-align: center;
  color: var(--rns-steel-soft);
  font-size: .82rem;
  margin: 2.5rem auto 0;
  max-width: 720px;
  font-style: italic;
  opacity: .75;
}

@media (max-width: 767.98px) {
  .job-entry-header {
    grid-template-columns: 1fr;
    gap: .85rem;
    padding: 1.1rem 1.3rem;
  }
  .job-standard { justify-self: start; }
  .job-fields { grid-template-columns: 1fr; }
  .job-field { padding: 1.2rem 1.3rem; }
  .job-field:first-child {
    border-right: none;
    border-bottom: 1px solid var(--rns-line);
  }
}

/* ----------------- CTA strip ----------------- */
.cta-strip {
  background: linear-gradient(135deg, var(--rns-orange) 0%, #0B1E3F 100%);
  border-radius: 16px;
  padding: 3rem;
  color:var(--rns-white-text);
  position:relative; overflow:hidden;
}
.cta-strip::before {
  content:""; position:absolute; right:-80px; top:-80px; width:300px; height:300px;
  background: rgba(255,255,255,0.08); border-radius:50%;
}
.cta-strip h2 { color:var(--rns-white-text); }

/* ----------------- About page ----------------- */
.about-hero {
  background:
    linear-gradient(180deg, rgba(6,19,48,.7) 0%, rgba(6,19,48,.95) 100%),
    url('../images/platform-rig.jpg') center/cover no-repeat;
  color:var(--rns-white-text); padding: 7rem 0 5rem;
}

/* Hero band tuned for the About page */
.about-header { padding: 5.5rem 0 4rem; }
.about-header .hero-eyebrow { margin-bottom: 1.4rem; }
.about-lead {
  color: var(--rns-steel);
  font-size: 1.08rem;
  line-height: 1.7;
}

/* Trust chips under the hero lead */
.page-hero-chips {
  display: flex; flex-wrap: wrap; gap: .6rem;
  margin-top: 1.9rem;
}
.page-hero-chips .chip {
  display: inline-flex; align-items: center; gap: .55rem;
  color: var(--rns-steel);
  font-size: .82rem; font-weight: 600;
  padding: .5rem .95rem;
  background: rgba(255,255,255,.05);
  border: 1px solid var(--rns-line);
  border-radius: 50px;
}
.page-hero-chips .chip i { color: var(--rns-orange-hi); font-size: 1em; }

/* "By the numbers" - reuses .hero-stats-v2, just constrain its width */
.section .hero-stats-v2 { max-width: 880px; }

/* Value cards */
.value-card {
  background: var(--rns-card); border:1px solid var(--rns-line);
  border-left: 4px solid var(--rns-orange);
  padding:1.8rem; border-radius:10px; height:100%;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.value-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--rns-shadow);
  border-left-color: var(--rns-orange-hi);
}
.value-card .v-icon {
  display: block;
  color: var(--rns-orange-hi);
  font-size: 1.65rem;
  line-height: 1;
  margin-bottom: .85rem;
}
.value-card h4 { color:var(--rns-white-text); font-family:'Barlow Condensed',sans-serif; margin-bottom:.5rem; }
.value-card p { color: var(--rns-steel-soft); margin:0; }

/* ----------------- Team / people cards ----------------- */
.team-card {
  background: var(--rns-card);
  border: 1px solid var(--rns-line);
  border-radius: 14px;
  padding: 1.9rem 1.7rem;
  height: 100%;
  display: flex; flex-direction: column;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.team-card:hover { transform: translateY(-4px); box-shadow: var(--rns-shadow); }
.team-card.is-lead { border-top: 4px solid var(--rns-orange); }
.team-head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.1rem; }
.team-avatar {
  width: 60px; height: 60px; flex-shrink: 0; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 800; font-size: 1.4rem; letter-spacing: .03em;
  color: var(--rns-white-text);
  background: linear-gradient(135deg, var(--rns-orange) 0%, var(--rns-navy) 100%);
  box-shadow: 0 6px 16px rgba(44,108,176,.3);
}
.team-card h3 { color: var(--ink); font-size: 1.2rem; margin: 0 0 .15rem; }
.team-role {
  display: inline-block; color: var(--rns-orange);
  font-size: .7rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase;
}
.team-bio { color: var(--rns-steel-soft); line-height: 1.65; margin: 0; }
/* Compact officer card (no bio): centred avatar, name, role */
.team-card.is-officer { align-items: center; text-align: center; }
.team-card.is-officer .team-avatar { margin: 0 0 .9rem; }
.team-card.is-officer h3 { margin-bottom: .2rem; }

/* Mission bullet list */
.mission-points { list-style:none; padding:0; margin:1.6rem 0 0; }
.mission-points li {
  display:flex; gap:.7rem; align-items:flex-start;
  padding:.45rem 0; color: var(--rns-steel); line-height:1.5;
}
.mission-points li i { color: var(--rns-orange-hi); font-size:1.1rem; margin-top:2px; flex-shrink:0; }

/* Independence pull-quote */
.about-quote {
  position: relative;
  background: linear-gradient(135deg, var(--rns-navy-soft) 0%, var(--rns-card) 100%);
  border: 1px solid var(--rns-line);
  border-left: 4px solid var(--rns-orange);
  border-radius: 16px;
  padding: 2.8rem 3rem;
  overflow: hidden;
}
.about-quote::before {
  content: '\201C';
  position: absolute; top: -2rem; right: 1.8rem;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 11rem; line-height: 1;
  color: rgba(44,108,176,.14);
  pointer-events: none;
}
.about-quote blockquote {
  position: relative; z-index: 1;
  margin: 0; color: var(--rns-white-text);
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 600;
  font-size: clamp(1.4rem, 2.4vw, 2.05rem);
  line-height: 1.32; letter-spacing: .01em;
  max-width: 880px;
}
.about-quote .q-attrib {
  margin-top: 1.4rem;
  color: var(--rns-orange-hi);
  font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; font-size: .78rem;
}

/* Standards tiles */
.std-tile {
  background: var(--rns-card);
  border: 1px solid var(--rns-line);
  border-radius: 12px;
  padding: 1.5rem 1rem;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .45rem; text-align: center;
  transition: transform .25s ease, border-color .25s ease, background .25s ease;
}
.std-tile:hover {
  transform: translateY(-3px);
  border-color: rgba(44,108,176,.45);
  background: #112B5A;
}
.std-tile i { color: var(--rns-orange-hi); font-size: 1.6rem; line-height: 1; }
.std-tile strong {
  color: var(--rns-white-text);
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-size: 1.02rem; letter-spacing: .04em; line-height: 1.1;
}
.std-tile span {
  color: var(--rns-steel-soft);
  font-size: .72rem; letter-spacing: .04em;
}

@media (max-width: 575.98px) {
  .about-quote { padding: 2rem 1.5rem; }
  .about-quote::before { font-size: 8rem; top: -1.4rem; right: 1rem; }
}

/* ----------------- Page header ----------------- */
.page-header {
  background:
    linear-gradient(180deg, rgba(6,19,48,.55) 0%, rgba(6,19,48,.95) 100%),
    var(--rns-page-img, url('https://images.unsplash.com/photo-1581094288338-2314dddb7ece?auto=format&fit=crop&w=1900&q=80')) center/cover no-repeat;
  padding: 6rem 0 3.5rem; color:var(--rns-white-text);
  border-bottom: 1px solid var(--rns-line);
}
.page-header .crumbs { color: var(--rns-steel-soft); font-size:.9rem; }
.page-header .crumbs a { color: var(--rns-steel-soft); }
.page-header h1 { font-size: clamp(2rem,4vw,3.2rem); margin:0; }

/* ----------------- Forms ----------------- */
.form-card {
  background: var(--rns-card); border:1px solid var(--rns-line);
  padding: 2.4rem; border-radius:16px;
}
.form-label { color: var(--rns-steel); font-weight:500; }
.form-control, .form-select {
  background: rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.12);
  color:var(--rns-white-text);
  padding:.7rem .9rem;
}
.form-control:focus, .form-select:focus {
  background: rgba(255,255,255,0.06);
  border-color: var(--rns-orange);
  color:var(--rns-white-text);
  box-shadow: 0 0 0 .2rem rgba(44,108,176,.18);
}
.form-control::placeholder { color: rgba(255,255,255,0.35); }
textarea.form-control { min-height: 130px; }
.form-text { color: var(--rns-steel-soft); }

/* Native select: custom light caret on the dark field */
.rns-page .form-select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23B8C3D6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .95rem center;
  background-size: 14px 14px;
  padding-right: 2.6rem;
}
.rns-page .form-select:focus {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%234E86C8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
}

/* Readable dropdown options (the OS popup inherits these) */
.rns-page .form-select option,
.rns-page .form-control option {
  background-color: #0F2347;
  color: var(--rns-white-text);
}
.rns-page .form-select option:checked,
.rns-page .form-select option:hover {
  background-color: var(--rns-orange);
  color: var(--rns-white-text);
}

/* Date & time pickers: dark scheme + a visible, on-brand icon */
.rns-page input[type=date].form-control,
.rns-page input[type=time].form-control { color-scheme: dark; }
.rns-page input[type=date]::-webkit-calendar-picker-indicator,
.rns-page input[type=time]::-webkit-calendar-picker-indicator {
  filter: invert(72%) sepia(38%) saturate(900%) hue-rotate(335deg) brightness(101%);
  opacity: .85;
  cursor: pointer;
}
.rns-page input[type=date]::-webkit-calendar-picker-indicator:hover,
.rns-page input[type=time]::-webkit-calendar-picker-indicator:hover { opacity: 1; }

/* ----------------- Contact info column ----------------- */
.info-list {
  list-style:none; padding:0; margin:0;
}
.info-list li {
  display:flex; gap:1rem; align-items:flex-start;
  padding:1rem 0; border-bottom:1px solid var(--rns-line);
}
.info-list li:last-child { border-bottom:none; }
.info-list i {
  font-size:1.3rem; color: var(--rns-orange-hi);
  background: rgba(44,108,176,.1);
  width:44px; height:44px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.info-list strong { color:var(--rns-white-text); display:block; }
.info-list span, .info-list a { color: var(--rns-steel-soft); }

/* Contact: 24/7 emergency callout */
.contact-emergency {
  display: flex; align-items: center; gap: 1rem;
  margin-top: 1.8rem;
  padding: 1.3rem 1.5rem;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(44,108,176,.16), rgba(44,108,176,.04));
  border: 1px solid rgba(44,108,176,.32);
}
.contact-emergency .ce-icon {
  width: 50px; height: 50px; border-radius: 50%; flex-shrink: 0;
  background: var(--rns-orange); color: var(--rns-white-text);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.4rem;
  box-shadow: 0 6px 16px rgba(44,108,176,.4);
}
.contact-emergency .ce-label {
  display: block;
  color: var(--rns-orange-hi);
  font-size: .66rem; font-weight: 700; letter-spacing: .2em;
  text-transform: uppercase; margin-bottom: .2rem;
}
.contact-emergency .ce-phone {
  display: block; color: var(--rns-white-text); text-decoration: none;
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 700; font-size: 1.4rem; letter-spacing: .02em; line-height: 1.1;
}
.contact-emergency .ce-phone:hover { color: var(--rns-white-text); text-decoration: underline; text-underline-offset: 3px; }

/* Booking: vertical numbered stepper */
.book-steps { list-style: none; counter-reset: bk; margin: 0; padding: 0; }
.book-steps li {
  position: relative; counter-increment: bk;
  padding: 0 0 1.25rem 2.8rem;
  color: var(--rns-steel-soft); line-height: 1.5; font-size: .92rem;
}
.book-steps li:last-child { padding-bottom: 0; }
.book-steps li::before {
  content: counter(bk);
  position: absolute; left: 0; top: 0;
  width: 32px; height: 32px; border-radius: 50%;
  background: rgba(44,108,176,.12); color: var(--rns-orange-hi);
  border: 1px solid rgba(44,108,176,.4);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Barlow Condensed','Inter',sans-serif; font-weight: 800; font-size: 1rem;
}
.book-steps li::after {
  content: ""; position: absolute; left: 15px; top: 34px; bottom: .4rem; width: 2px;
  background: linear-gradient(var(--rns-orange), rgba(44,108,176,.1));
}
.book-steps li:last-child::after { display: none; }
.book-steps strong { display: block; color: var(--rns-white-text); font-weight: 600; margin-bottom: .15rem; }

/* ====================================================================
   Pre-footer CTA (orange) + main footer + credit bar
   ==================================================================== */

/* ---- Pre-footer CTA ---- */
.pre-footer-cta {
  position: relative;
  padding: 4.5rem 0;
  background:
    radial-gradient(900px 500px at 88% -10%, rgba(255,255,255,.10), transparent 60%),
    linear-gradient(135deg, var(--rns-orange) 0%, #0B1E3F 100%);
  color: var(--rns-white-text);
  overflow: hidden;
}
.pre-footer-cta::before {
  content: ''; position: absolute;
  right: -120px; top: -120px;
  width: 360px; height: 360px;
  background: rgba(255,255,255,.07);
  border-radius: 50%;
  pointer-events: none;
}
.pre-footer-cta::after {
  content: ''; position: absolute;
  left: -60px; bottom: -140px;
  width: 280px; height: 280px;
  background: rgba(0,0,0,.10);
  border-radius: 50%;
  pointer-events: none;
}
.pre-footer-cta > .container { position: relative; z-index: 1; }

.pre-footer-grid {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2.5rem;
  align-items: center;
}
.pre-footer-eyebrow {
  display: inline-block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.92);
  padding: .3rem .8rem;
  background: rgba(0,0,0,.18);
  border-radius: 50px;
  margin-bottom: .85rem;
}
.pre-footer-text h2 {
  color: var(--rns-white-text);
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  font-weight: 800;
  letter-spacing: .015em;
  margin: 0 0 .6rem;
  line-height: 1.1;
}
.pre-footer-text p {
  color: rgba(255,255,255,.92);
  margin: 0;
  font-size: 1.02rem;
  max-width: 560px;
  line-height: 1.5;
}

.pre-footer-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1.1rem;
  flex-shrink: 0;
}
.pre-footer-emergency {
  text-align: right;
  border-top: 1px solid rgba(255,255,255,.28);
  padding-top: .9rem;
  min-width: 220px;
}
.emerg-label {
  display: block;
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.78);
  font-weight: 700;
  margin-bottom: .25rem;
}
.emerg-phone {
  color: var(--rns-white-text);
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  letter-spacing: .02em;
}
.emerg-phone:hover { color: var(--rns-white-text); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 767.98px) {
  .pre-footer-cta { padding: 3.5rem 0; }
  .pre-footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .pre-footer-actions { align-items: flex-start; width: 100%; }
  .pre-footer-emergency { text-align: left; }
}

/* ---- Main footer ---- */
.rns-footer {
  background: var(--rns-navy-deep);
  border-top: 1px solid var(--rns-line);
  padding: 5rem 0 0;
  color: var(--rns-steel-soft);
}

.footer-brand {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  text-decoration: none;
  margin-bottom: 1.4rem;
}
.footer-logo {
  height: 60px;
  width: auto;
  display: block;
}
@media (max-width: 575.98px) {
  .footer-logo { height: 52px; }
}
.footer-mark {
  width: 46px; height: 46px;
  background: var(--rns-orange);
  color: var(--rns-white-text);
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  flex-shrink: 0;
  box-shadow: 0 6px 18px rgba(44,108,176,.28);
}
.footer-brand-text strong {
  display: block;
  color: var(--rns-white-text);
  font-size: 1.05rem;
  line-height: 1.1;
  letter-spacing: .02em;
}
.footer-brand-text small {
  display: block;
  color: var(--rns-steel-soft);
  font-size: .72rem;
  margin-top: 3px;
  line-height: 1.3;
}

.footer-blurb {
  color: var(--rns-steel-soft);
  font-size: .92rem;
  line-height: 1.6;
  margin-bottom: 1.3rem;
  max-width: 380px;
}

.footer-accred {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-bottom: 1.5rem;
}
.footer-chip {
  display: inline-block;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--rns-orange-hi);
  background: rgba(44,108,176,.07);
  border: 1px solid rgba(44,108,176,.25);
  border-radius: 4px;
  padding: .25rem .55rem;
  line-height: 1.1;
}

.footer-social {
  display: flex;
  gap: .55rem;
}
.footer-social a {
  width: 40px; height: 40px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.05);
  color: var(--rns-steel);
  border: 1px solid var(--rns-line);
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
  text-decoration: none;
  font-size: 1rem;
}
.footer-social a:hover {
  background: var(--rns-orange);
  border-color: var(--rns-orange);
  color: var(--rns-white-text);
  transform: translateY(-2px);
}

.footer-col-title {
  color: var(--rns-white-text);
  font-family: 'Inter','Barlow Condensed',sans-serif;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  margin: 0 0 1.4rem;
  position: relative;
  padding-bottom: .55rem;
}
.footer-col-title::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 28px; height: 2px;
  background: var(--rns-orange);
  border-radius: 2px;
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-links li { padding: .35rem 0; }
.footer-links a {
  color: var(--rns-steel-soft);
  font-size: .92rem;
  text-decoration: none;
  display: inline-block;
  transition: color .2s ease, padding-left .2s ease;
}
.footer-links a:hover {
  color: var(--rns-orange-hi);
  padding-left: 4px;
}
.footer-links .footer-all-link {
  color: var(--rns-orange-hi);
  font-weight: 600;
  font-size: .85rem;
  letter-spacing: .04em;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.footer-links .footer-all-link i { transition: transform .2s ease; font-size: .9em; }
.footer-links .footer-all-link:hover { padding-left: 0; }
.footer-links .footer-all-link:hover i { transform: translateX(4px); }

.footer-contact {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-contact li {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  padding: .55rem 0;
}
.footer-contact > li > i {
  color: var(--rns-orange);
  font-size: 1rem;
  width: 22px;
  flex-shrink: 0;
  margin-top: 4px;
}
.footer-contact .ftr-lbl {
  display: block;
  color: var(--rns-steel-soft);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  margin-bottom: 2px;
}
.footer-contact a,
.footer-contact > li > div > span {
  color: var(--rns-white-text);
  font-size: .92rem;
  text-decoration: none;
  line-height: 1.45;
}
.footer-contact a:hover { color: var(--rns-orange-hi); }

/* Legacy helper (kept for any pages that still reference it) */
.text-muted-light { color: var(--rns-steel-soft) !important; }

/* ---- Credit bar ---- */
.footer-credit {
  background: rgba(0,0,0,.28);
  margin-top: 4rem;
  padding: 1.25rem 0;
  border-top: 1px solid var(--rns-line);
}
.credit-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  font-size: .8rem;
  color: var(--rns-steel-soft);
}
.credit-left {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
}
.credit-sep { opacity: .35; }
.credit-right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.1rem;
}
.credit-right a {
  color: var(--rns-steel-soft);
  text-decoration: none;
  font-size: .8rem;
  transition: color .2s ease;
}
.credit-right a:hover { color: var(--rns-orange-hi); }
.credit-right .admin-link {
  border-left: 1px solid var(--rns-line);
  padding-left: 1.1rem;
  opacity: .55;
}
.credit-right .admin-link:hover { opacity: 1; }

@media (max-width: 767.98px) {
  .rns-footer { padding-top: 4rem; }
  .credit-row { flex-direction: column; align-items: flex-start; gap: .8rem; }
  .credit-right { gap: .9rem; }
  .credit-right .admin-link { border-left: none; padding-left: 0; }
}

/* ----------------- Legal / content pages ----------------- */
.legal-section { padding: 4rem 0 5rem; }
.legal-prose { max-width: 820px; margin: 0 auto; color: var(--rns-steel-soft); }
.legal-prose h2 {
  color: var(--rns-white-text); font-family: 'Barlow Condensed','Inter',sans-serif;
  font-size: 1.5rem; margin: 2.6rem 0 .8rem; letter-spacing: .01em;
  scroll-margin-top: 110px;
}
.legal-prose h2:first-of-type { margin-top: 0; }
.legal-prose h3 { color: var(--rns-white-text); font-size: 1.15rem; margin: 1.6rem 0 .5rem; }
.legal-prose p { line-height: 1.75; margin: 0 0 1rem; }
.legal-prose ul { margin: 0 0 1.2rem; padding-left: 0; list-style: none; }
.legal-prose ul li { position: relative; padding: .35rem 0 .35rem 1.7rem; line-height: 1.65; }
.legal-prose ul li::before {
  content: "\F270"; font-family: "bootstrap-icons";
  position: absolute; left: 0; top: .4rem; color: var(--rns-orange-hi); font-size: .8rem;
}
.legal-prose a { color: var(--rns-orange-hi); }
.legal-prose strong { color: var(--rns-steel); }

.legal-updated {
  display: inline-flex; align-items: center; gap: .5rem;
  margin-top: 1.2rem; color: var(--rns-steel-soft); font-size: .85rem;
}
.legal-updated i { color: var(--rns-orange-hi); }

.legal-note {
  background: rgba(44,108,176,.07);
  border: 1px solid rgba(44,108,176,.25);
  border-left: 3px solid var(--rns-orange);
  border-radius: 0 8px 8px 0;
  padding: 1rem 1.2rem; margin: 0 0 2.2rem;
  color: var(--rns-steel); font-size: .9rem; line-height: 1.6;
}

.legal-toc {
  background: var(--rns-card); border: 1px solid var(--rns-line);
  border-radius: 12px; padding: 1.3rem 1.5rem; margin-bottom: 2.5rem;
}
.legal-toc strong {
  color: var(--rns-white-text); display: block;
  font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; margin-bottom: .7rem;
}
.legal-toc ol { margin: 0; padding-left: 1.2rem; color: var(--rns-steel-soft); }
.legal-toc li { padding: .2rem 0; }
.legal-toc a { color: var(--rns-steel-soft); }
.legal-toc a:hover { color: var(--rns-orange-hi); }

/* ----------------- Error (404) page ----------------- */
.error-section {
  min-height: 60vh; display: flex; align-items: center;
  padding: 5rem 0; text-align: center;
}
.error-code {
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 800; line-height: .9;
  font-size: clamp(6rem, 20vw, 13rem);
  color: var(--rns-white-text); letter-spacing: -.02em;
  text-shadow: 0 10px 60px rgba(0,0,0,.5);
}
.error-code span { color: var(--rns-orange); }
.error-section h1 {
  color: var(--rns-white-text); font-size: clamp(1.6rem, 3vw, 2.4rem); margin: .5rem 0 1rem;
}
.error-section p { color: var(--rns-steel-soft); max-width: 560px; margin: 0 auto 2rem; line-height: 1.6; }

/* ----------------- Single service (detail page) ----------------- */
.svc-hero {
  position: relative;
  padding: 5.5rem 0 4rem; color:var(--rns-white-text);
  background:
    linear-gradient(180deg, rgba(6,19,48,.60) 0%, rgba(6,19,48,.90) 75%, var(--rns-navy-deep) 100%),
    var(--svc-img) center/cover no-repeat;
  border-bottom: 1px solid var(--rns-line);
}
.svc-hero .crumbs a { color: var(--rns-steel-soft); }
.svc-hero-badges { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-bottom:1.1rem; }
.svc-icon-lg {
  width:66px; height:66px; border-radius:15px;
  background: rgba(44,108,176,.14); color: var(--rns-orange-hi);
  display:inline-flex; align-items:center; justify-content:center; font-size:1.95rem;
  border:1px solid rgba(44,108,176,.32); flex-shrink:0;
}
.svc-hero h1 { font-size: clamp(2rem,4vw,3.1rem); margin:0; line-height:1.02; }
.svc-hero-lead { max-width:760px; color: var(--rns-steel); font-size:1.1rem; line-height:1.6; }

/* In-content image figure */
.svc-figure {
  position: relative; margin: 0 0 1.8rem;
  border-radius: 16px; overflow: hidden;
  border: 1px solid var(--rns-line);
  aspect-ratio: 16 / 7; background: var(--rns-navy-soft);
}
.svc-figure img { width:100%; height:100%; object-fit:cover; display:block; }
.svc-figure::after {
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 45%, rgba(6,19,48,.82) 100%);
}
.svc-figure figcaption {
  position:absolute; left:1.3rem; right:1.3rem; bottom:1.05rem; z-index:1;
  color:var(--rns-white-text); font-family:'Barlow Condensed','Inter',sans-serif;
  font-size:1.1rem; letter-spacing:.01em;
}

/* Content card */
.svc-body-card {
  background: var(--rns-card); border:1px solid var(--rns-line);
  padding: 2.4rem; border-radius:16px; color: var(--rns-steel);
}
.svc-body-card + .svc-body-card { margin-top: 1.5rem; }
.svc-body-card p { color: var(--rns-steel-soft); line-height:1.65; }
.svc-body-card ul { margin:.3rem 0 0; padding-left:0; list-style:none; }
.svc-body-card ul li {
  position: relative; padding:.4rem 0 .4rem 1.8rem; color: var(--rns-steel);
  border-bottom: 1px solid var(--rns-line);
}
.svc-body-card ul li:last-child { border-bottom:none; }
.svc-body-card ul li::before {
  content:"\F26A"; font-family:"bootstrap-icons";
  position:absolute; left:0; top:.4rem; color: var(--rns-orange-hi); font-size:1rem;
}
.svc-body-card h3 { color:var(--rns-white-text); }
.svc-section-label {
  color: var(--rns-orange-hi); font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; font-size:.74rem; margin-bottom:.85rem;
}

/* Standards chips */
.svc-standards-row { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.3rem; }
.svc-standards-row .std-chip {
  font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color: var(--rns-orange-hi); background: rgba(44,108,176,.08);
  border:1px solid rgba(44,108,176,.3); border-radius:5px; padding:.4rem .7rem;
}

/* Sidebar */
.svc-aside { position: sticky; top: 92px; display:flex; flex-direction:column; gap:1.5rem; }
.svc-facts { list-style:none; margin:.2rem 0 0; padding:0; }
.svc-facts li {
  display:flex; justify-content:space-between; align-items:baseline; gap:1rem;
  padding:.75rem 0; border-bottom:1px solid var(--rns-line);
}
.svc-facts li:last-child { border-bottom:none; padding-bottom:0; }
.svc-facts .k {
  color: var(--rns-steel-soft); font-size:.72rem; letter-spacing:.1em;
  text-transform:uppercase; flex-shrink:0;
}
.svc-facts .v { color:var(--rns-white-text); font-weight:600; text-align:right; }

@media (max-width: 991.98px) {
  .svc-aside { position: static; }
}

/* ----------------- Misc ----------------- */
.bg-grid {
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 60px 60px;
}
.divider-orange {
  width:50px; height:3px; background: var(--rns-orange); border-radius:2px; margin: 0 auto 1.5rem;
}
.text-orange { color: var(--rns-orange-hi) !important; }

/* ====================================================================
   Admin panel
   ==================================================================== */
.admin-body {
  background: #E8EAEE;
  color: #141A24;
  font-family: 'Inter', sans-serif;
  display:flex; min-height:100vh;
}
.admin-sidebar {
  width: 260px; background: #0B1E3F; color:var(--rns-white-text); padding: 1.4rem 1rem;
  position: sticky; top:0; height:100vh; overflow-y:auto;
  flex-shrink:0;
}
.admin-sidebar .brand {
  display:flex; align-items:center; gap:.6rem; padding:.6rem .4rem 1.5rem;
  border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:1rem;
}
.admin-sidebar .brand i { color: var(--rns-orange); font-size:1.4rem; }
.admin-sidebar .brand strong { font-size:.95rem; }
.admin-sidebar .nav-section { font-size:.7rem; color:#7A8AA8; text-transform:uppercase; letter-spacing:.12em; padding: 1rem .6rem .4rem; }
.admin-sidebar a.side-link {
  display:flex; align-items:center; gap:.7rem;
  padding:.65rem .8rem; border-radius:8px; color:#C3CCDD; font-size:.92rem;
  margin-bottom:.15rem;
}
.admin-sidebar a.side-link:hover { background: rgba(255,255,255,.06); color:var(--rns-white-text); }
.admin-sidebar a.side-link.active { background: var(--rns-orange); color:var(--rns-white-text); }
.admin-sidebar a.side-link i { font-size:1.1rem; width:20px; text-align:center; }

.admin-main { flex-grow:1; min-width:0; }
.admin-topbar {
  background:var(--rns-white); padding:.9rem 2rem; border-bottom:1px solid #E4E9F2;
  display:flex; justify-content:space-between; align-items:center;
  position: sticky; top:0; z-index:10;
}
.admin-topbar h1 { font-size:1.2rem; margin:0; color:#141A24; font-family:'Inter',sans-serif; font-weight:700; }
.admin-content { padding: 2rem; }

.stat-card {
  background:var(--rns-white); border:1px solid #E4E9F2; border-radius:12px;
  padding:1.4rem; height:100%;
}
.stat-card .stat-label { font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; color:#6B7B99; }
.stat-card .stat-val   { font-size:2rem; font-weight:700; color:#141A24; line-height:1.1; margin-top:.3rem; }
.stat-card .stat-icon  { font-size:1.6rem; color: var(--rns-orange); }

.admin-card {
  background:var(--rns-white); border:1px solid #E4E9F2; border-radius:12px;
  padding:1.6rem; margin-bottom:1.5rem;
}
.admin-card h2 { font-size:1.1rem; margin:0 0 1rem; color:#141A24; font-family:'Inter',sans-serif; font-weight:700; }

.admin-body .form-control, .admin-body .form-select {
  background:var(--rns-white); border:1px solid #D7DFEC; color:#141A24;
}
.admin-body .form-control:focus, .admin-body .form-select:focus {
  border-color: var(--rns-orange);
  box-shadow: 0 0 0 .2rem rgba(44,108,176,.15);
  color:#141A24;
}
.admin-body .table {
  --bs-table-bg: var(--rns-white); color:#141A24;
}
.admin-body .table thead th { background:#E8EAEE; color:#445371; font-size:.82rem; text-transform:uppercase; letter-spacing:.04em; border:none; }
.admin-body .table tbody td { vertical-align: middle; border-color:#EDF1F8; }
.badge-status {
  font-size:.72rem; padding:.35em .6em; border-radius:50px; font-weight:600;
}
.bs-new        { background:#FFE7D6; color:#A24A0F; }
.bs-confirmed  { background:#DCE7FF; color:#1A3F8A; }
.bs-in_progress{ background:#FFF3CD; color:#856404; }
.bs-completed  { background:#D4EDDA; color:#155724; }
.bs-cancelled  { background:#F1D7D7; color:#9B2C2C; }

/* ===== Admin login (split screen) ===== */
.admin-login {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 100vh;
}

/* Brand / pitch panel */
.admin-login__aside {
  position: relative;
  color: var(--rns-white-text);
  padding: 3rem 3.2rem;
  display: flex; flex-direction: column; justify-content: space-between;
  background:
    linear-gradient(160deg, rgba(6,19,48,.82), rgba(6,19,48,.95)),
    var(--login-img) center/cover no-repeat,
    linear-gradient(135deg, #0B1E3F, #1A3870);
  overflow: hidden;
}
.admin-login__aside::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(720px 440px at 92% 115%, rgba(44,108,176,.22), transparent 60%);
  pointer-events: none;
}
.admin-login__aside > * { position: relative; z-index: 1; }
.admin-login__logo { height: 66px; width: auto; }
.admin-login__pitch h2 {
  font-family: 'Barlow Condensed','Inter',sans-serif; font-weight: 800;
  font-size: clamp(1.9rem, 2.6vw, 2.7rem); line-height: 1.04; margin: 0 0 1rem;
  text-transform: uppercase; letter-spacing: .01em;
}
.admin-login__pitch p { color: var(--rns-steel); max-width: 430px; line-height: 1.6; margin: 0; }
.admin-login__features { list-style: none; padding: 0; margin: 1.7rem 0 0; display: grid; gap: .75rem; }
.admin-login__features li { display: flex; align-items: center; gap: .75rem; color: var(--rns-steel); font-size: .95rem; }
.admin-login__features i { color: var(--rns-orange-hi); font-size: 1.15rem; }
.admin-login__chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.admin-login__chips span {
  font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--rns-orange-hi); background: rgba(44,108,176,.08);
  border: 1px solid rgba(44,108,176,.25); border-radius: 4px; padding: .25rem .55rem;
}

/* Form panel */
.admin-login__main {
  display: flex; align-items: center; justify-content: center;
  padding: 2.5rem 1.5rem; background: var(--rns-navy-deep);
}
.admin-login__card { width: 100%; max-width: 400px; }
.admin-login__mobilelogo { display: none; }
.admin-login__eyebrow {
  color: var(--rns-orange-hi); font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; font-size: .72rem; margin-bottom: .5rem;
}
.admin-login__card h1 {
  color: var(--rns-white-text); font-family: 'Barlow Condensed','Inter',sans-serif;
  font-size: 2rem; margin: 0 0 .3rem; letter-spacing: .01em;
}
.admin-login__card .sub { color: var(--rns-steel-soft); font-size: .92rem; margin-bottom: 1.7rem; }

.admin-login__pass { position: relative; }
.admin-login__toggle {
  position: absolute; right: .4rem; top: 50%; transform: translateY(-50%);
  background: none; border: none; color: var(--rns-steel-soft); cursor: pointer;
  padding: .45rem .55rem; font-size: 1.05rem; line-height: 1;
}
.admin-login__toggle:hover { color: var(--rns-white-text); }

.admin-login__secure {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  color: var(--rns-steel-soft); font-size: .78rem; margin-top: 1.6rem;
}
.admin-login__secure i { color: var(--rns-orange-hi); }
.admin-login__back { text-align: center; margin-top: 1.1rem; }
.admin-login__back a { color: var(--rns-steel-soft); font-size: .88rem; text-decoration: none; }
.admin-login__back a:hover { color: var(--rns-orange-hi); }

@media (max-width: 860px) {
  .admin-login { grid-template-columns: 1fr; }
  .admin-login__aside { display: none; }
  .admin-login__mobilelogo { display: block; text-align: center; margin-bottom: 1.6rem; }
  .admin-login__mobilelogo img { height: 58px; width: auto; }
}

/* ----------------- Helpers ----------------- */
@media (max-width: 991.98px) {
  .admin-sidebar {
    width: 100%; height: auto; position: relative;
    padding-bottom: .5rem;
  }
  .admin-body { flex-direction: column; }
}
@media (max-width: 575.98px) {
  .hero-stats { gap:1.2rem; }
  .hero-stats .stat strong { font-size:1.5rem; }
  .cta-strip { padding: 2rem; }
}

/* ====================================================================
   LIGHT THEME
   White / light-grey content, calm blue accent. Photo heroes, the
   navbar and the footer intentionally stay dark. This block is last
   so it overrides the dark defaults above; remove it to revert.
   ==================================================================== */
:root {
  --rns-card:        var(--rns-white); /* content cards (off-white, never pure #fff) */
  --rns-line:        rgba(11,30,63,.12);
  --rns-steel:       #1C212B;          /* body text on light (near-black charcoal) */
  --rns-steel-soft:  #353C49;          /* muted text on light (darker, clearly readable) */
  --rns-shadow:      0 16px 40px -20px rgba(11,30,63,.22);
  --ink:             #11151D;          /* headings on light (near-black) */
}

/* Re-light the dark containers via scoped variables (descendants inherit) */
.rns-navbar, .rns-hero, .page-header, .svc-hero, .accred-strip,
.rns-footer, .pre-footer-cta, .cta-strip, .hero-stats-v2,
.admin-sidebar, .admin-login {
  --rns-steel:      #E5EAF2;
  --rns-steel-soft: #B8C3D6;
  --rns-line:       rgba(255,255,255,.08);
  --rns-card:       #0F2347;
  --ink:            var(--rns-white-text);
  --rns-orange:     #7DB0E8;   /* lighter accent so it reads on dark navy */
  --rns-orange-hi:  #9BC6F2;
}

/* Page + section backgrounds */
body.rns-page  { background: var(--rns-white); color: var(--rns-steel); }
.section-light  { background: var(--rns-white); }
.section-darker { background: #E4E7EC; }

/* Links INSIDE light content use the blue accent (buttons keep their own colour) */
.section-light a:not(.btn), .section-darker a:not(.btn), .legal-prose a:not(.btn) { color: var(--rns-orange); }
.section-light a:not(.btn):hover, .section-darker a:not(.btn):hover, .legal-prose a:not(.btn):hover { color: var(--rns-orange-hi); }

/* Navbar + footer keep light/white text (never the content blue) */
.rns-navbar .nav-link { color: #E7ECF4; }
.rns-navbar .nav-link:hover, .rns-navbar .nav-link.active { color: var(--rns-white-text); }
.rns-footer .footer-links a { color: #D7E0EE; }
.rns-footer .footer-links a:hover { color: var(--rns-white-text); }
.rns-footer .footer-contact a,
.rns-footer .footer-contact > li > div > span { color: var(--rns-white-text); }
.rns-footer .footer-blurb { color: #C3CEDF; }

/* Solid blue buttons: fixed medium blue + white text everywhere (dark or light) */
.btn-accent {
  --btn-bg: #2C6CB0; --btn-border: #2C6CB0;
  --btn-bg-hover: #275F9E; --btn-border-hover: #275F9E;
  --btn-color: var(--rns-white-text); --btn-color-hover: var(--rns-white-text);
  --btn-shadow: 0 1px 2px rgba(11,30,63,.12);
  --btn-shadow-hover: 0 8px 20px -6px rgba(44,108,176,.45);
}
.btn-accent, .btn-accent:hover, .btn-accent:focus { color: var(--rns-white-text); }
.btn-accent:active { --btn-shadow: inset 0 2px 4px rgba(0,0,0,.18); }

/* Headings / emphasis that were hard-coded white -> dark ink */
.section-title,
.service-card h3, .feature-tile h5, .value-card h4,
.why-body h3, .job-title-block strong,
.testimonial-card .quote, .about-quote blockquote,
.svc-body-card h3, .svc-facts .v,
.std-tile strong, .info-list strong, .book-steps strong,
.legal-prose h2, .legal-prose h3, .legal-toc strong,
.error-code, .error-section h1 { color: var(--ink); }
.error-code span { color: var(--rns-orange); }
.eyebrow-text { color: var(--rns-orange); }

/* Card surfaces + borders on light */
.service-card, .value-card, .job-entry, .std-tile, .svc-body-card,
.about-quote, .legal-toc, .form-card, .testimonial-card, .feature-tile {
  background: var(--rns-white);
  border-color: var(--rns-line);
}
.phase-node .phase-num { background: var(--rns-white); }
.job-entry:hover { background: #E4E7EC; }
.section-wave-top path { fill: #E4E7EC; }
.contact-emergency .ce-phone { color: var(--ink); }

/* "By the numbers" stats band: the base style is translucent "glass" meant
   to sit on a dark hero. On the light page that blends to a dull grey and the
   labels wash out - so make it a solid dark navy panel instead. */
.hero-stats-v2 {
  background: var(--rns-navy-soft);            /* shows as 1px divider lines */
  border-color: rgba(11,30,63,.18);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: 0 16px 40px -20px rgba(11,30,63,.30);
}
.hero-stats-v2 .stat { background: var(--rns-navy); }

/* Outline/ghost buttons need a dark outline on light backgrounds */
.section-light .btn-ghost, .section-darker .btn-ghost,
.section-light .btn-outline-light, .section-darker .btn-outline-light {
  --btn-bg: var(--rns-white);
  --btn-color: var(--ink);
  --btn-border: rgba(11,30,63,.22);
  --btn-bg-hover: #E4E7EC;
  --btn-color-hover: var(--ink);
  --btn-border-hover: rgba(11,30,63,.40);
}

/* Public form inputs sit on white cards now */
.form-card .form-label { color: var(--rns-steel); }
.form-card .form-control, .form-card .form-select, .form-card textarea.form-control {
  background-color: var(--rns-white); border: 1px solid #CFD8E6; color: var(--ink);
}
.form-card .form-control::placeholder { color: #9AA6BA; }
.form-card .form-control:focus, .form-card .form-select:focus {
  background-color: var(--rns-white); border-color: var(--rns-orange); color: var(--ink);
  box-shadow: 0 0 0 .2rem rgba(44,108,176,.18);
}
/* keep the caret a single glyph and the option list readable on light */
.form-card .form-select { background-repeat: no-repeat; background-position: right .95rem center; background-size: 14px 14px; }
.form-card .form-select option { background-color: var(--rns-white); color: var(--ink); }
.form-card input[type=date].form-control, .form-card input[type=time].form-control { color-scheme: light; }
.form-card input[type=date]::-webkit-calendar-picker-indicator,
.form-card input[type=time]::-webkit-calendar-picker-indicator { filter: none; opacity: .7; }
.form-card .form-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%232C6CB0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
}

/* Pre-footer CTA + legacy CTA: calm navy instead of the orange gradient */
.pre-footer-cta {
  background:
    radial-gradient(900px 500px at 88% -10%, rgba(255,255,255,.07), transparent 60%),
    linear-gradient(135deg, #16315C 0%, #0B1E3F 100%);
}
.cta-strip { background: linear-gradient(135deg, #16315C 0%, #0B1E3F 100%); }

/* ---- FAQ accordion ---- */
.faq-accordion {
  --bs-accordion-bg: var(--rns-white);
  --bs-accordion-color: var(--rns-steel);
  --bs-accordion-border-color: var(--rns-line);
  --bs-accordion-border-radius: 12px;
  --bs-accordion-inner-border-radius: 12px;
  --bs-accordion-btn-color: var(--ink);
  --bs-accordion-active-color: var(--rns-orange);
  --bs-accordion-active-bg: #E6E9EE;
  --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem rgba(44,108,176,.18);
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%232C6CB0' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%232C6CB0' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
}
.faq-accordion .accordion-item {
  border: 1px solid var(--rns-line);
  border-radius: 12px;
  margin-bottom: .85rem;
  overflow: hidden;
}
.faq-accordion .accordion-button {
  font-family: 'Barlow Condensed','Inter',sans-serif;
  font-weight: 700;
  font-size: 1.12rem;
  letter-spacing: .01em;
  padding: 1.05rem 1.3rem;
}
.faq-accordion .accordion-button:not(.collapsed) { box-shadow: none; }
.faq-accordion .accordion-body {
  color: var(--rns-steel);
  line-height: 1.7;
  padding: .25rem 1.3rem 1.3rem;
}

/* ---- Service cards with a photo ---- */
.svc-photocard { padding: 0; overflow: hidden; }
.svc-photocard .svc-photo {
  position: relative;
  height: 188px;
  background-size: cover;
  background-position: center;
  background-color: #0F2347;
}
.svc-photocard .svc-photo::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(11,30,63,.10) 0%, rgba(11,30,63,.20) 55%, rgba(11,30,63,.72) 100%);
}
.svc-photocard .svc-photo-badge {
  position: absolute; left: 1rem; bottom: 1rem; z-index: 1;
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .35rem .7rem .35rem .4rem;
  background: rgba(11,30,63,.55);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50px;
  color: var(--rns-white-text);
  font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
}
.svc-photocard .svc-photo-badge .num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--rns-orange); color: var(--rns-white-text);
  font-family: 'Barlow Condensed','Inter',sans-serif; font-size: .9rem; letter-spacing: 0;
}
.svc-photocard .svc-photo-body {
  padding: 1.6rem;
  display: flex; flex-direction: column; flex-grow: 1;
}
.svc-photocard .svc-icon { margin-top: -3.4rem; margin-bottom: 1rem; position: relative; z-index: 1; border: 3px solid var(--rns-white); }
.svc-photocard:hover .svc-photo { filter: brightness(1.04); }
