/*
Theme Name: De Groenkapper
Theme URI: https://degroenkapper.nl
Author: De Groenkapper
Description: Eigen thema voor De Groenkapper: homepage, dienstpagina's, projecten, nieuws, WhatsApp-knop en een werkend contactformulier.
Version: 1.5.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: groenkapper
*/

:root { --tk-lijn: rgba(28, 46, 34, .12); --tk-lijn-licht: rgba(255, 255, 255, .14); }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { -webkit-font-smoothing: antialiased; }
::selection { background: var(--wp--preset--color--goud); color: var(--wp--preset--color--bos); }

/* Secties sluiten direct op elkaar aan */
.wp-site-blocks > * + *,
.tk-main > * + *,
.tk-main > .wp-block-post-content > * + * { margin-block-start: 0; }
.tk-sectie { padding-top: 120px; padding-bottom: 120px; }
@media (max-width: 781px) { .tk-sectie { padding-top: 72px; padding-bottom: 72px; } }

/* Donkere vlakken: koppen en links licht */
.has-groen-donker-background-color :is(h1, h2, h3, h4),
.has-bos-background-color :is(h1, h2, h3, h4),
.has-groen-background-color :is(h1, h2, h3, h4) { color: var(--wp--preset--color--zand); }
.has-groen-donker-background-color a:not(.wp-element-button),
.has-bos-background-color a:not(.wp-element-button) { color: inherit; }

/* Accent: schuingedrukte woorden in koppen */
:is(h1, h2) em { font-style: italic; font-weight: 400; color: var(--wp--preset--color--goud); }

/* Klein label boven koppen, met een fijne lijn ervoor */
.tk-label {
	font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
	color: var(--wp--preset--color--goud); margin-bottom: 0;
}
.tk-label::before { content: ""; display: inline-block; width: 32px; height: 1px; background: currentColor; vertical-align: middle; margin: -2px 14px 0 0; }
.tk-label.has-text-align-center::after { content: ""; display: inline-block; width: 32px; height: 1px; background: currentColor; vertical-align: middle; margin: -2px 0 0 14px; }
.tk-label + * { margin-top: 1rem; }

/* Knoppen */
.wp-element-button { transition: background .2s, color .2s, border-color .2s; }
.wp-block-button.is-style-outline > .wp-block-button__link { border: 1px solid currentColor; padding: 16px 29px; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: rgba(255,255,255,.08); }

/* Header */
header.wp-block-template-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0); z-index: 50; }
@media (max-width: 600px) { header.wp-block-template-part { top: 0; } }
.tk-header { padding-top: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--tk-lijn-licht); }
.tk-header .wp-block-site-title { font-family: var(--wp--preset--font-family--fraunces); font-size: 1.45rem; font-weight: 500; letter-spacing: -.01em; margin: 0; }
.tk-header .wp-block-site-title a { text-decoration: none; display: inline-flex; align-items: center; gap: 12px; color: var(--wp--preset--color--zand); }
.tk-merk > .wp-block-site-title:first-child a::before {
	content: ""; width: 40px; height: 40px; flex: none;
	background: url("assets/images/logo-blad.svg") center / contain no-repeat;
}
.tk-header .wp-block-navigation { font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.tk-header .wp-block-navigation a { text-decoration: none; opacity: .8; transition: opacity .2s, color .2s; }
.tk-header .wp-block-navigation a:hover { opacity: 1; color: var(--wp--preset--color--goud); }
.tk-header .wp-block-navigation .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--groen-donker) !important; color: var(--wp--preset--color--zand) !important;
	border: 1px solid var(--tk-lijn-licht) !important; border-radius: 2px; padding: 10px 0; margin-top: 14px;
	box-shadow: 0 20px 40px rgba(0,0,0,.35); min-width: 260px !important; letter-spacing: .12em;
}
.tk-header .wp-block-navigation .wp-block-navigation__submenu-container a { padding: 10px 22px !important; white-space: nowrap; }
.tk-header .wp-block-button__link { padding: 12px 22px; font-size: .72rem; }
@media (max-width: 600px) { .tk-header .wp-block-buttons { display: none; } }

/* Hero */
.tk-hero {
	position: relative; overflow: hidden;
	background-image:
		url("assets/images/hero-botanisch.svg"),
		radial-gradient(ellipse at 80% 20%, rgba(184,151,90,.16) 0, transparent 55%),
		radial-gradient(ellipse at 10% 100%, rgba(143,166,122,.12) 0, transparent 50%);
	background-repeat: no-repeat; background-position: right -40px bottom -60px, center, center; background-size: min(46vw, 560px) auto, cover, cover;
	padding-top: 150px; padding-bottom: 160px;
}
.tk-hero h1 { max-width: 780px; color: var(--wp--preset--color--zand); }
.tk-hero p:not(.tk-label) { font-size: 1.2rem; max-width: 560px; color: rgba(246,242,234,.82); font-weight: 300; line-height: 1.75; }
.tk-hero .wp-block-buttons { margin-top: 2.6rem; gap: 14px; }
.tk-usp { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 36px; margin-top: 4rem; padding-top: 28px; border-top: 1px solid var(--tk-lijn-licht); max-width: 760px; font-size: .85rem; letter-spacing: .06em; color: rgba(246,242,234,.75); }
.tk-usp li::before { content: "—"; color: var(--wp--preset--color--goud); margin-right: 10px; }
@media (max-width: 781px) {
	.tk-hero { padding-top: 90px; padding-bottom: 100px; background-size: 80vw auto, cover, cover; background-position: right -30vw bottom -20px, center, center; }
}

/* Kleine hero (dienstpagina's) */
.tk-hero-klein { padding-top: 110px; padding-bottom: 110px; }
.tk-hero-klein h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); max-width: 860px; }
.tk-hero .tk-label a { text-decoration: none; }
.tk-hero .tk-label a:hover { color: var(--wp--preset--color--zand); }

/* Zijkaart en veelgestelde vragen */
.tk-zijkaart { border-radius: 2px; padding: 40px; position: sticky; top: 120px; border: 1px solid var(--tk-lijn); }
.tk-faq { border-bottom: 1px solid var(--tk-lijn); padding: 20px 0; margin: 0; }
.tk-faq:first-of-type { border-top: 1px solid var(--tk-lijn); }
.tk-faq summary { font-family: var(--wp--preset--font-family--fraunces); font-size: 1.2rem; cursor: pointer; color: var(--wp--preset--color--groen-donker); list-style: none; display: flex; justify-content: space-between; gap: 20px; }
.tk-faq summary::-webkit-details-marker { display: none; }
.tk-faq summary::after { content: "+"; color: var(--wp--preset--color--goud); font-family: var(--wp--preset--font-family--inter); font-weight: 300; font-size: 1.5rem; line-height: 1; transition: transform .2s; }
.tk-faq[open] summary::after { transform: rotate(45deg); }
.tk-faq[open] summary { margin-bottom: 10px; }
.tk-faq p { margin: 0; color: var(--wp--preset--color--grijs); }

/* Diensten */
#diensten { background: var(--wp--preset--color--zand); }
.tk-kaartjes { gap: 24px !important; }
.tk-kaartje {
	background: #fff !important; border: 1px solid var(--tk-lijn); border-radius: 2px; padding: 44px 36px;
	display: flex; flex-direction: column; transition: transform .35s ease, box-shadow .35s ease, border-color .35s;
}
.tk-kaartje:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgba(28,46,34,.35); border-color: var(--wp--preset--color--goud); }
.tk-kaartje h3 { margin-top: 1.4rem; }
.tk-kaartje p { color: var(--wp--preset--color--grijs); font-size: 1rem; }
@media (min-width: 600px) and (max-width: 1080px) { .tk-kaartjes { grid-template-columns: repeat(2, 1fr) !important; } }
.tk-meer { margin-top: auto; padding-top: 10px; }
.tk-meer a { text-decoration: none; color: var(--wp--preset--color--groen-donker); font-size: .75rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; border-bottom: 1px solid var(--wp--preset--color--goud); padding-bottom: 4px; }
.tk-meer a:hover { color: var(--wp--preset--color--goud); }
.tk-icoon img { width: 44px; height: 44px; }

/* Foto's */
.tk-foto img { border-radius: 2px; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.tk-foto { position: relative; }
.tk-foto::after { content: ""; position: absolute; inset: 18px -18px -18px 18px; border: 1px solid var(--wp--preset--color--goud); z-index: -1; }

/* Vinkjeslijst */
.tk-vinkjes { list-style: none; padding: 0; }
.tk-vinkjes li { padding: 12px 0 12px 34px; position: relative; border-bottom: 1px solid var(--tk-lijn); }
.tk-vinkjes li::before {
	content: ""; position: absolute; left: 0; top: 18px; width: 18px; height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b8975a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Werkwijze */
.tk-stappen { counter-reset: stap; gap: 48px !important; margin-top: 3rem !important; }
.tk-stap { text-align: left !important; counter-increment: stap; border-top: 1px solid var(--tk-lijn); padding-top: 28px; }
.tk-stap :is(h3, p) { text-align: left !important; }
.tk-stap::before {
	content: counter(stap, decimal-leading-zero); display: block; margin-bottom: 10px;
	font-family: var(--wp--preset--font-family--fraunces); font-style: italic; font-size: 3rem; line-height: 1; color: var(--wp--preset--color--goud);
}
.tk-stap p { color: var(--wp--preset--color--grijs); }

/* Werkgebied */
.tk-plaatsen { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.tk-plaatsen li { background: transparent; border: 1px solid var(--tk-lijn); border-radius: 2px; padding: 9px 16px 9px 34px; font-size: .9rem; position: relative; }
.tk-plaatsen li::before {
	content: ""; position: absolute; left: 15px; top: 50%; width: 9px; height: 9px; margin-top: -5px;
	border-radius: 50% 50% 50% 0; transform: rotate(-45deg); border: 1.5px solid var(--wp--preset--color--goud);
}

/* Nieuws en projecten: rasters */
.tk-nieuws .wp-block-post { background: #fff; border: 1px solid var(--tk-lijn); border-radius: 2px; overflow: hidden; padding-bottom: 28px; }
.tk-nieuws .wp-block-post > *:not(.wp-block-post-featured-image) { padding-left: 28px; padding-right: 28px; }
.tk-nieuws .wp-block-post-featured-image { margin: 0 0 22px; }
.tk-nieuws .wp-block-post-featured-image img { border-radius: 0; }
.tk-nieuws .wp-block-post-title { font-size: 1.4rem; margin-top: 6px; }
.tk-nieuws .wp-block-post-title a { text-decoration: none; color: inherit; }
.tk-nieuws .wp-block-post-date { font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--goud); margin-top: 0; }
.tk-nieuws .wp-block-post-excerpt { font-size: 1rem; color: var(--wp--preset--color--grijs); }
.tk-nieuws .wp-block-post:not(:has(.wp-block-post-featured-image img)) { padding-top: 28px; }

.tk-projecten .wp-block-post { position: relative; overflow: hidden; border-radius: 2px; background: var(--wp--preset--color--groen-donker); }
.tk-projecten .wp-block-post-featured-image { margin: 0; }
.tk-projecten .wp-block-post-featured-image img { transition: transform .8s ease, opacity .4s; display: block; }
.tk-projecten .wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.05); opacity: .85; }
.tk-projecten .wp-block-post-title {
	position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 70px 26px 24px; font-size: 1.3rem; pointer-events: none;
	background: linear-gradient(to top, rgba(19,31,23,.85), transparent); color: var(--wp--preset--color--zand);
}
.tk-projecten .wp-block-post-title a { color: inherit; text-decoration: none; pointer-events: auto; }
.tk-projecten .wp-block-post-title a::after { content: ""; position: absolute; inset: -400px 0 0; }

/* Projectpagina */
.tk-project-inhoud .wp-block-gallery { margin-top: 2.5rem; }
.tk-project-inhoud .wp-block-gallery img { border-radius: 2px; }

/* Contactgegevens */
.tk-kaart { display: flex; align-items: center; gap: 16px; margin: 0; border-top: 1px solid var(--tk-lijn-licht); padding: 18px 0; }
.tk-kaart:last-of-type { border-bottom: 1px solid var(--tk-lijn-licht); }
.tk-kaart + .tk-kaart { margin-top: 0; }
.tk-kaart a { text-decoration: none; }
.tk-kaart a:hover { color: var(--wp--preset--color--goud); }
.tk-kaart::before { content: ""; width: 22px; height: 22px; flex: none; background: center / contain no-repeat; }
.tk-kaart-tel::before { background-image: url("assets/images/tel.svg"); }
.tk-kaart-app::before { background-image: url("assets/images/whatsapp.svg"); }
.tk-kaart-mail::before { background-image: url("assets/images/mail.svg"); }

/* Contactformulier */
.tk-formulier { background: var(--wp--preset--color--zand); color: var(--wp--preset--color--tekst); border-radius: 2px; padding: 40px; }
.tk-formulier .tk-rij { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
@media (max-width: 600px) { .tk-formulier { padding: 28px 22px; } .tk-formulier .tk-rij { grid-template-columns: 1fr; } }
.tk-veld { margin: 0 0 18px; }
.tk-veld label { display: block; font-size: .7rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 6px; color: var(--wp--preset--color--grijs); }
.tk-veld input, .tk-veld select, .tk-veld textarea {
	width: 100%; font: inherit; font-size: 1rem; padding: 12px 0; border-radius: 0;
	border: 0; border-bottom: 1px solid rgba(28,46,34,.25); background: transparent; color: inherit;
}
.tk-veld input:focus, .tk-veld select:focus, .tk-veld textarea:focus { outline: 0; border-bottom-color: var(--wp--preset--color--goud); }
.tk-veld textarea { min-height: 110px; resize: vertical; }
.tk-akkoord { display: flex; gap: 10px; align-items: flex-start; font-size: .85rem; margin: 4px 0 24px; color: var(--wp--preset--color--grijs); }
.tk-akkoord input { margin-top: 4px; accent-color: var(--wp--preset--color--groen-donker); }
.tk-honing { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tk-formulier button { border: 0; cursor: pointer; width: 100%; background: var(--wp--preset--color--groen-donker); color: var(--wp--preset--color--zand); }
.tk-formulier button:hover { background: var(--wp--preset--color--bos); }
.tk-melding { border-radius: 2px; padding: 16px 20px; font-weight: 500; }
.tk-melding-ok { background: var(--wp--preset--color--groen-licht); color: var(--wp--preset--color--groen-donker); }
.tk-melding-fout { background: #f6e3df; color: #7e2a1d; }

/* Zwevende WhatsApp-knop */
.tk-whatsapp {
	position: fixed; right: 22px; bottom: 22px; z-index: 90;
	display: inline-flex; align-items: center; gap: 10px; height: 58px; padding: 0 22px 0 16px; border-radius: 999px;
	background: #25d366; color: #fff !important; text-decoration: none; font-weight: 600; font-size: .95rem;
	box-shadow: 0 12px 30px -8px rgba(0,0,0,.35); transition: transform .2s, box-shadow .2s;
}
.tk-whatsapp:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -10px rgba(0,0,0,.45); }
.tk-whatsapp svg { width: 28px; height: 28px; flex: none; }
@media (max-width: 600px) {
	.tk-whatsapp { right: 16px; bottom: 16px; width: 60px; height: 60px; padding: 0; justify-content: center; }
	.tk-whatsapp span { display: none; }
}

/* Footer */
.tk-footer { padding-top: 88px; padding-bottom: 32px; font-size: .95rem; border-top: 1px solid var(--wp--preset--color--goud); }
.tk-footer p { color: rgba(246,242,234,.7); }
.tk-footer h3 { font-size: .72rem; font-family: var(--wp--preset--font-family--inter); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--wp--preset--color--goud) !important; }
.tk-footer .wp-block-site-title { font-size: 1.6rem; font-weight: 500; letter-spacing: -.01em; color: var(--wp--preset--color--zand) !important; font-family: var(--wp--preset--font-family--fraunces); text-transform: none; }
.tk-footer .wp-block-site-title a { text-decoration: none; }
.tk-footer a:hover { color: var(--wp--preset--color--goud); }
.tk-footer-onder { border-top: 1px solid var(--tk-lijn-licht); padding-top: 24px; margin-top: 56px; font-size: .8rem; letter-spacing: .04em; }
