/* Haarsalon-specifieke styles */
:root {
  --bg:#f6fbf7;
  --panel:#fff;
  --text:#0f172a;
  --muted:#64748b;
  --line:#e6efe9;
  --brand:#16a34a;
  --brand-2:#22c55e;
  --price:#16a34a;
  --priceText:#fff;
  --radius:18px;
  --shadow:0 10px 30px rgba(2,8,23,.08);
  --max:1100px;
}

body {
  background: var(--bg);
  color: var(--text);
}

/* Hero section */
.hero {
  padding:56px 0;
  background:linear-gradient(180deg, #ffffff, #f6fbf7);
}
.hero-grid {
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  gap:24px;
  align-items:center;
}
.hero h1 {
  font-size: clamp(28px, 4vw, 44px);
  line-height:1.15;
  margin:0 0 10px;
}
.hero p {
  color:var(--muted);
  max-width:720px;
  margin:0 0 20px;
}
.hero .actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
}

/* Cards and grid */
.grid {
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:20px;
}
.card {
  grid-column: span 6;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px;
  box-shadow:var(--shadow);
}
.card h3 { margin:0 0 6px; }

/* Pricing groups */
.group {
  grid-column: span 12;
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:16px;
}
.group + .group { margin-top:14px; }
.group-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.group-head h3 {
  margin:0;
  font-size:20px;
}
.seg {
  display:inline-flex;
  background:#f0f7f2;
  border:1px solid var(--line);
  border-radius:999px;
  padding:4px;
}
.seg button {
  appearance:none;
  border:0;
  background:transparent;
  color:var(--text);
  padding:8px 12px;
  border-radius:999px;
  cursor:pointer;
}
.seg button[aria-pressed="true"] {
  background:linear-gradient(180deg, var(--brand), var(--brand-2));
  color:#fff;
}
.seg button:focus {
  outline:3px solid rgba(34,197,94,.5);
  outline-offset:2px;
}

/* Services */
.svc {
  display:grid;
  grid-template-columns: 1fr auto;
  gap:6px 12px;
  align-items:center;
  background:#fff;
  border:1px solid #e8f1ea;
  border-radius:14px;
  padding:12px;
}
.svc + .svc { margin-top:10px; }
.svc-title { font-weight:600; }
.svc-desc {
  color:var(--muted);
  font-size:14px;
}
.price {
  grid-row:1 / span 2;
  grid-column:2;
  align-self:center;
}
.price .pill {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:84px;
  padding:8px 12px;
  background:var(--price);
  color:var(--priceText);
  border-radius:999px;
  font-weight:800;
  letter-spacing:.2px;
}
.price small {
  display:block;
  text-align:center;
  color:#e6ffe9;
  opacity:.9;
  margin-bottom:4px;
}

/* Gallery */
.gallery {
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:14px;
}
.tile {
  grid-column: span 4;
  background:#fff;
  border:1px dashed var(--line);
  border-radius:16px;
  aspect-ratio:4/3;
  display:grid;
  place-items:center;
  color:var(--muted);
}

/* Agenda */
.agenda {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:20px;
}
.cal {
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.cal-head {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px 14px;
  border-bottom:1px solid var(--line);
}
.cal-head .secondary { border-color:#bfdcc7; }
.cal-grid {
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  border-top:1px solid var(--line);
}
.cal-cell {
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:10px;
  min-height:72px;
  background:#fff;
}
.cal-cell.muted {
  background:#f3f7f4;
  color:#7a8b83;
}
.cal-cell .d {
  font-weight:600;
  font-size:12px;
}

/* Slots */
.slots {
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:14px;
}
.slot {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  margin:6px;
  cursor:pointer;
  font-size:14px;
  background:#fff;
}
.slot:hover { border-color:var(--brand); }
.slot:focus {
  outline:3px solid rgba(34,197,94,.5);
  outline-offset:2px;
}
.slot[aria-disabled="true"] {
  opacity:.4;
  pointer-events:none;
}

/* Modal */
.modal {
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.35);
  display:none;
  align-items:center;
  justify-content:center;
}
.modal.open { display:flex; }
.modal-dialog {
  background:#fff;
  color:#0f172a;
  width:min(560px, 92vw);
  border-radius:16px;
  box-shadow:var(--shadow);
  overflow:hidden;
  border:1px solid var(--line);
}
.modal-head {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:14px 16px;
  border-bottom:1px solid var(--line);
}
.modal-body { padding:16px; }
.modal-body form { display:grid; gap:10px; }

/* Form elements */
input, select, textarea {
  width:100%;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px 14px;
  color:var(--text);
}
label {
  font-size:14px;
  color:var(--muted);
}
.btn-row {
  display:flex;
  gap:10px;
  justify-content:flex-end;
  margin-top:10px;
}

/* Footer */
footer {
  border-top:1px solid var(--line);
  padding:26px 0;
  color:var(--muted);
  background:#fff;
}

/* Responsive */
@media (max-width:900px) {
  .hero-grid { grid-template-columns: 1fr; }
  .agenda { grid-template-columns: 1fr; }
}

/* ——— Add-on: base/utility/nav/cta ——— */
*{ box-sizing:border-box }
html, body{
  margin:0;
  font-family:'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Ubuntu, Cantarell, 'Helvetica Neue', Arial;
  line-height:1.6;
  letter-spacing:.2px;
}
a{ color:var(--brand); text-decoration:none }
.container{ max-width:var(--max); margin:0 auto; padding:0 20px }
.small{ font-size:12px; color:var(--muted) }

.twostack-bar{
  position:sticky; top:0; z-index:50;
  backdrop-filter:saturate(140%) blur(6px);
  background:rgba(255,255,255,.85);
  border-bottom:1px solid var(--line);
}
.ts-inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0 }
.ts-brand{ display:flex; align-items:center; gap:10px; font-weight:800; color:var(--text) }
.ts-logo{
  display:inline-grid; place-items:center;
  width:36px; height:36px; border-radius:10px;
  background:linear-gradient(135deg, var(--brand), var(--brand-2));
  color:#fff; font-weight:900
}
.ts-name{ font-size:18px }
.ts-nav{ display:flex; align-items:center; gap:16px }
.ts-nav a{ color:var(--text); opacity:.9 }
.ts-nav a:hover{ opacity:1 }
.ts-cta{
  display:inline-flex; align-items:center; gap:10px;
  font-weight:700;
  background:linear-gradient(135deg, var(--brand), var(--brand-2));
  color:#fff; padding:10px 16px; border-radius:12px;
  box-shadow:var(--shadow); border:1px solid #16a34a
}
.secondary{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:600; padding:10px 16px; border-radius:12px;
  border:1px solid var(--line); color:var(--text); background:#fff
}

/* Dropdown */
.ts-dropdown{ position:relative }
.ts-dropdown summary{ cursor:pointer; list-style:none }
.ts-dropdown summary::-webkit-details-marker{ display:none }
.ts-dropdown ul{
  position:absolute; right:0; top:100%; margin-top:10px;
  background:#fff; border:1px solid var(--line);
  border-radius:14px; padding:8px; box-shadow:var(--shadow);
  min-width:220px
}
.ts-dropdown li{ list-style:none }
.ts-dropdown a{ display:block; padding:8px 10px; border-radius:10px; color:var(--text) }
.ts-dropdown a[aria-current="page"]{ background:#f0f7f2 }
.ts-dropdown a:hover{ background:#f6fbf7 }

/* Card voor hero-afbeelding */
.logo-card{
  background:transparent; border:0; border-radius:var(--radius);
  padding:0; display:block; box-shadow:var(--shadow); overflow:hidden; aspect-ratio:4/3
}
.logo-card img{ width:100%; height:100%; object-fit:cover; display:block }

/* Mobile nav: laat dropdown werken ook op small screens */
@media (max-width:900px){
  .ts-nav{ gap:10px }
}
