:root{
    --ink:#16202B;
    --paper:#E7E2D2;
    --paper-line:#c9c2ac;
    --navy:#1B2740;
    --gold:#C9A227;
    --amber:#E0A458;
    --verdigris:#6FA89B;
    --white:#F7F5EE;
  }

  *{box-sizing:border-box;}

  body{
    margin:0;
    background:var(--navy);
    color:var(--white);
    font-family:'IBM Plex Sans', 'Segoe UI', sans-serif;
    line-height:1.5;
  }

  @font-face{
    font-family:'Space Grotesk Fallback';
    src:local('Arial');
  }

  h1,h2,h3{
    font-family:'Space Grotesk','IBM Plex Sans',sans-serif;
    letter-spacing:-0.01em;
    margin:0;
  }

  .mono{
    font-family:'IBM Plex Mono', monospace;
    letter-spacing:0.02em;
  }

  .wrap{
    max-width:760px;
    margin:0 auto;
    padding:64px 24px 96px;
    position:relative;
  }

  /* faint grid to evoke a chart / survey sheet */
  .grid-bg,.site-grid {
    inset:0;
    background-image:
      linear-gradient(rgba(247,245,238,0.045) 1px, transparent 1px),
      linear-gradient(90deg, rgba(247,245,238,0.045) 1px, transparent 1px);
    background-size:40px 40px;
   
  }

  .eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--amber);
    margin-bottom:18px;
  }

  .eyebrow::before{
    content:"";
    width:18px;
    height:1px;
    background:var(--amber);
  }

  h1{
    font-size:42px;
    color:var(--white);
    max-width:29ch;
  }

  .lede{
    margin-top:18px;
    font-size:17px;
    color:#C7CCD6;
    max-width:52ch;
  }

  /* compass rose, signature element */
  .compass{
    position:absolute;
    top:56px;
    right:24px;
    width:96px;
    height:96px;
    opacity:0.9;
  }

  @media (max-width:640px){
    .compass{ display:none; }
  }

  .route-divider{
    border:none;
    height:1px;
    margin:48px 0;
    background:repeating-linear-gradient(
      90deg,
      var(--amber) 0 8px,
      transparent 8px 16px
    );
    opacity:0.55;
  }

  /* legend card — rules of the demo */
  .legend{
    background:var(--paper);
    color:var(--ink);
    border-radius:4px;
    padding:32px;
    box-shadow:0 20px 40px rgba(0,0,0,0.25);
  }

  .legend h2{
    font-size:14px;
    text-transform:uppercase;
    letter-spacing:0.12em;
    font-family:'IBM Plex Mono', monospace;
    color:var(--ink);
    margin-bottom:20px;
    display:flex;
    align-items:center;
    gap:10px;
  }

  .legend h2::after{
    content:"";
    flex:1;
    height:1px;
    background:var(--paper-line);
  }

  .legend-rows{
    display:flex;
    flex-direction:column;
    gap:16px;
  }

  .legend-row{
    display:grid;
    grid-template-columns:44px 1fr auto;
    align-items:center;
    gap:16px;
    padding-bottom:16px;
    border-bottom:1px solid var(--paper-line);
  }

  .legend-row:last-child{
    border-bottom:none;
    padding-bottom:0;
  }

  .legend-icon{
    width:44px;
    height:44px;
    border-radius:50%;
    background:var(--navy);
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .legend-icon svg{ width:22px; height:22px; }

  .legend-label{
    font-size:15px;
    color:var(--ink);
  }

  .legend-label small{
    display:block;
    color:#5b5646;
    font-size:12.5px;
    margin-top:2px;
  }

  .legend-value{
    font-family:'IBM Plex Mono', monospace;
    font-size:15px;
    font-weight:600;
    color:var(--navy);
    text-align:right;
    white-space:nowrap;
  }

  /* steps — a real sequence, numbering earns its keep here */
  .steps{
    margin-top:48px;
    display:flex;
    flex-direction:column;
    gap:0;
  }

  .step{
    display:grid;
    grid-template-columns:40px 1fr;
    gap:18px;
    padding:22px 0;
    border-top:1px solid rgba(247,245,238,0.12);
  }

  .step:last-child{
    border-bottom:1px solid rgba(247,245,238,0.12);
  }

  .step-num{
    font-family:'IBM Plex Mono', monospace;
    font-size:13px;
    color:var(--amber);
    padding-top:2px;
  }

  .step h3{
    font-size:16px;
    color:var(--white);
    margin-bottom:4px;
  }

  .step p{
    margin:0;
    font-size:14.5px;
    color:#AEB4C0;
    max-width:48ch;
  }

  .cta-block{
    margin-top:48px;
    text-align:center;
  }

  .cta{
    display:inline-block;
    background:var(--amber);
    color:var(--ink);
    font-weight:600;
    font-size:15px;
    padding:14px 32px;
    border-radius:2px;
    text-decoration:none;
    letter-spacing:0.01em;
  }

  .cta:hover{ background:#eab36e; }

  .cta-sub{
    margin-top:14px;
    font-size:13px;
    color:#8791A0;
  }

  .cta-sub a{
    color:var(--verdigris);
    text-decoration:underline;
  }
  .text-muted {
    --text-opacity: 1;
    color: #484f56 !important;
  }

  footer{
    margin-top:64px;
    padding-top:24px;
    border-top:1px solid rgba(247,245,238,0.1);
    font-size:12.5px;
    color:#7C8493;
  }

  footer p{ margin:6px 0; }

/* ===== Header shell ===== */
.container-header.full-width{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  background:#1B2740;
  padding:12px 24px;
  border-bottom:1px solid rgba(247,245,238,0.12);
  font-family:'IBM Plex Sans','Segoe UI',sans-serif;
}

.grid-child{
  display:flex;
  align-items:center;
}

/* ===== Brand / logo ===== */
.navbar-brand .brand-logo{
  display:flex;
  align-items:center;
}

.navbar-brand .brand-logo img{
  width:44px;
  height:44px;
  border-radius:4px;
}

/* ===== Navbar wrapper ===== */
.container-nav .navbar{
  padding:0;
}

.navbar-collapse{
  display:flex;
}

/* ===== Menu list ===== */
.mod-menu.mod-list{
  list-style:none;
  display:flex;
  align-items:center;
  gap:4px;
  margin:0;
  padding:0;
  flex-wrap:wrap;
}

.metismenu-item{
  position:relative;
}

.metismenu-item > a{
  display:inline-block;
  padding:10px 16px;
  color:#C7CCD6;
  text-decoration:none;
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  letter-spacing:0.04em;
  text-transform:uppercase;
  border-radius:2px;
  transition:color 0.15s ease, background 0.15s ease;
}

.metismenu-item > a:hover,
.metismenu-item > a:focus-visible{
  color:#F7F5EE;
  background:rgba(247,245,238,0.06);
}

.metismenu-item > a:focus-visible{
  outline:1px solid #E0A458;
  outline-offset:2px;
}

/* Current / active page — amber underline, like a route line */
.metismenu-item.current > a,
.metismenu-item.active > a{
  color:#F7F5EE;
  position:relative;
}

.metismenu-item.current > a::after,
.metismenu-item.active > a::after{
  content:"";
  position:absolute;
  left:16px;
  right:16px;
  bottom:4px;
  height:2px;
  background:#E0A458;
}

/* ===== Mobile toggler ===== */
.navbar-toggler{
  display:none;
  background:transparent;
  border:1px solid rgba(247,245,238,0.25);
  border-radius:2px;
  padding:8px 10px;
  cursor:pointer;
}

.navbar-toggler .icon-menu{
  display:block;
  width:20px;
  height:2px;
  background:#F7F5EE;
  position:relative;
}

.navbar-toggler .icon-menu::before,
.navbar-toggler .icon-menu::after{
  content:"";
  position:absolute;
  left:0;
  width:20px;
  height:2px;
  background:#F7F5EE;
}

.navbar-toggler .icon-menu::before{ top:-6px; }
.navbar-toggler .icon-menu::after{ top:6px; }

/* ===== Responsive ===== */
@media (max-width:991px){
  .navbar-toggler{
    display:block;
  }

  .navbar-collapse{
    display:none;
    width:100%;
    order:3;
  }

  .navbar-collapse.show{
    display:block;
  }

  .mod-menu.mod-list{
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    padding-top:12px;
    border-top:1px solid rgba(247,245,238,0.1);
    margin-top:12px;
  }

  .metismenu-item{
    width:100%;
  }

  .metismenu-item > a{
    display:block;
    width:100%;
    padding:12px 8px;
  }

  .metismenu-item.current > a::after,
  .metismenu-item.active > a::after{
    left:8px;
    right:8px;
  }
}
#system-message-container joomla-alert {
    color: black;}