:root {
  --navy: #031b33;
  --navy2: #082a4a;
  --blue: #1677b8;
  --gold: #d29a36;
  --text: #10233e;
  --muted: #667085;
  --line: #e1e5ea;
  --light: #f6f7f9;
  --white: #fff;
  --success: #177245;
  --error: #b42318;
  --warning: #b54708;
  --highlight: #3ea6e0;
  --button: #d29a36;
  --link: #1677b8;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  font:
    16px/1.55 Arial,
    Helvetica,
    sans-serif;
  color: var(--text);
  background: var(--white);
}
h1,
h2,
h3 {
  line-height: 1.2;
}
h1 {
  font-size: 42px;
}
h2 {
  font-size: 30px;
}
h3 {
  font-size: 22px;
}
a {
  color: var(--link);
}
button,
input,
select,
textarea {
  font: inherit;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: wait;
  opacity: 0.6;
}
a,
button,
input,
select,
textarea {
  outline-offset: 4px;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--highlight);
}
input,
select,
textarea {
  width: 100%;
  padding: 11px 13px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--white);
  color: var(--text);
  min-width: 0;
}
input[type="checkbox"] {
  width: 18px;
  height: 18px;
}
input[type="color"] {
  height: 48px;
}
textarea {
  resize: vertical;
}
label {
  display: block;
  font-weight: 600;
  font-size: 14px;
}
label input,
label select,
label textarea {
  display: block;
  margin-top: 7px;
  font-weight: 400;
}
form > label {
  margin: 16px 0;
}
fieldset {
  border: 1px solid var(--line);
  border-radius: 6px;
}
table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  text-align: left;
}
th {
  background: var(--light);
  font-weight: 600;
  color: var(--muted);
  white-space: nowrap;
}
th,
td {
  padding: 15px 18px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
td small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 5px;
}
tr:last-child td {
  border-bottom: 0;
}
dt {
  font-weight: 700;
}
dd {
  margin: 4px 0 18px;
}
.container {
  width: min(1180px, 92%);
  margin: auto;
}
.section {
  padding: 56px 0;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 13px 22px;
  border: 1px solid transparent;
  border-radius: 5px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
}
.btn.gold {
  background: var(--button) !important;
  color: #111 !important;
  border-color: var(--button) !important;
}
.btn.bordered,
.bordered {
  border: 1px solid var(--navy);
  color: var(--navy);
  background: transparent;
}
.btn.white {
  background: var(--white);
  color: var(--navy);
}
.actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin: 24px 0;
}
.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  color: white;
  text-decoration: none;
  flex-shrink: 0;
}
.brand-emblem {
  width: 58px;
  height: 58px;
  object-fit: contain;
  border-radius: 50%;
  background: white;
}
.brand span {
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 1px;
  line-height: 1.2;
}
.brand small {
  display: block;
  font-size: 9px;
  letter-spacing: 1.2px;
  margin-top: 6px;
}
.demo-banner {
  background: #fff1cb;
  color: #5e410c;
  font-size: 12px;
  letter-spacing: 1px;
  text-align: center;
  padding: 6px;
  position: relative;
  z-index: 25;
}
.home-page .topbar {
  top: 32px;
}
.inner-page .topbar {
  position: relative;
  background: var(--navy);
  padding: 19px 0;
}
.topbar .nav {
  gap: 14px;
}
.topbar .menu {
  gap: 12px;
  font-size: 11px;
}
.topbar .navbtn {
  padding: 10px 9px;
}
.nav-item {
  position: relative;
  white-space: nowrap;
}
.submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 180px;
  background: var(--navy);
  padding: 12px;
  z-index: 30;
}
.submenu a {
  display: block;
  padding: 10px;
}
.nav-item:hover .submenu,
.nav-item:focus-within .submenu {
  display: block;
}
.mobile-toggle {
  background: transparent;
  border: 1px solid #ffffff60;
  border-radius: 5px;
  color: white;
  font-size: 24px;
  padding: 4px 12px;
}
.hero-slider {
  height: 650px;
}
.hero-content {
  padding-top: 175px;
}
.hero-content h1 span {
  color: var(--highlight);
}
.slide-image {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  inset: 0;
}
.slide:not(.active),
.mini-slide:not(.active) {
  pointer-events: none;
}
.dot {
  border: 0;
  padding: 0;
  min-width: 10px;
  min-height: 10px;
}
.slider-pause {
  border: 0;
  background: #ffffff25;
  color: white;
  border-radius: 4px;
  line-height: 1;
  padding: 3px 7px;
}
.page-heading {
  background: var(--navy);
  color: white;
  padding: 52px 0;
}
.page-heading h1 {
  margin: 8px 0 16px;
  font-size: 46px;
  max-width: 800px;
}
.eyebrow {
  font-size: 12px;
  letter-spacing: 2.5px;
  color: var(--gold);
  margin-bottom: 14px;
  text-transform: uppercase;
}
.footer {
  background: var(--navy);
  color: white;
  padding: 34px 0;
}
.footer p {
  max-width: 480px;
  font-size: 14px;
}
.footer-links {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  border-top: 1px solid #ffffff22;
  margin-top: 25px;
  padding-top: 20px;
  font-size: 12px;
}
.footer a {
  color: white;
}
.footer-links span {
  margin-left: auto;
}
.card,
.panel {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 25px;
  box-shadow: 0 3px 14px #031b3305;
}
.cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 30px 0;
}
.card h2 {
  font-size: 26px;
}
.content-image {
  max-width: 100%;
  width: 100%;
  border-radius: 5px;
  object-fit: cover;
}
.event-image {
  max-height: 470px;
}
.image-preview {
  display: block;
  width: 150px;
  height: 110px;
  object-fit: contain;
  margin-top: 10px;
  background: var(--light);
}
.directory-photo {
  width: 100%;
  height: 230px;
  object-fit: cover;
  border-radius: 6px;
}
.directory-cards h2 {
  font-size: 26px;
}
.avatar-placeholder {
  height: 230px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, var(--navy), var(--blue));
  color: white;
  font: 80px Georgia;
  border-radius: 6px;
}
.filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  background: var(--light);
  padding: 24px;
  border-radius: 8px;
}
.filters button {
  align-self: end;
}
.badge {
  display: inline-block;
  padding: 5px 11px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  background: #eef0f3;
  color: #475467;
  white-space: nowrap;
}
.badge.active {
  background: #e5f5eb;
  color: var(--success);
}
.badge.expiring {
  background: #fff1d9;
  color: var(--warning);
}
.badge.expired,
.badge.suspended,
.badge.cancelled {
  background: #fdebe8;
  color: var(--error);
}
.badge.pending {
  background: #e8effa;
  color: var(--blue);
}
.member-hero .breadcrumb {
  padding-top: 24px;
}
.member-hero a {
  color: #dbe6f0;
}
.member-hero::after {
  pointer-events: none;
}
.qr {
  flex-direction: column;
  padding: 16px;
}
.qr canvas,
.qr img {
  width: 150px;
  height: 150px;
  max-width: 100%;
  image-rendering: pixelated;
  background: white;
  border: 8px solid white;
}
.qr p {
  margin: 8px 0 0;
}
.sidecard {
  margin-top: 24px;
}
.member-body > section {
  min-width: 0;
}
.tabs {
  gap: 28px;
  overflow-x: auto;
}
.tabs button {
  white-space: nowrap;
}
.contactbox {
  gap: 20px;
}
.prose {
  line-height: 1.8;
  max-width: 850px;
  overflow-wrap: anywhere;
}
.narrow {
  max-width: 740px;
}
.auth-box {
  max-width: 490px;
  min-height: 580px;
}
.auth-box h1 {
  font-size: 36px;
}
.auth-box form > .btn {
  display: block;
  width: 100%;
  margin-top: 24px;
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.form-grid > label {
  margin: 0;
}
.full {
  grid-column: 1/-1;
}
.check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 400;
}
.check input {
  margin: 0;
  flex-shrink: 0;
}
.honeypot {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.notice {
  padding: 16px 20px;
  border-radius: 6px;
  margin: 18px auto;
  background: #e9f5ed;
  color: var(--success);
  border: 1px solid #17724525;
}
.notice.error {
  background: #fff0ed;
  color: var(--error);
  border-color: #b4231830;
}
.empty {
  padding: 45px 20px;
  text-align: center;
  color: var(--muted);
}
.pagination {
  display: flex;
  gap: 8px;
  margin: 26px 0;
}
.pagination a {
  padding: 9px 16px;
  border: 1px solid var(--line);
  border-radius: 4px;
  text-decoration: none;
}
.pagination a.current {
  background: var(--navy);
  color: white;
}
.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
}
.verification {
  text-align: center;
  max-width: 780px;
}
.verify-card {
  max-width: 560px;
  margin: 30px auto;
  padding: 40px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--gold);
  border-radius: 8px;
}
.verify-logo {
  width: 100px;
  height: 100px;
  object-fit: contain;
}
.verify-card dd {
  font-size: 18px;
}
.account-nav {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--line);
  padding-bottom: 20px;
  margin-bottom: 32px;
}
.account-nav a {
  text-decoration: none;
}
.account-nav form {
  margin-left: auto;
}
.credential-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.credential {
  border-radius: 16px;
  background: linear-gradient(130deg, var(--navy), var(--navy2));
  color: white;
  padding: 28px;
  border-bottom: 7px solid var(--gold);
  box-shadow: 0 14px 35px #031b3322;
  min-height: 330px;
}
.credential-brand {
  display: flex;
  gap: 16px;
  align-items: center;
  border-bottom: 1px solid #ffffff30;
  padding-bottom: 18px;
}
.credential-brand img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  background: white;
  border-radius: 50%;
}
.credential-brand strong {
  font-size: 25px;
}
.credential-brand small {
  display: block;
  font-size: 11px;
}
.credential-person {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 20px 0;
}
.credential-person > img,
.credential-person > .avatar-placeholder {
  width: 86px;
  height: 105px;
  object-fit: cover;
  border-radius: 6px;
  font-size: 40px;
  flex-shrink: 0;
}
.credential-person h2 {
  font-size: 24px;
  margin: 0;
}
.credential-person p {
  font-size: 13px;
  margin: 6px 0;
}
.credential-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.credential-bottom p {
  font-size: 12px;
}
.credential-bottom canvas {
  width: 110px !important;
  height: 110px !important;
  background: white;
  border: 7px solid white;
}
.credential-back {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.credential-back h2 {
  color: var(--gold);
}
.break-all {
  overflow-wrap: anywhere;
  font-size: 12px;
}
.credential-grid + .actions {
  margin: 28px 0;
}
.skip-link {
  position: fixed;
  left: 12px;
  top: -100px;
  z-index: 100;
  background: white;
  padding: 12px;
}
.skip-link:focus {
  top: 10px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.link-button {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--link);
  font-size: 14px;
  text-decoration: underline;
}
.danger {
  color: var(--error);
}
.admin-shell {
  background: #f3f5f8;
  font-family: Arial, Helvetica, sans-serif;
}
.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: 250px;
  background: var(--navy);
  color: white;
  z-index: 40;
  padding: 28px 19px;
  overflow-y: auto;
}
.sidebar .brand {
  margin: 0 8px 28px;
}
.sidebar .brand-emblem {
  width: 46px;
  height: 46px;
}
.sidebar .brand span {
  font-size: 23px;
}
.sidebar nav {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.sidebar nav a {
  font-size: 13px;
  color: #c6d3e2;
  text-decoration: none;
  border-radius: 5px;
  padding: 10px 14px;
}
.sidebar nav a:hover,
.sidebar nav a[aria-current] {
  background: #ffffff13;
  color: white;
  box-shadow: inset 3px 0 var(--gold);
}
.admin-workspace {
  margin-left: 250px;
}
.admin-top {
  height: 78px;
  border-bottom: 1px solid var(--line);
  background: white;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 0 38px;
}
.admin-top > form:first-of-type {
  max-width: 430px;
  flex: 1;
}
.admin-top > span {
  margin-left: auto;
  font-size: 13px;
}
.admin-top input {
  background: var(--light);
  font-size: 13px;
  border: 0;
}
.admin-main {
  padding: 28px 38px 60px;
  max-width: 1800px;
  margin: auto;
}
.admin-main > h1 {
  font-family: Georgia, serif;
  font-size: 36px;
  margin: 22px 0 10px;
}
.breadcrumbs {
  font-size: 12px;
  color: var(--muted);
}
.breadcrumbs a {
  color: var(--muted);
}
.demo-notice {
  margin-top: 16px;
  padding: 10px 14px;
  border: 1px solid #d29a3630;
  background: #fff9ec;
  border-radius: 5px;
  font-size: 12px;
  color: #87621d;
}
.lead {
  color: var(--muted);
  margin-bottom: 26px;
  font-size: 15px;
}
.metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin: 25px 0;
}
.metric {
  padding: 22px;
  border: 1px solid var(--line);
  background: white;
  border-radius: 8px;
  border-top: 3px solid var(--gold);
}
.metric span {
  font-size: 13px;
  color: var(--muted);
}
.metric strong {
  display: block;
  font-size: 36px;
  margin-top: 8px;
  font-weight: 600;
}
.dashboard-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  margin-bottom: 22px;
}
.panel {
  margin: 20px 0;
}
.dashboard-grid .panel {
  margin: 0;
}
.panel h2 {
  font: 600 18px Arial;
  margin: 0 0 22px;
}
.bar-row {
  display: grid;
  grid-template-columns: 105px 1fr 30px;
  gap: 10px;
  align-items: center;
  font-size: 12px;
  margin: 13px 0;
}
.bar-track {
  height: 10px;
  background: var(--light);
  border-radius: 8px;
  overflow: hidden;
}
.bar-track > div {
  height: 100%;
  background: linear-gradient(90deg, var(--navy), var(--blue));
  border-radius: 8px;
}
.state-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 0;
  border-bottom: 1px solid var(--line);
}
.toolbar,
.inline-form {
  display: flex;
  align-items: end;
  gap: 12px;
  flex-wrap: wrap;
  margin: 25px 0;
}
.toolbar {
  justify-content: space-between;
}
.toolbar input,
.toolbar select {
  max-width: 320px;
}
.toolbar label {
  flex: 1;
  min-width: 140px;
}
.toolbar .inline-form {
  margin: 0;
}
.row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  min-width: 120px;
}
.row-actions a {
  font-size: 13px;
  white-space: nowrap;
}
.row-actions form {
  margin: 0;
}
.demo-tag {
  display: inline-block !important;
  background: #fff1cf;
  color: #806019 !important;
  padding: 2px 6px;
  border-radius: 3px;
  font-size: 9px !important;
  margin-left: 5px;
}
.checkbox-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
  margin: 20px 0;
}
.checkbox-grid label {
  overflow-wrap: anywhere;
  font-size: 13px;
}
.admin-toggle {
  display: none;
}
.admin-main details > summary {
  cursor: pointer;
  font-size: 17px;
  font-weight: 700;
  padding: 5px 0;
}
.admin-main details[open] > summary {
  margin-bottom: 22px;
}
.admin-main .btn {
  font-size: 13px;
}
details:not(.panel) {
  padding: 20px;
  border-bottom: 1px solid var(--line);
}
summary {
  cursor: pointer;
}
@media (max-width: 1200px) {
  .topbar .menu {
    gap: 8px;
    font-size: 10px;
  }
  .brand span {
    font-size: 22px;
  }
  .brand-emblem {
    width: 48px;
    height: 48px;
  }
  .navbtn {
    padding: 8px !important;
  }
  .metrics {
    grid-template-columns: repeat(3, 1fr);
  }
  .sidebar {
    width: 220px;
  }
  .admin-workspace {
    margin-left: 220px;
  }
  .admin-main {
    padding: 24px;
  }
  .credential-grid {
    grid-template-columns: 1fr;
    max-width: 650px;
  }
}
@media (max-width: 1000px) {
  .topbar .menu {
    display: none;
  }
  .mobile-toggle {
    display: block;
    margin-left: auto;
  }
  .topbar .menu.open {
    display: flex;
    position: absolute;
    left: 4%;
    right: 4%;
    top: 90px;
    background: var(--navy);
    flex-direction: column;
    align-items: stretch;
    padding: 24px;
    font-size: 15px;
    box-shadow: 0 15px 30px #0004;
  }
  .topbar .menu.open a {
    display: block;
    padding: 10px;
  }
  .submenu {
    position: static;
  }
  .sidebar {
    transform: translateX(-100%);
    transition: transform 0.2s;
  }
  .sidebar.open {
    transform: translateX(0);
  }
  .admin-workspace {
    margin-left: 0;
  }
  .admin-toggle {
    display: block;
    padding: 8px;
    background: white;
    border: 1px solid var(--line);
    border-radius: 4px;
  }
  .admin-top {
    padding: 0 20px;
  }
  .admin-top > span {
    display: none;
  }
  .member-grid {
    grid-template-columns: 190px 1fr !important;
    gap: 25px !important;
  }
  .member-grid > div:last-child {
    grid-column: 2;
  }
  .portrait {
    width: 185px;
    height: 235px;
  }
  .member-title h1 {
    font-size: 38px;
  }
  .member-body {
    grid-template-columns: 190px 1fr !important;
    gap: 25px !important;
  }
  .quickfacts {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .hero-content {
    width: 70%;
  }
  .hero-content h1 {
    font-size: 45px;
  }
}
@media (max-width: 700px) {
  h1,
  .page-heading h1 {
    font-size: 34px;
  }
  h2 {
    font-size: 28px;
  }
  .hero-slider {
    height: 680px;
  }
  .hero-content {
    width: 100%;
    padding-top: 170px;
  }
  .hero-content h1 {
    font-size: 39px;
  }
  .hero-content p {
    font-size: 17px;
  }
  .hero-content .actions {
    gap: 9px;
  }
  .hero-content .btn {
    padding: 12px 16px;
    font-size: 11px;
  }
  .section {
    padding: 38px 0;
  }
  .split,
  .cards,
  .filters,
  .form-grid,
  .dashboard-grid {
    grid-template-columns: 1fr;
  }
  .feature-band {
    grid-template-columns: 1fr;
  }
  .feature-band .photo {
    min-height: 220px;
  }
  .feature-band .quote {
    padding: 28px;
  }
  .stats {
    grid-template-columns: repeat(2, 1fr);
  }
  .stat {
    padding: 15px !important;
    border: 0 !important;
  }
  .stat .icon {
    font-size: 24px;
  }
  .stat strong {
    font-size: 26px;
  }
  .stat small {
    font-size: 11px;
  }
  .member-grid,
  .member-body {
    grid-template-columns: 1fr !important;
  }
  .member-grid > div:last-child {
    grid-column: auto;
  }
  .member-grid {
    text-align: center;
  }
  .member-grid .portrait {
    margin: auto;
  }
  .member-title h1 {
    font-size: 34px;
  }
  .member-body aside {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
  }
  .member-body .sidecard,
  .member-body .qr {
    margin: 0;
  }
  .member-body .sidecard {
    padding: 14px;
    font-size: 12px;
  }
  .member-body .qr {
    font-size: 12px;
  }
  .qr canvas {
    width: 120px !important;
    height: 120px !important;
  }
  .quickfacts {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .fact {
    font-size: 13px;
  }
  .mini-content {
    padding: 45px 0;
  }
  .mini-content h2 {
    font-size: 28px;
  }
  .footer .row {
    flex-direction: column;
    align-items: flex-start;
  }
  .footer-links span {
    margin: 0;
  }
  .metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .metric {
    padding: 16px;
  }
  .metric strong {
    font-size: 30px;
  }
  .metric span {
    font-size: 11px;
  }
  .admin-main {
    padding: 20px 15px;
  }
  .admin-top {
    padding: 0 14px;
    gap: 12px;
  }
  .admin-top input {
    font-size: 12px;
  }
  .admin-top > form:first-of-type {
    min-width: 0;
  }
  .admin-main > h1 {
    font-size: 31px;
  }
  .panel {
    padding: 20px;
  }
  .toolbar {
    align-items: stretch;
  }
  .toolbar .inline-form {
    width: 100%;
  }
  .checkbox-grid {
    grid-template-columns: 1fr 1fr;
  }
  .bar-row {
    grid-template-columns: 90px 1fr 28px;
  }
  .credential {
    padding: 20px;
  }
  .credential-person h2 {
    font-size: 21px;
  }
  .credential-brand strong {
    font-size: 22px;
  }
  .credential-grid {
    gap: 18px;
  }
  .credential-bottom .eyebrow {
    font-size: 9px;
  }
  .verify-card {
    padding: 25px;
  }
  .account-nav {
    gap: 15px;
    font-size: 14px;
  }
  .page-heading {
    padding: 34px 0;
  }
  .demo-banner {
    font-size: 9px;
    letter-spacing: 0.5px;
  }
  .home-page .topbar {
    top: 26px;
  }
  .full {
    grid-column: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}
@media print {
  .topbar,
  .footer,
  .demo-banner,
  .no-print,
  .sidebar,
  .admin-top,
  .account-nav {
    display: none !important;
  }
  body {
    background: white;
  }
  .credential-grid {
    display: block;
  }
  .credential {
    break-inside: avoid;
    margin: 12mm auto;
    width: 150mm;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  .credential-back {
    min-height: 85mm;
  }
  .container {
    width: 100%;
  }
  .section {
    padding: 0;
  }
  .admin-workspace {
    margin: 0;
  }
}
/* The supplied backgrounds contain baked UI. Crop to their clean map area. */
.directory {
  background-image:
    linear-gradient(90deg, rgba(4, 22, 40, 0.98), rgba(4, 31, 55, 0.84)),
    url("../images/globe.jpg");
  background-size:
    cover,
    auto 500%;
  background-position:
    center,
    center top;
}
.member-hero::after {
  background-size: auto 400%;
  background-position: center top;
  opacity: 0.2;
}
.slide::after {
  background: linear-gradient(
    90deg,
    rgba(3, 15, 29, 1) 0%,
    rgba(3, 15, 29, 0.97) 28%,
    rgba(3, 15, 29, 0.65) 48%,
    rgba(3, 15, 29, 0.12) 77%
  );
}
@media (min-width: 1201px) {
  .topbar .menu {
    font-size: 13px;
    gap: 14px;
  }
  .topbar .navbtn {
    padding: 10px 12px;
  }
}

/* Task-oriented administration navigation. */
.sidebar .brand { margin-bottom: 24px; }
.sidebar .nav-caption { margin: 22px 14px 10px; color: #a4b5c8; font-size: 10px; font-weight: 700; letter-spacing: 1.4px; }
.sidebar .nav-home { font-weight: 700; padding: 13px 14px; }
.sidebar details.nav-group { padding: 0; margin: 0; border: 0; border-bottom: 1px solid #ffffff12; }
.nav-group summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 14px; font-size: 13px; font-weight: 700; color: #e5edf6; cursor: pointer; border-radius: 6px; }
.nav-group summary::-webkit-details-marker { display: none; }
.nav-group summary:hover, .nav-group[open] summary { background: #ffffff0b; color: white; }
.nav-chevron { flex: 0 0 6px; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); transition: transform .15s; }
.nav-group[open] .nav-chevron { transform: rotate(45deg); }
.nav-group-links { display: flex; flex-direction: column; margin: 2px 0 12px 14px; padding-left: 8px; border-left: 1px solid #ffffff24; gap: 2px; }
.sidebar .nav-group-links a { padding: 10px 12px; line-height: 1.4; font-size: 12px; }
.sidebar .nav-group-links a[aria-current] { background: #ffffff18; font-weight: 700; color: #fff; }
.sidebar .nav-public { display: flex; justify-content: space-between; margin-top: 22px; border: 1px solid #ffffff26; }
.admin-navigation :is(a, summary):focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

.table-tools { display:flex; justify-content:space-between; align-items:center; gap:14px; margin:18px 0 10px; flex-wrap:wrap; }
.table-hint { color:var(--muted,#64748b); font-size:12px; line-height:1.5; }
.table-sort { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; border:0; background:none; padding:0; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.sort-arrow { opacity:.5; font-size:15px; }
th[aria-sort="ascending"], th[aria-sort="descending"] { background:#e4edf5; color:#031b33; }
th[aria-sort="ascending"] .sort-arrow, th[aria-sort="descending"] .sort-arrow { opacity:1; }
.table-sort:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
.table-export { white-space:nowrap; }
.table-export:disabled { opacity:.55; cursor:wait; }
.join-container { max-width:1000px; }.join-progress { display:grid; grid-template-columns:repeat(4,1fr); list-style:none; padding:0; gap:8px; margin:30px 0; }.join-progress li { padding:14px 10px; border-bottom:3px solid #d8e0e8; font-size:13px; color:#526477; }.join-progress li.current { border-color:var(--gold); color:var(--navy); font-weight:700; }.join-step[hidden],.join-actions [hidden] { display:none!important; }.join-step h2 { margin-top:0; }.join-step h2:focus { outline:none; }.join-step .form-grid { gap:20px; }.join-choices { margin-top:24px; border:1px solid #d8e0e8; border-radius:10px; padding:18px; }.join-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px; justify-content:flex-end; margin:24px 0; }.join-draft-note { font-size:12px; color:#526477; }.social-card { padding:20px; border:1px solid #d8e0e8; background:#f8fafc; border-radius:12px; margin:16px 0; }.social-card-top { display:flex; align-items:center; gap:16px; }.social-card-top label { flex:1; }.social-icon { width:42px; height:42px; display:grid; place-items:center; background:var(--navy); color:white; border-radius:10px; font-weight:700; }.social-controls { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:16px; }.social-controls a[aria-disabled] { color:#687889; cursor:default; }.social-error { color:#b42318; font-size:13px; }.join-summary { padding:16px 22px; background:#f3f6f9; border-radius:10px; margin:24px 0; }.application-review dt { font-weight:700; margin-top:16px; }.application-review dd { margin:4px 0 12px; }.join-step .check { margin:15px 0; }@media(max-width:600px){.join-progress { grid-template-columns:1fr 1fr; }.join-step { padding:20px; }.social-card { padding:14px; }.social-card-top { gap:8px; }.join-actions .btn { flex:1; }.join-container h1 { font-size:32px; }}
#restore-draft[hidden] { display:none!important; }
.skip-link:not(:focus) { clip-path:inset(50%); width:1px; height:1px; overflow:hidden; white-space:nowrap; padding:0; }
.contact-page { max-width:1180px; }.contact-presence { margin:30px 0 48px; }.presence-heading { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-bottom:26px; }.presence-heading h2 { margin:8px 0 12px; font-size:32px; }.presence-heading p { color:#64748b; max-width:600px; line-height:1.6; }.whatsapp-contact { display:flex; align-items:center; gap:12px; padding:16px 20px; color:white; background:#126d4c; border-radius:10px; text-decoration:none; font-size:14px; font-weight:700; flex-shrink:0; }.whatsapp-contact small { display:block; font-weight:400; margin-top:6px; color:#d8f5e8; }.whatsapp-contact:hover { background:#0b5439; }.whatsapp-contact:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }.world-map-card { background:#f0f5f8; border:1px solid #dce5ed; border-radius:18px; padding:24px 22px 16px; overflow:hidden; }.presence-map { display:block; width:100%; height:auto; }.map-country { fill:#cfdae3; stroke:#f8fafc; stroke-width:.65; stroke-linejoin:round; }.map-country.has-presence { fill:#c38b24; stroke:#8e651b; stroke-width:.8; }.map-country.has-presence:hover { fill:#0d446b; stroke:#fff; }.map-legend { display:flex; justify-content:center; align-items:center; gap:8px; color:#34495d; font-size:13px; }.map-legend span,.presence-dot { display:inline-block; width:9px; height:9px; border-radius:50%; background:#c38b24; flex-shrink:0; }.map-credit { text-align:right; font-size:10px; color:#6a7a88; margin:10px 0 0; }.presence-country-list { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; padding:0; margin:22px 0; list-style:none; }.presence-country-list li { display:flex; align-items:center; gap:9px; padding:10px 17px; background:#fff; border:1px solid #dce5ed; border-radius:999px; font-weight:700; font-size:14px; }.contact-form-panel { max-width:800px; margin:0 auto; }.contact-form-panel h2 { margin-top:0; }@media(max-width:800px){.presence-heading { flex-direction:column; align-items:stretch; gap:12px; }.presence-heading h2 { font-size:28px; }.whatsapp-contact { justify-content:center; }.world-map-card { padding:12px 6px; }.map-credit { text-align:center; }.presence-country-list { gap:8px; }.presence-country-list li { font-size:12px; padding:8px 12px; }}
/* Header management and board organization chart. */
.menu-sort-group { padding:0; margin:20px 0 0; list-style:none; }.menu-editor-item { display:flex; align-items:center; gap:16px; padding:15px 12px; border:1px solid #dce5ed; border-radius:9px; margin:8px 0; background:#fff; }.menu-editor-item.is-dragging { opacity:.55; border-color:var(--gold); }.drag-handle { touch-action:none; cursor:grab; background:#edf2f7; border:0; padding:10px 12px; border-radius:6px; font-size:22px; color:var(--navy); }.menu-item-label { flex:1; min-width:0; }.menu-item-label small { display:block; margin-top:5px; overflow-wrap:anywhere; color:#64748b; }.menu-toggle { display:flex; align-items:center; gap:8px; font-size:13px; }.menu-toggle input { width:18px; height:18px; accent-color:#126d4c; }.menu-move { display:flex; gap:5px; }.menu-move button { background:#f3f6f9; border:1px solid #ccd7e1; padding:8px 11px; border-radius:5px; cursor:pointer; }.menu-save-bar { position:sticky; bottom:0; display:flex; gap:18px; align-items:center; flex-wrap:wrap; padding:18px; background:#fff; border:1px solid #dce5ed; box-shadow:0 -5px 20px #031b3308; z-index:5; }.menu-save-bar span { flex:1; font-size:13px; }.menu-group-panel h2 { margin-top:0; }.board-intro { max-width:780px; margin-bottom:48px; }.board-intro p { line-height:1.7; color:#62748a; font-size:18px; }.board-page>section>h2 { text-align:center; margin:30px 0; }.org-scroll { overflow-x:auto; padding:8px 0 24px; }.org-scroll:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }.org-tree,.org-tree ol { display:flex; justify-content:center; list-style:none; padding:0; margin:0; min-width:max-content; }.org-tree li { position:relative; text-align:center; padding:24px 14px 0; }.org-tree>li { padding-top:0; }.org-tree ol { padding-top:30px; position:relative; }.org-tree ol:before { content:''; position:absolute; top:0; left:50%; height:30px; border-left:2px solid #c5d1dd; }.org-tree ol>li:before { content:''; position:absolute; top:0; left:0; width:100%; border-top:2px solid #c5d1dd; }.org-tree ol>li:first-child:before { left:50%; width:50%; }.org-tree ol>li:last-child:before { width:50%; }.org-tree ol>li:only-child:before { display:none; }.org-tree ol>li:after { content:''; position:absolute; top:0; left:50%; height:24px; border-left:2px solid #c5d1dd; }.board-card { box-sizing:border-box; width:260px; margin:0 auto; padding:26px 22px; border:1px solid #dbe4ed; border-top:3px solid var(--gold); border-radius:12px; background:#fff; box-shadow:0 8px 25px #0a284b09; }.board-card img,.board-avatar { width:96px; height:96px; border-radius:50%; object-fit:cover; margin:0 auto 18px; }.board-avatar { display:grid; place-items:center; background:#eaf0f6; color:#163b60; font:36px Georgia,serif; }.board-card h3 { font:700 23px Georgia,serif; margin:10px 0; }.board-founder-label { display:inline-block; color:#986a17; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:1px; }.board-role { color:#1b507c; font-size:14px; margin:10px 0; }.board-country,.board-pending p,.board-empty { color:#64748b; font-size:14px; }.board-contact { font-size:12px; overflow-wrap:anywhere; display:block; margin-top:12px; }.board-card details.board-bio { padding:12px 0 0; margin-top:14px; border:0; border-top:1px solid #e0e7ef; text-align:left; font-size:13px; line-height:1.6; }.board-bio summary { color:#1b507c; }.board-council { margin-top:35px; }.board-empty { text-align:center; margin:30px 0; }
@media(max-width:1200px){.topbar .menu:not(.open){display:none}.topbar .mobile-toggle{display:block;margin-left:auto}.topbar .menu.open{display:flex;position:absolute;left:4%;right:4%;top:90px;background:var(--navy);flex-direction:column;align-items:stretch;padding:24px;font-size:15px;box-shadow:0 15px 30px #0004}.topbar .menu.open a{display:block;padding:10px}.topbar .menu.open .submenu{position:static}}
@media(max-width:600px){.menu-editor-item{gap:10px;flex-wrap:wrap}.menu-item-label{flex-basis:50%}.menu-toggle{margin-left:52px}.menu-save-bar{padding:12px}.menu-save-bar .btn{width:100%}.org-tree,.org-tree ol{display:block;min-width:0}.org-tree li{padding:0 0 20px 16px}.org-tree>li{padding:0 0 28px}.org-tree ol{padding:24px 0 0 12px;margin-left:12px;border-left:2px solid #c5d1dd}.org-tree ol:before,.org-tree ol>li:before,.org-tree ol>li:after{display:none}.board-card{width:100%;max-width:320px}.board-intro h1{font-size:36px}}
.menu-font-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:24px 0; }.font-stepper { display:flex; align-items:center; gap:10px; margin:10px 0 16px; }.font-stepper input { width:80px; min-width:0; text-align:center; }.font-stepper button { width:40px; height:42px; border:1px solid #c5d1dd; border-radius:6px; background:#f1f5f9; color:#153752; font-size:22px; cursor:pointer; }.menu-font-preview { display:flex; flex-wrap:wrap; align-items:center; gap:15px; min-height:80px; padding:20px; background:#071d35; color:white; border-radius:8px; line-height:1.5; }.menu-font-panel h2 { margin-top:0; }.menu-font-panel small { color:#62748a; }@media(max-width:700px){.menu-font-grid{grid-template-columns:1fr}}

/* Honorary members: preserve full portraits and adapt the chosen column count. */
.honorary-grid {display:grid;gap:32px;max-width:1100px;margin:0 auto;align-items:start}
.honorary-columns-2 {grid-template-columns:repeat(2,minmax(0,1fr))}
.honorary-columns-1 {grid-template-columns:minmax(0,1fr);max-width:760px}
.honorary-card {margin:0;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--background)}
.honorary-card img {display:block;width:100%;height:auto}
.honorary-card figcaption {padding:24px;overflow-wrap:anywhere}
.honorary-card h2 {font-size:26px;margin:0 0 12px}
.honorary-card p {margin:0;line-height:1.7}
@media(max-width:700px){.honorary-columns-2{grid-template-columns:minmax(0,1fr)}.honorary-card figcaption{padding:20px}}

/* Transparent logo in the public header. */
.topbar .brand-emblem {background:transparent;border-radius:0;}

/* Larger federation emblem in the public header. */
.topbar .brand-emblem {width:82px;height:82px;flex-shrink:0;}
@media(max-width:700px){.topbar .brand-emblem{width:66px;height:66px;}}

.council-page{background:#f5f7fa;padding-bottom:72px}.council-heading{background:#031b33;color:white;padding:68px 0}.council-heading h1{color:white;margin:16px 0;font-size:52px}.council-heading p{max-width:700px;color:#d0dce8;line-height:1.8}.council-section{padding-top:60px}.council-section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.council-section-heading h2{font-size:32px;margin:10px 0 0}.council-section-heading>span{color:#667085;font-size:13px;white-space:nowrap}.council-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:start}.council-leadership{grid-template-columns:repeat(2,minmax(0,1fr));max-width:950px;margin:auto}.council-card{background:white;border:1px solid #dfe6ee;border-radius:16px;overflow:hidden;box-shadow:0 12px 35px #031b3309}.council-photo{display:block;background:#031b33}.council-photo img{display:block;width:100%;height:auto}.council-caption{padding:25px;overflow-wrap:anywhere}.council-caption h3{font-size:25px;margin:10px 0;color:#031b33}.council-caption p{font-size:15px;line-height:1.65;color:#526176;margin:0}.council-territory{text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:1.8px;color:#956b20}.council-monogram{height:130px;background:linear-gradient(130deg,#031b33,#17436b);color:#d4a756;display:grid;place-items:center;font:52px Georgia}.council-caption details{margin-top:16px}.council-caption a{font-size:14px}.council-mexico .council-card{height:100%}@media(max-width:900px){.council-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.council-grid{grid-template-columns:minmax(0,1fr)}.council-heading{padding:45px 0}.council-heading h1{font-size:38px}.council-section{padding-top:38px}.council-section-heading{display:block}.council-section-heading h2{font-size:28px}.council-section-heading>span{display:block;margin-top:12px}}

@media(min-width:601px){.council-countries{grid-template-columns:repeat(2,minmax(0,1fr));max-width:950px;margin:auto}}

.honorary-portraits{gap:24px}.honorary-portraits .honorary-card{display:flex;align-items:center;padding:24px;gap:24px;min-height:240px;background:#fff;border:1px solid #e1e5ea;box-shadow:0 8px 28px #031b3308}.honorary-portraits .honorary-portrait{width:151px;flex:0 0 151px}.honorary-portraits .honorary-portrait img{width:auto;max-width:151px;height:auto;max-height:182px;margin:auto}.honorary-portraits figcaption{padding:0;min-width:0}.honorary-portraits h2{font-size:25px;line-height:1.2;margin:12px 0}.honorary-portraits p{font-size:15px;color:#64748b}.honorary-label{font-size:10px;letter-spacing:1.2px;color:#946a22;font-weight:700}.honorary-initials{height:182px;display:grid;place-items:center;background:linear-gradient(135deg,#031b33,#17436b);color:#d4a756;border-radius:16px;font:42px Georgia}@media(max-width:1050px){.honorary-portraits .honorary-card{gap:16px;padding:18px}.honorary-portraits h2{font-size:22px}}@media(min-width:701px) and (max-width:850px){.honorary-portraits .honorary-card{flex-direction:column;text-align:center}}@media(max-width:380px){.honorary-portraits .honorary-card{flex-direction:column;text-align:center}}

/* Keep navigation reachable on short phone screens and avoid input zoom on iOS. */
@media(max-width:1200px){.topbar .menu.open{max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px);overflow-y:auto;overscroll-behavior:contain;flex-wrap:nowrap}.topbar .menu.open>*{flex-shrink:0}}
@media(max-width:700px){input:not([type=checkbox]):not([type=radio]),select,textarea,.admin-top input{font-size:16px}}
