/* Compatibility for existing Grav templates and forms */
.container {
  width: min(calc(100% - 40px), var(--max, 1360px));
  margin-inline: auto;
}
.btn--primary { background: linear-gradient(125deg,#f7fbff 0%,#cbeaff 44%,#91cfff 100%); color:#061328; }
.btn--outline,
.btn--secondary { background: rgba(9,27,58,.64); color:#eaf7ff; }
.btn--large { min-height: 58px; padding-inline: 26px; }
.btn--outline-sm { min-height: 42px; padding: 0 13px; font-size: 12px; font-weight: 600; letter-spacing: .02em; text-transform: none; }
.section-dark,
.section-elevated { position: relative; }
.text-content { color: var(--muted); }
.text-content h2,
.text-content h3 { color: #fff; margin-bottom: 16px; }
.text-content p { margin-bottom: 16px; }
.text-content a { color: var(--ice); text-decoration: underline; }
.text-center { text-align: center; }
.mb-4 { margin-bottom: 16px; }
.mb-6 { margin-bottom: 24px; }
.mb-8 { margin-bottom: 32px; }
.mb-10 { margin-bottom: 40px; }
.mt-4 { margin-top: 16px; }
.mt-6 { margin-top: 24px; }
.hidden { display: none !important; }
.categories-grid,
.judges-grid,
.partners-grid,
.winners-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
}
.category-card,
.judge-card,
.winner-item,
.write-tip-card,
.experience-card {
  padding: 24px;
  border: 1px solid rgba(159,211,255,.16);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(11,36,76,.58), rgba(5,15,36,.4));
}
.category-card h3,
.judge-card__name,
.winner-item h3,
.write-tip-card h3 { color: #fff; margin-bottom: 10px; }
.category-card-number { color: var(--ice); font-weight: 700; margin-bottom: 8px; }
.categories-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0; }
.partner-logo {
  min-height: 108px;
  display: grid;
  place-items: center;
  padding: 18px;
  border: 1px solid rgba(222,239,250,.42);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(225,239,249,.86));
  overflow: hidden;
}
.partner-logo img,
.partner-logo .partner-logo__img {
  max-width: 100% !important;
  max-height: 72px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
}
.principal-logo {
  overflow: hidden;
}
.principal-logo img,
.principal-logo .partner-logo__img {
  max-width: 100% !important;
  max-height: 100px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
}
.partner-tier { margin-bottom: 36px; }
.partner-tier__title { color: #d8edff; margin-bottom: 16px; letter-spacing: .12em; text-transform: uppercase; font-size: 12px; }
.faqs-list { display: grid; gap: 14px; }
.faq-answer { margin-top: 10px; }
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: none;
  place-items: center;
  background: rgba(2,6,17,.72);
  padding: 20px;
}
.modal-overlay.is-open,
.modal-overlay:not(.hidden)[aria-hidden="false"] { display: grid; }
.modal-dialog {
  width: min(100%, 720px);
  max-height: 90vh;
  overflow: auto;
  padding: 28px;
  border: 1px solid rgba(179,222,255,.24);
  border-radius: 24px;
  background: linear-gradient(140deg, rgba(8,25,54,.96), rgba(14,26,61,.92));
}
.modal-close {
  float: right;
  background: transparent;
  border: 0;
  color: #fff;
  font-size: 28px;
  cursor: pointer;
}
.mm-form .mauticform-input,
.mm-form .mauticform-selectbox,
.mm-form .mauticform-textarea {
  background: rgba(4,16,39,.8);
  color: #eef7ff;
  border: 1px solid rgba(168,220,255,.25);
  border-radius: 12px;
}
.mm-form .mauticform-button,
.submit_button_default {
  background: linear-gradient(125deg,#f7fbff 0%,#cbeaff 44%,#91cfff 100%);
  color: #061328;
  border: 0;
  border-radius: 14px;
  min-height: 50px;
  padding: 0 18px;
  font-weight: 600;
}
/* Reserve space for sticky submit without lifting the hero strip */
body { padding-bottom: 56px; }
@media (max-width: 800px) {
  body { padding-bottom: 70px; }
}
.cta-arrow { width: 16px; height: 16px; }
.brand-mini img {
  display: block;
  height: 42px;
  width: auto;
  max-width: 210px;
  object-fit: contain;
}
.brand-mini--text { color: #fff; }
html.MMAwards .index.min { display: none; }
@media (max-width: 800px) {
  .container { width: calc(100% - 28px); }
}
