:root{
  --bw-navy:#1e2e63;
  --bw-navy-2:#15224b;

  --bw-gold:#f3c44e;
  --bw-gold-2:#e7b63a;

  --bw-blue-1:#1e2e63;
  --bw-blue-2:#2f5bff;

  --bg:#f5f7fb;
  --text:#0f172a;
  --muted:#64748b;

  --card: rgba(255,255,255,.92);
  --border: rgba(15,23,42,.12);
  --shadow: 0 22px 70px rgba(2,6,23,.18);

  --focus-gold: rgba(243,196,78,.22);
  --focus-blue: rgba(47,91,255,.22);
}

.bw-body{
  min-height:100vh;
  margin:0;
  color:var(--text);
  background:
    radial-gradient(900px 380px at 15% 5%, rgba(243,196,78,.22), transparent 60%),
    radial-gradient(900px 420px at 85% 12%, rgba(30,46,99,.22), transparent 60%),
    radial-gradient(900px 380px at 55% 95%, rgba(243,196,78,.12), transparent 60%),
    linear-gradient(180deg, #f7f8fc 0%, #eef2ff 100%);
}

/* subtle premium dot pattern */
.bw-body::after{
  content:"";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: radial-gradient(rgba(30,46,99,.07) 1px, transparent 1px);
  background-size: 22px 22px;
  opacity: .35;
  z-index: 0;
}
.container{ position: relative; z-index: 1; }

/* Uppercase rules like your original */
input.form-control, textarea.form-control { text-transform: uppercase; }
select.form-select, select.form-control { text-transform: none; }
input[type="email"] { text-transform: none; }

/* =========================
   HERO: 1 LARGE IMAGE ONLY
========================= */
.bw-hero{
  border-radius: 12px;
}

.bw-hero-img-only{
  width: 100%;
  /*height: clamp(180px, 24vw, 320px);
  object-fit: contain;*/
  display: block;
}
/* =========================
   FORM CARD (Volt premium)
========================= */
.bw-form-card{
  border-radius: 22px;
  overflow:hidden;
  background: var(--card);
  border: 1px solid var(--border);
}

.bw-card-header{
  background: linear-gradient(90deg, rgba(243,196,78,.18), rgba(30,46,99,.08));
}
.bw-card-title{
  color: var(--bw-navy);
}
.bw-card-sub{
  font-weight: 800;
  font-size: 13px;
  color: rgba(30,46,99,.78);
}
.bw-tag{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.70);
  border: 1px solid rgba(15,23,42,.10);
  font-weight: 900;
  font-size: 12px;
  color: rgba(30,46,99,.90);
}
.bw-tag-dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--bw-gold);
  box-shadow: 0 10px 22px rgba(243,196,78,.35);
}

/* Section styling */
.bw-section{
  padding: 14px 14px;
  border-radius: 18px;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.70);
}
.bw-section-head{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom: 12px;
}
.bw-section-title{
  font-weight: 950;
  color: var(--bw-navy);
  letter-spacing: .2px;
}
.bw-section-line{
  height: 1px;
  flex: 1;
  background: linear-gradient(90deg, rgba(243,196,78,.55), rgba(30,46,99,.10));
}

.bw-help{
  font-size: 12px;
  font-weight: 800;
  color: var(--muted);
  margin-top: -2px;
  margin-bottom: 6px;
}

/* Inputs (Volt-like premium) */
.bw-label{
  font-weight: 900;
  color: var(--bw-navy);
  letter-spacing: .2px;
}
.bw-input{
  border-radius: 14px !important;
  border: 1px solid rgba(15,23,42,.14) !important;
  background: rgba(255,255,255,.94) !important;
  font-weight: 800 !important;
  transition: box-shadow .15s ease, border-color .15s ease, transform .05s ease;
}
.bw-input:focus{
  border-color: rgba(243,196,78,.95) !important;
  box-shadow: 0 0 0 4px var(--focus) !important;
}

/* Counters + errors */
.selection-counter{
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(243,196,78,.16);
  border: 1px solid rgba(243,196,78,.35);
  font-size: 12px;
  font-weight: 900;
  color: rgba(30,46,99,.92);
}
.selection-error{
  display:block;
  margin-top: 8px;
  color: #b91c1c;
  font-weight: 900;
  font-size: 13px;
}

/* Check grid (premium cards) */
.bw-checkgrid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 12px;
}
@media (max-width: 768px){
  .bw-checkgrid{ grid-template-columns: 1fr; }
}
.bw-check{
  display:flex;
  gap: 10px;
  align-items:flex-start;
  padding: 6px 6px 6px 10px;
  border-radius: 16px;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.86);
  font-weight: 800;
  color: rgba(15,23,42,.88);
}
.bw-check-wide{ grid-column: 1 / -1; }
.bw-check input{
  margin-top: 3px;
  accent-color: var(--bw-gold);
}

/* Radio row */
.bw-radio-wrap{
  border-radius: 18px;
}
.bw-radio-row{
  display:flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.bw-radio{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 6px 6px 6px 10px;
  border-radius: 16px;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.86);
  font-weight: 800;
  color: rgba(15,23,42,.88);
}
.bw-radio input{ accent-color: var(--bw-gold); }

/* Details line */
.bw-details-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap: wrap;
  gap: 10px;
}
.bw-details-text{
  font-weight: 900;
  color: var(--bw-navy);
}

/* =========================
   BUTTONS
========================= */

/* GOLD PRIMARY */
.bw-btn-primary{
  border: 0;
  border-radius: 999px;
  padding: 14px 18px;
  min-width: 240px;
  font-weight: 950;
  letter-spacing: .25px;
  color: #0b122a;
  background: linear-gradient(90deg, var(--bw-gold), var(--bw-gold-2));
  box-shadow: 0 18px 40px rgba(243,196,78,.30);
  transition: transform .12s ease, filter .12s ease, box-shadow .12s ease;
}

.bw-btn-primary:hover{
  transform: translateY(-2px);
  filter:saturate(1.08);
  box-shadow: 0 24px 60px rgba(243,196,78,.36);
}

/* BLUE VERSION */
.bw-btn-primary-blue{
  border: 0;
  border-radius: 999px;
  padding: 14px 18px;
  min-width: 240px;
  font-weight: 950;
  letter-spacing: .25px;
  color: #ffffff;
  background: linear-gradient(90deg, var(--bw-blue-1), var(--bw-blue-2));
  box-shadow: 0 18px 40px rgba(47,91,255,.35);
  transition: transform .12s ease, filter .12s ease, box-shadow .12s ease;
}

.bw-btn-primary-blue:hover{
  transform: translateY(-2px);
  filter:brightness(1.05);
  color: #ffffff;
  box-shadow: 0 24px 60px rgba(47,91,255,.45);
}

/* Spinner on button */
.btn-primary{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.btn-spinner{
  width: 16px;
  height: 16px;
  border-radius: 999px;
  border: 2px solid rgba(11,18,42,.25);
  border-top-color: rgba(11,18,42,1);
  display: none;
  animation: spin .75s linear infinite;
}
@keyframes spin{ to{ transform: rotate(360deg); } }
button.is-loading{
  opacity: .92;
  cursor: not-allowed;
}
button.is-loading .btn-spinner{ display:inline-block; }

/* Inline message zone (backup) */
.message-zone{
  display:none;
  margin: 0 0 12px;
  padding: 12px 12px;
  border-radius: 16px;
  border: 2px solid transparent;
  font-weight: 900;
}
.message-zone.is-error{
  display:block;
  color:#7f1d1d;
  background: rgba(239,68,68,.10);
  border-color: rgba(239,68,68,.35);
}
.message-zone.is-success{
  display:block;
  color:#14532d;
  background: rgba(34,197,94,.10);
  border-color: rgba(34,197,94,.35);
}

/* Error highlight for validation */
.field-error{
  border-color: rgba(239,68,68,.75) !important;
  box-shadow: 0 0 0 4px rgba(239,68,68,.18) !important;
}
.section-error{
  outline: 3px solid rgba(239,68,68,.22);
  border-radius: 18px;
}
@keyframes shake{
  0%{ transform: translateX(0); }
  25%{ transform: translateX(-4px); }
  50%{ transform: translateX(4px); }
  75%{ transform: translateX(-3px); }
  100%{ transform: translateX(0); }
}
.shake{ animation: shake .18s linear 0s 2; }

/* Status modal */
.status-overlay{
  position:fixed;
  inset:0;
  background: rgba(2,6,23,.62);
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index:2000;
  backdrop-filter: blur(8px);
}
.status-card{
  width:min(560px, 100%);
  background: rgba(255,255,255,.94);
  border-radius:22px;
  padding:22px 20px;
  box-shadow: 0 30px 90px rgba(0,0,0,.35);
  text-align:center;
  border:1px solid rgba(15,23,42,.10);
}
.status-icon{
  width:56px;height:56px;
  border-radius:999px;
  margin:0 auto 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:22px;
  color:#0b122a;
  background: linear-gradient(90deg, var(--bw-gold) 0%, var(--bw-gold-2) 100%);
  box-shadow: 0 18px 40px rgba(243,196,78,.28);
}
.status-icon.error{
  color:#fff;
  background: linear-gradient(90deg, #ef4444 0%, #b91c1c 100%);
  box-shadow: 0 18px 40px rgba(239,68,68,.22);
}
.status-card h3{
  margin:0;
  font-size:20px;
  font-weight:950;
  color: var(--bw-navy);
}
.status-card p{
  margin:10px 0 0;
  color:#334155;
  font-size:14px;
  line-height:1.55;
  white-space:pre-line;
  font-weight:800;
}
.status-actions{
  margin-top:16px;
  display:flex;
  justify-content:center;
}
.status-btn{
  appearance:none;
  border:0;
  cursor:pointer;
  border-radius:999px;
  padding:12px 18px;
  font-weight:950;
  min-width: 140px;
  background: linear-gradient(90deg, var(--bw-gold) 0%, var(--bw-gold-2) 100%);
  color:#0b122a;
  box-shadow: 0 18px 40px rgba(243,196,78,.24);
  transition:transform .12s ease, filter .12s ease;
}
.status-btn:hover{ transform: translateY(-1px); filter:saturate(1.05); }
.status-btn:active{ transform: translateY(1px); }

/* Submit overlay */
.overlay{
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(2,6,23,.62);
  backdrop-filter: blur(6px);
  z-index: 2500;
  padding: 16px;
}
.overlay.show{ display:flex; }

.overlay-card{
  width: min(520px, calc(100vw - 32px));
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 18px;
  box-shadow: 0 30px 90px rgba(0,0,0,.35);
  padding: 18px 18px 16px;
  text-align: center;
}
.spinner{
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 4px solid rgba(30,46,99,.18);
  border-top-color: var(--bw-gold);
  margin: 2px auto 12px;
  animation: spin .85s linear infinite;
}
.overlay-title{
  font-weight: 950;
  font-size: 16px;
  margin-top: 10px;
  color: var(--bw-navy);
}
.overlay-sub{
  color: #6b7280;
  font-size: 13px;
  margin-top: 6px;
  line-height: 1.45;
  font-weight: 800;
}

/* Announcement modal */
.bw-ann-overlay{
  position: fixed;
  inset: 0;
  background: rgba(2,6,23,.62);
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 16px;
  z-index: 1500;
  backdrop-filter: blur(6px);
}
.bw-ann-card{
  width: min(520px, 100%);
  background: rgba(255,255,255,.94);
  border-radius: 18px;
  padding: 18px;
  text-align:center;
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 30px 90px rgba(0,0,0,.35);
}
.bw-ann-card h1{
  margin: 0 0 10px;
  color: var(--bw-navy);
  font-weight: 950;
  font-size: 22px;
}
.bw-ann-card p{
  margin: 8px 0 0;
  color:#334155;
  font-weight: 900;
  font-size: 14px;
  line-height: 1.5;
}
.bw-ann-card button{
  margin-top: 14px;
  border:0;
  cursor:pointer;
  border-radius: 999px;
  padding: 12px 16px;
  font-weight: 950;
  background: linear-gradient(90deg, var(--bw-gold) 0%, var(--bw-gold-2) 100%);
  color:#0b122a;
  box-shadow: 0 18px 40px rgba(243,196,78,.24);
}

/* =========================
   FOOTER (restore footer-modern layout)
========================= */
.footer-modern{
  width: 100%;
  margin: 18px auto 40px;
  padding: 0;
}

.footer-card{
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 22px;
  box-shadow: var(--shadow);
  overflow: hidden;
}

/* Top layout */
.footer-top{
  display: grid;
  grid-template-columns: 1.1fr 1.7fr 1fr;
  gap: 18px;
  padding: 18px;
}

@media (max-width: 900px){
  .footer-top{
    grid-template-columns: 1fr;
  }
}

/* Titles */
.footer-title{
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .35px;
  text-transform: uppercase;
  color: rgba(30,46,99,.85);
  margin-bottom: 10px;
}

/* Organizer logo block */
.footer-logo-link{
  display: inline-block;
  padding: 10px 12px;
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid rgba(15,23,42,.10);
  transition: transform .12s ease, box-shadow .18s ease;
}
.footer-logo-link:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(2,6,23,.12);
}
.footer-logo-img{
  max-width: 200px;
  height: auto;
  display: block;
}

/* Contact lines */
.footer-lines{
  display: grid;
  gap: 10px;
}
.footer-lineitem{
  display: grid;
  grid-template-columns: 86px 1fr;
  gap: 10px;
  align-items: start;
}
.footer-label{
  font-size: 12px;
  font-weight: 900;
  color: rgba(100,116,139,.95);
}
.footer-value{
  font-size: 13px;
  color: rgba(15,23,42,.88);
  line-height: 1.45;
  font-weight: 800;
}

.footer-link{
  font-size: 13px;
  font-weight: 950;
  color: var(--bw-navy);
  text-decoration: none;
  border-bottom: 1px dashed rgba(30,46,99,.30);
}
.footer-link:hover{
  text-decoration: none;
  border-bottom-color: rgba(30,46,99,.65);
}

/* Social */
.footer-social-row{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.footer-social-btn{
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid rgba(15,23,42,.12);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .12s ease, box-shadow .18s ease, border-color .18s ease;
}
.footer-social-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(2,6,23,.14);
  border-color: rgba(243,196,78,.55);
}
.footer-social-btn img{
  width: 18px;
  height: 18px;
}
.footer-social-text{
  margin-top: 10px;
  font-size: 12px;
  color: rgba(100,116,139,.95);
  line-height: 1.35;
  font-weight: 800;
}

/* Bottom bar */
.footer-bottom{
  border-top: 1px solid rgba(15,23,42,.10);
  padding: 12px 18px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 12px;
  color: rgba(100,116,139,.95);
  background: linear-gradient(90deg, rgba(243,196,78,.12), rgba(30,46,99,.06));
}
.footer-bottom-left,
.footer-bottom-right{
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Ensure footer doesn't get squeezed inside bootstrap constraints unexpectedly */
.footer-modern .footer-card{
  width: 100%;
}

.bw-success-icon{
  width:70px;
  height:70px;
  border-radius:50%;
  background:linear-gradient(135deg,#1e2e63,#f3c44e);
  color:#fff;
  font-size:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto;
  box-shadow:0 10px 30px rgba(0,0,0,.15);
}

.bw-detail-label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.6px;
  font-weight:700;
  color:#6c757d;
}

.bw-detail-value{
  font-size:18px;
  font-weight:700;
}