/*
 * Extra styles for the public pages other than the homepage.
 *
 * The approved design is a single file of inline styles, which cannot express
 * :hover, :focus or ::placeholder. Rather than touch the design's own <style>
 * block, those states live here and this sheet is loaded only on the pages
 * that need it — never on the homepage.
 *
 * Every colour below is taken from the design.
 */

/* --- Links and cards ----------------------------------------------------- */

.ls-card-link {
  display: block;
  text-decoration: none;
  transition: transform 0.15s ease, border-color 0.15s ease;
}
.ls-card-link:hover {
  transform: translateY(-2px);
  border-color: #526390;
}

.ls-btn-primary:hover {
  background: #3572f5 !important;
  color: #ffffff !important;
}
.ls-btn-secondary:hover {
  border-color: #526390 !important;
  color: #ffffff !important;
}

.ls-link-muted {
  color: #b9c2d8;
}
.ls-link-muted:hover {
  color: #ffffff;
}

.ls-nav-link:hover {
  color: #ffffff !important;
}

/* --- Form controls ------------------------------------------------------- */

.ls-input {
  width: 100%;
  box-sizing: border-box;
  background: rgba(10, 16, 32, 0.6);
  border: 1px solid #33405e;
  border-radius: 9px;
  color: #f0f3fa;
  font-family: inherit;
  font-size: 14.5px;
  line-height: 1.5;
  padding: 13px 15px;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ls-input::placeholder {
  color: #6c7a95;
}
.ls-input:hover {
  border-color: #445273;
}
.ls-input:focus {
  border-color: #3b7bff;
  box-shadow: 0 0 0 3px rgba(59, 123, 255, 0.18);
}
.ls-input[aria-invalid='true'] {
  border-color: #e0605f;
}

textarea.ls-input {
  resize: vertical;
  min-height: 150px;
}

/* Honeypot: never shown, never focusable, invisible to assistive tech. */
.ls-hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* --- Responsive helpers, in the design's own breakpoint idiom ------------ */

@media (max-width: 1023px) {
  [data-r="two-col"] {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  [data-r="sponsor-grid"] {
    grid-template-columns: 1fr 1fr 1fr !important;
  }
  [data-r="sport-hero"] {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  [data-r="benefits"] {
    grid-template-columns: 1fr 1fr !important;
    gap: 32px 20px !important;
  }
}

@media (max-width: 680px) {
  [data-r="sponsor-grid"] {
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
  }
  [data-r="benefits"] {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  [data-r="page-h1"] {
    font-size: 36px !important;
  }
}
