.tt24-configurator {
	display: grid;
	gap: 22px;
	margin: 22px 0;
}

.tt24-config-group {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.tt24-config-group legend {
	margin-bottom: 10px;
	font-size: 15px;
	font-weight: 800;
	color: #17221c;
}

.tt24-option-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.tt24-option-card {
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 8px;
	align-items: center;
	min-height: 74px;
	margin: 0;
	padding: 13px 14px;
	border: 1.5px solid #d8e1da;
	border-radius: 10px;
	background: #fff;
	cursor: pointer;
}

.tt24-option-image {
	width: 58px;
	height: 58px;
	flex: 0 0 58px;
	object-fit: contain;
	border-radius: 7px;
	background: #fff;
}

.tt24-option-link {
	display: inline-block;
	margin-top: 5px;
	font-size: 12px;
	font-weight: 700;
	color: #0f7a45;
}

/* Keep library sections in the theme's product column, below floated summaries. */
.tt24-downloads,
.tt24-content-blocks {
	box-sizing: border-box;
	clear: both;
	float: none;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 32px 0;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
}
.tt24-downloads *, .tt24-content-blocks * { box-sizing: border-box; }
.tt24-downloads h2, .tt24-content-blocks h2 {
	margin: 0 0 16px;
	font-size: clamp(20px, 2vw, 24px);
	font-weight: 600;
	line-height: 1.3;
	text-align: left;
}
.tt24-download-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 12px; }
.tt24-download-card { display: grid; grid-template-columns: 42px minmax(0, 1fr) 18px; gap: 12px; align-items: center; min-width: 0; margin: 0; padding: 14px; border: 1px solid #dde5df; border-radius: 8px; color: #17221c; background: #fff; text-decoration: none; text-align: left; }
.tt24-download-card:hover, .tt24-download-card:focus-visible { border-color: #0f7a45; }
.tt24-download-copy { min-width: 0; overflow-wrap: anywhere; }
.tt24-download-card strong { display: block; font-size: 15px; font-weight: 600; line-height: 1.4; }
.tt24-download-card small { display: block; margin-top: 4px; color: #657169; font-size: 13px; line-height: 1.4; }
.tt24-download-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 6px; background: #fff0ed; color: #b42318; font-weight: 700; font-size: 11px; }
.tt24-download-arrow { text-align: center; font-size: 20px; }
.tt24-content-block { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; align-items: center; margin: 0 0 32px; }
.tt24-content-block.has-image { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.tt24-content-block > * { min-width: 0; overflow-wrap: anywhere; }
.tt24-content-block.has-image.is-reverse > :first-child { order: 2; }
.tt24-content-block img { display: block; width: auto; max-width: 100%; height: auto; border-radius: 10px; }
.tt24-content-block p { margin: 0 0 12px; }
@media (max-width: 760px) {
	.tt24-content-block.has-image { grid-template-columns: minmax(0, 1fr); }
	.tt24-content-block.has-image.is-reverse > :first-child { order: initial; }
}

.tt24-option-card:has(input:checked) {
	border-color: #0f7a45;
	background: #f0f8f3;
	box-shadow: 0 0 0 2px rgba(15, 122, 69, .12);
}

.tt24-option-card input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.tt24-option-copy {
	display: grid;
	gap: 2px;
}

.tt24-option-copy strong {
	font-size: 14px;
	line-height: 1.25;
}

.tt24-option-copy small {
	color: #657169;
}

.tt24-option-price {
	font-size: 13px;
	font-weight: 800;
	color: #0f7a45;
}

.tt24-config-total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 15px 17px;
	border-radius: 10px;
	background: #17221c;
	color: #fff;
}

.tt24-config-total strong {
	font-size: 24px;
}

@media (max-width: 520px) {
	.tt24-option-grid {
		grid-template-columns: 1fr;
	}
}

/* Documents use the native WooCommerce panel and its existing inner padding. */
.woocommerce-tabs #tab-tt24_documents .tt24-downloads {
	margin: 0;
	padding: 0;
}

/* The child theme constrains related-wrapper to 1280px. Shoptimizer's
   full-viewport metadata offsets then shift SKU and category outside it. */
.tt24-product-layout .related-wrapper > .product_meta {
	box-sizing: border-box;
	position: static;
	left: auto;
	right: auto;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 14px 20px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 20px;
	text-align: center;
}
.tt24-product-layout .related-wrapper > .product_meta > span {
	min-width: 0;
	max-width: 100%;
	margin: 0;
	overflow-wrap: anywhere;
}
/* Show the first product image while WooCommerce initializes its gallery. */
.tt24-product-layout .woocommerce-product-gallery {
 opacity: 1 !important;
}

/* Reusable content belongs to the product details, with the same inner alignment. */
.woocommerce-tabs .tt24-content-blocks { margin: 32px 0 0; padding: 0; }
.tt24-content-blocks .tt24-content-block { margin: 0; padding: 28px 0; border-top: 1px solid #e3e9e5; }
.tt24-content-blocks .tt24-content-block + .tt24-content-block { margin-top: 12px; }
.tt24-content-blocks .tt24-content-copy { font-size: 16px; line-height: 1.65; }
.tt24-content-blocks .tt24-content-copy > :first-child { margin-top: 0; }
.tt24-content-blocks .tt24-content-copy > :last-child { margin-bottom: 0; }
.tt24-content-blocks .tt24-content-media { display: flex; align-items: center; justify-content: center; padding: 20px; background: #f6f8f7; border-radius: 12px; }
.tt24-content-blocks .tt24-content-media img { max-height: 380px; object-fit: contain; }
.tt24-content-blocks figure { margin: 0; }
.tt24-content-blocks h2, .tt24-content-blocks h3 { padding: 0; line-height: 1.3; }
/* Compatibility with the existing SunPower HTML block copied from the Swiss shop. */
.tt24-content-blocks .tt24-sp7 { padding: 0; }
.tt24-content-blocks .tt24-sp7-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, .32fr); gap: 32px; align-items: center; }
.tt24-content-blocks .tt24-sp7-hero > * { min-width: 0; }
.tt24-content-blocks .tt24-sp7-label { margin: 0 0 10px; color: #52645a; font-size: 13px; font-weight: 600; }
.tt24-content-blocks .tt24-sp7-image { display: flex; align-items: center; justify-content: center; padding: 20px; background: #f6f8f7; border-radius: 12px; }
.tt24-content-blocks .tt24-sp7-image img { width: auto; max-width: 100%; max-height: 320px; object-fit: contain; }
.tt24-content-blocks .tt24-sp7-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 24px 0; }
.tt24-content-blocks .tt24-sp7-fact { padding: 16px; background: #f2f6f3; border-radius: 8px; font-size: 14px; line-height: 1.5; }
.tt24-content-blocks .tt24-sp7-fact strong { font-size: 19px; color: #17221c; }
.tt24-content-blocks .tt24-sp7-benefits { padding-left: 22px; margin: 20px 0; }
.tt24-content-blocks .tt24-sp7-benefits li { margin-bottom: 12px; }
.tt24-content-blocks .tt24-sp7-note { font-size: 13px; color: #52645a; line-height: 1.5; }
@media (max-width: 760px) {
 .tt24-content-blocks .tt24-sp7-hero { grid-template-columns: minmax(0, 1fr); gap: 20px; }
 .tt24-content-blocks .tt24-sp7-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .tt24-content-blocks .tt24-content-block { padding: 22px 0; }
}
@media (max-width: 380px) {
 .tt24-content-blocks .tt24-sp7-facts { grid-template-columns: minmax(0, 1fr); }
}
/* Short descriptions occupy a narrower column, including on desktop. */
.woocommerce-product-details__short-description .tt24-content-blocks { margin: 20px 0 0; }
.woocommerce-product-details__short-description .tt24-content-block.has-image,
.woocommerce-product-details__short-description .tt24-sp7-hero { grid-template-columns: minmax(0, 1fr); gap: 18px; }
.woocommerce-product-details__short-description .tt24-content-block.has-image.is-reverse > :first-child { order: initial; }
.woocommerce-product-details__short-description .tt24-sp7-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce-product-details__short-description .tt24-content-blocks h2 { font-size: 20px; }
.woocommerce-product-details__short-description .tt24-content-copy { font-size: 15px; }
@media (max-width: 380px) {
 .woocommerce-product-details__short-description .tt24-sp7-facts { grid-template-columns: minmax(0, 1fr); }
}
.tt24-content-blocks .tt24-sp7-fact strong { display: block; margin-bottom: 4px; }
.tt24-content-badge{display:inline-block;padding:4px 10px;border-radius:6px;margin:0 0 12px;font-size:13px;line-height:1.5;background:#e7f4f1;color:#145448}
.tt24-content-badge-success{background:#dcfce7;color:#166534}
.tt24-content-badge-info{background:#dbeafe;color:#1e40af}
.tt24-content-badge-warning{background:#ffedd5;color:#9a3412}
.tt24-content-badge-dark{background:#1f2937;color:#fff}
.tt24-content-badge-outline{background:transparent;border:1px solid currentColor;color:inherit}
.tt24-content-accordion{border-top:2px solid var(--tt24-content-accent,#dce5e2);padding:16px 0}
.tt24-content-accordion>summary{cursor:pointer;font-size:18px;font-weight:600}
.tt24-content-accordion>summary .tt24-content-badge{margin:0 0 0 12px;vertical-align:middle}
.tt24-content-accordion>.tt24-content-block{border-top:0;margin-top:12px}
.tt24-content-title .dashicons{vertical-align:middle}
.tt24-content-link{font-weight:600;text-underline-offset:3px}
.tt24-native-cards{margin:16px 0 20px;clear:both}
.tt24-native-card{position:relative;display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:14px;padding:12px;box-shadow:0 6px 18px rgba(2,6,23,.04);overflow:hidden;box-sizing:border-box;min-width:0;height:100%}
.tt24-native-card:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--tt24-content-accent,#0f766e)}
.tt24-native-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.tt24-native-card .tt24-native-card-title{font-size:.98rem;font-weight:700;line-height:1.28;margin:0;padding:0}
.tt24-native-card-text{font-size:.91rem;line-height:1.45;opacity:.95}
.tt24-native-card-media{border-radius:10px;overflow:hidden;background:#f8fafc;aspect-ratio:4/2;max-height:120px;display:flex;align-items:center;justify-content:center}
.tt24-native-card-media img{width:100%;height:100%;object-fit:cover;display:block}
