/* BASTA Gastrobar - statische kloon van bastagastrobar.nl
   Kleuren en fonts gemeten op de echte site (zie BRONNEN.md):
   goud #bf873c / #be8741 - blauw #306189 - roze #ffedf1 - creme #f4f1ee - zwart #010101
   Fonts: Alata (nav/body-accenten), Poppins (vette caps-koppen), Open Sans (lopende tekst) */

:root {
  --goud: #bf873c;
  --goud2: #be8741;
  --blauw: #306189;
  --roze: #ffedf1;
  --creme: #f4f1ee;
  --zwart: #010101;
  --wit: #ffffff;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--wit);
  font-family: 'Open Sans', Helvetica, Arial, sans-serif;
  color: var(--blauw);
  font-size: 16px;
  line-height: 1.7;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--goud); }

/* ---------- Header / nav ---------- */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  background: var(--wit);
  box-shadow: 0 1px 0 rgba(0,0,0,.06);
}
.nav-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  min-height: 64px;
  padding: 0 16px;
}
.nav-logo { display: flex; align-items: center; }
.nav-logo img { width: 120px; height: auto; }
.nav-acties { display: flex; align-items: center; gap: 16px; }
.knop-reserveer {
  font-family: 'Alata', Helvetica, Arial, sans-serif;
  background: var(--zwart);
  color: var(--goud);
  border: 1px solid var(--goud);
  border-radius: 4px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: 13px;
  padding: 9px 16px;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
}
.knop-reserveer:hover { background: #1c1c1c; }
.taalwissel {
  font-family: 'Alata', Helvetica, Arial, sans-serif;
  letter-spacing: .14em;
  font-size: 13px;
  color: var(--blauw);
  display: flex;
  gap: 6px;
  align-items: center;
}
.taalwissel a { color: var(--goud); text-decoration: none; padding: 4px 2px; }
.taalwissel a[aria-current="page"] { color: var(--blauw); text-decoration: underline; text-underline-offset: 3px; }
.hoofdnav > ul { list-style: none; display: flex; gap: 34px; }
.hoofdnav li { position: relative; }
.hoofdnav a {
  font-family: 'Alata', Helvetica, Arial, sans-serif;
  color: var(--goud);
  text-decoration: none;
  letter-spacing: .18em;
  font-size: 15px;
  padding: 20px 0;
  display: inline-block;
}
.hoofdnav a:hover { color: var(--goud2); }
.heeft-sub > a::after { content: " \2304"; font-size: 12px; vertical-align: 2px; }
.basta-subnav {
  display: none;
  position: absolute;
  top: 100%; left: -14px;
  background: var(--wit);
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
  padding: 8px 0;
  min-width: 190px;
  flex-direction: column;
  gap: 0;
}
.heeft-sub:hover .basta-subnav, .heeft-sub:focus-within .basta-subnav { display: flex; }
.basta-subnav a { padding: 8px 18px; letter-spacing: .12em; font-size: 14px; }

/* mobiel menu */
.menuknop {
  display: none;
  background: none; border: 0;
  font-family: 'Alata', sans-serif;
  color: var(--goud);
  font-size: 15px;
  letter-spacing: .18em;
  padding: 18px 0;
  cursor: pointer;
}
@media (max-width: 980px) {
  .menuknop { display: block; }
  .nav-logo img { width: 96px; }
  .knop-reserveer { padding: 8px 12px; font-size: 12px; }
  .nav-acties { gap: 10px; }
  .hoofdnav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--wit); box-shadow: 0 6px 12px rgba(0,0,0,.12); }
  .hoofdnav.open { display: block; }
  .hoofdnav > ul { flex-direction: column; gap: 0; padding: 8px 20px 16px; }
  .hoofdnav a { padding: 10px 0; }
  .basta-subnav { display: flex; position: static; box-shadow: none; padding: 0 0 0 18px; }
}

main { padding-top: 64px; }

/* ---------- Hero slider ---------- */
.hero-slider {
  position: relative;
  height: min(874px, calc(100vh - 64px));
  min-height: 420px;
  overflow: hidden;
  background: var(--zwart);
}
.hero-slider .dia {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.2s ease;
}
.hero-slider .dia.actief { opacity: 1; }
.hero-slider .dia picture, .hero-slider .dia img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
}

/* ---------- Vacatures ---------- */
.sectie-vacature {
  background-image: linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.35)), url("../img/vacature-achtergrond.jpeg");
  background-image: linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.35)), image-set(url("../img/vacature-achtergrond.webp") type("image/webp"), url("../img/vacature-achtergrond.jpeg") type("image/jpeg"));
  background-size: cover;
  background-position: center;
  padding: 90px 16px;
  text-align: center;
}
.sectie-vacature h2 {
  font-family: 'Poppins', Helvetica, Arial, sans-serif;
  font-weight: 700;
  color: var(--wit);
  text-transform: uppercase;
  font-size: clamp(34px, 6vw, 56px);
  letter-spacing: .06em;
  margin-bottom: 48px;
}
.vacature-kaarten {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  max-width: 980px;
  margin: 0 auto 48px;
}
.vacature-kaarten img { border-radius: 14px; width: 100%; }
@media (max-width: 760px) { .vacature-kaarten { grid-template-columns: 1fr; max-width: 420px; } }
.sectie-vacature p {
  font-family: 'Alata', sans-serif;
  color: var(--wit);
  font-size: clamp(18px, 3vw, 24px);
}
.sectie-vacature a { color: var(--wit); }

/* ---------- 'TIES ---------- */
.sectie-ties { background: var(--roze); padding: 80px 16px; }
.ties-inner {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
@media (max-width: 860px) { .ties-inner { grid-template-columns: 1fr; } }
.ties-tekst img.ties-logo { max-width: 220px; margin-bottom: 28px; }
.ties-tekst p {
  font-family: 'Alata', sans-serif;
  color: var(--blauw);
  font-size: 18px;
  margin-bottom: 22px;
}
.ties-foto img { width: 100%; }

/* ---------- Socials ---------- */
.social-rij {
  display: flex;
  justify-content: center;
  gap: 22px;
  padding: 36px 0 0;
}
.social-rij a {
  width: 54px; height: 54px;
  border: 2px solid var(--goud);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--goud);
  text-decoration: none;
  background: var(--wit);
}
.social-rij svg { width: 22px; height: 22px; fill: currentColor; }

/* ---------- Contact ---------- */
.sectie-contact { background: var(--wit); padding: 80px 16px 56px; text-align: center; }
.sectie-contact h2 {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--blauw);
  font-size: clamp(30px, 5vw, 44px);
  margin-bottom: 56px;
}
.contact-kolommen {
  max-width: 1150px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
}
.contact-kolommen > div { padding: 0 34px; }
.contact-kolommen > div + div { border-left: 1px solid var(--blauw); }
@media (max-width: 860px) {
  .contact-kolommen { grid-template-columns: 1fr; gap: 42px; }
  .contact-kolommen > div + div { border-left: 0; }
}
.contact-kolommen h3 {
  font-family: 'Alata', sans-serif;
  font-weight: 400;
  color: var(--goud);
  text-transform: uppercase;
  letter-spacing: .22em;
  font-size: 17px;
  margin-bottom: 26px;
}
.contact-kolommen p {
  font-family: 'Alata', sans-serif;
  color: var(--blauw);
  font-size: 16px;
  margin-bottom: 14px;
}
.contact-kolommen a { color: var(--blauw); }

/* ---------- Algemene informatie ---------- */
.sectie-informatie { background: var(--zwart); padding: 80px 16px 90px; }
.sectie-informatie h2 {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--wit);
  text-align: center;
  font-size: clamp(28px, 5vw, 42px);
  margin-bottom: 56px;
}
.info-toggles {
  max-width: 980px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 90px;
}
@media (max-width: 760px) { .info-toggles { grid-template-columns: 1fr; } }
.info-toggles details { border-bottom: 1px solid rgba(255,255,255,.15); padding: 10px 0 14px; }
.info-toggles summary {
  font-family: 'Alata', sans-serif;
  color: var(--goud);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 18px;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.info-toggles summary::-webkit-details-marker { display: none; }
.info-toggles summary::after { content: "\25BE"; color: var(--goud); }
.info-toggles details[open] summary::after { content: "\25B4"; }
.info-toggles p { color: var(--wit); font-size: 15px; padding-top: 12px; }

/* ---------- Kaart-pagina's ---------- */
.kaart-pagina { background: var(--creme); }
.kaart-pagina img.kaart { width: 100%; }
.kaart-desktop { display: block; }
.kaart-mobiel { display: none; }
@media (max-width: 640px) {
  .kaart-desktop.heeft-mobiel { display: none; }
  .kaart-mobiel { display: block; }
}

/* ---------- Footer ---------- */
.site-footer { background: var(--creme); padding: 44px 16px 30px; text-align: center; }
.site-footer img { max-width: 110px; margin: 0 auto 18px; }
.site-footer p {
  font-family: 'Alata', sans-serif;
  color: var(--blauw);
  font-size: 14px;
}
.site-footer a { color: var(--blauw); font-weight: 700; text-decoration: none; }

/* ---------- Toegankelijkheid ---------- */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* ---------- Vacature HTML-kaarten (D7) ---------- */
.vacature-htmlkaarten {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  max-width: 1080px;
  margin: 0 auto 48px;
  text-align: left;
}
@media (max-width: 860px) { .vacature-htmlkaarten { grid-template-columns: 1fr; max-width: 460px; } }
.vacature-kaart {
  background: var(--creme);
  border: 2px solid var(--goud);
  border-radius: 14px;
  padding: 28px 26px 26px;
  display: flex;
  flex-direction: column;
}
.vacature-kaart .vk-boventitel {
  font-family: 'Alata', sans-serif;
  color: var(--goud2);
  text-transform: uppercase;
  letter-spacing: .2em;
  font-size: 13px;
  margin-bottom: 10px;
}
.vacature-kaart h3 {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--blauw);
  font-size: 20px;
  line-height: 1.3;
  margin-bottom: 16px;
}
.vacature-kaart ul {
  list-style: disc;
  padding-left: 18px;
  color: var(--blauw);
  font-size: 14.5px;
  margin-bottom: 22px;
}
.vacature-kaart li { margin-bottom: 8px; }
.knop-solliciteer {
  font-family: 'Alata', sans-serif;
  background: var(--zwart);
  color: var(--goud);
  border: 1px solid var(--goud);
  border-radius: 4px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: 13px;
  padding: 10px 18px;
  text-decoration: none;
  text-align: center;
  margin-top: auto;
  align-self: flex-start;
}
.knop-solliciteer:hover { background: #1c1c1c; }

/* ---------- Maps-blok bij contact (D8) ---------- */
.kaart-blok {
  max-width: 1150px;
  margin: 56px auto 0;
}
.kaart-blok iframe {
  width: 100%;
  height: 360px;
  border: 0;
  border-radius: 14px;
  display: block;
}
.knop-route {
  font-family: 'Alata', sans-serif;
  background: var(--zwart);
  color: var(--goud);
  border: 1px solid var(--goud);
  border-radius: 4px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: 13px;
  padding: 11px 20px;
  text-decoration: none;
  display: inline-block;
  margin-top: 18px;
}
.knop-route:hover { background: #1c1c1c; }

/* ---------- Web-native menukaart (D6 + S1) ---------- */
.menu-hoofd {
  max-width: 860px;
  margin: 0 auto;
  padding: 112px 16px 80px;
}
.menu-hoofd h1 {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--blauw);
  text-align: center;
  font-size: clamp(30px, 5vw, 44px);
  margin-bottom: 6px;
}
.menu-versie {
  text-align: center;
  font-family: 'Alata', sans-serif;
  color: var(--goud2);
  font-size: 14px;
  letter-spacing: .08em;
  margin-bottom: 8px;
}
.menu-download {
  text-align: center;
  font-size: 14px;
  margin-bottom: 28px;
}
.menu-download a { color: var(--blauw); }
.menu-tabs {
  position: sticky;
  top: 64px;
  z-index: 50;
  background: var(--creme);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 22px;
  padding: 12px 0;
  border-top: 1px solid rgba(48,97,137,.2);
  border-bottom: 1px solid rgba(48,97,137,.2);
  margin-bottom: 40px;
}
.menu-tabs a {
  font-family: 'Alata', sans-serif;
  color: var(--goud);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 13px;
  padding: 4px 2px;
}
.menu-tabs a:hover { color: var(--goud2); text-decoration: underline; text-underline-offset: 4px; }
.menu-sectie { margin-bottom: 52px; scroll-margin-top: 130px; }
.menu-sectie h2 {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--blauw);
  font-size: 24px;
  margin-bottom: 2px;
}
.menu-sectie h3 {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--blauw);
  font-size: 18px;
  margin: 26px 0 2px;
}
.sectie-tijd, .sectie-intro {
  font-family: 'Alata', sans-serif;
  color: var(--goud2);
  font-size: 14px;
  margin-bottom: 4px;
}
.menu-lijst { list-style: none; margin-top: 14px; }
.menu-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 18px;
  align-items: baseline;
  padding: 7px 0;
}
.mi-naam {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--goud);
  font-size: 15px;
  letter-spacing: .02em;
  margin-right: 8px;
}
.mi-omschrijving { color: var(--blauw); font-size: 15px; }
.mi-prijs {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  color: var(--blauw);
  font-size: 15px;
  text-align: right;
  white-space: nowrap;
}
.menu-item.prijs2 { grid-template-columns: 1fr 52px 52px; }
.menu-item.prijs3 { grid-template-columns: 1fr 44px 44px 44px; }
.prijskop {
  font-family: 'Alata', sans-serif;
  font-weight: 400;
  font-style: italic;
  color: var(--blauw);
  font-size: 12.5px;
}
.menu-reserveerband {
  text-align: center;
  padding: 26px 0 0;
  border-top: 1px solid rgba(48,97,137,.2);
}
@media (max-width: 640px) {
  .menu-item { grid-template-columns: 1fr auto; }
  .menu-item.prijs2 { grid-template-columns: 1fr 44px 44px; }
  .menu-item.prijs3 { grid-template-columns: 1fr 38px 38px 38px; }
  .mi-naam, .mi-omschrijving, .mi-prijs { font-size: 14px; }
}

/* ---------- 404 ---------- */
.pagina-404 {
  max-width: 640px;
  margin: 0 auto;
  padding: 154px 16px 110px;
  text-align: center;
}
.pagina-404 h1 {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--blauw);
  font-size: clamp(28px, 5vw, 40px);
  margin-bottom: 18px;
}
.pagina-404 p { color: var(--blauw); margin-bottom: 30px; }
.lijst-404 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}
.lijst-404 a {
  font-family: 'Alata', sans-serif;
  color: var(--goud);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 13px;
  text-decoration: none;
  border: 1px solid var(--goud);
  border-radius: 4px;
  padding: 10px 18px;
}
.lijst-404 a:hover { color: var(--goud2); border-color: var(--goud2); }
