:root { --accent: #00d26a; --text: #ffffff; --dark: #111111; }
* { box-sizing: border-box; margin: 0; padding: 0; }
html { min-height: 100%; }
body { min-height: 100vh; color: var(--text); font-family: Arial, Helvetica, sans-serif; background: linear-gradient(rgba(0,0,0,.38), rgba(0,0,0,.48)), url("achtergrond.jpg") center / cover no-repeat fixed; }
.site-header { position: absolute; z-index: 10; top: 0; left: 0; width: 100%; border-bottom: 1px solid rgba(255,255,255,.2); background: rgba(0,0,0,.2); backdrop-filter: blur(5px); }
.navigation { display: flex; align-items: center; justify-content: space-between; width: min(1400px,100%); min-height: 85px; margin: 0 auto; padding: 0 45px; }
.logo { color: var(--text); font-size: 1.75rem; font-weight: 800; letter-spacing: 1px; text-decoration: none; }
.logo span { color: var(--text); }
.menu { display: flex; align-items: center; gap: 2rem; list-style: none; }
.menu a { position: relative; display: inline-block; padding: 10px 0; color: var(--text); font-size: .94rem; font-weight: 600; text-decoration: none; transition: color 180ms ease; }
.menu a:not(.contact-button)::after { position: absolute; bottom: 0; left: 0; width: 0; height: 2px; content: ""; background: var(--accent); transition: width 180ms ease; }
.menu a:hover, .menu a:focus-visible, .menu a.active { color: var(--accent); }
.menu a:hover::after, .menu a:focus-visible::after, .menu a.active::after { width: 100%; }
.contact-button { padding: 10px 19px !important; border: 1px solid var(--accent); border-radius: 4px; }
.contact-button:hover, .contact-button:focus-visible { color: var(--dark) !important; background: var(--accent); }
.hero { display: grid; min-height: 100vh; padding: 130px 30px 100px; text-align: center; place-items: center; }
.hero-content { max-width: 700px; text-shadow: 0 2px 12px rgba(0,0,0,.45); }
.eyebrow { margin-bottom: 8px; font-size: .9rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.hero h1 { font-size: clamp(3rem,9vw,6.5rem); line-height: 1; }
.hero-content > p:not(.eyebrow) { max-width: 500px; margin: 22px auto 30px; font-size: clamp(1rem,2.5vw,1.2rem); line-height: 1.6; }
.hero-button { display: inline-block; padding: 13px 22px; color: var(--dark); font-weight: 700; text-decoration: none; text-shadow: none; background: var(--accent); border-radius: 4px; transition: transform 180ms ease, background 180ms ease; }
.hero-button:hover, .hero-button:focus-visible { background: #38e58d; transform: translateY(-3px); }
.social-links { position: fixed; z-index: 20; bottom: 30px; left: 30px; display: flex; gap: 12px; }
.social-links a { display: grid; width: 36px; height: 36px; color: var(--text); text-decoration: none; background: rgba(0,0,0,.58); border: 1px solid rgba(255,255,255,.5); border-radius: 50%; place-items: center; transition: color 180ms ease, background 180ms ease, transform 180ms ease; }
.social-links a:hover, .social-links a:focus-visible { color: var(--dark); background: var(--accent); transform: translateY(-3px); }
.social-links svg { width: 17px; height: 17px; fill: currentColor; }
.social-links img { display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
a:focus-visible { outline: 3px solid var(--text); outline-offset: 4px; }
@media (max-width: 850px) { .navigation { flex-direction: column; gap: 14px; padding: 18px 20px; } .menu { justify-content: center; gap: 10px 20px; flex-wrap: wrap; } .menu a { font-size: .88rem; } }
@media (max-width: 480px) { .menu { gap: 7px 14px; } .hero { padding-right: 20px; padding-left: 20px; } .social-links { bottom: 20px; left: 20px; } }

/* Fotocollage: vervang foto-1.jpg t/m foto-5.jpg door je eigen foto's. */
.collage-page { background: #cfefff; }
.collage { width: min(1100px, 100%); min-height: 100vh; margin: 0 auto; padding: 145px 30px 70px; }
.collage-heading { margin-bottom: 28px; text-align: center; text-shadow: 0 2px 12px rgba(0,0,0,.45); }
.collage-heading h1 { margin-bottom: 8px; font-size: clamp(2.3rem, 6vw, 4rem); }
.photo-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 180px; gap: 14px; }
.photo-card { position: relative; overflow: hidden; min-height: 150px; background: rgba(0,0,0,.45); border: 1px dashed rgba(255,255,255,.75); border-radius: 6px; }
.photo-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 250ms ease; }
.photo-card:hover img { transform: scale(1.8); }
.photo-card span { position: absolute; top: 50%; left: 50%; padding: 9px 12px; color: var(--text); font-size: .85rem; font-weight: 700; text-shadow: 0 1px 3px #000; background: rgba(0,0,0,.6); border-radius: 4px; transform: translate(-50%, -50%); white-space: nowrap; }
.photo-large { grid-row: span 2; }
.photo-wide { grid-column: span 2; }
.photo-five img { object-position: center 24%; }
.photo-right { grid-column: 3; }
@media (max-width: 650px) { .collage { padding: 190px 20px 45px; } .photo-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 150px; } .photo-large { grid-row: span 2; } .photo-wide { grid-column: span 2; } .photo-right { grid-column: auto; } }
