/* Uptero product page widgets */
:root {
	--upsp-ink: #17212b;
	--upsp-graphite: #2a3035;
	--upsp-cloud: #f3f5f5;
	--upsp-muted: #5e6a74;
	--upsp-line: rgba(23, 33, 43, .1);
}

/* WoodMart underlines links in Elementor content through --wd-link-decor; our components opt out. */
.upsp-snav, .upsp-docs, .upsp-dl, .upsp-kf, .upsp-specs-block, .upsp-enquire-btn, .upsp-promos { --wd-link-decor: none; --wd-link-decor-hover: none; }
.upsp-snav a, .upsp-docs a, .upsp-dl a, .upsp-enquire-btn a { text-decoration: none; }

/* Containers marked upsp-autohide disappear when none of their widgets has anything to show. */
.upsp-autohide:not(:has(.elementor-widget)) { display: none !important; }

.upsp-editor-hint {
	padding: 14px 16px;
	border: 1px dashed #a7b0b8;
	border-radius: 8px;
	color: #5e6a74;
	font-size: 13px;
	background: repeating-linear-gradient(-45deg, #fafbfb, #fafbfb 8px, #f3f5f5 8px, #f3f5f5 16px);
}

/* Shared block heading */
.upsp-block-head { margin-bottom: 24px; max-width: 760px; }
.upsp-block-head--split { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.upsp-block-head .upsp-block-title {
	margin: 0;
	font-family: "Manrope", system-ui, sans-serif;
	font-size: clamp(24px, 2.4vw, 32px);
	font-weight: 700;
	letter-spacing: -.015em;
	line-height: 1.2;
	color: var(--upsp-ink);
}
.upsp-block-intro { margin: 8px 0 0; color: var(--upsp-muted); font-size: 16px; line-height: 1.55; }

/* ---------- Key features ---------- */
.upsp-kf { --upsp-cols: 3; }
.upsp-kf__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(var(--upsp-cols), minmax(0, 1fr));
	gap: 12px;
}
.upsp-kf--cards .upsp-kf__item {
	margin: 0;
	padding: 22px 22px 20px;
	border-radius: 14px;
	background: var(--upsp-cloud);
	display: flex;
	flex-direction: column;
	gap: 6px;
	transition: background-color .2s, box-shadow .2s;
}
.upsp-kf--cards .upsp-kf__item:hover { background: #fff; box-shadow: 0 0 0 1px var(--upsp-line), 0 10px 28px rgba(23, 33, 43, .08); }
.upsp-kf__figure {
	font-family: "Manrope", system-ui, sans-serif;
	font-size: 30px;
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.05;
	color: var(--upsp-ink);
	margin-bottom: 4px;
	font-variant-numeric: tabular-nums;
}
.upsp-kf__num {
	font-family: "Manrope", system-ui, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	color: var(--upsp-muted);
	margin-bottom: 6px;
}
.upsp-kf .upsp-kf__title {
	margin: 0;
	font-family: "Manrope", system-ui, sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--upsp-ink);
	text-transform: none;
}
.upsp-kf__text { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--upsp-muted); }

.upsp-kf--list .upsp-kf__list { gap: 0 32px; }
.upsp-kf--list .upsp-kf__item { margin: 0; padding: 14px 0 14px 30px; border-bottom: 1px solid var(--upsp-line); position: relative; }
.upsp-kf--list .upsp-kf__item::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 19px;
	width: 14px;
	height: 8px;
	border-left: 2px solid var(--upsp-ink);
	border-bottom: 2px solid var(--upsp-ink);
	transform: rotate(-45deg);
}
.upsp-kf--list .upsp-kf__num, .upsp-kf--list .upsp-kf__figure { display: none; }

/* Phones: cards become a swipeable row, so six features take one card's height. */
@media (max-width: 767px) {
	.upsp-kf--cards .upsp-kf__list {
		display: flex;
		gap: 10px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		margin: 0 -15px;
		padding: 0 15px 4px;
		scroll-padding: 0 15px;
	}
	.upsp-kf--cards .upsp-kf__list::-webkit-scrollbar { display: none; }
	.upsp-kf--cards .upsp-kf__item { flex: 0 0 76%; scroll-snap-align: start; padding: 18px; }
	.upsp-kf__figure { font-size: 26px; }
	.upsp-kf--list .upsp-kf__list { grid-template-columns: 1fr; }
}

/* ---------- Document buttons ---------- */
.upsp-docs { display: flex; flex-wrap: wrap; gap: 8px; }
.upsp-docbtn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	padding: 8px 16px 8px 12px;
	border-radius: 999px;
	font-family: "Manrope", system-ui, sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color .15s, color .15s, border-color .15s;
}
.upsp-docbtn svg { width: 18px; height: 18px; flex: none; }
.upsp-docbtn__meta { font-weight: 500; font-size: 12px; opacity: .65; }
.upsp-docbtn--outline { border: 1.5px solid var(--upsp-ink); color: var(--upsp-ink); background: transparent; }
.upsp-docbtn--outline:hover { background: var(--upsp-ink); color: #fff; }
.upsp-docbtn--solid { background: var(--upsp-ink); color: #fff; border: 1.5px solid var(--upsp-ink); }
.upsp-docbtn--solid:hover { background: var(--upsp-graphite); color: #fff; }
.upsp-docbtn--soft { background: var(--upsp-cloud); color: var(--upsp-ink); border: 1.5px solid transparent; }
.upsp-docbtn--soft:hover { background: #e4e9eb; color: var(--upsp-ink); }
.upsp-docbtn--link { padding-left: 0; color: var(--upsp-ink); }
.upsp-sub-title { margin: 0 0 10px; font-family: "Manrope", system-ui, sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--upsp-muted); }
.upsp-docbtn--link .upsp-docbtn__label { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Section navigation ---------- */
.upsp-snav-wrap { position: relative; }
.upsp-snav { background: #fff; border-bottom: 1px solid var(--upsp-line); z-index: 390; }
.upsp-snav.is-stuck { position: fixed; left: 0; right: 0; box-shadow: 0 6px 18px rgba(23, 33, 43, .06); }
.upsp-snav__inner { display: flex; align-items: center; gap: 12px; max-width: var(--wd-container-w, 1222px); margin: 0 auto; }
.upsp-snav.is-stuck .upsp-snav__inner { padding: 0 15px; }
.upsp-snav__list {
	display: flex;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 10px 0;
	overflow-x: auto;
	scrollbar-width: none;
	flex: 1;
	min-width: 0;
	-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent);
	mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent);
}
.upsp-snav__list::-webkit-scrollbar { display: none; }
.upsp-snav__list li { margin: 0; flex: none; }
.upsp-snav__list a {
	display: block;
	padding: 8px 14px;
	border-radius: 999px;
	font-family: "Manrope", system-ui, sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--upsp-muted);
	white-space: nowrap;
	text-decoration: none;
	transition: background-color .15s, color .15s;
}
.upsp-snav__list a:hover { color: var(--upsp-ink); background: var(--upsp-cloud); }
.upsp-snav__list a.is-active { color: #fff; background: var(--upsp-ink); }
.upsp-snav__cta {
	flex: none;
	padding: 9px 18px;
	border-radius: 999px;
	background: var(--upsp-ink);
	color: #fff;
	font-family: "Manrope", system-ui, sans-serif;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}
.upsp-snav__cta:hover { background: var(--upsp-graphite); color: #fff; }
@media (max-width: 767px) {
	.upsp-snav__list { padding: 8px 0; -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 20px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 20px), transparent); }
	.upsp-snav__list a { padding: 7px 12px; font-size: 13.5px; }
	.upsp-snav__cta { display: none; } /* the hero button and sticky add to cart cover this on phones */
	.upsp-snav.is-stuck .upsp-snav__inner { padding: 0 12px; }
}

/* ---------- Downloads ---------- */
.upsp-dl__group + .upsp-dl__group { margin-top: 28px; }
.upsp-dl .upsp-dl__group-title {
	margin: 0 0 8px;
	font-family: "Manrope", system-ui, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--upsp-muted);
}
.upsp-dl__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--upsp-ink); }
.upsp-dl__item { margin: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--upsp-line); }
.upsp-dl__info { min-width: 0; display: grid; gap: 2px; }
.upsp-dl__title { font-family: "Manrope", system-ui, sans-serif; font-weight: 700; font-size: 15.5px; color: var(--upsp-ink); }
.upsp-dl__meta { font-size: 13px; color: var(--upsp-muted); }
.upsp-dl__notes { margin-top: 6px; font-size: 13.5px; color: var(--upsp-graphite); }
.upsp-dl__notes summary { cursor: pointer; color: var(--upsp-ink); font-weight: 600; width: fit-content; }
.upsp-dl__notes div { margin-top: 6px; line-height: 1.55; }
.upsp-dl__btn {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px 8px 10px;
	border-radius: 999px;
	border: 1.5px solid var(--upsp-ink);
	color: var(--upsp-ink);
	font-family: "Manrope", system-ui, sans-serif;
	font-weight: 600;
	font-size: 13.5px;
	text-decoration: none;
	transition: background-color .15s, color .15s;
}
.upsp-dl__btn svg { width: 17px; height: 17px; }
.upsp-dl__btn:hover { background: var(--upsp-ink); color: #fff; }
@media (max-width: 560px) {
	.upsp-dl__btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.upsp-dl__btn { padding: 9px; }
}

/* Quick enquiry button (WoodMart popup element with CSS class upsp-enquire-btn) */
.upsp-enquire-btn .btn {
	min-height: 42px;
	padding: 8px 18px;
	border-radius: 999px;
	border: 1.5px solid var(--upsp-ink);
	background: transparent;
	color: var(--upsp-ink);
	font-family: "Manrope", system-ui, sans-serif;
	font-size: 14px;
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
}
.upsp-enquire-btn .btn:hover { background: var(--upsp-ink); color: #fff; border-color: var(--upsp-ink); }

/* Hero gallery: on phones swipe with dots instead of a thumbnail strip */
@media (max-width: 767px) {
	.upsp-hero .wd-gallery-thumb { display: none; }
}

/* Contact Form 7 forms using the uptero-form markup */
.uptero-form br { display: none; }
.uptero-form p { margin: 0; }
.uptero-form .uf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.uptero-form .uf-full { grid-column: 1 / -1; }
.uptero-form .uf-field > label { display: block; margin-bottom: 6px; font-family: "Manrope", system-ui, sans-serif; font-size: 13px; font-weight: 700; color: var(--upsp-ink); }
.uptero-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.uptero-form select,
.uptero-form textarea {
	width: 100%;
	min-height: 46px;
	padding: 10px 14px;
	border: 1px solid #cfd6db;
	border-radius: 10px;
	background: #fff;
	font-size: 15px;
	color: var(--upsp-ink);
	box-shadow: none;
}
.uptero-form textarea { min-height: 120px; height: 120px; resize: vertical; }
.uptero-form input:focus, .uptero-form select:focus, .uptero-form textarea:focus { border-color: var(--upsp-ink); outline: 2px solid rgba(23, 33, 43, .12); outline-offset: 0; }
.uptero-form input[type=submit] {
	width: 100%;
	min-height: 48px;
	border-radius: 999px;
	background: var(--upsp-ink);
	color: #fff;
	font-family: "Manrope", system-ui, sans-serif;
	font-size: 15px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
}
.uptero-form input[type=submit]:hover { background: var(--upsp-graphite); }
.uptero-form .uf-note { margin-top: 10px; font-size: 13px; color: var(--upsp-muted); text-align: center; }
.uptero-form .wpcf7-not-valid-tip { font-size: 12.5px; margin-top: 4px; }
@media (max-width: 560px) {
	.uptero-form .uf-grid { grid-template-columns: 1fr; }
}

/* Specifications block heading spacing */
.upsp-specs-block .upsp-block-head { margin-bottom: 8px; }

/* ---------- Hero actions: documents + quick enquiry on one line on phones ---------- */
.upsp-hero-actions > .elementor-element { flex: 0 1 auto; }
@media (max-width: 767px) {
	.upsp-hero-actions { flex-wrap: nowrap !important; gap: 6px !important; }
	.upsp-hero-actions .upsp-docs { flex-wrap: nowrap; gap: 6px; }
	.upsp-hero-actions .upsp-docbtn { min-height: 40px; padding: 8px 11px 8px 9px; gap: 5px; font-size: 13px; white-space: nowrap; }
	.upsp-hero-actions .upsp-docbtn svg { width: 16px; height: 16px; }
	.upsp-hero-actions .upsp-docbtn__meta { display: none; }
	.upsp-hero-actions .upsp-enquire-btn .btn { min-height: 40px; padding: 8px 12px; font-size: 13px; white-space: nowrap; }
}

/* ---------- Popup close button: clearly visible inside the popup ---------- */
.wd-popup-element-wrap .wd-popup-close {
	top: 14px;
	right: 14px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--upsp-cloud, #f3f5f5);
	z-index: 5;
	transition: background-color .15s;
	--wd-action-color: #17212b;
	--wd-action-color-hover: #fff;
}
.wd-popup-element-wrap .wd-popup-close > a { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--upsp-ink, #17212b); }
.wd-popup-element-wrap .wd-popup-close .wd-action-icon { font-size: 15px; font-weight: 700; }
.wd-popup-element-wrap .wd-popup-close:hover { background: var(--upsp-ink, #17212b); }
.wd-popup-element-wrap .wd-popup-close:hover > a { color: #fff; }
.wd-popup-element-wrap .wd-popup .elementor-widget-heading:first-child { padding-right: 48px; }

/* ---------- Specification tabs ---------- */
.upsp.upsp--tabs { gap: 0; }
.upsp--tabs .upsp-tabs {
	display: flex;
	gap: 2px;
	border-bottom: 1px solid var(--upsp-line);
	overflow-x: auto;
	scrollbar-width: none;
	margin-bottom: 6px;
}
.upsp--tabs .upsp-tabs::-webkit-scrollbar { display: none; }
.upsp--tabs:not(.is-ready) .upsp-tabs { display: none; }
.upsp .upsp-tab {
	appearance: none;
	flex: none;
	margin: 0 0 -1px;
	padding: 12px 16px;
	min-height: 0;
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	box-shadow: none;
	color: var(--upsp-muted);
	font-family: "Manrope", system-ui, sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	white-space: nowrap;
	cursor: pointer;
	transition: color .15s, border-color .15s;
}
.upsp .upsp-tab:hover { color: var(--upsp-ink); background: none; }
.upsp .upsp-tab[aria-selected="true"] { color: var(--upsp-ink); border-bottom-color: var(--upsp-ink); }
.upsp .upsp-tab:focus-visible { outline: 2px solid var(--upsp-ink); outline-offset: -2px; }
.upsp--tabs .upsp-panel[hidden] { display: none !important; }
.upsp--tabs:not(.is-ready) .upsp-panel + .upsp-panel { margin-top: 40px; }
.upsp .upsp-panel__title { margin: 0 0 8px; font-family: "Manrope", system-ui, sans-serif; font-size: 20px; font-weight: 700; color: var(--upsp-ink); }
.upsp--tabs.is-ready .upsp-panel__title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.upsp-panel .upsp-ratings { margin-top: 14px; }
/* Two item lists (in the box / optional) sit side by side */
.upsp-panel:has(.upsp-table--items + .upsp-table--items) { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; align-items: start; }
.upsp-panel:has(.upsp-table--items + .upsp-table--items) .upsp-panel__title,
.upsp-panel:has(.upsp-table--items + .upsp-table--items) .upsp-notes { grid-column: 1 / -1; }
.upsp .upsp-panel .upsp-table--items + .upsp-table--items { margin-top: 0; }

/* Long tables split into two columns */
.upsp-split { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; align-items: start; }
.upsp .upsp-split .upsp-table tbody tr:last-child th,
.upsp .upsp-split .upsp-table tbody tr:last-child td { border-bottom: 1px solid var(--upsp-line); }
.upsp .upsp-split .upsp-table tbody th { width: 42%; }
@media (max-width: 1024px) {
	.upsp-split, .upsp-panel:has(.upsp-table--items + .upsp-table--items) { grid-template-columns: 1fr; }
	.upsp .upsp-panel .upsp-table--items + .upsp-table--items { margin-top: 16px; }
}
@media (max-width: 767px) {
	.upsp .upsp-tab { padding: 10px 12px; font-size: 14px; }
}

/* ---------- Promotions ---------- */
.upsp-promos { display: grid; gap: 10px; }
.upsp-promo {
	display: grid;
	gap: 4px;
	padding: 14px 16px;
	border: 1.5px dashed #e3b96a;
	border-radius: 14px;
	background: #fff9ee;
}
.upsp-promo__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.upsp-promo__tag {
	padding: 3px 9px;
	border-radius: 999px;
	background: #a8661a;
	color: #fff;
	font-family: "Manrope", system-ui, sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.upsp-promo__ends { font-size: 12.5px; color: var(--upsp-muted); }
.upsp-promo .upsp-promo__title { margin: 4px 0 0; font-family: "Manrope", system-ui, sans-serif; font-size: 16px; font-weight: 700; line-height: 1.35; color: var(--upsp-ink); }
.upsp-promo .upsp-promo__text { margin: 0; font-size: 14px; line-height: 1.5; color: var(--upsp-muted); }
.upsp-promo__code { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; padding-top: 10px; border-top: 1px solid rgba(168, 102, 26, .18); font-size: 13px; color: var(--upsp-muted); }
.upsp-promo .upsp-promo__copy {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 0;
	padding: 7px 12px;
	border: 1px solid rgba(168, 102, 26, .3);
	border-radius: 8px;
	background: #fff;
	color: var(--upsp-ink);
	font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: none;
	box-shadow: none;
	cursor: pointer;
}
.upsp-promo .upsp-promo__copy svg { width: 16px; height: 16px; }
.upsp-promo .upsp-promo__copy:hover { border-color: var(--upsp-ink); }
.upsp-promo .upsp-promo__copy.is-copied { background: var(--upsp-ink); border-color: var(--upsp-ink); color: #fff; }

/* ---------- Downloads & support cards ---------- */
.upsp-dl__group + .upsp-dl__group { margin-top: 22px; }

/* ---------- Phone refinements ---------- */
.upsp .upsp-more-btn { display: none; }
@media (max-width: 767px) {
	.upsp-panel.is-clipped .upsp-more-row { display: none; }
	.upsp .upsp-more-btn {
		display: flex;
		justify-content: center;
		width: 100%;
		min-height: 44px;
		margin-top: 14px;
		padding: 10px 16px;
		border: 1.5px solid var(--upsp-ink);
		border-radius: 999px;
		background: #fff;
		color: var(--upsp-ink);
		font-family: "Manrope", system-ui, sans-serif;
		font-size: 14px;
		font-weight: 600;
		text-transform: none;
		letter-spacing: 0;
		box-shadow: none;
	}
	/* Slimmer warranty badge in the product area */
	.upsp-hero .elementor-widget-icon-box .elementor-icon-box-description { display: none; }
	.upsp-hero .elementor-widget-icon-box .elementor-icon-box-title { margin-bottom: 0; }
}
/* Thumbnails do the job on larger screens, so hide the gallery dots there */
@media (min-width: 768px) {
	.upsp-hero .wd-gallery-images .wd-nav-pagin-wrap { display: none; }
}

/* Icon box titles and icon list links: no underline (WoodMart adds one to links in Elementor content) */
.elementor-icon-box-title a, .elementor-icon-list-item > a { --wd-link-decor: none; --wd-link-decor-hover: none; text-decoration: none; }

/* Product area: compact document buttons (file type and size stay in the downloads list) on one line with Quick enquiry */
.upsp-hero-actions .upsp-docbtn__meta { display: none; }
.upsp-hero-actions, .upsp-hero-actions .upsp-docs { flex-wrap: nowrap !important; }
.upsp-hero-actions .upsp-docbtn, .upsp-hero-actions .upsp-enquire-btn .btn { white-space: nowrap; }

/* Compatible with */
.upsp-compat { --wd-link-decor: none; margin: 4px 0 18px; }
.upsp-compat__title { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #5e6a74; }
.upsp-compat__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.upsp-compat__list li { margin: 0; padding: 0; }
.upsp-compat__chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 1px solid #dfe3e6; border-radius: 999px; background: #f3f5f5; color: #17212b; font-size: 14px; font-weight: 600; line-height: 1.2; text-decoration: none; }
.upsp-compat__chip svg { width: 15px; height: 15px; flex: none; }
.upsp-compat__chip > svg:first-child { color: #7a9e14; }
.upsp-compat__chip.is-link { background: #fff; transition: border-color .15s, background-color .15s; }
.upsp-compat__chip.is-link > svg:last-child { width: 13px; height: 13px; color: #5e6a74; margin-right: -3px; }
.upsp-compat__chip.is-link:hover, .upsp-compat__chip.is-link:focus-visible { border-color: #17212b; background: #f3f5f5; color: #17212b; }
.upsp-compat__note { margin: 8px 0 0; font-size: 13px; color: #5e6a74; }

/* Module / option cards inside product descriptions (e.g. View650 OTDR modules) */
.upsp-modules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 22px 0 30px; --wd-link-decor: none; }
.upsp-module { position: relative; display: flex; flex-direction: column; padding: 22px; border: 1px solid rgba(23, 33, 43, .1); border-radius: 14px; background: #f9fafa; }
.upsp-module.is-available { background: #fff; border-color: #17212b; box-shadow: 0 0 0 1px #17212b, 0 12px 28px -18px rgba(23, 33, 43, .45); }
.upsp-module__status { align-self: flex-start; margin-bottom: 14px; padding: 4px 10px; border-radius: 999px; background: #e9ecee; color: #5e6a74; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.upsp-module.is-available .upsp-module__status { background: #95c11f; color: #17212b; }
.upsp-module h4 { margin: 0 0 4px; font-size: 21px; color: #17212b; }
.upsp-module__sub { margin: 0 0 14px !important; color: #5e6a74; font-size: 14px; }
.upsp-module ul { margin: 0 0 14px; padding: 0; list-style: none; }
.upsp-module li { margin: 0; padding: 7px 0; border-top: 1px solid #e6e9eb; font-size: 14px; color: #2a3035; }
.upsp-module li::before { display: none; }
.upsp-module__cta { margin-top: auto; font-size: 14px; font-weight: 600; color: #17212b; text-decoration: none; }
.upsp-module__cta:hover { text-decoration: underline; }
@media (max-width: 1024px) { .upsp-modules { grid-template-columns: 1fr; } }

/* Category chips (shop) */
.upsp-chips { display: flex; flex-wrap: wrap; gap: 8px; --wd-link-decor: none; }
.upsp-chips a { display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border: 1px solid rgba(23, 33, 43, .12); border-radius: 999px; background: #fff; color: #17212b; font-size: 14px; font-weight: 600; line-height: 1.2; text-decoration: none; white-space: nowrap; transition: border-color .15s, background-color .15s, color .15s; }
.upsp-chips a:hover { border-color: #17212b; color: #17212b; }
.upsp-chips a.is-active { background: #17212b; border-color: #17212b; color: #fff; }
.upsp-chips a small { font-size: 12px; font-weight: 500; opacity: .6; }
@media (max-width: 767px) { .upsp-chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 0 16px 4px; scrollbar-width: none; } .upsp-chips::-webkit-scrollbar { display: none; } }
/* Shop filters bar */
.upsp-shop-filters .wd-product-filters { --wd-form-bg: #fff; }
.upsp-shop-toolbar .woocommerce-result-count { margin: 0; color: #5e6a74; font-size: 14px; }
.upsp-price-text { font-weight: 700; color: #17212b; }
.elementor-widget-heading .elementor-heading-title a { text-decoration: none; color: inherit; }
.elementor-widget-heading .elementor-heading-title a:hover { opacity: .8; }
/* Topbar "Let's talk" button: breathing room above and below */
.whb-top-bar .wd-button-wrapper .btn { --btn-height: 28px; min-height: 28px; height: 28px; padding-top: 0; padding-bottom: 0; line-height: 28px; font-size: 12px; }
/* Topbar View Pro Manager link */
.upsp-tb-vpm { display: inline-flex; align-items: center; gap: 7px; color: rgba(255, 255, 255, .85) !important; font-size: 12px; font-weight: 600; letter-spacing: .02em; text-decoration: none !important; white-space: nowrap; transition: color .15s; }
.upsp-tb-vpm svg { width: 16px; height: 16px; color: #95c11f; flex: none; }
.upsp-tb-vpm__go { padding: 2px 8px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 999px; font-size: 11px; font-weight: 600; color: #fff; transition: border-color .15s, background-color .15s; }
.upsp-tb-vpm:hover { color: #fff !important; }
.upsp-tb-vpm:hover .upsp-tb-vpm__go { border-color: #95c11f; background: rgba(149, 193, 31, .15); }
/* Single post */
.upsp-post-head .wd-post-cat, .upsp-post-head .wd-single-post-cat { justify-content: center; }
.upsp-post-head .wd-single-post-excerpt, .upsp-post-head .elementor-widget-wd_single_post_excerpt { max-width: 760px; margin: 0 auto; color: #5e6a74; font-size: 18px; line-height: 1.6; text-align: center; }
.upsp-post-image img { width: 100%; max-height: 560px; object-fit: cover; border-radius: 22px; }
.upsp-post-image .post-date, .upsp-post-image .wd-post-date { display: none; }
.upsp-article { font-size: 17px; line-height: 1.75; color: #2a3035; }
.upsp-article h2 { margin: 1.8em 0 .6em; font-size: 28px; line-height: 1.2; letter-spacing: -.02em; color: #17212b; }
.upsp-article h3 { margin: 1.5em 0 .5em; font-size: 21px; line-height: 1.3; color: #17212b; }
.upsp-article p { margin-bottom: 1.1em; }
.upsp-article ul, .upsp-article ol { margin: 0 0 1.3em 1.2em; }
.upsp-article li { margin-bottom: .45em; }
.upsp-article img { border-radius: 14px; }
.upsp-article blockquote { margin: 1.6em 0; padding: 18px 22px; border-left: 4px solid #95c11f; background: #f3f5f5; border-radius: 0 12px 12px 0; }
.upsp-article table { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: 15px; }
.upsp-article th, .upsp-article td { padding: 10px 12px; border-bottom: 1px solid #e6e9eb; text-align: left; }
.upsp-article th { background: #f3f5f5; color: #17212b; }
@media (min-width: 1025px) { .upsp-post-aside { position: sticky; top: 110px; } }
.upsp-post-image .elementor-widget-wd_single_post_image, .upsp-post-image .wd-post-image, .upsp-post-image .wd-post-image a { display: block; width: 100%; }
.upsp-post-head > .elementor-element { width: 100%; }
.upsp-post-head .wd-post-title { text-align: center; max-width: 900px; margin-left: auto; margin-right: auto; }
.upsp-post-head .elementor-widget-wd_single_post_categories { text-align: center; }
/* Header categories menu: equal icon size, names aligned */
.wd-header-cats .wd-nav-vertical > li > a, .wd-header-cats .wd-nav > li > a { display: flex; align-items: center; }
.wd-header-cats .wd-nav > li > a .wd-nav-img { width: 22px !important; height: 22px !important; max-width: none; max-height: none; flex: 0 0 22px; object-fit: contain; margin-inline-end: 12px; }
/* Shop filters on phones: one compact row */
@media (max-width: 767px) {
  .upsp-shop-filters .wd-product-filters { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; margin: 0 -16px; padding: 0 16px 4px; scrollbar-width: none; }
  .upsp-shop-filters .wd-product-filters::-webkit-scrollbar { display: none; }
  .upsp-shop-filters .wd-product-filters > .wd-pf-checkboxes { flex: 0 0 auto; width: auto; max-width: none; }
  .upsp-shop-filters .wd-pf-title { padding: 8px 14px; font-size: 12px; letter-spacing: 0; white-space: nowrap; border-radius: 999px; }
  .upsp-shop-filters .wd-pf-dropdown { position: fixed !important; top: var(--upsp-dd-top, 50%) !important; left: 16px !important; right: 16px !important; width: auto !important; max-height: 60vh; overflow-y: auto; transform: none !important; }
  .upsp-shop-toolbar { margin-bottom: 4px; }
}
/* reCAPTCHA badge hidden on phones (visibility keeps reCAPTCHA v3 working) */
@media (max-width: 767px) { .grecaptcha-badge { visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; } }
/* Floating WhatsApp button */
.upsp-wa { position: fixed; left: 20px; bottom: 20px; z-index: 390; display: inline-flex; align-items: center; gap: 8px; height: 52px; padding: 0 18px 0 14px; border-radius: 999px; background: #25d366; color: #fff !important; font-size: 15px; font-weight: 700; text-decoration: none !important; box-shadow: 0 10px 24px -8px rgba(0, 0, 0, .35); transition: transform .2s, box-shadow .2s; }
.upsp-wa svg { width: 26px; height: 26px; flex: none; }
.upsp-wa:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -8px rgba(0, 0, 0, .4); color: #fff !important; }
@media (max-width: 1024px) { .upsp-wa { bottom: 72px; left: 14px; width: 52px; padding: 0; justify-content: center; } .upsp-wa__label { display: none; } }
@media print { .upsp-wa { display: none; } }

/* ---------- Software library (Odoo firmware) ---------- */
.upsp-sw, .upsp-repl, .upsp-hub, .upsp-sp { --wd-link-decor: none; --wd-link-decor-hover: none; }
.upsp-sw a, .upsp-repl a, .upsp-hub a, .upsp-sp a { text-decoration: none; }
.upsp-sw { scroll-margin-top: 120px; }
.upsp-sw__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--upsp-ink); }
.upsp-sw__item { margin: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--upsp-line); }
.upsp-sw__info { min-width: 0; flex: 1; display: grid; gap: 6px; }
.upsp-sw__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.upsp-sw__ver { font-family: "Manrope", system-ui, sans-serif; font-weight: 700; font-size: 17px; color: var(--upsp-ink); }
.upsp-sw__gen { font-size: 12.5px; font-weight: 600; color: var(--upsp-muted); background: var(--upsp-cloud); border-radius: 999px; padding: 2px 10px; }
.upsp-sw__notes { font-size: 14.5px; line-height: 1.55; color: var(--upsp-graphite); }
.upsp-sw__notes > :first-child { margin-top: 0; }
.upsp-sw__notes > :last-child { margin-bottom: 0; }
.upsp-sw__notes ul, .upsp-sw__notes ol { margin: 4px 0; padding-left: 20px; }
.upsp-sw__how { font-size: 14px; }
.upsp-sw__how summary { cursor: pointer; width: fit-content; font-weight: 600; color: var(--upsp-ink); }
.upsp-sw__how-body { margin-top: 10px; padding: 14px 16px; background: var(--upsp-cloud); border-radius: 10px; line-height: 1.55; color: var(--upsp-graphite); overflow-x: auto; }
.upsp-sw__how-body > :first-child { margin-top: 0; }
.upsp-sw__how-body > :last-child { margin-bottom: 0; }
.upsp-sw__how-body table { width: 100%; border-collapse: collapse; margin: 0 0 10px; background: #fff; border-radius: 8px; overflow: hidden; }
.upsp-sw__how-body td, .upsp-sw__how-body th { border: 0; border-bottom: 1px solid var(--upsp-line); padding: 9px 12px; vertical-align: top; text-align: left; font-size: 13.5px; }
.upsp-sw__how-body tr:last-child td { border-bottom: 0; }
.upsp-sw__how-body tr:first-child td[colspan] { background: var(--upsp-ink); color: #fff; }
.upsp-sw__how-body td:first-child:not([colspan]) { font-weight: 600; color: var(--upsp-ink); white-space: nowrap; }
.upsp-sw__after { margin: 10px 0 0; }
.upsp-sw__btn { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; background: var(--upsp-ink); color: #fff; font-weight: 600; font-size: 14px; line-height: 1; transition: background-color .2s; }
.upsp-sw__btn:hover { background: var(--upsp-graphite); color: #fff; }
.upsp-sw__btn svg { width: 17px; height: 17px; }
.upsp-sw__contact { margin-top: 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; padding: 20px 22px; border-radius: 14px; background: var(--upsp-cloud); }
.upsp-sw__contact-title { margin: 0; font-family: "Manrope", system-ui, sans-serif; font-weight: 700; font-size: 16.5px; color: var(--upsp-ink); }
.upsp-sw__contact-text { margin: 4px 0 0; font-size: 14.5px; color: var(--upsp-muted); max-width: 560px; }
.upsp-sw__contact-btns { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 600px) {
	.upsp-sw__item { flex-direction: column; }
	.upsp-sw__how-body td:first-child:not([colspan]) { white-space: normal; }
}

/* Recommended replacements */
.upsp-repl__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.upsp-repl__card { display: flex; flex-direction: column; border-radius: 14px; background: var(--upsp-cloud); overflow: hidden; color: var(--upsp-ink); transition: background-color .2s, box-shadow .2s; }
.upsp-repl__card:hover { background: #fff; box-shadow: 0 0 0 1px var(--upsp-line), 0 10px 28px rgba(23, 33, 43, .08); color: var(--upsp-ink); }
.upsp-repl__img { display: block; aspect-ratio: 4 / 3; background: #fff; }
.upsp-repl__img img { width: 100%; height: 100%; object-fit: contain; padding: 16px; }
.upsp-repl__body { display: grid; gap: 6px; padding: 16px 18px 18px; }
.upsp-repl__name { font-family: "Manrope", system-ui, sans-serif; font-weight: 700; font-size: 17px; }
.upsp-repl__text { font-size: 14px; color: var(--upsp-muted); line-height: 1.5; }
.upsp-repl__more { font-size: 14px; font-weight: 600; }
.upsp-repl__more::after { content: " →"; }

/* Support-only page (discontinued model) */
.upsp-sp { display: grid; gap: clamp(40px, 6vw, 72px); padding-bottom: clamp(40px, 6vw, 72px); }
.upsp-sp__hero { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.upsp-sp__hero--noimg { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
.upsp-sp__img { border-radius: 18px; background: var(--upsp-cloud); aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.upsp-sp__img img { width: 100%; height: 100%; object-fit: contain; padding: 8%; }
.upsp-sp__intro { display: grid; gap: 14px; justify-items: start; }
.upsp-sp__badge { display: inline-block; padding: 5px 12px; border-radius: 999px; background: #fdf1e3; color: #8a4b0f; font-size: 12.5px; font-weight: 700; letter-spacing: .02em; }
.upsp-sp .upsp-sp__title { margin: 0; font-family: "Manrope", system-ui, sans-serif; font-size: clamp(32px, 4vw, 48px); font-weight: 700; letter-spacing: -.02em; line-height: 1.1; color: var(--upsp-ink); }
.upsp-sp__short { color: var(--upsp-graphite); font-size: 16px; line-height: 1.6; }
.upsp-sp__short > :last-child { margin-bottom: 0; }
.upsp-sp__note { margin: 0; padding-left: 14px; border-left: 3px solid var(--upsp-ink); color: var(--upsp-graphite); font-size: 15px; line-height: 1.55; }
.upsp-sp__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.upsp-sp__docs { margin-top: 6px; }
@media (max-width: 860px) {
	.upsp-sp__hero { grid-template-columns: minmax(0, 1fr); }
	.upsp-sp__img { max-width: 420px; width: 100%; }
}

/* Support hub */
.upsp-hub__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-bottom: 32px; }
.upsp-hub__search { flex: 1 1 280px; max-width: 420px; margin: 0; }
.upsp-hub__search input { width: 100%; height: 48px; padding: 0 18px; border-radius: 999px; border: 1.5px solid var(--upsp-line); background: #fff; font-size: 15px; }
.upsp-hub__search input:focus { border-color: var(--upsp-ink); outline: none; }
.upsp-hub__nav { display: flex; flex-wrap: wrap; gap: 6px; }
.upsp-hub__nav a { padding: 8px 14px; border-radius: 999px; background: var(--upsp-cloud); color: var(--upsp-ink); font-size: 14px; font-weight: 600; }
.upsp-hub__nav a:hover { background: var(--upsp-ink); color: #fff; }
.upsp-hub__group { scroll-margin-top: 120px; }
.upsp-hub__group + .upsp-hub__group { margin-top: 44px; }
.upsp-hub .upsp-hub__group-title { margin: 0 0 16px; font-family: "Manrope", system-ui, sans-serif; font-size: clamp(22px, 2.2vw, 28px); font-weight: 700; letter-spacing: -.015em; color: var(--upsp-ink); }
.upsp-hub__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.upsp-hub__card { display: flex; flex-direction: column; gap: 10px; padding: 20px; border-radius: 14px; background: var(--upsp-cloud); }
.upsp-hub__card[hidden] { display: none; }
.upsp-hub__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.upsp-hub .upsp-hub__name { margin: 0; font-family: "Manrope", system-ui, sans-serif; font-size: 18px; font-weight: 700; }
.upsp-hub__name a { color: var(--upsp-ink); }
.upsp-hub__tag { flex: none; padding: 3px 9px; border-radius: 999px; background: #fdf1e3; color: #8a4b0f; font-size: 11.5px; font-weight: 700; }
.upsp-hub__vers { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.upsp-hub__vers li { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 8px 8px 14px; border-radius: 10px; background: #fff; }
.upsp-hub__ver { font-weight: 700; color: var(--upsp-ink); font-size: 15px; }
.upsp-hub__ver small { font-weight: 600; color: var(--upsp-muted); font-size: 12px; margin-left: 4px; }
.upsp-hub__dl { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; background: var(--upsp-ink); color: #fff; font-size: 13px; font-weight: 600; line-height: 1; }
.upsp-hub__dl:hover { background: var(--upsp-graphite); color: #fff; }
.upsp-hub__dl svg { width: 15px; height: 15px; }
.upsp-hub__more { margin-top: auto; font-size: 13.5px; font-weight: 600; color: var(--upsp-ink); }
.upsp-hub__more::after { content: " →"; }
.upsp-hub__empty { margin: 8px 0 0; color: var(--upsp-muted); }

/* Compact "need a different version" line */
.upsp-sw__more { margin: 14px 0 0; font-size: 14px; color: var(--upsp-muted); }
.upsp-sw__more a { color: var(--upsp-ink); font-weight: 600; text-decoration: underline !important; text-underline-offset: 2px; }

/* Collapsible download group (PC programs) */
.upsp-dl .upsp-dl__acc { border-top: 1px solid var(--upsp-ink); }
.upsp-dl .upsp-dl__acc > summary.upsp-dl__group-title { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0; padding: 16px 0; }
.upsp-dl__acc > summary::-webkit-details-marker { display: none; }
.upsp-dl__acc > summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; flex: none; }
.upsp-dl__acc[open] > summary::after { transform: translateY(2px) rotate(-135deg); }
.upsp-dl .upsp-dl__acc > .upsp-dl__list { border-top: 1px solid var(--upsp-line); }

/* Support cross-links */
.upsp-links { --wd-link-decor: none; --wd-link-decor-hover: none; }
.upsp-links__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.upsp-links__card { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px; border-radius: 14px; background: var(--upsp-cloud); color: var(--upsp-ink); text-decoration: none !important; transition: background-color .2s, box-shadow .2s; }
.upsp-links__card:hover { background: #fff; box-shadow: 0 0 0 1px var(--upsp-line), 0 10px 28px rgba(23, 33, 43, .08); color: var(--upsp-ink); }
.upsp-links__title { font-family: "Manrope", system-ui, sans-serif; font-weight: 700; font-size: 17px; }
.upsp-links__title::after { content: " →"; }
.upsp-links__text { font-size: 14px; line-height: 1.5; color: var(--upsp-muted); }

/* WhatsApp buttons in support blocks */
.upsp-docbtn.upsp-wa-btn { background: #25d366; border: 1.5px solid #25d366; color: #fff; }
.upsp-docbtn.upsp-wa-btn:hover { background: #1ebe5a; border-color: #1ebe5a; color: #fff; }
.upsp-wa-btn svg { width: 18px; height: 18px; }
.upsp-sw__more a.upsp-wa-link { display: inline-flex; align-items: center; gap: 4px; color: #128c4a; text-decoration: none !important; vertical-align: bottom; }
.upsp-sw__more a.upsp-wa-link:hover { color: #0b6b37; }
.upsp-wa-link svg { width: 16px; height: 16px; color: #25d366; }

/* Discontinued label in place of the price */
.upsp-disc { display: inline-block; padding: 5px 12px; border-radius: 999px; background: #fdf1e3; color: #8a4b0f; font-size: 13px; font-weight: 700; line-height: 1.3; letter-spacing: .01em; }

/* Single product tile */
.upsp-tile { max-width: 420px; width: 100%; background: #fff; box-shadow: 0 0 0 1px var(--upsp-line); }
.upsp-tile:hover { box-shadow: 0 0 0 1px var(--upsp-line), 0 14px 32px rgba(23, 33, 43, .1); }
.upsp-tile .upsp-repl__img { aspect-ratio: 1 / 1; background: var(--upsp-cloud); }
.upsp-tile .upsp-repl__img img { padding: 10%; }
.upsp-tile__price { font-weight: 700; font-size: 16px; color: var(--upsp-ink); }
