/* Colours, taken from the HCC logo. */
:root {
  --orange: #c78230;
  --ink: #1a1a1a;
  --paper: #ffffff;
  --page: #e2dfd8;
}

* { box-sizing: border-box; }

/* The page is exactly one screen tall; the banners share whatever height
   is left under the logo. They only scroll if there are too many to fit
   at their minimum height. */
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  background: var(--page);
  color: var(--ink);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

header {
  display: flex;
  justify-content: center;
  padding: 1.5rem 1rem;
}
.logo { width: 6rem; height: auto; }

main {
  flex: 1;
  display: grid;
  grid-auto-rows: minmax(7rem, 1fr);
  gap: .75rem;
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 0 1.5rem 1.5rem;
}

.nation {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--ink);
  color: var(--paper);
  text-decoration: none;
  border-bottom: 4px solid var(--orange);
}
.nation img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(.6);
  transition: filter .2s;
}
.nation:hover img { filter: brightness(.8); }
.nation span {
  position: relative;
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  font-weight: 800;
  letter-spacing: .25em;
  text-indent: .25em;
  text-transform: uppercase;
}

@media (max-width: 40rem) {
  header { padding: 1rem; }
  .logo { width: 4.5rem; }
  main { gap: .5rem; padding: 0 .5rem .5rem; grid-auto-rows: minmax(5rem, 1fr); }
}
