/* ==========================================================================
   Toolineo Theme — assets/css/theme.css
   Design tokens per DESIGN_SPEC.md (toolineo.de replica)
   ========================================================================== */

/* ---------- Fonts ---------- */
@font-face {
	font-family: "Prelo Condensed ExtraBold";
	font-style: normal;
	font-weight: 800;
	src: url("../fonts/PreloCondensedExtraBold.woff2") format("woff2");
	font-display: swap;
}
@font-face {
	font-family: "Prelo Condensed Bold";
	font-style: normal;
	font-weight: 700;
	src: url("../fonts/PreloCondensedBold.woff2") format("woff2");
	font-display: swap;
}
@font-face {
	font-family: "Prelo Condensed Book";
	font-style: normal;
	font-weight: 400;
	src: url("../fonts/PreloCondensedBook.woff2") format("woff2");
	font-display: swap;
}
@font-face {
	font-family: "tln-icons";
	font-style: normal;
	font-weight: 400;
	src: url("../fonts/tln-icons.woff2") format("woff2");
	font-display: swap;
}

/* ---------- Tokens & Reset ---------- */
:root {
	--tln-dark: #1a171b;
	--tln-dark-strip: #312f32;
	--tln-nav: #262327;
	--tln-yellow: #ffe400;
	--tln-yellow-hover: #d9c200;
	--tln-orange: #dc5004;
	--tln-orange-dark: #aa3e03;
	--tln-green: #00c27f;
	--tln-red: #e74c3c;
	--tln-gray-1: #f1f1ed;
	--tln-gray-2: #edede9;
	--tln-gray-3: #e9e8e3;
	--tln-border: #c0bfb2;
	--tln-muted: #d7d7cf;
	--tln-font-body: "Prelo Condensed Book", Roboto, "Segoe UI", system-ui, sans-serif;
	--tln-font-bold: "Prelo Condensed Bold", Roboto, "Segoe UI", system-ui, sans-serif;
	--tln-font-xbold: "Prelo Condensed ExtraBold", Roboto, "Segoe UI", system-ui, sans-serif;
}

*,
*:before,
*:after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

.tln-icon { display: inline-block; line-height: 0; vertical-align: middle; }
.tln-icon .tln-svg,
svg.tln-svg { width: 1em; height: 1em; display: block; fill: currentColor; }

body {
	margin: 0;
	font-family: var(--tln-font-body);
	font-size: 1.13rem;
	line-height: 1.25;
	color: var(--tln-dark);
	background-color: #fff;
}

img { max-width: 100%; height: auto; vertical-align: middle; border: 0; }
a { color: var(--tln-dark); text-decoration: none; }
a:hover { color: var(--tln-orange); }
button { font-family: inherit; cursor: pointer; }
input, select, textarea {
	font-family: var(--tln-font-body);
	font-size: 1.13rem;
	border-radius: 0;
}

h1, h2, h3, h4, h5 {
	font-family: var(--tln-font-xbold);
	color: var(--tln-dark);
	line-height: 1.1;
	margin-top: 0;
}
h1 { font-size: 2.26rem; margin: 2.26rem 0; }
h2 { font-size: 1.5rem; font-family: var(--tln-font-bold); margin: 1.6rem 0 1.2rem; }
h3 { font-size: 1.25rem; margin: 1.2rem 0 0.8rem; }

.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.skip-link:focus {
	position: fixed;
	top: 0; left: 0;
	z-index: 100000;
	width: auto; height: auto;
	clip: auto;
	padding: 10px 20px;
	background: var(--tln-yellow);
	color: var(--tln-dark);
	font-family: var(--tln-font-xbold);
}

.tln-container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 15px;
}
.tln-container::after { content: ""; display: table; clear: both; }

/* ---------- Buttons ---------- */
.tln-btn,
button.tln-btn,
input[type="submit"].tln-btn {
	display: inline-block;
	padding: 8px 30px;
	min-height: 40px;
	border: 0;
	border-radius: 0;
	background: var(--tln-yellow);
	color: #212529;
	font-family: var(--tln-font-xbold);
	font-size: 1.13rem;
	text-transform: uppercase;
	text-align: center;
	line-height: 1.4;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease;
}
.tln-btn:hover { background: var(--tln-yellow-hover); color: #212529; }

.tln-btn--big { min-height: 50px; padding: 12px 30px; font-size: 1.3rem; }
.tln-btn--block { display: block; width: 100%; }

.tln-btn--secondary { background: var(--tln-orange); color: #fff; }
.tln-btn--secondary:hover { background: var(--tln-orange-dark); color: #fff; }

.tln-btn--outline {
	background: transparent;
	border: 2px solid var(--tln-dark);
	color: var(--tln-dark);
}
.tln-btn--outline:hover { background: var(--tln-dark); color: #fff; }

/* ==========================================================================
   Header
   ========================================================================== */
.tln-announcement { background: #000; color: var(--tln-yellow); padding: 14px 0; text-align: center; }
.tln-announcement__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px; }
.tln-announcement__badge {
	display: inline-block;
	background: var(--tln-yellow);
	color: #000;
	font-family: var(--tln-font-xbold);
	font-size: 1.4rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	padding: 4px 18px;
	transform: skewX(-8deg);
}
.tln-announcement strong {
	font-family: var(--tln-font-xbold);
	font-size: 1.4rem;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.tln-announcement__sub { font-size: 1.05rem; color: var(--tln-muted); }
@media (max-width: 768px) {
	.tln-announcement strong { font-size: 1.1rem; }
	.tln-announcement__badge { font-size: 1.1rem; }
	.tln-announcement__sub { display: none; }
}

.tln-header { position: relative; z-index: 900; }

.tln-header__top {
	background: var(--tln-dark);
	border-top: 4px solid var(--tln-dark-strip);
}
.tln-header__top-inner {
	display: flex;
	align-items: center;
	height: 80px;
}
.tln-logo { display: inline-flex; align-items: center; flex: 0 0 auto; }
.tln-logo img { height: 40px; width: auto; }

.tln-header__promo {
	flex: 1 1 auto;
	text-align: center;
	color: var(--tln-muted);
	font-size: 1.13rem;
	padding: 0 20px;
}
.tln-header__promo strong { font-family: var(--tln-font-bold); font-weight: 700; }

.tln-header__icons {
	display: flex;
	align-items: center;
	gap: 34px;
	flex: 0 0 auto;
}
.tln-hicon {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	color: #fff;
	text-decoration: none;
}
.tln-hicon:hover { color: #fff; }
.tln-hicon__icon {
	position: relative;
	display: block;
	width: 26px; height: 26px;
	color: var(--tln-yellow);
}
.tln-hicon__icon svg { width: 100%; height: 100%; fill: currentColor; }
.tln-hicon__label {
	font-family: var(--tln-font-xbold);
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: .02em;
}
.tln-cart-count {
	position: absolute;
	top: -8px; right: -12px;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 10px;
	background: #fff;
	color: var(--tln-dark);
	font-family: var(--tln-font-bold);
	font-size: 0.85rem;
	line-height: 20px;
	text-align: center;
}

/* --- Nav row --- */
.tln-header__nav { background: var(--tln-nav); }
.tln-header__nav-inner {
	display: flex;
	align-items: center;
	height: 50px;
	gap: 30px;
}
.tln-cat-toggle {
	display: flex;
	align-items: center;
	gap: 12px;
	height: 50px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	font-family: var(--tln-font-xbold);
	font-size: 1.13rem;
	text-transform: uppercase;
	letter-spacing: .02em;
}
.tln-cat-toggle .tln-icon { color: var(--tln-yellow); }
.tln-cat-toggle:hover,
.tln-cat-toggle.is-active { color: var(--tln-yellow); }

.tln-nav-link {
	color: #fff;
	font-family: var(--tln-font-xbold);
	font-size: 1.13rem;
	text-transform: uppercase;
	letter-spacing: .02em;
}
.tln-nav-link:hover { color: var(--tln-yellow); }

/* --- Search bar --- */
.tln-search {
	position: relative;
	flex: 1 1 auto;
	max-width: 560px;
	margin-left: auto;
	display: flex;
	height: 34px;
}
.tln-search__input {
	flex: 1 1 auto;
	height: 34px;
	padding: 4px 14px;
	border: 0;
	background: var(--tln-yellow);
	color: var(--tln-dark);
	font-size: 1rem;
	outline: none;
}
.tln-search__input::placeholder { color: rgba(26, 23, 27, .75); }
.tln-search::before {
	/* diagonal slash decoration at the right edge of the yellow field */
	content: "";
	position: absolute;
	right: 44px;
	top: 0;
	width: 0; height: 0;
	border-top: 34px solid var(--tln-yellow);
	border-right: 12px solid transparent;
	pointer-events: none;
}
.tln-search__submit {
	flex: 0 0 56px;
	height: 34px;
	border: 0;
	background: var(--tln-dark);
	color: var(--tln-yellow);
	display: flex;
	align-items: center;
	justify-content: center;
}
.tln-search__submit svg { width: 20px; height: 20px; fill: currentColor; }
.tln-search__submit:hover { color: #fff; }

/* --- Category dropdown --- */
.tln-cat-dropdown {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: #fff;
	border-top: 2px solid var(--tln-yellow);
	box-shadow: 0 10px 30px rgba(0, 0, 0, .25);
	z-index: 950;
}
.tln-cat-dropdown.is-open { display: block; }
.tln-cat-dropdown.is-fixed { position: fixed; top: 60px; }
body.admin-bar .tln-cat-dropdown.is-fixed { top: 92px; }
.tln-cat-dropdown__inner {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0 40px;
	padding: 30px 15px;
	max-width: 1280px;
	margin: 0 auto;
}
.tln-cat-col__title {
	display: block;
	font-family: var(--tln-font-xbold);
	text-transform: uppercase;
	font-size: 1.13rem;
	padding: 8px 0;
	border-bottom: 2px solid var(--tln-yellow);
	margin-bottom: 6px;
	color: var(--tln-dark);
}
.tln-cat-col ul { list-style: none; margin: 0; padding: 0; }
.tln-cat-col li a {
	display: block;
	padding: 5px 0 5px 14px;
	position: relative;
	font-size: 1.05rem;
	color: var(--tln-dark);
}
.tln-cat-col li a::before {
	content: "";
	position: absolute;
	left: 0; top: 11px;
	width: 0; height: 0;
	border-left: 6px solid var(--tln-dark);
	border-top: 4px solid transparent;
	border-bottom: 4px solid transparent;
}
.tln-cat-col li a:hover { color: var(--tln-orange); }
.tln-cat-dropdown__all { padding: 0 15px 25px; max-width: 1280px; margin: 0 auto; }

/* --- Sticky compact bar --- */
.tln-stickybar {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 980;
	background: var(--tln-dark);
	transform: translateY(-110%);
	transition: transform .25s ease;
}
body.tln-sticky-active .tln-stickybar { transform: translateY(0); }
body.tln-sticky-active.admin-bar .tln-stickybar { top: 32px; }
.tln-stickybar__inner {
	display: flex;
	align-items: center;
	height: 60px;
	gap: 26px;
}
.tln-stickybar .tln-logo img { height: 30px; }
.tln-stickybar .tln-cat-toggle { height: 60px; padding: 0; }
.tln-stickybar .tln-search { max-width: 520px; }
.tln-stickybar .tln-header__icons { margin-left: auto; gap: 26px; }
.tln-stickybar .tln-hicon__label { font-size: 0.85rem; }

/* ==========================================================================
   Hero mosaic (homepage)
   ========================================================================== */
.tln-hero { margin: 25px 0 10px; }
.tln-hero__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 190px;
	gap: 6px;
}
.tln-hero-tile {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	background: var(--tln-dark) center/cover no-repeat;
	color: #fff;
}
.tln-hero-tile--w2 { grid-column: span 2; }
.tln-hero-tile--h2 { grid-row: span 2; }
.tln-hero-tile::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(15deg, rgba(26, 23, 27, .92) 0%, rgba(26, 23, 27, .45) 55%, rgba(26, 23, 27, .15) 100%);
}
.tln-hero-tile__body {
	position: relative;
	padding: 22px;
	width: 100%;
}
.tln-hero-tile__title {
	display: block;
	font-family: var(--tln-font-xbold);
	font-size: 1.7rem;
	line-height: 1.05;
	text-transform: none;
	margin-bottom: 4px;
}
.tln-hero-tile--w2 .tln-hero-tile__title { font-size: 2.1rem; }
.tln-hero-tile__title u {
	text-decoration: none;
	border-bottom: 3px solid var(--tln-yellow);
}
.tln-hero-tile__sub { display: block; font-size: 1.05rem; color: var(--tln-muted); margin-bottom: 12px; }
.tln-hero-tile .tln-btn { min-height: 36px; padding: 6px 22px; font-size: 1rem; }

/* ==========================================================================
   Brand row (homepage)
   ========================================================================== */
.tln-brands { margin: 45px 0; text-align: center; }
.tln-brands h2 { text-align: left; }
.tln-brands__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding: 25px 0 35px;
}
.tln-brand-logo {
	font-family: var(--tln-font-xbold);
	font-size: 1.6rem;
	letter-spacing: .02em;
	color: var(--tln-dark);
	text-transform: uppercase;
	opacity: .85;
}
.tln-brand-logo:hover { opacity: 1; color: var(--tln-dark); }
.tln-brand-logo img { max-width: 150px; max-height: 60px; width: auto; height: auto; object-fit: contain; display: block; }

/* ==========================================================================
   Product cards
   ========================================================================== */
.tln-products { margin: 40px 0; }
.tln-products__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
}
.tln-products__head h2 { margin-bottom: 1rem; }

ul.tln-card-grid,
.products.tln-card-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.tln-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	text-align: left;
}
.tln-card__img {
	display: block;
	position: relative;
	padding: 10px;
	text-align: center;
}
.tln-card__img img { max-height: 200px; width: auto; margin: 0 auto; }
.tln-card__title {
	display: block;
	margin: 8px 0 4px;
	font-family: var(--tln-font-bold);
	font-weight: 700;
	font-size: 1.13rem;
	line-height: 1.2;
	color: var(--tln-dark);
	min-height: 2.6em;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
}
.tln-card__title:hover { color: var(--tln-orange); }

.tln-stars { display: inline-flex; align-items: center; gap: 2px; color: var(--tln-yellow); }
.tln-stars svg { width: 16px; height: 16px; fill: currentColor; }
.tln-stars .is-empty { color: #d8d8d0; }
.tln-stars__count { margin-left: 6px; color: var(--tln-dark); font-size: 1rem; }

.tln-price { margin-top: 6px; line-height: 1.15; }
.tln-price__incl {
	font-family: var(--tln-font-xbold);
	font-size: 1.2rem;
	color: var(--tln-dark);
}
.tln-price__incl .tln-price__tax-note {
	font-family: var(--tln-font-body);
	font-weight: 400;
	font-size: 0.95rem;
}
.tln-price__excl { display: block; font-size: 0.95rem; color: var(--tln-dark); }
.tln-price .woocommerce-Price-amount { font: inherit; color: inherit; }

.tln-card .tln-btn--outline {
	margin-top: 12px;
	align-self: flex-start;
	min-height: 36px;
	padding: 5px 26px;
	font-size: 1rem;
}

/* Card grid inside WooCommerce loop */
ul.products li.product.tln-card { float: none; width: auto; margin: 0; }

/* List view variant (visual toggle on archive) */
.tln-list-view ul.tln-card-grid { grid-template-columns: 1fr; }
.tln-list-view .tln-card { flex-direction: row; align-items: center; gap: 25px; }
.tln-list-view .tln-card__img { flex: 0 0 220px; }
.tln-list-view .tln-card__title { -webkit-line-clamp: 2; min-height: 0; }

/* ==========================================================================
   Category tiles (homepage)
   ========================================================================== */
.tln-cats { margin: 50px 0; }
.tln-cats__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 6px;
}
.tln-cat-tile {
	position: relative;
	display: block;
	height: 220px;
	overflow: hidden;
	background: var(--tln-nav) center/cover no-repeat;
}
.tln-cat-tile::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(10deg, rgba(26, 23, 27, .75) 0%, rgba(26, 23, 27, .1) 60%);
}
.tln-cat-tile img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
}
.tln-cat-tile__label {
	position: absolute;
	left: 18px; bottom: 16px; right: 18px;
	color: #fff;
	font-family: var(--tln-font-xbold);
	font-size: 1.4rem;
	line-height: 1.1;
	text-shadow: 0 1px 4px rgba(0, 0, 0, .5);
}
.tln-cat-tile:hover::before { background: linear-gradient(10deg, rgba(220, 80, 4, .55) 0%, rgba(26, 23, 27, .15) 60%); }

/* ==========================================================================
   SEO text + Newsletter (homepage)
   ========================================================================== */
.tln-seo { margin: 50px 0; }
.tln-seo p { max-width: 100%; }

.tln-newsletter { margin-top: 40px; }
.tln-newsletter > .tln-container > h2 {
	font-family: var(--tln-font-xbold);
	text-transform: uppercase;
	font-size: 1.7rem;
}
.tln-newsletter__band { background: var(--tln-gray-1); padding: 40px 0; }
.tln-newsletter__inner {
	display: flex;
	align-items: center;
	gap: 50px;
}
.tln-newsletter__text { flex: 1 1 auto; display: flex; gap: 18px; }
.tln-newsletter__text .tln-icon {
	flex: 0 0 44px;
	width: 44px; height: 44px;
	color: var(--tln-dark);
}
.tln-newsletter__text strong {
	display: block;
	font-family: var(--tln-font-bold);
	font-size: 1.2rem;
	margin-bottom: 6px;
}
.tln-newsletter__text p { margin: 0; font-size: 1rem; }
.tln-newsletter__form { flex: 0 0 46%; }
.tln-newsletter__form label {
	display: block;
	font-size: 1rem;
	margin-bottom: 4px;
}
.tln-newsletter__row { display: flex; gap: 12px; }
.tln-newsletter__row input[type="email"] {
	flex: 1 1 auto;
	height: 50px;
	padding: 8px 14px;
	border: 1px solid var(--tln-border);
	background: #fff;
}
.tln-newsletter__row .tln-btn { flex: 1 1 auto; }
.tln-newsletter__success {
	font-family: var(--tln-font-bold);
	color: var(--tln-green);
	margin-top: 10px;
}

/* ==========================================================================
   WooCommerce: Archive / Shop
   ========================================================================== */
.tln-breadcrumb {
	font-size: 1rem;
	margin: 14px 0 0;
	color: var(--tln-dark);
}
.tln-breadcrumb a { color: var(--tln-dark); }
.tln-breadcrumb a:hover { color: var(--tln-orange); }
.tln-breadcrumb .tln-breadcrumb__sep { margin: 0 8px; color: var(--tln-border); }

.tln-shop-layout {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 45px;
	margin: 20px 0 60px;
}

/* Sidebar */
.tln-sidebar__label {
	font-family: var(--tln-font-xbold);
	text-transform: uppercase;
	font-size: 1.13rem;
	letter-spacing: .03em;
	margin: 0 0 8px;
}
.tln-cat-accordion { border: 1px solid var(--tln-border); border-top: 0; margin-bottom: 25px; }
.tln-cat-accordion__parent {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: var(--tln-dark);
	color: #fff;
	padding: 10px 14px;
	font-family: var(--tln-font-xbold);
	text-transform: uppercase;
	font-size: 1.05rem;
}
.tln-cat-accordion__parent .tln-icon { width: 14px; height: 14px; }
.tln-cat-accordion__list { list-style: none; margin: 0; padding: 12px 14px; }
.tln-cat-accordion__list li a {
	display: block;
	position: relative;
	padding: 6px 0 6px 16px;
	font-size: 1.05rem;
	color: var(--tln-dark);
}
.tln-cat-accordion__list li a::before {
	content: "";
	position: absolute;
	left: 0; top: 12px;
	width: 0; height: 0;
	border-left: 7px solid var(--tln-dark);
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
}
.tln-cat-accordion__list li a:hover,
.tln-cat-accordion__list li.current-cat a { color: var(--tln-orange); }
.tln-cat-accordion__all { padding: 0 14px 14px; }
.tln-cat-accordion__all .tln-btn--outline { width: 100%; min-height: 42px; }

/* Filter bars + widgets */
.tln-filter-bar,
.tln-sidebar .widget {
	background: var(--tln-gray-3);
	margin-bottom: 8px;
	padding: 0;
}
.tln-filter-bar__head,
.tln-sidebar .widget .widget-title,
.tln-sidebar .widget .widgettitle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0;
	padding: 12px 14px;
	font-family: var(--tln-font-xbold);
	font-size: 1.05rem;
	text-transform: uppercase;
	cursor: pointer;
}
.tln-filter-bar__head .tln-icon { width: 16px; height: 16px; }
.tln-filter-bar__body,
.tln-sidebar .widget > *:not(.widget-title):not(.widgettitle) {
	display: block;
	padding: 4px 14px 14px;
	background: #fff;
	border: 1px solid var(--tln-gray-3);
	border-top: 0;
}
.tln-sidebar .widget ul { list-style: none; margin: 0; padding: 0; }
.tln-sidebar .widget ul li { padding: 4px 0; }
.tln-sidebar .widget ul li a { color: var(--tln-dark); }
.tln-sidebar .widget ul li a:hover { color: var(--tln-orange); }
.tln-sidebar .widget ul li .count { color: #7a7a72; font-size: .95rem; }
.tln-sidebar .widget.is-collapsed > *:not(.widget-title):not(.widgettitle) { display: none; }

/* Archive main column */
.tln-archive-head h1 { margin: 1rem 0 .2rem; }
.tln-archive-count {
	font-family: var(--tln-font-bold);
	font-size: 1.13rem;
	margin-bottom: 15px;
}
.tln-archive-toolbar {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 18px;
	margin-bottom: 25px;
}
.tln-ordering { display: flex; align-items: stretch; margin: 0; }
.tln-ordering select {
	appearance: none;
	-webkit-appearance: none;
	height: 38px;
	padding: 5px 40px 5px 14px;
	border: 1px solid var(--tln-dark);
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231a171b' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center;
	font-family: var(--tln-font-xbold);
	font-size: 1rem;
	text-transform: uppercase;
	color: var(--tln-dark);
	cursor: pointer;
}
.tln-view-toggle { display: flex; gap: 6px; }
.tln-view-toggle a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px; height: 38px;
	border: 1px solid var(--tln-dark);
	color: var(--tln-dark);
	background: #fff;
}
.tln-view-toggle a svg { width: 18px; height: 18px; fill: currentColor; }
.tln-view-toggle a.is-active { background: var(--tln-dark); color: #fff; }

.tln-pagination { margin: 40px 0 0; text-align: center; }
.tln-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px; height: 40px;
	margin: 0 3px;
	padding: 0 10px;
	border: 1px solid var(--tln-border);
	font-family: var(--tln-font-bold);
	color: var(--tln-dark);
}
.tln-pagination .page-numbers.current {
	background: var(--tln-dark);
	border-color: var(--tln-dark);
	color: #fff;
}
.tln-pagination a.page-numbers:hover { border-color: var(--tln-dark); color: var(--tln-dark); }

/* ==========================================================================
   WooCommerce: Single product
   ========================================================================== */
.tln-product { margin: 20px 0 60px; }
.tln-product__head { position: relative; padding-right: 150px; margin-bottom: 25px; }
.tln-product__brand { display: inline-block; font-family: var(--tln-font-xbold); font-size: 1.3rem; margin-bottom: 6px; }
.tln-product__head h1 {
	font-size: 2rem;
	line-height: 1.1;
	margin: 0;
	max-width: 800px;
}
.tln-product__actions {
	position: absolute;
	top: 0; right: 0;
	display: flex;
	gap: 22px;
}
.tln-product__actions button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px; height: 30px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--tln-dark);
}
.tln-product__actions button:hover { color: var(--tln-orange); }
.tln-product__actions svg { width: 24px; height: 24px; fill: currentColor; }

.tln-product__main {
	display: grid;
	grid-template-columns: minmax(0, 46%) minmax(0, 26%) minmax(0, 28%);
	gap: 35px;
}

/* Gallery: thumbs left, main right */
.tln-gallery { display: flex; gap: 15px; align-items: flex-start; }
.tln-gallery__thumbs {
	flex: 0 0 84px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.tln-gallery__thumb {
	display: block;
	padding: 4px;
	border: 1px solid var(--tln-border);
	background: #fff;
	cursor: pointer;
}
.tln-gallery__thumb.is-active { border-color: var(--tln-dark); }
.tln-gallery__thumb img { display: block; width: 100%; height: auto; }
.tln-gallery__main {
	flex: 1 1 auto;
	position: relative;
	border: 1px solid var(--tln-gray-3);
	padding: 20px;
	text-align: center;
}
.tln-gallery__main img { max-height: 420px; width: auto; margin: 0 auto; }

/* Rating + price column */
.tln-product__rating { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.tln-product__rating .tln-stars__count { font-family: var(--tln-font-bold); }

.tln-product__price .tln-price__incl { font-size: 2rem; }
.tln-product__price .tln-price__tax-note { font-size: 1.05rem; }
.tln-product__price .tln-price__excl { font-size: 1.05rem; }
.tln-product__unit { font-size: 1rem; color: var(--tln-dark); }
.tln-product__shortdesc { margin-top: 14px; }

/* Buy box */
.tln-buybox .tln-qty-label {
	display: block;
	font-size: 1.05rem;
	margin-bottom: 4px;
}
.tln-quantity,
.quantity {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--tln-dark);
	width: 96px;
	height: 46px;
	background: #fff;
}
.tln-quantity input.qty,
.quantity input.qty {
	flex: 1 1 auto;
	width: 60px;
	border: 0;
	text-align: center;
	font-family: var(--tln-font-bold);
	font-size: 1.13rem;
	padding: 0 4px;
	-moz-appearance: textfield;
	appearance: textfield;
}
.tln-quantity input.qty::-webkit-outer-spin-button,
.tln-quantity input.qty::-webkit-inner-spin-button,
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.tln-quantity__btns { display: flex; flex-direction: column; flex: 0 0 30px; border-left: 1px solid var(--tln-dark); }
.tln-quantity__btns button {
	flex: 1 1 50%;
	border: 0;
	background: #fff;
	color: var(--tln-dark);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}
.tln-quantity__btns button:first-child { border-bottom: 1px solid var(--tln-dark); }
.tln-quantity__btns button:hover { background: var(--tln-gray-1); }
.tln-quantity__btns svg { width: 12px; height: 12px; fill: currentColor; }

.tln-buybox form.cart { margin: 0 0 18px; }
.tln-buybox form.cart .tln-quantity { margin-bottom: 14px; }
.woocommerce .tln-buybox button.single_add_to_cart_button.alt,
.tln-buybox .single_add_to_cart_button {
	display: block;
	width: 100%;
	min-height: 54px;
	border: 0;
	background: var(--tln-yellow);
	color: #212529;
	font-family: var(--tln-font-xbold);
	font-size: 1.4rem;
	text-transform: uppercase;
	letter-spacing: .03em;
}
.woocommerce .tln-buybox button.single_add_to_cart_button.alt:hover,
.tln-buybox .single_add_to_cart_button:hover { background: var(--tln-yellow-hover); color: #212529; }
.tln-buybox .single_add_to_cart_button.disabled,
.tln-buybox .single_add_to_cart_button:disabled { opacity: .5; cursor: not-allowed; }

.tln-usp .tln-icon .tln-svg,
.tln-newsletter__text .tln-icon .tln-svg,
.tln-shipping .tln-icon .tln-svg,
.tln-cat-accordion__parent .tln-icon .tln-svg,
.tln-filter-bar__head .tln-icon .tln-svg,
.tln-secure-pay__label .tln-icon .tln-svg { width: 100%; height: 100%; }

/* Variable / grouped products inside buybox */
.tln-buybox .variations { width: 100%; margin-bottom: 10px; border-collapse: collapse; }
.tln-buybox .variations th,
.tln-buybox .variations td { padding: 6px 0; text-align: left; vertical-align: middle; }
.tln-buybox .variations select {
	width: 100%;
	height: 42px;
	padding: 5px 10px;
	border: 1px solid var(--tln-dark);
	background: #fff;
}
.tln-buybox .woocommerce-variation-price { margin: 8px 0; }
.tln-buybox .reset_variations { display: inline-block; margin-top: 6px; font-size: 1rem; }

.tln-secure-pay { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--tln-border); }

/* Buy box card + benefit rows */
.tln-buybox .stock { display: none; }
.tln-buybox__card {
	border: 1px solid var(--tln-border);
	background: #fafaf7;
	padding: 22px 24px;
}
.tln-benefits { list-style: none; margin: 18px 0 0; padding: 16px 0 0; border-top: 1px solid var(--tln-border); }
.tln-benefits li { display: flex; align-items: center; gap: 10px; margin: 9px 0; font-size: 1.05rem; }
.tln-benefits li > svg { flex: 0 0 20px; width: 20px; height: 20px; fill: var(--tln-dark); }
.tln-benefits li a { color: var(--tln-dark); text-decoration: none; }
.tln-benefits li a:hover { color: var(--tln-orange); }
.tln-benefits__stock p { margin: 0; display: flex; align-items: center; gap: 10px; }
.tln-benefits__stock .tln-stock-dot { flex: 0 0 12px; }
.tln-secure-pay__label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--tln-font-bold);
	margin-bottom: 8px;
}
.tln-secure-pay__label .tln-icon { color: var(--tln-green); width: 18px; height: 18px; }
.tln-pay-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.tln-pay-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 30px;
	padding: 0 10px;
	border: 1px solid var(--tln-gray-3);
	background: #fff;
	font-family: var(--tln-font-xbold);
	font-size: 0.95rem;
	line-height: 1;
}
.tln-pay-chip--klarna { background: #ffb3c7; border-color: #ffb3c7; color: #17120f; }
.tln-pay-chip--paypal { color: #003087; }
.tln-pay-chip--visa { color: #1a1f71; }
.tln-pay-chip--mc svg { height: 18px; width: 30px; }

.tln-shipping { font-size: 1.05rem; }
.tln-shipping p { margin: 6px 0; }
.tln-shipping strong { font-family: var(--tln-font-bold); }
.tln-shipping .tln-icon { width: 14px; height: 14px; vertical-align: -2px; }
.tln-stock-dot {
	display: inline-block;
	width: 14px; height: 14px;
	margin-right: 6px;
	vertical-align: -1px;
	background: var(--tln-green);
}
.tln-stock-dot.is-low { background: var(--tln-yellow); }
.tln-stock-dot.is-out { background: var(--tln-red); }

.tln-product-meta { margin-top: 30px; font-size: 1.05rem; }
.tln-product-meta p { margin: 4px 0; }
.tln-product-meta strong { font-family: var(--tln-font-bold); }

/* Product data sections */
.tln-product-data { margin: 50px 0; }
.tln-product-data__section { border-top: 2px solid var(--tln-dark); padding: 25px 0; }
.tln-product-data__section > h2 {
	font-family: var(--tln-font-xbold);
	text-transform: uppercase;
	font-size: 1.4rem;
}
.tln-attr-table { width: 100%; border-collapse: collapse; max-width: 800px; }
.tln-attr-table th,
.tln-attr-table td {
	padding: 8px 14px;
	border: 1px solid var(--tln-border);
	text-align: left;
	font-size: 1.05rem;
}
.tln-attr-table th {
	font-family: var(--tln-font-bold);
	background: var(--tln-gray-1);
	width: 35%;
}

/* Reviews */
.tln-reviews .commentlist { list-style: none; margin: 0; padding: 0; }
.tln-reviews .commentlist li { border-bottom: 1px solid var(--tln-gray-3); padding: 14px 0; }
.tln-reviews .comment-form input:not([type="submit"]),
.tln-reviews .comment-form textarea {
	width: 100%;
	padding: 8px 12px;
	border: 1px solid var(--tln-border);
}

.tln-related { margin: 40px 0 60px; }

/* ==========================================================================
   WooCommerce generic (cart, checkout, account, notices)
   ========================================================================== */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	padding: 14px 18px;
	margin: 0 0 20px;
	border: 1px solid var(--tln-border);
	border-left: 4px solid var(--tln-green);
	background: var(--tln-gray-1);
	list-style: none;
}
.woocommerce-info { border-left-color: var(--tln-yellow); }
.woocommerce-error { border-left-color: var(--tln-red); }
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button { float: right; }

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
a.button.alt,
button.button.alt,
input.button.alt {
	display: inline-block;
	padding: 8px 30px;
	border: 0;
	border-radius: 0;
	background: var(--tln-yellow);
	color: #212529;
	font-family: var(--tln-font-xbold);
	text-transform: uppercase;
	line-height: 1.4;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
a.button.alt:hover,
button.button.alt:hover,
input.button.alt:hover { background: var(--tln-yellow-hover); color: #212529; }
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt { background: var(--tln-dark); color: #fff; }
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover { background: #000; color: #fff; }

.woocommerce table.shop_table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 25px;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 10px 12px;
	border: 1px solid var(--tln-gray-3);
	text-align: left;
}
.woocommerce table.shop_table th {
	font-family: var(--tln-font-xbold);
	text-transform: uppercase;
	background: var(--tln-gray-1);
}

.woocommerce form .form-row { margin-bottom: 14px; }
.woocommerce form .form-row label { display: block; font-family: var(--tln-font-bold); margin-bottom: 4px; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	width: 100%;
	padding: 8px 12px;
	border: 1px solid var(--tln-border);
	border-radius: 0;
	background: #fff;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { border-color: var(--tln-dark); outline: none; }

.woocommerce .col2-set::after { content: ""; display: table; clear: both; }
.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2 { float: left; width: 48%; }
.woocommerce .col2-set .col-2 { float: right; }

.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 25px; padding: 0; }
.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 10px 14px;
	margin-bottom: 4px;
	background: var(--tln-gray-1);
	font-family: var(--tln-font-bold);
	text-transform: uppercase;
}
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover { background: var(--tln-dark); color: #fff; }

/* ==========================================================================
   Footer
   ========================================================================== */
.tln-footer { margin-top: 60px; }

.tln-footer__links { background: var(--tln-gray-2); padding: 45px 0 55px; }
.tln-footer__cols {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1.2fr;
	gap: 40px;
}
.tln-footer__col h2,
.tln-footer__col h3 {
	font-family: var(--tln-font-xbold);
	font-size: 1.13rem;
	text-transform: uppercase;
	letter-spacing: .02em;
	margin: 0 0 14px;
}
.tln-footer__col ul { list-style: none; margin: 0; padding: 0; }
.tln-footer__col ul li { margin: 0; }
.tln-footer__col ul li a {
	display: block;
	padding: 6px 0;
	font-size: 1.13rem;
	color: var(--tln-dark);
}
.tln-footer__col ul li a:hover { color: var(--tln-orange); }
.tln-footer__col .tln-btn--outline { margin-top: 18px; width: 100%; }

.tln-footer__pay { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 25px; }
.tln-footer__trust { display: flex; flex-wrap: wrap; gap: 10px; }
.tln-trust-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 72px; height: 72px;
	padding: 6px;
	border: 1px solid var(--tln-border);
	border-radius: 50%;
	background: #fff;
	font-family: var(--tln-font-xbold);
	font-size: 0.75rem;
	text-align: center;
	line-height: 1.1;
	color: var(--tln-dark);
}

.tln-trustpilot { margin-top: 20px; max-width: 420px; }
.tln-trustpilot .trustpilot-widget iframe { border-radius: 0; }

.tln-footer__social {
	background: var(--tln-gray-2);
	border-top: 1px solid var(--tln-border);
}
.tln-footer__social-inner {
	display: flex;
	align-items: center;
	gap: 22px;
	min-height: 80px;
}
.tln-footer__social span { font-family: var(--tln-font-bold); font-size: 1.13rem; }
.tln-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px; height: 34px;
	border-radius: 50%;
	background: var(--tln-dark);
	color: #fff;
}
.tln-footer__social a:hover { background: var(--tln-orange); color: #fff; }
.tln-footer__social svg { width: 17px; height: 17px; fill: currentColor; }

.tln-footer__usp { background: var(--tln-dark); padding: 32px 0; }
.tln-footer__usp-inner {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 30px;
}
.tln-usp {
	display: flex;
	align-items: center;
	gap: 18px;
	color: #fff;
	font-family: var(--tln-font-xbold);
	text-transform: uppercase;
	font-size: 1.13rem;
	letter-spacing: .02em;
}
.tln-usp .tln-icon {
	flex: 0 0 46px;
	width: 46px; height: 46px;
	color: var(--tln-yellow);
}
.tln-usp small {
	display: block;
	font-family: var(--tln-font-body);
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	font-size: 1rem;
	color: var(--tln-muted);
}
.tln-usp a { color: #fff; }
.tln-usp a:hover { color: var(--tln-yellow); }

.tln-footer__legal { background: var(--tln-dark); border-top: 1px solid var(--tln-dark-strip); padding: 18px 0; }
.tln-footer__legal ul {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px 40px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.tln-footer__legal a {
	font-family: var(--tln-font-xbold);
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var(--tln-muted);
}
.tln-footer__legal a:hover { color: var(--tln-yellow); }

.tln-backtop {
	position: fixed;
	right: 25px; bottom: 25px;
	z-index: 970;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px; height: 46px;
	border: 0;
	background: var(--tln-dark);
	color: var(--tln-yellow);
	opacity: 0;
	visibility: hidden;
	transition: opacity .2s ease, visibility .2s ease;
}
.tln-backtop.is-visible { opacity: 1; visibility: visible; }
.tln-backtop:hover { background: #000; }
.tln-backtop svg { width: 20px; height: 20px; fill: currentColor; }

/* ==========================================================================
   Standard content (pages, posts, search, 404)
   ========================================================================== */
.tln-content { margin: 30px 0 60px; }
.tln-content p { margin: 0 0 1rem; }

.tln-post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px 20px;
}
.tln-post-card { border: 1px solid var(--tln-gray-3); }
.tln-post-card__body { padding: 16px; }
.tln-post-card h2 {
	font-size: 1.25rem;
	font-family: var(--tln-font-bold);
	margin: 0 0 8px;
}
.tln-post-card__meta { font-size: .95rem; color: #7a7a72; margin-bottom: 8px; }

.tln-404 { text-align: center; padding: 60px 0 80px; }
.tln-404 h1 { font-size: 4rem; margin: 0 0 10px; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1100px) {
	.tln-header__promo { display: none; }
	.tln-product__main { grid-template-columns: 1fr 1fr; }
	.tln-product__main .tln-buybox { grid-column: 1 / -1; }
	.tln-hero__grid { grid-template-columns: repeat(2, 1fr); }
	.tln-footer__cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
	.tln-header__nav-inner { flex-wrap: wrap; height: auto; padding: 8px 0; gap: 12px; }
	.tln-search { order: 3; flex-basis: 100%; max-width: none; margin-left: 0; }
	.tln-stickybar .tln-header__icons { display: none; }
	.tln-shop-layout { grid-template-columns: 1fr; }
	.tln-cats__grid { grid-template-columns: repeat(2, 1fr); }
	.tln-newsletter__inner { flex-direction: column; align-items: stretch; gap: 20px; }
	.tln-newsletter__form { flex-basis: auto; }
	.tln-footer__usp-inner { grid-template-columns: 1fr; }
	.tln-product__main { grid-template-columns: 1fr; }
	.tln-post-grid { grid-template-columns: 1fr 1fr; }
	ul.tln-card-grid, .products.tln-card-grid { grid-template-columns: repeat(2, 1fr); }
	.tln-cat-dropdown__inner { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	body { font-size: 1.05rem; }
	.tln-header__top-inner { height: 64px; }
	.tln-logo img { height: 30px; }
	.tln-header__icons { gap: 18px; }
	.tln-hicon__label { display: none; }
	.tln-hero__grid { grid-template-columns: 1fr; grid-auto-rows: 170px; }
	.tln-hero-tile--w2 { grid-column: span 1; }
	.tln-cats__grid { grid-template-columns: 1fr; }
	.tln-footer__cols { grid-template-columns: 1fr; }
	.tln-post-grid { grid-template-columns: 1fr; }
	ul.tln-card-grid, .products.tln-card-grid { grid-template-columns: 1fr; }
	.tln-brands__row { justify-content: center; }
	.tln-product__head { padding-right: 0; }
	.tln-product__actions { position: static; margin-top: 12px; }
	.tln-newsletter__row { flex-direction: column; }
}
