@import url("https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,500&display=swap");

:root {
  --limitless-glass-blue: #0b1f3a;
  --limitless-glass-blue-2: #12345f;
  --limitless-blue-edge: #4c8fd1;
  --limitless-blue-glow: rgba(64, 139, 214, .28);
}

@property --gradient-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

@property --gradient-angle-offset {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

@property --gradient-percent {
  syntax: "<percentage>";
  initial-value: 5%;
  inherits: false;
}

@property --gradient-shine {
  syntax: "<color>";
  initial-value: white;
  inherits: false;
}

.shiny-cta {
  --shiny-cta-bg: #000000;
  --shiny-cta-bg-subtle: #1a1818;
  --shiny-cta-fg: #ffffff;
  --shiny-cta-highlight: blue;
  --shiny-cta-highlight-subtle: #8484ff;
  --animation: gradient-angle linear infinite;
  --duration: 3s;
  --shadow-size: 2px;
  --transition: 800ms cubic-bezier(0.25, 1, 0.5, 1);

  isolation: isolate;
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline-offset: 4px;
  padding: 1.25rem 2.5rem;
  font-family: "Inter", sans-serif;
  font-size: 1.125rem;
  line-height: 1.2;
  font-weight: 500;
  border: 1px solid transparent;
  border-radius: 360px;
  color: var(--shiny-cta-fg);
  text-decoration: none;
  background: linear-gradient(var(--shiny-cta-bg), var(--shiny-cta-bg)) padding-box,
    conic-gradient(
      from calc(var(--gradient-angle) - var(--gradient-angle-offset)),
      transparent,
      var(--shiny-cta-highlight) var(--gradient-percent),
      var(--gradient-shine) calc(var(--gradient-percent) * 2),
      var(--shiny-cta-highlight) calc(var(--gradient-percent) * 3),
      transparent calc(var(--gradient-percent) * 4)
    ) border-box;
  box-shadow: inset 0 0 0 1px var(--shiny-cta-bg-subtle);
  transition: var(--transition);
  transition-property: --gradient-angle-offset, --gradient-percent, --gradient-shine;
}

.shiny-cta::before,
.shiny-cta::after,
.shiny-cta span::before {
  content: "";
  pointer-events: none;
  position: absolute;
  inset-inline-start: 50%;
  inset-block-start: 50%;
  translate: -50% -50%;
  z-index: -1;
}

.shiny-cta:active {
  translate: 0 1px;
}

.shiny-cta::before {
  --size: calc(100% - var(--shadow-size) * 3);
  --position: 2px;
  --space: calc(var(--position) * 2);
  width: var(--size);
  height: var(--size);
  background: radial-gradient(
    circle at var(--position) var(--position),
    white calc(var(--position) / 4),
    transparent 0
  ) padding-box;
  background-size: var(--space) var(--space);
  background-repeat: space;
  mask-image: conic-gradient(
    from calc(var(--gradient-angle) + 45deg),
    black,
    transparent 10% 90%,
    black
  );
  -webkit-mask-image: conic-gradient(
    from calc(var(--gradient-angle) + 45deg),
    black,
    transparent 10% 90%,
    black
  );
  border-radius: inherit;
  opacity: 0.4;
  z-index: -1;
}

.shiny-cta::after {
  --animation: shimmer linear infinite;
  width: 100%;
  aspect-ratio: 1;
  background: linear-gradient(
    -50deg,
    transparent,
    var(--shiny-cta-highlight),
    transparent
  );
  mask-image: radial-gradient(circle at bottom, transparent 40%, black);
  -webkit-mask-image: radial-gradient(circle at bottom, transparent 40%, black);
  opacity: 0.6;
}

.shiny-cta span {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  z-index: 1;
}

.shiny-cta span::before {
  --size: calc(100% + 1rem);
  width: var(--size);
  height: var(--size);
  box-shadow: inset 0 -1ex 2rem 4px var(--shiny-cta-highlight);
  opacity: 0;
  transition: opacity var(--transition);
  animation: calc(var(--duration) * 1.5) breathe linear infinite;
}

.shiny-cta,
.shiny-cta::before,
.shiny-cta::after {
  animation: var(--animation) var(--duration),
    var(--animation) calc(var(--duration) / 0.4) reverse paused;
  animation-composition: add;
}

.shiny-cta:is(:hover, :focus-visible) {
  --gradient-percent: 20%;
  --gradient-angle-offset: 95deg;
  --gradient-shine: var(--shiny-cta-highlight-subtle);
}

.shiny-cta:is(:hover, :focus-visible),
.shiny-cta:is(:hover, :focus-visible)::before,
.shiny-cta:is(:hover, :focus-visible)::after {
  animation-play-state: running;
}

.shiny-cta:is(:hover, :focus-visible) span::before {
  opacity: 1;
}

.btn.shiny-cta:hover { transform: none; }
.btn.shiny-cta::after,
.btn.shiny-cta:hover::after { transform: none; transition: none; }

.shiny-cta--nav {
  min-height: 42px;
  padding: .72rem 1.15rem;
  font-size: .82rem;
  white-space: nowrap;
}

.shiny-cta--compact {
  min-height: 44px;
  padding: .86rem 1.3rem;
  font-size: .9rem;
}

.shiny-cta--wide {
  width: 100%;
  min-height: 50px;
  justify-content: flex-start;
  padding: .95rem 1.2rem;
  font-size: .95rem;
  text-align: left;
}

.shiny-cta.shiny-cta-silver {
  --shiny-cta-bg: #c8ced7;
  --shiny-cta-bg-subtle: #f7f9fc;
  --shiny-cta-fg: #070b12;
  --shiny-cta-highlight: #ffffff;
  --shiny-cta-highlight-subtle: #ffffff;
  --gradient-shine: #f8fbff;
  color: #070b12;
  background:
    linear-gradient(135deg, #ffffff 0%, #b8c0cb 34%, #f7f9fc 58%, #9aa4b1 100%) padding-box,
    conic-gradient(
      from calc(var(--gradient-angle) - var(--gradient-angle-offset)),
      #7d8794,
      #ffffff var(--gradient-percent),
      #f8fbff calc(var(--gradient-percent) * 2),
      #8f99a6 calc(var(--gradient-percent) * 3),
      #dfe4eb calc(var(--gradient-percent) * 4)
    ) border-box;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    inset 0 -1px 0 rgba(58,67,78,.38),
    0 12px 30px rgba(0,0,0,.28);
}

@keyframes gradient-angle {
  to { --gradient-angle: 360deg; }
}

@keyframes shimmer {
  to { rotate: 360deg; }
}

@keyframes breathe {
  from, to { scale: 1; }
  50% { scale: 1.2; }
}

/* Shared dark-blue glass identity for the home mark and circular menu. */
.brand-mark {
  background: linear-gradient(145deg, rgba(18,52,95,.96), rgba(6,20,42,.90)) !important;
  border-color: rgba(76,143,209,.48) !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.28), inset 0 1px 0 rgba(141,194,244,.14), 0 0 24px rgba(52,114,181,.16) !important;
}

.menu-toggle:hover,
.mobile-menu.is-open .menu-toggle {
  background: linear-gradient(145deg, rgba(18,52,95,.96), rgba(6,20,42,.92)) !important;
  border-color: rgba(76,143,209,.50) !important;
  box-shadow: 0 18px 42px rgba(0,0,0,.34), 0 0 30px rgba(52,114,181,.20), inset 0 1px 0 rgba(141,194,244,.14) !important;
}

.mobile-menu-panel a:hover::before,
.mobile-menu-panel a:focus-visible::before,
.mobile-menu-panel a.active::before {
  background: linear-gradient(145deg, #163d6f, #0b2344 58%, #06162c) !important;
  border-color: rgba(104,166,225,.52) !important;
  box-shadow: 0 18px 42px rgba(0,0,0,.34), 0 0 34px rgba(52,114,181,.20), inset 0 1px 0 rgba(164,207,247,.15) !important;
}

.mobile-menu-panel .menu-label {
  background: linear-gradient(145deg, rgba(18,52,95,.96), rgba(6,20,42,.94)) !important;
  border-color: rgba(76,143,209,.44) !important;
  box-shadow: 0 14px 30px rgba(0,0,0,.30), inset 0 1px 0 rgba(141,194,244,.12) !important;
}

/* Audit and booking modal: replace decorative green with glass navy. */
.audit-modal-copy {
  background: linear-gradient(145deg, rgba(17,54,96,.46), rgba(5,18,38,.94)) !important;
}

.audit-modal-copy .eyebrow,
.audit-modal-copy .mono-pill {
  color: #a9d3ff !important;
  background: rgba(10,35,68,.84) !important;
  border-color: rgba(76,143,209,.42) !important;
}

.audit-modal-copy .eyebrow i,
.audit-modal-copy .mono-pill i {
  background: #3979b8 !important;
  box-shadow: 0 0 14px rgba(57,121,184,.58) !important;
}

.audit-tab.shiny-cta {
  width: 100%;
  justify-content: flex-start;
  text-align: left;
  color: var(--shiny-cta-fg) !important;
  background: linear-gradient(var(--shiny-cta-bg), var(--shiny-cta-bg)) padding-box,
    conic-gradient(
      from calc(var(--gradient-angle) - var(--gradient-angle-offset)),
      transparent,
      var(--shiny-cta-highlight) var(--gradient-percent),
      var(--gradient-shine) calc(var(--gradient-percent) * 2),
      var(--shiny-cta-highlight) calc(var(--gradient-percent) * 3),
      transparent calc(var(--gradient-percent) * 4)
    ) border-box;
}

.audit-tab.shiny-cta:not(.is-active) { opacity: .76; }
.audit-tab.shiny-cta.is-active { opacity: 1; }
.audit-tab.shiny-cta.shiny-cta-silver {
  color: #070b12 !important;
  background:
    linear-gradient(135deg, #ffffff 0%, #b8c0cb 34%, #f7f9fc 58%, #9aa4b1 100%) padding-box,
    conic-gradient(
      from calc(var(--gradient-angle) - var(--gradient-angle-offset)),
      #7d8794,
      #ffffff var(--gradient-percent),
      #f8fbff calc(var(--gradient-percent) * 2),
      #8f99a6 calc(var(--gradient-percent) * 3),
      #dfe4eb calc(var(--gradient-percent) * 4)
    ) border-box;
}

.calendar-box { border-color: rgba(76,143,209,.34) !important; }
.calendar-status { color: #72b8ff !important; }
.audit-field input:focus,
.audit-field select:focus,
.audit-field textarea:focus {
  border-color: rgba(76,143,209,.72) !important;
  box-shadow: 0 0 0 4px rgba(52,114,181,.18) !important;
}
.audit-consent input { accent-color: #245b93; }
.audit-message.is-success { color: #72b8ff !important; }
.ticket-mini-mark,
.ticket-completed-row i {
  color: #eef6ff !important;
  background: linear-gradient(135deg, #1a4d83, #0c2a50) !important;
  box-shadow: 0 12px 28px rgba(52,114,181,.22) !important;
}

/* Full-page comet background for the calculator and About pages. */
.support-page {
  position: relative;
  isolation: isolate;
  background: #02050a !important;
}
.support-page::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(2,5,10,.28), rgba(4,12,24,.52) 46%, rgba(2,5,10,.60));
}
.support-page .shader-canvas {
  position: fixed;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: .76;
}
.support-page main,
.support-page .footer21-wrap {
  position: relative;
  z-index: 2;
}
.support-page .nav-wrap {
  position: sticky;
  z-index: 100;
}
.support-page .footer21-animate { opacity: 1 !important; transform: none !important; filter: none !important; }

/* Calculator accent conversion: navy surfaces, green number retained. */
.calculator-support-page {
  --green: #2d6fae;
  --teal: #4f8fca;
}
.calculator-support-page .eyebrow,
.calculator-support-page .mono-pill {
  color: #abd4ff;
  background: linear-gradient(145deg, rgba(31,82,137,.26), rgba(7,21,43,.62));
  border-color: rgba(76,143,209,.42);
}
.calculator-support-page .eyebrow i {
  background: #3979b8;
  box-shadow: 0 0 14px rgba(57,121,184,.56);
}
.calculator-support-page .calculator-card {
  background: radial-gradient(circle at 15% 0%, rgba(35,68,120,.24), transparent 23rem), radial-gradient(circle at 100% 20%, rgba(52,114,181,.14), transparent 18rem), linear-gradient(145deg, rgba(8,20,38,.78), rgba(3,10,20,.72));
}
.calculator-support-page .period-tabs button.active {
  color: #edf6ff;
  background: linear-gradient(135deg, #174878, #0b2a50);
  box-shadow: 0 12px 32px rgba(52,114,181,.24), inset 0 1px 0 rgba(164,207,247,.16);
}
.calculator-support-page .result-card {
  border-color: rgba(76,143,209,.44);
  background: radial-gradient(circle at 12% 0%, rgba(52,114,181,.28), transparent 18rem), radial-gradient(circle at 100% 100%, rgba(25,56,106,.24), transparent 18rem), linear-gradient(145deg, rgba(8,34,67,.86), rgba(5,18,36,.95) 58%, rgba(3,10,20,.98));
  color: #eff7ff;
  box-shadow: inset 0 1px 0 rgba(164,207,247,.12), 0 22px 70px rgba(0,0,0,.34), 0 0 32px rgba(52,114,181,.12);
}
.calculator-support-page .result-card::before { background: linear-gradient(115deg, transparent, rgba(76,143,209,.18), transparent); }
.calculator-support-page .result-card::after { background: linear-gradient(90deg, transparent, rgba(137,193,245,.54), transparent); }
.calculator-support-page .result-label { color: #acd5ff; }
.calculator-support-page .result-value {
  color: #78e9ad;
  text-shadow: 0 0 32px rgba(52,114,181,.34), 0 4px 28px rgba(0,0,0,.32);
}
.calculator-support-page .urgent-card::before { background: linear-gradient(180deg, rgba(245,184,75,.94), rgba(52,114,181,.78)); }

/* Canonical landing-page footer shared by all pages. */
.footer21-wrap {
  position: relative;
  z-index: 4;
  background: #050b14;
  padding-top: 24px;
}
.footer21 {
  position: relative;
  width: 100%;
  max-width: 72rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-top: 1px solid rgba(255,255,255,.12);
  border-radius: 2rem 2rem 0 0;
  background: radial-gradient(35% 128px at 50% 0%, rgba(255,255,255,.08), transparent);
  padding: 48px 24px 64px;
  color: #fff;
  font-family: 'Clarity City', system-ui, sans-serif;
}
.footer21-top-glow {
  position: absolute;
  top: 0;
  left: 50%;
  width: 33.333%;
  height: 1px;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  background: rgba(255,255,255,.20);
  filter: blur(4px);
  pointer-events: none;
}
.footer21-grid { display: grid; width: 100%; gap: 44px; }
.footer21-brand { display: grid; align-content: start; gap: 16px; }
.footer21-logo { display: inline-flex; align-items: center; gap: 10px; color: #fff; font-size: 22px; font-weight: 850; letter-spacing: -.035em; }
.footer21-logo-icon { width: 32px; height: 32px; color: #fff; }
.footer21-description { max-width: 320px; margin: 0; color: rgba(255,255,255,.68); font-size: 14px; line-height: 1.55; }
.footer21-copy { margin: 12px 0 0; color: rgba(255,255,255,.68); font-size: 14px; line-height: 1.5; }
.footer21-links-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(36px, 5vw, 76px); width: 100%; margin-top: 40px; }
.footer21-col h3 { margin: 0; color: #fff; font-size: 12px; font-weight: 500; letter-spacing: 0; }
.footer21-col ul { display: grid; gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.footer21-col a,
.footer21-static { display: inline-flex; align-items: center; gap: 4px; color: rgba(255,255,255,.64); font-size: 14px; line-height: 1.35; transition: color .3s ease; }
.footer21-col a:hover { color: #fff; }
.footer21-animate { opacity: 1; transform: translateY(0); filter: blur(0); }

@media (min-width: 768px) {
  .footer21 { border-radius: 3rem 3rem 0 0; }
}

@media (min-width: 1280px) {
  .footer21-grid { grid-template-columns: minmax(250px, .9fr) minmax(0, 2.1fr); align-items: start; }
  .footer21-links-grid { margin-top: 0; }
}

@media (max-width: 767px) {
  .shiny-cta { padding: 1rem 1.45rem; font-size: .96rem; }
  .shiny-cta--nav { padding: .7rem .95rem; font-size: .78rem; }
  .footer21-wrap { padding-top: 0; }
  .footer21 { padding: 40px 20px 92px; border-radius: 24px 24px 0 0; }
  .footer21-links-grid { grid-template-columns: 1fr; gap: 24px; margin-top: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .shiny-cta,
  .shiny-cta::before,
  .shiny-cta::after,
  .shiny-cta span::before { animation: none !important; }
}

/* Colour tokens retained for the approved non-typography UI treatments. */
:root {
  --navy-glass-top: #12345f;
  --navy-glass-bottom: #06142a;
  --navy-edge: #4d8dc5;
  --route-current: #c78a4d;
  --route-limitless: #39aaa8;
}

/* The burger is the same blue rounded-square tile as the infinity mark. */
.brand-mark,
.menu-toggle {
  width: 40px !important;
  height: 40px !important;
  border-radius: 14px !important;
  color: #dcecff !important;
  background: linear-gradient(145deg, rgba(18,52,95,.96), rgba(6,20,42,.90)) !important;
  border: 1px solid rgba(91,151,209,.52) !important;
  box-shadow: inset 0 1px 0 rgba(189,222,250,.12), 0 12px 30px rgba(0,0,0,.28) !important;
}
.brand-mark img { width: 29px !important; height: 19px !important; }
.menu-toggle:hover,
.menu-toggle:focus-visible,
.mobile-menu.is-open .menu-toggle {
  background: linear-gradient(145deg, rgba(18,52,95,.96), rgba(6,20,42,.90)) !important;
  border-color: rgba(91,151,209,.52) !important;
}

.mobile-menu {
  --fluid-menu-size: 40px !important;
  --fluid-menu-step: 54px !important;
  width: 40px !important;
  height: 40px !important;
  flex-basis: 40px !important;
}
.fluid-menu-item {
  height: var(--fluid-menu-size) !important;
  min-height: var(--fluid-menu-size) !important;
}
.fluid-menu-item::before,
.fluid-menu-item .menu-label {
  background-image: linear-gradient(145deg, #173f6d, #0a2345 62%, #06162e) !important;
  border-color: rgba(91,151,209,.52) !important;
  box-shadow: inset 0 1px 0 rgba(189,222,250,.12), 0 12px 28px rgba(0,0,0,.28) !important;
}
.fluid-menu-item::before {
  width: var(--fluid-menu-size) !important;
  height: var(--fluid-menu-size) !important;
}
.mobile-menu-panel a.fluid-menu-item img {
  left: calc(var(--fluid-menu-size) / 2) !important;
  top: 50% !important;
  width: 30px !important;
  height: 30px !important;
  transform: translate(-50%, -50%) !important;
}
.mobile-menu-panel a.fluid-menu-item:hover img,
.mobile-menu-panel a.fluid-menu-item:focus-visible img,
.mobile-menu-panel a.fluid-menu-item.active img {
  transform: translate(-50%, -50%) scale(1.06) !important;
}
.fluid-menu-item .menu-label {
  min-height: var(--fluid-menu-size) !important;
  color: #d9e8f8 !important;
}
.mobile-menu-panel a.fluid-menu-item:hover::before,
.mobile-menu-panel a.fluid-menu-item:focus-visible::before,
.mobile-menu-panel a.fluid-menu-item.active::before,
.mobile-menu-panel a.fluid-menu-item:hover .menu-label,
.mobile-menu-panel a.fluid-menu-item:focus-visible .menu-label,
.mobile-menu-panel a.fluid-menu-item.active .menu-label {
  background-image: linear-gradient(145deg, #1d4d82, #0c2d57 62%, #071a35) !important;
  border-color: rgba(111,177,235,.70) !important;
}

/* Static navy/glass CTAs: no purple fill and no rectangular hover overlay. */
.btn::after,
.shiny-cta::before,
.shiny-cta::after,
.shiny-cta span::before,
.shiny-cta .shiny-cta-label::before {
  content: none !important;
  display: none !important;
  animation: none !important;
  transform: none !important;
}
.shiny-cta,
.btn-primary {
  color: #deecfa !important;
  background: linear-gradient(145deg, rgba(18,52,95,.98), rgba(6,20,42,.98)) !important;
  border: 1px solid rgba(77,141,197,.78) !important;
  box-shadow: inset 0 1px 0 rgba(190,222,248,.13), 0 14px 34px rgba(0,0,0,.30) !important;
}
.shiny-cta:hover,
.shiny-cta:focus-visible,
.btn-primary:hover,
.btn-primary:focus-visible {
  color: #f0f6fc !important;
  background: linear-gradient(145deg, rgba(22,63,109,.98), rgba(7,24,48,.98)) !important;
  border-color: rgba(103,174,232,.88) !important;
  box-shadow: inset 0 1px 0 rgba(210,232,250,.16), 0 16px 38px rgba(0,0,0,.34) !important;
}
.shiny-cta-silver,
.audit-tab.shiny-cta.shiny-cta-silver {
  color: #0a111b !important;
  background: linear-gradient(135deg, #f7f9fc 0%, #b8c0cb 36%, #eef2f6 62%, #929ca9 100%) !important;
  border-color: rgba(235,241,247,.72) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.74), 0 14px 34px rgba(0,0,0,.28) !important;
}
.shiny-cta-silver:hover,
.shiny-cta-silver:focus-visible {
  color: #070c13 !important;
  background: linear-gradient(135deg, #ffffff 0%, #c4ccd6 36%, #f4f6f9 62%, #9ea8b4 100%) !important;
  border-color: rgba(255,255,255,.88) !important;
}

/* Route comparison: equal cards with a seamless image fade. */
.route-section-head { margin-bottom: clamp(38px, 5vw, 62px); }
.route-story-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(26px, 2.6vw, 36px) !important;
  align-items: stretch !important;
}
.route-story-card,
.route-story-card.limitless-live,
.route-story-card.current-route-night {
  width: 100% !important;
  height: 100%;
  align-self: stretch !important;
  justify-self: stretch !important;
  border-radius: 38px !important;
  border: 1px solid rgba(100,127,161,.46) !important;
  background: #030a14 !important;
  box-shadow: 0 26px 70px rgba(0,0,0,.30), inset 0 1px 0 rgba(176,205,232,.045) !important;
}
.route-story-card .story-card-media {
  min-height: 265px;
  aspect-ratio: 1.62 / .86;
  background: #030a14;
}
.route-story-card .story-card-media img {
  filter: saturate(.88) brightness(.86);
  transform: scale(1.015);
}
.route-story-card:hover .story-card-media img,
.route-story-card:focus-visible .story-card-media img {
  filter: saturate(.94) brightness(.90);
  transform: scale(1.035);
}
.route-story-card .story-card-media::after {
  background: linear-gradient(180deg, rgba(3,10,20,0) 36%, rgba(3,10,20,.34) 63%, #030a14 100%) !important;
}
.route-story-card .story-card-copy,
.route-story-card.current-route-night .story-card-copy,
.route-story-card.limitless-live .story-card-copy {
  position: relative;
  z-index: 2;
  min-height: 190px;
  margin-top: -58px;
  padding: 86px 38px 34px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: linear-gradient(180deg, rgba(3,10,20,0) 0%, rgba(3,10,20,.94) 34%, #030a14 100%);
}
.route-story-card .time-badge,
.route-story-card.current-route-night .time-badge,
.route-story-card.limitless-live .time-badge {
  width: fit-content;
  max-width: none;
  margin: 0 0 20px;
  padding: 0;
  gap: 12px;
  background: none;
  border: 0;
  box-shadow: none;
}
.route-story-card .time-badge::before {
  content: '';
  width: 11px;
  height: 11px;
  border-radius: 50%;
  flex: 0 0 11px;
  background: var(--route-current);
  box-shadow: none;
}
.route-story-card.limitless-live .time-badge::before { background: var(--route-limitless); }
.route-story-card .story-subheading,
.route-story-card.current-route-night .story-subheading,
.route-story-card.limitless-live .story-subheading {
  max-width: none;
  white-space: normal;
}
.route-accent--current { color: var(--route-current); }
.route-accent--limitless { color: var(--route-limitless); }
.route-story-card .detail-more,
.route-story-card.current-route-night .detail-more,
.route-story-card.limitless-live .detail-more {
  margin-top: 28px;
}
.route-story-card.current-route-night:hover,
.route-story-card.current-route-night:focus-visible { border-color: rgba(199,138,77,.60) !important; }
.route-story-card.limitless-live:hover,
.route-story-card.limitless-live:focus-visible { border-color: rgba(57,170,168,.58) !important; }
.route-story-card .route-card-effects { display: none; }

.logo-marquee-cta {
  margin-top: clamp(58px, 6vw, 78px) !important;
  margin-bottom: clamp(22px, 3vw, 36px);
}

.phase3-service-link {
  max-width: 680px;
  margin: 28px auto 0;
  color: #93a9bf;
  font-size: 14px;
  line-height: 1.6;
  text-align: center;
}
.phase3-service-link a { color: #bfd8ef; font-weight: 700; }
.phase3-service-link a:hover,
.phase3-service-link a:focus-visible { color: #fff; }

/* About page: dark navy decoration; teal/amber stay reserved for route meaning. */
.about-support-page .about-cta {
  border-color: rgba(77,141,197,.34) !important;
  background:
    radial-gradient(circle at 82% 12%, rgba(52,114,181,.20), transparent 18rem),
    linear-gradient(145deg, rgba(11,38,72,.90), rgba(5,20,42,.96) 54%, rgba(3,11,24,.99)) !important;
}
.about-support-page .about-cta p { color: #aebed0 !important; }
.about-support-page .about-service:hover h3 { color: #9fc0df !important; }
.about-support-page .learn-more { color: #6797c6 !important; }
.about-support-page .footer21-col a,
.about-support-page .footer21-static { color: rgba(193,207,222,.70); }

/* One compact footer treatment on Home, Calculator and About. */
.footer21-wrap { padding-top: 12px !important; }
.footer21 {
  padding: 32px 24px 40px !important;
}
.footer21-grid { gap: 24px !important; }
.footer21-brand { gap: 8px !important; }
.footer21-logo-icon { width: 28px !important; height: 28px !important; color: #9db5cd !important; }
.footer21-copy { margin-top: 5px !important; }
.footer21-links-grid { gap: clamp(28px, 4vw, 58px) !important; margin-top: 0 !important; }
.footer21-col ul { gap: 7px !important; margin-top: 10px !important; }

@media (min-width: 1024px) {
  .footer21-grid {
    grid-template-columns: minmax(250px, .9fr) minmax(0, 2.1fr) !important;
    align-items: start;
  }
  .footer21-links-grid {
    grid-column: auto !important;
    margin-top: 0 !important;
  }
}

@media (max-width: 960px) {
  .route-story-grid { grid-template-columns: 1fr !important; gap: 26px !important; }
  .route-story-card .story-card-media { min-height: 240px; aspect-ratio: 1.7 / .82; }
  .route-story-card .story-card-copy,
  .route-story-card.current-route-night .story-card-copy,
  .route-story-card.limitless-live .story-card-copy { min-height: 168px; padding: 78px 30px 30px; }
}

@media (max-width: 767px) {
  .footer21 { padding: 30px 20px 74px !important; }
  .footer21-links-grid { gap: 20px !important; margin-top: 18px !important; }
  .route-section-head { margin-bottom: 30px; }
  .route-story-card,
  .route-story-card.limitless-live,
  .route-story-card.current-route-night { border-radius: 28px !important; }
  .route-story-card .story-card-media { min-height: 210px; aspect-ratio: 1.45 / .86; }
  .route-story-card .story-card-copy,
  .route-story-card.current-route-night .story-card-copy,
  .route-story-card.limitless-live .story-card-copy {
    min-height: 170px;
    margin-top: -48px;
    padding: 70px 22px 26px;
  }
  .route-story-card .detail-more,
  .route-story-card.current-route-night .detail-more,
  .route-story-card.limitless-live .detail-more { margin-top: 22px; }
}

@media (max-width: 420px) {
  .brand-mark,
  .menu-toggle { width: 40px !important; height: 40px !important; }
  .mobile-menu { --fluid-menu-size: 40px !important; --fluid-menu-step: 54px !important; }
}
