/* ==========================================================================
   Tirreno Pellet — thème enfant Storefront
   Modèle 12 « Catalogo » : mise en page dense, orientée recherche par critère.
   Aucun texte ici : tout vient de content/{locale}.json.
   ========================================================================== */

:root {
	--tp-ink: #14171a;
	--tp-muted: #6b7580;
	--tp-line: #e3e7ea;
	--tp-soft: #f6f8f9;
	--tp-acc: #1b6b4a;
	--tp-acc-soft: #e6f2ec;
	--tp-red: #c0392b;
	--tp-amber: #e39b00;
}

/* ---------- base ---------- */
body.tp-body {
	background: #fff;
	color: var(--tp-ink);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
	font-size: 14px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

.tp-body h1, .tp-body h2, .tp-body h3, .tp-body h4, .tp-body h5 {
	color: var(--tp-ink);
	margin: 0;
	font-weight: 800;
}

.tp-body a { text-decoration: none; }

.tp-wrap {
	max-width: 1340px;
	margin: 0 auto;
	padding: 0 28px;
}

.tp-sprite {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
}

.tp-icon {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
	flex: none;
	display: block;
}

.tp-icon--tool {
	width: 17px;
	height: 17px;
}

.tp-skip {
	position: absolute;
	left: -9999px;
}
.tp-skip:focus {
	left: 12px;
	top: 12px;
	z-index: 999;
	background: #fff;
	padding: 10px 16px;
	border-radius: 6px;
}

/* ---------- barre haute ---------- */
.tp-topbar {
	background: var(--tp-ink);
	color: #c9d2d8;
	font-size: 11.5px;
	padding: 8px 0;
	text-align: center;
}
.tp-topbar b { color: #fff; }

/* ---------- en-tête ---------- */
.tp-header { border-bottom: 1px solid var(--tp-line); background: #fff; }

.tp-header__inner {
	display: flex;
	align-items: center;
	gap: 26px;
	height: 72px;
}

.tp-logo {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 17px;
	font-weight: 800;
	color: var(--tp-ink);
}
.tp-logo__type {
	display: inline-flex;
	align-items: baseline;
	gap: 0.32em;
	line-height: 1;
}
.tp-logo__name {
	font-family: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.02em;
	text-transform: uppercase;
	line-height: 1;
	margin: 0;
}
.tp-logo__sub {
	font-family: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
	font-size: 20px;
	font-weight: 400;
	letter-spacing: -0.02em;
	text-transform: uppercase;
	opacity: 0.72;
	margin: 0;
}
.tp-logo__img {
	height: 34px;
	width: auto;
	display: block;
}

.tp-search {
	flex: 1;
	max-width: 560px;
	display: flex;
	border: 1px solid var(--tp-line);
	border-radius: 6px;
	overflow: hidden;
	height: 42px;
	margin: 0;
}
.tp-search input[type="search"] {
	flex: 1;
	border: 0;
	padding: 0 14px;
	font-size: 13px;
	outline: none;
	background: var(--tp-soft);
	color: var(--tp-ink);
	margin: 0;
}
.tp-search button {
	background: var(--tp-acc);
	color: #fff;
	border: 0;
	padding: 0 20px;
	font-size: 12.5px;
	font-weight: 700;
	cursor: pointer;
}

.tp-tools {
	margin-left: auto;
	display: flex;
	gap: 18px;
	align-items: center;
	font-size: 12.5px;
}
.tp-tool {
	color: var(--tp-ink);
	display: inline-flex;
	align-items: center;
	gap: 7px;
	line-height: 1;
}
.tp-tool:hover { color: var(--tp-acc); }

.tp-tool--cart {
	background: var(--tp-ink);
	color: #fff;
	padding: 11px 14px 11px 13px;
	border-radius: 6px;
	font-weight: 600;
	gap: 8px;
}
.tp-tool--cart:hover { color: #fff; }

.tp-cart-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--tp-acc);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
}

/* ---------- navigation ---------- */
.tp-navbar {
	border-bottom: 1px solid var(--tp-line);
	background: #fff;
	position: sticky;
	top: 0;
	z-index: 60;
}
.tp-nav {
	display: flex;
	gap: 26px;
	list-style: none;
	font-size: 13px;
	font-weight: 600;
	height: 46px;
	align-items: center;
	margin: 0;
	padding: 0;
}
.tp-nav li { margin: 0; }
.tp-nav a { color: var(--tp-ink); }
.tp-nav a:hover { color: var(--tp-acc); }

/* ---------- héros ---------- */
.tp-hero {
	display: grid;
	grid-template-columns: 1.08fr 0.92fr;
	gap: 44px;
	align-items: center;
	padding: 44px 0 24px;
}

/* Sans image de héros, le texte occupe toute la largeur. */
.tp-hero:not(:has(.tp-hero__visual)) {
	grid-template-columns: 1fr;
}
.tp-hero:not(:has(.tp-hero__visual)) .tp-hero__lead {
	max-width: 620px;
}

.tp-kick {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--tp-acc-soft);
	color: var(--tp-acc);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	padding: 7px 13px;
	border-radius: 999px;
}

.tp-hero__title {
	font-size: 50px;
	line-height: 1.05;
	letter-spacing: -2px;
	margin: 18px 0 0;
}
.tp-hero__title span { color: var(--tp-acc); }

.tp-hero__lead {
	margin-top: 16px;
	font-size: 15.5px;
	line-height: 1.7;
	color: #4c5a64;
	max-width: 470px;
}

/* sélecteur */
.tp-finder {
	margin-top: 26px;
	background: #fff;
	border: 1px solid var(--tp-line);
	border-radius: 12px;
	box-shadow: 0 16px 40px rgba(20, 23, 26, 0.07);
	padding: 18px;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr auto;
	gap: 10px;
	align-items: end;
	max-width: 620px;
	margin-bottom: 0;
}
.tp-finder__field { display: block; margin: 0; }
.tp-finder__field span {
	display: block;
	font-size: 10px;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	color: var(--tp-muted);
	font-weight: 700;
	margin-bottom: 6px;
}
.tp-finder__field select {
	width: 100%;
	border: 1px solid var(--tp-line);
	border-radius: 7px;
	padding: 10px 12px;
	font-size: 12.5px;
	background: #fff;
	color: #2e3a43;
	height: auto;
	margin: 0;
}
.tp-finder__go {
	background: var(--tp-acc);
	color: #fff;
	border: 0;
	border-radius: 7px;
	padding: 12px 18px;
	font-size: 12.5px;
	font-weight: 800;
	white-space: nowrap;
	cursor: pointer;
}

.tp-hint { margin-top: 10px; font-size: 11.5px; color: var(--tp-muted); }
.tp-hint a { color: var(--tp-muted); border-bottom: 1px solid var(--tp-line); }
.tp-hint b { color: var(--tp-acc); }

.tp-hero__visual { position: relative; }
.tp-hero__img {
	display: block;
	width: 100%;
	height: 430px;
	object-fit: cover;
	border-radius: 14px;
	box-shadow: 0 26px 60px rgba(20, 23, 26, 0.16);
}
.tp-ph--hero {
	display: block;
	height: 430px;
	border-radius: 14px;
	box-shadow: 0 26px 60px rgba(20, 23, 26, 0.16);
}

.tp-float {
	position: absolute;
	background: #fff;
	border-radius: 10px;
	padding: 11px 15px;
	box-shadow: 0 12px 28px rgba(20, 23, 26, 0.14);
	font-size: 11.5px;
	z-index: 8;
}
.tp-float b { display: block; font-size: 14.5px; }
.tp-float small { color: var(--tp-muted); font-size: 10.5px; }
.tp-float--bl { bottom: -14px; left: -16px; }
.tp-float--tr { top: 18px; right: -14px; }

/* ---------- illustration « poêle » (CSS pur) ---------- */
.tp-ph,
.tp-quick__ph,
.tp-deal__ph {
	position: relative;
	display: block;
	overflow: hidden;
	background: radial-gradient(110% 100% at 50% 8%, #3c2e25 0%, #181210 58%, #0b0807 92%);
}
.tp-ph::after,
.tp-quick__ph::after,
.tp-deal__ph::after {
	content: "";
	position: absolute;
	inset: auto -20% -42% -20%;
	height: 70%;
	background: radial-gradient(circle at 50% 100%, rgba(255, 150, 50, 0.4), transparent 66%);
}
.tp-ph::before,
.tp-quick__ph::before,
.tp-deal__ph::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 12%;
	transform: translateX(-50%);
	width: 88px;
	height: 112px;
	border-radius: 4px;
	background:
		radial-gradient(ellipse 30% 34% at 50% 82%, #fff0cc 0%, transparent 70%),
		radial-gradient(ellipse 40% 44% at 46% 76%, #ffc46b 0%, #ff8a1f 45%, transparent 72%),
		radial-gradient(circle at 50% 70%, #ff7a18 0%, #a32b00 46%, #2b0c00 100%),
		linear-gradient(155deg, #4a3e37, #20180f 62%, #140f0c);
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35), 0 0 40px rgba(255, 110, 20, 0.35);
	z-index: 2;
}

/* ---------- catégories rapides ---------- */
.tp-quick {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 12px;
	margin-top: 8px;
}
.tp-quick__item {
	border: 1px solid var(--tp-line);
	border-radius: 10px;
	padding: 16px 14px;
	text-align: center;
	background: #fff;
	color: var(--tp-ink);
	transition: 0.18s;
}
.tp-quick__item:hover {
	border-color: var(--tp-acc);
	box-shadow: 0 10px 24px rgba(20, 23, 26, 0.07);
}
.tp-quick__ph {
	height: 80px;
	border-radius: 8px;
	margin-bottom: 8px;
	background: linear-gradient(180deg, #f2f5f6, #e5ebee);
}
.tp-quick__ph::after { display: none; }
.tp-quick__ph::before {
	width: 48px;
	height: 60px;
	bottom: 6px;
	background:
		radial-gradient(circle at 50% 70%, #ff7a18 0%, #a32b00 46%, #2b0c00 100%),
		linear-gradient(155deg, #4a3e37, #20180f 62%, #140f0c);
	box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18);
}
.tp-quick__ph--bag::before {
	width: 44px;
	height: 56px;
	border-radius: 7px 7px 4px 4px;
	background: linear-gradient(160deg, #cdbb9e, #a78d68);
	box-shadow: none;
}
.tp-quick__ph--logs::before {
	width: 54px;
	height: 38px;
	border-radius: 5px;
	background: repeating-linear-gradient(90deg, #8b5e3c 0 8px, #7a5233 8px 15px);
	box-shadow: none;
}
.tp-quick__item b { font-size: 12.5px; display: block; line-height: 1.3; }

/* ---------- sections ---------- */
.tp-sec { padding: 46px 0 0; }

.tp-sec__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 20px;
	gap: 20px;
}
.tp-sec__head h2 { font-size: 26px; letter-spacing: -1px; }
.tp-sec__head p { font-size: 13px; color: var(--tp-muted); margin: 5px 0 0; }
.tp-sec__head > a {
	font-size: 13px;
	font-weight: 700;
	color: var(--tp-acc);
	white-space: nowrap;
}

/* ---------- grille de cartes ---------- */
.tp-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}

.tp-card {
	border: 1px solid var(--tp-line);
	border-radius: 8px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	background: #fff;
	transition: 0.18s;
	position: relative;
}
.tp-card:hover {
	box-shadow: 0 14px 30px rgba(20, 23, 26, 0.09);
	border-color: #cbd5dc;
}

.tp-card__media {
	position: relative;
	display: block;
	height: 200px;
	overflow: hidden;
	background: linear-gradient(180deg, #f2f5f6, #e5ebee);
}
.tp-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.tp-card__media .tp-ph { height: 100%; border-radius: 0; box-shadow: none; }

.tp-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 5;
	background: var(--tp-ink);
	color: #fff;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 1px;
	padding: 4px 8px;
	border-radius: 3px;
}
.tp-badge--sale { background: var(--tp-red); }
.tp-badge--eco { background: var(--tp-acc); }

.tp-card__body {
	padding: 13px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.tp-card__cat {
	font-size: 10px;
	letter-spacing: 1.3px;
	text-transform: uppercase;
	color: var(--tp-muted);
	font-weight: 700;
}
.tp-card__cat a { color: inherit; }
.tp-card__title {
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.35;
	margin: 6px 0 8px;
}
.tp-card__title a { color: var(--tp-ink); }

.tp-card__specs {
	display: flex;
	gap: 5px;
	flex-wrap: wrap;
	margin: 0 0 6px;
	padding: 0;
	list-style: none;
}
.tp-card__specs li {
	background: var(--tp-soft);
	border: 1px solid var(--tp-line);
	color: #4a565f;
	font-size: 10.5px;
	padding: 3px 7px;
	border-radius: 3px;
	font-weight: 600;
	margin: 0;
}

.tp-card__rating { font-size: 11px; color: var(--tp-amber); }
.tp-card__rating .star-rating { float: none; margin: 0 auto 0 0; display: inline-block; font-size: 11px; }
.tp-card__rating span { color: var(--tp-muted); }

.tp-card__price {
	margin-top: auto;
	padding-top: 10px;
	display: flex;
	align-items: baseline;
	gap: 7px;
	font-size: 17px;
	font-weight: 800;
	letter-spacing: -0.4px;
}
.tp-card__price del,
.tp-card__price s {
	font-size: 11.5px;
	font-weight: 400;
	color: #a9b4bd;
}
.tp-card__price ins { text-decoration: none; background: none; }

.tp-card__stock {
	font-size: 10.5px;
	margin-top: 4px;
	color: var(--tp-acc);
	font-weight: 700;
}
.tp-card__stock.is-out { color: #b4703a; }

/* ---------- offres ---------- */
.tp-deals {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.tp-deal {
	position: relative;
	border-radius: 10px;
	overflow: hidden;
	height: 210px;
	display: flex;
	align-items: flex-end;
	padding: 20px;
	color: #fff;
}
.tp-deal__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.55;
	z-index: 1;
}
.tp-deal__tx { z-index: 5; }
.tp-deal__ph::before { width: 76px; height: 94px; right: 16px; left: auto; bottom: 16px; transform: none; }
.tp-deal__tx { position: relative; z-index: 5; }
.tp-deal__tx small {
	font-size: 10px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #e9c49b;
	display: block;
}
.tp-deal__tx b { display: block; font-size: 20px; letter-spacing: -0.6px; margin-top: 6px; color: #fff; }
.tp-deal__tx span {
	display: inline-block;
	margin-top: 10px;
	background: #fff;
	color: var(--tp-ink);
	font-size: 11px;
	font-weight: 800;
	padding: 8px 14px;
	border-radius: 5px;
}

/* ---------- guides ---------- */
.tp-guides {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.tp-guide {
	border: 1px solid var(--tp-line);
	border-radius: 10px;
	padding: 24px;
	background: #fff;
	display: block;
	color: var(--tp-ink);
}
.tp-guide__kicker {
	font-size: 10.5px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--tp-acc);
	font-weight: 800;
}
.tp-guide h3 { font-size: 17px; letter-spacing: -0.3px; margin: 10px 0 8px; line-height: 1.3; }
.tp-guide p { font-size: 12.5px; line-height: 1.65; color: var(--tp-muted); margin: 0; }
.tp-guide__link { display: inline-block; margin-top: 14px; font-size: 11.5px; font-weight: 700; color: var(--tp-acc); }

/* ---------- confiance ---------- */
.tp-trust {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border: 1px solid var(--tp-line);
	border-radius: 10px;
	overflow: hidden;
	margin-top: 46px;
	background: #fff;
}
.tp-trust__item {
	padding: 20px;
	border-right: 1px solid var(--tp-line);
	display: flex;
	gap: 12px;
	align-items: center;
}
.tp-trust__item:last-child { border-right: 0; }
.tp-trust__icon {
	width: 36px;
	height: 36px;
	border-radius: 9px;
	background: var(--tp-acc-soft);
	color: var(--tp-acc);
	flex: none;
	display: grid;
	place-items: center;
}
.tp-trust__item b { display: block; font-size: 12.5px; }
.tp-trust__item small { font-size: 11px; color: var(--tp-muted); }

/* ---------- newsletter ---------- */
.tp-news {
	background: var(--tp-ink);
	color: #fff;
	border-radius: 12px;
	margin-top: 26px;
	padding: 30px 34px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 26px;
	flex-wrap: wrap;
}
.tp-news h3 { font-size: 21px; letter-spacing: -0.6px; color: #fff; }
.tp-news p { font-size: 12.5px; color: #a9b6c0; margin: 5px 0 0; }
.tp-news__form { display: flex; background: #fff; border-radius: 7px; overflow: hidden; height: 44px; margin: 0; }
.tp-news__form input {
	border: 0;
	padding: 0 14px;
	width: 230px;
	outline: none;
	font-size: 13px;
	margin: 0;
}
.tp-news__form button {
	background: var(--tp-acc);
	color: #fff;
	border: 0;
	padding: 0 20px;
	font-weight: 800;
	font-size: 12.5px;
	cursor: pointer;
}

/* ---------- boutique / catalogue ---------- */
.tp-shop { padding-top: 18px; }

.tp-crumb { font-size: 12px; color: var(--tp-muted); padding: 18px 0 0; }
.tp-crumb a { color: var(--tp-muted); }
.tp-crumb b { color: var(--tp-ink); }
.tp-crumb span { margin: 0 6px; }

.tp-shop__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	padding: 14px 0 22px;
	border-bottom: 1px solid var(--tp-line);
	gap: 20px;
	flex-wrap: wrap;
}
.tp-shop__head h1 { font-size: 29px; letter-spacing: -1px; }
.tp-shop__count { font-size: 13px; color: var(--tp-muted); margin: 6px 0 0; }
.tp-shop__count b { color: var(--tp-ink); }

.tp-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.tp-chip {
	background: var(--tp-acc-soft);
	color: var(--tp-acc);
	border-radius: 999px;
	padding: 6px 11px;
	font-size: 11.5px;
	font-weight: 600;
}
.tp-chip b { font-weight: 700; }
.tp-chip--reset { background: #f0f3f5; color: var(--tp-muted); }

.tp-shop__layout {
	display: grid;
	grid-template-columns: 268px 1fr;
	gap: 34px;
	padding: 26px 0 70px;
}

.tp-filter { border-bottom: 1px solid var(--tp-line); padding: 18px 0; }
.tp-filter:first-child { padding-top: 0; }
.tp-filter h4 {
	font-size: 11.5px;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--tp-muted);
	margin-bottom: 12px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.tp-filter h4 span { color: #a9b4bd; }
.tp-filter ul { list-style: none; margin: 0; padding: 0; }
.tp-filter li { margin: 0; }

.tp-check {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 6px 0;
	color: #3c464e;
	font-size: 13px;
}
.tp-check i {
	width: 15px;
	height: 15px;
	border: 1.5px solid #c3cdd4;
	border-radius: 3px;
	flex: none;
	display: block;
}
.tp-check.is-on i {
	background: var(--tp-acc);
	border-color: var(--tp-acc);
	position: relative;
}
.tp-check.is-on i::after {
	content: "✓";
	position: absolute;
	inset: 0;
	color: #fff;
	font-size: 10px;
	display: grid;
	place-items: center;
	font-style: normal;
}
.tp-check__count { margin-left: auto; color: #a9b4bd; font-size: 11.5px; }

.tp-price { display: flex; gap: 8px; flex-wrap: wrap; margin: 0; }
.tp-price input {
	width: calc(50% - 4px);
	border: 1px solid var(--tp-line);
	border-radius: 5px;
	padding: 8px 10px;
	font-size: 12.5px;
	outline: none;
	margin: 0;
}
.tp-price button {
	width: 100%;
	background: #fff;
	border: 1px solid var(--tp-acc);
	color: var(--tp-acc);
	border-radius: 5px;
	padding: 8px;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}

.tp-toolbar {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 0 0 18px;
	border-bottom: 1px solid var(--tp-line);
	font-size: 12.5px;
	color: var(--tp-muted);
}
.tp-toolbar__count { font-weight: 700; color: var(--tp-ink); }
.tp-toolbar__sort { margin-left: auto; display: flex; gap: 10px; align-items: center; }
.tp-toolbar__sort form.woocommerce-ordering { margin: 0; }
.tp-toolbar__sort select {
	border: 1px solid var(--tp-line);
	border-radius: 6px;
	padding: 8px 12px;
	font-size: 12.5px;
	background: #fff;
	height: auto;
	margin: 0;
}

.tp-shop .tp-grid {
	grid-template-columns: repeat(3, 1fr);
	padding-top: 20px;
}

.tp-shop .woocommerce-pagination { padding-top: 34px; text-align: center; }
.tp-shop .woocommerce-pagination ul {
	display: inline-flex;
	gap: 6px;
	border: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}
.tp-shop .woocommerce-pagination ul li {
	border: 1px solid var(--tp-line);
	border-radius: 6px;
	margin: 0;
	overflow: hidden;
}
.tp-shop .woocommerce-pagination ul li a,
.tp-shop .woocommerce-pagination ul li span {
	padding: 9px 14px;
	font-size: 12.5px;
	font-weight: 600;
	display: block;
}
.tp-shop .woocommerce-pagination ul li span.current {
	background: var(--tp-ink);
	color: #fff;
	border-color: var(--tp-ink);
}

.tp-empty {
	border: 1px dashed var(--tp-line);
	border-radius: 12px;
	padding: 60px 30px;
	text-align: center;
	margin-top: 24px;
}
.tp-empty h2 { font-size: 22px; letter-spacing: -0.6px; }
.tp-empty p { color: var(--tp-muted); font-size: 13.5px; margin: 10px auto 20px; max-width: 460px; }
.tp-btn {
	display: inline-block;
	background: var(--tp-acc);
	color: #fff;
	padding: 13px 24px;
	border-radius: 7px;
	font-weight: 700;
	font-size: 13px;
}

/* ---------- fiche produit ---------- */
.tp-body .single-product div.product .product_title { letter-spacing: -1px; font-size: 34px; }
.tp-body .single-product div.product p.price { color: var(--tp-ink); font-weight: 800; }
.tp-body .single-product div.product .button,
.tp-body .single-product div.product button.single_add_to_cart_button {
	background: var(--tp-ink);
	color: #fff;
	border-radius: 7px;
	font-weight: 700;
}
.tp-body .single-product div.product .woocommerce-tabs ul.tabs li a { color: var(--tp-muted); }

/* ---------- pied de page ---------- */
.tp-footer {
	background: var(--tp-soft);
	border-top: 1px solid var(--tp-line);
	padding: 44px 0 26px;
	margin-top: 46px;
}
.tp-footer__grid {
	display: grid;
	grid-template-columns: 1.7fr 1fr 1fr 1fr;
	gap: 40px;
}
.tp-footer__brand p {
	font-size: 12.5px;
	line-height: 1.9;
	color: #3c464e;
	max-width: 270px;
	margin-top: 12px;
}
.tp-footer__col h5 {
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--tp-muted);
	margin-bottom: 13px;
}
.tp-footer__col ul { list-style: none; margin: 0; padding: 0; }
.tp-footer__col li { margin: 0; }
.tp-footer__col a,
.tp-footer__col span {
	font-size: 12.5px;
	line-height: 2.1;
	color: #3c464e;
	display: inline-block;
}
.tp-footer__col a:hover { color: var(--tp-acc); }

.tp-footer__bottom {
	margin-top: 34px;
	padding-top: 18px;
	border-top: 1px solid var(--tp-line);
	display: flex;
	justify-content: space-between;
	font-size: 11.5px;
	color: var(--tp-muted);
	gap: 16px;
	flex-wrap: wrap;
}
.tp-footer__legal a { color: var(--tp-muted); }
.tp-footer__legal em { margin: 0 6px; font-style: normal; }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
	.tp-hero { grid-template-columns: 1fr; }
	.tp-hero__visual { display: none; }
	.tp-grid { grid-template-columns: repeat(3, 1fr); }
	.tp-shop__layout { grid-template-columns: 220px 1fr; gap: 24px; }
	.tp-quick { grid-template-columns: repeat(3, 1fr); }
	.tp-deals, .tp-guides { grid-template-columns: 1fr; }
	.tp-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 780px) {
	.tp-wrap { padding: 0 18px; }
	.tp-header__inner { flex-wrap: wrap; height: auto; padding: 14px 0; gap: 14px; }
	.tp-search { max-width: none; order: 3; width: 100%; }
	.tp-hero__title { font-size: 34px; letter-spacing: -1px; }
	.tp-finder { grid-template-columns: 1fr 1fr; }
	.tp-grid, .tp-quick, .tp-trust { grid-template-columns: repeat(2, 1fr); }
	.tp-shop__layout { grid-template-columns: 1fr; }
	.tp-trust__item { border-right: 0; border-bottom: 1px solid var(--tp-line); }
}

/* ==========================================================================
   Fiche produit (modèle 15)
   ========================================================================== */

.tp-product { padding-top: 18px; }

.tp-pdp {
	display: grid;
	grid-template-columns: 1.06fr 0.94fr;
	gap: 56px;
	padding: 22px 0 30px;
}

/* galerie */
.tp-gallery__main {
	height: 520px;
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, #f2f5f6, #e5ebee);
}
.tp-gallery__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.tp-ph--pdp {
	display: block;
	height: 100%;
	border-radius: 0;
	box-shadow: none;
}
.tp-ph--pdp::before {
	width: 116px;
	height: 146px;
	bottom: 18%;
	box-shadow: 0 24px 50px rgba(0, 0, 0, 0.45), 0 0 40px rgba(255, 110, 20, 0.3);
}
.tp-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	margin-top: 10px;
}
.tp-gallery__thumb {
	height: 92px;
	overflow: hidden;
	border: 1px solid var(--tp-line);
	display: block;
	background: var(--tp-soft);
}
.tp-gallery__thumb.is-on { border-color: var(--tp-acc); }
.tp-gallery__thumb-img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* colonne d'achat */
.tp-summary__cat {
	font-size: 10px;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--tp-muted);
	font-weight: 700;
}
.tp-summary__cat a { color: inherit; }

.tp-summary__title {
	font-size: 38px;
	line-height: 1.1;
	letter-spacing: -1.2px;
	margin: 10px 0 0;
}

.tp-summary__rating {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
	font-size: 12.5px;
	color: var(--tp-muted);
}
.tp-summary__rating .star-rating { margin: 0; float: none; color: var(--tp-amber); }

.tp-summary__price {
	margin-top: 16px;
	font-size: 30px;
	font-weight: 800;
	letter-spacing: -1px;
	display: flex;
	align-items: baseline;
	gap: 12px;
}
.tp-summary__price del { font-size: 16px; font-weight: 400; color: #b4a996; }
.tp-summary__price ins { text-decoration: none; }

.tp-summary__note {
	font-size: 12px;
	color: var(--tp-muted);
	margin-top: 6px;
}

.tp-summary__specs {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
}
.tp-summary__specs li {
	background: var(--tp-soft);
	border: 1px solid var(--tp-line);
	color: #4a565f;
	font-size: 11px;
	font-weight: 600;
	padding: 4px 9px;
	border-radius: 4px;
	margin: 0;
}

.tp-summary__desc {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid var(--tp-line);
	font-size: 13.5px;
	line-height: 1.8;
	color: #4e4941;
}
.tp-summary__desc p { margin: 0 0 10px; }

/* formulaire WooCommerce */
.tp-summary__buy { margin-top: 20px; }
.tp-summary__buy form.cart {
	display: flex;
	gap: 10px;
	margin: 0;
	align-items: stretch;
}
.tp-summary__buy .quantity {
	display: flex;
	align-items: center;
	border: 1px solid var(--tp-line);
	border-radius: 7px;
	overflow: hidden;
	background: #fff;
}
.tp-summary__buy .quantity .qty,
.tp-summary__buy .quantity input {
	width: 64px;
	border: 0;
	text-align: center;
	padding: 13px 0;
	font-size: 14px;
	font-weight: 700;
	margin: 0;
	background: transparent;
	outline: none;
}
.tp-summary__buy button.single_add_to_cart_button,
.tp-summary__buy .single_add_to_cart_button {
	flex: 1;
	background: var(--tp-ink);
	color: #fff;
	border: 0;
	border-radius: 7px;
	padding: 15px 20px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.8px;
	text-transform: uppercase;
	cursor: pointer;
	margin: 0;
}
.tp-summary__buy .single_add_to_cart_button:hover { background: #000; }

.tp-summary__buy .stock,
.tp-summary__buy p.stock { display: none; }

.tp-summary__stock { margin-top: 14px; }
.tp-stock-line { font-size: 12.5px; font-weight: 700; color: var(--tp-acc); }
.tp-stock-line.is-out { color: #b4703a; }

.tp-summary__trust {
	display: grid;
	gap: 8px;
	margin-top: 18px;
	font-size: 12.5px;
	color: #4e4941;
}
.tp-summary__trust-item { display: flex; gap: 9px; align-items: flex-start; }
.tp-summary__trust-item .tp-icon { width: 16px; height: 16px; color: var(--tp-acc); margin-top: 2px; }
.tp-summary__trust-item b { font-weight: 700; }

.tp-summary__pay {
	display: flex;
	gap: 7px;
	align-items: center;
	margin-top: 18px;
	font-size: 10.5px;
	color: var(--tp-muted);
	flex-wrap: wrap;
}
.tp-summary__pay b {
	border: 1px solid var(--tp-line);
	background: #fff;
	padding: 5px 8px;
	font-size: 9.5px;
	font-weight: 700;
	color: #3e3a34;
	border-radius: 3px;
}

/* description + specs */
.tp-pdp-info {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	border-top: 1px solid var(--tp-line);
	padding: 40px 0 10px;
}
.tp-pdp-info h2 {
	font-size: 20px;
	letter-spacing: -0.4px;
	margin-bottom: 14px;
}
.tp-pdp-info__desc p {
	font-size: 13.5px;
	line-height: 1.85;
	color: #4e4941;
	margin: 0 0 12px;
}

.tp-specs { width: 100%; border-collapse: collapse; font-size: 13px; }
.tp-product .tp-specs tr,
.tp-product .tp-specs tr:nth-child(2n),
.tp-product .tp-specs td,
.tp-product .tp-specs th { background: none !important; }
.tp-specs th {
	text-align: left;
	font-weight: 400;
	color: #4e4941;
	padding: 11px 0;
	border-bottom: 1px solid var(--tp-line);
}
.tp-specs td {
	text-align: right;
	font-weight: 700;
	padding: 11px 0;
	border-bottom: 1px solid var(--tp-line);
	font-variant-numeric: tabular-nums;
}
.tp-specs__note {
	font-size: 11px;
	color: var(--tp-muted);
	margin-top: 12px;
}

@media (max-width: 1100px) {
	.tp-pdp, .tp-pdp-info { grid-template-columns: 1fr; gap: 28px; }
	.tp-gallery__main { height: 380px; }
}
