/*
Theme Name: Hoogwerkerinzetten
Theme URI: https://hoogwerkerinzetten.nl/
Author: Hoogwerkerinzetten.nl
Description: Thema nagebouwd op basis van de huidige website van Hoogwerkerinzetten.nl: gele header, grote hero-afbeelding, productoverzicht, offerteblok en contactgegevens. Alle inhoud is bewerkbaar met de blokeditor.
Version: 1.0.2
Requires at least: 6.3
Tested up to: 6.8
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: hoogwerkerinzetten
*/

:root {
	--hwi-yellow: #F7D041;
	--hwi-yellow-dark: #e5bd2a;
	--hwi-ink: #0E0702;
	--hwi-ink-soft: #0E0702B3;
	--hwi-ink-muted: #0E070299;
	--hwi-border: #0E070226;
	--hwi-bg: #FFFFFF;
	--hwi-bg-alt: #FAF7EC;
	--hwi-btn-text: #131313;
	--hwi-font-body: 'Noto Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--hwi-font-heading: 'Roboto Condensed', 'Arial Narrow', sans-serif;
	--hwi-radius: 8px;
	--hwi-wide: 1200px;
	--hwi-content: 820px;
	--hwi-gutter: 16px;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: var(--hwi-font-body);
	font-size: 16px;
	line-height: 1.6;
	color: var(--hwi-ink);
	background: var(--hwi-bg);
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--hwi-ink); text-decoration-color: var(--hwi-yellow); text-decoration-thickness: 2px; text-underline-offset: 3px; }
a:hover { color: #000; text-decoration-color: var(--hwi-ink); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--hwi-font-heading);
	color: var(--hwi-ink);
	line-height: 1.15;
	margin: 0 0 .6em;
}
h1 { font-size: clamp(34px, 6vw, 52px); font-weight: 800; }
h2 { font-size: clamp(26px, 4vw, 36px); font-weight: 700; }
h3 { font-size: 24px; font-weight: 600; }
h4 { font-size: 20px; font-weight: 600; }

p, ul, ol { margin: 0 0 1em; }

:focus-visible { outline: 3px solid var(--hwi-yellow); outline-offset: 2px; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto; z-index: 1000;
	top: 8px; left: 8px; padding: 10px 16px; background: #fff; border-radius: var(--hwi-radius);
}

/* ---------- Header ---------- */
.site-header {
	background: var(--hwi-yellow);
	position: sticky; top: 0; z-index: 100;
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

.site-header__inner {
	max-width: var(--hwi-wide);
	margin: 0 auto;
	padding: 10px var(--hwi-gutter);
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
	min-height: 96px;
}
.site-branding a { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.site-branding img, .custom-logo { max-height: 76px; width: auto; }
.site-title { font-family: var(--hwi-font-heading); font-weight: 800; font-size: 22px; color: var(--hwi-ink); }

.main-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.main-navigation a {
	display: block; padding: 12px 16px;
	font-weight: 600; color: var(--hwi-ink); text-decoration: none; border-radius: var(--hwi-radius);
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a { background: rgba(14, 7, 2, .08); }

.menu-toggle {
	display: none; background: transparent; border: 0; padding: 10px; cursor: pointer; color: var(--hwi-ink);
}
.menu-toggle svg { width: 28px; height: 28px; display: block; }

@media (max-width: 860px) {
	.site-header__inner { min-height: 80px; }
	.site-branding img, .custom-logo { max-height: 60px; }
	.menu-toggle { display: block; }
	.main-navigation { position: absolute; left: 0; right: 0; top: 100%; background: var(--hwi-yellow); display: none; box-shadow: 0 8px 16px rgba(0,0,0,.08); }
	.main-navigation.is-open { display: block; }
	.main-navigation ul { flex-direction: column; padding: 8px var(--hwi-gutter) 16px; }
	.main-navigation a { padding: 14px 12px; font-size: 18px; }
}

/* ---------- Content ---------- */
.site-main { min-height: 50vh; }

.entry-content > * {
	max-width: var(--hwi-content);
	margin-left: auto; margin-right: auto;
	padding-left: var(--hwi-gutter); padding-right: var(--hwi-gutter);
}
.entry-content > .alignwide { max-width: var(--hwi-wide); }
.entry-content > .alignfull { max-width: none; padding-left: 0; padding-right: 0; }
.entry-content > .wp-block-cover.alignfull,
.entry-content > .wp-block-group.alignfull { padding-left: var(--hwi-gutter); padding-right: var(--hwi-gutter); }

.page-header { max-width: var(--hwi-content); margin: 0 auto; padding: 56px var(--hwi-gutter) 8px; }
.page-header h1 { margin: 0; }
.site-main.is-page .entry-content { padding-bottom: 64px; }

/* ---------- Buttons ---------- */
.wp-block-button__link,
.hwi-button,
.hwi-form button {
	display: inline-block;
	background: var(--hwi-yellow);
	color: var(--hwi-btn-text);
	font-family: var(--hwi-font-body);
	font-weight: 700; font-size: 16px; line-height: 1.3;
	padding: 14px 28px;
	border: 2px solid var(--hwi-yellow);
	border-radius: var(--hwi-radius);
	text-decoration: none;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.wp-block-button__link:hover,
.hwi-button:hover,
.hwi-form button:hover { background: var(--hwi-yellow-dark); border-color: var(--hwi-yellow-dark); color: var(--hwi-btn-text); }

.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: #fff; border-color: #fff;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--hwi-ink); }

.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Hero / Cover ---------- */
.wp-block-cover {
	position: relative; display: flex; align-items: center; justify-content: center;
	min-height: 400px; overflow: hidden; color: #fff;
}
.wp-block-cover__image-background {
	position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover;
}
.wp-block-cover__background { position: absolute; inset: 0; z-index: 1; background: #000; }
.wp-block-cover__background.has-background-dim-50 { opacity: .5; }
.wp-block-cover__background.has-background-dim-60 { opacity: .6; }
.wp-block-cover__inner-container { position: relative; z-index: 2; width: 100%; max-width: var(--hwi-content); margin: 0 auto; text-align: center; padding: 48px 0; }
.wp-block-cover h1, .wp-block-cover h2, .wp-block-cover p { color: #fff; }
.wp-block-cover p { font-size: 18px; max-width: 640px; margin-left: auto; margin-right: auto; }
.wp-block-cover .wp-block-buttons { justify-content: center; margin-top: 24px; }

.hwi-hero { min-height: 480px; }
@media (max-width: 600px) { .hwi-hero { min-height: 420px; } }

/* ---------- Sections ---------- */
.hwi-section { padding-top: 72px; padding-bottom: 72px; }
.hwi-section--alt { background: var(--hwi-bg-alt); }
.hwi-section > * { max-width: var(--hwi-wide); margin-left: auto; margin-right: auto; }
.hwi-section > .hwi-narrow { max-width: var(--hwi-content); }

.hwi-eyebrow { font-family: var(--hwi-font-heading); font-weight: 600; font-size: 22px; color: var(--hwi-ink-soft); margin-top: -8px; }

.hwi-checklist { list-style: none; padding: 0; margin: 24px 0; }
.hwi-checklist li {
	position: relative; padding: 8px 0 8px 36px; border-bottom: 1px solid var(--hwi-border); font-weight: 600;
}
.hwi-checklist li::before {
	content: ""; position: absolute; left: 0; top: 11px; width: 22px; height: 22px; border-radius: 50%;
	background: var(--hwi-yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E0702' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center/14px no-repeat;
}

.hwi-tagline { font-family: var(--hwi-font-heading); font-size: 24px; font-weight: 700; }

/* Columns */
.wp-block-columns { display: flex; flex-wrap: wrap; gap: 32px; margin-bottom: 0; }
.wp-block-column { flex: 1 1 0; min-width: 0; }
.wp-block-columns.is-not-stacked-on-mobile { flex-wrap: nowrap; }
@media (max-width: 781px) {
	.wp-block-columns:not(.is-not-stacked-on-mobile) { flex-direction: column; }
	.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; }
}
.are-vertically-aligned-center, .is-vertically-aligned-center { align-items: center; align-self: center; }

.wp-block-image img { border-radius: var(--hwi-radius); }
.wp-block-image figcaption { font-size: 14px; color: var(--hwi-ink-muted); margin-top: 8px; }

/* Product cards */
.hwi-products { gap: 24px; }
.hwi-product {
	background: #fff; border: 1px solid var(--hwi-border); border-radius: 12px; overflow: hidden;
	display: flex; flex-direction: column; transition: box-shadow .2s ease, transform .2s ease;
}
.hwi-product:hover { box-shadow: 0 10px 24px rgba(14,7,2,.10); transform: translateY(-2px); }
.hwi-product .wp-block-image { margin: 0; aspect-ratio: 4 / 3; background: #f3f1ea; }
.hwi-product .wp-block-image a { display: block; height: 100%; }
.hwi-product .wp-block-image img { width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
.hwi-product h3 { font-size: 20px; margin: 16px 20px 20px; }
.hwi-product h3 a { text-decoration: none; }
.hwi-product h3 a::after { content: " →"; color: var(--hwi-ink-muted); }

/* Contact columns on homepage */
.hwi-info h3 { font-size: 18px; margin-bottom: 6px; padding-top: 12px; border-top: 3px solid var(--hwi-yellow); }
.hwi-info p { color: var(--hwi-ink-soft); }

/* Product detail */
.hwi-product-detail .wp-block-image img { background: #f3f1ea; }
.hwi-note { background: var(--hwi-bg-alt); border-left: 4px solid var(--hwi-yellow); padding: 16px 20px !important; border-radius: 0 var(--hwi-radius) var(--hwi-radius) 0; }

/* FAQ / details */
.wp-block-details {
	border: 1px solid var(--hwi-border); border-radius: var(--hwi-radius);
	padding: 0 20px; margin-bottom: 12px; background: #fff;
}
.wp-block-details summary {
	cursor: pointer; padding: 18px 0; font-family: var(--hwi-font-heading); font-weight: 700; font-size: 20px;
	list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-size: 28px; line-height: 1; color: var(--hwi-ink); }
.wp-block-details[open] summary::after { content: "–"; }
.wp-block-details[open] { padding-bottom: 12px; border-color: var(--hwi-yellow); box-shadow: 0 0 0 1px var(--hwi-yellow); }
.wp-block-details h4 { margin-top: 1.2em; }

/* Contact form */
.hwi-form { display: grid; gap: 16px; max-width: 640px; }
.hwi-form label { display: block; font-weight: 600; margin-bottom: 6px; }
.hwi-form input[type=text], .hwi-form input[type=email], .hwi-form textarea {
	width: 100%; padding: 12px 14px; font: inherit; color: inherit;
	border: 1px solid #0E070266; border-radius: var(--hwi-radius); background: #fff;
}
.hwi-form input:focus, .hwi-form textarea:focus { outline: none; border-color: var(--hwi-ink); box-shadow: 0 0 0 3px var(--hwi-yellow); }
.hwi-form .hwi-hp { position: absolute; left: -9999px; }
.hwi-form-notice { padding: 14px 18px; border-radius: var(--hwi-radius); margin-bottom: 16px; font-weight: 600; }
.hwi-form-notice.is-success { background: #e7f5e3; color: #1f5b12; }
.hwi-form-notice.is-error { background: #fbe9ea; color: #8a1f28; }

/* ---------- Footer ---------- */
.site-footer { border-top: 1px solid var(--hwi-border); margin-top: 0; }
.site-footer__inner { max-width: var(--hwi-wide); margin: 0 auto; padding: 32px var(--hwi-gutter); display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.footer-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 8px; }
.footer-navigation a { display: block; padding: 6px 10px; text-decoration: none; font-weight: 600; }
.footer-navigation a:hover { text-decoration: underline; text-decoration-color: var(--hwi-yellow); }
.site-info { font-size: 14px; color: var(--hwi-ink-muted); margin: 0; }
.site-info a { color: inherit; }

/* Utilities matching core classes */
.has-text-align-center { text-align: center; }
.has-yellow-background-color { background-color: var(--hwi-yellow); }
.has-ink-color { color: var(--hwi-ink); }
.has-white-color { color: #fff; }
