/**
 * Productpagina styles — CBV single-product layout
 *
 * Includes shared .cbv-btn-primary class (also used by rekenhulp modal via .cbv-rh-calculate).
 * Styles: two-column layout, image carousel, accordion, form block, responsive.
 *
 * @package containerbakverhuur
 */

/* ==========================================================================
 * Shared primary button — navy conversion color, white text.
 * Consistent met de checkout-knoppen (.cbv-btn-primary in checkout.css).
 * Use this class on new buttons; rekenhulp.css keeps its own copy for standalone use.
 * ========================================================================== */
.cbv-btn-primary {
	display: block;
	width: 100%;
	padding: 12px 24px;
	background-color: #112e51;
	color: #fff;
	border: none;
	border-radius: 5px;
	font-weight: bold;
	font-style: normal;
	text-align: center;
	text-transform: none;
	text-decoration: none;
	cursor: pointer;
	font-size: 1rem;
	line-height: 1.4;
	box-sizing: border-box;
	transition: background-color 0.2s, color 0.2s;
}

.cbv-btn-primary:hover,
.cbv-btn-primary:focus {
	background-color: #1c467a;
	color: #fff;
}

/* ==========================================================================
 * Product page wrapper — grid layout
 *
 * Desktop: two columns. Carousel top-left, right column spans both rows,
 * accordion bottom-left under the carousel (matches the wireframe).
 *
 * Mobile (≤768px): single column. DOM order is carousel → right column →
 * accordion, so the accordion ends up at the bottom — under the "Bestel"
 * button as requested.
 * ========================================================================== */

.cbv-product-wrap {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-areas:
		"left   right"
		"accord right";
	gap: 40px;
	align-items: start;
	max-width: 1200px;
	margin: 0 auto;
	padding: 40px 20px;
}

.cbv-product-left  { grid-area: left;   min-width: 0; }
.cbv-product-right { grid-area: right;  min-width: 0; }
.cbv-accordion     { grid-area: accord; min-width: 0; }

/* ==========================================================================
 * Image carousel
 * ========================================================================== */

.cbv-carousel {
	position: relative;
	margin-bottom: 24px;
}

.cbv-carousel-main {
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 4px;
	background: #fff;
	margin-bottom: 12px;
	position: relative;
}

.cbv-carousel-main img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.cbv-carousel-thumbs {
	display: flex;
	gap: 8px;
	align-items: center;
}

.cbv-carousel-arrow {
	background: #fff;
	color: #112e51;
	border: 1px solid #d9dde2;
	border-radius: 50%;
	width: 36px;
	height: 36px;
	cursor: pointer;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	box-shadow: 0 1px 2px rgba( 17, 46, 81, 0.06 );
	transition: background-color 0.15s, color 0.15s, border-color 0.15s, transform 0.15s;
}

.cbv-carousel-arrow svg {
	width: 16px;
	height: 16px;
	display: block;
}

.cbv-carousel-arrow:hover,
.cbv-carousel-arrow:focus-visible {
	background: #112e51;
	color: #fff;
	border-color: #112e51;
	outline: none;
}

.cbv-carousel-arrow:active {
	transform: scale( 0.96 );
}

.cbv-carousel-arrow:disabled {
	opacity: 0.35;
	cursor: not-allowed;
	background: #fff;
	color: #112e51;
	border-color: #d9dde2;
	box-shadow: none;
}

.cbv-thumb-list {
	display: flex;
	gap: 8px;
	flex: 1;
	min-width: 0;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-behavior: smooth;
	scrollbar-width: none; /* Firefox */
	-ms-overflow-style: none; /* IE/Edge */
	-webkit-overflow-scrolling: touch;
}

.cbv-thumb-list::-webkit-scrollbar {
	display: none; /* Chrome/Safari */
}

.cbv-thumb {
	width: 72px;
	height: 56px;
	object-fit: cover;
	border-radius: 3px;
	border: 2px solid transparent;
	cursor: pointer;
	flex-shrink: 0;
	transition: border-color 0.15s;
}

.cbv-thumb.cbv-thumb-active,
.cbv-thumb:hover {
	border-color: #112e51;
}

/* ==========================================================================
 * Accordion
 * ========================================================================== */

.cbv-accordion {
	margin-top: 24px;
}

.cbv-accordion-item {
	border: 1px solid #e3e6ea;
	border-radius: 6px;
	margin-bottom: 12px;
	background: #fff;
	overflow: hidden;
}

.cbv-accordion-item:last-child {
	margin-bottom: 0;
}

.cbv-accordion-toggle {
	width: 100%;
	background: none;
	border: none;
	text-align: left;
	padding: 20px 22px;
	font-size: 1.15rem;
	line-height: 1.3;
	font-weight: 700;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	color: #112e51;
	transition: background-color 0.15s;
}

.cbv-accordion-toggle:hover,
.cbv-accordion-toggle:focus-visible {
	background: #f5f7fa;
	color: #000;
	outline: none;
}

.cbv-accordion-toggle .cbv-acc-icon {
	font-size: 1.5rem;
	line-height: 1;
	color: #112e51;
	transition: transform 0.2s;
	flex-shrink: 0;
	width: 24px;
	text-align: center;
}

.cbv-accordion-item.cbv-acc-open .cbv-acc-icon {
	transform: rotate( 45deg );
}

.cbv-accordion-body {
	display: none;
	padding: 4px 22px 22px;
}

.cbv-accordion-item.cbv-acc-open .cbv-accordion-body {
	display: block;
}

/* Wel/Niet two-column layout */
.cbv-wel-niet-cols {
	display: flex;
	gap: 24px;
}

.cbv-wel-col,
.cbv-niet-col {
	flex: 1;
}

.cbv-wel-col h4,
.cbv-niet-col h4 {
	font-size: 0.9rem;
	font-weight: 600;
	margin: 0 0 8px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.cbv-check-list,
.cbv-cross-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.cbv-check-list li::before {
	content: "\2713\00a0";
	color: #4a9e4a;
	font-weight: bold;
}

.cbv-cross-list li::before {
	content: "\2717\00a0";
	color: #c0392b;
	font-weight: bold;
}

.cbv-check-list li,
.cbv-cross-list li {
	margin-bottom: 4px;
	font-size: 0.9rem;
}

/* Betaal list */
.cbv-betaal-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.cbv-betaal-list li {
	margin-bottom: 4px;
	font-size: 0.9rem;
}

.cbv-betaal-list li::before {
	content: "\20AC\00a0";
	color: #888;
}

/* FAQ */
.cbv-faq-item {
	margin-bottom: 16px;
}

.cbv-faq-item strong {
	display: block;
	margin-bottom: 4px;
	color: #112e51;
}

/* ==========================================================================
 * Right column
 * ========================================================================== */

.cbv-product-title {
	font-size: 2rem;
	font-weight: 700;
	margin: 0 0 8px;
	color: #112e51;
	line-height: 1.2;
}

.cbv-product-price {
	font-size: 1.75rem;
	font-weight: 400;
	color: #112e51;
	margin: 0 0 20px;
}

/* USPs */
.cbv-usps {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
}

.cbv-usps li {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
	font-size: 0.95rem;
}

.cbv-usp-icon {
	color: #4a9e4a;
	font-size: 1.1rem;
	flex-shrink: 0;
}

/* Form block — grey background container */
.cbv-form-block {
	background: #f5f5f5;
	border-radius: 6px;
	padding: 24px;
}

.cbv-form-block label {
	display: block;
	font-weight: 600;
	margin-bottom: 6px;
	font-size: 0.9rem;
}

.cbv-form-block select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	background: #fff;
	font-size: 1rem;
	margin-bottom: 16px;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	cursor: pointer;
	box-sizing: border-box;
}

.cbv-form-block select:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.cbv-form-block .cbv-rh-trigger-wrap {
	margin-bottom: 16px;
}

/* Combo unavailable notice */
.cbv-combo-notice {
	background: #fff3cd;
	border-left: 3px solid #ffc107;
	padding: 8px 12px;
	border-radius: 3px;
	font-size: 0.875rem;
	margin-bottom: 12px;
	display: none;
}

.cbv-combo-notice.cbv-visible {
	display: block;
}

/* CTA wrapper spacing */
.cbv-cta-btn {
	margin-top: 20px;
}

/* ==========================================================================
 * Responsive — stacked below 768px
 * ========================================================================== */

@media ( max-width: 768px ) {
	.cbv-product-wrap {
		grid-template-columns: 1fr;
		grid-template-areas:
			"left"
			"right"
			"accord";
		padding: 20px 16px;
		gap: 24px;
	}

	.cbv-wel-niet-cols {
		flex-direction: column;
		gap: 16px;
	}
}

@media ( max-width: 480px ) {
	.cbv-thumb {
		width: 60px;
		height: 46px;
	}

	.cbv-product-title {
		font-size: 1.5rem;
	}

	.cbv-product-price {
		font-size: 1.35rem;
	}

	.cbv-carousel-arrow {
		width: 28px;
		height: 28px;
		font-size: 14px;
	}
}
