:root{--ink:#27211f;--muted:#6d625e;--cream:#fbf8f5;--blush:#efe2dc;--rose:#b68172;--rose-dark:#875e52;--white:#fff;--line:#ddcfca;--max:1240px;--serif:'Cormorant Garamond',serif;--sans:'Inter',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.65}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;max-width:100%;padding:18px max(24px,calc((100vw - var(--max))/2));background:rgba(251,248,245,.93);backdrop-filter:blur(16px);border-bottom:1px solid rgba(221,207,202,.7)}.brand{text-decoration:none;display:inline-flex;flex-direction:column;line-height:.9}.brand-main{font:600 29px var(--serif);letter-spacing:.01em}.brand-sub{font-size:10px;text-transform:uppercase;letter-spacing:.24em;margin-top:8px}.nav{display:flex;align-items:center;gap:28px}.nav a{text-decoration:none;font-size:14px}.nav-cta{padding:11px 17px;border:1px solid var(--ink)}.menu-button{display:none;background:none;border:0;font:500 14px var(--sans)}.hero{min-height:620px;max-height:760px;display:grid;grid-template-columns:48% 52%;background:var(--blush)}.hero-image-wrap{height:100%;min-height:620px;max-height:760px}.hero-image{object-position:center center}.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:80px clamp(40px,7vw,110px)}.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:11px;font-weight:600;color:var(--rose-dark);margin:0 0 20px}.hero h1,.section h2{font-family:var(--serif);font-weight:600;line-height:.98;letter-spacing:-.025em}.hero h1{font-size:clamp(54px,6vw,92px);margin:0 0 28px}.lead{font-size:18px;max-width:560px;color:var(--muted)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 22px;text-decoration:none;border:1px solid var(--ink);font:600 13px var(--sans);letter-spacing:.02em;cursor:pointer}.button-primary{background:var(--ink);color:var(--white)}.button-ghost{background:transparent}.hero-note{font:500 22px var(--serif);font-style:italic;margin-top:38px}.intro-strip{display:flex;justify-content:center;gap:clamp(25px,6vw,90px);padding:22px;background:var(--ink);color:#f8eee9;text-transform:uppercase;font-size:10px;letter-spacing:.2em}.section{max-width:var(--max);margin:auto;padding:120px 28px}.section-soft{max-width:none;background:#f3ebe7;padding-left:max(28px,calc((100vw - var(--max))/2));padding-right:max(28px,calc((100vw - var(--max))/2))}.section-heading{max-width:720px;margin-bottom:55px}.section-heading h2,.about-copy h2,.calendar-copy h2,.contact-copy h2{font-size:clamp(43px,5vw,68px);margin:0 0 20px}.section-heading>p:last-child{color:var(--muted)}.section-heading.split{max-width:none;display:flex;justify-content:space-between;align-items:end}.text-link{font-weight:600;text-underline-offset:6px}.cards{display:grid;gap:20px}.cards.three{grid-template-columns:repeat(3,1fr)}.card{background:rgba(255,255,255,.55);padding:42px 34px;border-top:1px solid var(--rose)}.card-number{font:600 18px var(--serif);color:var(--rose)}.card h3{font:600 34px var(--serif);margin:28px 0 12px}.card p{color:var(--muted)}.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:14px}.gallery-item{margin:0;overflow:hidden}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 2}.gallery img{transition:transform .6s ease}.gallery-item:hover img{transform:scale(1.03)}.about-section{display:grid;grid-template-columns:44% 56%;gap:clamp(50px,8vw,120px);align-items:center}.about-photo{aspect-ratio:1/1;height:auto;max-height:720px;overflow:hidden}.about-photo img{object-position:center top}.about-copy p{color:var(--muted)}.about-copy .button{margin-top:18px}.process-section{border-top:1px solid var(--line)}.process-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.process-list li{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:28px 0;border-bottom:1px solid var(--line)}.process-list strong{font:600 29px var(--serif)}.process-list span{color:var(--muted);align-self:center}.calendar-section{max-width:none;background:var(--ink);color:var(--white);display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-left:max(28px,calc((100vw - var(--max))/2));padding-right:max(28px,calc((100vw - var(--max))/2));align-items:center}.calendar-copy{max-width:570px}.calendar-copy p{color:#d8cfcb}.calendar-copy .button{background:var(--white);color:var(--ink);border-color:var(--white);margin-top:18px}.small{font-size:12px}.calendar-card{background:#fff;color:var(--ink);padding:30px;max-width:520px;width:100%;justify-self:end}.calendar-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:25px;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:24px}.calendar-top span{width:8px;height:8px;border-radius:50%;background:var(--rose)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:8px;padding-top:24px}.calendar-grid span{font-size:10px;text-transform:uppercase;color:var(--muted)}.calendar-grid b,.calendar-grid i{height:38px;display:grid;place-items:center;font-size:12px;font-style:normal}.calendar-grid .selected{border-radius:50%;background:var(--rose);color:#fff}.contact-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px}.contact-links{display:flex;flex-direction:column;gap:12px;margin-top:35px}.contact-links a{text-underline-offset:5px}.contact-form{display:grid;gap:17px}.contact-form label{display:grid;gap:7px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:0;border-bottom:1px solid #a99993;background:transparent;padding:13px 2px;font:400 16px var(--sans);color:var(--ink);border-radius:0}.contact-form textarea{border:1px solid #a99993;padding:14px;resize:vertical}.contact-form .button{justify-self:start}.form-status{min-height:24px;font-size:13px;color:var(--muted)}.footer{padding:55px max(28px,calc((100vw - var(--max))/2));background:#e9ddd7;display:grid;grid-template-columns:1.2fr 1fr auto;gap:30px;align-items:center}.footer p{color:var(--muted)}.footer div{display:flex;gap:20px}.footer small{grid-column:1/-1;border-top:1px solid #cbbab3;padding-top:22px;color:var(--muted)}
@media(max-width:900px){.menu-button{display:block}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);padding:24px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.nav.open{display:flex}.hero{grid-template-columns:1fr;min-height:0;max-height:none}.hero-image-wrap{height:52vh;min-height:420px;max-height:560px}.hero-copy{padding:65px 28px}.cards.three{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr)}.about-section,.calendar-section,.contact-section{grid-template-columns:1fr}.about-photo{aspect-ratio:1/1;height:auto}.calendar-card{justify-self:start}.footer{grid-template-columns:1fr}.footer small{grid-column:auto}}
@media(max-width:580px){.site-header{padding:15px 20px}.brand-main{font-size:25px}.hero-image-wrap{height:46vh;min-height:360px;max-height:460px}.hero h1{font-size:51px}.intro-strip{overflow:auto;justify-content:flex-start}.section{padding:85px 20px}.section-soft,.calendar-section{padding-left:20px;padding-right:20px}.section-heading.split{display:block}.text-link{display:inline-block;margin-top:10px}.gallery{grid-template-columns:1fr;grid-auto-rows:330px}.gallery-item.tall,.gallery-item.wide{grid-row:auto;grid-column:auto}.about-photo{aspect-ratio:1/1;height:auto}.process-list li{grid-template-columns:1fr;gap:7px}.form-row{grid-template-columns:1fr}.footer{padding:45px 20px}}

/* Verzorgde, volledig responsieve portfolio-galerij */
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;grid-auto-rows:auto}
.gallery-item{position:relative;display:block;width:100%;aspect-ratio:4/5;margin:0;padding:0;overflow:hidden;border:0;background:#e9ddd7;cursor:zoom-in}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease,filter .45s ease}
.gallery-item span{position:absolute;left:16px;bottom:16px;padding:8px 12px;background:rgba(251,248,245,.92);color:var(--ink);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:0;transform:translateY(6px);transition:.3s ease}
.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.035);filter:brightness(.92)}
.gallery-item:hover span,.gallery-item:focus-visible span{opacity:1;transform:none}
.gallery-item:focus-visible{outline:2px solid var(--rose-dark);outline-offset:4px}

.lightbox[hidden]{display:none}
.lightbox{position:fixed;inset:0;z-index:1000;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px;padding:36px;background:rgba(25,20,18,.94)}
.lightbox-content{margin:0;min-width:0;display:grid;justify-items:center;gap:14px}
.lightbox-content img{width:auto;max-width:100%;height:auto;max-height:82vh;object-fit:contain;box-shadow:0 20px 70px rgba(0,0,0,.35)}
.lightbox-content figcaption{color:#fff;font-size:13px;text-align:center}
.lightbox-close,.lightbox-nav{border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .2s ease}
.lightbox-close:hover,.lightbox-nav:hover{background:rgba(255,255,255,.22)}
.lightbox-close{position:absolute;top:18px;right:22px;width:48px;height:48px;font-size:38px;line-height:1}
.lightbox-nav{width:52px;height:68px;font-size:46px}
body.lightbox-open{overflow:hidden}

@media(max-width:900px){
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .lightbox{padding:28px 18px;gap:10px}
  .lightbox-nav{width:44px;height:58px;font-size:38px}
}
@media(max-width:580px){
  .gallery{grid-template-columns:1fr;gap:14px}
  .gallery-item{aspect-ratio:4/5}
  .gallery-item span{opacity:1;transform:none;left:12px;bottom:12px}
  .lightbox{grid-template-columns:1fr;padding:64px 12px 72px}
  .lightbox-content img{max-height:72vh}
  .lightbox-nav{position:absolute;bottom:14px;width:48px;height:48px}
  .lightbox-prev{left:calc(50% - 58px)}
  .lightbox-next{right:calc(50% - 58px)}
  .lightbox-close{top:10px;right:10px}
}

/* Instagram-iconen */
.text-link,.contact-links a[href*="instagram.com"],.footer a[href*="instagram.com"]{display:inline-flex;align-items:center;gap:8px}
.instagram-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;flex:0 0 auto}
.gallery-dots{display:none}

/* Mobiele portfolio als horizontale swipe-slider */
@media(max-width:580px){
  .portfolio-section{overflow:hidden}
  .gallery{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 20px;padding:2px 20px 14px;margin-left:-20px;margin-right:-20px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .gallery::-webkit-scrollbar{display:none}
  .gallery-item{flex:0 0 calc(100vw - 64px);max-width:430px;scroll-snap-align:center;aspect-ratio:4/5}
  .gallery-dots{display:flex;justify-content:center;gap:7px;margin-top:18px}
  .gallery-dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:#cdbdb6;cursor:pointer}
  .gallery-dots button.active{background:var(--ink);transform:scale(1.25)}
}
