/* styles.css - professioneel, afgerond en visueel rijk */
:root{
  --brand-dark: #0c6170;
  --brand: #00a869;
  --accent: #5ce65c;
  --ink: #4a4a4a;
  --white: #ffffff;
  --bg-start: #eaf6f5;
  --bg-end: #ffffff;
  --muted: #7a7a7a;
  --card: #ffffff;
  --radius-xl: 24px;
  --radius-lg: 18px;
  --radius-md: 12px;
  --shadow-soft: 0 10px 30px rgba(12,97,112,0.08);
  --shadow-subtle: 0 6px 18px rgba(10,10,10,0.04);
  --max-width: 1250px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  color:var(--ink);
  background:linear-gradient(180deg,var(--bg-start),var(--bg-end));
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}

.container{max-width:var(--max-width);margin:0 auto;padding:28px}

/* Header */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,0.96);
  border-bottom:1px solid rgba(12,97,112,0.06);
  backdrop-filter: blur(6px);
  box-shadow:var(--shadow-subtle);
}
.site-header .container{display:flex;align-items:center;gap:20px}

/* Groter logo, responsive en scherp op retina */
.logo {
  height: 80px;
  max-height: 90px;
  display: block;
  object-fit: contain;
}
@media (max-width:980px) {
  .logo { height: 64px; max-height: 72px; }
}
@media (max-width:640px) {
  .logo { height: 48px; max-height: 56px; }
}

/* optioneel: meer ruimte in header zodat logo niet klem zit */
.site-header .container { align-items: center; gap: 18px; padding: 12px 20px; }

.main-nav{margin-left:auto;display:flex;gap:12px;align-items:center}
.main-nav a{
  color:var(--ink);text-decoration:none;padding:10px 14px;border-radius:14px;font-weight:600;
}
.main-nav a:hover{background:rgba(0,168,105,0.08);color:var(--brand-dark)}

/* Hero */
.hero{display:grid;grid-template-columns:1fr 420px;gap:28px;align-items:center;padding:56px 0}
.hero-left h1{font-size:2.6rem;margin:0 0 12px;color:var(--brand-dark)}
.hero-left p{color:var(--muted);font-size:1.05rem;max-width:720px}
.btn{
  display:inline-flex;align-items:center;gap:10px;background:linear-gradient(90deg,var(--brand-dark),var(--brand));
  color:var(--white);padding:12px 18px;border-radius:14px;border:none;cursor:pointer;font-weight:700;
  box-shadow:0 12px 30px rgba(0,168,105,0.12);
}
.btn.secondary{background:transparent;color:var(--brand-dark);border:1px solid rgba(12,97,112,0.08)}

/* Cards */
.card{
  background:var(--card);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-soft);
}

/* Intro cards */
.intro-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}
.intro-cards .card{display:flex;flex-direction:column;gap:10px;border-radius:20px}

/* Services */
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:18px}
.services-grid article{
  background:linear-gradient(180deg,#fff, #fbfffb);
  padding:20px;border-radius:18px;box-shadow:var(--shadow-subtle);
}
.services-grid h3{margin:0 0 8px;color:var(--brand-dark)}

/* Inputs: volledig afgerond */
form{display:grid;gap:12px}
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], textarea, select {
  padding:14px 18px;border-radius:999px;border:1px solid rgba(12,97,112,0.08);outline:none;font-size:1rem;
  transition:box-shadow .18s,transform .12s,border-color .12s;
  background:linear-gradient(180deg,#fff,#fbfffb);
}
textarea{min-height:140px;border-radius:18px;padding:16px}
input:focus,textarea:focus,select:focus{
  box-shadow:0 10px 30px rgba(0,168,105,0.12);border-color:var(--brand);
  transform:translateY(-2px);
}

/* Review embeds */
.reviews-list{display:grid;gap:14px;margin-top:12px}
.review{
  display:flex;flex-direction:column;gap:10px;
  background:linear-gradient(180deg,#ffffff,#f7fff7);
  border-radius:22px;padding:20px;border:1px solid rgba(10,10,10,0.03);
  box-shadow:0 12px 30px rgba(12,97,112,0.06);
}
.review .meta{display:flex;justify-content:space-between;align-items:center}
.review .meta .name{font-weight:800;color:var(--brand-dark)}
.review .meta .date{color:var(--muted);font-size:0.9rem}
.stars{color:var(--accent);font-weight:800}

/* Review form card */
.submit-review .card{padding:18px;border-radius:18px}
.submit-review label{font-weight:700;color:var(--ink)}

/* Image placeholders */
.img-placeholder{
  width:100%;height:220px;border-radius:14px;background:linear-gradient(90deg,rgba(12,97,112,0.06),rgba(0,168,105,0.04));
  display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:700;
}

/* Footer */
.site-footer{padding:28px 0;text-align:center;color:var(--muted);font-size:0.95rem;border-top:1px solid rgba(12,97,112,0.04);margin-top:40px}

/* Responsive */
@media (max-width:980px){
  .hero{grid-template-columns:1fr;gap:18px;padding:36px 0}
  .intro-cards{grid-template-columns:1fr}
}
/* Reviews grid: 3 cards per row, afgerond en schaduw */
.reviews-section { margin-top: 18px; }
.reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  align-items: start;
}

/* Card styling */
.review-card {
  background: linear-gradient(180deg,#ffffff,#f7fff7);
  border-radius: 18px;
  padding: 18px;
  border: 1px solid rgba(10,10,10,0.03);
  box-shadow: 0 12px 30px rgba(12,97,112,0.06);
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 160px;
  transition: transform .18s, box-shadow .18s;
}
.review-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(12,97,112,0.10);
}

/* Meta row */
.review-meta { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.review-name { font-weight:800; color:var(--brand-dark); }
.review-date { color:var(--muted); font-size:0.9rem; }

/* Subject and done */
.review-subject { font-weight:700; color:var(--ink); }
.review-done { color:var(--muted); font-style:italic; font-size:0.95rem; }

/* Stars */
.review-stars { color:var(--accent); font-weight:800; }

/* Pagination controls */
.reviews-pager {
  display:flex; justify-content:center; align-items:center; gap:12px; margin-top:16px;
}
.reviews-pager .pager-btn {
  background:var(--card); border:1px solid rgba(12,97,112,0.06); padding:8px 12px; border-radius:12px; cursor:pointer;
}
.reviews-pager .pager-btn.primary { background:linear-gradient(90deg,var(--brand-dark),var(--brand)); color:var(--white); border:none; box-shadow:0 8px 20px rgba(0,168,105,0.12); }

/* Page indicator */
.reviews-page-info { color:var(--muted); font-weight:600; }

/* Responsive: 2 columns on tablet, 1 on mobile */
@media (max-width:980px) {
  .reviews-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width:640px) {
  .reviews-grid { grid-template-columns: 1fr; }
  .hero, .intro-cards { padding-left:18px; padding-right:18px; }
}
/* ===== Mobile hamburger menu (voeg onderaan styles.css) ===== */

/* Toggle knop basis */
.nav-toggle {
  display: none;
  background: transparent;
  border: 0;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: relative;
  z-index: 1002;
}

/* Hamburger lijnen in thema kleur */
.nav-toggle .hamburger {
  display: inline-block;
  width: 22px;
  height: 2px;
  background: var(--brand-dark);
  position: relative;
  transition: transform .25s ease;
}
.nav-toggle .hamburger::before,
.nav-toggle .hamburger::after {
  content: "";
  position: absolute;
  left: 0;
  width: 22px;
  height: 2px;
  background: var(--brand-dark);
  transition: transform .25s ease, top .25s ease, bottom .25s ease;
}
.nav-toggle .hamburger::before { top: -7px; }
.nav-toggle .hamburger::after  { bottom: -7px; }

/* Desktop: toon menu inline */
@media (min-width: 981px) {
  .nav-toggle { display: none; }
  .main-nav { display: flex; gap: 12px; align-items: center; }
}

/* Mobiel: toon toggle, verberg menu standaard en style menu in thema */
@media (max-width: 980px) {
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; }

  .main-nav {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 12px;
    left: 12px;
    background: linear-gradient(180deg, var(--card), #fbfffb);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-soft);
    padding: 12px;
    flex-direction: column;
    gap: 8px;
    z-index: 1001;
  }

  .main-nav a {
    padding: 12px 14px;
    display: block;
    border-radius: 12px;
    color: var(--brand-dark);
    text-decoration: none;
    font-weight: 700;
    background: transparent;
  }

  .main-nav a:hover {
    background: rgba(12,97,112,0.04);
    color: var(--brand);
  }

  /* Open state */
  .main-nav.open { display: flex; }

  /* Hamburger -> kruis animatie wanneer open */
  .nav-toggle.open .hamburger { transform: rotate(45deg); background: transparent; }
  .nav-toggle.open .hamburger::before { transform: rotate(-90deg); top: 0; }
  .nav-toggle.open .hamburger::after  { transform: rotate(-90deg); bottom: 0; }
}

/* Zorg dat header boven andere content staat */
.site-header { position: relative; z-index: 1000; }

/* Fallback: als JavaScript uit staat, toon menu altijd */
noscript .main-nav { display: flex !important; position: static !important; box-shadow: none !important; }
