html{ scroll-behavior:smooth; }
body{ background:#f7f7f7; }

.main-content{
  max-width:1100px;
  margin:0 auto;
  padding:20px 12px;
}

.event-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:30px;
  align-items:start;
}

.event-card{
  background:#fff;
  border-radius:18px;
  box-shadow:0 10px 25px rgba(0,0,0,.06);
  overflow:hidden;
}

.event-card img{
  width:100%;
  height:360px;
  object-fit:cover;
  display:block;
}

.event-card .info{
  padding:22px 22px 10px 22px;
}

.event-card h2{
  margin:0 0 10px 0;
  font-size:26px;
  line-height:1.2;
}

.event-meta{
  margin:0;
  color:#333;
  line-height:1.7;
  font-size:15px;
}

/* Small cue to tell users to scroll down on mobile */
.scroll-hint{
  display:none;
  text-align:center;
  font-weight:700;
  color:#1e2a6b;
  margin:14px 0 0;
  animation: bounce 1.6s infinite;
}

@keyframes bounce{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(6px); }
}

.form-card{
  background:#fff;
  border-radius:18px;
  box-shadow:0 10px 25px rgba(0,0,0,.06);
  padding:25px;
}

.form-card h3{
  margin:0 0 16px 0;
  font-size:22px;
}

.form-row{
  display:flex;
  flex-direction:column;
  margin-bottom:14px;
}

.form-row label{
  font-weight:600;
  margin-bottom:6px;
}

.form-row input,
.form-row textarea{
  padding:12px 12px;
  border:1px solid #ddd;
  border-radius:10px;
  font-size:15px;
  outline:none;
}

.form-row textarea{
  min-height:120px;
  resize:vertical;
}

.alert{
  padding:12px 14px;
  border-radius:10px;
  margin-bottom:14px;
}

.alert-error{
  background:#ffe7e7;
  color:#8a0000;
  border:1px solid #ffbaba;
}

.alert-success{
  background:#e7ffef;
  color:#0a6b2c;
  border:1px solid #a5f0c0;
}

.consent{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:14px;
  line-height:1.4;
}

.consent input{
  margin-top:4px;
}

/* ✅ Better buttons */
.actions{
  display:flex;
  gap:14px;
  margin-top:20px;
  flex-wrap:wrap;
}

.btn{
  display:inline-block;
  padding:14px 22px;
  border-radius:999px;
  font-weight:600;
  font-size:15px;
  text-decoration:none;
  border:none;
  cursor:pointer;
  transition:all .25s ease;
}

.btn-primary{
  background:#1e2a6b;
  color:#fff;
  box-shadow:0 6px 16px rgba(30,42,107,.25);
}

.btn-primary:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(30,42,107,.35);
}

.btn-outline{
  background:#fff;
  color:#1e2a6b;
  border:2px solid #1e2a6b;
}

.btn-outline:hover{
  background:#1e2a6b;
  color:#fff;
}

@media (max-width: 900px){
  .event-grid{ grid-template-columns:1fr; }
  .event-card img{ height:260px; }
}

/* Extra mobile tightening: show form sooner */
@media (max-width: 600px){
  .event-card img{ height:200px; }
}

/* Mobile-only sticky CTA */
.mobile-register-cta{
  display:none;
}

@media (max-width: 768px){

  /* make space so sticky CTA doesn't cover the form submit button */
  .main-content{
    padding-bottom:110px;
  }

  .scroll-hint{
    display:block;
  }

  .mobile-register-cta{
    display:block;
    position: fixed;
    left: 14px;
    right: 14px;
    bottom: 14px;
    z-index: 999;
    padding-bottom: env(safe-area-inset-bottom);
  }

  .mobile-register-cta a{
    display: block;
    text-align: center;
    background: #1e2a6b;
    color: #fff;
    padding: 16px;
    border-radius: 999px;
    font-weight: 800;
    letter-spacing:.2px;
    text-decoration:none;
    box-shadow: 0 10px 25px rgba(0,0,0,.25);
  }

  .mobile-register-cta a:active{
    transform: translateY(1px);
  }
}

@media (max-width: 768px){
  .mobile-register-cta{
    transition: opacity .2s ease, transform .2s ease;
  }

  .mobile-register-cta.is-hidden{
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
  }
}
