/* ==========================================================================
   Terrasol – WooCommerce
   ========================================================================== */

.woo-wrap { padding-block: var(--sp-6); }

.woocommerce-products-header { margin-bottom: var(--sp-6); }
.woocommerce-products-header__title { margin-bottom: var(--sp-3); }
.term-description { color: var(--c-muted); max-width: 46rem; }

/* --------------------------------------------------------------------------
   Notiser
   -------------------------------------------------------------------------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	padding: var(--sp-4) var(--sp-5);
	border-radius: var(--r-md);
	border: 1px solid;
	margin-bottom: var(--sp-5);
	font-size: var(--t-sm);
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-3);
}

.woocommerce-message { background: var(--c-ok-soft); border-color: #b6ddc7; color: #145c3b; }
.woocommerce-info { background: var(--c-sea-100); border-color: #b9d2e2; color: var(--c-sea-800); }
.woocommerce-error { background: #fdeceb; border-color: #f3c7c4; color: #8d1e18; }
.woocommerce-error li { list-style: none; }

.woocommerce-message .button,
.woocommerce-info .button { margin-left: auto; padding: 0.55rem 1.15rem; min-height: 40px; font-size: var(--t-sm); }

/* --------------------------------------------------------------------------
   Produktlistan
   -------------------------------------------------------------------------- */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-5);
	margin: 0 0 var(--sp-6);
	padding: 0;
	list-style: none;
}

@media (min-width: 600px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 980px) { .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); } }

.woocommerce ul.products li.product {
	margin: 0 !important;
	width: auto !important;
	float: none !important;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-lg);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
	text-align: left;
}

.woocommerce ul.products li.product:hover {
	box-shadow: var(--shadow-lg);
	transform: translateY(-3px);
	border-color: var(--c-sand-200);
}

.woocommerce ul.products li.product a img {
	margin: 0;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
	background: var(--c-sand-50);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--f-display);
	font-size: var(--t-lg);
	color: var(--c-ink);
	padding: var(--sp-4) var(--sp-5) 0;
	margin: 0;
	line-height: 1.2;
}

.woocommerce ul.products li.product .price {
	display: block;
	padding: var(--sp-2) var(--sp-5) 0;
	color: var(--c-ink);
	font-size: var(--t-lg);
	font-family: var(--f-display);
	font-weight: 600;
}

.woocommerce ul.products li.product .price-from {
	font-family: var(--f-sans);
	font-size: var(--t-xs);
	font-weight: 600;
	color: var(--c-muted);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.woocommerce ul.products li.product .button {
	margin: var(--sp-4) var(--sp-5) var(--sp-5);
	width: calc(100% - var(--sp-5) * 2);
}

.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
	position: absolute;
	top: var(--sp-3);
	left: var(--sp-3);
	right: auto;
	margin: 0;
	min-height: 0;
	min-width: 0;
	line-height: 1;
	padding: 0.35rem 0.75rem;
	border-radius: var(--r-pill);
	background: var(--c-accent);
	color: #fff;
	font-size: var(--t-xs);
	font-weight: 700;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { margin-bottom: var(--sp-5); font-size: var(--t-sm); color: var(--c-muted); }
.woocommerce .woocommerce-ordering select {
	padding: 0.5rem 0.8rem;
	border: 1px solid var(--c-line);
	border-radius: var(--r-md);
	background: var(--c-surface);
}

/* --------------------------------------------------------------------------
   Produktsida
   -------------------------------------------------------------------------- */
.woocommerce div.product {
	display: grid;
	gap: var(--sp-6);
	grid-template-columns: 1fr;
}

@media (min-width: 900px) {
	.woocommerce div.product {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		column-gap: var(--sp-7);
		align-items: start;
	}
	.woocommerce div.product .woocommerce-product-gallery { grid-column: 1; }
	.woocommerce div.product .summary { grid-column: 2; margin: 0; }
	.woocommerce div.product .woocommerce-tabs,
	.woocommerce div.product .related,
	.woocommerce div.product .up-sells { grid-column: 1 / -1; }
}

.woocommerce div.product .woocommerce-product-gallery { width: 100% !important; float: none !important; }
.woocommerce div.product .woocommerce-product-gallery__wrapper img { border-radius: var(--r-lg); }

.woocommerce div.product .summary { width: 100% !important; float: none !important; }
.woocommerce div.product .product_title { margin-bottom: var(--sp-3); }

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--c-ink);
	font-family: var(--f-display);
	font-size: var(--t-xl);
	font-weight: 600;
	margin-bottom: var(--sp-4);
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--c-body);
	font-size: var(--t-md);
	margin-bottom: var(--sp-5);
}

/* Löften under köpknappen */
.product-assurances {
	list-style: none;
	margin: var(--sp-5) 0 0;
	padding: var(--sp-4) var(--sp-5);
	background: var(--c-surface-alt);
	border-radius: var(--r-md);
	display: grid;
	gap: var(--sp-2);
	font-size: var(--t-sm);
}
.product-assurances li { display: flex; align-items: flex-start; gap: 0.6rem; }
.product-assurances svg { width: 18px; height: 18px; flex: none; margin-top: 2px; color: var(--c-sea-600); }

/* Flikar */
.woocommerce div.product .woocommerce-tabs { margin-top: var(--sp-7); }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 var(--sp-5);
	border-bottom: 1px solid var(--c-line);
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 0.75rem 1.1rem;
	font-weight: 600;
	font-size: var(--t-sm);
	color: var(--c-muted);
	border-bottom: 2px solid transparent;
	text-decoration: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--c-sea-700);
	border-bottom-color: var(--c-accent);
}

.woocommerce div.product .woocommerce-tabs .panel { max-width: 46rem; }
.woocommerce div.product .woocommerce-tabs h2 { font-size: var(--t-lg); }

.woocommerce table.shop_attributes {
	border: 1px solid var(--c-line);
	border-radius: var(--r-md);
	overflow: hidden;
	border-collapse: collapse;
	width: 100%;
}
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	border: 0;
	border-bottom: 1px solid var(--c-line);
	padding: 0.7rem 0.9rem;
	font-size: var(--t-sm);
}
.woocommerce table.shop_attributes th { background: var(--c-surface-alt); font-weight: 600; color: var(--c-ink); width: 34%; }
.woocommerce table.shop_attributes td p { margin: 0; }

/* Specifikationstabell under produktflikarna. */
.terrasol-specs {
	width: 100%;
	max-width: 46rem;
	margin: var(--sp-6) 0 0;
	border: 1px solid var(--c-line);
	border-radius: var(--r-md);
	border-collapse: collapse;
	overflow: hidden;
}

.terrasol-specs caption {
	text-align: left;
	font-family: var(--f-display);
	font-size: var(--t-lg);
	color: var(--c-ink);
	padding-bottom: var(--sp-3);
}

.terrasol-specs th,
.terrasol-specs td {
	border-bottom: 1px solid var(--c-line);
	padding: 0.7rem 0.9rem;
	font-size: var(--t-sm);
	text-align: left;
	vertical-align: top;
}

.terrasol-specs th {
	background: var(--c-surface-alt);
	font-weight: 600;
	color: var(--c-ink);
	width: 34%;
}

.terrasol-specs tr:last-child th,
.terrasol-specs tr:last-child td { border-bottom: 0; }

.terrasol-specs__note {
	max-width: 46rem;
	margin-top: var(--sp-3);
	font-size: var(--t-sm);
	color: var(--c-ink-soft);
}

.woocommerce .related > h2,
.woocommerce .up-sells > h2 { margin-top: var(--sp-7); }

/* --------------------------------------------------------------------------
   Varukorg
   -------------------------------------------------------------------------- */
.woocommerce table.shop_table {
	border: 1px solid var(--c-line);
	border-radius: var(--r-lg);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: var(--c-surface);
	margin-bottom: var(--sp-5);
}

.woocommerce table.shop_table th {
	background: var(--c-surface-alt);
	font-size: var(--t-xs);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--c-muted);
	padding: 0.9rem 1rem;
	border: 0;
}

.woocommerce table.shop_table td {
	padding: 1rem;
	border-top: 1px solid var(--c-line);
	vertical-align: top;
}

.woocommerce table.shop_table td.product-thumbnail img { width: 72px; border-radius: var(--r-md); }

.cart-item__dims {
	display: block;
	font-size: var(--t-sm);
	color: var(--c-muted);
	font-weight: 400;
}

.woocommerce .cart_item dl.variation {
	margin: 0.5rem 0 0;
	font-size: var(--t-xs);
	color: var(--c-muted);
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.15rem 0.45rem;
}
.woocommerce .cart_item dl.variation dt { font-weight: 600; margin: 0; }
.woocommerce .cart_item dl.variation dd { margin: 0; }
.woocommerce .cart_item dl.variation dd p { margin: 0; }

.woocommerce .cart-collaterals .cart_totals { width: 100%; float: none; }
@media (min-width: 900px) {
	.woocommerce .cart-collaterals { display: flex; justify-content: flex-end; }
	.woocommerce .cart-collaterals .cart_totals { max-width: 26rem; }
}

.woocommerce .cart_totals h2 { font-size: var(--t-lg); }
.woocommerce-cart .wc-proceed-to-checkout { padding: 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; font-size: var(--t-md); }

.woocommerce .quantity .qty {
	width: 4.5rem;
	padding: 0.55rem;
	border: 1px solid var(--c-line);
	border-radius: var(--r-md);
	text-align: center;
	min-height: 44px;
}

/* --------------------------------------------------------------------------
   Kassa
   -------------------------------------------------------------------------- */
.woocommerce-checkout .col2-set { display: grid; gap: var(--sp-6); grid-template-columns: 1fr; }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { width: 100%; float: none; }

@media (min-width: 900px) {
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: var(--sp-7); align-items: start; }
	.woocommerce-checkout #customer_details { grid-column: 1; }
	.woocommerce-checkout h3#order_review_heading,
	.woocommerce-checkout #order_review { grid-column: 2; }
	.woocommerce-checkout #order_review {
		position: sticky;
		top: calc(var(--header-h) + 1rem);
		background: var(--c-surface);
		border: 1px solid var(--c-line);
		border-radius: var(--r-lg);
		padding: var(--sp-5);
	}
}

.woocommerce form .form-row { padding: 0; margin-bottom: var(--sp-4); }
.woocommerce form .form-row label { font-size: var(--t-sm); font-weight: 600; color: var(--c-ink); margin-bottom: 0.3rem; display: block; }
.woocommerce form .form-row .required { color: var(--c-err); text-decoration: none; }
.woocommerce form .form-row span.description { font-size: var(--t-xs); color: var(--c-muted); }

.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods {
	border: 1px solid var(--c-line);
	border-radius: var(--r-md);
	padding: var(--sp-3);
	background: var(--c-surface);
}
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; }
.woocommerce-checkout #payment div.payment_box {
	background: var(--c-surface-alt);
	border-radius: var(--r-md);
	font-size: var(--t-sm);
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.form-row.place-order { padding: var(--sp-4) 0 0; }
.woocommerce #payment #place_order { width: 100%; font-size: var(--t-md); min-height: 56px; }

.checkout-trust {
	margin-top: var(--sp-4);
	padding: var(--sp-4);
	background: var(--c-surface-alt);
	border-radius: var(--r-md);
	font-size: var(--t-sm);
}
.checkout-trust__title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 600;
	color: var(--c-ink);
	margin: 0 0 var(--sp-3);
}
.checkout-trust__title svg { width: 18px; height: 18px; color: var(--c-ok); }
.checkout-trust ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.checkout-trust li { display: flex; align-items: flex-start; gap: 0.5rem; color: var(--c-body); }
.checkout-trust svg { width: 16px; height: 16px; flex: none; margin-top: 3px; color: var(--c-ok); }

/* --------------------------------------------------------------------------
   Mitt konto
   -------------------------------------------------------------------------- */
.woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: var(--sp-5); }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 0.55rem 1rem;
	border: 1px solid var(--c-line);
	border-radius: var(--r-pill);
	font-size: var(--t-sm);
	color: var(--c-ink);
	text-decoration: none;
	background: var(--c-surface);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--c-sea-700);
	border-color: var(--c-sea-700);
	color: #fff;
}

@media (min-width: 768px) {
	.woocommerce-account .woocommerce-MyAccount-navigation { width: 24%; float: left; }
	.woocommerce-account .woocommerce-MyAccount-content { width: 72%; float: right; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul { flex-direction: column; }
}

/* --------------------------------------------------------------------------
   Diverse
   -------------------------------------------------------------------------- */
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: var(--sp-2); justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	border: 1px solid var(--c-line);
	border-radius: var(--r-md);
	background: var(--c-surface);
	padding: 0 0.6rem;
	font-size: var(--t-sm);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--c-sea-700);
	border-color: var(--c-sea-700);
	color: #fff;
}

.woocommerce .star-rating span::before { color: var(--c-accent); }
.woocommerce p.stars a { color: var(--c-accent); }

.woocommerce .woocommerce-breadcrumb { display: none; }
