/* ==========================================================================
   Hof van Kairos — site stylesheet (child theme, v1.1)
   Direction B "Landgoed": white header, warm linen pages, calm rhythm.
   All custom CSS lives here; nothing in Additional CSS, BB global CSS or node CSS.
   Classes are applied in Beaver Builder via Advanced → Class.

   1. Fonts + tokens          6. Section patterns (home)
   2. Base + safety nets      7. Facilities + gallery + lightbox
   3. Section shell (rows)    8. Forms (Gravity Forms)
   4. Type                    9. Header (Astra)
   5. Buttons + links        10. Footer (Themer)
   ========================================================================== */

/* 1. Fonts + tokens ------------------------------------------------------- */
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/dm-sans-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/dm-sans-latin-500-normal.woff2) format('woff2'); }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/dm-sans-latin-700-normal.woff2) format('woff2'); }

:root {
	--hvk-bos: #2a382e;
	--hvk-linnen: #f0ebe5;
	--hvk-wit: #ffffff;
	--hvk-zand: #e6b89c;
	--hvk-terra: #9c5b4b;
	--hvk-line: rgba(42, 56, 46, .22);
	--hvk-line-strong: rgba(42, 56, 46, .35);
	--hvk-line-light: rgba(240, 235, 229, .3);
	--hvk-serif: 'the-seasons', 'The-Seasons', 'DM Serif Display', Georgia, serif;
	--hvk-sans: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--hvk-w: 1200px;
	--hvk-gutter: 20px;
	--hvk-space: clamp(64px, 7vw, 100px);
	--hvk-gap: clamp(48px, 7vw, 112px);
	--hvk-h1: clamp(2.5rem, 1.55rem + 3.6vw, 5rem);        /* 40 → 80 */
	--hvk-h2: clamp(2rem, 1.45rem + 2vw, 3.375rem);        /* 32 → 54 */
	--hvk-h3: clamp(1.375rem, 1.2rem + .5vw, 1.625rem);    /* 22 → 26 */
	--hvk-ease: cubic-bezier(.16, 1, .3, 1);
	--hvk-frame: rgba(42, 56, 46, .38);
	--hvk-frame-gap: 12px;
	--hvk-header-h: 92px;
}

/* 2. Base + safety nets --------------------------------------------------- */
body {
	background: var(--hvk-linnen);
	color: var(--hvk-bos);
	font-family: var(--hvk-sans);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}
::selection { background: var(--hvk-zand); color: var(--hvk-bos); }
:focus-visible { outline: 2px solid var(--hvk-terra); outline-offset: 3px; }

/* Buttons are never underlined, in any state, on any page */
a.fl-button, a.fl-button:hover, a.fl-button:focus, a.fl-button:visited,
.ast-custom-button, .ast-custom-button-link, .ast-custom-button-link:hover, .ast-custom-button-link:focus,
.gform_button, .gform-button, .gform_button:hover, .gform-button:hover,
.hvk-btn a, .hvk-btn a:hover, .hvk-btn a:focus, .hvk-btn a:visited { text-decoration: none !important; }

/* Astra table borders off on designed tables */
.hvk-sec table, .hvk-sec th, .hvk-sec td { border-left: 0 !important; border-right: 0 !important; border-top: 0 !important; }

/* 3. Section shell: BB rows with class "hvk-sec" ------------------------------
   Add "hvk-white" or "hvk-bosband" for the band colour. */
.fl-row.hvk-sec > .fl-row-content-wrap {
	padding: var(--hvk-space) var(--hvk-gutter) !important;
	background-color: var(--hvk-linnen);
	color: var(--hvk-bos);
}
.fl-row.hvk-white > .fl-row-content-wrap { background-color: var(--hvk-wit); }
.fl-row.hvk-bosband > .fl-row-content-wrap { background-color: var(--hvk-bos); color: var(--hvk-linnen); }
.fl-row.hvk-sec.hvk-pt0 > .fl-row-content-wrap { padding-top: 0 !important; }
.fl-row.hvk-sec.hvk-pb0 > .fl-row-content-wrap { padding-bottom: 0 !important; }
.hvk-sec .fl-row-content { max-width: var(--hvk-w) !important; margin: 0 auto; }

/* neutralise BB's float grid inside our rows, layout below is flex/grid */
.hvk-sec .fl-col-group { display: flex; flex-wrap: wrap; align-items: center; gap: 48px var(--hvk-gap); }
.hvk-sec .fl-col-group + .fl-col-group { margin-top: 48px; }
.hvk-sec .fl-col { float: none !important; width: auto !important; max-width: none !important; margin: 0 !important; flex: 1 1 360px; min-width: 0; }
.hvk-sec .fl-col-content { margin: 0 !important; padding: 0 !important; border: 0; display: block; }
.hvk-sec .fl-col-group::before, .hvk-sec .fl-col-group::after,
.hvk-sec .fl-col-content::before, .hvk-sec .fl-col-content::after { content: none !important; display: none !important; }
.hvk-sec .fl-col::before, .hvk-sec .fl-col::after,
.hvk-sec .fl-module::before, .hvk-sec .fl-module::after { content: none; }
.hvk-sec .fl-module, .hvk-sec .fl-module-content { margin: 0 !important; }

/* column proportions */
.hvk-sec .fl-col.hvk-col-wide { flex: 1.3 1 440px; }
.hvk-sec .fl-col.hvk-col-narrow { flex: 1 1 340px; }
.hvk-sec .fl-col.hvk-col-portrait { flex: 1 1 340px; max-width: 480px !important; }
.hvk-sec .fl-col.hvk-col-full { flex: 1 1 100%; }
.hvk-sec .fl-col-group.hvk-top, .hvk-sec .fl-col-group:has(> .fl-col.hvk-top) { align-items: flex-start; }

/* vertical rhythm between modules in a column */
.hvk-sec .fl-col-content > .fl-module + .fl-module { margin-top: 24px !important; }
.hvk-sec .fl-col-content > .fl-module.hvk-lead,
.hvk-sec .fl-col-content > .fl-module-heading + .fl-module-rich-text { margin-top: 28px !important; }
.hvk-sec .fl-col-content > .fl-module + .fl-module.hvk-btn { margin-top: 40px !important; }
.hvk-sec .fl-col-content > .fl-module.hvk-btn + .fl-module.hvk-btn { margin-top: 40px !important; }
.hvk-sec .fl-col-content > .fl-module.hvk-btn:first-child,
.hvk-sec .fl-col-content > .fl-module.hvk-btn:first-child + .fl-module.hvk-btn { margin-top: 0 !important; }

/* 4. Type ------------------------------------------------------------------ */
body .hvk-sec h1, body .hvk-sec h2, body .hvk-sec h3, body .hvk-sec h4,
body .hvk-sec .fl-heading, body .hvk-facs h2 {
	font-family: var(--hvk-serif);
	font-weight: 400;
	color: inherit;
	letter-spacing: -.01em;
	margin: 0;
	text-transform: none;
}
body .hvk-sec h1, body .hvk-sec .hvk-h1 .fl-heading { font-size: var(--hvk-h1); line-height: 1.04; text-wrap: balance; }
body .hvk-sec h2 { font-size: var(--hvk-h2); line-height: 1.08; text-wrap: balance; }
body .hvk-sec h3 { font-size: var(--hvk-h3); line-height: 1.2; }
body .hvk-sec .fl-heading a, body .hvk-sec h3 a { color: inherit; text-decoration: none; }
body .hvk-sec .fl-heading a:hover, body .hvk-sec h3 a:hover { color: var(--hvk-terra); }
.hvk-bosband h1, .hvk-bosband h2, .hvk-bosband h3 { color: var(--hvk-linnen) !important; }

.hvk-sec .fl-rich-text p, .hvk-facs p { margin: 0; }
.hvk-sec .fl-rich-text p + p, .hvk-facs p + p { margin-top: 1em; }
.hvk-sec .fl-rich-text { max-width: 560px; }
.hvk-sec .hvk-wide-text .fl-rich-text, .hvk-sec .fl-rich-text.hvk-wide-text { max-width: none; }
.hvk-lead, .hvk-lead p { font-size: clamp(18px, 1.1rem + .25vw, 20px); line-height: 1.65; }
.hvk-sec .hvk-lead .fl-rich-text, .hvk-sec .fl-rich-text.hvk-lead { max-width: 540px; }

/* text links in content: underlined in the design */
.hvk-sec .fl-rich-text a:not(.fl-button), .hvk-facs .hvk-fac__intro a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: currentColor;
	text-underline-offset: 5px;
	text-decoration-thickness: 1px;
}
.hvk-sec .fl-rich-text a:not(.fl-button):hover { color: var(--hvk-terra); }
.hvk-bosband .fl-rich-text a:not(.fl-button):hover { color: var(--hvk-zand); }

/* 5. Buttons (BB Button module + class "hvk-btn") ----------------------------
   variants: hvk-btn--ghost, hvk-btn--light, hvk-btn--ghost-light, hvk-btn--zand */
.hvk-sec .fl-module.hvk-btn { display: inline-block !important; vertical-align: top; margin-right: 14px !important; }
.hvk-btn .fl-button-wrap { text-align: left !important; }
body .hvk-btn a.fl-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 16px 30px !important;
	border: 1px solid var(--hvk-bos) !important;
	border-radius: 0 !important;
	background: var(--hvk-bos) !important;
	color: var(--hvk-linnen) !important;
	font-family: var(--hvk-sans) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	letter-spacing: 2px !important;
	text-transform: uppercase;
	box-shadow: none !important;
	transition: background-color .35s var(--hvk-ease), color .35s var(--hvk-ease), border-color .35s var(--hvk-ease);
}
body .hvk-btn a.fl-button *, body .hvk-btn a.fl-button:hover * { color: inherit !important; font: inherit !important; letter-spacing: inherit !important; }
body .hvk-btn a.fl-button:hover, body .hvk-btn a.fl-button:focus-visible { background: var(--hvk-terra) !important; border-color: var(--hvk-terra) !important; color: var(--hvk-linnen) !important; }

body .hvk-btn.hvk-btn--ghost a.fl-button { background: transparent !important; color: var(--hvk-bos) !important; }
body .hvk-btn.hvk-btn--ghost a.fl-button:hover, body .hvk-btn.hvk-btn--ghost a.fl-button:focus-visible { background: var(--hvk-bos) !important; border-color: var(--hvk-bos) !important; color: var(--hvk-linnen) !important; }

body .hvk-btn.hvk-btn--light a.fl-button { background: var(--hvk-linnen) !important; border-color: var(--hvk-linnen) !important; color: var(--hvk-bos) !important; }
body .hvk-btn.hvk-btn--light a.fl-button:hover, body .hvk-btn.hvk-btn--light a.fl-button:focus-visible { background: var(--hvk-zand) !important; border-color: var(--hvk-zand) !important; color: var(--hvk-bos) !important; }

body .hvk-btn.hvk-btn--ghost-light a.fl-button { background: transparent !important; border-color: var(--hvk-linnen) !important; color: var(--hvk-linnen) !important; }
body .hvk-btn.hvk-btn--ghost-light a.fl-button:hover, body .hvk-btn.hvk-btn--ghost-light a.fl-button:focus-visible { background: var(--hvk-linnen) !important; color: var(--hvk-bos) !important; }

body .hvk-btn.hvk-btn--zand a.fl-button { background: var(--hvk-zand) !important; border-color: var(--hvk-zand) !important; color: var(--hvk-bos) !important; }
body .hvk-btn.hvk-btn--zand a.fl-button:hover, body .hvk-btn.hvk-btn--zand a.fl-button:focus-visible { background: var(--hvk-linnen) !important; border-color: var(--hvk-linnen) !important; color: var(--hvk-bos) !important; }

/* small underlined text link (e.g. "Bekijk de faciliteiten") */
.hvk-link a { font-size: 15px; }

/* Photos: Photo module + class "hvk-img" (4:3), "hvk-img--portrait" (4:5), "hvk-img--wide" (16:9)
   Brand frame: a hairline passe-partout with a small gap around every photo (not on hero / tab layers).
   Desktop hover: the photo zooms in slowly inside its frame. */
.hvk-img .fl-photo, .hvk-img .fl-photo-content, .hvk-img .fl-photo-content > a { display: block; width: 100%; text-align: left; }
.hvk-sec .fl-module.hvk-img { padding: var(--hvk-frame-gap) !important; border: 1px solid var(--hvk-frame); box-sizing: border-box; }
.hvk-img .fl-photo-content { position: relative; overflow: hidden; }
.hvk-img img, .hvk-img .fl-photo-img {
	display: block;
	width: 100% !important;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0;
	transition: scale 1.4s var(--hvk-ease);
}
.hvk-img--portrait img, .hvk-img--portrait .fl-photo-img { aspect-ratio: 4 / 5; }
.hvk-img--wide img, .hvk-img--wide .fl-photo-img { aspect-ratio: 16 / 9; }
@media (hover: hover) and (pointer: fine) {
	.hvk-img:hover img, .hvk-img:focus-within img { scale: 1.045; }
}

/* 6. Section patterns (home) ------------------------------------------------ */

/* 6a. Hero: full-screen photo as the BB row background (can become a BB background video later),
   text bottom-left on the logo line. hvk.js adds .hvk-hero__bg for the slow zoom + parallax. */
.fl-row.hvk-hero > .fl-row-content-wrap {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	min-height: calc(100svh - var(--hvk-header-h));
	padding: clamp(96px, 14vh, 180px) var(--hvk-gutter) clamp(64px, 11vh, 128px) !important;
	background-color: var(--hvk-bos);
	background-size: cover;
	background-position: center;
	color: var(--hvk-linnen);
}
.hvk-hero__bg { position: absolute; inset: -2% 0; z-index: 0; background-image: inherit; background-size: cover; background-position: center; will-change: transform; }
.fl-row.hvk-hero > .fl-row-content-wrap::after {
	content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background:
		linear-gradient(180deg, rgba(25, 34, 28, .22) 0%, rgba(25, 34, 28, 0) 30%, rgba(25, 34, 28, .38) 62%, rgba(25, 34, 28, .78) 100%),
		linear-gradient(90deg, rgba(25, 34, 28, .50) 0%, rgba(25, 34, 28, .12) 55%, rgba(25, 34, 28, 0) 100%),
		rgba(25, 34, 28, .08);
}
.fl-row.hvk-hero > .fl-row-content-wrap::before {
	content: ''; position: absolute; left: 50%; bottom: 0; z-index: 2; width: 1px; height: 64px;
	background: linear-gradient(180deg, rgba(240, 235, 229, 0), rgba(240, 235, 229, .8));
	transform-origin: top; animation: hvk-scrollcue 2.6s var(--hvk-ease) infinite;
}
@keyframes hvk-scrollcue { 0% { transform: scaleY(0); opacity: 1; } 60% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0; } }
.hvk-hero .fl-bg-video { z-index: 0; }
.hvk-hero .fl-bg-video video { object-fit: cover; }
.hvk-hero .fl-bg-video-play-pause { display: none !important; }
@media (prefers-reduced-motion: reduce) { .hvk-hero .fl-bg-video { display: none; } }
.hvk-hero .fl-row-content { position: relative; z-index: 1; width: 100%; max-width: var(--hvk-w) !important; margin: 0 auto; }
.hvk-hero .fl-col.hvk-hero__text { flex: 1 1 100%; max-width: 780px !important; color: var(--hvk-linnen); }
body .hvk-hero h1, body .hvk-hero .fl-heading { color: var(--hvk-linnen) !important; text-shadow: 0 1px 30px rgba(25, 34, 28, .25); }
.hvk-hero .fl-module.hvk-lead { max-width: 540px; color: rgba(240, 235, 229, .94); }

/* 6b. Stats: rich-text modules with class "hvk-stat" in a column with class "hvk-stats"
   Markup per stat: <p class="hvk-num">1 groep</p><p>Uitleg</p> */
.hvk-sec .fl-col.hvk-stats > .fl-col-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 32px; }
.hvk-sec .fl-col.hvk-stats--4 > .fl-col-content { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1100px) { .hvk-sec .fl-col.hvk-stats--4 > .fl-col-content { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.hvk-sec .fl-col.hvk-stats > .fl-col-content > .fl-module { margin: 0 !important; }
.hvk-stat, .hvk-sec .fl-module.hvk-stat { position: relative; padding-top: 18px; max-width: none; }
.hvk-stat::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--hvk-line); transform: scaleX(var(--hvk-rule, 1)); transform-origin: left center; }
.hvk-stat .hvk-num { font-family: var(--hvk-serif); font-size: clamp(40px, 4vw, 56px); line-height: 1; letter-spacing: -.01em; margin: 0 0 10px !important; }
.hvk-bosband .hvk-stat::before { background: var(--hvk-line-light); }
.hvk-bosband .hvk-stat .hvk-num { color: var(--hvk-zand); font-size: clamp(44px, 4.4vw, 60px); margin-bottom: 12px !important; }

/* 6c. Tabs (self-running, like Leading Architects): column "hvk-tabs__media" with photo modules "hvk-tabimg"
   (crossfading layers in one frame), column "hvk-tabs__list" with rich-text modules "hvk-tab" (<h3>Titel</h3><p>Tekst</p>).
   hvk.js adds the button, the expanding panel and the progress line; the row pauses on hover and focus. */
.hvk-tabs .fl-col-group:has(> .hvk-tabs__list) { align-items: flex-start; }
.hvk-tabs .fl-col.hvk-tabs__media { flex: 1.55 1 480px; }
.hvk-tabs .fl-col.hvk-tabs__list { flex: 1 1 340px; }
.hvk-tabs .fl-col.hvk-tabs__list > .fl-col-content > .fl-module { margin: 0 !important; }
.hvk-tabs .fl-col.hvk-tabs__media > .fl-col-content {
	position: relative; aspect-ratio: 4 / 3; box-sizing: border-box;
	padding: var(--hvk-frame-gap) !important; border: 1px solid var(--hvk-frame) !important;
}
.hvk-sec .hvk-tabs__media .fl-module.hvk-tabimg {
	position: absolute !important; inset: var(--hvk-frame-gap); margin: 0 !important; padding: 0 !important; border: 0;
	overflow: hidden; opacity: 0; transition: opacity 2.4s cubic-bezier(.4,0,.2,1);
}
.hvk-tabs .hvk-tabimg:first-child, .hvk-tabs.is-ready .hvk-tabimg.is-active { opacity: 1; z-index: 1; }
.hvk-tabs.is-ready .hvk-tabimg:not(.is-active) { opacity: 0; z-index: 0; }
.hvk-tabimg .fl-photo, .hvk-tabimg .fl-photo-content { height: 100%; }
.hvk-tabs .hvk-tabimg img { height: 100% !important; aspect-ratio: auto; transform: scale(1.035); transition: transform 10s linear, scale 1.4s var(--hvk-ease); }
.hvk-tabs.is-ready .hvk-tabimg.is-active img { transform: scale(1); }
.hvk-tab { position: relative; border-top: 1px solid var(--hvk-line); padding: 0 !important; max-width: none !important; }
.hvk-tab:last-child { border-bottom: 1px solid var(--hvk-line); }
.hvk-tab h3 { margin: 0 !important; font-size: clamp(19px, 1rem + .35vw, 21px) !important; line-height: 1.25 !important; }
.hvk-tab p { font-size: 16px; line-height: 1.6; }
.hvk-tabs:not(.is-ready) .hvk-tab { padding: 18px 0 !important; }
.hvk-tabs:not(.is-ready) .hvk-tab p { margin-top: 10px !important; }
.hvk-sec .hvk-tab .hvk-tab__btn,
.hvk-sec .hvk-tab .hvk-tab__btn:hover,
.hvk-sec .hvk-tab .hvk-tab__btn:focus {
	all: unset;
	box-sizing: border-box; display: flex; align-items: center; width: 100%; padding: 16px 0; cursor: pointer;
	font: inherit; line-height: 1.2; color: var(--hvk-bos); background: transparent !important; transition: color .35s var(--hvk-ease);
}
.hvk-sec .hvk-tab .hvk-tab__btn:hover, .hvk-sec .hvk-tab .hvk-tab__btn:focus-visible { color: var(--hvk-terra); }
.hvk-sec .hvk-tab .hvk-tab__btn:focus-visible { outline: 2px solid var(--hvk-terra); outline-offset: 4px; }
.hvk-tab__mark { flex: 0 0 auto; width: 0; height: 1px; margin-right: 0; background: var(--hvk-terra); transition: width 1s ease, margin 1s ease; }
.hvk-tab.is-active .hvk-tab__mark { width: 22px; margin-right: 14px; }
.hvk-tab.is-active .hvk-tab__btn { color: var(--hvk-bos); }
.hvk-tab__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 1.1s cubic-bezier(.4,0,.2,1); }
.hvk-tab__panel > div { min-height: 0; overflow: hidden; }
.hvk-tab.is-active .hvk-tab__panel { grid-template-rows: 1fr; }
.hvk-sec .hvk-tab .hvk-tab__panel p { margin: 0 !important; padding: 0 0 20px 36px; max-width: 460px; opacity: 0; transform: translateY(4px); transition: opacity 1s ease .25s, transform 1s ease .25s; }
.hvk-tab.is-active .hvk-tab__panel p { opacity: 1; transform: none; }
/* progress line removed for good (client feedback 9 Nov); hide it if an old cached script still adds it */
.hvk-tab__bar, .hvk-tab__fill { display: none !important; }
.fl-builder-edit .hvk-tabs .fl-col.hvk-tabs__media > .fl-col-content { aspect-ratio: auto; }
.fl-builder-edit .hvk-sec .hvk-tabs__media .fl-module.hvk-tabimg { position: static !important; opacity: 1; margin-bottom: 12px !important; }
@keyframes hvk-fade { from { opacity: 0; } to { opacity: 1; } }

/* 6d. Section header with a link on the right (column group class via column "hvk-head") */
.hvk-sec .fl-col-group:has(> .fl-col.hvk-head) { align-items: flex-end; justify-content: space-between; gap: 24px; }
.hvk-sec .fl-col.hvk-head { flex: 1 1 auto; }
.hvk-sec .fl-col.hvk-head-link { flex: 0 0 auto; }

/* 6e. Cards (Voor jouw programma): photo + heading + text per column, class "hvk-card" on the column */
.hvk-sec .fl-col-group:has(> .fl-col.hvk-card) { align-items: flex-start; gap: 48px 40px; }
.hvk-sec .fl-col.hvk-card { flex: 1 1 300px; }
.hvk-sec .fl-col.hvk-card > .fl-col-content > .fl-module + .fl-module { margin-top: 16px !important; }
.hvk-card h3 { font-size: clamp(24px, 1.3rem + .4vw, 28px) !important; line-height: 1.15 !important; }
.hvk-card .hvk-img img { aspect-ratio: 4 / 5; transition: opacity .35s var(--hvk-ease); }
.hvk-card .hvk-img a:hover img { opacity: .88; }

/* 6e2. Clickable cards (client feedback 23 Oct): the whole column is one framed link.
   Brand frame around the full card, photo inset with the frame gap, a thin terracotta arrow after the title
   that moves on hover; the title link is stretched over the card so every part is clickable. */
.hvk-sec .fl-col.hvk-card > .fl-col-content {
	position: relative; box-sizing: border-box; height: 100%;
	padding: var(--hvk-frame-gap) var(--hvk-frame-gap) 26px !important;
	border: 1px solid var(--hvk-frame) !important;
	transition: border-color .45s var(--hvk-ease), background-color .45s var(--hvk-ease);
}
.hvk-sec .fl-col-group:has(> .fl-col.hvk-card) { align-items: stretch; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px clamp(20px, 3vw, 40px); }
@media (max-width: 767px) { .hvk-sec .fl-col-group:has(> .fl-col.hvk-card) { grid-template-columns: minmax(0, 1fr); } }
.hvk-sec .hvk-card .fl-module.hvk-img { padding: 0 !important; border: 0 !important; }
.hvk-sec .hvk-card .fl-col-content > .fl-module:not(.hvk-img) { padding-left: 14px !important; padding-right: 14px !important; }
.hvk-sec .fl-col.hvk-card > .fl-col-content > .fl-module.fl-module-heading { margin-top: 22px !important; }
.hvk-card h3 a { display: flex !important; align-items: baseline; justify-content: space-between; gap: 18px; }
.hvk-card h3 a::after {
	content: ''; flex: 0 0 auto; width: 26px; height: 12px; background: var(--hvk-terra);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 12'%3E%3Cpath d='M1 6h23M19 1l5 5-5 5' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 12'%3E%3Cpath d='M1 6h23M19 1l5 5-5 5' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .45s var(--hvk-ease);
}
.hvk-card h3 a::before { content: ''; position: absolute; inset: 0; z-index: 1; }
.hvk-card .fl-photo-content a { position: static; }
.hvk-sec .fl-col.hvk-card > .fl-col-content:hover, .hvk-sec .fl-col.hvk-card > .fl-col-content:focus-within { border-color: var(--hvk-bos) !important; background-color: rgba(255, 255, 255, .35); }
.hvk-white .fl-col.hvk-card > .fl-col-content:hover, .hvk-white .fl-col.hvk-card > .fl-col-content:focus-within { background-color: var(--hvk-linnen); }
.hvk-card .fl-col-content:hover h3 a, .hvk-card .fl-col-content:focus-within h3 a { color: var(--hvk-terra); }
.hvk-card .fl-col-content:hover h3 a::after, .hvk-card .fl-col-content:focus-within h3 a::after { transform: translateX(6px); }
.hvk-card h3 a:focus-visible { outline: 0; }
.hvk-card .fl-col-content:has(h3 a:focus-visible) { outline: 2px solid var(--hvk-terra); outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) { .hvk-card .fl-col-content:hover .hvk-img img { scale: 1.045; } }
.hvk-card .hvk-img a:hover img { opacity: 1; }

/* 6f. Quote */
.hvk-quote blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	font-family: var(--hvk-serif);
	font-style: normal;
	font-size: clamp(28px, 1.3rem + 1.4vw, 40px);
	line-height: 1.25;
	color: inherit;
}
.hvk-quote .hvk-cite { margin-top: 24px !important; }
.hvk-sec .fl-rich-text.hvk-quote, .hvk-quote .fl-rich-text { max-width: 640px; }

/* 6f2. Quote section: the photo gets the larger column */
.hvk-quote-sec .fl-col-group { gap: 48px clamp(48px, 6vw, 96px); }
.hvk-sec.hvk-quote-sec .fl-col:first-child { flex: 1.5 1 480px; }
.hvk-sec.hvk-quote-sec .fl-col:last-child { flex: 1 1 340px; }

/* 6g. FAQ: BB Accordion module with class "hvk-faq" */
.hvk-sec .fl-col.hvk-faq-title { flex: 1 1 300px; }
.hvk-sec .fl-col.hvk-faq-list { flex: 2 1 520px; }
.hvk-sec .fl-col-group:has(> .fl-col.hvk-faq-list) { align-items: flex-start; gap: 32px var(--hvk-gap); }
.hvk-faq .fl-accordion-item { border: 0 !important; border-top: 1px solid var(--hvk-line) !important; border-radius: 0 !important; margin: 0 !important; background: transparent !important; }
.hvk-faq .fl-accordion-item:last-child { border-bottom: 1px solid var(--hvk-line) !important; }
.hvk-faq .fl-accordion-button { padding: 20px 0 !important; background: transparent !important; border: 0 !important; cursor: pointer; display: flex; align-items: baseline; gap: 16px; }
.hvk-faq .fl-accordion-button-label {
	font-family: var(--hvk-serif) !important;
	font-size: clamp(20px, 1.1rem + .4vw, 23px) !important;
	line-height: 1.3 !important;
	font-weight: 400 !important;
	color: var(--hvk-bos) !important;
	padding: 0 !important;
	flex: 1 1 auto;
	text-decoration: none !important;
}
.hvk-faq .fl-accordion-button:hover .fl-accordion-button-label { color: var(--hvk-terra) !important; }
.hvk-faq .fl-accordion-button-icon { color: var(--hvk-bos) !important; opacity: .6; font-size: 14px !important; }
.hvk-faq .fl-accordion-content { padding: 0 0 22px !important; border: 0 !important; background: transparent !important; }
.hvk-faq .fl-accordion-content p { max-width: 620px; margin: 0; }
.hvk-faq .fl-accordion-content p + p { margin-top: 1em; }

/* 6h. Closing CTA with photo background + form */
.fl-row.hvk-cta > .fl-row-content-wrap { position: relative; padding: clamp(72px, 8vw, 100px) var(--hvk-gutter) !important; background-color: var(--hvk-bos); }
.fl-row.hvk-cta > .fl-row-content-wrap::after { content: ''; position: absolute; inset: 0; background: rgba(42, 55, 46, .78); z-index: 0; }
.hvk-cta .fl-row-content { position: relative; z-index: 1; }
.hvk-cta .fl-col-group { align-items: flex-start; gap: 48px clamp(48px, 7vw, 96px); }
.hvk-cta .fl-col.hvk-cta__text { flex: 1 1 380px; color: var(--hvk-linnen); }
.hvk-cta .fl-col.hvk-cta__form { flex: 1 1 460px; }
.hvk-cta h2 { color: var(--hvk-linnen) !important; font-size: clamp(2.5rem, 1.6rem + 2.6vw, 4.25rem) !important; line-height: 1.02 !important; }
.hvk-cta .hvk-contact, .hvk-cta .hvk-contact a { color: var(--hvk-zand) !important; }
.hvk-cta .hvk-contact a { text-decoration: none !important; }
.hvk-cta .hvk-contact a:hover { color: var(--hvk-linnen) !important; }

/* 7. Facilities ------------------------------------------------------------- */
.fl-row.hvk-intro > .fl-row-content-wrap { padding-bottom: clamp(48px, 5vw, 72px) !important; }
.hvk-sec .fl-col-content > .fl-module.hvk-index { margin-top: 44px !important; }
.hvk-sec .fl-rich-text.hvk-index, .hvk-index .fl-rich-text { max-width: none; }
.hvk-closing .fl-col-group { align-items: flex-end; justify-content: space-between; gap: 40px; }
.hvk-sec .fl-col.hvk-closing__text { flex: 1 1 520px; }
.hvk-sec .fl-col.hvk-closing__btns { flex: 0 1 auto; }
.hvk-closing h2 { font-size: clamp(2.5rem, 1.6rem + 2.6vw, 4.25rem) !important; line-height: 1.02 !important; }
.hvk-facs-row .fl-col, .hvk-facs-row .fl-col-content, .hvk-facs-row .fl-module, .hvk-facs-row .fl-module-content { float: none; width: auto; margin: 0 !important; padding: 0 !important; max-width: none !important; }
.hvk-facs-row .fl-col-group::before, .hvk-facs-row .fl-col-group::after, .hvk-facs-row .fl-col-content::before, .hvk-facs-row .fl-col-content::after { content: none !important; display: none !important; }
.hvk-facs-module > p:empty, .hvk-facs-module p:empty { display: none; }

.hvk-fac-index { display: flex; flex-wrap: wrap; gap: 8px 32px; font-size: 15px; }
.hvk-fac-index a { color: var(--hvk-bos); text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.hvk-fac-index a:hover { color: var(--hvk-terra); }

.fl-row.hvk-facs-row > .fl-row-content-wrap { padding: 0 !important; }
.hvk-facs-row .fl-row-content { max-width: none !important; }
.hvk-facs-row .fl-rich-text { max-width: none !important; }

.hvk-fac { padding: 0 var(--hvk-gutter) var(--hvk-space); background: var(--hvk-linnen); }
.hvk-fac--wit { background: var(--hvk-wit); padding-top: var(--hvk-space); }
.hvk-fac--wit + .hvk-fac--linnen { padding-top: var(--hvk-space); }
.hvk-fac__inner { max-width: var(--hvk-w); margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 40px var(--hvk-gap); }
.hvk-fac__media { flex: 1.3 1 440px; min-width: 0; }
.hvk-fac__text { flex: 1 1 340px; min-width: 0; }
.hvk-fac--foto-rechts .hvk-fac__inner { flex-direction: row-reverse; }
.hvk-fac--breed .hvk-fac__media { flex: 1 1 100%; }
.hvk-fac__text--split { flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: 32px clamp(40px, 8vw, 128px); }
.hvk-fac__text--split .hvk-fac__head { flex: 1 1 320px; min-width: 0; }
.hvk-fac__text--split .hvk-fac__body { flex: 1.4 1 420px; min-width: 0; }
.hvk-fac--breed .hvk-fac__inner { gap: 40px; }

.hvk-facs .hvk-fac__title { font-size: var(--hvk-h2); line-height: 1.06; }
.hvk-fac__fig { margin: 14px 0 0 !important; font-family: var(--hvk-serif); font-size: clamp(22px, 1.2rem + .4vw, 26px); line-height: 1.3; color: var(--hvk-terra); }
.hvk-fac__text:not(.hvk-fac__text--split) .hvk-fac__body { margin-top: 24px; }
.hvk-fac__intro { max-width: 560px; }
.hvk-usps { list-style: none; margin: 28px 0 0 !important; padding: 0; max-width: 560px; }
.hvk-usps li { margin: 0; padding: 13px 0; border-top: 1px solid var(--hvk-line); }
.hvk-usps li:last-child { border-bottom: 1px solid var(--hvk-line); }
.hvk-tag { display: inline-block; vertical-align: middle; margin-left: 10px; padding: 5px 10px; border: 1px solid var(--hvk-bos); font-family: var(--hvk-sans); font-size: 12px; letter-spacing: 2px; line-height: 1.2; text-transform: uppercase; position: relative; top: -.15em; }

.hvk-fac--meer .hvk-fac__inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: 56px clamp(48px, 8vw, 128px); align-items: start; }
.hvk-fac--meer .hvk-fac__title { font-size: clamp(30px, 1.4rem + 1.4vw, 44px); line-height: 1.1; }
.hvk-fac--meer .hvk-fac__fig { font-size: 22px; margin-top: 12px !important; }
.hvk-fac--meer .hvk-fac__intro { margin-top: 22px; max-width: 460px; }

/* Gallery block */
.hvk-gal button, .hvk-lb button { text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; box-shadow: none !important; }
.hvk-gal { position: relative; }
.hvk-gal__label { position: absolute; top: 14px; left: 14px; z-index: 2; padding: 6px 10px; background: rgba(240, 235, 229, .92); color: var(--hvk-bos); font-size: 11px; line-height: 1; letter-spacing: .14em; text-transform: uppercase; pointer-events: none; }
.hvk-gal__label[hidden] { display: none; }
.hvk-gal__open { display: block; width: 100%; padding: 0; margin: 0; border: 0; background: none; cursor: zoom-in; border-radius: 0; }
.hvk-gal__open:hover, .hvk-gal__open:focus { background: none; }
.hvk-gal__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.hvk-fac--breed .hvk-gal__img { aspect-ratio: 16 / 9; }
.hvk-gal__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 14px; font-size: 15px; }
.hvk-gal__all {
	padding: 10px 0; margin: 0; border: 0; border-radius: 0; background: none; color: var(--hvk-bos); cursor: pointer;
	font: inherit; font-size: 15px; text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px;
}
.hvk-gal__all:hover, .hvk-gal__all:focus { background: none; color: var(--hvk-terra); }
.hvk-gal__nav { display: flex; align-items: center; gap: 10px; }
.hvk-gal__count { min-width: 48px; text-align: right; font-variant-numeric: tabular-nums; }
.hvk-gal__prev, .hvk-gal__next {
	width: 44px; height: 44px; padding: 0; margin: 0; display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--hvk-line-strong); border-radius: 0; background: transparent; color: var(--hvk-bos); cursor: pointer;
	transition: background-color .35s var(--hvk-ease), color .35s var(--hvk-ease), border-color .35s var(--hvk-ease);
}
.hvk-gal__prev:hover, .hvk-gal__next:hover, .hvk-gal__prev:focus-visible, .hvk-gal__next:focus-visible { background: var(--hvk-bos); border-color: var(--hvk-bos); color: var(--hvk-linnen); }

/* Lightbox (built by hvk.js) */
html.hvk-lb-open, html.hvk-lb-open body { overflow: hidden; }
.hvk-lb {
	position: fixed; inset: 0; z-index: 99999; display: flex; flex-direction: column; box-sizing: border-box;
	padding: 20px clamp(16px, 3vw, 40px); background: rgba(42, 56, 46, .97); color: var(--hvk-linnen);
	animation: hvk-fade .35s var(--hvk-ease);
}
.hvk-lb[hidden] { display: none; }
.hvk-lb__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.hvk-lb__title { margin: 0; font-family: var(--hvk-serif); font-size: 26px; line-height: 1.2; }
.hvk-lb__meta { display: flex; align-items: center; gap: 20px; font-size: 15px; }
.hvk-lb__count { font-variant-numeric: tabular-nums; }
.hvk-lb button {
	margin: 0; border-radius: 0; background: transparent; color: var(--hvk-linnen); border: 1px solid rgba(240, 235, 229, .5);
	cursor: pointer; font: inherit; transition: background-color .35s var(--hvk-ease), color .35s var(--hvk-ease);
}
.hvk-lb__close { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; font-size: 15px; }
.hvk-lb__close:hover, .hvk-lb__prev:hover, .hvk-lb__next:hover { background: var(--hvk-linnen); color: var(--hvk-bos); }
.hvk-lb__stage { flex: 1 1 auto; min-height: 0; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 20px 0; }
.hvk-lb__prev, .hvk-lb__next { flex: 0 0 48px; height: 48px; padding: 0; display: flex; align-items: center; justify-content: center; }
.hvk-lb__prev[hidden], .hvk-lb__next[hidden] { display: none; }
.hvk-lb__img { flex: 1 1 auto; min-width: 0; max-width: 1200px; width: 100%; height: 100%; max-height: calc(100vh - 220px); object-fit: contain; }
.hvk-lb__thumbs { display: flex; gap: 8px; justify-content: safe center; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.hvk-lb .hvk-lb__thumb { flex: 0 0 auto; padding: 0; border: 2px solid transparent; opacity: .6; }
.hvk-lb .hvk-lb__thumb:hover { opacity: 1; background: transparent; }
.hvk-lb .hvk-lb__thumb.is-active { border-color: var(--hvk-zand); opacity: 1; }
.hvk-lb__thumb img { display: block; width: 88px; height: 60px; object-fit: cover; }

/* 8. Forms (Gravity Forms in a rich-text module with class "hvk-form") ------- */
.hvk-sec .fl-rich-text.hvk-form, .hvk-form .fl-rich-text { max-width: none; }
.hvk-form { background: var(--hvk-linnen); color: var(--hvk-bos); padding: clamp(24px, 3vw, 44px) !important; }
.hvk-form > p:empty, .hvk-form p:empty { display: none; }
.hvk-form .gform_wrapper { margin: 0 !important; }
.hvk-form .gform_wrapper .gform_fields { row-gap: 18px !important; column-gap: 18px !important; }
.hvk-form .gform_wrapper .gfield_label, .hvk-form .gform_wrapper legend.gfield_label {
	font-family: var(--hvk-sans) !important; font-size: 14px !important; font-weight: 500 !important; color: var(--hvk-bos) !important; margin-bottom: 6px !important;
}
.hvk-form .gform_wrapper .gfield_required { color: var(--hvk-terra) !important; }
.hvk-form .gform_wrapper input[type=text], .hvk-form .gform_wrapper input[type=email], .hvk-form .gform_wrapper input[type=tel],
.hvk-form .gform_wrapper input[type=number], .hvk-form .gform_wrapper textarea {
	width: 100% !important; box-sizing: border-box; font-family: var(--hvk-sans) !important; font-size: 16px !important; color: var(--hvk-bos) !important;
	padding: 13px !important; border: 1px solid rgba(42, 56, 46, .4) !important; border-radius: 0 !important; background: var(--hvk-wit) !important; box-shadow: none !important;
	min-height: 50px;
}
.hvk-form .gform_wrapper textarea { min-height: 120px; height: 140px !important; }
.hvk-form .gform_wrapper input:focus, .hvk-form .gform_wrapper textarea:focus { border-color: var(--hvk-bos) !important; outline: 2px solid var(--hvk-zand); outline-offset: 0; }
.hvk-form .gform_wrapper .gform_footer { margin: 24px 0 0 !important; padding: 0 !important; }
.hvk-form .gform_wrapper .gform_button, .hvk-form .gform_wrapper .gform-button, .hvk-form .gform_wrapper input[type=submit] {
	min-height: 52px; padding: 16px 30px !important; border: 1px solid var(--hvk-bos) !important; border-radius: 0 !important;
	background: var(--hvk-bos) !important; color: var(--hvk-linnen) !important; font-family: var(--hvk-sans) !important;
	font-size: 13px !important; font-weight: 500 !important; letter-spacing: 2px !important; text-transform: uppercase !important; cursor: pointer; width: auto !important;
	transition: background-color .35s var(--hvk-ease), border-color .35s var(--hvk-ease);
}
.hvk-form .gform_wrapper .gform_button:hover, .hvk-form .gform_wrapper input[type=submit]:hover { background: var(--hvk-terra) !important; border-color: var(--hvk-terra) !important; }
.hvk-form .gform_confirmation_message { font-family: var(--hvk-serif); font-size: 24px; line-height: 1.35; }
.hvk-form .gform_wrapper .gfield_description, .hvk-form .gform_wrapper .gform_required_legend { font-size: 13px; color: rgba(42, 56, 46, .75); }

/* 9. Header (Astra header builder) ------------------------------------------- */
#masthead .ast-primary-header-bar, #masthead .main-header-bar { background: var(--hvk-wit); border-bottom: 1px solid rgba(42, 56, 46, .12); }
#masthead .site-title { margin: 0; line-height: 1; }
#masthead .site-title a, #masthead .site-title a:hover {
	font-family: var(--hvk-serif) !important; font-size: 26px !important; font-weight: 400 !important; line-height: 1 !important;
	letter-spacing: 0 !important; text-transform: none !important; color: var(--hvk-bos) !important; text-decoration: none !important;
}
#masthead .site-description {
	margin: 6px 0 0 !important; font-family: var(--hvk-sans) !important; font-size: 10px !important; line-height: 1 !important;
	letter-spacing: 4px !important; text-transform: uppercase; color: var(--hvk-bos) !important;
}
#masthead .ast-site-identity { padding: 0; }
#masthead .main-header-menu .menu-link, #masthead .main-header-menu > .menu-item > .menu-link {
	font-family: var(--hvk-sans); font-size: 15px; font-weight: 400; color: var(--hvk-bos); text-transform: none; letter-spacing: 0;
	padding: 0 14px; position: relative; text-decoration: none !important;
}
#ast-desktop-header .main-header-menu > .menu-item > .menu-link::after {
	content: ''; position: absolute; left: 14px; right: 14px; bottom: calc(50% - 1.15em); height: 1px; background: currentColor;
	transform: scaleX(0); transform-origin: left; transition: transform .35s var(--hvk-ease);
}
#ast-desktop-header .main-header-menu > .menu-item > .menu-link:hover::after,
#ast-desktop-header .main-header-menu > .current-menu-item > .menu-link::after { transform: scaleX(1); }
#masthead .main-header-menu .menu-link:hover, #masthead .main-header-menu .current-menu-item > .menu-link { color: var(--hvk-bos); }
#masthead .site-header-primary-section-right { gap: 14px; }
#masthead .ast-builder-button-wrap .ast-custom-button, #masthead .ast-custom-button-link .ast-custom-button {
	background: var(--hvk-bos) !important; color: var(--hvk-linnen) !important; border: 1px solid var(--hvk-bos) !important; border-radius: 0 !important;
	font-family: var(--hvk-sans) !important; font-size: 13px !important; font-weight: 500 !important; letter-spacing: 2px !important;
	text-transform: uppercase; padding: 13px 22px !important; line-height: 1.2 !important;
	transition: background-color .35s var(--hvk-ease), border-color .35s var(--hvk-ease);
}
#masthead .ast-builder-button-wrap .ast-custom-button:hover, #masthead .ast-custom-button-link:hover .ast-custom-button { background: var(--hvk-terra) !important; border-color: var(--hvk-terra) !important; color: var(--hvk-linnen) !important; }

/* small desktops (922–1199px): five menu items + the button on one line */
@media (min-width: 922px) and (max-width: 1199px) {
	#masthead .main-header-menu .menu-link, #masthead .main-header-menu > .menu-item > .menu-link { padding: 0 9px; font-size: 14px; }
	#ast-desktop-header .main-header-menu > .menu-item > .menu-link::after { left: 9px; right: 9px; }
	#masthead .ast-builder-button-wrap .ast-custom-button, #masthead .ast-custom-button-link .ast-custom-button { padding: 12px 16px !important; letter-spacing: 1.5px !important; font-size: 12px !important; }
}

/* custom hamburger (svg injected by functions.php): hide Astra's icons once ours is in */
.hvk-has-burger > svg:not(.hvk-burger), .hvk-has-burger .ast-mobile-svg, .hvk-has-burger .ahfb-svg-iconset { display: none !important; }
.hvk-burger { display: block; color: var(--hvk-bos); overflow: visible; }
.hvk-burger line { transform-box: fill-box; transform-origin: center; transition: transform .55s var(--hvk-ease), opacity .3s var(--hvk-ease), translate .55s var(--hvk-ease); }
/* hover: the short middle stroke grows to full width */
.hvk-burger__l2 { transform-origin: right center; }
@media (hover: hover) { .menu-toggle:hover .hvk-burger__l2 { transform: scaleX(1.66); } }
/* open: the close button in the menu starts as the same three strokes and folds into a cross */
#ast-mobile-popup.active .menu-toggle-close .hvk-burger line { transition-delay: .25s; }
.menu-toggle[aria-expanded="true"] .hvk-burger__l1, #ast-mobile-popup.active .menu-toggle-close .hvk-burger__l1 { transform: translateY(5.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .hvk-burger__l3, #ast-mobile-popup.active .menu-toggle-close .hvk-burger__l3 { transform: translateY(-5.5px) rotate(-45deg); }
.menu-toggle[aria-expanded="true"] .hvk-burger__l2, #ast-mobile-popup.active .menu-toggle-close .hvk-burger__l2 { transform: scaleX(0); opacity: 0; }

/* mobile header + off-canvas menu */
#masthead .ast-mobile-menu-trigger-minimal, #masthead .menu-toggle { color: var(--hvk-bos) !important; background: transparent !important; }
#masthead .menu-toggle .mobile-menu-toggle-icon .ast-mobile-svg { fill: var(--hvk-bos) !important; }
#ast-mobile-popup .ast-mobile-popup-drawer, #ast-mobile-popup .ast-mobile-popup-inner { background: var(--hvk-wit) !important; }
#ast-mobile-popup .menu-toggle-close { color: var(--hvk-bos) !important; }
#ast-mobile-popup .menu-toggle-close svg { fill: var(--hvk-bos) !important; }
#ast-mobile-popup .ast-mobile-popup-content { display: flex !important; flex-direction: column !important; min-height: calc(100% - 60px); }
#ast-mobile-popup .main-header-menu .menu-link {
	font-family: var(--hvk-serif) !important; font-size: 26px !important; line-height: 1.25 !important; color: var(--hvk-bos) !important;
	background: transparent !important; padding: 14px 20px !important; border: 0 !important; text-decoration: none !important;
}
#ast-mobile-popup .main-header-menu .menu-item { border-bottom: 1px solid var(--hvk-line) !important; }
#ast-mobile-popup .main-header-menu .current-menu-item > .menu-link,
#ast-mobile-popup .main-header-menu .current-menu-ancestor > .menu-link,
#ast-mobile-popup .main-header-menu .menu-link:hover { color: var(--hvk-terra) !important; background: transparent !important; }
#ast-mobile-popup .ast-menu-toggle, #ast-mobile-popup .ast-menu-toggle:hover, #ast-mobile-popup .ast-menu-toggle:focus,
#ast-mobile-popup .current-menu-item > .ast-menu-toggle, #ast-mobile-popup .current-menu-ancestor > .ast-menu-toggle, #ast-mobile-popup .current-menu-parent > .ast-menu-toggle {
	background: transparent !important; color: var(--hvk-bos) !important; border: 0 !important; box-shadow: none !important;
}
#ast-mobile-popup .ast-header-button-1 { margin-top: auto; padding: 24px 20px; width: 100%; box-sizing: border-box; display: block; }
#ast-mobile-popup .ast-builder-button-wrap { display: block; width: 100%; }
#ast-mobile-popup .ast-builder-button-wrap > a.menu-link { display: none !important; }
#ast-mobile-popup .ast-builder-button-wrap .ast-custom-button, #ast-mobile-popup .ast-custom-button {
	display: flex; justify-content: center; width: 100%; box-sizing: border-box; background: var(--hvk-bos) !important; color: var(--hvk-linnen) !important;
	border: 1px solid var(--hvk-bos) !important; border-radius: 0 !important; padding: 16px 20px !important; font-family: var(--hvk-sans) !important;
	font-size: 13px !important; font-weight: 500 !important; letter-spacing: 2px !important; text-transform: uppercase;
}
#ast-mobile-popup .ast-builder-button-wrap > a, #ast-mobile-popup .ast-custom-button-link { display: block; width: 100%; }

/* Mobile menu as a full-screen linen panel, in the language of the site:
   the panel opens from the top (like the photo reveals), menu words rise from a mask (like the headings),
   the hairlines draw left to right (like the stat rules), the button and contact card fade up last.
   hvk.js / the inline script set --i on every menu item for the stagger. */
:root { --hvk-menu-ease: cubic-bezier(.77, 0, .18, 1); }
#ast-mobile-popup.ast-mobile-popup-drawer { opacity: 1 !important; transition: left 0s linear .55s, right 0s linear .55s, visibility 0s linear .55s !important; }
#ast-mobile-popup.ast-mobile-popup-drawer.active { transition: none !important; }
#ast-mobile-popup .ast-mobile-popup-overlay { display: none !important; }
#ast-mobile-popup .ast-mobile-popup-inner {
	width: 100% !important; max-width: none !important; left: 0 !important; right: 0 !important; opacity: 1 !important; box-shadow: none !important;
	transform: none !important; background: var(--hvk-linnen) !important;
	clip-path: inset(0 0 100% 0); transition: clip-path .55s var(--hvk-menu-ease) !important;
}
#ast-mobile-popup.active .ast-mobile-popup-inner { clip-path: inset(0 0 0 0); transition: clip-path .9s var(--hvk-menu-ease) !important; }
#ast-mobile-popup .ast-mobile-popup-header { min-height: var(--hvk-header-h); box-sizing: border-box; display: flex; align-items: center; justify-content: flex-end; padding: 0 20px !important; border-bottom: 1px solid var(--hvk-line); }
#ast-mobile-popup .menu-toggle-close { padding: 8px !important; margin-right: -8px; background: transparent !important; }
#ast-mobile-popup .menu-toggle-close:focus:not(:focus-visible) { outline: 0 !important; }
#ast-mobile-popup .main-header-menu, #ast-mobile-popup .main-header-bar-navigation, #ast-mobile-popup .ast-builder-menu-mobile { background: transparent !important; }
#ast-mobile-popup .ast-mobile-popup-header { justify-content: space-between; }
#ast-mobile-popup .hvk-menu-mark { color: var(--hvk-bos) !important; text-decoration: none !important; line-height: 1; opacity: 0; transition: opacity .2s; }
#ast-mobile-popup.active .hvk-menu-mark { opacity: 1; transition: opacity .6s var(--hvk-ease) .3s; }
#ast-mobile-popup .hvk-menu-mark span { display: block; font-family: var(--hvk-serif); font-size: 24px; }
#ast-mobile-popup .hvk-menu-mark small { display: block; margin-top: 6px; font-family: var(--hvk-sans); font-size: 10px; letter-spacing: 4px; text-transform: uppercase; }
#ast-mobile-popup .ast-mobile-popup-content { padding-top: 12px; min-height: calc(100% - var(--hvk-header-h)); }
#ast-mobile-popup .main-header-menu .menu-item { border-bottom: 0 !important; position: relative; overflow: hidden; }
#ast-mobile-popup .main-header-menu .menu-item::after {
	content: ''; position: absolute; left: 20px; right: 20px; bottom: 0; height: 1px; background: var(--hvk-line);
	transform: scaleX(0); transform-origin: left center; transition: transform .2s var(--hvk-ease);
}
#ast-mobile-popup .main-header-menu .menu-item > .menu-link { display: block; font-size: 30px !important; padding: 16px 20px !important; transform: translateY(105%); transition: transform .25s var(--hvk-ease), color .35s var(--hvk-ease); }
#ast-mobile-popup.active .main-header-menu .menu-item::after { transform: scaleX(1); transition: transform 1.1s var(--hvk-ease) calc(.45s + var(--i, 0) * 70ms); }
#ast-mobile-popup.active .main-header-menu .menu-item > .menu-link { transform: none; transition: transform 1s var(--hvk-ease) calc(.35s + var(--i, 0) * 70ms), color .35s var(--hvk-ease); }
#ast-mobile-popup .ast-header-button-1, #ast-mobile-popup .hvk-menu-contact { opacity: 0; transform: translateY(14px); transition: opacity .2s, transform .2s; }
#ast-mobile-popup.active .ast-header-button-1, #ast-mobile-popup.active .hvk-menu-contact { opacity: 1; transform: none; transition: opacity .8s var(--hvk-ease) .8s, transform .8s var(--hvk-ease) .8s; }
#ast-mobile-popup .ast-header-button-1 { padding-bottom: 12px; }
#ast-mobile-popup .hvk-menu-contact { padding: 0 20px 28px; font-size: 14px; line-height: 1.7; color: var(--hvk-bos); }
#ast-mobile-popup .hvk-menu-contact a { color: var(--hvk-bos); text-decoration: none; }
#ast-mobile-popup .hvk-menu-contact a:hover { color: var(--hvk-terra); }
body.ast-main-header-nav-open, html.hvk-menu-open, html.hvk-menu-open body { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
	#ast-mobile-popup .ast-mobile-popup-inner, #ast-mobile-popup.active .ast-mobile-popup-inner { clip-path: none; opacity: 0 !important; transition: opacity .25s linear !important; }
	#ast-mobile-popup.active .ast-mobile-popup-inner { opacity: 1 !important; }
	#ast-mobile-popup .main-header-menu .menu-item > .menu-link { transform: none; }
	#ast-mobile-popup .main-header-menu .menu-item::after { transform: none; }
	#ast-mobile-popup .ast-header-button-1, #ast-mobile-popup .hvk-menu-contact { opacity: 1; transform: none; }
}

/* 10. Footer (Themer layout, row class "hvk-footer") -------------------------- */
.fl-row.hvk-footer > .fl-row-content-wrap { background: var(--hvk-bos) !important; color: var(--hvk-linnen); padding: 48px var(--hvk-gutter) !important; border-top: 1px solid rgba(240, 235, 229, .2); }
.hvk-footer .fl-row-content { max-width: var(--hvk-w) !important; margin: 0 auto; }
.hvk-footer .fl-col-group { display: flex; flex-wrap: wrap; gap: 32px; justify-content: space-between; align-items: flex-start; }
.hvk-footer .fl-col { float: none !important; width: auto !important; max-width: none !important; margin: 0 !important; flex: 0 1 auto; min-width: 0; }
.hvk-footer .fl-col-content { margin: 0 !important; padding: 0 !important; }
.hvk-footer .fl-col-group::before, .hvk-footer .fl-col-group::after, .hvk-footer .fl-col-content::before, .hvk-footer .fl-col-content::after { content: none !important; display: none !important; }
.hvk-footer .fl-module, .hvk-footer .fl-module-content { margin: 0 !important; }
.hvk-footer, .hvk-footer p, .hvk-footer .fl-rich-text { font-size: 15px; line-height: 1.7; color: var(--hvk-linnen); }
.hvk-footer p { margin: 0; }
.hvk-footer a, .hvk-footer a:visited { color: var(--hvk-linnen) !important; text-decoration: none !important; transition: color .35s var(--hvk-ease); }
.hvk-footer a:hover, .hvk-footer a:focus { color: var(--hvk-zand) !important; text-decoration: none !important; }
.hvk-footer .hvk-wordmark { font-family: var(--hvk-serif); font-size: 24px; line-height: 1; display: block; }
.hvk-footer .hvk-wordmark-sub { display: block; margin-top: 6px; font-size: 10px; letter-spacing: 4px; line-height: 1; color: var(--hvk-zand); text-transform: uppercase; }
.hvk-footer .hvk-footnav { display: flex; flex-wrap: wrap; gap: 8px 24px; }
/* four columns + bottom bar */
.fl-row.hvk-footer > .fl-row-content-wrap { padding: clamp(56px, 6vw, 80px) var(--hvk-gutter) 28px !important; }
.hvk-footer .fl-col-group:first-child { display: grid; grid-template-columns: 1.3fr 1.1fr .8fr 1.1fr; gap: 40px clamp(32px, 4vw, 64px); }
.hvk-footer .fl-col-group:first-child > .fl-col { flex: none; }
@media (max-width: 1099px) { .hvk-footer .fl-col-group:first-child { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .hvk-footer .fl-col-group:first-child { grid-template-columns: minmax(0, 1fr); } }
.hvk-footer .fl-rich-text p + p { margin-top: 14px; }
.hvk-footer .hvk-foot-tag { margin-top: 18px !important; max-width: 260px; opacity: .85; }
.hvk-footer .hvk-foot-h { font-size: 12px !important; letter-spacing: 2px; text-transform: uppercase; color: var(--hvk-zand) !important; margin-bottom: 14px !important; }
.hvk-footer .hvk-foot-list { list-style: none; margin: 0; padding: 0; }
.hvk-footer .hvk-foot-list li { margin: 0 0 6px; padding: 0; }
.hvk-footer .hvk-foot-list--2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.hvk-footer .fl-col-group + .fl-col-group { margin-top: 48px; padding-top: 22px; border-top: 1px solid rgba(240, 235, 229, .18); }
.hvk-footer .fl-col.hvk-footer__bottom { flex: 1 1 100%; }
.hvk-footer .hvk-copy { display: flex; flex-wrap: wrap; gap: 6px 28px; font-size: 13px; opacity: .75; }

/* Legal pages (privacy): rich-text "hvk-legal" */
.hvk-sec .fl-rich-text.hvk-legal, .hvk-legal .fl-rich-text { max-width: 720px; }
body .hvk-sec .hvk-legal h2 { font-size: clamp(24px, 1.2rem + .6vw, 30px); margin: 44px 0 12px; }
body .hvk-sec .hvk-legal h2:first-child { margin-top: 0; }
.hvk-legal ul { margin: 12px 0 0; padding-left: 20px; }
.hvk-legal li { margin: 4px 0; }
.hvk-legal ul + p { margin-top: 1em !important; }

/* 11. Motion (all designed pages) ---------------------------------------------------
   html.hvk-motion is set in <head> only when motion is allowed; hvk.js reveals everything.
   A failsafe removes the class after 2.5s if the script did not start, so content never stays hidden. */
.hvk-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
.hvk-w > span { display: inline-block; will-change: transform; }
html.hvk-motion .hvk-hero h1,
html.hvk-motion .hvk-hero .fl-module:not(.fl-module-heading),
html.hvk-motion .hvk-sec:not(.hvk-hero) .fl-col-content > .fl-module:not(.fl-module-heading):not(.fl-module-photo):not(.hvk-stat) { opacity: 0; }
html.hvk-motion .hvk-sec:not(.hvk-hero) .fl-module.hvk-img:not(.hvk-tabimg),
html.hvk-motion .hvk-tabs .fl-col.hvk-tabs__media > .fl-col-content { clip-path: inset(0 0 100% 0); }
html.hvk-motion body.fl-builder-edit * { opacity: 1 !important; clip-path: none !important; }

/* 12. Inner pages (Over, Contact, location pages) ----------------------------------
   Page hero: row "hvk-sec hvk-hero hvk-hero--page" (lower than the home hero) with a breadcrumb
   rich-text "hvk-crumbs" above the H1. */
.fl-row.hvk-hero--page > .fl-row-content-wrap { min-height: min(calc(82svh - var(--hvk-header-h)), 720px); padding-top: clamp(120px, 18vh, 200px) !important; padding-bottom: clamp(56px, 9vh, 104px) !important; }
.fl-row.hvk-hero--page > .fl-row-content-wrap::before { content: none; }
.hvk-hero--page .fl-col.hvk-hero__text { max-width: 860px !important; }
body .hvk-hero--page h1 { font-size: clamp(2.5rem, 1.6rem + 3vw, 4.5rem); }
.hvk-sec .fl-col-content > .fl-module.hvk-crumbs + .fl-module { margin-top: 18px !important; }
.hvk-crumbs, .hvk-crumbs p, .hvk-crumbs a { font-size: 12px !important; letter-spacing: 2px; text-transform: uppercase; line-height: 1.6; }
.hvk-crumbs .fl-rich-text { max-width: none; }
.hvk-crumbs a, .hvk-sec .hvk-crumbs .fl-rich-text a:not(.fl-button) { color: inherit; text-decoration: none !important; opacity: .85; }
.hvk-crumbs a:hover, .hvk-sec .hvk-crumbs .fl-rich-text a:not(.fl-button):hover { opacity: 1; color: var(--hvk-zand); }
.hvk-hero .hvk-crumbs { color: var(--hvk-linnen); }
.hvk-crumbs .breadcrumb_last { opacity: .7; }

/* Photo/text split; add "hvk-flip" on the row to put the photo on the right (desktop) */
@media (min-width: 768px) {
	.hvk-sec.hvk-flip .fl-col-group { flex-direction: row-reverse; }
}
.hvk-sec .fl-col-group.hvk-top, .hvk-sec.hvk-top .fl-col-group { align-items: flex-start; }

/* Lists with hairlines in a rich-text module "hvk-list" (2 columns), "hvk-list hvk-list--3" (3) */
.hvk-sec .fl-rich-text.hvk-list, .hvk-list .fl-rich-text { max-width: none; }
.hvk-list ul { list-style: none; margin: 0 !important; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); column-gap: clamp(32px, 4vw, 64px); border-bottom: 1px solid var(--hvk-line); }
.hvk-list--3 ul { grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); }
.hvk-list li { margin: 0 !important; padding: 15px 0 15px 26px; border-top: 1px solid var(--hvk-line); position: relative; }
.hvk-list li::before { content: ''; position: absolute; left: 0; top: 1.45em; width: 12px; height: 1px; background: var(--hvk-terra); }
.hvk-list li strong { font-weight: 500; }
.hvk-bosband .hvk-list ul, .hvk-bosband .hvk-list li { border-color: var(--hvk-line-light); }
.hvk-bosband .hvk-list li::before { background: var(--hvk-zand); }

/* Kicker above a heading: rich-text "hvk-kicker" */
.hvk-kicker, .hvk-kicker p { font-size: 12px !important; letter-spacing: 3px; text-transform: uppercase; line-height: 1.4; color: var(--hvk-terra); }
.hvk-bosband .hvk-kicker, .hvk-bosband .hvk-kicker p { color: var(--hvk-zand); }
.hvk-sec .fl-col-content > .fl-module.hvk-kicker + .fl-module-heading { margin-top: 16px !important; }

/* Statement band (Over: "Het juiste moment") */
.hvk-statement blockquote { margin: 0; padding: 0; border: 0; font-family: var(--hvk-serif); font-style: normal; font-size: clamp(26px, 1.1rem + 1.3vw, 40px); line-height: 1.22; color: inherit; text-wrap: balance; }
.hvk-sec .fl-rich-text.hvk-statement, .hvk-statement .fl-rich-text { max-width: 920px; }
.hvk-bosband .hvk-statement blockquote em { font-style: normal; color: var(--hvk-zand); }

/* Contact details next to the form */
.hvk-sec .fl-rich-text.hvk-details, .hvk-details .fl-rich-text { max-width: 420px; }
.hvk-details dl { margin: 0; }
.hvk-details dt { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--hvk-terra); margin: 0; padding-top: 18px; border-top: 1px solid var(--hvk-line); }
.hvk-details dd { margin: 6px 0 22px; font-family: var(--hvk-serif); font-size: clamp(20px, 1.1rem + .4vw, 24px); line-height: 1.35; }
.hvk-details dd a { color: inherit; text-decoration: none !important; }
.hvk-details dd a:hover { color: var(--hvk-terra); }
.hvk-details dd small { display: block; margin-top: 6px; font-family: var(--hvk-sans); font-size: 15px; }
.hvk-details dd small a { text-decoration: underline !important; text-underline-offset: 4px; }
.hvk-sec .fl-col.hvk-contact-form { flex: 1.35 1 480px; }
.hvk-sec .fl-col.hvk-contact-info { flex: 1 1 320px; }
.hvk-contact-sec .fl-col-group { align-items: flex-start; }
.hvk-contact-sec .hvk-form { background: var(--hvk-wit); }

/* Placeholders for the client (staging): <mark class="hvk-ph">[…]</mark> */
mark.hvk-ph { background: var(--hvk-zand); color: var(--hvk-bos); padding: 0 .3em; font-style: normal; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.hvk-num mark.hvk-ph { font-size: .6em; vertical-align: middle; }

/* Booking steps (Huren & prijzen): stat strip with numbers 01-04 */
.hvk-steps .hvk-stat strong { font-weight: 500; }
.hvk-steps .hvk-stat .hvk-num { color: var(--hvk-terra); }

/* Text link under a button pair */
.hvk-sec .fl-col-content > .fl-module.hvk-link--after-btns { display: block; margin-top: 28px !important; }
/* A note line under a hairline list (e.g. "De kosten voor extra's zijn op aanvraag.") */
.hvk-list ul + p { margin-top: 22px; font-size: 15px; opacity: .85; }
.hvk-faq .fl-accordion-content ul { margin: 0 0 1em 1.2em; }
.hvk-bosband .hvk-link a { color: var(--hvk-linnen); }

/* Related pages: three smaller landscape cards */
.hvk-sec.hvk-related .fl-col.hvk-card { flex: 1 1 240px; }
.hvk-related .hvk-card .hvk-img img { aspect-ratio: 4 / 3; }
.hvk-related .hvk-card h3 { font-size: clamp(22px, 1.2rem + .3vw, 25px) !important; }
.hvk-related .hvk-card p { font-size: 16px; }

/* Responsive ------------------------------------------------------------------ */
@media (max-width: 921px) {
	.fl-row.hvk-hero > .fl-row-content-wrap { min-height: min(calc(100svh - var(--hvk-header-h)), 760px); }
	.hvk-fac--foto-rechts .hvk-fac__inner { flex-direction: row; }
	.hvk-sec .fl-col.hvk-col-portrait { max-width: 480px !important; }
}
@media (max-width: 921px) {
	:root { --hvk-header-h: 72px; --hvk-frame-gap: 10px; }
}
@media (max-width: 767px) {
	body { font-size: 16px; }
	.fl-row.hvk-hero > .fl-row-content-wrap { min-height: calc(100svh - var(--hvk-header-h)); }
	.hvk-sec .hvk-tab .hvk-tab__panel p { padding-left: 0; }
	.hvk-sec .fl-col-group { gap: 32px; }
	.hvk-sec .fl-col-group + .fl-col-group { margin-top: 32px; }
	.hvk-sec .fl-col, .hvk-sec .fl-col.hvk-col-wide, .hvk-sec .fl-col.hvk-col-narrow, .hvk-sec .fl-col.hvk-card { flex-basis: 100%; }
	.hvk-sec .fl-col.hvk-closing__btns, .hvk-sec .fl-col.hvk-head-link { flex: 1 1 100%; }
	.hvk-sec .fl-col-content > .fl-module.hvk-btn,
	.hvk-sec .fl-module.hvk-btn { display: block !important; margin-right: 0 !important; }
	.hvk-sec .fl-col-content > .fl-module.hvk-btn + .fl-module.hvk-btn { margin-top: 12px !important; }
	body .hvk-sec .hvk-btn a.fl-button { display: flex !important; width: 100%; box-sizing: border-box; }
	.hvk-sec .fl-col-content > .fl-module.hvk-btn:first-child + .fl-module.hvk-btn { margin-top: 12px !important; }
	.hvk-sec .fl-col.hvk-stats > .fl-col-content { gap: 28px 20px; }
	.hvk-stat .hvk-num { font-size: 36px; }
	.hvk-bosband .hvk-stat .hvk-num { font-size: 44px; }
	.hvk-gal__bar { font-size: 14px; }
	.hvk-lb { padding: 14px 12px; }
	.hvk-lb__stage { gap: 8px; }
	.hvk-lb__stage { position: relative; padding: 12px 0; }
	.hvk-lb .hvk-lb__prev, .hvk-lb .hvk-lb__next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 40px; height: 40px; background: rgba(42, 56, 46, .65); }
	.hvk-lb .hvk-lb__prev { left: 4px; }
	.hvk-lb .hvk-lb__next { right: 4px; }
	.hvk-lb__img { max-width: 100%; }
	.hvk-lb__title { font-size: 20px; }
	.hvk-lb__img { max-height: calc(100vh - 200px); }
	.hvk-lb__thumb img { width: 64px; height: 44px; }
	.hvk-tag { margin-left: 6px; }
	.hvk-form .gform_wrapper .gform_button, .hvk-form .gform_wrapper input[type=submit] { width: 100% !important; }
	.hvk-footer .fl-col { flex: 1 1 100% !important; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
@media (max-width: 767px) {
	.fl-row.hvk-hero--page > .fl-row-content-wrap { min-height: 0; padding-top: 72px !important; padding-bottom: 44px !important; }
	body .hvk-hero--page h1 { font-size: 34px; line-height: 1.08; }
	.hvk-hero--page .hvk-lead, .hvk-hero--page .hvk-lead p { font-size: 16px; line-height: 1.6; }
	.hvk-crumbs, .hvk-crumbs p, .hvk-crumbs a { font-size: 11px !important; letter-spacing: 1.5px; }
	.hvk-details dd { font-size: 20px; }
	.hvk-sec .fl-col.hvk-stats--4 > .fl-col-content { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hvk-contact-sec .fl-col.hvk-contact-form { order: -1; }
	.hvk-contact-sec .hvk-form { padding: 20px !important; }
	/* hero text spans the full width on phones: darker band behind the headline + a soft left shade */
	.fl-row.hvk-hero > .fl-row-content-wrap::after {
		background:
			linear-gradient(180deg, rgba(25, 34, 28, .18) 0%, rgba(25, 34, 28, .12) 20%, rgba(25, 34, 28, .58) 40%, rgba(25, 34, 28, .62) 64%, rgba(25, 34, 28, .84) 100%),
			linear-gradient(90deg, rgba(25, 34, 28, .30) 0%, rgba(25, 34, 28, .10) 70%, rgba(25, 34, 28, 0) 100%);
	}
	body .hvk-hero h1, body .hvk-hero .fl-heading { text-shadow: 0 1px 2px rgba(25, 34, 28, .35), 0 2px 28px rgba(25, 34, 28, .55); }
}
