/* Payment badges, footer legal row and static content pages (regulamin, FAQ, kontakt...). */
.torven-pay { display: flex; flex: 0 0 100%; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.torven-add-to-cart .torven-pay { margin-top: .25rem; }
.torven-pay__badge { display: block; width: 48px; height: 30px; margin: 0; padding: 0; line-height: 0; }
.torven-pay__badge img { display: block; width: 100%; height: 100%; }

.torven-footer-extra {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
	margin: 32px 0 20px;
	padding-top: 24px;
	border-top: 1px solid rgba(231, 222, 207, .18);
}
.torven-footer-extra .torven-pay { flex: 0 0 auto; }
.torven-footer-legal { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.torven-footer-legal a { color: rgba(231, 222, 207, .86); font-size: 13px; text-decoration: none; }
.torven-footer-legal a:hover { color: #fff; text-decoration: underline; }

.torven-doc { max-width: 820px; margin: 0 auto; padding: 72px 20px 96px; color: var(--torven-color-text-primary, #071710); font-family: var(--torven-font-body, Arial, sans-serif); line-height: 1.7; }
.torven-doc h1 { margin: 0 0 12px; font-family: var(--torven-font-heading, inherit); font-size: clamp(34px, 5vw, 52px); line-height: 1.05; text-transform: uppercase; }
.torven-doc__lead { margin: 0 0 40px; font-size: 1.1rem; color: var(--torven-text-muted, inherit); }
.torven-doc h2 { margin: 40px 0 12px; font-family: var(--torven-font-heading, inherit); font-size: 1.5rem; text-transform: uppercase; }
.torven-doc h3 { margin: 24px 0 8px; font-size: 1.05rem; }
.torven-doc p, .torven-doc li { font-size: 1rem; }
.torven-doc ul, .torven-doc ol { padding-left: 1.3rem; }
.torven-doc a { color: var(--torven-color-accent-primary, #173327); text-decoration: underline; }
.torven-doc__todo { background: #fff3c4; color: #5a4300; padding: 0 4px; }
.torven-doc__note { margin: 0 0 32px; padding: 14px 16px; background: var(--torven-color-surface-light, #f3eee4); border-left: 3px solid var(--torven-color-accent-primary, #173327); font-size: .95rem; }
.torven-doc details { border-top: 1px solid var(--torven-color-border, #c8c0b1); }
.torven-doc details:last-of-type { border-bottom: 1px solid var(--torven-color-border, #c8c0b1); }
.torven-doc summary { cursor: pointer; padding: 18px 40px 18px 0; font-weight: 600; list-style: none; position: relative; }
.torven-doc summary::-webkit-details-marker { display: none; }
.torven-doc summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font-size: 24px; font-weight: 400; }
.torven-doc details[open] summary::after { content: "−"; }
.torven-doc details p { margin: 0 0 18px; }
.torven-doc a.torven-doc__cta { display: inline-flex; align-items: center; justify-content: center; min-height: var(--torven-button-height, 52px); margin-top: 24px; padding: 0 2rem; background: var(--torven-green-bar, #173327); color: #fff; border: 1px solid var(--torven-green, #071710); text-decoration: none; font-size: var(--torven-button-font-size, 12.5px); font-weight: 600; letter-spacing: 3px; text-transform: uppercase; }
.torven-doc a.torven-doc__cta:hover { background: transparent; color: var(--torven-green, #071710); }

/* ==== Type system for the store pages (header, top bar and footer are left as they are) ====
   Headings: Barlow Condensed 800 uppercase, tracking -0.02em (same as the product title).
   Prices:   Montserrat 600, one tabular style, size by context (product 28 / card 20 / carousel 18). */
html body .torven-section-title,
html body #torven-reviews-title,
html body .torven-models-carousel__head h2 {
	margin: 0 0 20px;
	font-family: var(--torven-font-heading, "Barlow Condensed", sans-serif);
	font-size: clamp(26px, 2.6vw, 34px);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.02em;
	text-transform: uppercase;
	color: var(--torven-color-text-primary, #071710);
}
html body .torven-models-carousel__head h2,
html body #torven-reviews-title { margin-bottom: 0; }
.torven-doc h1, .torven-doc h2 { letter-spacing: -0.02em; }

html body .torven-product-price,
html body .torven-models-carousel__price,
html body .torven-product-card__row strong {
	font-family: var(--torven-font-body, "Montserrat", sans-serif);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0;
	font-variant-numeric: tabular-nums;
	color: var(--torven-color-text-primary, #071710);
	opacity: 1;
}
html body .torven-product-price { font-size: 28px; }
html body .torven-product-card__row strong { font-size: 20px; }
html body .torven-models-carousel__price { font-size: 18px; }
html body .torven-product-price ins,
html body .torven-models-carousel__price ins,
html body .torven-product-card__row strong ins,
html body .torven-product-price .amount,
html body .torven-models-carousel__price .amount,
html body .torven-product-card__row strong .amount,
html body .torven-product-price bdi,
html body .torven-models-carousel__price bdi,
html body .torven-product-card__row strong bdi {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	font-variant-numeric: inherit;
	letter-spacing: inherit;
	text-decoration: none;
	color: inherit;
}
html body .torven-product-price del,
html body .torven-models-carousel__price del,
html body .torven-product-card__row strong del {
	font-family: inherit;
	margin-right: .45em;
	font-size: .6em;
	font-weight: 400;
	opacity: .5;
}

/* ==== Product cards: photo fills the whole media area, no cream/white frame ==== */
html body .torven-product-card__media { background: #fff; }
html body .torven-product-card__media img,
html body .torven-live-catalog .torven-product-card__media img {
	padding: 0 !important;
	transform: none !important;
	object-fit: cover !important; /* photo fills the whole tile, cropped instead of stretched */
	object-position: center;
}
/* Hover zooms IN (never out), so the photo always covers the tile and no frame shows.
   !important is needed: the catalog page ships an inline rule that shrinks the image to .92 on hover. */
html body .torven-product-card:hover .torven-product-card__media img,
html body .torven-product-card:focus-within .torven-product-card__media img,
html body .torven-live-catalog .torven-product-card:hover .torven-product-card__media img,
html body .torven-live-catalog .torven-product-card:focus-within .torven-product-card__media img { transform: scale(1.04) !important; }

/* Reviews block summary: "5,00 ★★★★★ (36)" with the count styled like the average */
html body .torven-rating--large .torven-rating__count {
	font-size: 30px;
	font-weight: 600;
	color: var(--torven-color-text-primary, #1a1a1a);
}

/* Product page: the details column is vertically centered against the gallery */
@media (min-width: 768px) {
	html body .elementor .elementor-element.torven-pdp-details { align-self: center !important; }
}

/* Woo price spans carry their own display font in the page CSS; force the shared price style. */
html body .torven-product-price .woocommerce-Price-amount,
html body .torven-product-price .woocommerce-Price-currencySymbol,
html body .torven-models-carousel__price .woocommerce-Price-amount,
html body .torven-models-carousel__price .woocommerce-Price-currencySymbol,
html body .torven-product-card__row strong .woocommerce-Price-amount,
html body .torven-product-card__row strong .woocommerce-Price-currencySymbol {
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	letter-spacing: inherit !important;
	line-height: inherit !important;
}

/* "brutto" price suffix (required next to gross prices): small, quiet, same everywhere */
html body .woocommerce-price-suffix {
	margin-left: .4em;
	font-family: var(--torven-font-body, "Montserrat", sans-serif);
	font-size: .5em;
	font-weight: 400;
	letter-spacing: .02em;
	text-transform: none;
	opacity: .65;
	white-space: nowrap;
}
