* { box-sizing:border-box; margin:0; padding:0; }
    :root { --black:#1e1e1e; --white:#ffffff; --gray:#888; --light:#f2f2f0; --border:#e0e0e0; --red:#C41E2E; --red-dark:#8B1520; }
    html { scroll-behavior:smooth; }
    body { font-family:'Inter',sans-serif; background:#fff; color:var(--black); }

    .nav { display:flex; align-items:center; justify-content:space-between; padding:0 2.5rem; height:64px; background:#fff; border-bottom:0.5px solid var(--border); position:sticky; top:0; z-index:100; }
    .nav-logo { font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:300; letter-spacing:5px; text-transform:uppercase; color:var(--black); cursor:pointer; text-decoration:none; display:flex; align-items:center; gap:12px; }
    .nav-links { display:flex; gap:2.5rem; list-style:none; }
    .nav-links a { font-size:11px; font-weight:400; letter-spacing:2px; text-transform:uppercase; color:var(--black); text-decoration:none; cursor:pointer; opacity:0.5; transition:opacity 0.2s; }
    .nav-links a:hover, .nav-links a.active { opacity:1; color:var(--red); }
    .nav-cta { font-size:11px; letter-spacing:2px; text-transform:uppercase; color:#fff; background:var(--red); padding:10px 22px; cursor:pointer; border:none; font-family:'Inter',sans-serif; transition:background 0.2s; } .nav-cta:hover { background:var(--red-dark); }

    .page { display:none; }
    .page.active { display:block; }

    /* HERO */
    .hero { background:#181818; position:relative; overflow:hidden; }
    .hero-visual { width:100%; height:600px; display:flex; align-items:center; justify-content:center; position:relative; }
    .hero-arch { width:280px; height:420px; border:1.5px solid rgba(196,30,46,0.7); border-radius:140px 140px 0 0; display:flex; align-items:center; justify-content:center; position:relative; }
    .hero-arch-inner { width:210px; height:330px; border:1px solid rgba(196,30,46,0.4); border-radius:105px 105px 0 0; display:flex; align-items:center; justify-content:center; }
    .hero-arch-text { font-family:'Cormorant Garamond',serif; font-size:11px; letter-spacing:4px; text-transform:uppercase; color:rgba(255,255,255,0.8); writing-mode:vertical-rl; }
    .hero-content { position:absolute; bottom:0; left:0; right:0; padding:3.5rem 2.5rem; display:flex; justify-content:space-between; align-items:flex-end; }
    .hero-title-wrap { max-width:620px; }
    .hero-label { font-size:10px; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,0.75); margin-bottom:1.25rem; }
    .hero-title { font-family:'Cormorant Garamond',serif; font-size:58px; font-weight:300; line-height:1.05; color:#fff; letter-spacing:-0.5px; animation:fade-up 1.2s ease both; }
    .hero-label { animation:fade-up 1.0s ease 0.2s both; }
    .hero-cta { animation:fade-up 1.0s ease 0.5s both; }
    .hero-arch { animation:fade-in 2s ease 0.3s both; }
    @keyframes fade-up { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
    @keyframes fade-in { from{opacity:0} to{opacity:1} }
    .hero-title em { font-style:italic; color:rgba(255,255,255,0.75); }
    .hero-scroll { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.9); display:flex; align-items:center; gap:8px; flex-direction:column; }
    .hero-scroll-line { width:0.5px; height:48px; background:var(--red); opacity:0.5; }

    /* MARQUEE */
    .marquee-bar { background:linear-gradient(90deg,#1a1a1a,#1e1010,#1a1a1a); background-size:200% 100%; animation:marquee-bg 8s ease infinite; padding:14px 0; border-top:0.5px solid rgba(255,255,255,0.1); overflow:hidden; }
    @keyframes marquee-bg { 0%,100%{background-position:0% 50%} 50%{background-position:100% 50%} }
    .marquee-track { display:flex; gap:60px; white-space:nowrap; animation:marquee 24s linear infinite; }
    .marquee-item { font-size:10px; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,0.85); flex-shrink:0; display:flex; align-items:center; gap:20px; }
    .marquee-dot { width:3px; height:3px; border-radius:50%; background:var(--red); opacity:0.6; }
    @keyframes marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }

    /* SECTIONS */
    .section-header { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:3rem; }
    .section-label { font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--gray); margin-bottom:6px; }
    .section-title { font-family:'Cormorant Garamond',serif; font-size:38px; font-weight:300; color:var(--black); letter-spacing:-0.3px; }
    h2.section-title, h2.page-hero-title, h2.cp-title { margin-top:0; }

    .view-all { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--red); border-bottom:1px solid var(--red); padding-bottom:1px; cursor:pointer; }

    /* PROPERTIES */
    .featured { padding:5rem 2.5rem; }
    .featured-inner { max-width:1100px; margin:0 auto; }
    .prop-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:1px; background:var(--border); }
    /* all listings in one horizontal row */
    .prop-grid.prop-row { display:flex; flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; gap:1px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding-bottom:6px; }
    .prop-grid.prop-row::-webkit-scrollbar { height:4px; }
    .prop-grid.prop-row::-webkit-scrollbar-thumb { background:var(--red); }
    .prop-grid.prop-row > .prop-card { flex:0 0 320px; max-width:320px; scroll-snap-align:start; }

    .prop-card { background:#fff; cursor:pointer; transition:opacity 0.2s; }
    .prop-card:hover { opacity:0.85; }
    .prop-img { height:280px; background:var(--black); position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; }
    .prop-img-bg { position:absolute; inset:0; transition:transform 0.6s ease, filter 0.5s ease; }
    .prop-card:hover .prop-img-bg, .prop-card:active .prop-img-bg { transform:scale(1.18); }
    .prop-card:hover .prop-img-bg { filter:grayscale(0%); }
    /* Premium editorial property badges */
    .prop-status { position:absolute; top:16px; left:16px; z-index:2; display:inline-flex; align-items:center; gap:6px; font-family:'Inter',sans-serif; font-size:9px; font-weight:600; letter-spacing:2px; text-transform:uppercase; background:var(--red); color:#fff; padding:5px 12px; border-left:2px solid var(--black); box-shadow:0 4px 14px rgba(0,0,0,0.12); }
    .prop-status.nieuw { background:var(--black); border-left-color:var(--red); }
    .hv-badge { display:inline-flex; align-items:center; gap:6px; font-family:'Inter',sans-serif; font-size:9px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:#fff; background:var(--red); padding:5px 12px; margin-bottom:6px; border-left:2px solid var(--black); box-shadow:0 4px 14px rgba(0,0,0,0.12); }
    .hv-badge.nieuw { background:var(--black); border-left-color:var(--red); }
    .pdp-badge { display:inline-flex; align-items:center; gap:6px; font-family:'Inter',sans-serif; font-size:9px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:#fff; background:var(--red); padding:5px 12px; border-left:2px solid var(--black); box-shadow:0 4px 14px rgba(0,0,0,0.12); }
    .pdp-badge.nieuw { background:var(--black); border-left-color:var(--red); }
    .normal-case { text-transform:none; }
    .prop-body { padding:1.25rem 1.25rem 1.75rem; border-top:0.5px solid var(--border); }
    .prop-price { font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:400; color:var(--black); margin-bottom:4px; }
    .prop-addr { font-size:13px; color:var(--gray); letter-spacing:0.5px; line-height:1.55; margin-bottom:12px; }
    .prop-specs { display:flex; gap:16px; font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--gray); }

    /* EDITORIAL */
    .editorial { display:grid; grid-template-columns:1fr 1fr; border-top:0.5px solid var(--border); }
    .editorial-visual { background:#1a1a1a; min-height:500px; display:flex; align-items:center; justify-content:center; }
    .editorial-logo { display:block; max-width:min(320px, 80%); height:auto; margin:auto; }
    .editorial-text { padding:5rem; display:flex; flex-direction:column; justify-content:center; }
    .ed-label { font-size:10px; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,0.7); margin-bottom:2rem; }
    .ed-title { font-family:'Cormorant Garamond',serif; font-size:42px; font-weight:300; line-height:1.1; color:var(--black); margin-bottom:1.5rem; letter-spacing:-0.3px; }
    .ed-title em { font-style:italic; }
    .ed-text { font-size:13px; font-weight:300; color:var(--gray); line-height:1.9; margin-bottom:2rem; }
    .ed-link { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--red); border-bottom:1px solid var(--red); padding-bottom:1px; cursor:pointer; display:inline-block; }

    /* NUMBERS */
    .numbers { padding:5rem 2.5rem; background:#1a1a1a; }
    .numbers-inner { max-width:960px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:3rem; text-align:center; }
    .num-val { font-family:'Cormorant Garamond',serif; font-size:56px; font-weight:300; color:var(--red); line-height:1; margin-bottom:10px; }
    .num-lbl { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.9); }

    /* SERVICES */
    .services { padding:5rem 2.5rem; }
    .svc-row { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); margin-top:3rem; }
    .svc-cell { background:#fff; padding:2.5rem 2rem; transition:background 0.2s; }
    .svc-cell:hover { background:var(--light); }
    .svc-num { font-family:'Cormorant Garamond',serif; font-size:44px; font-weight:300; color:var(--border); margin-bottom:1.5rem; line-height:1; }
    .svc-name { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:400; color:var(--black); margin-bottom:10px; }
    .svc-desc { font-size:12px; font-weight:300; color:var(--gray); line-height:1.8; }
    .svc-arrow { font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--red); margin-top:1.75rem; display:block; cursor:pointer; border-bottom:1px solid var(--red); width:fit-content; padding-bottom:1px; }

    /* DIENSTEN PAGE ICONS */
    .dienst-icon { width:160px; height:160px; border:0.5px solid rgba(255,255,255,0.18); border-radius:50%; display:flex; align-items:center; justify-content:center; position:relative; }
    .dienst-icon i { font-size:42px; color:rgba(255,255,255,0.9); }
    .dienst-num { position:absolute; bottom:28px; font-family:'Cormorant Garamond',serif; font-size:13px; letter-spacing:2px; color:rgba(255,255,255,0.5); }
    .editorial-visual:hover .dienst-icon { border-color:var(--red); }
    .editorial-visual:hover .dienst-icon i { color:var(--red); }


    /* REVIEWS */
    .reviews { padding:5rem 2.5rem; background:var(--light); }
    .review-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; margin-top:3rem; }
    .review-card { border-top:2px solid var(--red); padding-top:2rem; }
    .review-quote { font-family:'Cormorant Garamond',serif; font-size:19px; font-weight:300; font-style:italic; color:var(--black); line-height:1.6; margin-bottom:1.5rem; }
    .review-author { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--gray); }

    /* CONTACT FOOTER */
    .contact-footer { background:#1a1a1a; padding:6rem 2.5rem; }
    .cf-inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 1.2fr; gap:4rem; align-items:stretch; }
    .cf-title { font-family:'Cormorant Garamond',serif; font-size:46px; font-weight:300; color:#ffffff; line-height:1.1; margin-bottom:1.5rem; }
    .cf-sub { font-size:13px; font-weight:300; color:rgba(255,255,255,0.75); line-height:1.8; margin-bottom:2.5rem; }
    .cf-btn { font-size:11px; letter-spacing:2px; text-transform:uppercase; background:#fff; color:var(--black); padding:15px 36px; border:none; cursor:pointer; font-family:Inter,sans-serif; transition:opacity 0.2s; }
    .cf-btn:hover { opacity:0.8; }
    .cf-right { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; align-items:stretch; }
    .cf-details { display:flex; flex-direction:column; gap:1.75rem; }
    .cf-item-label { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.85); margin-bottom:4px; }
    .cf-item-val { font-size:15px; color:#ffffff; font-weight:300; }
    .cf-map-small { min-height:160px; border:0.5px solid rgba(255,255,255,0.1); overflow:hidden; position:relative; }
    .cf-map-small iframe { display:block; width:100%; height:100%; min-height:160px; filter:grayscale(100%) invert(92%) contrast(83%); transition:filter 0.5s ease; }
    .cf-map-small:hover iframe { filter:grayscale(0%) invert(0%) contrast(100%); }
    /* Desktop: kaart rechts naast contactgegevens, standaard verborgen, zwart-wit bij hover, kleur bij hover op kaart */
    @media (min-width:901px) {
      .cf-right { position:relative; }
      .cf-map-small {
        position:absolute; right:0; top:0; z-index:2;
        width:calc(50% - 0.75rem); height:100%;
        opacity:0; pointer-events:none; visibility:hidden;
        transition:opacity 0.5s ease, visibility 0.5s ease;
      }
      .cf-map-small iframe { position:absolute; inset:0; width:100%; height:100%; }
      .cf-right:hover .cf-map-small,
      .cf-map-small:hover {
        opacity:1; pointer-events:auto; visibility:visible;
      }
      .cf-map-small:hover iframe { filter:grayscale(0%) invert(0%) contrast(100%); }
    }






    /* FOOTER */
    .footer-bar { background:#161616; border-top:0.5px solid rgba(255,255,255,0.1); padding:1.5rem 2.5rem; display:flex; justify-content:space-between; align-items:center; }
    .footer-bar p { font-size:10px; color:rgba(255,255,255,0.8); letter-spacing:1px; }
    .footer-links { display:flex; gap:2rem; align-items:center; }
    .footer-links a { font-size:10px; color:rgba(255,255,255,0.8); letter-spacing:1px; text-transform:uppercase; text-decoration:none; cursor:pointer; transition:color 0.2s; display:inline-flex; align-items:center; gap:6px; }
    .footer-links a:hover { color:rgba(255,255,255,0.85); }
    .footer-links a i { font-size:13px; }
    .social-links { display:flex; gap:1.25rem; }
    .social-link, .social-link a { width:30px; height:30px; border:0.5px solid rgba(255,255,255,0.4); border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:border-color 0.2s; text-decoration:none; }
    .social-link:hover, .social-link a:hover { border-color:rgba(255,255,255,0.85); }
    .social-link i, .social-link a i { font-size:13px; color:rgba(255,255,255,0.9); }

    /* PARTNER LOGOS */
    .partner-strip { background:#161616; border-top:0.5px solid rgba(255,255,255,0.1); padding:2rem 2.5rem; text-align:center; }
    .partner-logos { display:flex; justify-content:center; align-items:center; gap:2.5rem; flex-wrap:wrap; }
    .partner-logo { height:34px; width:auto; opacity:0.85; object-fit:contain; transition:opacity 0.2s; }
    .partner-logo:hover { opacity:1; }
    .partner-logo-link { display:inline-flex; align-items:center; text-decoration:none; }
    .partner-logo-remax { height:48px; }
    .partner-logo-funda { height:26px; }
    .partner-logo-vastgoed { height:40px; }


    .page-hero { background:#1a1a1a; padding:5rem 2.5rem 4rem; }
    .page-hero-label { font-size:10px; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,0.9); margin-bottom:1rem; }
    .page-hero-title { font-family:'Cormorant Garamond',serif; font-size:52px; font-weight:300; color:#fff; }
    .page-hero-sub { font-size:13px; color:rgba(255,255,255,0.75); margin-top:10px; font-weight:300; }

    /* FILTER BAR */
    .filter-bar { padding:1.25rem 2.5rem; border-bottom:0.5px solid var(--border); display:flex; gap:1.25rem; align-items:center; background:#fff; }
    .filter-bar input { flex:1; border:none; border-bottom:0.5px solid var(--border); padding:7px 0; font-size:12px; font-family:'Inter',sans-serif; outline:none; color:var(--black); background:transparent; }
    .filter-bar select { border:none; border-bottom:0.5px solid var(--border); padding:7px 8px 7px 0; font-size:11px; font-family:'Inter',sans-serif; outline:none; color:var(--black); background:transparent; letter-spacing:0.5px; cursor:pointer; }
    .filter-btn { background:var(--red); color:#fff; font-size:10px; padding:9px 22px; border:none; cursor:pointer; font-family:'Inter',sans-serif; letter-spacing:1.5px; text-transform:uppercase; transition:opacity 0.2s; }
    .filter-btn:hover { opacity:0.75; }

    /* OVER PAGE */
    .over-grid { display:grid; grid-template-columns:1fr 1fr; min-height:500px; }
    .over-photo { background:#1a1a1a; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:1.5rem; }
    .over-initials { width:160px; height:220px; border:0.5px solid rgba(255,255,255,0.12); border-radius:80px 80px 0 0; display:flex; align-items:flex-end; justify-content:center; padding-bottom:2rem; }
    .over-initials span { font-family:'Cormorant Garamond',serif; font-size:48px; font-weight:300; color:rgba(255,255,255,0.9); }
    .over-name { text-align:center; }
    .over-name p { font-family:'Cormorant Garamond',serif; font-size:16px; color:#ffffff; font-weight:300; letter-spacing:2px; }
    .over-name span { font-size:9px; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,0.85); }
    .over-content { padding:5rem; display:flex; flex-direction:column; justify-content:center; }
    .about-badges { display:flex; gap:10px; flex-wrap:wrap; margin-top:2rem; }
    .badge { border:0.5px solid var(--border); padding:7px 16px; font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--black); display:flex; align-items:center; gap:6px; }
    .badge i { font-size:13px; color:var(--red); }

    /* WAARDEBEPALING */
    .wb-wrap { max-width:700px; margin:0 auto; padding:4rem 2rem; }
    .wb-prog { display:flex; align-items:center; margin-bottom:2rem; }
    .wsc { width:26px; height:26px; border-radius:50%; border:0.5px solid #ccc; background:#fff; display:flex; align-items:center; justify-content:center; font-size:10px; color:#bbb; flex-shrink:0; transition:all 0.3s; }
    .wsc.on { border-color:var(--red); background:var(--red); color:#fff; }
    .wsc.done { border-color:var(--red-dark); background:var(--red-dark); color:#fff; }
    .wsl { flex:1; height:0.5px; background:#e0e0e0; margin:0 6px; transition:background 0.3s; }
    .wsl.done { background:var(--red); }
    .wp-lbls { display:grid; grid-template-columns:repeat(5,1fr); margin-bottom:2.5rem; }
    .wp-lbl { font-size:9px; letter-spacing:1.5px; text-transform:uppercase; color:#ccc; text-align:center; }
    .wp-lbl.on { color:var(--black); }
    .wform { border:0.5px solid var(--border); padding:2.5rem; background:#fff; }
    .wf-step-label { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--gray); margin-bottom:6px; }
    .wf-title { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:300; color:var(--black); margin-bottom:4px; }
    .wf-sub { font-size:12px; color:var(--gray); margin-bottom:2rem; font-weight:300; line-height:1.6; }
    .wlbl { font-size:9px; letter-spacing:1.5px; text-transform:uppercase; color:var(--black); margin-bottom:6px; display:block; }
    .winp { width:100%; border:none; border-bottom:0.5px solid var(--border); padding:10px 0; font-size:13px; font-family:'Inter',sans-serif; color:var(--black); outline:none; margin-bottom:1.5rem; background:transparent; transition:border-color 0.2s; }
    .winp:focus { border-bottom-color:var(--red); }
    .winp-row { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
    .wopts { display:grid; gap:8px; margin-bottom:1.5rem; }
    .wopts2 { grid-template-columns:1fr 1fr; }
    .wopts3 { grid-template-columns:repeat(3,1fr); }
    .wopts4 { grid-template-columns:repeat(4,1fr); }
    .wopt { border:0.5px solid var(--border); padding:13px 15px; cursor:pointer; display:flex; align-items:center; gap:10px; background:#fff; transition:all 0.2s; }
    .wopt:hover { border-color:var(--red); }
    .wopt.on { border-color:var(--red); background:#fff5f5; }
    .wopt i { font-size:17px; color:#ccc; }
    .wopt.on i { color:var(--red); }
    .wopt-lbl { font-size:12px; color:var(--black); }
    .wopt-sub { font-size:10px; color:var(--gray); }
    .wsldr { margin-bottom:1.75rem; }
    .wsldr-row { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; }
    .wsldr-val { font-family:'Cormorant Garamond',serif; font-size:26px; color:var(--black); }
    input[type=range] { width:100%; accent-color:var(--red); cursor:pointer; }
    .wbtn-row { display:flex; justify-content:space-between; align-items:center; margin-top:2rem; border-top:0.5px solid var(--border); padding-top:1.5rem; }
    .wbtn-back { background:transparent; border:none; font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gray); cursor:pointer; font-family:'Inter',sans-serif; }
    .wbtn-next { background:var(--red); color:#fff; font-size:10px; letter-spacing:2px; text-transform:uppercase; padding:13px 30px; border:none; cursor:pointer; font-family:Inter,sans-serif; transition:opacity 0.2s; }
    .wbtn-next:hover { opacity:0.75; }
    .wres-hero { background:#1a1a1a; padding:2.5rem; text-align:center; margin-bottom:1.5rem; }
    .wres-label { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.9); margin-bottom:10px; }
    .wres-range { font-family:'Cormorant Garamond',serif; font-size:38px; font-weight:300; color:var(--red); margin-bottom:6px; }
    .wres-mid { font-size:13px; color:rgba(255,255,255,0.75); }
    .wres-indicatie { font-size:11px; color:rgba(255,255,255,0.5); margin-top:10px; font-style:italic; }
    .wres-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); margin-bottom:1.5rem; }
    .wres-stat { background:#fff; padding:1.5rem; text-align:center; }
    .wres-num { font-family:'Cormorant Garamond',serif; font-size:22px; color:var(--black); margin-bottom:4px; }
    .wres-lbl { font-size:9px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gray); }
    .wres-cta { border:0.5px solid var(--border); padding:2.5rem; text-align:center; }
    .wres-cta-title { font-family:'Cormorant Garamond',serif; font-size:24px; color:var(--black); margin-bottom:10px; }
    .wres-cta p { font-size:12px; color:var(--gray); margin-bottom:1.75rem; line-height:1.7; }
    .spinner { width:36px; height:36px; border:1px solid #e0e0e0; border-top-color:var(--black); border-radius:50%; animation:spin 0.8s linear infinite; margin:0 auto 1.25rem; }
    @keyframes spin { to { transform:rotate(360deg); } }

    /* CONTACT PAGE */
    .contact-page { display:grid; grid-template-columns:1fr 1fr; }
    .cp-left { background:#1a1a1a; padding:6rem; }
    .cp-right { padding:6rem; }
    .cp-label { font-size:10px; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,0.9); margin-bottom:1.5rem; }
    .cp-title { font-family:'Cormorant Garamond',serif; font-size:42px; font-weight:300; color:#fff; margin-bottom:2rem; line-height:1.1; }
    .cp-detail { margin-bottom:1.75rem; }
    .cp-detail-lbl { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.85); margin-bottom:5px; }
    .cp-detail-val { font-size:15px; color:#ffffff; font-weight:300; }

    .nav-toggle, .mobile-menu { display:none; }

    /* RESPONSIVE */
    @media (max-width:900px) {
      .nav { padding:0 1.25rem; }
      .nav-links, .nav-cta { display:none; }
      .nav-toggle { display:flex; flex-direction:column; justify-content:center; align-items:center; width:40px; height:40px; background:transparent; border:none; cursor:pointer; gap:6px; margin-left:auto; }
      .nav-toggle span { display:block; width:22px; height:1.5px; background:var(--black); transition:transform .3s, opacity .3s; }
      .nav-toggle.active span:nth-child(1) { transform:translateY(7.5px) rotate(45deg); }
      .nav-toggle.active span:nth-child(2) { opacity:0; }
      .nav-toggle.active span:nth-child(3) { transform:translateY(-7.5px) rotate(-45deg); }
      .lang-toggle { margin-right:0.75rem; }
      .mobile-menu { display:none; position:fixed; top:64px; left:0; right:0; bottom:0; background:#fff; z-index:99; flex-direction:column; padding:2rem 1.5rem; gap:0.5rem; overflow-y:auto; }
      .mobile-menu.open { display:flex; }
      .mobile-menu a { font-size:13px; letter-spacing:2px; text-transform:uppercase; color:var(--black); text-decoration:none; padding:1rem 0; border-bottom:0.5px solid var(--border); }
      .mobile-menu a.active { color:var(--red); }
      .mobile-menu .mobile-cta { margin-top:1rem; background:var(--red); color:#fff; padding:14px; text-align:center; font-size:11px; letter-spacing:2px; text-transform:uppercase; cursor:pointer; }
      .hero-title { font-size:34px; }
      .hero-visual { height:420px; }
      .hero-arch { width:200px; height:300px; border-radius:100px 100px 0 0; }
      .hero-arch-inner { width:150px; height:235px; border-radius:75px 75px 0 0; }
      .hero-arch-text { font-size:9px; letter-spacing:3px; }
      .hero-content { flex-direction:column; align-items:flex-start; gap:2rem; padding:2.5rem 1.25rem; }
      .prop-grid, .svc-row { grid-template-columns:1fr; }
      .prop-grid.prop-row > .prop-card { flex:0 0 82%; max-width:82%; }

      .editorial, .over-grid, .contact-page, .cf-inner { grid-template-columns:1fr; }
      .editorial-visual, .over-photo { min-height:320px; }
      .editorial-logo { max-width:min(220px, 70%); }
      .dienst-icon { width:120px; height:120px; }
      .dienst-icon i { font-size:32px; }
      .editorial-text, .cp-left, .cp-right, .over-content { padding:3rem 1.25rem; }
      .numbers-inner { grid-template-columns:repeat(2,1fr); }
      .featured, .services, .reviews { padding:3rem 1.25rem; }
      .review-grid { grid-template-columns:1fr; gap:2rem; }
      .wopts3 { grid-template-columns:repeat(2,1fr); }
      .wopts4 { grid-template-columns:repeat(2,1fr); }
      .wres-grid { grid-template-columns:1fr; }
      .wb-wrap { padding:2rem 1rem; }
      .wp-lbls { grid-template-columns:repeat(5,1fr); gap:4px; }
      .wp-lbl { font-size:7px; letter-spacing:1px; }
      .wform { padding:1.5rem; }
      .winp-row { grid-template-columns:1fr; gap:0; }
      .wbtn-row { flex-direction:column-reverse; gap:1rem; align-items:stretch; }
      .wbtn-next, .wbtn-back { width:100%; text-align:center; }
      .page-hero { padding:3.5rem 1.25rem 2.5rem; }
      .page-hero-title { font-size:32px; }
      .filter-bar { flex-wrap:wrap; gap:0.75rem; padding:1rem 1.25rem; }
      .filter-bar input { min-width:180px; flex:1 1 100%; }
      .filter-bar select { flex:1; min-width:120px; }
      .filter-btn { width:100%; }
      /* Inline grids that are not class-based */
      div:has(> .cta-card) { grid-template-columns:1fr !important; }
      div:has(> .photo-bw) { grid-template-columns:repeat(2,1fr) !important; }
      div.photo-bw[style*="height:480px"] { height:280px !important; }
      .page[id^="page-woning"] div[style*="gap:1px"][style*="background:var(--border)"] { grid-template-columns:repeat(2,1fr) !important; }
      .page[id^="page-woning"] div[style*="grid-template-columns:repeat(4,1fr)"],
      .page[id^="page-woning"] div[style*="grid-template-columns:repeat(3,1fr)"],
      .page[id^="page-woning"] div[style*="grid-template-columns:1.6fr 1fr"] { grid-template-columns:1fr !important; }
      .cf-title { font-size:34px; }
      .cf-right { grid-template-columns:1fr; }
      .cf-map-small { min-height:180px; }
      .cf-map-small iframe { min-height:180px; }



    }



    @media (max-width:420px) {
      .hero-title { font-size:28px; }
      .hero-visual { height:360px; }
      .hero-arch { width:170px; height:255px; border-radius:85px 85px 0 0; }
      .hero-arch-inner { width:130px; height:200px; border-radius:65px 65px 0 0; }
      .hero-arch-text { font-size:8px; letter-spacing:2.5px; }
      .section-title { font-size:30px; }
      .ed-title { font-size:30px; }
      .num-val { font-size:40px; }
      .page-hero-title { font-size:26px; }
      .wopts2, .wopts3, .wopts4 { grid-template-columns:1fr; }
      div:has(> .photo-bw) { grid-template-columns:1fr !important; }
      .page[id^="page-woning"] div[style*="gap:1px"][style*="background:var(--border)"] { grid-template-columns:1fr !important; }
      .numbers-inner { grid-template-columns:1fr; }
    }



.lang-toggle { font-family:'Inter',sans-serif; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--black); background:transparent; border:0.5px solid var(--border); padding:9px 14px; margin-right:0.25rem; cursor:pointer; transition:border-color 0.2s, color 0.2s; }
.lang-toggle:hover { border-color:var(--red); color:var(--red); }
@media (max-width:820px) { .lang-toggle { margin-right:0.5rem; } }

/* Zwart-wit foto's die bij hover of touch in kleur komen */
.photo-bw{filter:grayscale(1);-webkit-filter:grayscale(1);transition:filter .5s ease,-webkit-filter .5s ease;}
.photo-bw:hover,.photo-bw:active,.prop-card:hover .photo-bw,.prop-card:active .photo-bw,
.prop-card.touch-active .photo-bw,.photo-bw.touch-active{filter:grayscale(0);-webkit-filter:grayscale(0);}
.prop-card.touch-active .prop-img-bg{transform:scale(1.18);}

/* Touch-apparaten: geen hover, dus foto's direct in kleur */
@media (hover:none),(pointer:coarse){
  .photo-bw{filter:grayscale(0);-webkit-filter:grayscale(0);}
}


/* Situatie-opties: ook op mobiel (touch) zichtbaar */
.cta-track > .cta-card:hover, .cta-track > .cta-card:active { transform:scale(1.06); box-shadow:0 12px 30px rgba(0,0,0,0.08); z-index:1; }

/* WhatsApp floating button */
.whatsapp-btn{position:fixed;bottom:24px;right:24px;width:56px;height:56px;background:#25D366;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,0.25);z-index:1000;text-decoration:none;transition:transform 0.2s,box-shadow 0.2s;}
.whatsapp-btn:hover{transform:scale(1.05);box-shadow:0 6px 16px rgba(0,0,0,0.3);}
.whatsapp-btn i{font-size:28px;}
@media (max-width:900px){.whatsapp-btn{bottom:16px;right:16px;width:48px;height:48px;}.whatsapp-btn i{font-size:24px;}}

/* Lightbox */
.lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.92);z-index:2000;align-items:center;justify-content:center;padding:1rem;}
.lightbox.active{display:flex;}
.lightbox-inner{position:relative;max-width:92vw;max-height:90vh;display:flex;align-items:center;justify-content:center;}
.lightbox-inner img{max-width:100%;max-height:90vh;object-fit:contain;box-shadow:0 20px 60px rgba(0,0,0,0.5);}
.lightbox-close{position:fixed;top:1.5rem;right:1.5rem;width:44px;height:44px;border-radius:50%;border:0.5px solid rgba(255,255,255,0.3);background:rgba(30,30,30,0.6);color:#fff;font-size:18px;cursor:pointer;z-index:2001;display:flex;align-items:center;justify-content:center;transition:background 0.2s;}
.lightbox-close:hover{background:rgba(196,30,46,0.8);}
.lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0.5px solid rgba(255,255,255,0.3);background:rgba(30,30,30,0.6);color:#fff;font-size:28px;cursor:pointer;z-index:2001;display:flex;align-items:center;justify-content:center;transition:background 0.2s;}
.lightbox-nav:hover{background:rgba(196,30,46,0.8);}
.lightbox-prev{left:1.5rem;}
.lightbox-next{right:1.5rem;}
@media (max-width:900px){.lightbox-nav{width:38px;height:38px;font-size:22px;}.lightbox-prev{left:0.75rem;}.lightbox-next{right:0.75rem;}.lightbox-close{top:1rem;right:1rem;}}

/* ===== Situatie slider ===== */
.cta-slider { position:relative; }
.cta-track {
  display:flex; gap:1px; background:var(--border);
  overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  scrollbar-width:none; -ms-overflow-style:none;
}
.cta-track::-webkit-scrollbar { display:none; }
.cta-track > .cta-card { flex:0 0 calc(25% - 0.75px); scroll-snap-align:start; transform-origin:center; transition:transform 0.3s ease, box-shadow 0.3s ease; }

.cta-arrow {
  position:absolute; top:50%; transform:translateY(-50%);
  width:38px; height:38px; border:0.5px solid var(--border); background:#fff;
  color:var(--black); font-size:22px; line-height:1; cursor:pointer; z-index:2;
  display:flex; align-items:center; justify-content:center; border-radius:50%;
  transition:all 0.2s;
}
.cta-arrow:hover { background:var(--red); color:#fff; border-color:var(--red); }
.cta-prev { left:-19px; }
.cta-next { right:-19px; }
@media (max-width:900px) {
  .cta-track > .cta-card { flex:0 0 82%; }
  .cta-prev { left:4px; }
  .cta-next { right:4px; }
}

/* ===== Featured property slider ===== */
.prop-slider { position:relative; }
.prop-track {
  display:flex; gap:1px; background:var(--border);
  overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  scrollbar-width:none; -ms-overflow-style:none;
}
.prop-track::-webkit-scrollbar { display:none; }
.prop-track.prop-auto { scroll-snap-type:none; scroll-behavior:auto; }
.prop-track > .prop-card { flex:0 0 calc(25% - 0.75px); scroll-snap-align:start; }
.prop-arrow {
  position:absolute; top:50%; transform:translateY(-50%);
  width:38px; height:38px; border:0.5px solid var(--border); background:#fff;
  color:var(--black); font-size:22px; line-height:1; cursor:pointer; z-index:2;
  display:flex; align-items:center; justify-content:center; border-radius:50%;
  transition:all 0.2s;
}
.prop-arrow:hover { background:var(--red); color:#fff; border-color:var(--red); }
.prop-prev { left:-19px; }
.prop-next { right:-19px; }
@media (max-width:900px) {
  .prop-track > .prop-card { flex:0 0 82%; }
  .prop-prev { left:4px; }
  .prop-next { right:4px; }
}

/* ===== PDP fotoslider ===== */
.pdp-gal{position:relative;width:100vw;max-width:100vw;margin-left:calc(-50vw + 50%);}
.pdp-track{display:flex;gap:4px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.pdp-track::-webkit-scrollbar{display:none;}
.pdp-slide{flex:0 0 100%;height:82vh;min-height:520px;scroll-snap-align:start;cursor:pointer;}
.pdp-arrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:0.5px solid rgba(255,255,255,0.5);background:rgba(30,30,30,0.55);color:#fff;font-size:26px;line-height:1;cursor:pointer;z-index:5;display:flex;align-items:center;justify-content:center;transition:background 0.2s;}
.pdp-arrow:hover{background:var(--red);}
.pdp-prev{left:14px;}
.pdp-next{right:14px;}
@media (max-width:900px){.pdp-slide{height:56vh;min-height:320px;}.pdp-arrow{width:36px;height:36px;font-size:20px;}}

/* HERO VERTICAL FEATURED SLIDER */
.hero-vslider { position:absolute; top:2.5rem; right:2.5rem; width:340px; z-index:5; animation:fade-in 1.6s ease 0.5s both; }
.hv-label { font-size:10px; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,0.55); margin-bottom:14px; text-align:right; }
.hv-viewport { height:540px; overflow:hidden; position:relative; mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent); -webkit-mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent); }
.hv-track { display:flex; flex-direction:column; gap:16px; animation:hv-scroll 28s linear infinite; }
.hero-vslider:hover .hv-track { animation-play-state:paused; }
@keyframes hv-scroll { from { transform:translateY(0); } to { transform:translateY(-50%); } }
.hv-card { flex-shrink:0; background:rgba(255,255,255,0.04); border:0.5px solid rgba(255,255,255,0.12); cursor:pointer; transition:border-color .3s ease, transform .4s ease; }
.hv-card:hover { border-color:rgba(196,30,46,0.7); transform:translateY(-2px); }
.hv-img { height:180px; }
.hv-card:hover .hv-img.photo-bw, .hv-card:active .hv-img.photo-bw { filter:grayscale(0); }
.hv-body { padding:12px 14px 14px; }
.hv-price { font-family:'Cormorant Garamond',serif; font-size:19px; color:#fff; }
.hv-addr { font-size:13px; font-weight:300; color:rgba(255,255,255,0.6); letter-spacing:0.5px; line-height:1.55; margin-top:3px; }
@media (max-width:1200px) and (min-width:901px) { .hero-vslider { display:none; } }

/* Verticale slider uitgelichte woningen op mobiel */
@media (max-width:900px) {
  .hero { display:flex; flex-direction:column; }
  .hero-visual { order:1; }
  .hero-content { position:static; order:2; padding:0 1.25rem 2rem; }
  .hero-vslider { display:block; position:static; order:3; width:auto; margin:0 1.25rem 2.5rem; }
  .hv-label { text-align:left; }
  .hv-viewport { height:420px; }
  .hv-img { height:210px; }
  .hv-price { font-size:20px; }
  .hv-addr { font-size:14px; }
}

/* Mobile: voorkom horizontale overflow (witte vlak rechts) */
html, body { max-width:100%; overflow-x:hidden; }
@media (max-width:900px) {
  .footer-bar { flex-wrap:wrap; justify-content:center; text-align:center; gap:1rem; padding:1.5rem 1.25rem; }
  .footer-bar p { width:100%; }
  .footer-links { flex-wrap:wrap; justify-content:center; gap:1rem 1.25rem; max-width:100%; }
}
