@font-face {
  font-family: "Anton";
  src: url("../fonts/anton.woff2") format("woff2");
  font-display: swap;
}

:root {
  --bg: #fff;
  --fg: #000;
  --neon: #ff5f1f;
  --bd: 3px solid var(--fg);
  --gap: 12px;
  --tit: "Anton", Impact, "Arial Narrow", sans-serif;
  --txt: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html { color-scheme: light; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font: 17px/1.5 var(--txt);
}

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; }

.w { max-width: 1100px; margin: 0 auto; padding-inline: 16px; }

h1, h2, h3, .cuadro, .bt {
  font-family: var(--tit);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: .01em;
  line-height: 1.05;
}

h1 { font-size: clamp(48px, 11vw, 120px); }
h1.w {
  margin: 24px auto 16px;
  text-align: center;
  text-shadow: .01em .01em 0 var(--neon), .02em .02em 0 var(--neon), .03em .03em 0 var(--neon), .04em .04em 0 var(--neon), .05em .05em 0 var(--neon), .05em .05em .12em rgba(255, 95, 31, .6);
}
h2 { font-size: 40px; margin: 48px 0 16px; border-bottom: var(--bd); padding-bottom: 6px; }
h3 { font-size: 26px; margin: 0 0 6px; }

.cuadros, .botonera { display: grid; padding: 0; margin: 0; list-style: none; }

.cuadros {
  grid-template-columns: repeat(2, 1fr);
  border-block: var(--bd);
}
.cuadros li + li { border-left: var(--bd); }

.cuadro {
  display: grid;
  place-items: center;
  min-height: 160px;
  padding: 24px 12px;
  font-size: 30px;
  text-decoration: none;
  text-align: center;
  background: var(--bg);
  transition: background-color .15s;
}
.cuadro:hover, .cuadro:focus-visible {
  background: var(--neon);
  outline: none;
}

.collage img { width: 100%; }

.botonera {
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 24px auto 0;
}

.bt {
  --sombra: var(--fg);
  display: block;
  padding: 14px 12px;
  font-size: 20px;
  text-decoration: none;
  text-align: center;
  background: var(--bg);
  border: var(--bd);
  border-radius: 14px;
  box-shadow: 0 6px 0 var(--sombra);
  transition: transform .12s ease-out, box-shadow .12s ease-out, border-color .12s, color .12s;
}
.bt:hover, .bt:focus-visible {
  --sombra: var(--neon);
  border-color: var(--neon);
  color: var(--neon);
  transform: translateY(-3px);
  box-shadow: 0 9px 0 var(--sombra);
  outline: none;
}
.bt:active {
  --sombra: var(--neon);
  transform: translateY(4px);
  box-shadow: 0 2px 0 var(--sombra);
}

footer { margin: 64px 0 24px; border-top: var(--bd); padding-top: 16px; }
footer p { margin: 0; font-size: 14px; }

@media (max-width: 640px) {
  .cuadros { grid-template-columns: 1fr; }
  .cuadros li + li { border-left: 0; border-top: var(--bd); }
  .cuadro { min-height: 96px; }
  .botonera { grid-template-columns: 1fr 1fr; }
  .botonera li:first-child { grid-column: 1 / -1; }
  h2 { font-size: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  .cuadro, .bt { transition: none; }
  .bt:hover, .bt:focus-visible, .bt:active { transform: none; }
}

.colectivos { list-style: none; margin: 0 0 16px; padding: 0; columns: 2 300px; column-gap: 32px; }
.colectivos > li { break-inside: avoid; border-bottom: 1px solid var(--fg); }
.colectivos summary, .colectivos .cab {
  display: grid;
  grid-template-columns: 48px 1fr;
  column-gap: 12px;
  align-items: center;
  padding: 8px 0;
}
.colectivos summary { cursor: pointer; list-style: none; }
.colectivos summary::-webkit-details-marker { display: none; }
.colectivos img, .colectivos .sin-logo { grid-row: span 2; width: 48px; height: 48px; border: 2px solid var(--fg); }
.colectivos .sin-logo { background: var(--fg); }
.colectivos .n { font-family: var(--tit); font-size: 22px; line-height: 1.1; text-transform: uppercase; }
.colectivos .n.solo { grid-row: span 2; }
.colectivos .d { font-size: 14px; line-height: 1.3; }
.colectivos summary .n::after { content: " +"; }
.colectivos details[open] .n::after { content: " −"; }
.colectivos summary:hover .n, .colectivos summary:focus-visible .n, .colectivos details[open] .n { color: var(--neon); }
.colectivos summary:focus-visible { outline: 2px solid var(--neon); outline-offset: 2px; }
.redes { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0 0 12px 60px; }
.redes a {
  display: block;
  padding: 4px 10px;
  font-size: 15px;
  text-decoration: none;
  border: 2px solid var(--fg);
  border-radius: 8px;
}
.redes a:hover, .redes a:focus-visible { color: var(--neon); border-color: var(--neon); outline: none; }
