/* ============================================================
 * RCC Product Page - frontend styles (v4)
 *
 * Self-contained. Does NOT depend on Bootstrap. Provides its own
 * grid fallback for .container/.row/.col-* used inside .sp-breakout
 * sections (since the underlying theme may or may not load Bootstrap).
 * ============================================================ */

/* =========================================================
   1. BOOTSTRAP-LIKE GRID FALLBACK (scoped to breakout blocks)
   ========================================================= */
.sp-breakout *,
.rcc-pp-wrap * {
	box-sizing: border-box;
}
.sp-breakout .container {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding-right: 20px;
	padding-left: 20px;
}
.sp-breakout .row {
	display: flex;
	flex-wrap: wrap;
	margin-right: -12px;
	margin-left: -12px;
}
.sp-breakout [class*="col-"] {
	width: 100%;
	padding-right: 12px;
	padding-left: 12px;
}
.sp-breakout .col-12      { flex: 0 0 100%; max-width: 100%; }
.sp-breakout .g-3 > *,
.sp-breakout .row.g-3 > * { padding: 8px; }
.sp-breakout .g-4 > *,
.sp-breakout .row.g-4 > * { padding: 12px; }
.sp-breakout .g-5 > *,
.sp-breakout .row.g-5 > * { padding: 16px; }
.sp-breakout .mb-4 { margin-bottom: 1rem; }
.sp-breakout .mt-3 { margin-top: 0.75rem; }
.sp-breakout .mt-4 { margin-top: 1rem; }
.sp-breakout .pt-5 { padding-top: 1.25rem; }
.sp-breakout .pb-5 { padding-bottom: 1.25rem; }
.sp-breakout .text-center { text-align: center; }
.sp-breakout .align-items-center  { align-items: center; }
.sp-breakout .align-items-stretch { align-items: stretch; }
.sp-breakout .d-flex { display: flex; }
.sp-breakout .flex-column { flex-direction: column; }
.sp-breakout .justify-content-end { justify-content: flex-end; }
@media (min-width: 576px) {
	.sp-breakout .col-sm-6  { flex: 0 0 50%;     max-width: 50%; }
}
@media (min-width: 768px) {
	.sp-breakout .col-md-6  { flex: 0 0 50%;     max-width: 50%; }
}
@media (min-width: 992px) {
	.sp-breakout .col-lg-3  { flex: 0 0 25%;     max-width: 25%; }
	.sp-breakout .col-lg-4  { flex: 0 0 33.333%; max-width: 33.333%; }
	.sp-breakout .col-lg-5  { flex: 0 0 41.667%; max-width: 41.667%; }
	.sp-breakout .col-lg-6  { flex: 0 0 50%;     max-width: 50%; }
	.sp-breakout .col-lg-7  { flex: 0 0 58.333%; max-width: 58.333%; }
	.sp-breakout .col-lg-8  { flex: 0 0 66.667%; max-width: 66.667%; }
	.sp-breakout .col-lg-12 { flex: 0 0 100%;    max-width: 100%; }
}

/* Breakout-to-viewport-width helper */
.sp-breakout {
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}

/* =========================================================
   WC FILTER WIDGETS (classic layered-nav) — RCC styling
   Scoped to common WC widget classes so the sidebar matches the
   product pages. Safe no-ops when those widgets aren't present.
   ========================================================= */
.widget.woocommerce,
.widget_layered_nav,
.widget_product_search,
.widget_rating_filter,
.wc-block-product-categories {
	margin-bottom: 1.5rem;
}
.widget_layered_nav .widget-title,
.widget_product_search .widget-title,
.woocommerce .widget-title,
.widget.woocommerce h2,
.widget_layered_nav h3,
.widget_layered_nav .wc-block-component-title {
	font-size: 1.05rem;
	font-weight: 700;
	color: #1a2540;
	margin: 0 0 0.6rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid #ececec;
}
/* Product search box */
.widget_product_search form,
.woocommerce-product-search {
	position: relative;
	display: flex;
}
.widget_product_search input[type="search"],
.woocommerce-product-search input.search-field {
	flex: 1;
	border: 1px solid #d8d8d8;
	border-radius: 999px;
	padding: 0.6rem 2.6rem 0.6rem 1rem;
	font-size: 0.92rem;
	background: #fff;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.widget_product_search input[type="search"]:focus,
.woocommerce-product-search input.search-field:focus {
	outline: 0;
	border-color: #e30613;
	box-shadow: 0 0 0 3px rgba(227, 6, 19, 0.12);
}
.widget_product_search button[type="submit"],
.woocommerce-product-search button {
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	border: 0;
	background: transparent;
	color: #e30613;
	font-weight: 700;
	cursor: pointer;
	padding: 0.4rem 0.7rem;
	border-radius: 999px;
}
/* Filter group container + widget headings (sf-filter-groups markup). */
.sf-filter-groups .widget,
.sf-filter-groups section.widget {
	margin-bottom: 1.5rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid #ececec;
}
.sf-filter-groups .widget:last-child {
	border-bottom: 0;
}
.sf-filter-groups .widget-title,
.sf-filter-groups .widget-title.h5 {
	font-size: 1.05rem !important;
	font-weight: 700;
	color: #1a2540;
	margin: 0 0 0.6rem;
	text-transform: none;
}
/* Layered-nav term lists (Maat / Aanbod) — rendered as RCC pill-buttons,
   matching the configurator's variation pills. */
.widget_layered_nav ul,
.woocommerce-widget-layered-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}
.widget_layered_nav ul li,
.woocommerce-widget-layered-nav-list__item,
.woocommerce-widget-layered-nav-list .wc-layered-nav-term {
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	list-style: none !important;
	display: inline-flex;
}
.woocommerce-widget-layered-nav-list .wc-layered-nav-term::before,
.woocommerce-widget-layered-nav-list__item::marker {
	content: none !important;
}
.widget_layered_nav ul li a,
.woocommerce-widget-layered-nav-list__item a,
.woocommerce-widget-layered-nav-list .wc-layered-nav-term a {
	display: inline-block !important;
	padding: 0.45rem 1rem !important;
	border: 1.5px solid #ddd !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: #1a2540 !important;
	text-decoration: none !important;
	font-size: 0.85rem !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	transition: all 0.15s ease;
}
.woocommerce-widget-layered-nav-list .wc-layered-nav-term a:hover,
.widget_layered_nav ul li a:hover {
	border-color: #e30613;
	color: #e30613 !important;
}
/* Active/chosen filter pill = filled red. */
.woocommerce-widget-layered-nav-list__item--chosen a,
.woocommerce-widget-layered-nav-list .wc-layered-nav-term.chosen a,
.widget_layered_nav ul li.chosen a {
	background: #e30613 !important;
	border-color: #e30613 !important;
	color: #fff !important;
}
/* Hide the (count) suffix — the client doesn't want the numbers shown. */
.sf-filter-groups .count,
.woocommerce-widget-layered-nav-list .count,
.woocommerce-widget-layered-nav-list__item-count {
	display: none !important;
}
/* Reset / active filter links */
.woocommerce-widget-layered-nav-dropdown__submit,
.widget a.wc-block-components-filter-reset-button,
a.reset-filters,
.rcc-reset-filters {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: #e30613;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
}
.woocommerce-widget-layered-nav-dropdown__submit:hover,
a.reset-filters:hover {
	text-decoration: underline;
}

/* SEO landing pages (/aanbod/huren/20ft-containers/ etc.) */
.rcc-landing .container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}
.rcc-landing__head {
	max-width: 820px;
	margin: 0 0 1.75rem;
}
.rcc-landing__title {
	font-size: clamp(1.8rem, 3vw, 2.6rem);
	color: #1a2540;
	margin: 0.2rem 0 0.75rem;
	line-height: 1.1;
}
.rcc-landing__intro {
	color: #555;
	font-size: 1rem;
	line-height: 1.65;
}
.rcc-landing__intro p { margin: 0 0 0.85rem; }
.rcc-landing__hint {
	margin-top: 1.5rem;
	color: #777;
	font-size: 0.9rem;
	font-style: italic;
}

/* Archive shows the page title twice (theme hero "Aanbod" + this h2). Hide the
   plain duplicate, keep the styled hero title. */
.shop-archive-title {
	display: none !important;
}

/* WC archive: force the products grid into a constrained container so themes
   that render archive pages edge-to-edge stay readable. */
.rcc-archive-wrap {
	width: 100%;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
	box-sizing: border-box;
}

/* =========================================================
   WC PRODUCT CARDS — uniform look on archive + carousel + related
   Applies to the theme's content-product.php card markup.
   ========================================================= */
/* Kill the theme's 1rem image padding so images fill the card edge-to-edge.
   Extra ancestor selectors raise specificity above the theme's !important rule. */
body .card.product > a.woocommerce-LoopProduct-link > img,
body.woocommerce .card.product > a.woocommerce-LoopProduct-link > img,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img,
.products-carousel .card.product > a.woocommerce-LoopProduct-link > img {
	padding: 0 !important;
}
/* Consistent hover lift on product cards (archive + carousel). */
.card.product,
.woocommerce ul.products li.product .card.product,
.products-carousel .item .card.product {
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card.product:hover,
.woocommerce ul.products li.product:hover .card.product,
.products-carousel .item:hover .card.product {
	transform: translateY(-4px);
	box-shadow: 0 10px 26px rgba(0, 0, 0, 0.09);
}
/* Image wrapper: fixed aspect-ratio box + object-fit cover so EVERY card image
   (incl. the 2nd hover image, whatever its native resolution) fills the same
   height. This kills both the height-jump on hover and uneven card heights. */
.card.product > a.woocommerce-LoopProduct-link:first-child {
	display: block;
	overflow: hidden;
	border-radius: inherit;
	aspect-ratio: 3 / 2;
	background: #f4f4f4;
}
.card.product > a.woocommerce-LoopProduct-link:first-child > img {
	width: 100% !important;
	height: 100% !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: center;
	display: block;
	padding: 0 !important;
	transition: transform 0.35s ease;
}
.card.product:hover > a.woocommerce-LoopProduct-link:first-child > img {
	transform: scale(1.04);
}
@supports not (aspect-ratio: 3 / 2) {
	.card.product > a.woocommerce-LoopProduct-link:first-child { height: 220px; }
}
/* Carousel: equal-height cards via a flex stage. */
.products-carousel.owl-carousel .owl-stage {
	display: flex;
}
.products-carousel.owl-carousel .owl-item {
	display: flex;
	height: auto;
}
.products-carousel .owl-item > .item,
.products-carousel .owl-item > .item > [class*="col-"] {
	display: flex;
	width: 100%;
}
.products-carousel .owl-item .card.product,
.products-carousel .item .card.product {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
}
.products-carousel .item .card.product .rcc-vanaf-prices,
.woocommerce ul.products li.product .rcc-vanaf-prices {
	margin-top: 0.35rem;
	margin-bottom: 0.6rem;
}
/* Card body fills remaining height; CTA sticks to the bottom. */
.card.product .card-body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}
.card.product .add-to-cart-container {
	margin-top: auto;
}

/* "Bekijk product" — match the archive's red link-CTA instead of the theme's
   default dark button. */
.card.product .rcc-bekijk-btn,
.card.product .add-to-cart-container .button,
.woocommerce ul.products li.product .button.rcc-bekijk-btn {
	display: inline-flex !important;
	align-items: center;
	gap: 0.4rem;
	background: transparent !important;
	color: #e30613 !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0.3rem 0 !important;
	margin: 0 !important;
	font-weight: 700 !important;
	font-size: 0.92rem !important;
	box-shadow: none !important;
	text-decoration: none !important;
	min-height: 0 !important;
	line-height: 1.3 !important;
	width: auto !important;
}
.card.product .rcc-bekijk-btn::after,
.card.product .add-to-cart-container .button::after {
	content: '\2192'; /* → */
	font-weight: 700;
	transition: transform 0.15s ease;
}
.card.product:hover .rcc-bekijk-btn::after,
.card.product:hover .add-to-cart-container .button::after {
	transform: translateX(3px);
}
.card.product .rcc-bekijk-btn:hover,
.card.product .add-to-cart-container .button:hover {
	color: #b80510 !important;
	background: transparent !important;
}

/* Vanaf-price block — used on archive product cards.
   2-kolom grid: vaste labelkolom links, prijs rechts. Beide rijen lijnen
   netjes uit zodat de prijzen op hetzelfde X-coördinaat starten ongeacht de
   lengte van het label. Hoge specificiteit voor themes met eigen .price-CSS. */
.woocommerce .rcc-vanaf-prices,
.rcc-vanaf-prices {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 0.3rem;
	margin: 0.4rem 0 0.5rem;
	font-size: 0.92rem;
	color: #1a2540;
	line-height: 1.35;
}
.rcc-vanaf-prices__row {
	display: grid !important;
	grid-template-columns: minmax(80px, max-content) 1fr;
	column-gap: 0.85rem;
	row-gap: 0;
	align-items: baseline;
}
.rcc-vanaf-prices__row + .rcc-vanaf-prices__row {
	padding-top: 0.3rem;
	border-top: 1px solid #f0f0f0;
}
.rcc-vanaf-prices__label {
	color: #777 !important;
	font-size: 0.74em !important;
	text-transform: uppercase;
	letter-spacing: 0.35px;
	font-weight: 600;
	white-space: nowrap;
}
.woocommerce .rcc-vanaf-prices__value,
.rcc-vanaf-prices__value {
	color: #1a2540 !important;
	font-weight: 700 !important;
	font-size: 1.05em !important;
	white-space: nowrap;
	text-align: right;
	justify-self: end;
}
.rcc-vanaf-prices__value small {
	color: #888 !important;
	font-weight: 400 !important;
	font-size: 0.78em !important;
	margin-left: 0.2rem;
}
.woocommerce .rcc-vanaf-price--on-request,
.rcc-vanaf-price--on-request {
	display: inline-block;
	font-style: italic;
	color: #555 !important;
	font-weight: 500 !important;
	text-decoration: none !important;
}
/* Some themes apply line-through to .price children; neutralise it. */
.rcc-vanaf-price--on-request,
.rcc-vanaf-prices,
.rcc-vanaf-prices * {
	text-decoration: none !important;
}
.rcc-cart-on-request {
	font-style: italic;
	color: #555;
}

/* =========================================================
   2. CORE PRODUCT PANEL (compact spacing)
   ========================================================= */
.rcc-pp-wrap .single-product-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
	margin-bottom: 2rem;
}
@media (max-width: 991px) {
	.rcc-pp-wrap .single-product-layout {
		grid-template-columns: 1fr;
	}
}
.rcc-pp-wrap .single-product__title {
	margin: 0 0 0.6rem;
	font-size: clamp(1.5rem, 2.2vw, 2.1rem);
	line-height: 1.15;
}
.rcc-pp-wrap .single-product__long-desc,
.rcc-pp-wrap .single-product__desc {
	margin-bottom: 0.85rem;
	font-size: 0.95rem;
	line-height: 1.55;
}
.rcc-pp-wrap .single-product__desc ul {
	padding-left: 0;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 0.35rem 1rem;
	margin: 0;
}
.rcc-pp-wrap .single-product__desc li {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	font-size: 0.9rem;
	line-height: 1.4;
}
.rcc-pp-wrap .single-product__desc li i {
	color: #e30613;
	width: 1em;
	flex-shrink: 0;
}
.rcc-pp-wrap .single-product__label {
	font-weight: 700;
	margin: 0.6rem 0 0.35rem;
	font-size: 0.92rem;
	color: #222;
}
.rcc-pp-wrap .single-product__pdf {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.45rem 0.85rem;
	background: #f5f5f5;
	border-radius: 6px;
	text-decoration: none;
	color: inherit;
	font-weight: 600;
	font-size: 0.85rem;
	margin: 0.3rem 0 0.85rem;
}
.rcc-pp-wrap .single-product__pdf:hover {
	background: #ececec;
}

/* =========================================================
   3. GALLERY (custom replacement for WC Flexslider)
   ========================================================= */
/* Override WC default that constrains gallery wrapper to ~48% */
.rcc-pp-wrap .single-product-layout__gallery,
.woocommerce div.product .rcc-pp-wrap .single-product-layout__gallery {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 !important;
}
.rcc-gallery {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.rcc-gallery__main {
	position: relative;
	background: #fafafa;
	border-radius: 8px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: zoom-in;
}
.rcc-gallery__main img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}
.rcc-gallery__zoom {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255,255,255,0.95);
	border: 1px solid #e5e5e5;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #555;
	transition: all 0.15s;
	z-index: 2;
}
.rcc-gallery__zoom:hover {
	background: #e30613;
	color: #fff;
	border-color: #e30613;
}
.rcc-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
	gap: 0.4rem;
}
.rcc-gallery__thumb {
	background: #fafafa;
	border: 2px solid transparent;
	border-radius: 6px;
	padding: 0;
	cursor: pointer;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: border-color 0.15s;
}
.rcc-gallery__thumb img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}
.rcc-gallery__thumb:hover     { border-color: #ccc; }
.rcc-gallery__thumb.is-active { border-color: #e30613; }
.rcc-gallery--empty .rcc-gallery__placeholder {
	background: #fafafa;
	border-radius: 8px;
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ccc;
	font-size: 4rem;
}

/* Lightbox */
.rcc-lightbox {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,0.92);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 999999;
	padding: 2rem;
}
.rcc-lightbox[hidden] { display: none; }
.rcc-lightbox__img {
	max-width: 95vw;
	max-height: 90vh;
	width: auto;
	height: auto;
	display: block;
}
.rcc-lightbox__close,
.rcc-lightbox__prev,
.rcc-lightbox__next {
	position: absolute;
	background: rgba(255,255,255,0.15);
	border: 0;
	color: #fff;
	font-size: 1.4rem;
	cursor: pointer;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s;
}
.rcc-lightbox__close:hover,
.rcc-lightbox__prev:hover,
.rcc-lightbox__next:hover {
	background: rgba(255,255,255,0.3);
}
.rcc-lightbox__close { top: 1rem; right: 1rem; }
.rcc-lightbox__prev  { left: 1rem; top: 50%; transform: translateY(-50%); }
.rcc-lightbox__next  { right: 1rem; top: 50%; transform: translateY(-50%); }

/* =========================================================
   4. VARIATION PILLS WITH PRICES (compact)
   ========================================================= */
.rcc-pp-wrap .variation-groups {
	margin: 0.4rem 0 0.5rem;
}
.rcc-pp-wrap .variation-row {
	margin-bottom: 0.35rem;
}
.rcc-pp-wrap .variation-row--hidden {
	display: none !important;
}
.rcc-pp-wrap .single-product__var-label {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 600;
	font-size: 0.88rem;
	margin-bottom: 0.2rem;
	color: #333;
}
.rcc-pp-wrap .single-product__var-label i {
	color: #e30613;
}
.rcc-pp-wrap .variation-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}
.rcc-pp-wrap .variation-pill-wrap {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.rcc-pp-wrap .variation-pill {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 0.45rem 0.95rem;
	border: 1.5px solid #ddd;
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
	font-size: 0.9rem;
	line-height: 1.2;
	transition: all 0.15s ease;
	min-height: 38px;
}
.rcc-pp-wrap .variation-pill__label {
	font-weight: 500;
}
.rcc-pp-wrap .variation-pill__price {
	display: block;
	font-size: 0.7rem;
	font-weight: 600;
	color: #e30613;
	margin-top: 1px;
	white-space: nowrap;
}
.rcc-pp-wrap .variation-pill__price small {
	font-weight: 400;
	color: #888;
}
.rcc-pp-wrap .variation-pill__price[hidden] {
	display: none !important;
}
.rcc-pp-wrap .variation-pill:hover {
	border-color: #e30613;
}
.rcc-pp-wrap .variation-pill.active {
	background: #e30613;
	color: #fff;
	border-color: #e30613;
}
.rcc-pp-wrap .variation-pill--external {
	border-style: dashed;
	color: #444;
	text-decoration: none;
}
.rcc-pp-wrap .variation-pill--external:hover {
	background: #fdf2f3;
	color: #1a2540;
	border-color: #e30613;
	border-style: solid;
}
.rcc-pp-wrap .variation-pill--external .variation-pill__label i {
	margin-left: 0.35rem;
	font-size: 0.78em;
	color: #999;
}
.rcc-pp-wrap .variation-pill--external:hover .variation-pill__label i {
	color: #e30613;
}
.rcc-pp-wrap .variation-pill.active .variation-pill__price,
.rcc-pp-wrap .variation-pill.active .variation-pill__price small {
	color: #fff;
}
.rcc-pp-wrap .rcc-info-btn {
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	color: #999;
	font-size: 0.95rem;
}
.rcc-pp-wrap .rcc-info-btn:hover {
	color: #e30613;
}

/* Huurduur section */
.rcc-pp-wrap .rcc-huurduur-section {
	margin: 0.5rem 0 0.85rem;
	padding: 0.65rem 0.85rem;
	background: #fafafa;
	border-radius: 8px;
}
.rcc-pp-wrap .rcc-huurduur-section[hidden] {
	display: none !important;
}
.rcc-pp-wrap .rcc-huurduur-dates {
	margin-top: 0.65rem;
	padding-top: 0.65rem;
	border-top: 1px dashed #ddd;
}
.rcc-pp-wrap .rcc-huurduur-dates[hidden] {
	display: none !important;
}
.rcc-pp-wrap .rcc-huurduur-dates__label {
	font-size: 0.82rem;
	color: #555;
	margin: 0 0 0.4rem;
	font-weight: 600;
}
.rcc-pp-wrap .rcc-huurduur-dates__row {
	display: flex;
	gap: 0.85rem;
	flex-wrap: wrap;
}
.rcc-pp-wrap .rcc-huurduur-dates__row label {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	font-size: 0.82rem;
	color: #444;
	flex: 1;
	min-width: 140px;
}
.rcc-pp-wrap .rcc-huurduur-dates__row input[type="date"] {
	padding: 0.4rem 0.55rem;
	border: 1px solid #ccc;
	border-radius: 6px;
	background: #fff;
	font-family: inherit;
	font-size: 0.88rem;
}
.rcc-pp-wrap .rcc-huurduur-dates__count {
	margin: 0.55rem 0 0;
	padding: 0.4rem 0.65rem;
	background: #fdf2f3;
	border-radius: 6px;
	font-size: 0.85rem;
	color: #333;
	display: flex;
	align-items: center;
	gap: 0.4rem;
}
.rcc-pp-wrap .rcc-huurduur-dates__count[hidden] {
	display: none !important;
}
.rcc-pp-wrap .rcc-huurduur-dates__count i {
	color: #e30613;
}

/* =========================================================
   5. MAATWERK / UITERLIJK CARDS (clean replacement)
   ========================================================= */
.rcc-pp-wrap .rcc-configurator-extras--hidden {
	display: none !important;
}
.rcc-pp-wrap .rcc-maatwerk-section.rcc-maatwerk--hidden {
	display: none !important;
}
.rcc-pp-wrap .maatwerk-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 0.5rem;
	margin-bottom: 0.85rem;
}
.rcc-pp-wrap .maatwerk-card {
	position: relative;
	padding: 0.55rem 0.5rem 0.5rem;
	border: 1.5px solid #e5e5e5;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
	text-align: center;
	transition: all 0.15s ease;
	min-height: 130px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	/* Voorkom dat lange labels in losse letters per regel breken. */
	word-break: normal;
	overflow-wrap: break-word;
	hyphens: none;
}
.rcc-pp-wrap .maatwerk-card:hover {
	border-color: #e30613;
	box-shadow: 0 2px 8px rgba(227, 6, 19, 0.06);
}
.rcc-pp-wrap .maatwerk-card.is-selected {
	border-color: #e30613;
	background: #fdf2f3;
}
.rcc-pp-wrap .maatwerk-card img {
	width: 100%;
	max-height: 70px;
	object-fit: contain;
	margin-bottom: 0.4rem;
}
.rcc-pp-wrap .maatwerk-card--no-img {
	min-height: 0;
	padding: 0.7rem 2.6rem 0.7rem 0.95rem;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	text-align: left;
}
.rcc-pp-wrap .maatwerk-card--no-img .maatwerk-card__label {
	margin: 0;
	padding-right: 0;
	text-align: left;
	font-size: 0.9rem;
	line-height: 1.3;
	word-break: normal;
	overflow-wrap: break-word;
	hyphens: none;
	flex: 1 1 auto;
	/* Zonder min-width:0 weigert een flex-item kleiner te worden dan zijn
	   langste woord, waardoor de browser het woord mid-in afbreekt. */
	min-width: 0;
}
.rcc-pp-wrap .maatwerk-card--no-img .maatwerk-card__check {
	top: 50%;
	transform: translateY(-50%);
	right: 10px;
}
.rcc-pp-wrap .maatwerk-card__label {
	display: block;
	font-size: 0.85rem;
	font-weight: 500;
	color: #333;
	margin-top: auto;
	line-height: 1.3;
	word-break: normal;
	overflow-wrap: break-word;
	hyphens: none;
	/* Reserveer ruimte voor het check-button rechtsboven zodat tekst niet
	   onder het rondje schuift. */
	padding-right: 1.6rem;
}
@media (min-width: 992px) {
	.rcc-pp-wrap .maatwerk-card__label {
		font-size: 0.9rem;
	}
}
.rcc-pp-wrap .maatwerk-card__check {
	position: absolute;
	top: 6px;
	right: 6px;
	width: 22px;
	height: 22px;
	background: #fff;
	border: 1.5px solid #ccc;
	border-radius: 4px;
	padding: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.15s;
}
.rcc-pp-wrap .maatwerk-card__check .check-box { display: none; }
.rcc-pp-wrap .maatwerk-card.is-selected .maatwerk-card__check {
	background: #e30613;
	border-color: #e30613;
}
.rcc-pp-wrap .maatwerk-card.is-selected .maatwerk-card__check::after {
	content: '';
	width: 6px;
	height: 10px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) translate(-1px, -1px);
}

/* Maatwerk empty-state (when no terms exist for this product) */
.rcc-pp-wrap .rcc-maatwerk-empty {
	padding: 0.85rem 1rem;
	background: #fdf2f3;
	border-left: 3px solid #e30613;
	border-radius: 4px;
	margin-bottom: 0.85rem;
}
.rcc-pp-wrap .rcc-maatwerk-empty p {
	margin: 0;
	font-size: 0.88rem;
	color: #333;
	line-height: 1.5;
}
.rcc-pp-wrap .rcc-maatwerk-empty i {
	color: #e30613;
	margin-right: 0.4rem;
}

/* Extra info textarea */
.rcc-pp-wrap .single-product__extra-info textarea {
	width: 100%;
	min-height: 70px;
	padding: 0.5rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-family: inherit;
	font-size: 0.9rem;
}

/* =========================================================
   6. CTA + DISCLAIMER
   ========================================================= */
.rcc-pp-wrap .single-product__cta-wrap {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-top: 0.85rem;
}
.rcc-pp-wrap .sp-qty-wrap {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.rcc-pp-wrap .sp-qty-wrap__label {
	font-weight: 600;
	font-size: 0.88rem;
}
.rcc-pp-wrap .sp-qty-stepper {
	display: inline-flex;
	align-items: center;
	border: 1px solid #ddd;
	border-radius: 6px;
	overflow: hidden;
}
.rcc-pp-wrap .sp-qty-stepper__btn {
	width: 32px;
	height: 32px;
	background: #f5f5f5;
	border: 0;
	cursor: pointer;
}
.rcc-pp-wrap .sp-qty-stepper__btn:disabled { opacity: 0.4; cursor: not-allowed; }
.rcc-pp-wrap .sp-qty-stepper__input {
	width: 44px;
	text-align: center;
	border: 0;
	border-left: 1px solid #ddd;
	border-right: 1px solid #ddd;
	height: 32px;
	background: #fff;
	font-size: 0.9rem;
}
.rcc-pp-wrap .single-product__cta-primary {
	background: #e30613;
	color: #fff;
	padding: 0.8rem 1.5rem;
	border: 0;
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.95rem;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	text-decoration: none;
	transition: background 0.15s;
}
.rcc-pp-wrap .single-product__cta-primary:hover {
	background: #b80510;
	color: #fff;
}
.rcc-pp-wrap .single-product__cta-primary.is-loading {
	opacity: 0.75;
	pointer-events: none;
	position: relative;
}
.rcc-pp-wrap .single-product__cta-primary.is-loading::after {
	content: '';
	width: 16px;
	height: 16px;
	margin-left: 0.5rem;
	border: 2px solid rgba(255, 255, 255, 0.5);
	border-top-color: #fff;
	border-radius: 50%;
	display: inline-block;
	animation: rcc-spin 0.6s linear infinite;
}
@keyframes rcc-spin {
	to { transform: rotate(360deg); }
}
.rcc-pp-wrap .single-product__not-right {
	text-align: center;
	color: #666;
	font-size: 0.85rem;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.3rem;
}
.rcc-pp-wrap .single-product__not-right:hover {
	color: #e30613;
}
.rcc-pp-wrap .single-product__price-disclaimer {
	font-size: 0.72rem;
	color: #777;
	line-height: 1.45;
	margin: 0.2rem 0 0;
	text-align: left;
	font-style: italic;
}

/* =========================================================
   7. ERROR STATES
   ========================================================= */
.rcc-required-missing {
	outline: 2px solid #d63638;
	outline-offset: 4px;
	border-radius: 6px;
}
.rcc-field-error {
	color: #d63638;
	font-size: 13px;
	margin: 6px 0 0;
}

/* Body lock when modal open */
body.rcc-modal-open {
	overflow: hidden;
}

/* Edit-banner shown when arriving via cart Bewerken-link */
.rcc-edit-banner {
	background: #fdf2f3;
	border-left: 3px solid #e30613;
	padding: 0.7rem 0.95rem;
	margin: 0 0 0.85rem;
	font-size: 0.92rem;
	color: #1a2540;
	border-radius: 4px;
	display: flex;
	align-items: center;
	gap: 0.55rem;
}
.rcc-edit-banner i {
	color: #e30613;
}

/* =========================================================
   8. MODALS (offerte + info)
   ========================================================= */
.rcc-modal-overlay,
.rcc-info-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 99999;
	padding: 1rem;
}
.rcc-modal-overlay.is-open,
.rcc-info-modal-overlay.is-open {
	display: flex;
}
.rcc-modal,
.rcc-info-modal {
	background: #fff;
	border-radius: 12px;
	padding: 2rem;
	max-width: 480px;
	width: 100%;
	position: relative;
}
.rcc-modal__close,
.rcc-info-modal__close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	background: none;
	border: 0;
	font-size: 1.1rem;
	cursor: pointer;
	color: #999;
}
.rcc-modal__title { margin: 0 0 0.75rem; }
.rcc-modal__img {
	display: flex;
	align-items: center;
	justify-content: center;
	max-height: 220px;
	margin: 0.75rem 0;
}
.rcc-modal__img img {
	max-width: 100%;
	max-height: 220px;
	width: auto;
	height: auto;
	object-fit: contain !important;
	border-radius: 8px;
	display: block;
}
.rcc-modal__summary {
	margin: 0.75rem 0 0;
}
.rcc-modal__summary:empty { margin: 0; }
.rcc-modal__summary-inner {
	background: #fdf2f3;
	border-left: 3px solid #e30613;
	border-radius: 4px;
	padding: 0.65rem 0.85rem;
}
.rcc-modal__summary-title {
	font-weight: 700;
	font-size: 0.82rem;
	color: #1a2540;
	margin: 0 0 0.4rem;
	text-transform: uppercase;
	letter-spacing: 0.4px;
}
.rcc-modal__summary dl {
	margin: 0;
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.2rem 0.85rem;
	font-size: 0.85rem;
}
.rcc-modal__summary dt {
	color: #777;
	font-weight: 500;
}
.rcc-modal__summary dd {
	margin: 0;
	color: #1a2540;
	font-weight: 600;
	word-break: break-word;
}
.rcc-modal__actions {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-top: 1rem;
}
.rcc-modal__secondary {
	background: #fff;
	border: 1px solid #ddd;
	padding: 0.7rem 1rem;
	border-radius: 999px;
	cursor: pointer;
	font-weight: 600;
}
.rcc-info-modal__img {
	max-width: 240px;
	height: auto;
	display: block;
	margin: 0 auto 1rem;
	border-radius: 8px;
	border: 1px solid #eee;
}
.rcc-info-modal__select {
	width: 100%;
	margin-top: 0.5rem;
}

/* =========================================================
   9. PAGE BLOCKS (USP, specs, accessoires, content, delivery, FAQ, contact)
   ========================================================= */
/* USP bar */
.block-usp-bar {
	background: #f5f5f5;
	padding: 0.8rem 0;
	margin: 0.6rem 0;
}
.sp-breakout {
	margin-top: 0;
	margin-bottom: 0;
}
.sp-breakout + .sp-breakout {
	margin-top: 0;
}
.block-usp-bar .usp-item p {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 600;
	color: #333;
	font-size: 0.92rem;
}
.block-usp-bar .usp-item i {
	color: #16a34a;
}

/* Tech specs */
.sp-tech-specs__title { margin: 0 0 0.4rem; font-size: 1.55rem; }
.sp-tech-specs__intro { color: #555; margin-bottom: 0.85rem; }
.sp-tech-specs__table-wrap { overflow-x: auto; }
.sp-tech-specs__table {
	width: 100%;
	border-collapse: collapse;
}
.sp-tech-specs__table th,
.sp-tech-specs__table td {
	padding: 0.55rem 0.75rem;
	border-bottom: 1px solid #eee;
	text-align: left;
	font-size: 0.9rem;
}
.sp-tech-specs__table thead th {
	background: #fafafa;
	font-weight: 700;
}
.sp-tech-specs__contact {
	background: #fafafa;
	padding: 1.1rem;
	border-radius: 12px;
	text-align: center;
	height: 100%;
}
.sp-tech-specs__contact-img img {
	width: 90px;
	height: 90px;
	object-fit: cover;
	border-radius: 50%;
	margin: 0 auto 0.65rem;
}
.sp-tech-specs__contact-naam { font-weight: 700; margin: 0; }
.sp-tech-specs__contact-functie { color: #777; font-size: 0.85rem; margin: 0 0 0.4rem; }
.sp-tech-specs__contact-tekst { color: #555; margin-bottom: 0.65rem; font-size: 0.88rem; }

/* Accessoires */
.sp-accessories__card {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;
}
.sp-accessories__img img {
	width: 100%;
	height: 170px;
	object-fit: cover;
}
.sp-accessories__card--no-img .sp-accessories__body {
	padding-top: 1.1rem;
}
.sp-accessories__body { padding: 0.85rem; }
.sp-accessories__title { font-size: 0.95rem; margin: 0 0 0.4rem; }
.sp-accessories__title a { color: inherit; text-decoration: none; }
.sp-accessories__desc { color: #666; font-size: 0.82rem; margin-bottom: 0.5rem; }
.sp-accessories__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: #e30613;
	font-weight: 600;
	font-size: 0.85rem;
	text-decoration: none;
}
.sp-accessories__price {
	margin: 0.25rem 0 0.5rem;
	font-weight: 700;
	color: #1a2540;
	font-size: 0.95rem;
}
.sp-accessories__actions {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-top: auto;
}
.rcc-accessoire-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.55rem 0.95rem;
	border: 1.5px solid #e30613;
	border-radius: 999px;
	background: #fff;
	color: #1a2540;
	font-weight: 600;
	font-size: 0.85rem;
	cursor: pointer;
	transition: all 0.15s;
}
.rcc-accessoire-toggle:hover {
	background: #fdf2f3;
}
.rcc-accessoire-toggle__box {
	width: 16px;
	height: 16px;
	border: 1.5px solid #e30613;
	border-radius: 4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all 0.15s;
}
.rcc-accessoire-card.is-selected .rcc-accessoire-toggle {
	background: #e30613;
	color: #fff;
}
.rcc-accessoire-card.is-selected .rcc-accessoire-toggle__box {
	background: #fff;
	border-color: #fff;
}
.rcc-accessoire-card.is-selected .rcc-accessoire-toggle__box::after {
	content: '';
	width: 5px;
	height: 9px;
	border: solid #e30613;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) translate(-1px, -1px);
}

.subtitle {
	color: #e30613;
	font-weight: 600;
	font-size: 0.82rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 0.4rem;
}

/* Sibling-sizes block ("Dit product in andere maten") */
.sp-sibling-sizes { background: #fafafa; }
.sp-sibling-sizes h2 {
	font-size: 1.55rem;
	color: #1a2540;
	margin: 0;
}
.sp-sibling-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 12px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	height: 100%;
	transition: transform 0.2s, box-shadow 0.2s, border-color 0.15s;
}
.sp-sibling-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(0,0,0,0.06);
	border-color: #e30613;
}
.sp-sibling-card__img {
	background: #fafafa;
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.sp-sibling-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s;
}
.sp-sibling-card:hover .sp-sibling-card__img img {
	transform: scale(1.04);
}
.sp-sibling-card__body {
	padding: 1rem 1.1rem 1.1rem;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	flex: 1;
}
.sp-sibling-card__maat {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #e30613;
}
.sp-sibling-card__title {
	font-size: 1rem;
	color: #1a2540;
	margin: 0;
	line-height: 1.3;
}
.sp-sibling-card__cta {
	margin-top: auto;
	font-size: 0.85rem;
	font-weight: 600;
	color: #e30613;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}
.sp-sibling-card--no-img .sp-sibling-card__body {
	padding-top: 1.4rem;
}

/* Content section */
.sp-content-section__img img { width: 100%; height: auto; border-radius: 12px; }
.sp-content-section__text { font-size: 0.95rem; line-height: 1.6; }

/* Cases */
.sp-cases { background: #fff; }
.sp-cases h2 {
	font-size: 1.85rem;
	margin: 0.2rem 0 0;
	color: #1a2540;
}
.sp-cases .subtitle {
	margin-bottom: 0.3rem;
}
.sp-cases__card {
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid #ececec;
	box-shadow: 0 1px 3px rgba(0,0,0,0.04);
	display: flex;
	flex-direction: column;
	height: 100%;
	transition: transform 0.2s, box-shadow 0.2s;
}
.sp-cases__card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}
.sp-cases__img {
	overflow: hidden;
}
.sp-cases__img img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
	transition: transform 0.3s;
}
.sp-cases__card:hover .sp-cases__img img {
	transform: scale(1.04);
}
.sp-cases__body {
	padding: 1.4rem 1.5rem 1.5rem;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.sp-cases__excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.sp-cases__title {
	font-size: 1.05rem;
	margin: 0 0 0.4rem;
	line-height: 1.3;
	color: #1a2540;
}
.sp-cases__title a { color: inherit; text-decoration: none; }
.sp-cases__title a:hover { color: #e30613; }
.sp-cases__type { color: #888; font-size: 0.82rem; margin: 0 0 0.6rem; }
.sp-cases__excerpt {
	color: #555;
	font-size: 0.88rem;
	line-height: 1.55;
	margin: 0 0 0.85rem;
	flex: 1;
}
.sp-cases__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: #e30613;
	font-weight: 600;
	font-size: 0.85rem;
	margin-top: auto;
	text-decoration: none;
	padding: 0.5rem 0.95rem;
	border: 1.5px solid #e30613;
	border-radius: 999px;
	width: fit-content;
	transition: all 0.15s;
}
.sp-cases__cta:hover {
	background: #e30613;
	color: #fff;
}
/* When only 1-2 cases, center them */
.sp-cases .row > .col-12:only-child { margin: 0 auto; max-width: 420px; }

/* Delivery */
.sp-delivery__list { list-style: none; padding: 0; }
.sp-delivery__list li {
	display: flex;
	gap: 0.6rem;
	align-items: start;
	margin-bottom: 0.35rem;
	font-size: 0.92rem;
}
.sp-delivery__list li i { color: #16a34a; margin-top: 4px; }
.sp-delivery__img img { width: 100%; height: auto; border-radius: 12px; }
.sp-delivery__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: #e30613;
	font-weight: 600;
	text-decoration: none;
}

/* FAQ */
.block-faq { background: #f8f6ef; }
.block-faq .title-container { margin-bottom: 1.5rem; }
.block-faq .title-container h2.title { margin: 0; font-size: 1.85rem; color: #1a2540; }
.block-faq .accordion {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}
.block-faq .accordion-item {
	position: relative;
	background: #fff;
	border-radius: 12px;
	border: 1px solid #ececec;
	overflow: hidden;
	transition: box-shadow 0.2s;
}
.block-faq .accordion-item:hover {
	box-shadow: 0 4px 14px rgba(0,0,0,0.04);
}
.block-faq .accordion-header {
	display: block;
	position: relative;
	cursor: pointer;
	padding: 0;
}
.block-faq .accordion-header h3 {
	margin: 0;
	padding: 1.5rem 3.5rem 1.5rem 1.75rem;
	font-size: 1.05rem;
	line-height: 1.4;
	color: #1a2540;
	font-weight: 700;
}
.block-faq .accordion-header .btn {
	position: absolute;
	top: 50%;
	right: 1.25rem;
	transform: translateY(-50%);
	background: none;
	border: 0;
	cursor: pointer;
	color: #e30613;
	font-size: 1rem;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.2s;
}
.block-faq .accordion-header .btn[aria-expanded="true"] {
	transform: translateY(-50%) rotate(180deg);
}
.block-faq .accordion-collapse {
	display: none;
}
.block-faq .accordion-collapse.show,
.block-faq .accordion-collapse[aria-expanded="true"],
.block-faq .accordion-item.is-open .accordion-collapse {
	display: block;
}
.block-faq .accordion-body {
	padding: 0 1.75rem 1.5rem;
	color: #555;
	font-size: 0.95rem;
	line-height: 1.6;
}
.block-faq .accordion-body p { margin: 0 0 0.6rem; }
.block-faq .accordion-body p:last-child { margin-bottom: 0; }
.block-faq .accordion-body p:empty { display: none; }

/* Contact */
.block-contact-rcc { background: #fff; }
.block-contact-rcc h2 {
	font-size: 1.85rem;
	margin: 0.2rem 0 0.4rem;
	color: #1a2540;
}
.block-contact-rcc .subtitle {
	margin-bottom: 0.3rem;
}
.block-contact-rcc .profile-inner {
	background: #f7f6f0;
	border-radius: 16px;
	padding: 2.4rem 1.75rem;
	text-align: center;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
}
.block-contact-rcc .profile-image-wrapper {
	margin: 0 auto 1.25rem;
}
.block-contact-rcc .profile-image-wrapper .image img {
	width: 150px;
	height: 150px;
	border-radius: 50%;
	object-fit: cover;
	border: 4px solid #fff;
	box-shadow: 0 4px 14px rgba(0,0,0,0.08);
}
.block-contact-rcc .profile-content { width: 100%; }
.block-contact-rcc .profile-content p.subtitle {
	color: #e30613;
	font-weight: 600;
	font-size: 0.8rem;
	letter-spacing: 0.5px;
	margin: 0 0 0.3rem;
	text-transform: uppercase;
}
.block-contact-rcc .profile-content h3 {
	margin: 0 0 0.1rem;
	font-size: 1.15rem;
	color: #1a2540;
	font-weight: 700;
}
.block-contact-rcc .profile-content .title-person {
	color: #777;
	font-size: 0.88rem;
	margin: 0 0 1rem;
}
.block-contact-rcc .profile-content .btn,
.block-contact-rcc .profile-content .btn.btn-primary,
.block-contact-rcc .profile-content a[href^="tel:"],
.block-contact-rcc .profile-content a[href^="mailto:"] {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	padding: 0.7rem 1.2rem;
	background: #fff !important;
	color: #1a2540 !important;
	border: 1.5px solid #e30613 !important;
	border-radius: 999px !important;
	text-decoration: none !important;
	font-size: 0.88rem;
	font-weight: 600;
	margin: 0.25rem 0;
	width: 100%;
	box-sizing: border-box;
	transition: all 0.15s;
}
/* Force ALL child elements (spans, icons, text-nodes) to inherit parent color */
.block-contact-rcc .profile-content .btn,
.block-contact-rcc .profile-content .btn *,
.block-contact-rcc .profile-content a[href^="tel:"],
.block-contact-rcc .profile-content a[href^="tel:"] *,
.block-contact-rcc .profile-content a[href^="mailto:"],
.block-contact-rcc .profile-content a[href^="mailto:"] * {
	color: #1a2540 !important;
}
.block-contact-rcc .profile-content .btn:hover,
.block-contact-rcc .profile-content .btn:hover *,
.block-contact-rcc .profile-content .btn.btn-primary:hover,
.block-contact-rcc .profile-content .btn.btn-primary:hover *,
.block-contact-rcc .profile-content a[href^="tel:"]:hover,
.block-contact-rcc .profile-content a[href^="tel:"]:hover *,
.block-contact-rcc .profile-content a[href^="mailto:"]:hover,
.block-contact-rcc .profile-content a[href^="mailto:"]:hover * {
	background: #e30613 !important;
	color: #fff !important;
}
.block-contact-rcc .profile-content .btn i,
.block-contact-rcc .profile-content a[href^="tel:"] i,
.block-contact-rcc .profile-content a[href^="mailto:"] i {
	color: #e30613 !important;
}
.block-contact-rcc .profile-content .btn:hover i,
.block-contact-rcc .profile-content a[href^="tel:"]:hover i,
.block-contact-rcc .profile-content a[href^="mailto:"]:hover i {
	color: #fff !important;
}

/* Native contact form + Gravity Forms override */
.block-contact-rcc .custom-contact-form_wrapper {
	background: transparent;
	margin-top: 0.75rem;
}
.block-contact-rcc .custom-contact-form_wrapper input[type="text"],
.block-contact-rcc .custom-contact-form_wrapper input[type="email"],
.block-contact-rcc .custom-contact-form_wrapper input[type="tel"],
.block-contact-rcc .custom-contact-form_wrapper input[type="number"],
.block-contact-rcc .custom-contact-form_wrapper textarea,
.block-contact-rcc .custom-contact-form_wrapper select {
	width: 100%;
	padding: 0.65rem 0.85rem;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	background: #fff;
	font: inherit;
	font-size: 0.92rem;
	color: #1a2540;
	transition: border-color 0.15s, box-shadow 0.15s;
	box-sizing: border-box;
}
.block-contact-rcc .custom-contact-form_wrapper textarea {
	min-height: 110px;
	resize: vertical;
}
.block-contact-rcc .custom-contact-form_wrapper input:focus,
.block-contact-rcc .custom-contact-form_wrapper textarea:focus,
.block-contact-rcc .custom-contact-form_wrapper select:focus {
	outline: 0;
	border-color: #e30613;
	box-shadow: 0 0 0 3px rgba(227, 6, 19, 0.12);
}
.block-contact-rcc .rcc-native-contact-form label {
	display: block;
	font-weight: 600;
	font-size: 0.85rem;
	color: #333;
	margin-bottom: 0.25rem;
}
.block-contact-rcc .rcc-native-contact-form .required {
	color: #e30613;
}
.block-contact-rcc .rcc-native-contact-form input[type="text"],
.block-contact-rcc .rcc-native-contact-form input[type="email"],
.block-contact-rcc .rcc-native-contact-form input[type="tel"],
.block-contact-rcc .rcc-native-contact-form textarea {
	width: 100%;
	padding: 0.65rem 0.8rem;
	border: 1px solid #d8d8d8;
	border-radius: 6px;
	background: #fff;
	font: inherit;
	font-size: 0.92rem;
	color: #1a2540;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.block-contact-rcc .rcc-native-contact-form input:focus,
.block-contact-rcc .rcc-native-contact-form textarea:focus {
	outline: 0;
	border-color: #e30613;
	box-shadow: 0 0 0 3px rgba(227, 6, 19, 0.12);
}
.block-contact-rcc .rcc-native-contact-form textarea {
	min-height: 110px;
	resize: vertical;
}
.block-contact-rcc .rcc-native-contact-form .custom-form-submit-btn {
	background: #e30613;
	color: #fff;
	border: 0;
	padding: 0.75rem 1.5rem;
	border-radius: 999px;
	font-weight: 700;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	transition: background 0.15s;
}
.block-contact-rcc .rcc-native-contact-form .custom-form-submit-btn:hover {
	background: #b80510;
}
.block-contact-rcc .rcc-native-contact-form .row {
	row-gap: 0.85rem;
}
.block-contact-rcc .rcc-contact-feedback {
	padding: 0.6rem 0.85rem;
	border-radius: 6px;
	margin: 0.5rem 0 0.85rem;
	font-size: 0.9rem;
}
.block-contact-rcc .rcc-contact-feedback--ok {
	background: #ecfdf3;
	border-left: 3px solid #16a34a;
	color: #166534;
}
.block-contact-rcc .rcc-contact-feedback--error {
	background: #fef2f2;
	border-left: 3px solid #dc2626;
	color: #991b1b;
}

/* Form wrapper */
.block-contact-rcc .form-wrapper {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 12px;
	padding: 1.5rem;
}

/* =========================================================
   10. CART + CHECKOUT — gentle polish over WC defaults
   ========================================================= */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
	max-width: 1200px;
	margin: 1.5rem auto;
	padding: 0 20px;
}
.woocommerce-cart table.shop_table,
.woocommerce-checkout table.shop_table {
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid #ececec;
	background: #fff;
	border-collapse: separate;
	border-spacing: 0;
}
.woocommerce-cart table.shop_table th,
.woocommerce-checkout table.shop_table th {
	background: #fafafa;
	color: #1a2540;
	font-weight: 700;
	padding: 0.9rem 1rem;
}
.woocommerce-cart table.shop_table td,
.woocommerce-checkout table.shop_table td {
	padding: 0.9rem 1rem;
	border-bottom: 1px solid #f0f0f0;
}
.woocommerce-cart table.shop_table .product-thumbnail img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 8px;
}
.woocommerce-cart .product-name a,
.woocommerce-checkout .product-name {
	color: #1a2540;
	font-weight: 600;
	text-decoration: none;
}
.woocommerce-cart .cart_totals,
.woocommerce-checkout .cart_totals {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
}
.woocommerce-cart .cart_totals h2,
.woocommerce-checkout #order_review_heading {
	margin: 0 0 1rem;
	font-size: 1.15rem;
	color: #1a2540;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce .checkout-button,
.woocommerce #place_order,
.wc-block-cart__submit-button,
.wp-block-woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	background: #e30613 !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 0.95rem 2rem !important;
	font-weight: 700 !important;
	font-size: 1.05rem !important;
	box-shadow: none !important;
	transition: background 0.15s;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover {
	background: #b80510 !important;
	color: #fff !important;
}
/* "Update aanvraag" — secondary outline button. */
.woocommerce button[name="update_cart"] {
	background: #fff !important;
	color: #1a2540 !important;
	border: 1.5px solid #d8d8d8 !important;
	border-radius: 999px !important;
	padding: 0.7rem 1.4rem !important;
	font-weight: 600 !important;
}
.woocommerce button[name="update_cart"]:disabled {
	opacity: 0.5;
}
/* Cart block wrapper (woocommerce/classic-shortcode) constrained + centered. */
.wp-block-group.alignwide > .woocommerce-cart-form,
.woocommerce-cart .woocommerce {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}
/* Cart totals box on the right. */
.cart-collaterals .cart_totals {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
}
.cart-collaterals .cart_totals h2 {
	margin: 0 0 1rem;
	font-size: 1.15rem;
	color: #1a2540;
}
.cart-collaterals .wc-proceed-to-checkout { margin-top: 0.5rem; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	padding: 0.6rem 0.85rem;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	border-color: #e30613;
	box-shadow: 0 0 0 3px rgba(227, 6, 19, 0.12);
	outline: 0;
}
.woocommerce-checkout #payment {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 12px;
}
.woocommerce-checkout #payment ul.payment_methods {
	background: transparent;
	padding: 1rem 1.25rem;
}
.woocommerce-checkout #payment div.payment_box {
	background: #fafafa;
	border-radius: 8px;
}
/* RCC vanaf-price + on-request labels inside the cart/checkout line items. */
.rcc-cart-vanaf {
	font-weight: 700;
	color: #1a2540;
	white-space: nowrap;
}
.rcc-cart-on-request {
	font-style: italic;
	color: #555;
}

/* =========================================================
   HEADER CART (Bootscore) — only icon + count, no price text
   ========================================================= */
.cart-toggler .cart-total,
.cart-content .cart-total {
	display: none !important;
}

/* =========================================================
   MINI-CART OFFCANVAS (Bootscore) — wider + tidier
   ========================================================= */
/* Bootstrap controls offcanvas width via --bs-offcanvas-width, not `width`. */
#offcanvas-cart.offcanvas-end {
	--bs-offcanvas-width: 480px;
	width: 480px !important;
	max-width: 94vw;
}
@media (max-width: 575px) {
	#offcanvas-cart.offcanvas-end {
		--bs-offcanvas-width: 94vw;
		width: 94vw !important;
	}
}
#offcanvas-cart .offcanvas-header {
	border-bottom: 2px solid #e30613;
}
#offcanvas-cart .woocommerce-mini-cart-item .item-image img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 8px;
}
/* The chosen-options list: compact 2-column grid, readable colours. */
#offcanvas-cart dl.variation {
	margin: 0.4rem 0 0.2rem !important;
	font-size: 0.78rem;
	line-height: 1.35;
	display: grid !important;
	grid-template-columns: max-content 1fr;
	gap: 0.05rem 0.5rem;
	float: none !important;
}
#offcanvas-cart dl.variation dt {
	font-weight: 600;
	color: #1a2540;
	margin: 0;
}
#offcanvas-cart dl.variation dd {
	margin: 0;
	color: #444;
}
#offcanvas-cart dl.variation dd p { margin: 0; }
/* Hide the redundant per-item € 0,00 line (we show "vanaf €X" in the qty row). */
#offcanvas-cart .bootscore-custom-render-total {
	display: none !important;
}
#offcanvas-cart .remove.rcc-remove,
#offcanvas-cart .remove.rcc-remove i {
	color: #e30613 !important;
	font-size: 1.05rem;
	opacity: 1 !important;
}
#offcanvas-cart .qty_text + * .rcc-cart-vanaf,
#offcanvas-cart .rcc-cart-vanaf { color: #1a2540; }
#offcanvas-cart .cart-footer .btn-primary {
	background: #e30613 !important;
	border-color: #e30613 !important;
}
#offcanvas-cart .cart-footer .btn-secondary {
	background: #fff !important;
	color: #1a2540 !important;
	border: 1.5px solid #d8d8d8 !important;
}

/* =========================================================
   CART PAGE — bigger thumbs, visible remove icon, readable meta
   ========================================================= */
.woocommerce-cart td.product-thumbnail {
	width: 180px;
}
.woocommerce-cart td.product-thumbnail img {
	width: 160px !important;
	height: 160px !important;
	max-width: none !important;
	object-fit: cover;
	border-radius: 10px;
}
/* Cart block (woocommerce/classic-shortcode) — no extra padding/margin so it
   aligns flush with the rest of the page content. */
.woocommerce-cart .wp-block-group.alignwide,
.woocommerce-cart .woocommerce.wp-block-group {
	padding: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
/* Remove-link: render an always-visible "×" ourselves, independent of whether
   Font Awesome loads / renders inside the cart table. */
.woocommerce-cart td.product-remove a.remove,
#offcanvas-cart .remove.rcc-remove {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 30px !important;
	height: 30px !important;
	border-radius: 50%;
	color: #e30613 !important;
	background: #fdf2f3 !important;
	font-size: 1.1rem;
	line-height: 1;
	text-decoration: none !important;
	opacity: 1 !important;
	overflow: visible !important;
	transition: background 0.15s, color 0.15s;
}
.woocommerce-cart td.product-remove a.remove:hover,
#offcanvas-cart .remove.rcc-remove:hover {
	background: #e30613 !important;
	color: #fff !important;
}
/* Hide the (possibly non-rendering) FA <i> and draw our own glyph. */
.woocommerce-cart td.product-remove a.remove i,
#offcanvas-cart .remove.rcc-remove i {
	display: none !important;
}
.woocommerce-cart td.product-remove a.remove::before,
#offcanvas-cart .remove.rcc-remove::before {
	content: "\00d7"; /* × */
	font-weight: 700;
	font-size: 1.25rem;
	line-height: 1;
}
.woocommerce-cart td.product-name dl.variation dt {
	color: #1a2540 !important;
	font-weight: 600;
}
.woocommerce-cart td.product-name dl.variation dd,
.woocommerce-cart td.product-name dl.variation dd p {
	color: #444 !important;
}
.woocommerce-cart .product-name .rcc-cart-edit-link {
	font-weight: 600;
}
/* "Wijzig deze keuzes" + the chosen-options list under the product name. */
.woocommerce-cart td.product-name dl.variation,
.woocommerce-cart td.product-name .wc-item-meta {
	margin: 0.4rem 0 0;
	font-size: 0.85rem;
	color: #555;
}
.woocommerce-cart td.product-name dl.variation dt,
.woocommerce-cart td.product-name .wc-item-meta strong {
	font-weight: 600;
	color: #1a2540;
}
.block-contact-rcc .form-wrapper .subtitle {
	margin: 0 0 0.3rem;
}
.block-contact-rcc .form-wrapper h2 {
	margin: 0 0 0.5rem;
}
.block-contact-rcc .form-wrapper p {
	margin: 0 0 1rem;
	color: #666;
}

/* =========================================================
   Extra diensten + accessoires - strakkere kaarten
   Foto vult de card, 3 naast elkaar, tekst + vinkje gecentreerd.
   (2026-07-10) Scoped op .rcc-accessoire-card en .maatwerk-card--uiterlijk,
   raakt de maatwerk-optie-kaarten NIET.
   ========================================================= */
.rcc-pp-wrap .rcc-accessoires-grid,
.rcc-pp-wrap .maatwerk-grid:has(.maatwerk-card--uiterlijk) {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.85rem;
}
@media (max-width: 640px) {
	.rcc-pp-wrap .rcc-accessoires-grid,
	.rcc-pp-wrap .maatwerk-grid:has(.maatwerk-card--uiterlijk) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
.rcc-pp-wrap .rcc-accessoire-card,
.rcc-pp-wrap .maatwerk-card--uiterlijk {
	padding: 0;
	min-height: 0;
	overflow: hidden;
	justify-content: flex-start;
	gap: 0;
	text-align: center;
}
.rcc-pp-wrap .rcc-accessoire-card img,
.rcc-pp-wrap .maatwerk-card--uiterlijk img {
	width: 100%;
	max-height: none;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	margin: 0 0 0.55rem;
	border-radius: 0;
}
.rcc-pp-wrap .rcc-accessoire-card .maatwerk-card__label,
.rcc-pp-wrap .maatwerk-card--uiterlijk .maatwerk-card__label {
	text-align: center;
	padding: 0 0.6rem;
	margin: 0 0 0.55rem;
}
.rcc-pp-wrap .rcc-accessoire-card .maatwerk-card__check,
.rcc-pp-wrap .maatwerk-card--uiterlijk .maatwerk-card__check {
	position: static;
	margin: 0 auto 0.7rem;
}

/* =========================================================
   USP-balk (productpagina) - nette uitlijning (2026-07-10)
   Langere labels wrappen naar 2 regels. Centreer de kolommen
   verticaal en icoon+tekst horizontaal, zodat alle vinkjes op
   één lijn komen en de balk strak/gelijk oogt.
   Scoped op .sp-breakout (productpagina), niet de shop-balk.
   ========================================================= */
.sp-breakout.block-usp-bar .row {
	align-items: center;
}
.sp-breakout.block-usp-bar .usp-item p {
	justify-content: center;
	line-height: 1.3;
}
.sp-breakout.block-usp-bar .usp-item i {
	flex-shrink: 0;
}

/* =========================================================
   Belangrijkste kenmerken - check-icons groen (27-05 feedback)
   ========================================================= */
.rcc-pp-wrap .single-product__kenmerken i {
	color: #16a34a;
}
