:root { --bg:#080808; --fg:#f0ede8; --muted:#555; --line:rgba(255,255,255,.08); --ease:cubic-bezier(.16,1,.3,1); }
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--fg); font-family:'Inter',system-ui,sans-serif; font-weight:300; line-height:1.6; -webkit-font-smoothing:antialiased; }
a { color:inherit; }
img { display:block; max-width:100%; height:auto; }

/* nav */
.s-nav { position:sticky; top:0; z-index:50; display:flex; justify-content:space-between; align-items:center; padding:1.6rem 3.5rem; background:rgba(8,8,8,.92); backdrop-filter:blur(6px); border-bottom:1px solid var(--line); }
.s-nav-logo img { height:22px; width:auto; }
.s-nav ul { display:flex; gap:2.2rem; list-style:none; align-items:center; }
.s-nav a { text-decoration:none; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; transition:opacity .25s; }
.s-nav a:hover { opacity:.5; }
.s-nav a[aria-current="page"] { opacity:.45; }
.s-nav .s-book { border:1px solid rgba(255,255,255,.3); padding:.35rem .95rem; background:none; color:var(--fg); font:inherit; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; cursor:pointer; }

/* hero */
.s-hero { padding:8rem 3.5rem 5rem; max-width:1100px; }
.s-eyebrow { font-size:.62rem; letter-spacing:.45em; text-transform:uppercase; color:var(--muted); margin-bottom:1.6rem; }
.s-hero h1 { font-family:'Playfair Display',serif; font-weight:400; font-size:clamp(2.6rem,6.5vw,5.6rem); line-height:1.04; margin-bottom:2rem; }
.s-hero h1 em { font-style:italic; }
.s-lead { font-size:.92rem; color:rgba(255,255,255,.55); max-width:560px; line-height:1.9; margin-bottom:2.6rem; }
.s-ctas { display:flex; gap:1rem; flex-wrap:wrap; }
.s-btn { display:inline-block; border:1px solid rgba(255,255,255,.4); padding:.95rem 2.4rem; font-size:.6rem; letter-spacing:.32em; text-transform:uppercase; text-decoration:none; background:transparent; color:var(--fg); font-family:inherit; cursor:pointer; transition:background .3s, border-color .3s; }
.s-btn:hover { background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.75); }
.s-btn--ghost { border-color:rgba(255,255,255,.18); color:rgba(255,255,255,.7); }

/* gallery — same side-scrolling style as the homepage */
.s-hgal { overflow-x:auto; overflow-y:hidden; cursor:grab; scrollbar-width:none; padding:0 3.5rem 1rem; -webkit-overflow-scrolling:touch; user-select:none; }
.s-hgal::-webkit-scrollbar { display:none; }
.s-hgal.dragging { cursor:grabbing; }
.s-track { display:flex; gap:5px; height:72vh; min-height:360px; padding-right:3.5rem; }
.s-item { flex-shrink:0; height:100%; display:flex; flex-direction:column; cursor:zoom-in; }
.s-item-img { overflow:hidden; height:calc(100% - 3rem); background:#111; }
.s-item-img img { height:100%; width:auto; max-width:none; transition:transform 1s var(--ease); pointer-events:none; }
.s-item:hover .s-item-img img { transform:scale(1.03); }
.s-cap { padding-top:.6rem; }
.s-cap-num { display:block; font-size:.58rem; letter-spacing:.3em; color:rgba(255,255,255,.35); line-height:1.4; }
.s-cap-label { display:block; font-size:.52rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.2); line-height:1.4; }
.s-hint { padding:.4rem 3.5rem 0; font-size:.56rem; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.2); }

/* full-screen viewer */
#lb { display:none; position:fixed; inset:0; background:rgba(4,4,4,.96); z-index:800; align-items:center; justify-content:center; padding:2rem; }
#lb.open { display:flex; }
#lb-img { max-width:92vw; max-height:90vh; width:auto; height:auto; object-fit:contain; animation:lbIn .35s var(--ease); }
@keyframes lbIn { from { opacity:0; transform:scale(.93); } to { opacity:1; transform:scale(1); } }
#lb-close { position:absolute; top:1.6rem; right:2.2rem; font-size:1.6rem; color:rgba(255,255,255,.4); cursor:pointer; line-height:1; background:none; border:none; font-family:inherit; }
.lb-arrow { position:absolute; top:50%; transform:translateY(-50%); font-size:2rem; color:rgba(255,255,255,.3); cursor:pointer; padding:1rem; background:none; border:none; font-family:inherit; }
.lb-arrow:hover, #lb-close:hover { color:#fff; }
#lb-prev { left:1rem; } #lb-next { right:1rem; }
#lb-counter { position:absolute; bottom:1.8rem; left:50%; transform:translateX(-50%); font-size:.62rem; letter-spacing:.25em; color:rgba(255,255,255,.3); }

/* sections */
.s-section { padding:7rem 3.5rem 0; max-width:1250px; }
.s-h2 { font-family:'Playfair Display',serif; font-weight:400; font-size:clamp(1.9rem,4vw,3.2rem); line-height:1.1; margin-bottom:2.4rem; }
.s-h2 em { font-style:italic; }
.s-text { font-size:.82rem; color:rgba(255,255,255,.5); line-height:1.95; max-width:620px; }
.s-text + .s-text { margin-top:1rem; }

/* rates (same look as the homepage pop-ups) */
.s-tiers { display:grid; grid-template-columns:repeat(var(--cols,3),1fr); border:1px solid rgba(255,255,255,.1); }
.s-tier { padding:2.5rem; border-right:1px solid var(--line); display:flex; flex-direction:column; }
.s-tier:last-child { border-right:none; }
.s-tier-name { font-size:.58rem; letter-spacing:.35em; text-transform:uppercase; color:var(--muted); margin-bottom:.8rem; }
.s-tier-price { font-family:'Playfair Display',serif; font-style:italic; font-size:1.5rem; margin-bottom:1.5rem; }
.s-tier-price small { font-family:'Inter',sans-serif; font-style:normal; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.3); }
.s-tier ul { list-style:none; margin-bottom:1.8rem; }
.s-tier li { font-size:.7rem; color:rgba(255,255,255,.4); line-height:2; }
.s-tier li::before { content:'— '; color:rgba(255,255,255,.18); }
.s-tier-book { margin-top:auto; background:none; border:none; color:rgba(255,255,255,.6); font:inherit; font-size:.57rem; letter-spacing:.28em; text-transform:uppercase; text-align:left; cursor:pointer; padding:0; text-decoration:none; }
.s-tier-book:hover { color:var(--fg); }

/* how it works / faq */
.s-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:3rem; }
.s-step-n { font-size:.58rem; letter-spacing:.35em; color:var(--muted); margin-bottom:.8rem; }
.s-step h3, .s-faq h3 { font-family:'Playfair Display',serif; font-weight:400; font-size:1.25rem; margin-bottom:.7rem; }
.s-step p, .s-faq p { font-size:.76rem; color:rgba(255,255,255,.45); line-height:1.9; }
.s-faq { display:grid; grid-template-columns:repeat(2,1fr); gap:2.6rem 4rem; }

/* Dutch block */
.s-nl { border-top:1px solid var(--line); margin-top:7rem; padding:4rem 3.5rem 0; max-width:1250px; }
.s-nl h2 { font-family:'Playfair Display',serif; font-weight:400; font-size:1.6rem; margin-bottom:1.2rem; }

/* other services + footer */
.s-more { padding:7rem 3.5rem 0; }
.s-more-list { display:flex; gap:1rem; flex-wrap:wrap; }
.s-footer { margin-top:8rem; padding:3rem 3.5rem 3.5rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap; }
.s-footer img { height:16px; width:auto; opacity:.45; }
.s-footer p { font-size:.56rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.22); }

@media (max-width:768px) {
  .s-nav { padding:1.2rem 1.5rem; }
  .s-nav ul li:not(:last-child) { display:none; }
  .s-hero { padding:5rem 1.5rem 3.5rem; }
  .s-hgal { padding:0 1.5rem 1rem; }
  .s-track { height:58vh; min-height:300px; padding-right:1.5rem; }
  .s-hint { padding:.4rem 1.5rem 0; }
  .s-section, .s-more { padding:5rem 1.5rem 0; }
  .s-nl { padding:3rem 1.5rem 0; margin-top:5rem; }
  .s-tiers { grid-template-columns:1fr; }
  .s-tier { border-right:none; border-bottom:1px solid var(--line); padding:2rem 1.75rem; }
  .s-tier:last-child { border-bottom:none; }
  .s-steps, .s-faq { grid-template-columns:1fr; gap:2rem; }
  .s-footer { padding:2.5rem 1.5rem 3rem; margin-top:5rem; }
}
