/*
Theme Name: Kinkypagina
Theme URI: https://kinkypagina.nl/
Author: Kinkypagina
Version: 0.4.1
Text Domain: kinkypagina
*/

:root { --kp-ink:#18161e; --kp-paper:#fffdfa; --kp-rose:#d33670; --kp-orange:#f5a65b; --kp-mist:#f6eef1; --kp-line:#e7d8df; --wp--preset--color--contrast:var(--kp-ink); --wp--preset--color--base:var(--kp-paper); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--kp-paper); color:var(--kp-ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.kp-shell { width:min(1240px,100%); margin:0 auto; padding:0 28px; }
.kp-header { position:sticky; top:0; z-index:10; background:rgba(255,253,250,.94); border-bottom:1px solid var(--kp-line); backdrop-filter:blur(14px); }
.kp-header .kp-shell { min-height:62px; display:flex; align-items:center; }
.kp-brand { color:var(--kp-ink); display:flex; align-items:center; text-decoration:none; font-size:1.25rem; font-weight:900; letter-spacing:-.045em; }
.kp-brand:before { content:"K"; display:grid; place-items:center; width:30px; height:30px; margin-right:9px; border-radius:9px; background:var(--kp-rose); color:white; font-size:1rem; }
.custom-logo { width:auto; max-height:38px; }
.kp-hero { min-height:330px; display:grid; grid-template-columns:1.5fr .5fr; align-items:center; gap:42px; padding:48px 5.5vw; margin:18px 0 40px; overflow:hidden; border-radius:28px; color:#fff; background:radial-gradient(circle at 90% 12%,#f089aa 0 5%,transparent 25%),radial-gradient(circle at 84% 90%,#ffb76c 0 4%,transparent 21%),linear-gradient(125deg,#261522 0%,#651d46 58%,#a62862 100%); }
.kp-eyebrow { margin:0 0 12px; color:var(--kp-rose); font-size:.75rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.kp-hero .kp-eyebrow { color:#ffd7e5; }
.kp-hero h1 { max-width:760px; margin:0; color:#fff; font-size:clamp(2.5rem,4.6vw,4.45rem); line-height:.96; letter-spacing:-.07em; }
.kp-intro-copy { max-width:670px; margin:18px 0 22px; font-size:1.02rem; line-height:1.55; color:#fff4f8; }
.kp-hero-action,.wp-element-button { display:inline-flex; align-items:center; gap:11px; padding:14px 19px; border-radius:999px; background:#fff; color:#7b1e4c; font-weight:800; text-decoration:none; box-shadow:0 10px 26px rgba(0,0,0,.16); }
.kp-hero-action span { font-size:1.2rem; }
.kp-hero-card { align-self:end; display:flex; flex-direction:column; padding:24px; border:1px solid rgba(255,255,255,.35); border-radius:18px; background:rgba(255,255,255,.12); backdrop-filter:blur(8px); }
.kp-hero-card strong { font-size:2rem; }.kp-hero-card span { margin-top:7px; color:#ffe7f0; line-height:1.35; }
.kp-directory-section { padding:32px 0 74px; }.kp-section-heading { margin-bottom:27px; }.kp-section-heading h2 { margin:0 0 8px; font-size:clamp(2rem,4vw,3.5rem); letter-spacing:-.055em; }.kp-section-heading > p:last-child { max-width:560px; margin:0; color:#655963; font-size:1.04rem; }
.kp-city-index { position:sticky; top:78px; z-index:5; margin:0 -28px 30px; padding:15px 28px; background:#fffdfae8; border-block:1px solid var(--kp-line); backdrop-filter:blur(12px); }.kp-city-index strong { display:block; margin-bottom:8px; font-size:.8rem; }.kp-index-country { margin:7px 0; }.kp-index-country summary { cursor:pointer; color:#5d243e; font-weight:900; }.kp-index-province { display:grid; grid-template-columns:150px 1fr; gap:12px; padding:8px 0 8px 14px; }.kp-index-province>span { color:#8a6d7a; font-size:.8rem; font-weight:800; }.kp-index-province div { display:flex; flex-wrap:wrap; gap:8px; }.kp-city-index a { padding:7px 10px; border:1px solid var(--kp-line); border-radius:999px; color:#5d243e; background:#fff; font-size:.8rem; font-weight:700; text-decoration:none; }
.kp-directory { display:grid; gap:28px; }.kp-country { padding:30px; border:1px solid var(--kp-line); border-radius:24px; background:#fff; box-shadow:0 11px 35px rgba(48,20,34,.055); }.kp-country>header,.kp-province>header,.kp-city>header { display:flex; align-items:baseline; gap:11px; }.kp-country>header { padding-bottom:18px; border-bottom:2px solid var(--kp-rose); }.kp-country>header p,.kp-province>header p,.kp-city>header p { margin:0; color:#8a6d7a; font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.09em; }.kp-country h2 { margin:0; font-size:2rem; letter-spacing:-.045em; }.kp-province { margin-top:24px; }.kp-province>header { padding-bottom:11px; border-bottom:1px solid var(--kp-line); }.kp-province h3 { margin:0; font-size:1.35rem; }.kp-city { scroll-margin-top:188px; margin-top:15px; padding:21px; border:1px solid #f0e4e9; border-radius:17px; background:#fffdfa; }.kp-city>header { padding-bottom:13px; border-bottom:1px solid var(--kp-line); }.kp-city h4 { margin:0; font-size:1.28rem; letter-spacing:-.035em; }.kp-city-categories { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:22px; padding-top:17px; }.kp-link-group h5 { margin:0 0 10px; color:#8a1e4b; font-size:.94rem; }.kp-link-group ul { margin:0; padding:0; list-style:none; }.kp-link-group li { padding:8px 0; border-top:1px solid #f1e8ec; }.kp-link-group li:first-child { border-top:0; }.kp-link-group a { color:var(--kp-ink); font-size:.94rem; font-weight:700; text-decoration-color:#f4a4c2; text-decoration-thickness:2px; text-underline-offset:3px; }.kp-link-group a:hover { color:var(--kp-rose); }
.kp-newsletter { display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; margin:0 0 38px; padding:26px 30px; border-radius:20px; background:#fce5ed; }.kp-newsletter h2 { margin:0; font-size:1.65rem; }.kp-newsletter p:not(.kp-eyebrow) { margin:7px 0 0; color:#694757; }.kp-newsletter .wp-element-button { background:var(--kp-rose); color:#fff; white-space:nowrap; }
.kp-ad { min-height:0; margin:20px 0; text-align:center; }.kp-ad img { display:block; max-width:100%; height:auto; margin:auto; border-radius:12px; }.kp-ad--placeholder { display:flex; align-items:center; justify-content:center; gap:16px; min-height:74px; padding:14px 22px; border:1px solid #f1c3d4; border-radius:16px; background:#fff1f6; text-align:left; }.kp-ad--placeholder>span { color:#8a1e4b; font-size:.72rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }.kp-ad--placeholder a { color:#60193c; font-size:1.05rem; text-decoration:none; }.kp-ad--placeholder strong { color:var(--kp-rose); }.kp-ad--placeholder small { display:block; margin-top:3px; color:#765060; font-size:.8rem; }.kp-footer { padding:38px 0; background:var(--kp-ink); color:#fff; }.kp-footer a { color:#fff; }.screen-reader-text { clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; width:1px; overflow:hidden; position:absolute; white-space:nowrap; }
.kp-location-picker { margin:0 0 30px; padding:22px; border:1px solid var(--kp-line); border-radius:20px; background:linear-gradient(135deg,#fff 0%,#fff5f8 100%); box-shadow:0 12px 30px rgba(48,20,34,.04); }.kp-flow-intro { margin-bottom:14px; }.kp-flow-intro p { margin:0 0 2px; color:#8a6d7a; font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.kp-flow-intro strong { font-size:1.05rem; }.kp-location-controls { display:grid; grid-template-columns:1fr 1.5fr; gap:12px; }.kp-location-controls label { display:grid; gap:6px; color:#705563; font-size:.76rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }.kp-location-controls select { width:100%; min-height:50px; padding:0 38px 0 14px; border:1px solid #e5cfd9; border-radius:12px; background:#fff; color:var(--kp-ink); font:inherit; font-size:.98rem; font-weight:750; letter-spacing:0; text-transform:none; }.kp-location-controls select:disabled { color:#9b8a92; background:#f8f4f5; }.kp-location-controls select:focus { outline:3px solid #f5c8da; border-color:var(--kp-rose); }.kp-flow-hint { margin:17px 0 0; color:#655963; font-size:.93rem; }.kp-province .kp-flow-hint { margin:7px 0 14px; }.kp-country[hidden],.kp-province[hidden] { display:none!important; }.kp-province>header { padding:0; border:0; }.kp-province>header p { display:none; }.kp-province h3 { font-size:clamp(1.55rem,3vw,2rem); letter-spacing:-.045em; }.kp-city { padding:0; overflow:hidden; margin-top:11px; border-color:#eee6e9; background:#fff; }.kp-city>summary { display:grid; grid-template-columns:minmax(0,1fr) auto 25px; align-items:center; column-gap:18px; min-height:68px; padding:17px 20px; cursor:pointer; list-style:none; }.kp-city>summary::-webkit-details-marker { display:none; }.kp-city>summary>span { display:flex; align-items:baseline; min-width:0; }.kp-city>summary em { color:#8a6d7a; font-size:.72rem; font-style:normal; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.kp-city>summary strong { font-size:1.14rem; letter-spacing:-.03em; }.kp-city>summary small { justify-self:end; color:#8a1e4b; font-weight:800; white-space:nowrap; }.kp-city>summary:after { content:"+"; display:grid; place-items:center; width:23px; height:23px; border-radius:50%; background:#fce5ed; color:#8a1e4b; font-size:1.15rem; font-weight:600; }.kp-city[open]>summary { border-bottom:1px solid var(--kp-line); background:#fff7fa; }.kp-city[open]>summary:after { content:"−"; }.kp-city-categories { padding:12px 20px 20px; background:#fffdfa; }.kp-link-group { padding:11px 0; }.kp-link-group h5 { margin-bottom:7px; }
.kp-link-group .kp-map-link { display:inline-flex; margin:5px 0 0; padding:4px 8px; border:1px solid #efc8d8; border-radius:999px; color:#8a1e4b; background:#fff5f8; font-size:.72rem; font-weight:900; line-height:1; text-decoration:none; }
.kp-location-help { margin:11px 0 0; color:#705563; font-size:.84rem; }.kp-location-controls select:disabled { cursor:not-allowed; color:#9b8791; background:#faf5f7; }
@media (max-width:720px) { .kp-shell { padding:0 17px; }.kp-header .kp-shell { min-height:58px; }.kp-hero { grid-template-columns:1fr; gap:20px; min-height:auto; margin:0 -17px 30px; padding:38px 24px 24px; border-radius:0 0 24px 24px; }.kp-hero-card { align-self:start; max-width:280px; }.kp-city-index { top:58px; margin:0 -17px 23px; padding:12px 17px; }.kp-index-province { grid-template-columns:1fr; gap:5px; padding-left:0; }.kp-location-picker { padding:19px 18px; border-radius:17px; }.kp-location-controls { grid-template-columns:1fr; }.kp-directory { gap:0; }.kp-country { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }.kp-country>header,.kp-country>.kp-flow-hint { display:none; }.kp-province { margin-top:0; }.kp-province>header { padding:4px 1px 0; }.kp-province h3 { font-size:1.8rem; }.kp-province .kp-flow-hint { margin:7px 1px 16px; font-size:.95rem; }.kp-city { margin-top:12px; border-radius:18px; box-shadow:0 6px 17px rgba(48,20,34,.045); }.kp-city>summary { grid-template-columns:minmax(0,1fr) auto 23px; column-gap:10px; min-height:76px; padding:18px 19px; }.kp-city>summary strong { font-size:1.17rem; }.kp-city>summary small { font-size:.78rem; }.kp-city-categories { grid-template-columns:1fr; gap:0; padding:4px 19px 19px; }.kp-link-group { padding:14px 0; }.kp-link-group li { padding:10px 0; }.kp-link-group .kp-map-link { margin-left:7px; }.kp-newsletter { grid-template-columns:1fr; padding:22px; }.kp-newsletter .wp-element-button { justify-content:center; }.kp-ad--placeholder { align-items:flex-start; flex-direction:column; gap:5px; }.kp-directory-section { padding-top:10px; } }

/* v2: linklijst eerst, locatiekeuze zonder directory-ruis */
.kp-hero--compact{display:flex;align-items:end;justify-content:space-between;min-height:0;margin:0 0 22px;padding:25px 0 20px;border-bottom:1px solid var(--kp-line);background:transparent;color:var(--kp-ink)}.kp-hero--compact h1{margin:3px 0 6px;font-size:clamp(2rem,4vw,3.3rem)}.kp-hero--compact p:last-child{margin:0;color:#655963}.kp-hero--compact>span{padding:9px 12px;border-radius:999px;background:#fce5ed;color:#8a1e4b;font-size:.82rem;font-weight:900}.kp-ad{margin:16px 0}.kp-ad-text{display:grid;grid-template-columns:auto 1fr;column-gap:13px;align-items:center;min-height:72px;padding:13px 18px;border:1px solid #efc8d8;border-radius:15px;background:#fff4f8;color:var(--kp-ink);text-decoration:none}.kp-ad-text span{grid-row:1/3;color:#8a1e4b;font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.kp-ad-text strong{font-size:1.08rem}.kp-ad-text small{color:#705563}.kp-directory-section{padding-top:16px}.kp-section-heading{margin-bottom:16px}.kp-section-heading h2{font-size:clamp(1.65rem,3vw,2.25rem)}.kp-location-picker{margin:0 0 17px;padding:18px 20px;border-radius:17px;background:#fff;box-shadow:0 8px 25px rgba(48,20,34,.045)}.kp-flow-intro{display:flex;align-items:baseline;gap:10px;margin-bottom:13px}.kp-flow-intro strong{font-size:1.15rem}.kp-location-help{margin:10px 0 0}.kp-directory{display:block}.kp-location-empty{margin:24px 0;padding:24px;border:1px dashed #e5cfd9;border-radius:16px;color:#705563;text-align:center}.kp-country{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.kp-province{margin:0}.kp-province>header{display:flex;justify-content:space-between;align-items:baseline;padding:0 0 13px;border-bottom:1px solid var(--kp-line)}.kp-province>header h3{font-size:1.65rem}.kp-province>header p{display:block;margin:0;color:#705563;font-size:.85rem;font-weight:700;text-transform:none;letter-spacing:0}.kp-city-choice{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:10px;padding:16px 0}.kp-city-choice button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:52px;padding:11px 13px;border:1px solid #ebdce2;border-radius:12px;background:#fff;color:var(--kp-ink);font:inherit;text-align:left;cursor:pointer}.kp-city-choice button:hover,.kp-city-choice button:focus{border-color:var(--kp-rose);background:#fff7fa}.kp-city-choice strong{font-size:.98rem}.kp-city-choice small{color:#8a1e4b;font-size:.74rem;font-weight:800;white-space:nowrap}.kp-city-list{padding-top:4px}.kp-city-list>header{display:flex;justify-content:space-between;align-items:center;padding:4px 0 15px;border-bottom:2px solid var(--kp-rose)}.kp-city-list header p{margin:0 0 2px;color:#8a6d7a;font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.kp-city-list h3{margin:0;font-size:1.8rem}.kp-change-city{padding:8px 11px;border:1px solid #e5cfd9;border-radius:999px;background:#fff;color:#8a1e4b;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}.kp-city-list .kp-link-group{padding:18px 0}.kp-city-list .kp-link-group h4{margin:0 0 8px;color:#8a1e4b;font-size:1rem}.kp-city-list .kp-link-group li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0}.kp-external-link{color:var(--kp-ink)!important;font-size:1rem!important}.kp-map-link{flex:none;margin:0!important}.kp-city-list .kp-ad{margin:5px 0 15px}
.kp-address{display:block;margin-top:3px;color:#705563;font-size:.79rem;line-height:1.35}
.kp-province-link-group{margin:18px 0;padding:18px;border:1px solid var(--kp-line);border-radius:16px;background:#fff}.kp-province-link-group h4{margin:0 0 10px;color:#8a1e4b;font-size:1.08rem}.kp-province-link-group ul{margin:0;padding:0;list-style:none}.kp-province-link-group li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid #f1e8ec}.kp-province-link-group li:first-child{border-top:0}.kp-location-name{display:block;margin-bottom:2px;color:#8a6d7a;font-size:.74rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
@media(max-width:720px){.kp-hero--compact{align-items:start;gap:10px;margin:0 0 17px;padding:20px 0 17px}.kp-hero--compact h1{font-size:2rem}.kp-hero--compact>span{font-size:.72rem}.kp-ad-text{grid-template-columns:1fr;gap:2px;min-height:0;padding:14px 16px}.kp-ad-text span{grid-row:auto}.kp-location-picker{padding:17px}.kp-flow-intro{display:block}.kp-flow-intro strong{display:block;margin-top:2px}.kp-city-choice{grid-template-columns:1fr 1fr;gap:8px}.kp-city-choice button{min-height:54px;padding:10px}.kp-city-choice strong{font-size:.92rem}.kp-city-choice small{font-size:.68rem}.kp-city-list>header{align-items:start}.kp-city-list h3{font-size:1.55rem}.kp-change-city{margin-top:4px}.kp-city-list .kp-link-group li{align-items:flex-start}.kp-external-link{line-height:1.35}}

/* Provinciecategorieen: compact op mobiel, meerdere blokken naast elkaar op brede schermen. */
.kp-province{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.kp-province>header,.kp-province>.kp-ad{grid-column:1/-1}.kp-province .kp-province-link-group{min-width:0;margin:0}.kp-province>.kp-ad{margin:0}@media(min-width:1180px){.kp-province{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.kp-province{grid-template-columns:1fr;gap:12px}.kp-province .kp-province-link-group{padding:14px}}

/* Vaste landpagina's met twee duidelijke sorteerrichtingen. */
.kp-directory-menu{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px}.kp-directory-menu button{padding:10px 14px;border:1px solid #e5cfd9;border-radius:999px;background:#fff;color:#8a1e4b;font:inherit;font-size:.9rem;font-weight:800;cursor:pointer}.kp-directory-menu button[aria-pressed="true"]{border-color:#d93576;background:#d93576;color:#fff}.kp-country-links{margin:0 0 20px;color:#705563;font-size:.92rem}.kp-country-links a{margin-left:8px;font-weight:800}.kp-directory-view[hidden]{display:none}.kp-directory-view{display:grid;gap:28px}.kp-directory-view .kp-province,.kp-location-type{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.kp-directory-view .kp-province>header,.kp-location-type>header{grid-column:1/-1}.kp-location-type>header{display:flex;justify-content:space-between;align-items:baseline;padding:0 0 13px;border-bottom:1px solid var(--kp-line)}.kp-location-type>header h3{margin:0;font-size:1.65rem}.kp-location-type>header p{margin:0;color:#705563;font-size:.85rem;font-weight:700}.kp-location-group{min-width:0;padding:18px;border:1px solid var(--kp-line);border-radius:16px;background:#fff}.kp-location-group h4{margin:0 0 12px;color:#8a1e4b;font-size:1.08rem}.kp-location-group ul,.kp-location-directory ul{margin:0;padding:0;list-style:none}.kp-location-group li,.kp-location-directory li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid #f1e8ec}.kp-location-group li:first-child,.kp-location-directory li:first-child{border-top:0}.kp-venue-type{display:block;margin-top:3px;color:#8a6d7a;font-size:.75rem;font-weight:800}.kp-location-directory{min-width:0;padding:18px;border:1px solid var(--kp-line);border-radius:16px;background:#fff}.kp-location-directory>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.kp-location-directory h3,.kp-location-directory h4{margin:0;color:#8a1e4b;font-size:1.08rem}.kp-location-directory header p{margin:0;color:#705563;font-size:.9rem;font-weight:700}@media(min-width:1180px){.kp-directory-view .kp-province,.kp-location-type{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.kp-directory-menu{display:grid;grid-template-columns:1fr}.kp-directory-menu button{width:100%;text-align:left}.kp-directory-view{gap:16px}.kp-directory-view .kp-province,.kp-location-type{grid-template-columns:1fr;gap:12px}.kp-location-group,.kp-location-directory{padding:14px}.kp-location-group li,.kp-location-directory li{align-items:flex-start}.kp-location-type>header{align-items:flex-start;flex-direction:column;gap:3px}}
