/* Speul'nderwies — isolated public theme, noviceCMS 1.3 */
body:not(.admin-mode){background:var(--cream);color:var(--text-color)}
body:not(.admin-mode)>header{padding:17px max(3.5vw,20px);background:var(--cream);position:relative;z-index:2}
body:not(.admin-mode)>header .brand{font-family:'Fredoka',sans-serif;font-size:clamp(1.3rem,2.1vw,2rem);color:var(--primary)}
body:not(.admin-mode)>header nav{gap:clamp(10px,2vw,30px);font-size:.88rem}
body:not(.admin-mode)>main{min-height:45vh}
.sw-site{font-family:'DM Sans',sans-serif;overflow:hidden}.sw-site h1,.sw-site h2,.sw-site h3{font-family:'Fredoka',sans-serif;letter-spacing:-.035em}
.sw-site p{line-height:1.65}.sw-site h2{font-size:clamp(2rem,4vw,3.6rem);line-height:1.1;margin:0 0 16px;color:var(--primary)}
.sw-hero{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(24px,4vw,70px);align-items:center;padding:65px max(4vw,24px) 45px;min-height:560px;max-width:1500px;margin:auto;position:relative}
.sw-hero-copy{max-width:670px}.sw-eyebrow{font-size:.82rem;letter-spacing:.08em;font-weight:800;color:var(--accent)}
.sw-hero h1{font-size:clamp(3.2rem,5.8vw,6.1rem);line-height:1.01;margin:20px 0;color:var(--primary)}
.sw-hero p{font-size:1.1rem;max-width:510px;color:var(--text-color)}.sw-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:25px}
.sw-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--button-text);padding:14px 25px;border-radius:40px;text-decoration:none;font-weight:800;white-space:nowrap}
.sw-btn-soft{background:#e5eddf;color:var(--primary)}.sw-btn-yellow{background:#ffc847;color:#173e32}
.sw-hero-art{min-height:400px;position:relative;border-radius:36% 30% 15% 28%;background:linear-gradient(135deg,#ffcb48 0 38%,#89b793 38% 75%,#f3a56a 75%);display:flex;align-items:stretch;overflow:hidden}
.sw-hero-art img{width:100%;height:100%;min-height:400px;object-fit:cover;display:block;mix-blend-mode:normal}
.sw-art-fallback{width:100%;min-height:400px;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:8rem}.sw-art-fallback span{font:600 1.3rem Fredoka;color:#214d43}
.sw-stats{max-width:1350px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:20px 30px 65px;text-align:center}
.sw-stats>div{display:flex;flex-direction:column;align-items:center;font-size:2.7rem}.sw-stats strong{font:650 1.2rem Fredoka;color:var(--primary);margin-top:8px}.sw-stats span{font-size:.95rem}
.sw-categories {
    width: calc(100% - 48px);
    max-width: 1500px;
    margin: 35px auto 45px;
    box-sizing: border-box;
    padding: 65px clamp(24px, 4vw, 65px) 75px;
    background: var(--primary);
    color: #fff;
    border-radius: 45px;
}
.sw-section-head{max-width:1350px;margin:0 auto 25px;display:flex;align-items:end;justify-content:space-between;gap:20px}.sw-categories h2,.sw-categories p{color:#fff}.sw-section-head p{margin:0;max-width:580px}
.sw-category-grid{max-width:1350px;margin:auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px}.sw-category{border-radius:20px;overflow:hidden;background:var(--cream);color:var(--primary);box-shadow:0 6px 15px #0001}
.sw-category img,.sw-cat-placeholder{width:100%;aspect-ratio:1.1;object-fit:cover;display:grid;place-items:center;font-size:4rem;background:#e9e9d8}.sw-category:nth-child(2n) .sw-cat-placeholder{background:#f8d3b5}.sw-category:nth-child(3n) .sw-cat-placeholder{background:#d8e8dc}
.sw-category h3{font-size:1rem;padding:13px 12px 17px;margin:0;display:flex;justify-content:space-between;gap:6px}.sw-category h3 span{color:var(--accent)}
.sw-split{max-width:1400px;margin:auto;padding:85px max(4vw,24px);display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}
.sw-split-photo{min-height:330px;border-radius:30% 15% 25% 12%;background:#a5c9ac;overflow:hidden}.sw-split-photo img{display:block;width:100%;height:100%;min-height:330px;max-height:500px;object-fit:cover}.sw-photo-empty{padding:70px 30px;text-align:center;color:#204f3e}
.sw-split-copy p{font-size:1.1rem;max-width:530px;color:var(--text-color)}
.sw-features,.sw-testimonials{max-width:1400px;margin:auto;padding:45px max(4vw,24px)}.sw-features>p{max-width:640px}.sw-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}
.sw-feature-grid article{border-radius:24px;padding:30px;background:#fbe3d8;text-align:center}.sw-feature-grid article:nth-child(2){background:#e2eddf}.sw-feature-grid article:nth-child(3){background:#d9edf5}.sw-feature-grid article>span{font-size:2.3rem}.sw-feature-grid h3{font-size:1.45rem;margin:12px 0}.sw-feature-grid p{font-size:.95rem}
.sw-quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.sw-quotes blockquote{margin:0;padding:34px;background:#fff0c9;border-radius:25px;text-align:center;font-size:1.1rem}.sw-quotes blockquote:nth-child(2n){background:#e4efdf}.sw-quotes cite{display:block;margin-top:20px;font-size:.85rem;font-style:normal;font-weight:700}
.sw-cta{max-width:1350px;margin:45px auto 60px;padding:40px;display:flex;justify-content:space-between;align-items:center;gap:35px;border-radius:32px;background:#e8ebd4}.sw-cta img{max-width:38%;max-height:240px;object-fit:cover;border-radius:30px}
.sw-prose{max-width:1050px;margin:auto;padding:75px 25px}.sw-prose p{font-size:1.1rem}
body:not(.admin-mode)>footer{background:var(--footer-color);padding:55px max(4vw,24px);color:#fff}
@media(max-width:900px){.sw-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sw-hero{grid-template-columns:1fr 1fr}.sw-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.sw-hero{grid-template-columns:1fr;padding-top:38px;min-height:unset}.sw-hero h1{font-size:clamp(2.8rem,12vw,4.3rem)}.sw-hero-art,.sw-hero-art img,.sw-art-fallback{min-height:300px}.sw-section-head{display:block}.sw-section-head .sw-btn{margin-top:20px}.sw-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sw-split{grid-template-columns:1fr;padding-top:50px;padding-bottom:50px}.sw-feature-grid,.sw-quotes{grid-template-columns:1fr}.sw-cta{margin:25px 15px;padding:25px;flex-direction:column;align-items:start}.sw-cta img{max-width:100%}.sw-categories{border-radius:35px}.sw-stats{padding-bottom:35px}}

/* Speul'nderwies — Hero verfijning 1.3.1 */

.sw-home .sw-hero {
    max-width: 1500px;
    margin: 0 auto;
    padding: 55px clamp(24px, 4vw, 65px) 50px;
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(30px, 5vw, 80px);
    align-items: center;
    min-height: 550px;
}

.sw-home .sw-hero-copy {
    position: relative;
    z-index: 1;
}

.sw-home .sw-hero h1 {
    font-family: 'Fredoka', sans-serif;
    font-size: clamp(3.5rem, 5.8vw, 6.2rem);
    line-height: 1.02;
    letter-spacing: -0.045em;
    color: var(--primary);
    margin: 20px 0;
}

.sw-home .sw-hero-copy > p {
    max-width: 490px;
    font-size: 1.12rem;
    line-height: 1.7;
}

.sw-home .sw-hero-art {
    position: relative;
    isolation: isolate;
    min-height: 460px;
    height: 500px;
    overflow: hidden;
    border-radius: 35% 24% 27% 18% / 27% 35% 18% 30%;
    background:
        radial-gradient(
            circle at 25% 20%,
            #ffc847 0 24%,
            transparent 25%
        ),
        linear-gradient(
            135deg,
            #a9c8a2 0%,
            #5d9e7e 65%,
            #f8b755 100%
        );
}

.sw-home .sw-hero-art img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    object-position: center 35%;
}

.sw-home .sw-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: 28px;
}

.sw-home .sw-btn {
    transition: transform .2s ease, box-shadow .2s ease;
}

.sw-home .sw-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
}

@media (max-width: 850px) {
    .sw-home .sw-hero {
        grid-template-columns: 1fr;
        min-height: 0;
        gap: 30px;
        padding-top: 35px;
    }

    .sw-home .sw-hero-art {
        height: 380px;
        min-height: 380px;
    }
}

@media (max-width: 480px) {
    .sw-home .sw-hero h1 {
        font-size: clamp(2.8rem, 11vw, 4rem);
    }

    .sw-home .sw-hero-art {
        height: 300px;
        min-height: 300px;
    }
}
/* Speul'nderwies — Header uitlijnen met hero */

body:not(.admin-mode) > header {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
    padding: 20px clamp(24px, 4vw, 65px);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

body:not(.admin-mode) > header .brand {
    flex-shrink: 0;
}

@media (max-width: 850px) {
    body:not(.admin-mode) > header {
        padding: 18px 24px;
        flex-wrap: wrap;
    }
}
/* Speul'nderwies — Footer uitlijnen met website */

body:not(.admin-mode) > footer {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    padding: 45px max(
        24px,
        calc((100vw - 1500px) / 2 + 65px)
    );
    background: var(--footer-color);
    color: #fff;
}

@media (max-width: 850px) {
    body:not(.admin-mode) > footer {
        padding: 35px 24px;
    }
}

/* Speul'nderwies — Waarom een speelotheek? */

.sw-home .sw-split {
    max-width: 1500px;
    margin: 45px auto 65px;
    padding: 35px clamp(24px, 4vw, 65px);
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(35px, 6vw, 100px);
    align-items: center;
}

.sw-home .sw-split-copy {
    order: 1;
}

.sw-home .sw-split-photo {
    order: 2;
    width: 100%;
    min-height: 400px;
    overflow: hidden;
    border-radius: 30% 15% 25% 12%;
    background: #a5c9ac;
}

.sw-home .sw-split-photo img {
    width: 100%;
    height: 440px;
    min-height: 0;
    max-height: none;
    display: block;
    object-fit: cover;
}

.sw-home .sw-split-copy h2 {
    font-family: 'Fredoka', sans-serif;
    font-size: clamp(2.5rem, 4vw, 4.3rem);
    line-height: 1.08;
    color: var(--primary);
    margin-bottom: 20px;
}

.sw-home .sw-split-copy p {
    max-width: 520px;
    font-size: 1.1rem;
    line-height: 1.8;
}

@media (max-width: 850px) {
    .sw-home .sw-split {
        grid-template-columns: 1fr;
        gap: 25px;
        margin: 20px auto 40px;
    }

    .sw-home .sw-split-photo {
        min-height: 280px;
    }

    .sw-home .sw-split-photo img {
        height: 330px;
    }
}