/*
Theme Name: Samen Zoeterwoude Feest
Theme URI: https://annoying-samen-zoeterwoude-feest.base44.app/
Author: OpenAI
Description: Een bewerkbaar WordPress-thema geïnspireerd op de aangeleverde screenshots van Samen op z'n Zoeterwouds.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: samen-zoeterwoude-feest
*/
:root{--green:#193d29;--green2:#244a34;--blue:#16498f;--ink:#173423;--muted:#74877b;--line:#e4e7e4;--cream:#f8faf7;--white:#fff;--radius:18px;--max:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Inter,"Aptos",Arial,sans-serif;font-size:16px;line-height:1.65;background:#fff}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto;display:block}.site-header{position:sticky;top:0;z-index:50;background:transparent;padding:8px 1.7%;border-bottom:0}.nav-shell{width:100%;max-width:none;margin:0 auto;padding:10px 12px 10px 30px;border:1px solid rgba(255,255,255,.75);border-radius:999px;display:flex;align-items:center;gap:clamp(12px,2vw,32px);min-height:78px;background:rgba(248,249,250,.94);box-shadow:0 4px 18px rgba(12,25,40,.08)}.brand{display:flex;flex-direction:column;gap:2px;flex-shrink:0;background:var(--green);color:#fff;padding:6px 10px;font-weight:900;font-size:12px;line-height:1.2;transform:rotate(-5deg);border-radius:3px}.brand:hover{color:white;text-decoration:none}.nav-menu{display:flex;align-items:center;justify-content:space-evenly;gap:clamp(0px,.5vw,8px);flex:1;min-width:0}.nav-menu a{font-size:clamp(12px,1.12vw,18px);font-weight:600;color:#65786b;padding:9px clamp(5px,.7vw,12px);border-radius:999px;white-space:nowrap}.nav-menu a:hover,.nav-menu .current-menu-item>a{background:var(--green);color:white;text-decoration:none}.button,.wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;background:var(--blue);color:white!important;border-radius:999px;padding:15px 28px;font-weight:750;font-size:clamp(13px,1.1vw,18px);border:0;cursor:pointer}.button:hover,.wp-block-button__link:hover{background:#103d7b;text-decoration:none}.menu-toggle{display:none}.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--green);color:#fff;min-height:400px;display:flex;align-items:center}.hero:before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--hero-image,linear-gradient(120deg,#1a3d29,#294c35));background-size:cover;background-position:center}.hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(20,55,35,.93),rgba(20,55,35,.68)),linear-gradient(0deg,rgba(20,55,35,.55),transparent)}.hero-inner{width:min(var(--max),calc(100% - 48px));margin:0 auto;padding:76px 0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:850;margin:0 0 12px}.hero h1{font-size:clamp(42px,6vw,76px);line-height:.99;letter-spacing:-.045em;max-width:900px;margin:0 0 22px;font-weight:900}.hero p{font-size:18px;max-width:670px;color:rgba(255,255,255,.82);margin:0 0 22px}.wrap{width:min(var(--max),calc(100% - 48px));margin:0 auto}.section{padding:76px 0}.section.green{background:var(--green);color:#fff}.section.soft{background:var(--cream)}.intro{text-align:center;max-width:720px;margin:0 auto;padding:60px 24px 70px}.intro .eyebrow{color:var(--blue)}.intro p{font-size:20px;font-weight:750;line-height:1.35}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.section-heading h2,.section h2{font-size:clamp(30px,4vw,44px);line-height:1.08;letter-spacing:-.035em;margin:0 0 18px;font-weight:850}.section-heading p{margin:0;color:var(--muted)}.green .section-heading p{color:#c2d0c6}.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;color:var(--ink);box-shadow:0 1px 1px rgba(0,0,0,.02)}.green .card{background:transparent;border-color:rgba(255,255,255,.13);color:#fff}.card-image{height:190px;background:linear-gradient(135deg,#dfe7df,#aabcae);background-size:cover;background-position:center}.card-body{padding:20px}.card h3{font-size:20px;line-height:1.2;margin:0 0 10px}.card p{color:var(--muted);margin:0 0 14px;font-size:14px}.green .card p{color:#b8c9bd}.card .text-link{font-weight:800;font-size:14px}.news-meta{font-size:12px;color:var(--blue);font-weight:800;margin-bottom:8px}.sponsor-band{padding:70px 0;background:var(--green);color:white}.sponsor-band p{max-width:650px;color:#c8d5cc}.sponsor-placeholder{margin-top:24px;border:1px solid rgba(255,255,255,.2);border-radius:12px;text-align:center;padding:18px;color:#b7c7bc}.page-copy{max-width:760px;margin:0 auto;padding:70px 24px;color:#667b6d;font-size:18px}.page-copy h2,.page-copy h3{color:var(--ink)}.page-copy h2{font-size:32px;line-height:1.15}.price-card{padding:28px;border:1px solid var(--line);border-radius:18px;display:grid;grid-template-columns:1fr 1.4fr auto;gap:25px;align-items:center;margin:14px 0}.price-card h2{margin:0;font-size:28px}.price{font-size:32px;font-weight:900;white-space:nowrap}.price-card ul{margin:0;color:var(--muted);padding-left:20px}.form-panel{border:2px solid var(--green);border-radius:18px;padding:28px}.form-panel input,.form-panel select,.form-panel textarea{width:100%;border:1px solid #d8ded9;border-radius:5px;padding:13px 14px;margin:0 0 10px;font:inherit}.photo-grid .card-image{height:260px}.footer{padding:36px 0;background:#fff}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.footer .brand{font-size:16px;align-self:flex-start}.footer-links{display:flex;flex-wrap:wrap;gap:16px}.footer-links a{font-size:13px;color:#65786b;font-weight:700}.copyright{font-size:12px;color:#96a39a}.content-area{padding:48px 0}.content-area .entry-content{max-width:820px;margin:auto;padding:0 24px}.content-area .entry-title{max-width:820px;margin:0 auto 24px;padding:0 24px;font-size:44px;line-height:1.1}.wp-block-image img{border-radius:14px}.notice{padding:16px 20px;background:var(--cream);border-radius:12px}.screen-reader-text{position:absolute;left:-9999px}
@media(max-width:1000px){.site-header{padding:8px 12px}.nav-shell{margin:0;gap:8px;padding-left:18px;min-height:66px}.nav-menu{gap:0}.nav-menu a{padding:8px 5px;font-size:11px}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.price-card{grid-template-columns:1fr 1.5fr auto}}
@media(max-width:720px){.nav-shell{border-radius:16px;flex-wrap:wrap;justify-content:space-between;padding:10px 14px}.menu-toggle{display:inline-flex;background:var(--green);color:#fff;border:0;border-radius:999px;padding:9px 14px;font-weight:800}.nav-menu{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;padding:8px 0}.nav-menu.is-open{display:flex}.nav-menu a{font-size:14px}.nav-shell>.button{padding:10px 14px;font-size:12px}.hero{min-height:370px}.hero-inner{padding:58px 0}.hero p{font-size:16px}.wrap{width:calc(100% - 32px)}.section{padding:52px 0}.intro{padding:48px 16px}.intro p{font-size:18px}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.card-image{height:210px}.section-heading{align-items:flex-start;flex-direction:column}.price-card{grid-template-columns:1fr;gap:12px}.price{font-size:28px}.footer-inner{align-items:flex-start;flex-direction:column}.page-copy{padding:48px 20px;font-size:16px}.content-area .entry-title{font-size:34px}}

/* Programmapagina, afgestemd op de aangeleverde referentiebeelden */
.program-page{background:#fff}.program-hero{background:#1b3d29;color:#fff;min-height:495px;display:flex;align-items:center}.program-hero-inner{width:min(1290px,calc(100% - 48px));margin:0 auto;padding:88px 0 94px}.program-eyebrow{font-size:14px;letter-spacing:.13em;text-transform:uppercase;font-weight:850;margin:0 0 12px;color:#fff}.program-hero h1{font-size:clamp(54px,6.2vw,78px);line-height:.94;letter-spacing:-.045em;font-weight:900;margin:0 0 26px;color:#fff}.program-hero-inner>p:last-child{font-size:18px;line-height:1.55;max-width:690px;color:#c7d2ca;margin:0}.program-days{padding:0 0 70px}.program-day{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;align-items:center;padding-top:94px;padding-bottom:94px;border-bottom:1px solid #e8ebe8}.program-photo{width:100%;min-height:315px;aspect-ratio:1.78;border-radius:14px;background-size:cover;background-position:center;background-color:#dce4dd}.program-day-content{min-width:0}.program-day-title{display:flex;align-items:baseline;gap:18px;margin-bottom:20px}.program-day-title h2{font-size:clamp(42px,4.4vw,62px);line-height:1;letter-spacing:-.045em;color:#17488e;font-weight:900;margin:0}.program-day-title span{font-size:13px;letter-spacing:.04em;text-transform:uppercase;font-weight:800;color:#a5b4aa;white-space:nowrap}.program-list{width:100%}.program-item{border-bottom:1px solid #eceeec}.program-item:first-child{border-top:0}.program-item summary{display:grid;grid-template-columns:110px minmax(0,1fr) 18px;gap:16px;align-items:center;list-style:none;cursor:pointer;padding:11px 0;color:#526a5a;font-size:16px;font-weight:700;line-height:1.35}.program-item summary::-webkit-details-marker{display:none}.program-item summary:after{content:'⌄';color:#b7c4bb;font-size:19px;font-weight:400;text-align:center;transition:transform .15s}.program-item[open] summary:after{transform:rotate(180deg)}.program-item time{color:#16498f;font-weight:850;font-variant-numeric:tabular-nums}.program-item p{margin:0;padding:0 30px 14px 126px;color:#718176;font-size:14px}.program-day-friday .program-photo{align-self:start}.program-note{padding-top:48px;display:flex;align-items:center;justify-content:space-between;gap:24px}.program-note p{color:#6c7e71;margin:0}.program-note .button{white-space:nowrap}
@media(max-width:760px){.program-hero{min-height:390px}.program-hero-inner{padding:62px 0}.program-hero h1{font-size:54px}.program-hero-inner>p:last-child{font-size:16px}.program-day{grid-template-columns:1fr;gap:28px;padding-top:48px;padding-bottom:48px}.program-day-friday .program-day-content{order:2}.program-day-friday .program-photo{order:1}.program-photo{min-height:220px}.program-day-title h2{font-size:44px}.program-item summary{grid-template-columns:76px minmax(0,1fr) 18px;gap:10px;font-size:15px}.program-item p{padding-left:86px}.program-note{align-items:flex-start;flex-direction:column}}

/* Tickets-pagina afgestemd op de aangeleverde screenshots */
.tickets-page{background:#fff}
.tickets-hero{position:relative;isolation:isolate;overflow:hidden;min-height:435px;display:flex;align-items:center;color:#fff;background:#193d29}
.tickets-hero:before{content:"";position:absolute;inset:0;z-index:-2;background-image:url('https://images.unsplash.com/photo-1501386761578-eac5c94b800a?auto=format&fit=crop&w=2200&q=85');background-size:cover;background-position:center 44%}
.tickets-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(23,59,39,.96) 0%,rgba(23,59,39,.82) 48%,rgba(23,59,39,.55) 100%),linear-gradient(0deg,rgba(23,59,39,.48),rgba(23,59,39,.2))}
.tickets-hero-inner{width:min(1258px,calc(100% - 48px));margin:0 auto;padding:82px 0 90px}
.tickets-eyebrow{font-size:13px;letter-spacing:.13em;text-transform:uppercase;font-weight:850;margin:0 0 12px;color:inherit}
.tickets-hero h1{font-size:clamp(46px,5.2vw,70px);line-height:.98;letter-spacing:-.045em;font-weight:900;max-width:900px;margin:0 0 24px;color:#fff}
.tickets-hero-inner>p:last-child{font-size:17px;line-height:1.55;max-width:690px;color:#cbd6ce;margin:0}
.ticket-options{width:min(872px,calc(100% - 40px));margin:0 auto;padding:86px 0 82px;display:grid;gap:14px}
.ticket-card{display:grid;grid-template-columns:185px minmax(0,1fr) 115px;gap:22px;align-items:center;border:1px solid #e1e5e2;border-radius:15px;padding:22px 28px;min-height:130px;background:#fff}
.ticket-name span{display:block;text-transform:uppercase;color:#16498f;font-size:11px;line-height:1.3;letter-spacing:.035em;font-weight:850;margin-bottom:4px}
.ticket-name h2{font-size:28px;line-height:1.08;letter-spacing:-.035em;margin:0;color:#1b3d29;font-weight:900}
.ticket-card ul{list-style:none;padding:0;margin:0;color:#718276;font-size:13px;line-height:1.7}
.ticket-card li{position:relative;padding-left:20px}
.ticket-card li:before{content:'✓';position:absolute;left:0;top:0;color:#16498f;font-weight:800}
.ticket-buy{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.ticket-buy strong{font-size:34px;line-height:1.15;letter-spacing:-.04em;color:#173423;font-weight:900;white-space:nowrap}
.ticket-buy a{font-size:12px;font-weight:850;color:#16498f;white-space:nowrap}
.tickets-free{background:#16498f;color:#fff;text-align:center;padding:62px 24px 66px}
.tickets-free-inner{max-width:800px;margin:0 auto}
.tickets-free h2{font-size:clamp(30px,3.5vw,48px);line-height:1.03;letter-spacing:-.04em;color:#fff;margin:0 0 18px;font-weight:900}
.tickets-free p{font-size:18px;color:#d4e0f0;margin:0 0 30px}
.button.button-green{background:#193d29;color:#fff!important}
.button.button-green:hover{background:#102e1e}
.ticket-sponsor{background:#193d29;color:#fff;padding:76px 24px 64px}
.ticket-sponsor-inner{max-width:1240px;margin:0 auto}
.ticket-sponsor .tickets-eyebrow{margin-bottom:10px}
.ticket-sponsor h2{font-size:clamp(42px,5vw,64px);line-height:.98;letter-spacing:-.045em;color:#fff;margin:0 0 24px;font-weight:900}
.ticket-sponsor-inner>p:not(.tickets-eyebrow){font-size:18px;line-height:1.55;color:#c8d5cc;max-width:680px;margin:0 0 40px}
.ticket-sponsor h3{font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:#b8c8bd;margin:32px 0 10px}
.ticket-sponsor-placeholder{border:1px solid rgba(255,255,255,.18);border-radius:16px;text-align:center;padding:18px;color:#afc0b4;background:rgba(255,255,255,.04);font-size:14px;font-weight:650}
@media(max-width:760px){
 .tickets-hero{min-height:390px}.tickets-hero-inner{padding:60px 0}.tickets-hero h1{font-size:clamp(42px,11vw,56px)}.tickets-hero-inner>p:last-child{font-size:16px}
 .ticket-options{padding:44px 0;gap:12px}.ticket-card{grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;padding:20px}.ticket-name{grid-column:1/-1}.ticket-card ul{grid-column:1/-1;grid-row:2}.ticket-buy{grid-column:2;grid-row:1;align-self:start}.ticket-buy strong{font-size:28px}.ticket-name h2{font-size:26px}
 .tickets-free{padding:48px 20px}.tickets-free p{font-size:16px}.ticket-sponsor{padding:54px 20px}
}


/* Word Vriend page */
.wv-page { color: #1c3d2a; background: #fff; }
.wv-wrap { width: min(1200px, calc(100% - 48px)); margin-inline: auto; }
.wv-hero { background: #1b3b29; color: #fff; padding: 96px 0 94px; }
.wv-eyebrow { margin: 0 0 12px; font-size: 13px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.wv-hero h1 { max-width: 850px; margin: 0 0 20px; font-size: clamp(42px, 5vw, 66px); line-height: .98; letter-spacing: -.035em; font-weight: 800; color: #fff; }
.wv-intro { max-width: 760px; margin: 0; color: #c7d1ca; font-size: 17px; line-height: 1.55; }
.wv-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 54px; padding-top: 82px; padding-bottom: 116px; align-items: start; }
.wv-volunteer-photo { display: block; width: 100%; height: 250px; object-fit: cover; border-radius: 12px; margin-bottom: 30px; }
.wv-benefits h2 { font-size: clamp(24px, 2.1vw, 29px); line-height: 1.1; letter-spacing: -.02em; margin: 0 0 22px; color: #1b3b29; }
.wv-check-list { list-style: none; padding: 0; margin: 0 0 28px; }
.wv-check-list li { position: relative; padding: 0 0 12px 32px; color: #63796a; line-height: 1.5; }
.wv-check-list li:before { content: "✓"; position: absolute; left: 0; top: 1px; width: 21px; height: 21px; border-radius: 50%; background: #17488e; color: #fff; display: grid; place-items: center; font-size: 13px; font-weight: 700; }
.wv-note { padding: 28px 30px; border-radius: 18px; background: #1b3b29; color: #fff; }
.wv-note h3 { color: #fff; font-size: 22px; margin: 0 0 12px; }
.wv-note p { margin: 0; color: #c7d1ca; line-height: 1.65; }
.wv-form { border: 2px solid #1b3b29; border-radius: 15px; padding: 28px; }
.wv-form h2 { margin: 0 0 16px; color: #1b3b29; font-size: 19px; }
.wv-form input { display: block; width: 100%; min-height: 45px; border: 1px solid #d7d7d7; border-radius: 4px; padding: 11px 14px; margin: 0 0 10px; background: #fff; color: #24382c; font: inherit; box-sizing: border-box; }
.wv-form input::placeholder { color: #9aa5b5; }
.wv-form input[type="date"] { color: #77bf94; }
.wv-form button { width: 100%; border: 0; border-radius: 30px; padding: 15px 20px; background: #17488e; color: #fff; font: inherit; font-weight: 750; cursor: pointer; }
.wv-form button:hover { background: #123d7b; }
.wv-form-footnote { margin: 10px 0 0; text-align: center; font-size: 11px; color: #849287; }
.wv-success,.wv-error { border-radius: 8px; padding: 12px 14px; margin: 0 0 14px; font-size: 14px; }
.wv-success { background: #e8f5eb; color: #1b6535; }
.wv-error { background: #fff0ee; color: #9d2d22; }
.wv-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.wv-sponsor-cta { background: #1b3b29; color: #fff; padding: 100px 0 105px; }
.wv-sponsor-cta h2 { margin: 0 0 22px; max-width: 700px; font-size: clamp(42px, 5vw, 66px); line-height: .98; letter-spacing: -.035em; color: #fff; }
.wv-sponsor-cta .wv-wrap > p:not(.wv-eyebrow) { max-width: 800px; color: #c7d1ca; font-size: 18px; line-height: 1.6; }
.wv-sponsor-button { display: inline-block; margin-top: 22px; padding: 17px 32px; border-radius: 32px; background: #17488e; color: #fff; text-decoration: none; font-weight: 750; }
@media (max-width: 760px) {
 .wv-wrap { width: min(100% - 32px, 560px); }
 .wv-hero { padding: 72px 0 64px; }
 .wv-desktop-break { display: none; }
 .wv-main { grid-template-columns: 1fr; gap: 32px; padding-top: 40px; padding-bottom: 70px; }
 .wv-volunteer-photo { height: 220px; }
 .wv-form { padding: 22px; }
 .wv-sponsor-cta { padding: 70px 0; }
}



/* Sponsors page */
.sp-page { color: #1b3b29; background: #fff; }
.sp-wrap { width: min(1200px, calc(100% - 48px)); margin-inline: auto; }
.sp-hero { padding: 92px 0 100px; color: #fff; background: linear-gradient(90deg, rgba(24,57,39,.96) 0%, rgba(24,57,39,.86) 55%, rgba(24,57,39,.72) 100%), url('https://images.unsplash.com/photo-1506157786151-b8491531f063?auto=format&fit=crop&w=2000&q=85') center 48%/cover no-repeat; }
.sp-eyebrow,.sp-section-eyebrow { margin: 0 0 12px; font-size: 13px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.sp-hero h1 { margin: 0 0 22px; max-width: 700px; color: #fff; font-size: clamp(48px, 5.5vw, 72px); line-height: .98; letter-spacing: -.035em; }
.sp-hero p:not(.sp-eyebrow) { max-width: 650px; margin: 0; color: #c7d1ca; font-size: 17px; line-height: 1.55; }
.sp-packages { padding-top: 88px; padding-bottom: 76px; }
.sp-section-eyebrow { color: #17488e; margin-bottom: 8px; }
.sp-packages > h2,.sp-sponsors > h2 { color: #1b3b29; font-size: clamp(32px, 3.2vw, 44px); line-height: 1.08; margin: 0 0 34px; letter-spacing: -.025em; }
.sp-package-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.sp-package { position: relative; display: flex; flex-direction: column; min-height: 360px; border: 1px solid #dedede; border-radius: 16px; padding: 26px 26px 24px; background: #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.025); }
.sp-option { margin: 0 0 12px; color: #a3b3a8; font-size: 11px; font-weight: 800; letter-spacing: .06em; }
.sp-package h3 { margin: 0 0 12px; color: #1b3b29; font-size: 23px; line-height: 1.12; letter-spacing: -.02em; }
.sp-package-copy { margin: 0 0 18px; color: #829386; font-size: 14px; line-height: 1.55; }
.sp-package ul { list-style: none; padding: 0; margin: 0 0 22px; }
.sp-package li { position: relative; padding: 0 0 8px 22px; color: #263d2e; font-size: 13px; line-height: 1.4; }
.sp-package li:before { content: "✓"; position: absolute; left: 0; top: 0; color: #17488e; font-weight: 800; }
.sp-price { margin: auto 0 0; color: #1b3b29; font-size: 36px; line-height: 1; font-weight: 850; letter-spacing: -.03em; }
.sp-package-featured { background: #1b3b29; border: 2px solid #17488e; padding: 25px; }
.sp-package-featured .sp-option,.sp-package-featured h3,.sp-package-featured .sp-price { color: #fff; }
.sp-package-featured .sp-package-copy { color: #b9c8bd; }
.sp-package-featured li { color: #eef4ef; }
.sp-package-featured li:before { color: #eef4ef; }
.sp-popular { position: absolute; top: 24px; right: 24px; border-radius: 18px; padding: 5px 12px; background: #17488e; color: #fff; font-size: 11px; font-weight: 750; }
.sp-sponsors { padding-top: 26px; padding-bottom: 78px; }
.sp-sponsors > h2 { margin-bottom: 12px; font-size: clamp(30px, 3vw, 38px); }
.sp-sponsors-intro { max-width: 650px; margin: 0 0 38px; color: #829386; line-height: 1.55; }
.sp-sponsor-wall { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; }
.sp-logo-placeholder { min-height: 110px; border: 1px solid #e8e8e8; border-radius: 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; color: #a7a7a7; }
.sp-logo-placeholder .dashicons { font-size: 26px; width: 26px; height: 26px; }
.sp-logo-placeholder i,.sp-logo-placeholder b { display: block; height: 9px; border-radius: 8px; background: #d8d8d8; }
.sp-logo-placeholder i { width: 40px; margin-left: -12px; }
.sp-logo-placeholder b { width: 15px; margin-left: 48px; margin-top: -18px; }
.sp-inline-link { display: inline-block; margin-top: 24px; color: #91a397; text-decoration: none; font-size: 14px; }
.sp-inline-link:hover { color: #17488e; }
.sp-contact { padding: 96px 0; background: #1b3b29; }
.sp-contact-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px; align-items: center; }
.sp-contact-copy h2 { margin: 0 0 18px; color: #fff; font-size: clamp(42px, 4vw, 54px); line-height: .98; letter-spacing: -.035em; }
.sp-contact-copy p { max-width: 560px; margin: 0; color: #bdc9c1; font-size: 17px; line-height: 1.6; }
.sp-form { padding: 32px; border-radius: 15px; background: #fff; color: #1b3b29; }
.sp-form h3 { margin: 0 0 18px; font-size: 21px; color: #1b3b29; }
.sp-form input,.sp-form select { display: block; width: 100%; min-height: 48px; margin: 0 0 11px; padding: 12px 15px; border: 1px solid #d7d7d7; border-radius: 4px; background: #fff; color: #253a2d; font: inherit; box-sizing: border-box; }
.sp-form input::placeholder { color: #9aa5b5; }
.sp-form select { color: #7e8b80; font-size: 14px; }
.sp-form button { width: 100%; margin-top: 5px; border: 0; border-radius: 30px; padding: 16px 20px; background: #17488e; color: #fff; font: inherit; font-weight: 750; cursor: pointer; }
.sp-form button:hover { background: #123d7b; }
.sp-success,.sp-error { border-radius: 8px; padding: 12px 14px; margin: 0 0 14px; font-size: 14px; }
.sp-success { background: #e8f5eb; color: #1b6535; }
.sp-error { background: #fff0ee; color: #9d2d22; }
.sp-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 900px) {
 .sp-package-grid { grid-template-columns: 1fr; }
 .sp-package { min-height: auto; }
 .sp-sponsor-wall { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .sp-contact-grid { grid-template-columns: 1fr; gap: 34px; }
}
@media (max-width: 600px) {
 .sp-wrap { width: min(100% - 32px, 560px); }
 .sp-hero { padding: 70px 0; }
 .sp-desktop-break { display: none; }
 .sp-packages { padding-top: 54px; padding-bottom: 45px; }
 .sp-package { padding: 24px; }
 .sp-package-featured { padding: 23px; }
 .sp-sponsor-wall { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .sp-contact { padding: 65px 0; }
 .sp-form { padding: 22px; }
}



/* Vrijwilligers page */
.vl-page { background: #fff; color: #1b3b29; }
.vl-wrap { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }
.vl-hero { padding: 92px 0 100px; color: #fff; background: linear-gradient(90deg, rgba(24,57,39,.95), rgba(24,57,39,.72)), url('https://images.unsplash.com/photo-1528605248644-14dd04022da1?auto=format&fit=crop&w=2000&q=85') center 45%/cover no-repeat; }
.vl-eyebrow { margin: 0 0 12px; color: inherit; font-size: 13px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.vl-hero h1 { margin: 0 0 22px; color: #fff; font-size: clamp(48px, 5.2vw, 70px); line-height: .98; letter-spacing: -.035em; }
.vl-hero p:not(.vl-eyebrow) { max-width: 650px; margin: 0; color: #c7d1ca; font-size: 17px; line-height: 1.55; }
.vl-intro { padding-top: 68px; padding-bottom: 64px; text-align: center; }
.vl-intro p { max-width: 660px; margin: 0 auto; color: #1b3b29; font-size: clamp(22px, 2.3vw, 28px); line-height: 1.18; font-weight: 800; letter-spacing: -.025em; }
.vl-roles { padding-bottom: 86px; }
.vl-roles h2 { margin: 0 0 26px; color: #1b3b29; font-size: clamp(34px, 3.3vw, 44px); line-height: 1.1; letter-spacing: -.03em; }
.vl-role-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.vl-role { min-height: 190px; padding: 22px; border: 1px solid #e0e0e0; border-radius: 16px; box-shadow: 0 0 0 1px rgba(0,0,0,.02); }
.vl-role-icon { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 16px; border-radius: 50%; background: #17488e; color: #fff; font-size: 20px; }
.vl-role h3 { margin: 0 0 10px; color: #1b3b29; font-size: 17px; line-height: 1.2; }
.vl-role p { margin: 0; color: #829386; font-size: 14px; line-height: 1.55; }
.vl-signup { padding: 84px 0 125px; background: #1b3b29; color: #fff; }
.vl-signup-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 56px; align-items: start; }
.vl-signup-copy img { display: block; width: 100%; height: 285px; object-fit: cover; border-radius: 12px; margin-bottom: 32px; }
.vl-signup-copy h2 { margin: 0 0 16px; color: #fff; font-size: clamp(34px, 3.5vw, 44px); line-height: 1.05; letter-spacing: -.03em; }
.vl-signup-copy p { margin: 0; color: #bdc9c1; font-size: 17px; line-height: 1.6; }
.vl-form { padding: 32px; border: 1px solid #17488e; border-radius: 16px; background: #1b3b29; }
.vl-form h3 { margin: 0 0 18px; color: #fff; font-size: 20px; }
.vl-form > input { display: block; width: 100%; min-height: 50px; box-sizing: border-box; padding: 12px 16px; margin-bottom: 12px; border: 1px solid rgba(255,255,255,.18); border-radius: 4px; background: rgba(255,255,255,.055); color: #fff; font: inherit; }
.vl-form > input::placeholder { color: #9daaa1; }
.vl-preferences { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; border: 0; padding: 0; margin: 10px 0 16px; }
.vl-preferences legend { padding: 0; margin-bottom: 9px; color: #c7d1ca; font-size: 14px; }
.vl-preference { position: relative; cursor: pointer; }
.vl-preference input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.vl-preference span { display: block; border: 1px solid rgba(255,255,255,.2); border-radius: 28px; padding: 11px 12px; color: #fff; text-align: center; font-size: 14px; font-weight: 650; }
.vl-preference.is-selected span,.vl-preference input:checked + span { background: #17488e; border-color: #17488e; }
.vl-preference input:focus-visible + span { outline: 2px solid #fff; outline-offset: 3px; }
.vl-form button { display: block; width: 100%; border: 0; border-radius: 32px; padding: 17px 18px; background: #17488e; color: #fff; font: inherit; font-weight: 750; cursor: pointer; }
.vl-form button:hover { background: #123d7b; }
.vl-success,.vl-error { border-radius: 8px; padding: 12px 14px; margin: 0 0 14px; font-size: 14px; }
.vl-success { background: #e8f5eb; color: #1b6535; }
.vl-error { background: #fff0ee; color: #9d2d22; }
.vl-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.vl-sponsor-cta { padding: 76px 0 86px; background: #1b3b29; color: #fff; }
.vl-sponsor-cta h2 { margin: 0 0 22px; color: #fff; font-size: clamp(42px, 4.2vw, 58px); line-height: .98; letter-spacing: -.035em; }
.vl-sponsor-cta p:not(.vl-eyebrow) { max-width: 700px; color: #bdc9c1; font-size: 17px; line-height: 1.6; }
.vl-sponsor-cta a { display: inline-block; margin-top: 18px; padding: 16px 30px; border-radius: 32px; background: #17488e; color: #fff; text-decoration: none; font-weight: 750; }
@media (max-width: 900px) {
 .vl-role-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .vl-signup-grid { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 600px) {
 .vl-wrap { width: min(100% - 32px, 560px); }
 .vl-hero { padding: 68px 0 72px; }
 .vl-intro { padding-top: 48px; padding-bottom: 48px; }
 .vl-roles { padding-bottom: 54px; }
 .vl-role-grid { grid-template-columns: 1fr; }
 .vl-role { min-height: 0; }
 .vl-signup { padding: 52px 0 76px; }
 .vl-signup-copy img { height: 220px; }
 .vl-form { padding: 22px; }
}



/* Geschiedenis page */
.gs-page { background: #fff; color: #1b3b29; }
.gs-wrap { width: min(1240px, calc(100% - 48px)); margin-inline: auto; }
.gs-hero { min-height: 405px; display: flex; align-items: center; box-sizing: border-box; padding: 88px 0; color: #fff; background: linear-gradient(90deg, rgba(24,57,39,.91), rgba(24,57,39,.78)), url('https://images.unsplash.com/photo-1511632765486-a01980e01a18?auto=format&fit=crop&w=2200&q=85') center 45%/cover no-repeat; }
.gs-eyebrow { margin: 0 0 16px; color: #fff; font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gs-hero h1 { max-width: 650px; margin: 0; color: #fff; font-size: clamp(50px, 5.4vw, 76px); line-height: .98; letter-spacing: -.04em; }
.gs-story { max-width: 720px; padding-top: 96px; padding-bottom: 110px; margin-inline: auto; }
.gs-story p { margin: 0 0 20px; color: #687e6e; font-size: 19px; line-height: 1.52; }
.gs-story .gs-quote { margin-top: 20px; margin-bottom: 0; color: #1b3b29; font-size: 24px; line-height: 1.35; font-weight: 800; letter-spacing: -.02em; }
@media (max-width: 600px) {
 .gs-wrap { width: min(100% - 32px, 560px); }
 .gs-hero { min-height: 330px; padding: 68px 0; }
 .gs-hero h1 { font-size: clamp(44px, 12vw, 60px); }
 .gs-story { padding-top: 54px; padding-bottom: 68px; }
 .gs-story p { font-size: 17px; }
 .gs-story .gs-quote { font-size: 21px; }
}



/* Foto's page */
.sf-page { background: #fff; color: #1b3b29; }
.sf-wrap { width: min(1320px, calc(100% - 48px)); margin-inline: auto; }
.sf-hero { padding: 118px 0 116px; background: #1b3b29; color: #fff; }
.sf-eyebrow { margin: 0 0 18px; color: #fff; font-size: 14px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.sf-hero h1 { max-width: 680px; margin: 0 0 24px; color: #fff; font-size: clamp(54px, 6vw, 78px); line-height: .98; letter-spacing: -.045em; }
.sf-hero p:not(.sf-eyebrow) { max-width: 680px; margin: 0; color: #d0d8d2; font-size: 19px; line-height: 1.55; }
.sf-gallery { padding-top: 100px; padding-bottom: 110px; }
.sf-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 34px; }
.sf-filter { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 18px; border: 1px solid #dedede; border-radius: 28px; color: #1b3b29; background: #fff; text-decoration: none; font-size: 14px; font-weight: 750; transition: background .15s ease, color .15s ease, border-color .15s ease; }
.sf-filter:hover,.sf-filter.is-active { background: #1b3b29; border-color: #1b3b29; color: #fff; }
.sf-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.sf-photo { display: block; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 18px; background: #edf0ed; }
.sf-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.sf-photo:hover img { transform: scale(1.04); }
.sf-empty { padding: 40px; border: 1px solid #e1e5e1; border-radius: 16px; color: #687e6e; }
.sf-empty h2 { margin: 0 0 10px; color: #1b3b29; }
.sf-empty p { margin: 0; line-height: 1.6; }
@media (max-width: 900px) {
 .sf-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .sf-gallery { padding-top: 70px; }
}
@media (max-width: 600px) {
 .sf-wrap { width: min(100% - 32px, 560px); }
 .sf-hero { padding: 78px 0 82px; }
 .sf-hero h1 { font-size: clamp(46px, 12vw, 62px); }
 .sf-hero p:not(.sf-eyebrow) { font-size: 17px; }
 .sf-gallery { padding-top: 48px; padding-bottom: 70px; }
 .sf-filters { gap: 8px; margin-bottom: 24px; }
 .sf-filter { min-height: 40px; padding: 0 14px; font-size: 13px; }
 .sf-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
 .sf-photo { border-radius: 12px; }
}



/* Fotocategorie-keuze wordt in WordPress' mediabibliotheek getoond. */


/* Praktisch page */
.sp-page { background: #fff; color: #1b3b29; }
.sp-wrap { width: min(1210px, calc(100% - 48px)); margin-inline: auto; }
.sp-hero { min-height: 444px; box-sizing: border-box; display: flex; align-items: center; padding: 90px 0; background: #1b3b29; color: #fff; }
.sp-eyebrow { margin: 0 0 15px; color: #fff; font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.sp-hero h1 { max-width: 950px; margin: 0; color: #fff; font-size: clamp(50px, 5.2vw, 72px); line-height: .98; letter-spacing: -.04em; }
.sp-info { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; padding-top: 90px; padding-bottom: 100px; }
.sp-card { min-height: 196px; padding: 23px; border: 1px solid #dedede; border-radius: 16px; box-shadow: 0 0 0 1px rgba(0,0,0,.025); background: #fff; }
.sp-icon { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 17px; border-radius: 50%; background: #17488e; color: #fff; }
.sp-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.sp-card h2 { margin: 0 0 10px; color: #1b3b29; font-size: 19px; line-height: 1.2; letter-spacing: -.025em; }
.sp-card p { margin: 0; color: #829386; font-size: 14px; line-height: 1.55; }
@media (max-width: 900px) {
 .sp-info { grid-template-columns: repeat(2,minmax(0,1fr)); padding-top: 60px; }
}
@media (max-width: 600px) {
 .sp-wrap { width: min(100% - 32px, 560px); }
 .sp-hero { min-height: 360px; padding: 70px 0; }
 .sp-hero h1 { font-size: clamp(43px, 11vw, 60px); }
 .sp-info { grid-template-columns: 1fr; gap: 12px; padding-top: 42px; padding-bottom: 65px; }
 .sp-card { min-height: 0; padding: 21px; }
}


/* Zondagprogramma: lijst links en familiedagfoto rechts, zoals het voorbeeld */
.program-day-sunday .program-photo { align-self: center; }
@media(max-width:760px) {
  .program-day-sunday .program-day-content { order: 1; }
  .program-day-sunday .program-photo { order: 2; }
}


/* Nieuw officieel logo Dorpsfeest Zoeterwoude, gebruikt in header en footer */
.brand.brand-image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 142px;
  min-width: 142px;
  height: 48px;
  box-sizing: border-box;
  padding: 5px 7px;
  background: var(--green, #1b3b29);
  border-radius: 5px;
  transform: rotate(-4deg);
  overflow: hidden;
}
.brand.brand-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.footer-brand-image {
  margin: 0 0 14px;
}
@media (max-width: 900px) {
  .brand.brand-image {
    width: 120px;
    min-width: 120px;
    height: 42px;
    padding: 4px 6px;
  }
}


/* WordPress block editor content: lets page owners edit copy from Pages > Edit */
.szf-editor-content-switch { background:#fff; color:#1b3b29; padding:64px 24px 90px; }
.szf-editor-content-inner { width:min(1210px,100%); margin:0 auto; font-size:18px; line-height:1.7; }
.szf-editor-content-inner h1,.szf-editor-content-inner h2,.szf-editor-content-inner h3 { color:#1b3b29; line-height:1.1; letter-spacing:-.03em; }
.szf-editor-content-inner h1 { font-size:clamp(38px,5vw,64px); }
.szf-editor-content-inner h2 { font-size:clamp(28px,3vw,42px); margin-top:1.5em; }
.szf-editor-content-inner p { max-width:78ch; }
.szf-editor-content-inner a { color:#17488e; }
.szf-editor-content-inner img { max-width:100%; height:auto; border-radius:14px; }
.szf-editor-content-inner .wp-block-columns { gap:24px; }
.szf-editor-content-inner .wp-block-group,.szf-editor-content-inner .wp-block-cover { border-radius:16px; }



/* Programma: editor-managed schedule content */
.program-page-editor .program-editor-content { padding-top: 72px; }
.program-page-editor .program-editor-inner { width:min(1210px, calc(100% - 48px)); margin:0 auto; color:#506a59; font-size:17px; line-height:1.65; }
.program-page-editor .program-editor-inner h2 { color:#17488e; font-size:clamp(34px,4vw,58px); line-height:1.08; letter-spacing:-.035em; margin:0 0 18px; }
.program-page-editor .program-editor-inner h3 { color:#1b3b29; font-size:clamp(22px,2.2vw,30px); margin:28px 0 12px; }
.program-page-editor .program-editor-inner p { margin:0 0 10px; }
.program-page-editor .program-editor-inner ul { list-style:none; margin:0 0 36px; padding:0; }
.program-page-editor .program-editor-inner ul li { padding:13px 8px; border-bottom:1px solid #e8ece9; }
.program-page-editor .program-editor-inner ul li strong { color:#17488e; display:inline-block; min-width:140px; }
.program-page-editor .program-editor-inner .wp-block-columns { gap:48px; align-items:center; margin:0 0 54px; }
.program-page-editor .program-editor-inner .wp-block-column { min-width:0; }
.program-page-editor .program-editor-inner img { width:100%; height:auto; border-radius:14px; }
.program-page-editor .program-editor-inner .wp-block-image { margin:0; }
.program-page-editor .program-editor-inner .wp-block-group { margin:0 0 48px; }
@media(max-width:700px) {
 .program-page-editor .program-editor-content { padding-top:42px; }
 .program-page-editor .program-editor-inner { width:calc(100% - 36px); }
 .program-page-editor .program-editor-inner .wp-block-columns { gap:20px; margin-bottom:36px; }
 .program-page-editor .program-editor-inner ul li strong { min-width:90px; }
}

