/* ==========================================
   Andrews ICT - stylesheet
   Rustig en eenvoudig: witte pagina, donkere tekst,
   één blauwe kleur voor knoppen en links.
   ========================================== */

/* ---------- Lettertypes (staan op de eigen server) ---------- */

@font-face {
  font-family: "Rubik";
  src: url("/assets/fonts/rubik-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Sans 3";
  src: url("/assets/fonts/source-sans-3-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Sans 3";
  src: url("/assets/fonts/source-sans-3-600.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* ---------- Kleuren ---------- */

:root {
  --tekst: #1b2733;
  --grijs: #5b6772;
  --band: #eef1f3;
  --blauw: #1e5a96;
  --blauw-donker: #174a7c;
  --lijn: #d9dee3;
}

/* ---------- Basis ---------- */

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: #fff;
  color: var(--tekst);
  font-family: "Source Sans 3", Arial, sans-serif;
  font-size: 1.125rem; /* 18px */
  line-height: 1.6;
}

h1,
h2,
h3 {
  font-family: "Rubik", Arial, sans-serif;
  font-weight: 500;
  line-height: 1.2;
  margin: 0 0 0.5rem;
}

h1 {
  font-size: clamp(2rem, 5vw, 3rem);
}

h2 {
  font-size: clamp(1.6rem, 3.5vw, 2rem);
}

h3 {
  font-size: 1.25rem;
}

p,
ul {
  margin: 0 0 1rem;
}

/* Foto's altijd recht, zonder ronde hoeken */
img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: var(--blauw);
}

a:hover {
  color: var(--blauw-donker);
}

/* Duidelijk zichtbaar waar je bent als je met Tab door de pagina gaat */
a:focus-visible {
  outline: 3px solid var(--blauw);
  outline-offset: 3px;
}

/* Tekst die ik nog moet invullen */
.invullen {
  background: #fff3b0;
  padding: 0 0.2em;
}

/* Grijze bijtekst */
.klein {
  color: var(--grijs);
}

/* Regels niet te lang maken, anders leest het lastig */
.smal {
  max-width: 36rem;
}

.container {
  max-width: 70rem;
  margin: 0 auto;
  padding: 0 1.25rem;
}

/* ---------- Skiplink ---------- */

.skiplink {
  position: absolute;
  left: 1rem;
  top: -5rem;
  background: var(--tekst);
  color: #fff;
  padding: 0.5rem 1rem;
}

.skiplink:focus {
  top: 1rem;
  color: #fff;
}

/* ---------- Knop: er is maar één stijl ---------- */

.knop {
  display: inline-block;
  background: var(--blauw);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  padding: 0.6rem 1.2rem;
  border-radius: 4px;
}

.knop:hover {
  background: var(--blauw-donker);
  color: #fff;
}

/* ---------- Header ---------- */

.header {
  border-bottom: 1px solid var(--lijn);
}

.header .container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.woordmerk {
  font-family: "Rubik", Arial, sans-serif;
  font-weight: 500;
  font-size: 1.4rem;
  color: var(--tekst);
  text-decoration: none;
}

.woordmerk:hover {
  color: var(--tekst);
}

.menu {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.menu a:not(.knop):not(.taalschakelaar) {
  color: var(--tekst);
  text-decoration: none;
}

.menu a:not(.knop):not(.taalschakelaar):hover,
.menu a[aria-current="page"] {
  color: var(--blauw);
  text-decoration: underline;
}

/* ---------- Taalschakelaar: NL [schuifje] EN ---------- */

.taalschakelaar {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--grijs);
  text-decoration: none;
}

/* De taal waar je nu bent is donker, de andere grijs */
.staat-nl .nl,
.staat-en .en {
  color: var(--tekst);
}

/* Het "bakje" van de schakelaar */
.schakelaar {
  position: relative;
  width: 3rem;
  height: 1.4rem;
  background: var(--band);
  border: 1px solid #b8c1c9;
  border-radius: 4px;
}

/* Het knopje, met de vlag van de taal waar je nu bent */
.schakelaar::after {
  content: "";
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 2px;
  width: 1.5rem;
  background: var(--blauw) url("/assets/img/vlag-nl.svg") center / cover no-repeat;
  border-radius: 2px;
  outline: 1px solid rgba(27, 39, 51, 0.25);
}

/* Engelse pagina: knopje rechts, met de Britse vlag */
.staat-en .schakelaar::after {
  left: auto;
  right: 2px;
  background-image: url("/assets/img/vlag-uk.svg");
}

/* ---------- Secties ---------- */

.sectie {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.sectie + .sectie {
  padding-top: 0;
}

/* ---------- Home: hero ---------- */

.hero {
  display: grid;
  gap: 2rem;
  align-items: center;
  padding-top: 3rem;
  padding-bottom: 2rem;
}

.hero p {
  max-width: 30rem;
  font-size: 1.2rem;
}

.hero .knoppen {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.5rem;
  margin-top: 1.5rem;
}

@media (min-width: 50rem) {
  .hero {
    grid-template-columns: 1fr 1.2fr;
    gap: 3rem;
    padding-top: 4rem;
    padding-bottom: 3rem;
  }
}

/* ---------- Home: wat ik doe ---------- */

.drie-kolommen {
  display: grid;
  gap: 2rem;
  margin: 2rem 0;
}

.drie-kolommen img {
  margin-bottom: 1rem;
}

.drie-kolommen p {
  margin: 0;
  color: var(--grijs);
}

@media (min-width: 45rem) {
  .drie-kolommen {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ---------- Home: de twee producten naast elkaar ---------- */

.producten {
  display: grid;
  gap: 2.5rem;
  margin: 2rem 0;
}

.producten img {
  margin-bottom: 1rem;
}

.producten h3 {
  font-size: 1.4rem;
}

.producten p {
  margin: 0 0 0.75rem;
  color: var(--grijs);
}

@media (min-width: 45rem) {
  .producten {
    grid-template-columns: 1fr 1fr;
  }
}

/* ---------- Portfolio-tegels ---------- */

.tegels {
  display: grid;
  gap: 2rem;
  margin-top: 2rem;
}

.tegel {
  display: block;
  color: var(--tekst);
  text-decoration: none;
}

.tegel img {
  margin-bottom: 1rem;
}

.tegel h2,
.tegel h3 {
  font-size: 1.4rem;
  color: var(--blauw);
  margin-top: 0;
}

.tegel:hover h2,
.tegel:hover h3 {
  text-decoration: underline;
}

.tegel p {
  margin: 0;
  color: var(--grijs);
}

@media (min-width: 45rem) {
  .tegels {
    grid-template-columns: 1fr 1fr;
  }
}

/* ---------- Home: over mij ---------- */

.over {
  display: grid;
  gap: 1.5rem;
  align-items: start;
}

.over img {
  width: 12rem;
}

@media (min-width: 40rem) {
  .over {
    grid-template-columns: 12rem 1fr;
    gap: 2.5rem;
  }
}

/* ---------- Contact: lichtgrijze band ---------- */

.contact {
  background: var(--band);
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.contact ul {
  list-style: none;
  padding: 0;
  margin: 1.5rem 0 0;
}

.contact li {
  margin-bottom: 0.5rem;
  font-size: 1.25rem;
}

.contact li span {
  display: inline-block;
  min-width: 6rem;
  color: var(--grijs);
}

/* ---------- Projectpagina ---------- */

.project {
  padding-top: 2.5rem;
  padding-bottom: 4rem;
}

.terug {
  display: inline-block;
  margin-bottom: 2rem;
}

.status {
  color: var(--grijs);
}

.foto-breed {
  margin: 2rem 0 2.5rem;
}

.project .smal h2 {
  font-size: 1.4rem;
  margin-top: 2rem;
}

.project ul {
  padding-left: 1.2rem;
}

.twee-fotos {
  display: grid;
  gap: 1.5rem;
  margin: 2.5rem 0;
}

@media (min-width: 40rem) {
  .twee-fotos {
    grid-template-columns: 1fr 1fr;
  }
}

.zoiets {
  border-top: 1px solid var(--lijn);
  padding-top: 2rem;
  margin-top: 1rem;
}

.project .zoiets h2 {
  margin-top: 0;
}

/* ---------- Gewone tekstpagina (privacy, 404) ---------- */

.tekstpagina {
  padding-top: 2.5rem;
  padding-bottom: 4rem;
}

.tekstpagina h2 {
  font-size: 1.4rem;
  margin-top: 2rem;
}

/* ---------- Footer ---------- */

.footer {
  padding-top: 2rem;
  padding-bottom: 2rem;
  font-size: 1rem;
  color: var(--grijs);
}

.footer .container {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 2rem;
}

.footer p {
  margin: 0;
}

/* Kleine schermen: header iets compacter */
@media (max-width: 30rem) {
  .menu {
    gap: 1rem;
  }

  .knop {
    padding: 0.5rem 1rem;
  }
}
