/**
 * Joyce Korver — component styles that theme.json cannot express
 * (sticky header, photo shapes, cards, form, river).
 */

@font-face {
	font-family: "Karla";
	src: url("../fonts/karla-latin-ext.woff2") format("woff2");
	font-weight: 400 600;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-02BA, U+1E00-1EFF, U+20A0-20AB, U+20AD-20C0;
}

.skip-link.screen-reader-text:focus {
	background: var(--wp--preset--color--terracotta, #c1552c);
	color: var(--wp--preset--color--cream, #f7f1e8);
	outline: 2px solid var(--wp--preset--color--ink, #2b2622);
	outline-offset: 2px;
}

::selection {
	background: var(--wp--preset--color--gold, #d9a441);
	color: var(--wp--preset--color--ink, #2b2622);
}

:focus-visible {
	outline: 2px solid var(--wp--preset--color--terracotta, #c1552c);
	outline-offset: 3px;
}

.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 30;
	background: rgba(247, 241, 232, 0.93);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-bottom: 1px solid rgba(43, 38, 34, 0.1);
}

.jk-header {
	padding-top: 16px;
	padding-bottom: 16px;
}

.jk-header .wp-block-site-title a,
.jk-brand a {
	color: var(--wp--preset--color--ink, #2b2622);
	text-decoration: none;
}

.jk-header .wp-block-navigation {
	gap: 30px;
}

.jk-nav-cta .wp-block-navigation-item__content {
	display: inline-flex !important;
	align-items: center;
	padding: 10px 20px;
	border-radius: 999px;
	background: var(--wp--preset--color--terracotta, #c1552c);
	color: var(--wp--preset--color--cream, #f7f1e8) !important;
	font-weight: 500;
}

.jk-nav-cta .wp-block-navigation-item__content:hover,
.jk-nav-cta .wp-block-navigation-item__content:focus-visible {
	background: var(--wp--preset--color--ink, #2b2622);
	color: var(--wp--preset--color--cream, #f7f1e8) !important;
}

.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--karla, Karla, sans-serif) !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--sage, #4e6b52) !important;
	line-height: 1.4 !important;
}

.is-style-pullquote {
	font-family: var(--wp--preset--font-family--fraunces, Fraunces, serif) !important;
	font-style: italic;
	font-size: 24px !important;
	line-height: 1.4 !important;
	padding-left: 24px;
	border-left: 3px solid var(--wp--preset--color--sage, #4e6b52);
	margin-top: 32px !important;
}

.is-style-text-link a {
	font-weight: 500;
	border-bottom: 1px solid rgba(193, 85, 44, 0.4);
	padding-bottom: 2px;
}

.is-style-text-link a:hover,
.is-style-text-link a:focus-visible {
	border-bottom-color: var(--wp--preset--color--ink, #2b2622);
}

.jk-hero {
	padding-top: 92px;
	padding-bottom: 84px;
}

.jk-hero h1 em,
.jk-hero-accent {
	font-style: italic;
	color: var(--wp--preset--color--terracotta, #c1552c);
}

.jk-hero .jk-lede {
	font-size: 20px;
	line-height: 1.55;
	color: rgba(43, 38, 34, 0.82);
	max-width: 34em;
}

.jk-hero-photo-wrap {
	position: relative;
}

.jk-hero-photo-wrap::before {
	content: "";
	position: absolute;
	inset: -18px -18px auto auto;
	width: 190px;
	height: 190px;
	border-radius: 999px;
	background: var(--wp--preset--color--gold, #d9a441);
	opacity: 0.28;
	z-index: 0;
	pointer-events: none;
}

.jk-hero-photo {
	position: relative;
	z-index: 1;
}

.jk-hero-photo img,
.jk-hero-photo .wp-block-image img {
	border-radius: 4px 120px 4px 4px;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 20%;
	display: block;
}

.jk-river {
	line-height: 0;
	height: 78px;
	background-color: var(--wp--preset--color--sand, #efe6d3);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0 62 C 300 8, 520 96, 760 52 C 1000 8, 1220 44, 1440 20 L1440 90 L0 90 Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0 62 C 300 8, 520 96, 760 52 C 1000 8, 1220 44, 1440 20 L1440 90 L0 90 Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	margin-bottom: -1px;
}

.jk-section-visie {
	background: var(--wp--preset--color--sand, #efe6d3);
	padding-top: 24px;
	padding-bottom: 96px;
}

.jk-section-visie .jk-square img {
	border-radius: 4px;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.jk-section-situaties {
	padding-top: 96px;
	padding-bottom: 8px;
}

.jk-badge {
	width: 34px;
	height: 34px;
	border-radius: 999px;
	background: var(--wp--preset--color--sand, #efe6d3);
	color: var(--wp--preset--color--sage, #4e6b52);
	font-family: var(--wp--preset--font-family--fraunces, Fraunces, serif);
	font-size: 15px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	line-height: 1;
}

.is-style-card,
.jk-card {
	background: var(--wp--preset--color--paper, #fffdf9);
	border: 1px solid rgba(43, 38, 34, 0.1);
	border-radius: 6px;
	height: 100%;
	position: relative;
	transition: border-color 0.2s ease, transform 0.2s ease;
}

.is-style-card:hover,
.jk-card:hover {
	border-color: var(--wp--preset--color--terracotta, #c1552c);
	transform: translateY(-3px);
}

.jk-card .jk-card-cta {
	color: var(--wp--preset--color--terracotta, #c1552c);
	font-weight: 500;
	margin-top: auto;
	padding-top: 12px;
}

.jk-card .jk-card-cta a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.jk-section-boeken {
	background: var(--wp--preset--color--sand, #efe6d3);
	padding-top: 88px;
	padding-bottom: 88px;
	margin-top: 96px;
}

.jk-book-card {
	background: var(--wp--preset--color--paper, #fffdf9);
	border: 1px solid rgba(43, 38, 34, 0.08);
	border-radius: 6px;
	overflow: hidden;
	height: 100%;
}

.jk-book-card .wp-block-image,
.jk-book-card .wp-block-image img {
	border-radius: 0;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	width: 100%;
}

.is-style-sage-card,
.jk-sage-card {
	background: var(--wp--preset--color--sage, #4e6b52) !important;
	color: var(--wp--preset--color--cream, #f7f1e8);
	border-radius: 6px;
	height: 100%;
}

.is-style-sage-card h3,
.jk-sage-card h3 {
	color: var(--wp--preset--color--cream, #f7f1e8) !important;
}

.is-style-sage-card p,
.jk-sage-card p {
	color: rgba(247, 241, 232, 0.85);
}

.jk-soon {
	display: inline-flex;
	align-self: flex-start;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--wp--preset--color--gold, #d9a441);
	color: var(--wp--preset--color--ink, #2b2622);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.3;
}

.is-style-on-sage .wp-block-button__link {
	background: var(--wp--preset--color--cream, #f7f1e8) !important;
	color: var(--wp--preset--color--ink, #2b2622) !important;
}

.is-style-on-sage .wp-block-button__link:hover,
.is-style-on-sage .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--gold, #d9a441) !important;
}

.jk-section-over {
	padding-top: 96px;
	padding-bottom: 96px;
}

.jk-portrait img,
.jk-portrait .wp-block-image img {
	border-radius: 120px 4px 4px 4px;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 50% 40%;
	width: 100%;
	height: 100%;
}

.jk-section-reviews {
	background: var(--wp--preset--color--paper, #fffdf9);
	border-top: 1px solid rgba(43, 38, 34, 0.08);
	border-bottom: 1px solid rgba(43, 38, 34, 0.08);
	padding-top: 84px;
	padding-bottom: 84px;
}

.jk-section-reviews blockquote,
.jk-section-reviews .wp-block-quote {
	margin: 0;
	padding: 0;
	border: 0;
	font-family: var(--wp--preset--font-family--fraunces, Fraunces, serif);
	font-size: 21px;
	line-height: 1.45;
	color: var(--wp--preset--color--ink, #2b2622);
}

.jk-section-reviews figcaption,
.jk-section-reviews cite {
	margin-top: 18px;
	font-size: 15px;
	font-style: normal;
	color: rgba(43, 38, 34, 0.65);
}

.jk-section-contact {
	padding-top: 92px;
	padding-bottom: 80px;
}

.jk-contact__form {
	display: grid;
	gap: 18px;
}

.jk-contact__field {
	display: grid;
	gap: 7px;
	font-size: 15px;
	font-weight: 500;
}

.jk-contact__field input,
.jk-contact__field textarea {
	padding: 14px 16px;
	border: 1px solid rgba(43, 38, 34, 0.22);
	border-radius: 4px;
	background: var(--wp--preset--color--paper, #fffdf9);
	font-family: inherit;
	font-size: 17px;
	font-weight: 400;
	color: inherit;
	width: 100%;
}

.jk-contact__field textarea {
	resize: vertical;
	min-height: 8rem;
}

.jk-contact__field input:focus,
.jk-contact__field textarea:focus {
	border-color: var(--wp--preset--color--terracotta, #c1552c);
	outline: 2px solid var(--wp--preset--color--terracotta, #c1552c);
	outline-offset: 2px;
}

.jk-contact__submit {
	justify-self: start;
	margin-top: 4px;
	padding: 15px 30px;
	border: none;
	border-radius: 999px;
	background: var(--wp--preset--color--terracotta, #c1552c);
	color: var(--wp--preset--color--cream, #f7f1e8);
	font: inherit;
	font-weight: 500;
	cursor: pointer;
}

.jk-contact__submit:hover,
.jk-contact__submit:focus-visible {
	background: var(--wp--preset--color--ink, #2b2622);
}

.jk-contact__honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.jk-contact__success {
	padding: 40px 32px;
	background: var(--wp--preset--color--sand, #efe6d3);
	border-radius: 6px;
}

.jk-contact__success-title {
	margin: 0 0 8px;
	font-family: var(--wp--preset--font-family--fraunces, Fraunces, serif);
	font-size: 26px;
	line-height: 1.2;
}

.jk-contact__error {
	padding: 16px 18px;
	margin-bottom: 18px;
	background: #f3ded7;
	border-left: 3px solid var(--wp--preset--color--terracotta, #c1552c);
	border-radius: 4px;
}

.jk-contact-form-editor {
	padding: 24px;
	background: var(--wp--preset--color--sand, #efe6d3);
	border-radius: 6px;
}

.jk-contact-form-editor__title {
	margin: 0 0 6px;
	font-family: var(--wp--preset--font-family--fraunces, Fraunces, serif);
	font-size: 22px;
}

.jk-contact-form-editor__help {
	margin: 0;
	color: rgba(43, 38, 34, 0.75);
}

.jk-footer {
	background: var(--wp--preset--color--ink, #2b2622);
	color: rgba(247, 241, 232, 0.75);
	padding-top: 40px;
	padding-bottom: 40px;
}

.jk-footer .jk-brand,
.jk-footer .jk-brand a,
.jk-footer .wp-block-site-title,
.jk-footer .wp-block-site-title a {
	font-family: var(--wp--preset--font-family--fraunces, Fraunces, serif);
	font-size: 20px;
	color: var(--wp--preset--color--cream, #f7f1e8) !important;
	text-decoration: none;
}

.jk-footer .wp-block-navigation,
.jk-footer .wp-block-navigation a {
	font-size: 15px;
	color: rgba(247, 241, 232, 0.75);
}

.jk-footer .wp-block-navigation a:hover,
.jk-footer .wp-block-navigation a:focus-visible {
	color: var(--wp--preset--color--gold, #d9a441);
}

.wp-block-button__link {
	text-decoration: none !important;
}

@media (max-width: 781px) {
	.jk-hero,
	.jk-section-situaties,
	.jk-section-over {
		padding-top: 56px;
		padding-bottom: 56px;
	}

	.jk-section-boeken,
	.jk-section-reviews,
	.jk-section-contact {
		padding-top: 56px;
		padding-bottom: 56px;
	}

	.jk-section-boeken {
		margin-top: 48px;
	}

	.jk-hero-photo-wrap::before {
		width: 120px;
		height: 120px;
	}

	.jk-header .wp-block-navigation {
		gap: 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.is-style-card,
	.jk-card {
		transition: none;
	}

	.is-style-card:hover,
	.jk-card:hover {
		transform: none;
	}
}
