/*
Theme Name: DVM Base Child Theme
Theme URI: https://dvmgroep.nl/
Description: Herbruikbaar Astra child theme van DVM Groep.
Author: DVM Groep
Author URI: https://dvmgroep.nl/
Template: astra
Version: 1.0.0
Text Domain: dvm-base-child
*/

.caribexport-contact-form-wrap {
	width: 100% !important;
	max-width: 760px !important;
	margin-left: 0;
	margin-right: auto;
}

.caribexport-contact-form {
	width: 100% !important;
	max-width: 760px !important;
}

.caribexport-contact-form p {
	margin-bottom: 14px;
}

.caribexport-contact-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 6px;
}

.caribexport-contact-form input[type="text"],
.caribexport-contact-form input[type="email"],
.caribexport-contact-form select,
.caribexport-contact-form textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ff8a00;
	border-radius: 12px;
	background: #fff;
}

.caribexport-contact-form textarea {
	resize: vertical;
	min-height: 140px;
	padding-top: 14px;
	padding-bottom: 14px;
	border-radius: 0;
}

.caribexport-contact-form button[type="submit"] {
	padding: 11px 18px;
	border: 1px solid #ff8a00;
	border-radius: 12px;
	cursor: pointer;
	background: #ff8a00;
	color: #ffffff;
	font-weight: 600;
}

.caribexport-contact-form button[type="submit"]:hover,
.caribexport-contact-form button[type="submit"]:focus {
	background: #e67800;
	color: #ffffff;
}

.caribexport-contact-hidden {
	display: none !important;
	visibility: hidden;
	height: 0;
	overflow: hidden;
}

.caribexport-form-alert {
	padding: 12px 14px;
	border-radius: 6px;
	margin-bottom: 14px;
}

.caribexport-form-alert-success {
	background: #e9f8ef;
	color: #1d6f3c;
}

.caribexport-form-alert-error {
	background: #fdeaea;
	color: #9d1e1e;
}

.caribexport-contact-consent label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-weight: 500;
}

.caribexport-contact-consent input[type="checkbox"] {
	margin-top: 3px;
}

.caribexport-columns {
	display: grid;
	grid-template-columns: repeat(var(--caribexport-columns-desktop, var(--caribexport-columns, 2)), minmax(0, 1fr));
	gap: var(--caribexport-gap-desktop, var(--caribexport-gap, 24px));
	margin-bottom: 24px;
}

.caribexport-column {
	min-width: 0;
	grid-column: span var(--caribexport-span-desktop, var(--caribexport-span, 1));
}

/* Hide theme page title wrapper on pages (content title can still be added manually). */
.page .entry-header,
.page .ast-article-single .entry-header,
.page .ast-single-post .entry-header,
.page .entry-header .entry-title {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Keep content images proportional after editor save updates */
.entry-content img,
.entry-content figure img,
.entry-content .wp-block-image img {
	height: auto !important;
	max-width: 100% !important;
}

@media (max-width: 1024px) {
	.caribexport-columns {
		grid-template-columns: repeat(var(--caribexport-columns-tablet, 2), minmax(0, 1fr));
		gap: var(--caribexport-gap-tablet, 20px);
	}

	.caribexport-column {
		grid-column: span var(--caribexport-span-tablet, 1);
	}
}

@media (max-width: 921px) {
	.caribexport-columns {
		grid-template-columns: repeat(var(--caribexport-columns-mobile, 1), minmax(0, 1fr));
		gap: var(--caribexport-gap-mobile, 18px);
	}

	.caribexport-column {
		grid-column: span var(--caribexport-span-mobile, 1);
	}
}

.block-editor-page .caribexport-columns {
	outline: 1px dashed rgba(29, 75, 116, 0.35);
	outline-offset: 6px;
	padding: 6px;
}

.block-editor-page .caribexport-column {
	outline: 1px dashed rgba(244, 132, 31, 0.45);
	outline-offset: -2px;
	padding: 6px;
}

body {
	position: relative;
}

body::before {
	content: none;
}

#page,
.site,
.ast-site-container,
.site-content,
.site-header,
.site-footer {
	position: relative;
	z-index: 1;
}

.caribexport-faq {
	margin: 32px 0;
}

.caribexport-faq-title {
	margin-bottom: 14px;
}

.caribexport-faq-list {
	display: grid;
	gap: 10px;
}

.caribexport-faq-item {
	border: 1px solid #dde3ea;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.caribexport-faq-question {
	list-style: none;
	cursor: pointer;
	padding: 14px 16px;
	font-weight: 600;
	position: relative;
}

.caribexport-faq-question::-webkit-details-marker {
	display: none;
}

.caribexport-faq-question::after {
	content: "+";
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 20px;
	line-height: 1;
}

.caribexport-faq-item[open] .caribexport-faq-question::after {
	content: "-";
}

.caribexport-faq-answer {
	padding: 0 16px 14px;
}

.caribexport-divider {
	width: 100%;
	margin: 28px 0;
	position: relative;
}

.caribexport-divider.caribexport-divider-line {
	height: 0;
	border-top: 2px solid var(--caribexport-divider-color, #eaf0f7);
}

.caribexport-divider.caribexport-divider-wave,
.caribexport-divider.caribexport-divider-wave-soft,
.caribexport-divider.caribexport-divider-diagonal,
.caribexport-divider.caribexport-divider-tilt-up,
.caribexport-divider.caribexport-divider-tilt-down,
.caribexport-divider.caribexport-divider-curve,
.caribexport-divider.caribexport-divider-curve-rise,
.caribexport-divider.caribexport-divider-peak {
	height: var(--caribexport-divider-height, 90px);
	background: var(--caribexport-divider-color, #eaf0f7);
}

.caribexport-divider.caribexport-divider-wave {
	clip-path: polygon(0 42%, 14% 54%, 30% 40%, 46% 54%, 62% 40%, 78% 54%, 100% 42%, 100% 100%, 0 100%);
}

.caribexport-divider.caribexport-divider-diagonal {
	clip-path: polygon(0 42%, 100% 0, 100% 100%, 0 100%);
}

.caribexport-divider.caribexport-divider-curve {
	clip-path: polygon(0 30%, 16% 20%, 34% 12%, 50% 8%, 66% 12%, 84% 20%, 100% 30%, 100% 100%, 0 100%);
}

.caribexport-divider.caribexport-divider-curve-rise {
	clip-path: polygon(0 84%, 12% 76%, 24% 66%, 36% 56%, 48% 44%, 62% 30%, 78% 14%, 100% 0, 100% 100%, 0 100%);
}

.caribexport-divider.caribexport-divider-wave-soft {
	clip-path: polygon(0 42%, 16% 52%, 32% 40%, 48% 52%, 64% 40%, 80% 52%, 100% 40%, 100% 100%, 0 100%);
}

.caribexport-divider.caribexport-divider-tilt-up {
	clip-path: polygon(0 22%, 100% 0, 100% 100%, 0 100%);
}

.caribexport-divider.caribexport-divider-tilt-down {
	clip-path: polygon(0 0, 100% 22%, 100% 100%, 0 100%);
}

.caribexport-divider.caribexport-divider-peak {
	clip-path: polygon(0 26%, 50% 0, 100% 26%, 100% 100%, 0 100%);
}

@media (max-width: 921px) {
	#ast-mobile-popup .ast-mobile-popup-inner,
	#ast-mobile-popup .ast-mobile-popup-header,
	#ast-mobile-popup .ast-mobile-popup-content {
		background: #16244a;
	}

	.caribexport-custom-header-image {
		margin-top: 0 !important;
	}

	.caribexport-divider.caribexport-divider-wave,
	.caribexport-divider.caribexport-divider-wave-soft,
	.caribexport-divider.caribexport-divider-diagonal,
	.caribexport-divider.caribexport-divider-tilt-up,
	.caribexport-divider.caribexport-divider-tilt-down,
	.caribexport-divider.caribexport-divider-curve,
	.caribexport-divider.caribexport-divider-curve-rise,
	.caribexport-divider.caribexport-divider-peak {
		height: clamp(18px, calc(var(--caribexport-divider-height, 90px) * 0.72), 80px);
	}
}

.caribexport-cookie-bar {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 99999;
	background: #16244a;
	color: #ffffff;
	padding: 14px 16px;
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
}

.caribexport-cookie-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.45;
}

.caribexport-cookie-more-link {
	color: #ffb15a;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
	margin-left: 6px;
}

.caribexport-cookie-more-link:hover,
.caribexport-cookie-more-link:focus {
	color: #ffffff;
}

.caribexport-cookie-actions {
	display: flex;
	gap: 10px;
	flex-shrink: 0;
}

.caribexport-cookie-btn {
	border: 1px solid #ffffff;
	border-radius: 10px;
	padding: 8px 12px;
	cursor: pointer;
	font-size: 13px;
}

.caribexport-cookie-btn-primary {
	background: #ff8a00;
	color: #ffffff;
	border-color: #ff8a00;
}

.caribexport-cookie-btn-secondary {
	background: transparent;
	color: #ffffff;
}

body.caribexport-cookie-visible {
	padding-bottom: 110px;
}

/* Custom mobile bottom-sheet menu must never render on desktop */
#caribexport-mobile-sheet {
	display: none !important;
}

@media (max-width: 767px) {
	.caribexport-cookie-bar {
		left: 8px;
		right: 8px;
		bottom: 8px;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		flex-wrap: nowrap;
		gap: 8px;
		padding: 10px 12px;
		border-radius: 10px;
	}

	.caribexport-cookie-text {
		flex: 1 1 auto;
		min-width: 0;
		font-size: 12px;
		line-height: 1.35;
	}

	.caribexport-cookie-actions {
		width: auto;
		margin-left: auto;
		flex-wrap: nowrap;
		gap: 6px;
	}

	.caribexport-cookie-btn {
		flex: 0 0 auto;
		white-space: nowrap;
		padding: 6px 9px;
		font-size: 11px;
		border-radius: 9px;
	}

	.entry-content > h1:first-child,
	.ast-single-post .entry-header + .entry-content h1:first-child,
	.ast-article-single .entry-content h1:first-child {
		margin-top: 18px !important;
	}
}

@media (max-width: 921px) {
	#caribexport-mobile-sheet {
		display: block !important;
	}

	/* Mobile fix: prevent news/blog images from being vertically compressed */
	.blog .post-thumb-img-content,
	.archive .post-thumb-img-content,
	.blog .ast-blog-featured-section,
	.archive .ast-blog-featured-section,
	.single-post .ast-single-post-featured-section,
	.single-post .post-thumb-img-content {
		height: auto !important;
		max-height: none !important;
		aspect-ratio: auto !important;
		overflow: visible !important;
	}

	.blog .post-thumb-img-content img,
	.archive .post-thumb-img-content img,
	.blog .ast-blog-featured-section img,
	.archive .ast-blog-featured-section img,
	.single-post .ast-single-post-featured-section img,
	.single-post .post-thumb-img-content img,
	.single-post .entry-content img,
	.blog .entry-content img,
	.archive .entry-content img {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		max-width: 100% !important;
		max-height: none !important;
		object-fit: contain !important;
		aspect-ratio: auto !important;
	}

	body.caribexport-cookie-visible {
		padding-bottom: 150px;
	}
}
