/* ==========================================================================
   LVCEPA Global Styles
   ========================================================================== */
:root{
  --navy:#0B2A4A;
  --gold:#D4AF37;
  --light:#F4F6F8;
  --text:#1A1A1A;
  --muted:#6B7280;
  --error:#D7263D;
  --success:#2E7D32;
}

/* Base */
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font-family:Arial,Helvetica,sans-serif;color:var(--text);background:#fff;}
.container{max-width:960px;margin:0 auto;padding:0 16px;}

/* Centered layout */
.centered-container{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:40px 20px;
}

/* Typography */
h1,h2,h3{color:var(--navy);margin:0 0 10px;}
.page-title{color:var(--navy);margin-bottom:25px;font-size:1.8em;}
.muted{color:var(--muted);}

/* Buttons */
.btn{
  display:inline-block;
  border-radius:8px;
  padding:12px 18px;
  font-weight:700;
  cursor:pointer;
  border:none;
  transition:background .2s, color .2s, border-color .2s;
}
.btn-primary{background:var(--gold);color:var(--navy);}
.btn-outline{background:transparent;border:2px solid var(--gold);color:var(--gold);}
.btn-primary:hover{background:#e0c04d;}
.btn-outline:hover{background:var(--gold);color:var(--navy);}

/* Cards */
.card{
  display:block;
  background:#fff;
  border-radius:12px;
  box-shadow:0 3px 8px rgba(0,0,0,0.1);
  padding:25px 30px;
  width:100%;
  max-width:520px;
  margin:15px auto;
}
.error-card{border-left:4px solid var(--error);background:#FFF6F6;}
.notice-card{border-left:4px solid var(--success);background:#F1FFF3;}

/* Forms (baseline) */
.form-card{
  text-align:left;
}

/* Each element on its own line: wrapper div for every control */
.form-line{
  display:block;
  width:100%;
  max-width:520px;
  margin:12px auto;
}

/* Inputs */
.form-card input{
  padding:10px;
  border:1px solid #ccc;
  border-radius:6px;
  font-size:1em;
  width:100%;
}

/* Checkbox line */
.checkbox-line label{
  display:block;
  width:100%;
}
.checkbox-line input[type="checkbox"]{
  display:inline-block;
  width:auto;
  margin-right:8px;
}

/* Notes */
.note-text{
  font-size:.92em;
  line-height:1.4;
  margin-top:6px;
  text-align:center;
}

/* Footer */
.site-footer{
  text-align:center;
  padding:20px 0;
  margin-top:30px;
  color:#444;
  border-top:1px solid #eee;
}

/* ==========================================================================
   Navbar (expects markup from includes/navbar.php)
   ========================================================================== */
.navbar{
  position:sticky; top:0; z-index:1000;
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 16px; background:var(--navy); color:#fff;
}
.nav-left{ display:flex; align-items:center; gap:10px; }
.brand{ color:var(--gold); text-decoration:none; font-weight:700; }

.nav-right{ display:flex; align-items:center; gap:10px; }
.nav-link{ color:#fff; text-decoration:none; padding:8px 6px; border-radius:6px; }
.nav-link:hover{ background:rgba(255,255,255,0.12); }

/* Visibility helpers (desktop-first) */
.desktop-only{ display:flex !important; align-items:center; gap:10px; }
.mobile-only{ display:none !important; }

/* Mobile breakpoint */
@media (max-width: 800px){
  .desktop-only{ display:none !important; }
  .mobile-only{ display:inline-flex !important; }
}

/* Burger */
.burger{
  width:38px; height:32px;
  flex-direction:column; gap:5px;
  align-items:center; justify-content:center;
  background:transparent; border:0; cursor:pointer;
}
.burger span{ width:26px; height:3px; background:#fff; border-radius:2px; display:block; }

/* Drawer & Backdrop */
.backdrop{
  position:fixed; inset:0; background:rgba(0,0,0,.4);
  opacity:0; pointer-events:none; transition:opacity .2s;
}
.backdrop.show{ opacity:1; pointer-events:auto; }

.mobile-drawer{
  position:fixed; top:0; left:0; height:100vh; width:280px;
  background:var(--navy); color:#fff;
  transform:translateX(-100%); transition:transform .25s ease;
  padding:16px; z-index:1001;
}
.mobile-drawer.open{ transform:translateX(0%); }
.mobile-menu .nav-link{ display:block; padding:10px 8px; }

/* Utility */
.no-scroll{ overflow:hidden; }

/* Grid helper */
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
@media (max-width:900px){ .grid-2{ grid-template-columns:1fr; } }

/* ==========================================================================
   FINAL OVERRIDES — force vertical stacking regardless of other CSS
   Keep these at the very end.
   ========================================================================== */
.form-card{
  display:grid !important;
  grid-template-columns:minmax(0, 520px) !important;
  justify-content:center !important;
  justify-items:stretch !important;
  align-items:start !important;
  white-space:normal !important;
}
.form-card > *{
  display:block !important;
  width:100% !important;
  max-width:520px !important;
  margin:12px auto !important;
}
.form-line{ display:block !important; }
.form-card input, .form-card button, .form-card select, .form-card textarea{
  display:block !important;
  width:100% !important;
}
.checkbox-line{ text-align:left !important; }