.page-hero { padding: 3.5rem 0; background: var(--cdl-blue-light); }
.page-hero h1 { color: var(--cdl-blue-dark); font-weight: 850; letter-spacing: -.04em; }
.page-hero-detailed { padding: 4.5rem 0; }
.page-hero-detailed .lead { max-width: 48rem; color: var(--neutral-700); }
.page-status-card {
  display: flex;
  gap: 1rem;
  align-items: center;
  padding: 1.25rem;
  background: var(--white);
  border: 1px solid rgba(23,69,143,.16);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}
.page-status-card i { flex: 0 0 auto; color: var(--cdl-green); font-size: 2rem; }
.page-status-card strong, .page-status-card span { display: block; }
.page-status-card strong { color: var(--cdl-blue-dark); }
.page-status-card span { color: var(--neutral-700); font-size: .92rem; }
.photo-frame {
  overflow: hidden;
  height: 100%;
  aspect-ratio: 4 / 3;
  background: var(--neutral-100);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}
.photo-grid img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.institutional-card-featured {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 1.75rem;
}
.institutional-card-mark {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  margin-bottom: 1.25rem;
  color: var(--cdl-green-dark);
  background: #e9f7f0;
  border-radius: var(--radius-sm);
  font-size: 1.35rem;
}
.institutional-card-body { padding: 0; }
.institutional-card-eyebrow {
  margin-bottom: .4rem;
  color: var(--cdl-green-dark);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.institutional-card-featured h3 {
  color: var(--cdl-blue-dark);
  font-weight: 800;
}
.prize-banner { background: var(--cdl-blue-dark); color: var(--white); border-radius: var(--radius-lg); padding: 2rem; }
.regulation-placeholder { border: 2px dashed var(--neutral-300); border-radius: var(--radius-md); padding: 2rem; background: var(--neutral-100); }
.regulation-panel {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 1.5rem;
  background: var(--cdl-blue-light);
  border: 1px solid rgba(23,69,143,.16);
  border-radius: var(--radius-lg);
}
.regulation-panel h2 { color: var(--cdl-blue-dark); font-weight: 800; }
.regulation-panel-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 4rem;
  height: 4rem;
  color: var(--white);
  background: var(--cdl-blue);
  border-radius: var(--radius-md);
  font-size: 1.75rem;
}
.confirmed-info-card {
  height: 100%;
  padding: 1.25rem;
  border: 1px solid var(--neutral-300);
  border-radius: var(--radius-md);
  background: var(--white);
}
.confirmed-info-card i { color: var(--cdl-green); font-size: 1.5rem; }
.confirmed-info-card h3 { margin-top: .75rem; color: var(--cdl-blue-dark); font-size: 1.05rem; font-weight: 800; }
.confirmed-info-card p { margin: 0; color: var(--neutral-700); }
.support-card {
  top: calc(var(--header-height) + 1.5rem);
  padding: 1.5rem;
  border: 1px solid var(--neutral-300);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}
.support-card img { width: 11rem; height: auto; margin-bottom: 1.5rem; }
.support-card small { display: block; margin-top: 1rem; color: var(--neutral-500); }
.contact-channel {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.75rem;
  border: 1px solid var(--neutral-300);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-sm);
}
.contact-channel-primary { color: var(--white); background: var(--cdl-blue-dark); border-color: var(--cdl-blue-dark); }
.contact-channel-icon {
  display: grid;
  place-items: center;
  width: 3.5rem;
  height: 3.5rem;
  margin-bottom: 1.5rem;
  color: var(--cdl-green);
  background: var(--cdl-blue-light);
  border-radius: 50%;
  font-size: 1.45rem;
}
.contact-channel-primary .contact-channel-icon { color: var(--white); background: var(--cdl-green); }
.contact-channel-label { margin-bottom: .2rem; color: var(--cdl-green-dark); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.contact-channel-primary .contact-channel-label { color: var(--cdl-yellow); }
.contact-channel h3 { color: var(--cdl-blue-dark); font-weight: 800; }
.contact-channel-primary h3 { color: var(--white); }
.contact-channel-value { display: inline-block; margin-bottom: 1rem; font-size: 1.2rem; font-weight: 800; }
.contact-channel-primary .contact-channel-value { color: var(--white); }
.contact-channel p:not(.contact-channel-label) { color: var(--neutral-700); }
.contact-channel-primary p:not(.contact-channel-label) { color: rgba(255,255,255,.8); }
.contact-channel .btn { margin-top: auto; }
.contact-email { font-size: 1rem; overflow-wrap: anywhere; }
.contact-help-panel {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  align-items: flex-start;
  justify-content: space-between;
  padding: 2rem;
  background: var(--neutral-100);
  border-radius: var(--radius-lg);
}
.page-footer { padding: 2.25rem 0 1.25rem; }
.page-footer-main {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  align-items: flex-start;
  justify-content: space-between;
}
.page-footer-main img { width: 15rem; height: auto; }
.page-footer-main div { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; }
.page-footer-legal {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,.2);
  color: rgba(255,255,255,.7);
  font-size: .85rem;
}
.registration-card {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding: 1.5rem;
  background: var(--white);
  border: 1px solid var(--neutral-300);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
}
.registration-card-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 4.5rem;
  height: 4.5rem;
  color: var(--white);
  background: var(--cdl-green);
  border-radius: var(--radius-md);
  font-size: 2rem;
}
.registration-card-content { flex: 1; }
.registration-card-content h2 { color: var(--cdl-blue-dark); font-weight: 800; }
.registration-notes > div > div {
  height: 100%;
  padding: 1rem;
  background: var(--neutral-100);
  border-radius: var(--radius-sm);
}
.registration-notes i { display: block; margin-bottom: .5rem; color: var(--cdl-green); font-size: 1.35rem; }
.registration-notes strong, .registration-notes span { display: block; }
.registration-notes span { color: var(--neutral-700); font-size: .9rem; }
.form-external-note { color: var(--neutral-500); font-size: .88rem; text-align: center; }
.registration-action-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.5rem;
  border: 1px solid var(--neutral-300);
  border-radius: var(--radius-md);
  background: var(--white);
  box-shadow: var(--shadow-sm);
  transition: transform .2s, border-color .2s, box-shadow .2s;
}
.registration-action-card:hover {
  transform: translateY(-3px);
  border-color: rgba(23,69,143,.35);
  box-shadow: var(--shadow-md);
}
.registration-action-icon {
  display: grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  margin-bottom: 1rem;
  color: var(--cdl-blue);
  background: var(--cdl-blue-light);
  border-radius: var(--radius-sm);
  font-size: 1.4rem;
}
.registration-action-card h2 {
  color: var(--cdl-blue-dark);
  font-size: 1.25rem;
  font-weight: 800;
}
.registration-action-card p { color: var(--neutral-700); }
.registration-action-card .btn { margin-top: auto; }
[hidden] { display: none !important; }
