:root {
  color-scheme: dark;
  --black: #000;
  --blue: #000080;
  --white: #fff;
  --yellow: #ffed00;
  --cyan: #78f4ff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 1rem; }
body {
  margin: 0;
  color: var(--white);
  background: var(--black);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(1.15rem, 2.5vw, 1.35rem);
  line-height: 1.7;
}
a { color: var(--cyan); text-decoration: underline; text-decoration-thickness: .12em; text-underline-offset: .2em; }
a:hover { color: var(--yellow); }
a:focus-visible { outline: 3px solid var(--yellow); outline-offset: 5px; background: var(--blue); }
.page-width { width: min(100% - 2rem, 58rem); margin-inline: auto; }
.skip-link { position: absolute; z-index: 2; top: .5rem; left: .5rem; padding: .65rem 1rem; transform: translateY(-160%); color: var(--black); background: var(--yellow); font-weight: 800; }
.skip-link:focus { transform: translateY(0); }
.masthead { color: var(--yellow); background: var(--blue); border-bottom: .25rem solid var(--cyan); }
.masthead-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1rem; }
.teletext-label { margin: 0; font-family: "Courier New", monospace; font-size: 1rem; font-weight: 800; letter-spacing: .04em; }
.teletext-label span:first-child { color: var(--cyan); }
.masthead nav { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.masthead nav a { color: var(--white); }
main { padding-block: clamp(1.5rem, 5vw, 3rem); }
h1, h2 { line-height: 1.2; }
h1 { margin: 0 0 2rem; color: var(--yellow); font-size: clamp(2rem, 7vw, 3.25rem); }
section { margin-block: 1.25rem; padding: 1rem clamp(1rem, 3vw, 1.5rem); border: 2px solid var(--cyan); }
h2 { width: fit-content; margin: 0 0 .75rem; padding: .2rem .65rem; color: var(--yellow); background: var(--blue); font-family: "Courier New", monospace; font-size: clamp(1.35rem, 4vw, 1.75rem); }
p { margin: .5rem 0; }
.service-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem 2rem; margin: .5rem 0; padding-left: 1.5em; }
.service-list li { padding-left: .15em; }
.phone-link { display: inline-block; padding: .6rem .9rem; color: var(--black); background: var(--yellow); font-weight: 850; }
.phone-link:hover, .phone-link:focus-visible { color: var(--black); background: var(--cyan); }
footer { padding-block: 0 2rem; }
@media (max-width: 620px) {
  .masthead-inner { align-items: flex-start; flex-direction: column; }
  .service-list { grid-template-columns: 1fr; gap: .2rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
