/* LS Wonen — Portfolio Mosaic */
.lsw-pm-section { --white:#FFFFFF; --bone:#F8F6F2; --ink:#14151A; --body:#6E707A; --rule:#ECECEA; --accent:#C89F49; --accent-soft:#FCEFE8; font-family:'Manrope',system-ui,sans-serif; background:var(--bone); color:var(--ink); }
.lsw-pm-section *, .lsw-pm-section *::before, .lsw-pm-section *::after { box-sizing:border-box; }
.lsw-pm { max-width:1280px; margin:0 auto; padding:96px 32px; }
.lsw-pm__head { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; flex-wrap:wrap; margin-bottom:40px; }
.lsw-pm__eyebrow { display:inline-flex; align-items:center; gap:10px; padding:5px 14px 5px 5px; background:#fff; border:1px solid var(--rule); border-radius:999px; font-size:12.5px; font-weight:600; color:var(--ink); margin-bottom:14px; box-shadow:0 6px 18px -10px rgba(15,15,15,.12), 0 1px 2px rgba(15,15,15,.04); letter-spacing:-.005em; }
.lsw-pm__eyebrow-icon { width:28px; height:28px; border-radius:9px; background:linear-gradient(135deg, var(--accent-soft) 0%, #F6DDD0 100%); color:var(--accent); display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
.lsw-pm__eyebrow-icon svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.lsw-pm__h2 { font-size:clamp(26px, 3vw, 40px); line-height:1.1; letter-spacing:-.02em; font-weight:700; margin:0; max-width:580px; color:var(--ink); }
.lsw-pm__link { display:inline-flex; align-items:center; gap:8px; padding:11px 14px 11px 18px; background:var(--white); border:1px solid var(--rule); color:var(--ink); border-radius:999px; font-size:13px; font-weight:600; text-decoration:none; transition:background .3s ease, color .3s ease, transform .3s ease; }
.lsw-pm__link:hover { background:var(--ink); color:var(--white); border-color:var(--ink); transform:translateY(-2px); }
.lsw-pm__link-arrow { width:26px; height:26px; border-radius:50%; background:var(--accent); color:#fff; display:inline-flex; align-items:center; justify-content:center; transition:transform .35s cubic-bezier(.2,.7,.2,1); }
.lsw-pm__link:hover .lsw-pm__link-arrow { transform:rotate(-45deg); }
.lsw-pm__link-arrow svg { width:12px; height:12px; }
.lsw-pm__grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:16px; }
.lsw-pm__card { background:var(--white); border-radius:16px; padding:8px; box-shadow:0 4px 14px -8px rgba(15,15,15,.08); transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease; opacity:0; transform:translateY(24px); }
.lsw-pm__card:hover { transform:translateY(-4px); box-shadow:0 24px 50px -24px rgba(15,15,15,.2); }
.lsw-pm__card--wide { grid-column:span 2; }
.lsw-pm__img { position:relative; overflow:hidden; border-radius:10px; aspect-ratio:1/1; }
.lsw-pm__card--wide .lsw-pm__img { aspect-ratio:2/1; }
.lsw-pm__img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.lsw-pm__card:hover .lsw-pm__img img { transform:scale(1.05); }
.lsw-pm__cat { position:absolute; top:10px; left:10px; padding:4px 10px; background:rgba(255,255,255,.96); backdrop-filter:blur(8px); border-radius:999px; font-size:10.5px; font-weight:700; color:var(--ink); display:inline-flex; align-items:center; gap:5px; }
.lsw-pm__cat::before { content:""; width:5px; height:5px; border-radius:50%; background:var(--accent); }
.lsw-pm__body { padding:12px 8px 6px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.lsw-pm__title { font-size:13.5px; font-weight:700; margin:0 0 2px; color:var(--ink); line-height:1.2; }
.lsw-pm__loc { font-size:11.5px; color:var(--body); margin:0; }
.lsw-pm__corner { width:28px; height:28px; border-radius:50%; background:var(--accent-soft); color:var(--accent); display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; transition:transform .35s cubic-bezier(.2,.7,.2,1), background .3s ease, color .3s ease; }
.lsw-pm__card:hover .lsw-pm__corner { background:var(--accent); color:#fff; transform:rotate(-45deg); }
.lsw-pm__corner svg { width:12px; height:12px; }
@media (max-width: 1024px) {
    .lsw-pm__grid { grid-template-columns:repeat(2, 1fr); }
    .lsw-pm__card--wide { grid-column:span 2; }
    .lsw-pm { padding:72px 20px; }
}
@media (max-width: 720px) {
    .lsw-pm__head { gap:20px; margin-bottom:32px; }
    .lsw-pm { padding:56px 18px; }
    .lsw-pm__grid { gap:12px; }
}
@media (max-width: 560px) {
    .lsw-pm__grid { grid-template-columns:1fr; }
    .lsw-pm__card--wide { grid-column:span 1; }
    .lsw-pm__card--wide .lsw-pm__img { aspect-ratio:1/1; }
}
@media (prefers-reduced-motion: reduce) { .lsw-pm__card { opacity:1 !important; transform:none !important; } }
