:root {
  /* Astra / azyr.org theme tokens (post-25 dynamic CSS) */
  --ast-blue: #046bd2;
  --ast-blue-dark: #045cb4;
  --ast-heading: #1e293b;
  --ast-body: #334155;
  --ast-muted: #64748b;
  --ast-surface: #f9fafb;
  --ast-emphasis: #d90000;
  --ink: var(--ast-body);
  --muted: var(--ast-muted);
  --brand: var(--ast-heading);
  --accent: var(--ast-blue);
  --accent-hover: var(--ast-blue-dark);
  --border: #e2e8f0;
  --bg: var(--ast-surface);
  --brand-logo-h: 2.75rem;
  --brand-logo-w: 9.35rem;
  --brand-logo-h-hero: 5.5rem;
  --brand-logo-w-hero: 18.75rem;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.55;
}
.wrap { max-width: 1100px; margin: 0 auto; padding: 0 1rem; }
.site-header {
  background: #fff;
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 20;
}
.top-bar {
  background: #0d0d0d;
  color: rgba(255, 255, 255, 0.92);
  font-size: .88rem;
}
.top-bar-inner {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 2.35rem;
}
.top-bar-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .35rem 1.25rem;
  margin-left: auto;
}
.top-nav { display: flex; flex-wrap: wrap; gap: 1.25rem; align-items: center; justify-content: flex-end; }
.top-nav a {
  color: rgba(255, 255, 255, 0.88);
  text-decoration: none;
}
.top-nav a:hover { color: #fff; }
.top-nav a.active { color: #fff; font-weight: 600; }
.top-auth { display: flex; align-items: center; flex-shrink: 0; }
.top-login {
  color: rgba(255, 255, 255, 0.88);
  text-decoration: none;
  font-weight: 600;
}
.top-login:hover { color: #fff; }
.top-login.active { color: #fff; }
.top-bar .user-menu-toggle {
  color: rgba(255, 255, 255, 0.92);
}
.top-bar .user-caret { color: rgba(255, 255, 255, 0.65); }
.main-bar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 4.25rem;
  flex-wrap: wrap;
  padding: .35rem 0;
}
.brand {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
  line-height: 0;
}
.brand-logo {
  display: block;
  width: auto;
  height: auto;
  max-height: var(--brand-logo-h);
  max-width: min(var(--brand-logo-w), 100%);
  transition: max-height .2s ease, max-width .2s ease;
}
body.page-home .main-bar-inner {
  min-height: 5.75rem;
  padding: .75rem 0;
}
body.page-home .site-header:not(.is-scrolled) .brand-logo {
  max-height: var(--brand-logo-h-hero);
  max-width: min(var(--brand-logo-w-hero), 72vw);
}
body.page-home .site-header.is-scrolled .brand-logo {
  max-height: var(--brand-logo-h);
  max-width: min(var(--brand-logo-w), 100%);
}
.nav-toggle {
  display: none;
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 4px;
  padding: .35rem .75rem;
  font: inherit;
}
.main-nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .15rem 1.1rem;
  align-items: center;
}
.main-nav-item { position: relative; }
.main-nav-item > a {
  color: var(--ink);
  text-decoration: none;
  font-size: .95rem;
  font-weight: 500;
  padding: .35rem 0;
  display: inline-block;
}
.main-nav-item > a:hover { color: var(--accent); }
.main-nav-item.active > a,
.main-nav-item > a[aria-current="page"] {
  color: var(--accent);
  font-weight: 700;
}
.submenu-toggle {
  border: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  padding: 0 .2rem;
  margin-left: .15rem;
  vertical-align: middle;
}
.submenu {
  list-style: none;
  margin: 0;
  padding: .35rem 0;
  position: absolute;
  left: 0;
  top: 100%;
  min-width: 13rem;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  display: none;
  z-index: 30;
}
.main-nav-item.submenu-open .submenu,
.main-nav-item.has-children:hover .submenu { display: block; }
.submenu a {
  display: block;
  padding: .45rem .85rem;
  color: var(--ink);
  text-decoration: none;
  font-size: .9rem;
}
.submenu a:hover { background: #f9fafb; color: var(--accent); }
.user-menu { position: relative; }
.user-menu-toggle {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  border: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
  color: var(--ink);
  padding: .15rem 0;
}
.user-avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  object-fit: cover;
  background: var(--accent);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .75rem;
  font-weight: 700;
}
.user-name { max-width: 10rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-caret { color: var(--muted); font-size: .75rem; }
.user-dropdown {
  position: absolute;
  right: 0;
  top: calc(100% + .35rem);
  min-width: 11rem;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  padding: .35rem 0;
  z-index: 40;
}
.user-dropdown a {
  display: block;
  padding: .5rem .9rem;
  color: var(--ink);
  text-decoration: none;
  font-size: .9rem;
}
.user-dropdown a:hover { background: #f9fafb; color: var(--accent); }
.section-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 1rem 0 1.25rem;
}
.section-tabs a {
  padding: .35rem .75rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  text-decoration: none;
  color: var(--ink);
  background: #fff;
  font-size: .88rem;
}

/* Grand Sessions: horizontal section nav (menu row + rule), full-width content */
.main--section-nav-horizontal {
  max-width: 1180px;
}
.section-nav-horizontal-wrap {
  margin: 0 0 1.5rem;
}
.section-nav-horizontal-list {
  list-style: none;
  margin: 0;
  padding: .65rem 0 .5rem;
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-items: center;
  gap: .35rem 1.35rem;
}
.section-nav-horizontal-list li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.section-nav-horizontal-list a {
  display: inline-block;
  padding: .35rem .1rem;
  text-decoration: none;
  color: var(--ink);
  font-size: .92rem;
  line-height: 1.35;
}
.section-nav-horizontal-list a:hover {
  color: var(--accent);
  text-decoration: none;
}
.section-nav-horizontal-list a.active {
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
}
.section-nav-horizontal-rule {
  border: 0;
  border-top: 1px solid var(--border);
  margin: 0;
}
.page-section-content--full {
  min-width: 0;
}

/* Grand Sessions: CMS copy on page background (no card panels) */
.page-grand-sessions .cms-body {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

/* Grand Sessions home: three seals + day announcements — source order preserved */
.page-grand-sessions .cms-body--sessions-home [data-id="464c8eb"] {
  text-align: center;
  max-width: 48rem;
  margin: 0 auto 1rem;
}
.page-grand-sessions .cms-body--sessions-home [data-id="464c8eb"] h2 {
  margin-top: 0;
}
/* Grand Sessions home: three seals + session info — Commandery, Chapter, Council */
.page-grand-sessions .sessions-seal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem 2.5rem;
  max-width: 58rem;
  margin: 2rem auto;
  align-items: start;
  justify-items: center;
  text-align: center;
}
.page-grand-sessions .sessions-seal-grid > [data-element_type="column"] {
  width: 100%;
  min-width: 0;
}
.page-grand-sessions .sessions-seal-grid img {
  display: block;
  width: 150px;
  height: 150px;
  max-width: 100%;
  object-fit: contain;
  margin: 0 auto .75rem;
}
.page-grand-sessions .sessions-seal-grid p {
  text-align: center;
  margin: .35rem 0;
}
.page-grand-sessions .sessions-home-cta {
  margin: 1.75rem auto 0;
  max-width: 58rem;
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: .75rem 1.25rem;
}

/* Grand Sessions schedule tables */
.page-grand-sessions .sessions-schedule-actions {
  margin: 0 0 1.25rem;
}
.page-grand-sessions .cms-body--schedule table {
  width: 100%;
  max-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: auto;
  margin: 0 0 1.35rem;
}
.page-grand-sessions .cms-body--schedule table td,
.page-grand-sessions .cms-body--schedule table th {
  padding: .5rem 1rem .5rem 0;
  vertical-align: top;
  text-align: left;
  line-height: 1.45;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.page-grand-sessions .cms-body--schedule table td + td,
.page-grand-sessions .cms-body--schedule table th + td {
  padding-left: 1.35rem;
}
.page-grand-sessions .cms-body--schedule table td[align="right"],
.page-grand-sessions .cms-body--schedule table th[align="right"],
.page-grand-sessions .cms-body--schedule table td:nth-child(2),
.page-grand-sessions .cms-body--schedule table td:nth-child(3) {
  text-align: right;
  white-space: nowrap;
  width: 1%;
}
.page-grand-sessions .cms-body--schedule table td:nth-child(1) {
  min-width: 12rem;
  padding-right: 1.5rem;
}
.page-grand-sessions .cms-body--schedule table td:nth-child(4) {
  min-width: 9rem;
  padding-left: 1.5rem;
}
.page-grand-sessions .cms-body--schedule h3 {
  margin: 1.5rem 0 .65rem;
  color: var(--brand);
}
.page-grand-sessions .cms-body--schedule ul {
  margin: 0 0 1.25rem;
  padding-left: 1.25rem;
}

/* Guest's Programs: centered ladies / guest flyer */
.page-grand-sessions .cms-body--guests-programs {
  text-align: center;
  max-width: 52rem;
  margin: 0 auto;
}
.page-grand-sessions .cms-body--guests-programs img {
  display: block;
  margin: 0 auto;
  max-width: min(792px, 100%);
  width: auto;
  height: auto;
}

@media (max-width: 640px) {
  .page-grand-sessions .sessions-seal-grid {
    grid-template-columns: 1fr;
    max-width: 18rem;
  }
}
@media (max-width: 760px) {
  .section-nav-horizontal-list {
    gap: .25rem .85rem;
    justify-content: flex-start;
  }
}
.main--with-section-nav { max-width: 1180px; }
.page-section-layout {
  display: grid;
  grid-template-columns: minmax(11.5rem, 14rem) minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
}
.page-section-content { min-width: 0; }
.section-nav-aside {
  position: sticky;
  top: 1rem;
}
.section-nav-toggle {
  display: none;
  width: 100%;
  align-items: center;
  gap: .55rem;
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 6px;
  padding: .55rem .75rem;
  font: inherit;
  color: var(--ink);
  cursor: pointer;
  text-align: left;
}
.section-nav-toggle-label {
  font-size: .92rem;
  font-weight: 600;
  color: var(--brand);
}
.section-nav-toggle-icon {
  display: inline-flex;
  flex-direction: column;
  justify-content: space-between;
  width: 1.125rem;
  height: .75rem;
  flex-shrink: 0;
}
.section-nav-toggle-icon span {
  display: block;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
}
.section-nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .1rem;
}
.section-nav-list a {
  display: block;
  padding: .5rem .7rem;
  text-decoration: none;
  color: var(--ink);
  font-size: .9rem;
  line-height: 1.35;
  border-left: 3px solid transparent;
  border-radius: 0 4px 4px 0;
}
.section-nav-list a:hover {
  color: var(--accent);
  background: #f9fafb;
}
.section-nav-list a.active {
  color: var(--accent);
  font-weight: 700;
  border-left-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 8%, #fff);
}
.section-nav-spacer {
  height: .65rem;
  margin: .15rem 0;
  border-top: 1px solid var(--border);
  list-style: none;
}
.profile-dl { display: grid; grid-template-columns: 8rem 1fr; gap: .35rem .75rem; }
.profile-dl dt { font-weight: 600; color: var(--muted); }
.ok-msg { color: #166534; }
@media (max-width: 860px) {
  .nav-toggle { display: inline-block; }
  .main-nav { width: 100%; display: none; }
  .main-nav.open { display: block; }
  .main-nav-list { flex-direction: column; align-items: stretch; gap: 0; }
  .main-nav-item { border-top: 1px solid var(--border); padding: .35rem 0; }
  .submenu { position: static; box-shadow: none; border: 0; padding-left: .75rem; display: none; }
  .main-nav-item.submenu-open .submenu { display: block; }
  .main-nav-item.has-children:hover .submenu { display: none; }
  .user-name { display: none; }
  .page-section-layout { grid-template-columns: 1fr; gap: 1rem; }
  .section-nav-aside { position: static; }
  .section-nav-toggle { display: inline-flex; }
  .section-nav {
    display: none;
    margin-top: .5rem;
    padding: .5rem 0;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fff;
  }
  .section-nav.open { display: block; }
  .section-nav-list { padding: .25rem 0; }
}
.main { padding: 2rem 1rem 3rem; }
h1 { color: var(--brand); margin: 0 0 .5rem; font-size: 1.75rem; }
.lede { color: var(--muted); margin-top: 0; }
.card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.25rem;
  margin: 1.25rem 0;
}
.grid-3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}
table.data { width: 100%; border-collapse: collapse; background: #fff; }
table.data th, table.data td {
  text-align: left;
  padding: .5rem .65rem;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
table.data th { width: 55%; font-weight: 600; }
.muted { color: var(--muted); }
.small { font-size: .85rem; }
.pill {
  display: inline-block;
  padding: .15rem .5rem;
  border-radius: 999px;
  background: #fef3c7;
  color: #92400e;
  font-size: .8rem;
}
.err { color: #b91c1c; }
.site-footer {
  border-top: 1px solid var(--border);
  padding: 1.5rem 0;
  background: #fff;
}
.tabs { display: flex; gap: .5rem; flex-wrap: wrap; margin: 1rem 0; }
.tabs a {
  padding: .35rem .75rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  text-decoration: none;
  color: var(--ink);
  background: #fff;
}
.tabs a.active { border-color: var(--accent); color: var(--accent); font-weight: 600; }
.cms-body img { max-width: 100%; height: auto; }

/* Section pages: seal/logo floats right; body copy wraps and justifies */
.cms-body--section {
  --section-seal-size: 200px;
}
.cms-body--section p {
  text-align: justify;
}
.cms-body--section img.alignright,
.cms-body--section p > img.alignright {
  float: right;
  clear: right;
  width: var(--section-seal-size);
  height: var(--section-seal-size);
  max-width: min(var(--section-seal-size), 38vw);
  margin: 0 0 1rem 1.25rem;
  object-fit: contain;
  object-position: center;
}
.cms-body--section::after {
  content: "";
  display: table;
  clear: both;
}
@media (max-width: 640px) {
  .cms-body--section img.alignright,
  .cms-body--section p > img.alignright {
    float: none;
    display: block;
    margin: 0 auto 1rem;
  }
}
.cms-appendant-note {
  margin-top: 1.75rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border);
}
.form-stack label { display: block; margin: .85rem 0 .35rem; font-weight: 600; font-size: .92rem; }
.form-stack input[type="text"],
.form-stack input[type="email"],
.form-stack input[type="tel"],
.form-stack input[type="password"],
.form-stack select,
.form-stack textarea {
  width: 100%;
  max-width: 32rem;
  padding: .5rem .65rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  font: inherit;
}
.check-row { font-weight: 500; display: flex; gap: .5rem; align-items: center; }
.check-row input { width: auto; max-width: none; }
.req { color: #b91c1c; }
.btn-primary {
  display: inline-block;
  background: var(--accent);
  color: #fff;
  border: none;
  padding: .55rem 1.1rem;
  border-radius: 4px;
  font: inherit;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}
.ok-box { border-color: #86efac; background: #f0fdf4; }
.btn-secondary {
  display: inline-block;
  background: #fff;
  color: var(--accent);
  border: 1px solid var(--border);
  padding: .5rem 1rem;
  border-radius: 4px;
  font: inherit;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}
.cal-subscribe-links { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: .75rem; }
.cal-month { padding: 0; overflow: hidden; }
.cal-month-toolbar {
  display: flex;
  align-items: center;
  gap: .75rem 1rem;
  flex-wrap: wrap;
  padding: 1rem 1.15rem;
  border-bottom: 1px solid var(--border);
  background: #fff;
}
.cal-month-title {
  margin: 0;
  flex: 1 1 auto;
  font-size: 1.25rem;
  color: var(--brand);
  text-align: center;
}
.cal-month-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  color: var(--ink);
  text-decoration: none;
  font-weight: 700;
  background: #fff;
}
.cal-month-nav:hover { border-color: var(--accent); color: var(--accent); }
.cal-month-today { margin-left: auto; font-size: .88rem; padding: .35rem .75rem; }
.cal-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cal-month-head { display: contents; }
.cal-month-head-cell {
  padding: .55rem .35rem;
  text-align: center;
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: var(--muted);
  background: #f8fafc;
  border-bottom: 1px solid var(--border);
}
.cal-month-row { display: contents; }
.cal-month-cell {
  min-height: 6.5rem;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: .35rem .4rem .45rem;
  background: #fff;
  vertical-align: top;
}
.cal-month-cell:nth-child(7n) { border-right: 0; }
.cal-month-cell.is-outside { background: #f8fafc; color: var(--muted); }
.cal-month-cell.is-outside .cal-month-date { opacity: .55; }
.cal-month-cell.is-today { background: color-mix(in srgb, var(--accent) 6%, #fff); }
.cal-month-cell.is-today .cal-month-date {
  background: var(--accent);
  color: #fff;
  border-radius: 999px;
  width: 1.65rem;
  height: 1.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cal-month-date {
  font-size: .82rem;
  font-weight: 700;
  margin-bottom: .25rem;
}
.cal-month-events {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cal-month-event {
  display: block;
  font-size: .72rem;
  line-height: 1.25;
  padding: .12rem .2rem;
  border-radius: 3px;
  background: color-mix(in srgb, var(--accent) 12%, #fff);
  color: var(--accent-hover);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cal-month-more { margin-top: .15rem; font-size: .68rem; }
.cal-month-list { padding: 0; overflow: hidden; }
.cal-month-list h2 { padding: 1rem 1.15rem 0; }
.cal-month-list .data { border: 0; border-radius: 0; }
.cal-cta-section { margin-top: 2rem; }
.cal-cta-section > h2 { margin: 0 0 .35rem; color: var(--brand); }
.cal-cta-lede { margin-top: 0; margin-bottom: 1rem; }
.cal-cta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1rem;
}
.cal-cta { display: flex; flex-direction: column; gap: .65rem; margin: 0; }
.cal-cta-title { margin: 0; font-size: 1.05rem; color: var(--brand); }
.cal-cta-copy { margin: 0; color: var(--muted); font-size: .92rem; }
.cal-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: auto;
  padding-top: .35rem;
}
@media (max-width: 760px) {
  .cal-month-cell { min-height: 4.75rem; }
  .cal-month-event { font-size: .65rem; }
  .cal-month-today { margin-left: 0; width: 100%; text-align: center; }
}
.cal-url-input {
  width: 100%;
  max-width: 100%;
  font: inherit;
  padding: .5rem .65rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: #fff;
}
.cal-table .cal-actions { white-space: nowrap; }
.cal-table tr.cal-umbrella td { border-bottom-color: transparent; }
.cal-table tr.cal-child td { background: #fafafa; font-size: .92rem; }
.cal-table tr.cal-child td:first-child { padding-left: 1.25rem; }
.cal-child-marker { color: var(--muted); margin-right: .25rem; }
.cal-table .cal-actions a { color: var(--accent); text-decoration: none; font-weight: 600; }
.officer-term-title { text-align: center; font-size: 1.35rem; margin: 1.25rem 0 1rem; font-weight: 600; }
.officer-slate th { width: 52%; font-weight: 600; text-align: left; vertical-align: top; }

.wizard-steps {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .65rem;
  list-style: none;
  padding: 0;
  margin: 1rem 0 1.25rem;
  font-size: .85rem;
  counter-reset: wizard;
}
.wizard-steps li {
  color: var(--muted);
  padding: .35rem .65rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fff;
}
.wizard-steps li.active {
  color: var(--accent);
  font-weight: 700;
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 8%, #fff);
}
.wizard-steps li.done { color: var(--text); border-color: #cbd5e1; }
.wizard-actions { display: flex; gap: .75rem; margin-top: 1.25rem; align-items: center; flex-wrap: wrap; }
.form-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: .75rem 1rem; }
.form-grid-2 .span-2 { grid-column: 1 / -1; }
.info-box {
  padding: .75rem 1rem;
  border-radius: 8px;
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1e3a5f;
  margin: 0 0 1rem;
}
.reg-auth-pending { border-left: 4px solid var(--accent); }
.reg-fieldset {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .85rem 1rem 1rem;
  margin: 1rem 0;
  background: #fafafa;
}
.reg-fieldset.nested { background: #fff; margin-top: .75rem; }
.reg-fieldset legend { font-weight: 600; padding: 0 .35rem; }
.reg-section {
  border: 1px solid var(--border);
  border-radius: 8px;
  margin: .85rem 0;
  background: #fff;
}
.reg-section summary {
  cursor: pointer;
  font-weight: 600;
  padding: .75rem 1rem;
  list-style: none;
}
.reg-section summary::-webkit-details-marker { display: none; }
.reg-section[open] summary { border-bottom: 1px solid var(--border); }
.reg-section > .form-grid-2,
.reg-section > .reg-fieldset { margin: .85rem 1rem 1rem; }
.check-row { display: block; margin: .35rem 0; }
.check-row input { margin-right: .4rem; }
.meal-day-group { margin: 1.25rem 0; }
.meal-day-group h3 { margin: 0 0 .5rem; font-size: 1.05rem; }
.meal-table .meal-qty { width: 4rem; font: inherit; padding: .35rem .5rem; border: 1px solid var(--border); border-radius: 4px; }
.meal-table tr.meal-dignitary td:first-child { font-weight: 600; }
.badge {
  display: inline-block;
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  padding: .1rem .4rem;
  border-radius: 4px;
  background: #e0e7ff;
  color: #3730a3;
  vertical-align: middle;
}
.review-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1rem;
  margin: 1rem 0;
}
.review-block {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .85rem 1rem;
  background: #fafafa;
}
.review-block h3 { margin: 0 0 .5rem; font-size: .95rem; }
.review-lines { margin: 0; padding-left: 1.1rem; font-size: .9rem; }
.review-lines li { margin: .2rem 0; }
.review-total { font-size: 1.1rem; margin-top: 1rem; }
.pay-option { padding: .5rem 0; }
.req { color: #b91c1c; }
.btn-secondary {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text);
  padding: .55rem 1rem;
  border-radius: 6px;
  cursor: pointer;
}

.news-intro { margin-bottom: 1.25rem; }
.news-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem);
  gap: 1.5rem;
  align-items: start;
  margin-top: 1.25rem;
}
.news-main { min-width: 0; }
.news-sidebar { display: flex; flex-direction: column; gap: 1rem; }
.news-search { margin-bottom: 1rem; padding: 1rem; }
.news-search-label {
  display: block;
  font-weight: 600;
  margin-bottom: .45rem;
  color: var(--brand);
}
.news-search-row {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}
.news-search-row input[type=search] {
  flex: 1 1 14rem;
  min-width: 0;
  font: inherit;
  padding: .55rem .65rem;
  border: 1px solid var(--border);
  border-radius: 4px;
}
.news-search-summary { margin: 0 0 1rem; }
.news-featured { padding: 0; overflow: hidden; margin-bottom: 1.25rem; }
.news-featured-media { display: block; line-height: 0; background: #000; }
.news-featured-media img {
  display: block;
  width: 100%;
  max-height: 22rem;
  object-fit: cover;
}
.news-featured-media.is-seal-hero {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f8fafc;
  padding: 1.25rem;
  max-height: 16rem;
}
.news-featured-media.is-seal-hero img {
  width: auto;
  height: auto;
  max-width: 9rem;
  max-height: 9rem;
  object-fit: contain;
}
.news-featured-body { padding: 1.15rem 1.25rem 1.25rem; }
.news-featured-title {
  margin: .35rem 0 .65rem;
  font-size: 1.65rem;
  line-height: 1.25;
}
.news-featured-title a { color: var(--brand); text-decoration: none; }
.news-featured-title a:hover { color: var(--accent); }
.news-featured-action { margin: .85rem 0 0; }
.news-more-title {
  margin: 0 0 .75rem;
  font-size: 1.15rem;
  color: var(--brand);
}
.news-cta { margin: 0; }
.news-cta-event {
  border-color: color-mix(in srgb, var(--accent) 25%, var(--border));
  background: color-mix(in srgb, var(--accent) 4%, #fff);
}
.news-cta-kicker {
  margin: 0 0 .35rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--accent);
}
.news-cta-title {
  margin: 0 0 .45rem;
  font-size: 1.05rem;
  color: var(--brand);
}
.news-cta-date {
  margin: 0 0 .25rem;
  font-weight: 600;
  color: var(--brand);
}
.news-cta-location { margin: 0 0 .5rem; font-size: .88rem; }
.news-cta-copy {
  margin: 0 0 .75rem;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.45;
}
.news-cta-action { margin: 0; }
.news-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}
.news-sidebar-article { margin: 0; }
.news-sidebar-thumb {
  display: block;
  margin: -1.25rem -1.25rem .75rem;
  line-height: 0;
  overflow: hidden;
  border-radius: 8px 8px 0 0;
}
.news-sidebar-thumb img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 9rem;
  object-fit: cover;
}
.news-sidebar-thumb.is-seal-hero {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f8fafc;
  min-height: 6.5rem;
  max-height: 9rem;
  padding: .75rem;
}
.news-sidebar-thumb.is-seal-hero img {
  width: auto;
  height: auto;
  max-width: 5.5rem;
  max-height: 5.5rem;
  object-fit: contain;
}
.news-sidebar-title {
  margin: .25rem 0 .45rem;
  font-size: 1rem;
  line-height: 1.3;
}
.news-sidebar-title a { color: var(--brand); text-decoration: none; }
.news-sidebar-title a:hover { color: var(--accent); }
.news-sidebar-teaser {
  margin: 0 0 .55rem;
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.45;
}
.news-sidebar-read { margin: 0; font-size: .88rem; }
.news-sidebar-read a { color: var(--accent); font-weight: 600; text-decoration: none; }
.news-sidebar-read a:hover { text-decoration: underline; }

.ayr-links { margin: 0 0 1.25rem; font-size: .92rem; }
.ayr-links a { color: var(--accent); font-weight: 600; text-decoration: none; }
.ayr-links a:hover { text-decoration: underline; }
.ayr-map-section { padding: 1rem; }
.ayr-map-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(16rem, 1fr);
  gap: 1.25rem;
  align-items: start;
}
.ayr-map-wrap { min-width: 0; }
.ayr-map {
  display: block;
  width: 100%;
  max-width: 420px;
  height: auto;
  margin: 0 auto;
}
.ayr-map-outline {
  fill: color-mix(in srgb, var(--accent) 8%, #fff);
  stroke: var(--border);
  stroke-width: 2;
}
.ayr-map-marker { cursor: pointer; }
.ayr-map-marker .ayr-map-dot {
  fill: var(--accent);
  stroke: #fff;
  stroke-width: 2;
  transition: fill .15s ease, r .15s ease;
}
.ayr-map-marker.active .ayr-map-dot,
.ayr-map-marker:hover .ayr-map-dot,
.ayr-map-marker:focus .ayr-map-dot {
  fill: var(--accent-hover);
  r: 10;
}
.ayr-map-count {
  fill: #fff;
  font-size: 10px;
  font-weight: 700;
  pointer-events: none;
}
.ayr-map-hint { margin: .65rem 0 0; text-align: center; }
.ayr-map-panel-title { margin: 0 0 .5rem; font-size: 1.2rem; color: var(--brand); }
.ayr-map-panel-intro { margin-top: 0; }
.ayr-body-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: .85rem; }
.ayr-body-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .85rem;
  background: #fff;
}
.ayr-body-card h3 { margin: 0 0 .25rem; font-size: 1rem; }
.ayr-body-card h3 a { color: var(--brand); text-decoration: none; }
.ayr-body-card h3 a:hover { color: var(--accent); }
.ayr-body-meeting,
.ayr-body-address,
.ayr-body-contact { margin: .45rem 0 0; font-size: .9rem; line-height: 1.45; }
.ayr-area-summary { margin: 0 0 1rem; color: var(--muted); line-height: 1.5; }
.ayr-panel-ctas {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  margin-top: 1rem;
}
.ayr-sojourner-cta { margin-top: 1.25rem; }
.ayr-sojourner-title {
  margin-top: 0;
  text-transform: none;
}
.ayr-sojourner-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: .85rem;
}
@media (max-width: 900px) {
  .ayr-map-layout { grid-template-columns: 1fr; }
}
.news-list { list-style: none; margin: 0; padding: 0; }
.news-item {
  display: flex;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--border);
}
.news-item:last-child { border-bottom: 0; }
.news-thumb img {
  display: block;
  width: 120px;
  height: auto;
  border-radius: 6px;
  object-fit: cover;
}
.news-thumb.is-seal-hero {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 90px;
  flex-shrink: 0;
  background: #f8fafc;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: .35rem;
}
.news-thumb.is-seal-hero img {
  width: auto;
  height: auto;
  max-width: 4.5rem;
  max-height: 4.5rem;
  border-radius: 0;
  object-fit: contain;
}
.news-item-body { flex: 1; min-width: 0; }
.news-title { margin: .25rem 0; font-size: 1.15rem; }
.news-date { font-size: .9rem; color: var(--muted); }
.news-cats { margin: .15rem 0; font-size: .85rem; }
.news-excerpt { margin: .35rem 0 0; }
.news-back { margin: 0 0 1rem; }
.news-article .cms-hero { margin: 1rem 0; max-width: 100%; height: auto; }
.news-article .cms-hero.is-seal-hero {
  display: block;
  margin: 1rem auto;
  max-width: 9rem;
  max-height: 9rem;
  width: auto;
  height: auto;
  object-fit: contain;
}
@media (max-width: 900px) {
  .news-layout { grid-template-columns: 1fr; }
  .news-sidebar { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
}

.admin-body { background: #f8fafc; }
.admin-header { background: #1e293b; color: #f8fafc; }
.admin-header-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; padding: .75rem 0; }
.admin-brand { color: #fff; font-weight: 700; text-decoration: none; }
.admin-nav { display: flex; gap: .75rem; flex: 1; }
.admin-nav a { color: #cbd5e1; text-decoration: none; padding: .25rem .5rem; border-radius: 4px; }
.admin-nav a.active, .admin-nav a:hover { color: #fff; background: rgba(255,255,255,.08); }
.admin-header-actions { display: flex; gap: .75rem; }
.admin-header-actions a { color: #cbd5e1; }
.admin-main { padding: 1.5rem 0 3rem; }
.admin-split { display: grid; grid-template-columns: minmax(12rem, 16rem) 1fr; gap: 1.5rem; align-items: start; }
@media (max-width: 800px) { .admin-split { grid-template-columns: 1fr; } }
.admin-list-panel, .admin-form-panel { background: #fff; border: 1px solid var(--border); border-radius: 8px; padding: 1rem; }
.admin-entity-list { list-style: none; margin: 0; padding: 0; }
.admin-entity-list li { margin: .35rem 0; }
.admin-entity-list a.active { font-weight: 700; }
.admin-form label { display: block; margin: .75rem 0 .25rem; font-weight: 600; }
.admin-form input[type=text], .admin-form input[type=datetime-local], .admin-form textarea { width: 100%; box-sizing: border-box; }
.admin-wysiwyg { min-height: 12rem; font-family: ui-monospace, monospace; }
.tox-tinymce { border-radius: 6px !important; border-color: var(--border) !important; margin-top: .25rem; }
.tox .tox-edit-area__iframe { background: #fff; }
.admin-code { font-family: ui-monospace, monospace; font-size: .9rem; }
.admin-form-actions { margin-top: 1rem; display: flex; gap: .75rem; flex-wrap: wrap; }
.admin-danger-form { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.btn-danger { background: #b91c1c; color: #fff; border: 0; padding: .55rem 1rem; border-radius: 6px; cursor: pointer; }
.admin-card-list { list-style: none; margin: 1rem 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.admin-card { background: #fff; border: 1px solid var(--border); border-radius: 8px; padding: 1rem; }
.checkbox-row { font-weight: normal; display: flex; align-items: center; gap: .5rem; }
.pill { display: inline-block; padding: .1rem .45rem; border-radius: 999px; background: #f1f5f9; font-size: .75rem; }
.ok { color: #166534; }
.err { color: #b91c1c; }

.event-manage-header { background: #0f3d5c; color: #f8fafc; border-bottom: 3px solid var(--accent, #b8860b); }
.event-manage-header-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; padding: .75rem 0; }
.event-manage-brand { color: #fff; font-weight: 700; text-decoration: none; }
.event-manage-nav { display: flex; gap: .75rem; flex: 1; flex-wrap: wrap; }
.event-manage-nav a { color: #cbd5e1; text-decoration: none; padding: .25rem .5rem; border-radius: 4px; }
.event-manage-nav a.active, .event-manage-nav a:hover { color: #fff; background: rgba(255,255,255,.1); }
.event-manage-header-actions { display: flex; flex-wrap: wrap; gap: .75rem; font-size: .9rem; }
.event-manage-header-actions a { color: #cbd5e1; }
.event-manage-main { padding: 1.5rem 0 3rem; }
.table-scroll { overflow-x: auto; }

/* Home landing */
.page-home .main { padding-top: 1.25rem; }
.page-home .home-intro h1 { color: var(--brand); }
.page-home .cms-body h2 em,
.page-home .cms-body strong { color: var(--ast-emphasis); }

.home-seals {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: center;
  gap: 0;
  margin: 0 0 1.75rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--border);
}
.home-seal {
  flex: 1 1 0;
  min-width: 0;
  max-width: 12rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: .5rem 1.25rem;
}
.home-seal a {
  display: block;
  line-height: 0;
}
.home-seal a:hover img {
  opacity: .88;
}
.home-seal img {
  display: block;
  max-width: 100%;
  width: auto;
  height: auto;
  max-height: 8.5rem;
  object-fit: contain;
  margin: 0 auto;
}
.home-seal-label {
  display: block;
  margin-top: .45rem;
  font-size: .75rem;
  line-height: 1.3;
  color: var(--muted);
}
.home-seal-divider {
  flex: 0 0 1px;
  width: 1px;
  align-self: stretch;
  margin: .75rem 0;
  background: var(--border);
}
@media (max-width: 768px) {
  .home-seals {
    flex-direction: column;
    align-items: center;
    padding: 1rem 0;
  }
  .home-seal {
    flex: 0 0 auto;
    width: 100%;
    max-width: 14rem;
    padding: .65rem 0;
  }
  .home-seal-divider {
    width: min(12rem, 70%);
    height: 1px;
    min-height: 0;
    margin: .15rem auto;
    align-self: center;
  }
}

.home-featured {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin: 1.5rem 0;
}
.home-tile { margin: 0; display: flex; flex-direction: column; }
.home-tile-title { margin: 0 0 .65rem; font-size: 1.15rem; color: var(--brand); }
.home-tile-title a { color: inherit; text-decoration: none; }
.home-tile-title a:hover { color: var(--accent); }
.home-tile p { margin: 0 0 .75rem; color: var(--muted); font-size: .95rem; }
.home-tile-actions { margin-top: auto; padding-top: .5rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.btn {
  display: inline-block;
  background: var(--accent);
  color: #fff;
  border: none;
  padding: .55rem 1.1rem;
  border-radius: 4px;
  font: inherit;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}
.btn:hover { background: var(--accent-hover); color: #fff; }
.home-event-list,
.home-news-list { list-style: none; margin: 0 0 .5rem; padding: 0; font-size: .92rem; }
.home-event-list li,
.home-news-list li { margin: .45rem 0; line-height: 1.35; }
.home-event-date,
.home-news-date { display: block; font-size: .8rem; color: var(--muted); }
.home-event-title { color: var(--ink); }
.home-news-list a { color: var(--accent); text-decoration: none; font-weight: 600; }
.home-news-list a:hover { text-decoration: underline; }
.home-officers-title { margin: 0 0 1rem; font-size: 1.1rem; }
.home-officers-grid a { color: var(--accent); text-decoration: none; font-weight: 600; }
.home-officers-grid a:hover { text-decoration: underline; }
@media (max-width: 900px) {
  .home-featured { grid-template-columns: 1fr; }
}

.parallel-run-banner {
  background: #fef3c7;
  border-bottom: 1px solid #fcd34d;
  font-size: .88rem;
  color: #78350f;
  line-height: 1.45;
}
.parallel-run-banner-inner {
  padding: .55rem 1rem;
  text-align: center;
}
.parallel-run-banner a { color: #92400e; font-weight: 600; }
