/* MAUK corporate interface layer.
   Presentation only: no workflow, form, permission or data behaviour changes. */
:root {
  --mauk-font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --mauk-text-xs: .75rem;
  --mauk-text-sm: .875rem;
  --mauk-text-base: 1rem;
  --mauk-text-lg: 1.125rem;
  --mauk-text-xl: 1.375rem;
  --mauk-text-2xl: clamp(1.65rem, 2.4vw, 2rem);
  --mauk-text-page: clamp(2.25rem, 4vw, 3.25rem);
  --mauk-text-display: clamp(3rem, 5vw, 4rem);
  --mauk-radius-sm: .625rem;
  --mauk-radius-md: .875rem;
  --mauk-radius-lg: 1.125rem;
  --mauk-shadow-card: 0 8px 26px rgba(8, 35, 61, .065);
  --mauk-shadow-hover: 0 14px 32px rgba(8, 35, 61, .11);
  --mauk-border: #dce4e8;
  --mauk-muted: #607381;
}

html { font-size: 16px; }
body,
button,
input,
select,
textarea,
.tooltip,
.popover {
  font-family: var(--mauk-font-sans);
}
body { font-size: var(--mauk-text-base); line-height: 1.55; letter-spacing: -.005em; }
p, li, dd, .form-text, .text-secondary { line-height: 1.6; }

h1, h2, h3, h4, h5, h6,
.hero h1,
.page-hero h1,
.dashboard-hero h1,
.admin-hero h1,
.raffle-hero h1,
.section-heading h2,
.about-strip h2,
.community-banner h2,
.campaign-card h2,
.club-calendar-head h3 {
  font-family: var(--mauk-font-sans);
  color: var(--navy);
  font-weight: 700;
  letter-spacing: -.025em;
}
.hero h1 { max-width: 780px; font-size: var(--mauk-text-display); font-weight: 650; line-height: 1.02; letter-spacing: -.045em; }
.hero h1 em { font-weight: 600; }
.page-hero h1,
.dashboard-hero h1,
.admin-hero h1,
.raffle-hero h1 { font-size: var(--mauk-text-page); font-weight: 700; line-height: 1.08; }
.section-heading h2,
.about-strip h2,
.community-banner h2 { font-size: var(--mauk-text-2xl); line-height: 1.16; }
.content-card h2,
.form-shell h2 { font-size: var(--mauk-text-xl); font-weight: 700; line-height: 1.25; }
.service-card h3,
.programme-card h3,
.fundraiser-card h2,
.fundraising-tile-head h3 { font-size: 1.2rem; font-weight: 700; line-height: 1.3; }

.eyebrow,
.section-kicker {
  font-size: var(--mauk-text-xs);
  font-weight: 700;
  letter-spacing: .12em;
}
.nav-link { font-size: .9375rem; font-weight: 600; }
.dropdown-item { font-size: var(--mauk-text-sm); }

.btn {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--mauk-radius-sm);
  font-size: .9375rem;
  font-weight: 650;
  letter-spacing: 0;
  box-shadow: none;
}
.btn-sm { min-height: 36px; padding-top: .375rem; padding-bottom: .375rem; font-size: .8125rem; }
.btn-lg { min-height: 50px; }
.btn:focus-visible,
.nav-link:focus-visible,
a:focus-visible { outline: 3px solid rgba(207, 151, 31, .38); outline-offset: 2px; }

.form-label {
  margin-bottom: .45rem;
  color: #243f52;
  font-size: .9rem;
  font-weight: 650;
  line-height: 1.35;
}
.form-control,
.form-select {
  min-height: 46px;
  border-color: #cfd9df;
  border-radius: var(--mauk-radius-sm);
  color: #173247;
  font-size: .9375rem;
  line-height: 1.4;
}
textarea.form-control { min-height: 108px; }
.form-control::placeholder { color: #82919c; opacity: 1; }
.form-text { color: var(--mauk-muted); font-size: .8125rem; }
.form-check-label { font-size: .9375rem; }

.form-shell,
.content-card,
.fundraiser-card,
.fundraising-admin-tile,
.campaign-card,
.programme-card {
  border-color: var(--mauk-border);
  border-radius: var(--mauk-radius-lg);
  box-shadow: var(--mauk-shadow-card);
}
.content-card-head { margin-bottom: 1.25rem; }
.service-card { border-color: var(--mauk-border); border-radius: var(--mauk-radius-lg); box-shadow: var(--mauk-shadow-card); }
.service-card:hover,
.fundraiser-card:hover,
.fundraising-admin-tile:hover { box-shadow: var(--mauk-shadow-hover); }
.service-card p,
.programme-card p,
.campaign-card p,
.fundraiser-card p { color: var(--mauk-muted); font-size: .9375rem; }

.metric-card,
.admin-metric {
  border-color: var(--mauk-border);
  border-radius: var(--mauk-radius-md);
  box-shadow: 0 5px 18px rgba(8, 35, 61, .045);
}
.metric-card span,
.metric-card small,
.admin-metric span {
  color: var(--mauk-muted);
  font-size: .8125rem;
  line-height: 1.35;
}
.metric-card strong { font-size: 1.35rem; font-weight: 700; }
.admin-metric strong { font-size: 1.65rem; font-weight: 700; letter-spacing: -.025em; }

.portal-table {
  color: #233d50;
  font-size: .875rem;
  line-height: 1.45;
}
.portal-table > :not(caption) > * > * { padding: .8rem .75rem; border-bottom-color: #e3e9ec; vertical-align: middle; }
.portal-table thead th {
  padding-top: .7rem;
  padding-bottom: .7rem;
  color: #536977;
  background: #f7f9fa;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .045em;
  white-space: nowrap;
}
.portal-table tbody tr:hover { background: #fafcfd; }
.table-responsive { border-radius: var(--mauk-radius-sm); scrollbar-color: #9aaab4 #eef2f4; scrollbar-width: thin; }
.booking-requests-table th,
.booking-requests-table td { white-space: nowrap; }
.booking-room-badge { display: inline-flex; align-items: center; padding: .35rem .65rem; border: 1px solid transparent; border-radius: 999px; font-size: .78rem; font-weight: 700; line-height: 1.2; }
.booking-room-main { color: #125a39; background: #def3e7; border-color: #9dd5b6; }
.booking-room-music { color: #174f82; background: #dceeff; border-color: #9fc5e8; }
.booking-room-dining { color: #765000; background: #fff0c7; border-color: #e5c467; }
.booking-room-other { color: #4d5962; background: #edf1f3; border-color: #cdd6db; }
.status-declined,
.status-failed { color: #8a3333; background: #fae2e2; }
.status,
.membership-type-badge {
  padding: .34rem .62rem;
  font-size: .75rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .005em;
}

.admin-tabs a { font-size: .8125rem; font-weight: 650; }
.card-link { font-size: .8125rem; font-weight: 700; }
.quick-grid a { font-size: .9rem; font-weight: 650; }
.page-dashboard .quick-action-tiles a > span,
.page-dashboard .member-service-tiles a > span { font-size: .8125rem; font-weight: 650; line-height: 1.3; }
.page-dashboard .member-service-tiles a { min-height: 92px; }
.fundraising-metric-grid span,
.fundraising-tile-summary small { font-size: .8125rem; }
.fundraising-metric-grid strong,
.fundraising-tile-summary strong { font-weight: 700; }

.alert { border-radius: var(--mauk-radius-sm); font-size: .9375rem; line-height: 1.5; }
.badge { font-weight: 650; letter-spacing: .005em; }

@media (max-width: 991.98px) {
  .hero h1 { font-size: clamp(2.75rem, 8vw, 4rem); }
  .page-hero h1,
  .dashboard-hero h1,
  .admin-hero h1,
  .raffle-hero h1 { font-size: clamp(2rem, 6vw, 2.8rem); }
  .section-space-sm { padding: 2.75rem 0; }
}

@media (max-width: 767.98px) {
  .hero h1 { font-size: clamp(2.35rem, 11vw, 2.75rem); line-height: 1.04; }
  .page-hero h1,
  .dashboard-hero h1,
  .admin-hero h1,
  .raffle-hero h1 { font-size: clamp(1.9rem, 9vw, 2.5rem); }
  .hero-lead,
  .page-hero p,
  .dashboard-hero p,
  .admin-hero p { font-size: 1rem; line-height: 1.6; }
  .section-heading h2,
  .about-strip h2,
  .community-banner h2 { font-size: clamp(1.6rem, 7vw, 2rem); }
  .content-card h2,
  .form-shell h2 { font-size: 1.25rem; }
  .content-card,
  .form-shell { padding: 1.15rem; }
  .portal-table { min-width: 640px; font-size: .84rem; }
  .portal-table > :not(caption) > * > * { padding: .7rem .6rem; }
  .page-dashboard .member-service-tiles a > span { font-size: .78rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
