/* Single product templates (tractor + generic), gallery, builder section and spec table. */

.solis-single-product { --solis-sticky-offset: 90px; }
.solis-single-product > .product { margin-block: 0; }

.solis-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 16px;
	border: 0;
	background: var(--wp--preset--color--foreground);
	color: var(--wp--preset--color--background);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 600;
	line-height: 1.3;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s;
}
.solis-btn:hover { background: #333; }
.solis-btn--blue { background: var(--wp--preset--color--accent); }
.solis-btn--blue:hover { background: var(--wp--preset--color--accent-dark); }
.solis-btn:focus-visible { outline: 2px solid var(--wp--preset--color--foreground); outline-offset: 2px; }

/* Gallery */
.solis-gallery { position: relative; }
.solis-gallery__main { position: relative; overflow: hidden; }
.solis-gallery__frame {
	display: block;
	height: var(--solis-gallery-h, auto);
	background: var(--wp--preset--color--background);
}
.solis-gallery__frame img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.solis-gallery--tractor { --solis-gallery-h: 800px; }
.solis-gallery--generic .solis-gallery__frame { aspect-ratio: 3 / 2; }
.solis-gallery--generic .solis-gallery__frame img { object-fit: contain; }
.solis-gallery__thumbs .nomon-slider-arrow { width: 20px; height: 35px; margin-top: -17.5px; }
.solis-gallery__thumbs .nomon-slider-arrow svg { width: 16px; height: 16px; }
.solis-gallery__thumbs { margin-top: 10px; }
.solis-gallery__thumbs .swiper-slide { position: relative; cursor: pointer; }
.solis-gallery__thumbs .swiper-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	border: 1px solid var(--wp--preset--color--border);
	pointer-events: none;
	transition: border-color .2s;
}
.solis-gallery__thumbs .swiper-slide:hover::after { border-color: var(--wp--preset--color--muted); }
.solis-gallery__thumbs .swiper-slide-thumb-active::after { border: 2px solid var(--wp--preset--color--accent); }
.solis-gallery__thumbs img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; opacity: .5; transition: opacity .2s; }
.solis-gallery__thumbs :is(.swiper-slide-thumb-active, .swiper-slide:hover) img { opacity: 1; }
@media (max-width: 767px) {
	.solis-gallery { --solis-gallery-h: 450px; }
	.solis-gallery--generic .solis-gallery__frame { aspect-ratio: auto; }
}

/* Tractor: sticky sub-bar */
.solis-tractor-bar {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: var(--z-sticky, 55);
	margin-inline: calc(50% - 50vw);
	background: var(--wp--preset--color--surface);
}
.solis-tractor-bar__inner {
	display: flex;
	align-items: center;
	gap: 30px;
	min-height: 64px;
	margin: 0 auto;
	padding: 0 var(--site-gutter, 60px);
	max-width: calc(1540px + 2 * var(--site-gutter, 60px));
	font-size: var(--wp--preset--font-size--caption);
}
.solis-tractor-bar__title { margin: 0 10px 0 0; font-size: var(--wp--preset--font-size--body); font-weight: 600; }
.solis-tractor-bar__links { display: flex; align-self: stretch; gap: 30px; margin: 0; padding: 0; list-style: none; }
.solis-tractor-bar__links a {
	position: relative;
	display: flex;
	align-items: center;
	height: 100%;
	color: var(--wp--preset--color--muted);
	font-weight: 500;
	text-decoration: none;
	transition: color .15s;
}
.solis-tractor-bar__links a::after {
	content: "";
	position: absolute;
	inset: auto 0 -1px;
	height: 3px;
	background: var(--wp--preset--color--accent);
	transform: scaleX(0);
	transition: transform .2s;
}
.solis-tractor-bar__links a:is(:hover, :focus-visible, [aria-current]) { color: var(--wp--preset--color--foreground); }
.solis-tractor-bar__links a[aria-current]::after { transform: scaleX(1); }
.solis-tractor-bar__links a:focus-visible { outline-offset: -2px; }
.solis-tractor-bar__price { display: flex; align-items: baseline; gap: 8px; margin: 0 0 0 auto; color: var(--wp--preset--color--muted); }
.solis-tractor-bar__price .price { color: var(--wp--preset--color--foreground); font-size: var(--wp--preset--font-size--body); font-weight: 600; }
.solis-tractor-bar__price .price del { font-size: var(--wp--preset--font-size--caption); font-weight: 400; color: var(--wp--preset--color--muted); }
.solis-tractor-bar__cta { min-height: 40px; padding-inline: 20px; }
@media (prefers-reduced-motion: reduce) {
	:is(.solis-tractor-bar__links a, .solis-tabs__list [role="tab"])::after { transition: none; }
}
.solis-single-product :is(#description, #videos, #techspecs, #solisbuilder) { scroll-margin-top: calc(var(--solis-sticky-offset) + var(--wp-admin--admin-bar--height, 0px)); }
@media (max-width: 767px) {
	.solis-tractor-bar { display: none; }
}

/* Tractor: description */
.solis-tractor-description { display: flex; flex-direction: column; gap: 40px; margin-top: 40px; }
.solis-tractor-title { margin: 0; padding: 20px 25px; border: 1px solid var(--wp--preset--color--border-subtle); font-size: var(--wp--preset--font-size--title-l); font-weight: 600; line-height: 1.25; }
.solis-highlights {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	border: 1px solid var(--wp--preset--color--border-subtle);
}
.solis-highlights > div { padding: 15px 25px; }
.solis-highlights > div + div { border-left: 1px solid var(--wp--preset--color--border-subtle); }
.solis-tractor-title + .solis-highlights { margin-top: -40px; border-top: 0; }
.solis-highlights + .solis-price-blocks { margin-top: -20px; }
.solis-price-blocks + .solis-tractor-content { margin-top: 40px; }
.solis-highlights dt { font-size: var(--wp--preset--font-size--caption); line-height: 1.4; color: var(--wp--preset--color--muted); }
.solis-highlights dd { margin: 2px 0 0; }
@media (max-width: 767px) {
	.solis-highlights { grid-template-columns: minmax(0, 1fr); }
	.solis-highlights > div + div { border-left: 0; border-top: 1px solid var(--wp--preset--color--border-subtle); }
}
.solis-tractor-content > * { max-width: var(--prose-cap, 940px); margin-inline: auto; }
.solis-tractor-content > :is(ul, ol) { padding-inline-start: 1.25em; }
.solis-tractor-content > :first-child { margin-top: 0; }
.solis-tractor-content h2 { font-size: var(--wp--preset--font-size--title-m); line-height: 1.3; }
.solis-tractor-content h3 { font-size: var(--wp--preset--font-size--title-s); line-height: 1.3; }

/* Tractor: price blocks */
.solis-price-blocks {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border: 1px solid var(--wp--preset--color--border-subtle);
}
.solis-price-block {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 20px 25px 15px;
}
.solis-price-block + .solis-price-block { border-left: 1px solid var(--wp--preset--color--border-subtle); }
.solis-price-block__label { margin: 0; font-size: var(--wp--preset--font-size--body); }
.solis-price-block__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 15px; margin: 0; font-size: var(--wp--preset--font-size--title-l); font-weight: 700; line-height: 1.25; }
.solis-price-block__price del { margin: 0; font-size: var(--wp--preset--font-size--title-s); font-weight: 400; color: var(--wp--preset--color--muted); }
.solis-price-block__vat { font-size: var(--wp--preset--font-size--caption); line-height: 1.5; color: var(--wp--preset--color--muted); }
.solis-price-block__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 10px 0; }
.solis-price-block__actions form.cart { margin: 0; }
.solis-price-block form.cart .quantity { display: none; }
.solis-price-block form.cart .single_add_to_cart_button,
.solis-builder-section form.cart .single_add_to_cart_button {
	min-width: 200px;
	min-height: 45px;
	padding: 13px 15px 12px;
	border: 0;
	background: var(--wp--preset--color--foreground);
	color: #fff;
	font: inherit;
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 600;
	line-height: 1.3;
	text-transform: uppercase;
	cursor: pointer;
}
.solis-price-block__actions .solis-btn { min-height: 45px; }
.solis-price-blocks__fine { grid-column: 1 / -1; padding: 12px 25px; border-top: 1px solid var(--wp--preset--color--border-subtle); font-size: var(--wp--preset--font-size--caption); color: var(--wp--preset--color--muted); }
.solis-price-blocks__fine p { margin: 0; }
@media (max-width: 767px) {
	.solis-price-blocks { grid-template-columns: minmax(0, 1fr); }
	.solis-price-block + .solis-price-block { border-left: 0; border-top: 1px solid var(--wp--preset--color--border-subtle); }
}

/* Nosto sections */
.solis-feature-sections { display: flex; flex-direction: column; gap: 80px; margin: 80px 0; }
.solis-nosto-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px;
}
.solis-nosto-card { border: 1px solid var(--wp--preset--color--border-subtle); background: #fff; }
.solis-nosto-card img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.solis-nosto-card__body { padding: 20px 20px 25px; }
.solis-nosto-card__title { margin: 0 0 12px; font-size: var(--wp--preset--font-size--body); font-weight: 600; line-height: 1.3; }
.solis-nosto-card__text { max-height: calc(7 * 1.6em); overflow: hidden; font-size: var(--wp--preset--font-size--caption); line-height: 1.6; }
.solis-nosto-card__text.is-open { max-height: none; }
.solis-nosto-card__text > * { margin: 0 0 1em; }
.solis-nosto-card__more {
	margin-top: 8px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--accent);
	font: inherit;
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}
.solis-nosto-feature { display: grid; gap: 60px; align-items: center; }
.solis-nosto-feature--left { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 80px; }
.solis-nosto-feature--below .solis-nosto-feature__media { order: 2; }
.solis-nosto-feature__media img { display: block; max-width: 100%; height: auto; max-height: 460px; margin-inline: auto; object-fit: contain; }
.solis-nosto-feature__title { margin: 0 0 20px; font-size: var(--wp--preset--font-size--title-m); font-weight: 600; line-height: 1.3; }
.solis-nosto-feature__text > * { margin: 0 0 1em; }
@media (max-width: 767px) {
	.solis-nosto-grid, .solis-nosto-feature--left { grid-template-columns: minmax(0, 1fr); gap: 30px; }
}

/* Videos */
.solis-videos { position: relative; }
.solis-videos__frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #000; }
.solis-videos__frame > * { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; margin: 0; }
.solis-videos__frame iframe { width: 100%; height: 100%; }
.solis-videos__frame .nomon-iframe-placeholder__thumb { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }

/* Accordion + spec table */
.solis-accordion { display: flex; flex-direction: column; gap: 20px; margin: 120px 0; }
.solis-accordion__item { border: 1px solid var(--wp--preset--color--border-subtle); background: #fff; }
.solis-accordion__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 50px;
	padding: 0 20px;
	cursor: pointer;
	list-style: none;
}
.solis-accordion__item summary::-webkit-details-marker { display: none; }
.solis-accordion__title { margin: 0; font-size: var(--wp--preset--font-size--title-s); font-weight: 600; line-height: 1.3; }
.solis-accordion__icon { width: 16px; height: 16px; transition: transform .2s; }
.solis-accordion__item[open] .solis-accordion__icon { transform: rotate(90deg); }
.solis-accordion__content { padding: 15px 20px; }
.solis-spec-table table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: var(--wp--preset--font-size--body); }
.solis-spec-table :is(th, td) { height: 51px; padding: 8px 20px 8px 0; border-bottom: 1px solid var(--wp--preset--color--border-subtle); text-align: left; vertical-align: middle; overflow-wrap: anywhere; }
.solis-spec-table th { width: 40%; font-weight: 600; }
.solis-tabs__panel.solis-spec-table table { font-size: var(--wp--preset--font-size--caption); }
.solis-tabs__panel.solis-spec-table :is(th, td) { height: 42px; }
.solis-tabs__panel.solis-spec-table th { font-weight: 400; color: var(--wp--preset--color--muted); }
.solis-spec-table td p { margin: 0; }
.solis-spec-table a { color: inherit; text-decoration: none; pointer-events: none; }
.solis-files { display: flex; flex-wrap: wrap; gap: 10px; }

/* Builder section */
.solis-builder-section {
	width: 900px;
	max-width: 100%;
	margin: 120px auto;
	padding: 0 60px;
}
.solis-builder-section__title { margin: 0 0 20px; font-size: var(--wp--preset--font-size--title-l); font-weight: 600; line-height: 1.25; }
.solis-builder-section form.cart .quantity { display: none; }
@media (max-width: 767px) {
	.solis-builder-section { padding: 0; }
}

.solis-single-product .solis-product-carousel { margin: 120px 0; }

/* Generic product */
.solis-product-top { margin: 15px 0 120px; }
.solis-product-top > .site-breadcrumbs, .solis-product-top > nav:first-child { margin-bottom: 15px; }
.solis-product-grid-layout {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 50px;
	align-items: start;
}
@media (max-width: 991px) {
	.solis-product-grid-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}
.solis-product-summary { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.solis-product-summary__title { margin: 0; font-size: var(--wp--preset--font-size--title-m); font-weight: 600; line-height: 1.3; }
.solis-product-summary__meta {
	margin: 0;
	padding-bottom: 15px;
	border-bottom: 1px solid var(--wp--preset--color--border);
	font-size: var(--wp--preset--font-size--caption);
}
.solis-product-summary__label { color: var(--wp--preset--color--muted); }
.solis-product-summary__meta a { color: var(--wp--preset--color--accent); font-weight: 600; text-decoration: none; }
.solis-product-summary__meta a:is(:hover, :focus-visible) { text-decoration: underline; }
.solis-quote-box { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin: 10px 0; }
.solis-quote-box__title { margin: 0; font-size: var(--wp--preset--font-size--title-s); font-weight: 600; }
.solis-quote-box p { margin: 0; }
.solis-price-box { margin-top: 10px; padding: 25px 15px; background: var(--wp--preset--color--surface); }
.solis-price-box__price { margin: 0; font-size: var(--wp--preset--font-size--title-s); font-weight: 700; line-height: 1.3; }
.solis-price-box__price ins { font-size: var(--wp--preset--font-size--title-m); }
.solis-price-box__price del { margin-inline-start: 25px; font-size: var(--wp--preset--font-size--body); font-weight: 400; }
.solis-price-box__vat { margin: 5px 0 0; font-size: var(--wp--preset--font-size--caption); line-height: 1.5; color: var(--wp--preset--color--muted); }
.solis-product-summary__cart form.cart { gap: 0 0; flex-wrap: nowrap; margin: 0; }
.solis-product-summary__cart form.cart .quantity { width: 110px; height: 61px; flex: none; }
.solis-product-summary__cart form.cart .single_add_to_cart_button {
	flex: 1 1 auto;
	min-height: 61px;
	margin-left: 0;
	border: 0;
	background: var(--wp--preset--color--accent);
	color: #fff;
	font: inherit;
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 600;
	cursor: pointer;
}
.solis-product-summary__cart form.cart .single_add_to_cart_button:hover { background: var(--wp--preset--color--accent-dark); }
.solis-product-summary__cart form.cart .single_add_to_cart_button:focus-visible { outline: 2px solid var(--wp--preset--color--foreground); outline-offset: 2px; }
.solis-product-summary__cart form.variations_form { flex-wrap: wrap; }
.solis-product-summary__cart form.variations_form .single_variation_wrap { flex: 1 0 100%; }
.solis-product-summary__cart .woocommerce-variation-add-to-cart { display: flex; }
.solis-product-summary__status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	padding: 14px 0 4px;
	font-size: var(--wp--preset--font-size--caption);
	line-height: 1.4;
}
.solis-product-summary__status > * + * {
	padding-left: 16px;
	border-left: 1px solid var(--wp--preset--color--border);
}
.solis-product-summary__status .solis-stock-pill {
	width: auto;
	padding: 0;
	font-size: inherit;
	background: none;
}
.solis-product-summary__delivery {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}
.solis-product-summary__truck { width: 18px; height: 18px; color: var(--wp--preset--color--accent); }

.solis-tabs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0 30px;
	margin-top: 10px;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.solis-tabs__list [role="tab"] {
	position: relative;
	padding: 12px 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--muted);
	font: inherit;
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 600;
	cursor: pointer;
	transition: color .15s;
}
.solis-tabs__list [role="tab"]::after {
	content: "";
	position: absolute;
	inset: auto 0 -1px;
	height: 3px;
	background: var(--wp--preset--color--accent);
	transform: scaleX(0);
	transition: transform .2s;
}
.solis-tabs__list [role="tab"]:is(:hover, [aria-selected="true"]) { color: var(--wp--preset--color--foreground); }
.solis-tabs__list [aria-selected="true"]::after { transform: scaleX(1); }
.solis-tabs__list [role="tab"]:focus-visible { outline: 2px solid var(--wp--preset--color--foreground); outline-offset: 2px; }
.solis-tabs__panel { padding: 20px 0 0; }
.solis-tabs__panel--content { font-size: var(--wp--preset--font-size--caption); line-height: 1.6; }
.solis-tabs__panel--content > :first-child { margin-top: 0; }
.solis-tabs__panel--content table { display: block; max-width: 100%; overflow-x: auto; }
.solis-tabs__panel--content :is(h1, h2, h3, h4) { max-width: none; margin: 1.2em 0 .6em; font-size: var(--wp--preset--font-size--body); line-height: 1.3; }
.solis-tabs__panel--content .solis-videos__frame { margin-top: 20px; }

/* WCBoost swatches */
.solis-product-summary .variations { width: 100%; border-collapse: collapse; }
.solis-product-summary .variations :is(th, td) { padding: 5px 0; text-align: left; vertical-align: middle; }
.solis-product-summary .variations th { width: 110px; padding-right: 15px; font-weight: 400; color: var(--wp--preset--color--muted); }
.solis-product-summary .wcboost-variation-swatches__item {
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 999px !important;
	background: #fff !important;
	box-shadow: none !important;
}
.solis-product-summary .wcboost-variation-swatches__item.selected {
	border-color: var(--wp--preset--color--foreground) !important;
	background: var(--wp--preset--color--border-subtle) !important;
}
.solis-product-summary .wcboost-variation-swatches__item.disabled { opacity: .4; }
.solis-product-summary .reset_variations { font-size: var(--wp--preset--font-size--caption); color: var(--wp--preset--color--foreground); }

/* Quote dialog */
.solis-quote-dialog {
	position: fixed;
	inset: 0;
	margin: auto;
	width: min(800px, calc(100vw - 30px));
	max-height: calc(100vh - 60px);
	padding: 0;
	border: 0;
	z-index: var(--z-modal, 1100);
}
.solis-quote-dialog::backdrop { background: rgb(0 0 0 / .5); }
.solis-quote-dialog__inner { position: relative; padding: 40px; }
.solis-quote-dialog__title { margin: 0 0 20px; font-size: var(--wp--preset--font-size--title-m); font-weight: 600; }
.solis-quote-dialog__close {
	position: absolute;
	top: 15px;
	right: 15px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}
.solis-quote-dialog__close svg { width: 16px; height: 16px; }
@media (max-width: 767px) {
	.solis-quote-dialog__inner { padding: 30px 20px; }
}
.solis-tabs__panel :is(iframe, img, video, figure) { max-width: 100%; }

/* Product builder (plugin output; themed through its --pb-* variables) */
.solis-single-product {
	--pb-accent: var(--wp--preset--color--success);
	--pb-border: var(--wp--preset--color--border);
	--pb-text: #333;
	--pb-quote-btn-bg: var(--wp--preset--color--accent);
	--pb-quote-btn-hover-bg: var(--wp--preset--color--accent-dark);
	--pb-quote-btn-padding: 13px 15px 12px;
	--pb-quote-btn-margin-top: 0;
	--pb-btn-bg: var(--wp--preset--color--foreground);
	--pb-btn-hover-bg: #333;
	--pb-radius: 0;
}
.nmnwcpo-ask-for-quote-button {
	min-width: 185px;
	min-height: 45px;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--caption);
	text-transform: uppercase;
}
.nmnwcpo-ask-for-quote-button:focus-visible { outline: 2px solid var(--wp--preset--color--foreground); outline-offset: 2px; }
.nmnwcpo-product-builder-wrapper { font-family: inherit; }
.nmnwcpo-product-builder-title { font-weight: 400; line-height: 1.3; }
.nmnwcpo-product-builder-wrapper :is(.nmnwcpo-product-builder-checkbox-name, .nmnwcpo-product-builder-checkbox-price, .nmnwcpo-product-builder-summary, #nmnwcpo-product-builder-selected li, #nmnwcpo-product-builder-selected li .product-price, #nmnwcpo-product-builder-total, #nmnwcpo-product-builder-total-without-tax) { font-size: var(--wp--preset--font-size--body); }
.nmnwcpo-modal { z-index: var(--z-modal, 1100) !important; font-family: inherit; }
.nmnwcpo-modal :is(h2, h3) { font-weight: 600; }
.solis-builder-section .nmnwcpo-quote-atc-row,
.solis-product-summary__cart .nmnwcpo-quote-atc-row { flex: 1 0 100%; }
.nmnwcpo-product-builder-wrapper .nmnwcpo-content-area { min-width: 0; overflow-wrap: anywhere; }
