/* Global Layout */
.body {
  padding: var(--spacing-sm);
  position: relative;
  margin-top: var(--total-top-height);
}

#content {
  margin-left: calc(var(--sidebar-width) + var(--sidebar-spacing));
  margin-right: var(--spacing-md);
  min-width: 0;
  position: relative;
}


/* Global Link Styles */
a:link,
a:visited {
  text-decoration: none;
  color: var(--color-primary);
}

a:hover {
  background-color: var(--color-hover-light);
}

/* Global Accessibility */
*:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* Error list styling */
.errorlist {
  background-color: #FEE2E2;
  border-left: var(--border-thick) solid var(--color-error);
  border-radius: var(--radius-base);
  padding: var(--spacing-md) var(--spacing-lg);
  margin-bottom: var(--spacing-lg);
  list-style-type: none;
}

.errorlist li {
  color: var(--color-error);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}

/* Prevent spinners on number inputs globally */
input[type='number'] {
  -moz-appearance: textfield;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Responsive Design -- widest breakpoints first */
@media (max-width: 1500px) /* --breakpoint-xl */ {
  .body {
    padding: var(--spacing-xs);
  }

  #content {
    margin-left: 235px;
  }
}

@media (max-width: 1200px) /* --breakpoint-lg */ {
  #content {
    margin-left: 0;
    margin-right: 0;
  }
}

@media (max-width: 768px) /* --breakpoint-md */ {
  #content {
    margin: 0;
    padding-top: 0;
  }

  .body {
    padding: var(--spacing-xs);
  }
}

/* Print Styles */
@media print {
  .body {
    margin-top: 0;
  }

  #content {
    margin: 0;
    padding: 0;
  }
}
/* Student heading styles */
#content h2 {
  font-size: var(--text-2xxl);  /* Makes it 1.5rem (24px) */
  font-weight: var(--font-bold);
  color: var(--color-text);
  margin: var(--spacing-lg) 0;  /* Add some vertical spacing */
  padding-bottom: var(--spacing-sm);  /* Add space below the text */
  border-bottom: var(--border-thin) solid var(--color-border);  /* Add an underline */
}

/* Contact info styling */
.contact-info {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--spacing-lg);
  margin: var(--spacing-base) 0;
  padding: var(--spacing-base);
  background-color: var(--color-table-stripe);
  border-radius: var(--radius-base);
}

.contact-info .address {
  line-height: var(--leading-relaxed);
}

.contact-info .contact {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}

.contact-info .phone-number {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

.contact-info .phone-label {
  font-size: var(--text-xs);
  font-weight: var(--font-semibold);
  text-transform: uppercase;
  color: var(--color-text);
  background-color: var(--color-table-header);
  padding: var(--spacing-xxs) var(--spacing-xs);
  border-radius: var(--radius-sm);
  min-width: 3em;
  text-align: center;
}

.contact-info .email {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
}

.contact-info .email a {
  color: var(--color-primary);
  text-decoration: none;
}

.contact-info .email a:hover {
  text-decoration: underline;
  background-color: transparent;
}

