/* =========================
   AXIS BLUE – GLOBAL TOKENS
   (paste at top of styles.css)
   ========================= */
/* --- Lighter base blues (keeps the vibe, less heavy) --- */
:root{
  --bg:  #0a1830;
  --bg2: #0c2340;
  --bg3: #103055;

  /* Panels slightly lighter so text breathes */
  --panel:  rgba(255,255,255,0.06);
  --panel2: rgba(255,255,255,0.08);

  /* Softer borders */
  --border: rgba(255,255,255,0.12);

  /* Muted text slightly brighter for readability */
  --muted: rgba(234,242,255,0.78);

  /* Glass */
  --glass: rgba(255,255,255,0.07);
  --glass2: rgba(255,255,255,0.10);
  --stroke: rgba(255,255,255,0.14);
  --shadow: 0 18px 60px rgba(0,0,0,0.35);

  /* Radius */
  --r-sm: 12px;
  --r: 18px;
  --r-lg: 22px;

  /* Typography scale (CONSISTENCY) */
  --font: ui-sans-serif, system-ui, -apple-system, "SF Pro Text", "SF Pro Display", Segoe UI, Roboto, Helvetica, Arial;
  --brand: 18px;
  --nav: 15px;
  --kicker: 12px;
  --h1: clamp(38px, 5.4vw, 62px);
  --body: clamp(16px, 1.35vw, 18px);
  --small: 13px;

  /* Spacing */
  --wrap: min(1040px, calc(100vw - 44px));
  --section-gap: 22px;
  --hero-gap: 18px;

  /* Buttons */
  --btn-h: 44px;
  --btn-r: 999px;
  --btn-pad-x: 18px;

  /* Footer */
  --footer-size: 13px;
  --footer-muted: rgba(234, 242, 255, 0.65);
}

/* Smooth, continuous background (no hard “line”) */
html, body{
  height: 100%;
}
body{
  margin: 0;
  font-family: var(--font);
  color: var(--text);
  background: radial-gradient(1100px 700px at 22% 12%, rgba(255,255,255,0.08), rgba(255,255,255,0) 55%),
              linear-gradient(180deg, var(--bg0) 0%, var(--bg1) 44%, var(--bg2) 100%);
  background-attachment: fixed;
}
:root{
  /* Core palette */
  --bg0:#071428;
  --bg1:#081a34;
  --bg2:#0b2446;
  --bg3:#0f2f5f;

  --text:#eef4ff;
  --muted:rgba(238,244,255,.72);
  --muted2:rgba(238,244,255,.55);

  --panel:rgba(255,255,255,.06);
  --panel2:rgba(255,255,255,.09);
  --stroke:rgba(255,255,255,.12);

  --shadow:0 18px 60px rgba(0,0,0,.40);
  --radius:18px;

  /* Typography */
  --font: ui-sans-serif, system-ui, -apple-system, "SF Pro Display", "SF Pro Text", Inter, Arial, sans-serif;

  /* Layout */
  --max:1100px;
  --gutter:22px;

  /* Button sizing (single source of truth) */
  --btn-h:44px;
  --btn-pad-x:16px;
  --btn-radius:999px;
  --btn-font:15px;
  --btn-font-strong:16px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--font);
  color:var(--text);
  background: radial-gradient(1200px 600px at 70% 20%, rgba(255,255,255,.06), transparent 60%),
              linear-gradient(180deg, var(--bg0) 0%, var(--bg1) 22%, var(--bg2) 55%, var(--bg3) 100%);
  overflow-x:hidden;
}

/* subtle “watercolor” tint layer (pink) */
body::before{
  content:"";
  position:fixed;
  inset:-40px;
  pointer-events:none;
  background:
    radial-gradient(700px 360px at 82% 18%, rgba(255,110,160,.10), transparent 55%),
    radial-gradient(520px 300px at 20% 70%, rgba(255,120,170,.06), transparent 60%);
  filter: blur(10px);
  opacity:.85;
  z-index:-1;
}

/* Remove random “lines” by not using hairline borders everywhere */
hr, .hairline{display:none !important;}

a{color:inherit;text-decoration:none}
a:hover{opacity:.95}

.container{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
}

.header{
  position:sticky;
  top:0;
  z-index:50;
  background: linear-gradient(180deg, rgba(7,20,40,.78) 0%, rgba(7,20,40,.35) 100%);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:220px;
}

.brand-mark{
  width:34px;
  height:34px;
  border-radius:10px;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  display:grid;
  place-items:center;
  overflow:hidden;
}

.brand-mark img{
  width:100%;
  height:100%;
  object-fit:cover;
  transform: translateZ(0);
}

.brand-text{line-height:1.05}
.brand-name{
  font-size:18px;
  letter-spacing:.22em;
  font-weight:750;
}
.brand-tag{
  font-size:13px;
  color:var(--muted2);
  margin-top:4px;
}

/* NAV */
.nav{
  display:flex;
  align-items:center;
  gap:10px;
  flex:1;
  justify-content:flex-end;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;              /* tabs “flow” as window changes */
  justify-content:flex-end;
}

.nav-links a{
  font-size:15px;
  color:var(--muted);
  padding:6px 2px;
  border-bottom: 1px solid transparent;
}
.nav-links a[aria-current="page"]{
  color:var(--text);
  border-bottom-color: rgba(255,255,255,.35);
}

/* Menu button only on mobile */
.nav-toggle{
  display:none;
  align-items:center;
  gap:10px;
  height:var(--btn-h);
  padding:0 14px;
  border-radius: var(--btn-radius);
  background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:var(--text);
  font-weight:650;
}

/* HERO */
main{padding:34px 0 44px}
.hero{
  padding:26px 0 6px;
}

.hero-kicker{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted2);
  margin:0 0 10px;
}

.hero-title{
  font-size: clamp(42px, 5.6vw, 62px);
  line-height:1.02;
  margin:0 0 14px;
  font-weight:800;
}

.hero-copy{
  font-size:18px;
  line-height:1.45;
  color:var(--muted);
  max-width: 62ch;
  margin:0 0 18px;
}

/* ACTIONS */
.actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:18px 0 14px;
}

.btn{
  height:var(--btn-h);
  border-radius:var(--btn-radius);
  padding:0 var(--btn-pad-x);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  font-size:var(--btn-font);
  font-weight:700;
  color:var(--text);

  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 10px 26px rgba(0,0,0,.22);
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
}

.btn:active{transform: translateY(1px);}
.btn-primary{
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.16);
}
.btn-strong{
  font-size:var(--btn-font-strong);
  padding:0 18px;
}

.btn-split{
  padding:0;
  overflow:hidden;
}

.btn-split .label{
  padding:0 16px;
  font-size:var(--btn-font-strong);
  font-weight:800;
}

.btn-split .minor{
  height:100%;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  color:rgba(238,244,255,.80);
  background: rgba(255,255,255,.06);
  border-left:1px solid rgba(255,255,255,.10);
}

/* small meta line */
.small-meta{
  font-size:13px;
  color:rgba(238,244,255,.60);
  margin:10px 0 26px;
}

/* “newspaper flow” sections */
.section{
  margin:22px 0;
  padding:18px 18px;
  border-radius: var(--radius);
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(255,255,255,.08);
}
.section h2{
  margin:0 0 8px;
  font-size:18px;
  letter-spacing:.01em;
}
.section p{
  margin:0;
  color:var(--muted);
  line-height:1.48;
}

/* FOOTER (smaller disclaimer text) */
.footer{
  padding:18px 0 26px;
  color:rgba(238,244,255,.62);
}
.footer-inner{
  display:flex;
  flex-wrap:wrap;
  gap:14px 18px;
  align-items:flex-start;
  border-top:1px solid rgba(255,255,255,.07);
  padding-top:14px;
}
.footer-links{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  font-size:13px;
}
.footer-note{
  font-size:12px;             /* smaller */
  line-height:1.35;
  max-width: 78ch;
  opacity:.9;
}

/* REQUEST MODAL (glass) */
.modal{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
  z-index:80;
}
.modal.open{display:flex;}

.modal-backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(6px);
}

.modal-card{
  position:relative;
  width:min(640px, 100%);
  border-radius: 22px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: var(--shadow);
  backdrop-filter: blur(14px);
  padding:18px 18px 16px;
}

.modal-close{
  position:absolute;
  top:12px;
  right:12px;
  width:44px;
  height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color:var(--text);
  font-size:20px;
  cursor:pointer;
  display:grid;
  place-items:center;
}

.modal-title{
  font-size:18px;
  font-weight:800;
  margin:4px 0 12px;
}
.modal-sub{
  margin:0 0 16px;
  color:var(--muted);
  line-height:1.45;
  font-size:14px;
}

.form-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
@media (max-width:640px){
  .form-grid{grid-template-columns:1fr;}
}

.field label{
  display:block;
  font-size:12px;
  color:rgba(238,244,255,.70);
  margin:0 0 6px;
}
.field input, .field select, .field textarea{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.18);
  color:var(--text);
  outline:none;
}
.field textarea{min-height:92px; resize:vertical;}

.modal-actions{
  display:flex;
  gap:10px;
  justify-content:flex-end;
  margin-top:12px;
}

.toast{
  position:fixed;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(12px);
  padding:12px 14px;
  border-radius: 16px;
  color:var(--text);
  font-size:13px;
  display:none;
  z-index:90;
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
}
.toast.show{display:block;}

/* MOBILE NAV behavior */
@media (max-width:900px){
  .nav-links{
    display:none;
    width:100%;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    padding:12px 0 6px;
  }
  .nav-toggle{display:inline-flex;}
  .header.open .nav-links{display:flex;}
  .header-inner{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .nav{
    width:100%;
    justify-content:space-between;
  }
}

/* DESKTOP: tabs live top-right, hide menu button */
@media (min-width:901px){
  .nav-toggle{display:none !important;}
  .nav-links{display:flex !important;}
}

/* =========================
   AXIS BLUE – CONSISTENCY LAYER
   (paste at bottom of styles.css)
   ========================= */

/* Containers */
.container, .wrap, main, header .container{
  width: var(--wrap);
  margin: 0 auto;
}

/* Header brand sizing (no logo required) */
.brand-name, .site-brand, .brandText, .brand-text, .brand .name, header .brand .name{
  font-size: var(--brand) !important;
  letter-spacing: 0.14em;
  font-weight: 700;
  text-transform: uppercase;
  line-height: 1.05;
}
.brand-tagline, .brandTag, .brand-tag, header .brand .tagline{
  font-size: 13px !important;
  color: var(--muted);
  line-height: 1.25;
}

/* Nav text consistency */
nav a, .nav a, .nav-links a, .navLinks a{
  font-size: var(--nav) !important;
}

/* Hero typography consistency */
.hero-kicker, .heroKicker, .kicker{
  font-size: var(--kicker) !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 10px;
}
.hero h1, .hero h1, h1{
  font-size: var(--h1) !important;
  line-height: 1.02;
  margin: 0 0 var(--hero-gap) 0;
}
.hero p, .hero p, .lead, .subcopy{
  font-size: var(--body) !important;
  line-height: 1.55;
  color: var(--muted);
  margin: 0 0 18px 0;
  max-width: 66ch;
}

/* Buttons: force same size everywhere */
.actions, .btn-row, .buttonRow{
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}
.btn, button.btn, a.btn, .pill, .action, .actions button, .actions a{
  height: var(--btn-h) !important;
  min-height: var(--btn-h) !important;
  border-radius: var(--btn-r) !important;
  padding: 0 var(--btn-pad-x) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
  border: 1px solid var(--stroke) !important;
  background: linear-gradient(180deg, var(--glass2), var(--glass)) !important;
  color: var(--text) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.22);
  text-decoration: none !important;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.btn small, .btn .sub, .btn .meta{
  font-size: 12px !important;
  color: var(--muted2) !important;
}

/* Mobile: stack buttons cleanly */
@media (max-width: 720px){
  .actions, .btn-row, .buttonRow{
    flex-direction: column;
    align-items: stretch;
  }
  .btn, button.btn, a.btn, .pill, .action, .actions button, .actions a{
    width: 100% !important;
    justify-content: space-between !important;
  }
}

/* Footer: smaller, calmer, no “massive text” */
footer, .footer, .site-footer{
  margin-top: 26px;
  padding: 18px 0 26px 0;
  border-top: 0 !important; /* kill the hard line */
  background: transparent !important; /* keep gradient smooth */
}
.footer a, footer a{
  font-size: var(--footer-size) !important;
  color: rgba(234,242,255,0.78) !important;
  text-decoration: none;
}
.footer a:hover, footer a:hover{
  text-decoration: underline;
}
.footer p, footer p, .footer .disclaimer, .disclaimer, .legal, .notice{
  font-size: var(--footer-size) !important;
  line-height: 1.45;
  color: var(--footer-muted) !important;
  margin: 10px 0 0 0;
  max-width: 92ch;
}

/* --- Smooth footer transition (no hard line) --- */
.site-footer,
.footer,
footer {
  border-top: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Add a soft gradient fade instead of a line */
.site-footer::before,
.footer::before,
footer::before {
  content: "";
  display: block;
  height: 22px;
  margin: 22px 0 10px 0;
  background: linear-gradient(
    to bottom,
    rgba(255,255,255,0.10),
    rgba(255,255,255,0.03),
    rgba(255,255,255,0.00)
  );
  border-radius: 999px;
  pointer-events: none;
  filter: blur(0.2px);
}
/* --- Smooth page gradient --- */
html, body{
  background:
    radial-gradient(1200px 700px at 18% 18%, rgba(120,170,255,0.18), rgba(0,0,0,0) 60%),
    radial-gradient(900px 600px at 78% 22%, rgba(255,120,180,0.08), rgba(0,0,0,0) 55%),
    linear-gradient(180deg, var(--bg2), var(--bg));
  background-attachment: fixed;
}


