.font-jura { font-family: "Jura", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }

/* Info bubble (pure CSS, no JS) */
.cv-infobubble summary { list-style: none; }
.cv-infobubble summary::-webkit-details-marker { display: none; }
.cv-bubble {
  position: absolute;
  right: 0;
  margin-top: 0.5rem;
  width: 18rem;
  max-width: 90vw;
  background: #fff;
  color: #111827;
  border: 1px solid #216778;
  border-radius: 0.5rem;
  padding: 0.75rem 0.875rem;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12), 0 3px 6px rgba(0, 0, 0, 0.08);
  z-index: 30;
}
@media (min-width: 768px) { .cv-bubble { width: 24rem; } }
.cv-bubble a { color: #216778; text-decoration: underline; }
.cv-bubble b { color: #216778; font-weight: 700; }
.icon-info-svg { display: inline-block; width: 1.125rem; height: 1.125rem; fill: #9ca4a5; }
@media (min-width: 768px) { .icon-info-svg { width: 1.3125rem; height: 1.3125rem; } }

body {
  background-color: white;
  background-image: url("background.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}
.topbar-bg { background-color: #2a2a2a; }
.banner-bg { background-color: #216778ff; }
.footer-bg { background-color: #2a2a2a; }

.btn-dark { background-color: #000; color: #fff; transition: background-color 0.2s ease; }
.btn-dark:hover { background-color: #4a4a4a; }

.btn-accent {
  background-color: #216778;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.95);
  border-radius: 0.375rem;
  padding: 0.45rem 0.75rem;
  font-size: 0.95rem;
  line-height: 1.2;
}
.btn-accent:hover { background-color: #1c5260; }

.icon-white {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  background-color: #fff;
  mask: url("/static/icons/join.svg") no-repeat center / contain;
  -webkit-mask: url("/static/icons/join.svg") no-repeat center / contain;
}

.field-border { border-color: rgba(0, 0, 0, 0.2); }
.table-head-bg { background-color: rgba(0, 0, 0, 0.3); color: #fff; }
#mobileMenu a { text-align: center; }

/* Fallback visibility logic even if Tailwind isn't loaded */
@media (min-width: 1024px) {
  #desktopNav { display: flex !important; }
  #menuBtn { display: none !important; }
  #desktopCta { display: flex !important; }
  #mobileMenu { display: none !important; }
}
@media (max-width: 1023.98px) {
  #desktopNav { display: none !important; }
  #menuBtn { display: inline-flex !important; grid-column: 3; justify-self: end; }
}

.alpha-badge {
  display: inline-block;
  margin-left: 0.5rem;
  vertical-align: middle;
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.04em;
  color: #d1d5db;
  border: 2px solid rgba(33, 103, 120, 0.65);
  border-radius: 4px;
  padding: 2px 6px;
  white-space: nowrap;
}
@media (max-width: 640px) { .alpha-badge { display: none; } }

/* Accordion visuals */
.faq-item { border: 1px solid rgba(33, 103, 120, 0.5); border-radius: 0.5rem; background: #fff; }
.faq-item.is-open { border-color: #216778; }
.faq-q { width: 100%; text-align: left; padding: 1rem 1rem; display: flex; align-items: center; gap: 0.75rem; }
.chev { transition: transform 0.2s ease; }
.faq-a { padding: 0 1rem 1rem 2.5rem; }
.faq-q .chev { color: #216778; }
.faq-q span { color: #111827; transition: color 0.2s ease; }
.faq-q[aria-expanded="true"] span { color: #216778; }

/* Replacements for former inline style attributes */
.cv-grid-3cols { grid-template-columns: 1fr auto 1fr; }
.cv-justify-self-center { justify-self: center; }
.cv-justify-self-end { justify-self: end; }
.cv-banner-fixed { height: 220px; padding: 8px 0; }
.cv-banner-logo { height: 145px; width: auto; max-height: none; flex-shrink: 0; }
.cv-main-shell { background-color: #dfebecff; min-height: 980px; }
.cv-footer-strip { background-color: #216778; }
