:root {
  --bs-primary: #842E2B;
  --bs-primary-rgb: 132, 46, 43;
  --iau-primary: #842E2B;
  --iau-accent: #EA8511;
  --iau-panel: #668BB1;
  --iau-offwhite: #F8F8F8;
  --iau-muted: #606060;
}

body {
  color: var(--iau-muted);
  background: #fff;
}

h1, h2, h3, h4, h5, h6 {
  color: #222;
}

.btn-primary {
  --bs-btn-bg: var(--iau-primary);
  --bs-btn-border-color: var(--iau-primary);
  --bs-btn-hover-bg: #6d2624;
  --bs-btn-hover-border-color: #6d2624;
  --bs-btn-active-bg: #5b1e1c;
  --bs-btn-active-border-color: #5b1e1c;
}

.btn-outline-primary {
  --bs-btn-color: var(--iau-primary);
  --bs-btn-border-color: var(--iau-primary);
  --bs-btn-hover-bg: var(--iau-primary);
  --bs-btn-hover-border-color: var(--iau-primary);
  --bs-btn-active-bg: var(--iau-primary);
  --bs-btn-active-border-color: var(--iau-primary);
}

/* ========== Top-level tab pills ========== */
.iau-tab-nav {
  border-bottom: 2px solid #eee;
  margin-bottom: 1.5rem;
  gap: .25rem;
  flex-wrap: wrap;
}
.iau-tab-nav .nav-link {
  border-radius: 0;
  color: var(--iau-panel);
  font-weight: 600;
  letter-spacing: .5px;
  padding: .85rem 1.25rem;
  border-bottom: 3px solid transparent;
  background: transparent;
}
.iau-tab-nav .nav-link:hover {
  color: var(--iau-primary);
}
.iau-tab-nav .nav-link.active {
  color: var(--iau-primary);
  background: transparent;
  border-bottom-color: var(--iau-primary);
}

/* ========== Stepper ========== */
.iau-stepper {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0 0 1.75rem 0;
  gap: .5rem;
  overflow-x: auto;
  scrollbar-width: thin;
  padding-bottom: .5rem;
}
.iau-step {
  flex: 1 0 auto;
  min-width: 140px;
  background: var(--iau-panel);
  color: #fff;
  border-radius: 4px;
  padding: .85rem 1rem;
  position: relative;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .75rem;
  opacity: .85;
  transition: background .15s, opacity .15s;
  user-select: none;
}
.iau-step:hover {
  opacity: 1;
}
.iau-step[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: .6;
}
.iau-step .step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, .2);
  font-weight: 700;
  font-size: 1.1rem;
  flex: 0 0 auto;
}
.iau-step .step-labels {
  line-height: 1.15;
  font-size: .85rem;
}
.iau-step .step-title {
  display: block;
  font-weight: 700;
}
.iau-step .step-desc {
  display: block;
  font-size: .75rem;
  opacity: .85;
  text-transform: uppercase;
  letter-spacing: .3px;
}
.iau-step.active {
  background: var(--iau-accent);
  opacity: 1;
  box-shadow: 0 2px 8px rgba(234, 133, 17, .35);
}
.iau-step.done {
  background: var(--iau-primary);
  opacity: 1;
}
.iau-step.done .step-num::before {
  content: "\2713";
}
.iau-step.done .step-num { font-size: 0; }
.iau-step.done .step-num::before { font-size: 1.1rem; }

/* ========== Step panes ========== */
.iau-step-pane {
  background: var(--iau-offwhite);
  border: 1px solid #e5e5e5;
  border-radius: 4px;
  padding: 1.5rem;
  margin-bottom: 1rem;
}
.iau-step-pane h2 {
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #333;
  border-bottom: 1px solid #ddd;
  padding-bottom: .5rem;
  margin-bottom: 1.25rem;
}
.iau-step-footer {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  margin-top: 1rem;
}

/* ========== Review table ========== */
.review-table {
  width: 100%;
  border-collapse: collapse;
}
.review-table tr {
  border-bottom: 1px solid #e5e5e5;
}
.review-table tr:last-child { border-bottom: none; }
.review-table th {
  text-align: left;
  padding: .6rem .75rem .6rem 0;
  vertical-align: top;
  font-weight: 600;
  width: 40%;
  text-transform: uppercase;
  font-size: .8rem;
  letter-spacing: .3px;
  color: #444;
}
.review-table td {
  padding: .6rem 0;
  vertical-align: top;
  word-break: break-word;
}

/* ========== Misc ========== */
.conditional.d-none { display: none !important; }
.honeypot {
  position: absolute;
  left: -9999px;
  top: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}
.captcha-box {
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 4px;
  padding: 1rem 1.25rem;
  margin-top: 1.25rem;
}
.captcha-box label { margin-bottom: .5rem; }

.form-label {
  text-transform: uppercase;
  font-size: .8rem;
  letter-spacing: .3px;
  color: #444;
}

/* Tom Select tweaks to match form-control height */
.ts-wrapper.form-select,
.ts-wrapper.form-control { padding: 0; }
.ts-wrapper .ts-control {
  min-height: calc(1.5em + .75rem + 2px);
}

/* Mobile tuning */
@media (max-width: 576px) {
  .iau-step { min-width: 120px; padding: .65rem .75rem; }
  .iau-step .step-labels { font-size: .75rem; }
  .iau-step .step-num { width: 1.75rem; height: 1.75rem; font-size: .95rem; }
  .iau-step-pane { padding: 1rem; }
}
