/* =========================================================
   SITE FOOTER
========================================================= */

.site-footer {
  margin-top: 55px;

  color:
    var(--text-secondary);

  background:
    var(--surface-raised);

  border-top:
    1px solid
    var(--border);

  box-shadow:
    0 -1px 0
    rgba(255, 255, 255, 0.025);
}


.footer-shell {
  width:
    min(1320px, calc(100% - 32px));

  margin-inline: auto;
}


/* =========================================================
   DIRECTORY
========================================================= */

.footer-directory {
  min-height: 82px;

  display: grid;

  grid-template-columns:
    repeat(4, minmax(0, 1fr))
    minmax(190px, 1.1fr);

  align-items: center;

  border-bottom:
    1px solid
    var(--border-soft);
}


/* =========================================================
   DIRECTORY ITEM
========================================================= */

.footer-directory-item {
  min-width: 0;

  min-height: 54px;

  display: flex;

  align-items: center;

  gap: 10px;

  padding:
    11px 15px;

  border-right:
    1px solid
    var(--border-soft);
}


.footer-directory-item:first-child {
  padding-left: 0;
}


/* =========================================================
   ICON TILE
========================================================= */

.footer-directory-icon {
  width: 35px;
  height: 35px;

  flex:
    0 0 35px;

  display: grid;
  place-items: center;

  color:
    var(--section-alternate);

  background:
    color-mix(
      in srgb,
      var(--section-alternate) 9%,
      var(--surface-raised)
    );

  border:
    1px solid
    color-mix(
      in srgb,
      var(--section-alternate) 18%,
      var(--border)
    );

  border-radius:
    9px;

  font-family:
    var(--font-display);

  font-size: 14px;

  font-weight: 700;
}


.footer-directory-icon-study {
  color:
    var(--section-minutes);

  background:
    color-mix(
      in srgb,
      var(--section-minutes) 9%,
      var(--surface-raised)
    );

  border-color:
    color-mix(
      in srgb,
      var(--section-minutes) 18%,
      var(--border)
    );
}


.footer-directory-icon-practice {
  color:
    var(--section-buzzer);

  background:
    color-mix(
      in srgb,
      var(--section-buzzer) 9%,
      var(--surface-raised)
    );

  border-color:
    color-mix(
      in srgb,
      var(--section-buzzer) 18%,
      var(--border)
    );
}


.footer-directory-icon-access {
  color:
    var(--primary);

  background:
    var(--primary-soft);

  border-color:
    color-mix(
      in srgb,
      var(--primary) 18%,
      var(--border)
    );
}


/* =========================================================
   DIRECTORY COPY
========================================================= */

.footer-directory-copy {
  min-width: 0;

  display: flex;
  flex-direction: column;

  justify-content: center;
}


.footer-directory-copy strong {
  overflow: hidden;

  color:
    var(--text);

  font-size: 9px;

  font-weight: 800;

  line-height: 1.3;

  text-overflow: ellipsis;

  white-space: nowrap;
}


.footer-directory-links {
  display: flex;

  flex-wrap: wrap;

  gap:
    2px 7px;

  margin-top: 3px;

  color:
    var(--primary);

  font-size: 8px;

  font-weight: 600;
}


.footer-directory-links a {
  color:
    var(--primary);

  transition:
    color var(--transition-fast);
}


.footer-directory-links a:hover {
  color:
    var(--primary-hover);

  text-decoration:
    underline;
}


.footer-directory-links span {
  color:
    var(--text-muted);
}


/* =========================================================
   IDENTITY
========================================================= */

.footer-identity {
  min-height: 54px;

  display: flex;

  align-items: center;

  justify-content: flex-end;

  gap: 10px;

  padding:
    10px 0 10px 18px;
}


.footer-identity-seal {
  width: 38px;
  height: 42px;

  flex:
    0 0 38px;

  display: grid;
  place-items: center;

  color:
    var(--primary-text);

  background:
    var(--primary);

  border-radius:
    9px;

  font-family:
    var(--font-display);

  font-size: 13px;

  font-weight: 700;

  box-shadow:
    0 5px 12px
    var(--glow-primary);
}


.footer-identity-copy {
  min-width: 0;

  display: flex;
  flex-direction: column;

  align-items: flex-end;

  text-align: right;
}


.footer-identity-copy strong {
  color:
    var(--text);

  font-family:
    var(--font-display);

  font-size: 13px;

  font-weight: 700;

  line-height: 1.1;
}


.footer-identity-copy > span {
  margin-top: 2px;

  color:
    var(--text-faint);

  font-size: 7px;
}


.footer-identity-copy
.footer-built-by {
  color:
    var(--text-muted);

  font-size: 7px;

  font-weight: 600;
}


/* =========================================================
   LOWER STRIP
========================================================= */

.footer-lower {
  min-height: 45px;

  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto
    minmax(0, 1fr);

  align-items: center;

  gap: 24px;

  color:
    var(--text-muted);

  font-size: 8px;
}


.footer-lower-left {
  min-width: 0;
}


/* =========================================================
   SECTION KEY
========================================================= */

.footer-section-key {
  display: flex;

  align-items: center;

  justify-content: center;

  gap: 15px;
}


.footer-key-item {
  display: inline-flex;

  align-items: center;

  gap: 5px;

  color:
    var(--text-muted);

  font-size: 8px;

  font-weight: 600;
}


.footer-key-item i {
  width: 5px;
  height: 5px;

  display: block;

  border-radius: 50%;

  background:
    currentColor;
}


.footer-key-item.alternate i {
  color:
    var(--section-alternate);
}


.footer-key-item.minutes i {
  color:
    var(--section-minutes);
}


.footer-key-item.buzzer i {
  color:
    var(--section-buzzer);
}


/* =========================================================
   MOTTO
========================================================= */

.footer-motto {
  justify-self: end;

  color:
    var(--accent-text);

  font-family:
    var(--font-display);

  font-size: 10px;

  letter-spacing:
    .035em;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1000px) {

  .footer-directory {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }


  .footer-directory-item {
    border-bottom:
      1px solid
      var(--border-soft);
  }


  .footer-directory-item:nth-child(2n) {
    border-right: 0;
  }


  .footer-directory-item:nth-child(odd) {
    padding-left: 0;
  }


  .footer-identity {
    grid-column:
      1 / -1;

    justify-content: flex-start;

    padding:
      13px 0;
  }


  .footer-identity-copy {
    align-items: flex-start;

    text-align: left;
  }


  .footer-lower {
    grid-template-columns:
      1fr auto;
  }


  .footer-section-key {
    display: none;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 620px) {

  .site-footer {
    margin-top: 38px;
  }


  .footer-shell {
    width:
      min(100% - 24px, 1320px);
  }


  .footer-directory {
    grid-template-columns:
      1fr;
  }


  .footer-directory-item {
    min-height: 62px;

    padding:
      12px 0;

    border-right: 0;

    border-bottom:
      1px solid
      var(--border-soft);
  }


  .footer-directory-item:nth-child(odd) {
    padding-left: 0;
  }


  .footer-directory-icon {
    width: 37px;
    height: 37px;

    flex-basis: 37px;
  }


  .footer-directory-copy strong {
    font-size: 10px;
  }


  .footer-directory-links {
    font-size: 9px;
  }


  .footer-identity {
    grid-column: auto;

    min-height: 70px;

    padding:
      14px 0;
  }


  .footer-identity-copy strong {
    font-size: 15px;
  }


  .footer-built-by {
    margin-top:
      3px !important;
  }


  .footer-lower {
    min-height: auto;

    grid-template-columns:
      1fr;

    gap: 5px;

    padding:
      14px 0 18px;
  }


  .footer-lower-left {
    display: none;
  }


  .footer-motto {
    justify-self: start;

    font-size: 11px;
  }

}