/* Form-only additions. General page styles come from the existing styles.css. */
.required-note {
  font-size:.8rem;
  color:var(--gfc-muted, #586571);
  margin:1.4rem 0 .4rem;
}
.required-note span,.media-form .form-label>span {
  color:var(--gfc-accent-dark, #82591f);
}
.form-section {
  padding:2.6rem 0;
  margin:0;
  border-bottom:1px solid var(--gfc-line, #dfe5ea);
  min-width:0;
  scroll-margin-top:1rem;
}
.media-form .form-section>legend {
  font-family:var(--gfc-font-heading, "Manrope", sans-serif);
  float:none;
  width:auto;
  margin-bottom:.6rem;
  font-size:1.55rem;
  font-weight:800;
  display:flex;
  align-items:center;
  gap:.8rem;
}
.section-number {
  font:600 .75rem var(--gfc-font-body, "DM Sans", sans-serif);
  letter-spacing:0;
  color:var(--gfc-accent-dark, #82591f);
  border:1px solid #dcc9ab;
  background:#faf7f0;
  border-radius:50%;
  width:2rem;
  height:2rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:none;
}
.section-intro {
  color:var(--gfc-muted, #586571);
  font-size:.9rem;
  margin-bottom:1.5rem;
}
.media-form .form-label {
  font-size:.87rem;
  font-weight:700;
  margin-bottom:.45rem;
  letter-spacing:0;
}
.media-form .form-control,.media-form .form-select {
  font-family:var(--gfc-font-body, "DM Sans", sans-serif);
  font-size:.94rem;
  min-height:3rem;
  border-color:#c6cfd6;
  border-radius:.35rem;
  padding:.7rem .85rem;
  color:var(--gfc-ink, #202b35);
}
.media-form .form-control::placeholder {
  color:#717b84;
  font-size:.88rem;
}
.media-form .form-control:focus,.media-form .form-select:focus {
  border-color:var(--gfc-accent-dark, #82591f);
  box-shadow:0 0 0 .2rem #b78b4c26;
}
.media-form .form-text {
  color:var(--gfc-muted, #586571);
  font-size:.79rem;
  line-height:1.6;
}
.placement-group,.campus-group {
  min-width:0;
}
.placement-group legend,.campus-group legend {
  float:none;
  width:auto;
  font-family:var(--gfc-font-body, "DM Sans", sans-serif);
}
.placement-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.8rem;
}
.placement-card {
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  padding:1.1rem .9rem;
  border:1px solid #c6cfd6;
  border-radius:.5rem;
  cursor:pointer;
  line-height:1.5;
}
.placement-card input {
  margin-top:.2rem;
  flex:none;
}
.placement-card strong {
  font-size:.83rem;
  display:block;
}
.placement-card small {
  display:block;
  font-size:.75rem;
  color:var(--gfc-muted, #586571);
  margin-top:.4rem;
}
.placement-card:has(input:checked) {
  border-color:var(--gfc-accent-dark, #82591f);
  background:#faf7f0;
  box-shadow:inset 0 0 0 1px var(--gfc-accent-dark, #82591f);
}
.media-form input[type=checkbox],.media-form input[type=radio] {
  accent-color:var(--gfc-accent-dark, #82591f);
  width:1.1rem;
  height:1.1rem;
  flex-shrink:0;
}
.campus-options {
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}
.campus-options label {
  display:flex;
  gap:.5rem;
  align-items:center;
  border:1px solid #c6cfd6;
  padding:.7rem 1rem;
  border-radius:.35rem;
  font-size:.87rem;
  cursor:pointer;
}
.campus-options label:has(input:checked) {
  border-color:var(--gfc-accent-dark, #82591f);
  background:#faf7f0;
}
.upload-panel {
  border:1px dashed #b8a17b;
  border-radius:.6rem;
  padding:1.5rem;
  background:#fcfbf8;
}
.upload-mark {
  display:block;
  color:var(--gfc-accent-dark, #82591f);
  font-size:1.8rem;
  line-height:1.3;
  margin-bottom:.4rem;
}
.upload-panel>p {
  font-size:.8rem;
  color:var(--gfc-muted, #586571);
  max-width:66ch;
}
.media-form .upload-panel .form-control {
  background:#fff;
}
.confirmation-panel {
  margin-top:1.6rem;
  border:1px solid var(--gfc-line, #dfe5ea);
  background:#f6f7f8;
  padding:1.2rem;
  border-radius:.45rem;
}
.confirmation-panel label {
  display:flex;
  align-items:flex-start;
  gap:.8rem;
  font-size:.85rem;
  line-height:1.7;
}
.confirmation-panel input {
  margin-top:.25rem;
}
.submit-row {
  display:flex;
  align-items:center;
  gap:1.4rem;
  margin-top:1.6rem;
}
.submit-row p {
  font-size:.77rem;
  color:var(--gfc-muted, #586571);
  line-height:1.6;
  margin:0;
  max-width:33ch;
}
.media-form .btn-primary {
  --bs-btn-bg:#202b35;
  --bs-btn-border-color:#202b35;
  --bs-btn-hover-bg:#35434e;
  --bs-btn-hover-border-color:#35434e;
  --bs-btn-active-bg:#35434e;
  --bs-btn-active-border-color:#35434e;
  --bs-btn-disabled-bg:#5d6670;
  --bs-btn-disabled-border-color:#5d6670;
  padding:.85rem 1.15rem;
  font-size:.9rem;
  font-weight:700;
  white-space:nowrap;
}
.media-form .btn-primary span {
  margin-left:.8rem;
}

.honeypot {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden;
}
.status-box {
  padding:1.2rem;
  margin-top:1.5rem;
  background:#fff8ed;
  border:1px solid #a88650;
  border-radius:.45rem;
  overflow-wrap:anywhere;
}
.status-box.error {
  background:#fff4f2;
  border-color:#bd5a4b;
  color:#862d21;
}
.status-box a {
  display:block;
  margin-top:.5rem;
}
.success-panel {
  padding:3rem 0;
}
.success-panel h2 {
  font-size:2rem;
  font-weight:800;
}
.success-panel p {
  max-width:60ch;
  color:var(--gfc-muted, #586571);
}
#captcha-container:not(:empty) {
  margin-top:1.5rem;
}
#upload-#upload-progress progress {
  margin-top:1.4rem;
}
#upload-progress progress {
  width:100%;
  height:.65rem;
  accent-color:var(--gfc-accent-dark, #82591f);
  display:block;
  margin-top:.5rem;
}
#upload-progress>label {
  font-size:.85rem;
  font-weight:600;
}


@media(max-width:1199px) {
  .placement-grid {
  grid-template-columns:1fr;
}
.placement-card {
  padding:.95rem 1rem;
}
.placement-card small {
  margin-top:.15rem;
}
}

@media(max-width:991px) {
  .media-form .form-section {
  scroll-margin-top:5rem;
}
}

@media(max-width:575px) {
  .media-form .form-section {
  padding:2rem 0;
}
.media-form .form-section>legend {
  font-family:var(--gfc-font-heading, "Manrope", sans-serif);
  font-size:1.35rem;
}
.submit-row {
  align-items:stretch;
  flex-direction:column;
  gap:.8rem;
}
.submit-row p {
  max-width:none;
}
.upload-panel {
  padding:1.1rem;
}
}


.media-form [aria-invalid="true"] {
  outline:2px solid #a33d31;
  outline-offset:2px;
}

#form-status:focus-visible,#success-panel:focus-visible {
  outline:3px solid #82591f;
  outline-offset:4px;
}

