:root{
  --bs-siteRood: #721515;
  --bs-siteBlauw: #576fae;
  --bs-siteBeige: #ede8d0;
  --bs-siteTaupe: #b6ad9e;

  --text: #1b1b1b;
  --bg: #ffffff;
  --maxw: 1100px;
}

*{box-sizing:border-box}

/* ====== Base Layout ====== */
html, body {
  height: 100%;
  margin: 0;
  display: flex;
  flex-direction: column;
}

body{
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}

/* make sure main always stretches */
main {
  flex: 1;
}

main.container.content {
  margin-inline: auto;
  width: 100%;
  padding-inline: 2rem; /* just a little breathing room */
}


/* Add breathing room on all text content */
p {
  margin-block: 1rem;
}

/* Add vertical padding to sections and main */
section, main, .content {
  padding-block: 1.5rem;
}

/* ====== Header / Nav ====== */
.site-topbar{
  background: white;
  border-bottom: 4px solid var(--bs-siteRood);
}

.container {
  margin: 0 auto;
  padding: 0 16px;
}

.header{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.logo{ display:flex; align-items:center; gap:10px; text-decoration:none; color:inherit;}
.logo img{ display:block; height:54px;}
.logo--big img{ height:82px;} /* alleen op home */
.brand{
  font-weight:800; letter-spacing:.5px; text-transform:uppercase;
  line-height:1.1;
}
.brand small{ display:block; font-weight:600; font-size:.8rem; color:var(--bs-siteBlauw);}

/* nav */
.nav{
  display:flex; align-items:center; gap:8px;
}
.nav a{
  text-decoration:none; color:var(--text);
  padding:.5rem .75rem; border-radius:10px;
  font-weight:500;
}
.nav a:hover{ background: color-mix(in srgb, var(--bs-siteTaupe) 25%, white); }
.nav a.active{ font-weight:800; border-bottom:3px solid var(--bs-siteBlauw); }

/* afspraak knop */
.cta{
  background: var(--bs-siteRood);
  color:white; text-decoration:none; font-weight:700;
  padding:.6rem 1rem; border-radius:999px;
  box-shadow: 0 2px 0 rgba(0,0,0,.1);
}
.cta:hover {
  filter: brightness(1.05);
  color: #000 !important;
}

/* mobile menu */
.burger{ display:none; background:none; border:0; font-size:1.5rem; }
@media (max-width: 880px){
  .header{flex-wrap:wrap}
  .burger{display:block}
  .nav{ display:none; flex-direction:column; width:100%; padding-top:.5rem; }
  .nav.open{ display:flex; }
  .nav a{ width:100% }

  /* add space below nav when open */
  .nav.open { margin-bottom: 1rem; }
}

/* ====== Layouts ====== */
.hero{
  background: var(--bs-siteBeige);
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.home-page {
  background: var(--bs-siteBeige);
  padding: 2rem 0; /* optional breathing room */
}

.hero .container{ display:grid; gap:18px; align-items:center; }
@media (min-width: 900px){
  .hero .container{ grid-template-columns: 1fr 1fr; }
}
.hero img{ 
   max-width: 300px; /* breedte beperken zodat de tekst ruimte krijgt */
  max-height: 60vh; 
  width: 100%;
  height: auto;
  flex: 0 0 45%; 
  flex-shrink: 0; /* voorkomt dat de afbeelding krimpt */
  border-radius: 20px; /* optioneel, afgeronde hoeken */
  object-fit: cover;         /* fills the box without white space */
  object-position: center;  }

/* ====== Acupunctuur page hero ====== */
.acupunctuur-layout {
  display: flex;
  align-items: center;
  gap: 3rem;
  max-width: 1200px;   /* same as Over mij */
  margin: 0 auto;      /* center within page */
  padding: 0 2rem;     /* same side padding */
}

.acupunctuur-img {
  max-width: 300px; /* breedte beperken zodat de tekst ruimte krijgt */
  max-height: 60vh; 
  width: 100%;
  height: auto;
  flex: 0 0 45%; 
  flex-shrink: 0; /* voorkomt dat de afbeelding krimpt */
  border-radius: 20px; /* optioneel, afgeronde hoeken */
  object-fit: cover;         /* fills the box without white space */
  object-position: center; 
}

.acupunctuur-text {
  flex: 1;              /* take up remaining space */
  max-width: 700px;     /* optional: prevent overly long line lengths */
}

.acupunctuur-page {
  background-color: var(--bs-siteBeige); /* of een andere kleur */
  padding: 2rem 0;
}

.contact-page {
  background-color: var(--bs-siteBeige); /* kies hier de gewenste kleur */
  padding: 2rem 0; /* optioneel: verticale padding */
}


.acupunctuur-page .page-head {
  margin-inline: auto;   /* center horizontally */
  padding-inline: 1rem;  /* same side padding as layout */
}

/* Mobile: stack image above text */
@media (max-width: 900px) {
  .acupunctuur-layout {
    flex-direction: column;
    gap: 1.5rem;
    padding: 1rem;
  }

  .acupunctuur-img {
    flex: 0 0 100%;
    max-height: none;
    margin-bottom: 1rem;
  }
}

/* "Lees meer" section */
.lees-meer-container {
  text-align: center;
  margin-top: 2rem;
  padding: 1rem;
}

.lees-meer-btn {
  background: var(--bs-siteRood);
  color: #fff;
  border: none;
  padding: 0.9rem 1.5rem;
  border-radius: 999px;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  transition: background 0.25s ease;
}

.lees-meer-btn:hover {
  background: color-mix(in srgb, var(--bs-siteTaupe) 25%, white);
  color: #000;
}

.lees-meer-tekst {
  display: none;
  margin-top: 2rem;
  text-align: left;
}

/* === Over mij layout === */
.overmij-hero {
  background: var(--bs-siteBeige); /* beige background */
  padding: 3rem 0; /* same vertical padding as acupunctuur */
}

/* Beige background for the full Over mij section */
.overmij-page {
  background: var(--bs-siteBeige);
  padding: 3rem 0;
}


.overmij-layout {
  display: flex;
  gap: 2rem;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem; /* same side padding as acupunctuur */
}

.overmij-img {
  max-width: 400px;
  height: auto;
  border-radius: 20px; /* same rounded corners */
  flex-shrink: 0;
}

.overmij-text {
  flex: 1;
}

.overmij-text .page-title {
  margin-bottom: 1rem;
}

/* Responsive: stack image above text on smaller screens */
@media (max-width: 930px) {
  .overmij-layout {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .overmij-img {
    max-width: 100%;
    margin-bottom: 1.5rem;
  }

  .overmij-text {
    text-align: left;
  }
}


.page-head{
  padding: 24px 0 10px;
}
.page-title{ margin:0; font-size: clamp(1.6rem, 2.4vw, 2.2rem); }
.lead{ font-size:1.05rem; color:#333; }

.content{ padding: 16px 0 32px; }
.content p{ margin: .75rem 0; }

/* highlight blokken */
.note{
  background: color-mix(in srgb, var(--bs-siteTaupe) 25%, white);
  border-left: 6px solid var(--bs-siteTaupe);
  padding: .9rem 1rem; border-radius:8px;
}

/* tarieven tabel */
.table{
  width:100%; border-collapse:collapse; margin: 8px 0 20px;
}
.table th, .table td{
  padding:.65rem .75rem; border-bottom:1px solid #e6e6e6; text-align:left;
}
.table th{ background:var(--bs-siteBeige); }

/* === Footer layout === */
footer {
  background: white;
  border-top: 4px solid var(--bs-siteRood);
  padding: 1.5rem 1rem;
  margin-top: auto;
}

/* container voor adres, openingstijden en logo's */
.footer-main {
  display: flex;
  flex-wrap: wrap; /* zodat het op mobiel netjes onder elkaar kan */
  gap: 3rem;
  justify-content: space-between; /* verdeelt de kolommen */
  align-items: flex-start; /* alle kolommen bovenaan uitlijnen */
}

/* adres / praktijkgegevens */
.footer-contact {
  flex: 0 1 250px; /* flexibele kolom, min breedte */
}

/* openingstijden */
.footer-openingstijden {
  flex: 0 1 200px; /* startbreedte 200px, kan kleiner worden maar niet groter dan nodig */
}

/* logo container met titel erboven */
.footer-logos {
  flex: 1 1 250px;
}
.footer-logos p {
  margin-bottom: 0.5rem;
}
.footer-logos-list {
  display: flex;
  gap: 3rem;
  flex-wrap: wrap;
  align-items: center;
}
.footer-logos-list img {
  max-height: 50px;
  width: auto;
}

/* copyright onderaan */
.footer-copyright {
  text-align: center;
  margin-top: 1rem;
  font-size: 0.9rem;
  color: #555;
}

/* mobiel: alles netjes onder elkaar */
@media (max-width: 1135px) {
  .footer-main {
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
  }

  .footer-contact,
  .footer-openingstijden,
  .footer-logos {
    text-align: center;
    flex: 1 1 100%;
  }

  .footer-logos-list {
    justify-content: center;
  }

  .footer-logos-list img {
    margin: 0.5rem 0;
    max-height: 20px;
  }
}





/* kleine helpers */
hr.sep{ border:0; height:1px; background:#e8e8e8; margin:16px 0; }
a{ color: var(--bs-siteBlauw); }

/* ====== Cards ====== */
.card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
  padding: 1.5rem;
  margin: 1.25rem 0;
}
.card img {
  max-width: 80%;      /* niet breder dan 80% van de card */
  max-height: 25vh;    /* max 25% van de viewporthoogte */
  width: auto;
  height: auto;
  border-radius: 10px;
  object-fit: cover;
  display: block;
  margin: 0 auto 1rem;
}
.card h2 {
  margin-top: 0;
  font-size: 1.4rem;
}
.card p {
  margin: .5rem 0;
  color: #333;
}

/* Hero section iets moderner */
.hero .container {
  display: grid;
  gap: 2rem;
  align-items: center;
}
@media (min-width: 900px) {
  .hero .container {
    grid-template-columns: 1fr 1fr;
  }
}



/* ====== Contact form ====== */
.contact-form .form-group-container {
  display: grid;
  gap: 1rem;
}
@media (min-width: 720px) {
  .contact-form .form-group-container {
    grid-template-columns: 1fr 1fr;
  }
  .contact-form .form-group:nth-child(4),
  .contact-form .form-group:nth-child(5) {
    grid-column: span 2;
  }
}
.form-label {
  font-weight: 600;
  margin-bottom: 0.4rem;
  display: block;
}
.form-input,
.form-textarea {
  width: 100%;
  padding: 0.7rem 0.75rem;
  border: 1px solid #d8d8d8;
  border-radius: 10px;
  font: inherit;
}
.form-textarea {
  min-height: 120px;
  resize: vertical;
}
.form-submit {
  background: var(--bs-siteRood, #b5121b);
  color: #fff;
  border: none;
  padding: 0.9rem 1.5rem;
  border-radius: 10px;
  cursor: pointer;
  font-weight: bold;

  /* spacing fix */
  margin-top: 1rem;
  margin-bottom: 2rem;
}
.form-submit:hover {
  background: color-mix(in srgb, var(--bs-siteTaupe) 25%, white);
  color: #000;
}

/* ===== Popup ===== */
.popup {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.45);
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.popup-content {
  background: #fff;
  padding: 2rem;
  border-radius: 12px;
  max-width: 400px;
  text-align: center;
  box-shadow: 0 6px 18px rgba(0,0,0,0.2);
  animation: fadeIn 0.25s ease-in-out;
}
#popup-message {
  display: block;
  margin-bottom: 1.2rem;
  font-size: 1rem;
  color: #333;
}
#popup-close {
  background: var(--bs-siteRood, #b5121b);
  color: #fff;
  border: none;
  padding: 0.7rem 1.2rem;
  border-radius: 8px;
  font-weight: bold;
  cursor: pointer;
  transition: background 0.25s ease;
}
#popup-close:hover {
  background: color-mix(in srgb, var(--bs-siteTaupe) 25%, white);
  color: #000
}

/* Small fade-in animation */
@keyframes fadeIn {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

/* === Sticky footer === */
html, body {
  height: 100%;
  margin: 0;
}

/* === Hero layout fix on homepage === */
.hero-layout {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem;
}

.hero-img-wrapper {
  flex: 1;
  display: flex;
  justify-content: center; /* centers image inside left half */
}

.hero-img {
  max-width: 500px;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

.hero-text {
  flex: 1;
}

/* Mobile: stack image above text */
@media (max-width: 768px) {
  .hero-layout {
    flex-direction: column;
    text-align: center;
  }

  .hero-text {
    text-align: left; /* or center if you prefer */
  }
}

/* === Sticky footer fix === */
html, body {
  height: 100%;
  margin: 0;
}

#main-content {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main.home-page {
  flex: 1;
}


