/*
 * Purged Bootstrap 5.3.7
 * Only the classes actually used in this project.
 * Replaces the full CDN link — saves ~240 KB of CSS.
 *
 * Bootstrap Icons (bi, bi-*) are served from a separate CDN and use
 * an icon font; they cannot be purged the same way. Keep that link:
 *   <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css">
 *
 * Bootstrap utility classes included:
 *   Layout:      .container, .row, .col, .col-4/5/6/7/8
 *   Flexbox:     .d-flex, .justify-content-center, .justify-content-between, .align-items-center
 *   Spacing:     .m-0/3, .mb-0/1/3/4, .me-2, .mt-0/2/3/4, .mx-2/3/5/auto, .p-5, .pt-5, .px-3/4, .py-3
 *   Color/BG:    .bg-dark, .text-white, .text-black, .text-center, .text-success
 *   Component:   .btn
 */

/* ============================================================
   Box-sizing reset — required for .col-* widths to work.
   Without this the browser's default content-box model makes
   columns wider than their percentage and they wrap or overflow.
   ============================================================ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* ============================================================
   Bootstrap Reboot (subset)
   Mirrors what _reboot.scss + _rfs.scss do for the elements
   actually used in this project. Without these, the browser's
   user-agent stylesheet takes over and changes fonts, sizes,
   margins, and spacing in ways Bootstrap was silently fixing.
   ============================================================ */

/* body: UA adds margin:8px; Bootstrap also sets line-height,
   -webkit-text-size-adjust, and tab-size as base defaults */
body {
  margin: 0;
  font-family: var(--bs-body-font-family, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
  font-size: var(--bs-body-font-size, 1rem);
  font-weight: var(--bs-body-font-weight, 400);
  line-height: var(--bs-body-line-height, 1.5);
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

/* Headings: UA adds bold weight + varying font-sizes (h1=2em, h2=1.5em,
   h3=1.17em…) and top+bottom margins. Bootstrap's RFS sets fluid sizes
   and resets margin-top to 0. font-size is left unset here so your
   site.scss heading rules take full control without fighting UA defaults. */
h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
}

.h1, h1 {
  font-size: calc(1.375rem + 1.5vw);
}

.h2, h2 {
  font-size: calc(1.325rem + .9vw);
}

@media (min-width: 1200px) {
  .h1, h1 {
    font-size: 2.5rem;
  }
  .h2, h2 {
    font-size: 2rem;
  }
}

/* Paragraphs: UA adds bottom margin (~1em block margin) */
p {
  margin-top: 0;
  margin-bottom: 1rem;
}

/* Abbreviations: UA adds dotted underline + help cursor */
abbr[title] {
  text-decoration: underline dotted;
  cursor: help;
  text-decoration-skip-ink: none;
}

/* Bold/strong: UA weight varies across browsers (700 vs bolder) */
b,
strong {
  font-weight: bolder;
}

/* Small: UA sets to 80%, Bootstrap normalizes to 0.875em */
small {
  font-size: 0.875em;
}

/* Sub/sup: UA adds vertical-align + font-size but can affect line-height */
sub,
sup {
  position: relative;
  font-size: 0.75em;
  line-height: 0;
  vertical-align: baseline;
}
sub { bottom: -0.25em; }
sup { top: -0.5em; }

/* Links: Bootstrap resets color inheritance and decoration for <a> without
   a class (bare anchor tags, e.g. the address link in #office) */
a {
  color: rgba(var(--bs-link-color-rgb, 13, 110, 253), var(--bs-link-opacity, 1));
  text-decoration: underline;
}
a:hover {
  --bs-link-color-rgb: var(--bs-link-hover-color-rgb, 10, 88, 202);
}

/* Lists: UA adds margin + padding-left indent */
ul,
ol {
  padding-left: 2rem;
  margin-top: 0;
  margin-bottom: 1rem;
}
ul ul,
ul ol,
ol ul,
ol ol {
  margin-bottom: 0;
}

/* Horizontal rule: UA renders as a border; Bootstrap resets to a
   color-based top border so it respects the foreground color */
hr {
  margin: 1rem 0;
  color: inherit;
  border: 0;
  border-top: 1px solid;
  opacity: 0.25;
}

/* Images: UA renders inline (baseline gap); Bootstrap makes them block */
img,
svg {
  vertical-align: middle;
}

/* Tables: UA adds border-collapse:separate and spacing */
table {
  caption-side: bottom;
  border-collapse: collapse;
}

/* Form elements: UA uses system-ui fonts, ignoring the page font.
   Bootstrap sets font-family/size/line-height to inherit so buttons,
   inputs, and selects match the rest of the page. This is why your
   buttons were showing a different font. */
button,
input,
optgroup,
select,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

/* Buttons: UA adds appearance, cursor varies; Bootstrap normalizes */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}
button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
  cursor: pointer;
}

/* iframe: UA renders inline (creates whitespace gap beneath) */
iframe {
  border: 0;
}

/* ============================================================
   Bootstrap CSS Variables (subset needed for btn + dark bg)
   ============================================================ */
:root {
  --bs-blue: #0d6efd;
  --bs-green: #198754;
  --bs-dark: #212529;
  --bs-success: #198754;
  --bs-success-rgb: 25, 135, 84;
  --bs-dark-rgb: 33, 37, 41;
  --bs-white-rgb: 255, 255, 255;
  --bs-black-rgb: 0, 0, 0;
  --bs-body-color: #212529;
  --bs-body-bg: #fff;
  --bs-border-width: 1px;
  --bs-border-style: solid;
  --bs-border-color: #dee2e6;
  --bs-border-radius: 0.375rem;
  --bs-btn-padding-x: 0.75rem;
  --bs-btn-padding-y: 0.375rem;
  --bs-btn-font-size: 1rem;
  --bs-btn-font-weight: 400;
  --bs-btn-line-height: 1.5;
  --bs-btn-border-width: var(--bs-border-width);
  --bs-btn-border-radius: var(--bs-border-radius);
  --bs-btn-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
}

/* ============================================================
   Layout — .container
   ============================================================ */
.container {
  width: 100%;
  padding-right: calc(var(--bs-gutter-x) * 0.5);
  padding-left: calc(var(--bs-gutter-x) * 0.5);
  margin-right: auto;
  margin-left: auto;
}

@media (min-width: 576px) {
  .container { max-width: 540px; }
}
@media (min-width: 768px) {
  .container { max-width: 720px; }
}
@media (min-width: 992px) {
  .container { max-width: 960px; }
}
@media (min-width: 1200px) {
  .container { max-width: 1140px; }
}
@media (min-width: 1400px) {
  .container { max-width: 1320px; }
}

/* ============================================================
   Grid — .row, .col, .col-4/5/6/7/8
   ============================================================ */
.row {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  display: flex;
  flex-wrap: wrap;
  margin-top: calc(-1 * var(--bs-gutter-y));
  margin-right: calc(-0.5 * var(--bs-gutter-x));
  margin-left: calc(-0.5 * var(--bs-gutter-x));
}

.row > * {
  flex-shrink: 0;
  max-width: 100%;
  padding-right: calc(var(--bs-gutter-x) * 0.5);
  padding-left: calc(var(--bs-gutter-x) * 0.5);
  margin-top: var(--bs-gutter-y);
}

.col {
  flex: 1 0 0%;
}

.col-4 {
  flex: 0 0 auto;
  width: 33.33333333%;
}

.col-5 {
  flex: 0 0 auto;
  width: 41.66666667%;
}

.col-6 {
  flex: 0 0 auto;
  width: 50%;
}

.col-7 {
  flex: 0 0 auto;
  width: 58.33333333%;
}

.col-8 {
  flex: 0 0 auto;
  width: 66.66666667%;
}

/* ============================================================
   Flexbox utilities
   ============================================================ */
.d-flex {
  display: flex !important;
}

.justify-content-center {
  justify-content: center !important;
}

.justify-content-between {
  justify-content: space-between !important;
}

.align-items-center {
  align-items: center !important;
}

/* ============================================================
   Spacing — margin
   ============================================================ */
.m-0 {
  margin: 0 !important;
}

.m-3 {
  margin: 1rem !important;
}

.mb-0 {
  margin-bottom: 0 !important;
}

.mb-1 {
  margin-bottom: 0.25rem !important;
}

.mb-3 {
  margin-bottom: 1rem !important;
}

.mb-4 {
  margin-bottom: 1.5rem !important;
}

.me-2 {
  margin-right: 0.5rem !important;
}

.mt-0 {
  margin-top: 0 !important;
}

.mt-2 {
  margin-top: 0.5rem !important;
}

.mt-3 {
  margin-top: 1rem !important;
}

.mt-4 {
  margin-top: 1.5rem !important;
}

.mx-2 {
  margin-right: 0.5rem !important;
  margin-left: 0.5rem !important;
}

.mx-3 {
  margin-right: 1rem !important;
  margin-left: 1rem !important;
}

.mx-5 {
  margin-right: 3rem !important;
  margin-left: 3rem !important;
}

.mx-auto {
  margin-right: auto !important;
  margin-left: auto !important;
}

/* ============================================================
   Spacing — padding
   ============================================================ */
.p-5 {
  padding: 3rem !important;
}

.pt-5 {
  padding-top: 3rem !important;
}

.px-3 {
  padding-right: 1rem !important;
  padding-left: 1rem !important;
}

.px-4 {
  padding-right: 1.5rem !important;
  padding-left: 1.5rem !important;
}

.py-3 {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

.py-5 {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

/* ============================================================
   Color & background
   ============================================================ */
.bg-dark {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;
}

.text-white {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;
}

.text-black {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;
}

.text-center {
  text-align: center !important;
}

.text-success {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;
}

/* ============================================================
   Button — .btn (base only; no color variants used)
   ============================================================ */
.btn {
  --bs-btn-padding-x: 0.75rem;
  --bs-btn-padding-y: 0.375rem;
  --bs-btn-font-size: 1rem;
  --bs-btn-font-weight: 400;
  --bs-btn-line-height: 1.5;
  --bs-btn-color: var(--bs-body-color);
  --bs-btn-bg: transparent;
  --bs-btn-border-width: var(--bs-border-width);
  --bs-btn-border-color: transparent;
  --bs-btn-border-radius: var(--bs-border-radius);
  --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
  --bs-btn-disabled-opacity: 0.65;
  --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), 0.5);
  display: inline-block;
  padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
  font-size: var(--bs-btn-font-size);
  font-weight: var(--bs-btn-font-weight);
  line-height: var(--bs-btn-line-height);
  color: var(--bs-btn-color);
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  background-color: var(--bs-btn-bg);
  border: var(--bs-btn-border-width) var(--bs-btn-border-style, solid) var(--bs-btn-border-color);
  border-radius: var(--bs-btn-border-radius);
  transition: var(--bs-btn-transition);
}

.btn:hover {
  color: var(--bs-btn-hover-color);
  background-color: var(--bs-btn-hover-bg);
  border-color: var(--bs-btn-hover-border-color);
}

.btn:focus-visible {
  color: var(--bs-btn-hover-color);
  background-color: var(--bs-btn-hover-bg);
  border-color: var(--bs-btn-hover-border-color);
  outline: 0;
  box-shadow: var(--bs-btn-focus-box-shadow);
}

.btn:disabled,
.btn.disabled {
  color: var(--bs-btn-disabled-color);
  pointer-events: none;
  background-color: var(--bs-btn-disabled-bg);
  border-color: var(--bs-btn-disabled-border-color);
  opacity: var(--bs-btn-disabled-opacity);
}
