/*
Theme Name: TooStickers
Theme URI: https://toostickers.fr
Description: Thème enfant de Twenty Twenty-Five pour la boutique TooStickers (stickers muraux et décoration d'intérieur). Thème à blocs : tous les textes, menus, en-tête, pied de page et sections de l'accueil se modifient dans l'éditeur du site (Apparence, Éditeur). Compatible WooCommerce.
Author: TooStickers
Template: twentytwentyfive
Version: 0.7.1
Requires at least: 6.7
Requires PHP: 8.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: toostickers
*/

/* Les couleurs, polices, tailles, espacements et ombres sont définis dans theme.json (variables --wp--preset--*).
   Ce fichier ne contient que ce que theme.json ne sait pas exprimer : mise en page des sections, cartes produit, pastilles, icônes. */

:root {
	--ts-star: #f5b301;
	--ts-max: 1360px;
	--ts-gutter: var(--wp--preset--spacing--lg);
}

/* ── Base ───────────────────────────────────────────────────────────────── */
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-site-blocks { overflow-x: clip; }
.wp-site-blocks { padding-left: 0; padding-right: 0; }
.ts-main { padding-inline: var(--ts-gutter); }
.ts-section { padding-block: var(--wp--preset--spacing--xl); }
.ts-section > * { margin-block-start: 0; }
.ts-section__head { margin-bottom: var(--wp--preset--spacing--lg); gap: var(--wp--preset--spacing--lg); }
.ts-section__intro > * { margin-block: 0; }
.ts-section__intro > * + * { margin-top: var(--wp--preset--spacing--sm); }
.ts-section__intro--center { text-align: center; max-width: 44rem; margin: 0 auto var(--wp--preset--spacing--xl); }
.ts-section__lead { color: var(--wp--preset--color--on-surface-variant); font-size: var(--wp--preset--font-size--body-lg); line-height: 1.55; }
.ts-section__tags { gap: var(--wp--preset--spacing--md); align-items: center; }
.ts-section__timer { color: var(--wp--preset--color--tertiary); font-size: var(--wp--preset--font-size--label-md); font-weight: 600; margin: 0; }
.ts-eyebrow {
	font-family: var(--wp--preset--font-family--outfit);
	font-size: var(--wp--preset--font-size--label-badge);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--secondary);
	margin: 0;
}
.ts-link-more { margin: 0; font-family: var(--wp--preset--font-family--outfit); font-weight: 600; }
.ts-link-more a { color: var(--wp--preset--color--primary-container); text-decoration: none; }
.ts-link-more a:hover { color: var(--wp--preset--color--primary); text-decoration: underline; }
.ts-pill {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	margin: 0;
	padding: 0.25rem 0.75rem;
	border-radius: var(--wp--custom--radius--full);
	background: var(--wp--preset--color--surface-container);
	color: var(--wp--preset--color--primary-container);
	font-family: var(--wp--preset--font-family--outfit);
	font-size: var(--wp--preset--font-size--label-badge);
	font-weight: 700;
	letter-spacing: 0.04em;
}
.ts-pill--promo { background: var(--wp--preset--color--tertiary); color: var(--wp--preset--color--on-primary); }
.ts-stars { color: var(--ts-star); letter-spacing: 0.1em; margin: 0; }

/* ── Icônes (SVG hébergés dans le thème, aucune police externe) ─────────── */
.ts-icon { display: inline-flex; align-items: center; gap: 0.4em; }
.ts-icon::before {
	content: "";
	flex: none;
	width: 1.25em;
	height: 1.25em;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}
.ts-icon--truck::before { -webkit-mask-image: url("assets/icons/local_shipping.svg"); mask-image: url("assets/icons/local_shipping.svg"); }
.ts-icon--check::before { -webkit-mask-image: url("assets/icons/check_circle.svg"); mask-image: url("assets/icons/check_circle.svg"); }
.ts-icon--lock::before { -webkit-mask-image: url("assets/icons/lock.svg"); mask-image: url("assets/icons/lock.svg"); }
.ts-icon--shield::before { -webkit-mask-image: url("assets/icons/verified_user.svg"); mask-image: url("assets/icons/verified_user.svg"); }
.ts-icon--flag::before { -webkit-mask-image: url("assets/icons/flag.svg"); mask-image: url("assets/icons/flag.svg"); }
.ts-icon--mail::before { -webkit-mask-image: url("assets/icons/mail.svg"); mask-image: url("assets/icons/mail.svg"); }
.ts-icon--language::before { -webkit-mask-image: url("assets/icons/language.svg"); mask-image: url("assets/icons/language.svg"); }
.ts-icon--box::before { -webkit-mask-image: url("assets/icons/inventory_2.svg"); mask-image: url("assets/icons/inventory_2.svg"); }
.ts-icon--headset::before { -webkit-mask-image: url("assets/icons/headset_mic.svg"); mask-image: url("assets/icons/headset_mic.svg"); }
.ts-icon--verified::before { -webkit-mask-image: url("assets/icons/verified.svg"); mask-image: url("assets/icons/verified.svg"); }
.ts-icon--build::before { -webkit-mask-image: url("assets/icons/build_circle.svg"); mask-image: url("assets/icons/build_circle.svg"); }
.ts-icon--timer::before { -webkit-mask-image: url("assets/icons/timer.svg"); mask-image: url("assets/icons/timer.svg"); }
.ts-icon--brush::before { -webkit-mask-image: url("assets/icons/brush.svg"); mask-image: url("assets/icons/brush.svg"); }
.ts-icon--grid::before { -webkit-mask-image: url("assets/icons/grid_view.svg"); mask-image: url("assets/icons/grid_view.svg"); }
.ts-icon--door::before { -webkit-mask-image: url("assets/icons/meeting_room.svg"); mask-image: url("assets/icons/meeting_room.svg"); }
.ts-icon--sofa::before { -webkit-mask-image: url("assets/icons/weekend.svg"); mask-image: url("assets/icons/weekend.svg"); }
.ts-icon--texture::before { -webkit-mask-image: url("assets/icons/texture.svg"); mask-image: url("assets/icons/texture.svg"); }
.ts-icon--quote::before { -webkit-mask-image: url("assets/icons/format_quote.svg"); mask-image: url("assets/icons/format_quote.svg"); }
.ts-icon--mailcheck::before { -webkit-mask-image: url("assets/icons/mark_email_read.svg"); mask-image: url("assets/icons/mark_email_read.svg"); }
.ts-icon--security::before { -webkit-mask-image: url("assets/icons/security.svg"); mask-image: url("assets/icons/security.svg"); }
/* Flèches : après le texte */
.ts-icon--arrow::before, .ts-icon--east::before, .ts-icon--chevron::before, .ts-icon--draw::before { order: 2; }
.ts-icon--arrow::before { -webkit-mask-image: url("assets/icons/arrow_forward.svg"); mask-image: url("assets/icons/arrow_forward.svg"); }
.ts-icon--east::before { -webkit-mask-image: url("assets/icons/east.svg"); mask-image: url("assets/icons/east.svg"); }
.ts-icon--chevron::before { -webkit-mask-image: url("assets/icons/chevron_right.svg"); mask-image: url("assets/icons/chevron_right.svg"); }
.ts-icon--draw::before { -webkit-mask-image: url("assets/icons/draw.svg"); mask-image: url("assets/icons/draw.svg"); }

/* Pastille ronde + icône (barre de confiance) */
.ts-icon-box { position: relative; padding-left: 3.75rem; min-height: 2.75rem; display: flex; flex-direction: column; justify-content: center; gap: 0; }
.ts-icon-box::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--wp--custom--radius--full);
	background: var(--wp--preset--color--secondary-container);
}
.ts-icon-box::after {
	content: "";
	position: absolute;
	left: 0.6875rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1.375rem;
	height: 1.375rem;
	background: var(--wp--preset--color--primary-container);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}
.ts-icon-box--flag::after { -webkit-mask-image: url("assets/icons/flag.svg"); mask-image: url("assets/icons/flag.svg"); }
.ts-icon-box--truck::after { -webkit-mask-image: url("assets/icons/local_shipping.svg"); mask-image: url("assets/icons/local_shipping.svg"); }
.ts-icon-box--lock::after { -webkit-mask-image: url("assets/icons/lock.svg"); mask-image: url("assets/icons/lock.svg"); }
.ts-icon-box--check::after { -webkit-mask-image: url("assets/icons/check_circle.svg"); mask-image: url("assets/icons/check_circle.svg"); }
.ts-icon-box--headset::after { -webkit-mask-image: url("assets/icons/headset_mic.svg"); mask-image: url("assets/icons/headset_mic.svg"); }
.ts-icon-box--shield::after { -webkit-mask-image: url("assets/icons/verified_user.svg"); mask-image: url("assets/icons/verified_user.svg"); }

/* ── En-tête ────────────────────────────────────────────────────────────── */
.wp-site-blocks > header { position: sticky; top: 0; z-index: 50; background: var(--wp--preset--color--surface-container-lowest); box-shadow: 0 1px 8px rgba(31, 78, 91, 0.06); }
.admin-bar .wp-site-blocks > header { top: var(--wp-admin--admin-bar--height, 32px); }
.ts-announce { background: var(--wp--preset--color--primary-container); color: var(--wp--preset--color--on-primary); font-size: var(--wp--preset--font-size--body-sm); padding-block: 0.5rem; }
.ts-announce p, .ts-announce a { margin: 0; color: inherit; text-decoration: none; }
.ts-announce__inner, .ts-masthead__inner, .ts-navbar { max-width: var(--ts-max); margin-inline: auto; padding-inline: var(--ts-gutter); width: 100%; box-sizing: border-box; }
.ts-announce__inner { gap: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--lg); }
.ts-announce__links { gap: var(--wp--preset--spacing--lg); }
.ts-masthead { background: var(--wp--preset--color--surface-container-lowest); }
.ts-masthead__inner { padding-block: 0.875rem; gap: var(--wp--preset--spacing--lg); }
.ts-brand { gap: 0.625rem; align-items: center; }
.ts-brand .wp-block-site-title, .ts-footer__brand { margin: 0; font-family: var(--wp--preset--font-family--outfit); font-size: 1.625rem; font-weight: 700; letter-spacing: -0.02em; line-height: 1; }
.ts-brand .wp-block-site-title a { color: var(--wp--preset--color--primary); text-decoration: none; }
/* Logo typographique (SVG) */
.ts-logo { display: inline-block; line-height: 0; text-decoration: none; }
.ts-logo img { display: block; width: 11rem; height: auto; max-width: 100%; }
.ts-logo--clair img { width: 12rem; }
.ts-brand .wp-block-html, .ts-footer__main .wp-block-html { margin: 0; }
.ts-search { flex: 1 1 24rem; max-width: 44rem; }
.ts-search .wp-block-search__inside-wrapper { background: var(--wp--preset--color--surface-container-low); border: 1px solid var(--wp--preset--color--surface-container-high); border-radius: var(--wp--custom--radius--full); padding: 0.1875rem; }
.ts-search .wp-block-search__input { border: 0; background: transparent; padding: 0.5rem 1rem; font-size: var(--wp--preset--font-size--body-md); outline: none; }
.ts-search .wp-block-search__button { background: var(--wp--preset--color--primary-container); color: var(--wp--preset--color--on-primary); border: 0; border-radius: var(--wp--custom--radius--full); padding: 0.5rem 0.875rem; margin: 0; }
.ts-actions { gap: var(--wp--preset--spacing--lg); align-items: center; }
.ts-actions .wc-block-customer-account, .ts-actions .wc-block-mini-cart__button { color: var(--wp--preset--color--primary); }
.ts-actions .wc-block-customer-account__account-link { color: var(--wp--preset--color--primary); text-decoration: none; font-weight: 600; }
.ts-navbar { border-top: 1px solid var(--wp--preset--color--surface-container); padding-block: 0.25rem; }
.ts-nav { font-family: var(--wp--preset--font-family--outfit); font-size: var(--wp--preset--font-size--label-md); font-weight: 500; }
.ts-nav .wp-block-navigation__container { flex-wrap: nowrap; gap: 0; overflow-x: auto; scrollbar-width: none; }
.ts-nav .wp-block-navigation-item__content { white-space: nowrap; color: var(--wp--preset--color--primary); padding: 0.5rem 0.625rem; border-radius: var(--wp--custom--radius--md); text-decoration: none; }
.ts-nav .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--secondary-container); }
.ts-nav .ts-nav__promo .wp-block-navigation-item__content { color: var(--wp--preset--color--tertiary); font-weight: 600; }
.ts-nav .ts-nav__promo .wp-block-navigation-item__content::before { content: "●"; font-size: 0.55em; margin-right: 0.4em; vertical-align: 0.2em; }

/* ── Bannière ───────────────────────────────────────────────────────────── */
.ts-hero { padding-block: var(--wp--preset--spacing--md); }
.ts-hero__stage { position: relative; min-height: 32rem; border-radius: var(--wp--custom--radius--xxl); overflow: hidden; display: flex; align-items: center; }
.ts-bg { position: absolute; inset: 0; margin: 0; z-index: 0; }
.ts-bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ts-hero__stage::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(0, 55, 67, 0.88) 0%, rgba(31, 78, 91, 0.55) 48%, rgba(31, 78, 91, 0) 100%); }
.ts-hero__card {
	position: relative;
	z-index: 2;
	max-width: 38rem;
	margin: var(--wp--preset--spacing--xl);
	padding: var(--wp--preset--spacing--xl);
	border-radius: var(--wp--custom--radius--xxl);
	background: rgba(255, 255, 255, 0.1);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: var(--wp--preset--color--on-primary);
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--md);
}
.ts-hero__card > * { margin: 0; }
.ts-hero__card .ts-pill { background: rgba(255, 255, 255, 0.16); color: var(--wp--preset--color--on-primary); }
.ts-hero__title { color: var(--wp--preset--color--on-primary); font-size: clamp(2rem, 3.4vw, 3rem); }
.ts-hero__text { color: var(--wp--preset--color--inverse-on-surface); font-size: var(--wp--preset--font-size--body-lg); }
.ts-hero__ctas { gap: var(--wp--preset--spacing--md); }
.ts-btn--aqua .wp-block-button__link { background: var(--wp--preset--color--secondary-container); color: var(--wp--preset--color--primary); }
.ts-btn--aqua .wp-block-button__link:hover { background: var(--wp--preset--color--secondary-fixed); color: var(--wp--preset--color--primary); }
.ts-btn--ghost .wp-block-button__link { background: transparent; color: var(--wp--preset--color--on-primary); border: 2px solid rgba(255, 255, 255, 0.55); }
.ts-btn--ghost .wp-block-button__link:hover { background: rgba(255, 255, 255, 0.14); }
.ts-hero__proof { gap: var(--wp--preset--spacing--sm); align-items: center; font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--inverse-on-surface); }
.ts-hero__proof p { margin: 0; }

/* ── Barre de confiance ─────────────────────────────────────────────────── */
.ts-trust { padding-block: var(--wp--preset--spacing--lg); }
.ts-trust__cols { margin: 0; gap: var(--wp--preset--spacing--lg); padding: var(--wp--preset--spacing--lg); background: var(--wp--preset--color--surface-container-lowest); border: 1px solid var(--wp--preset--color--surface-container); border-radius: var(--wp--custom--radius--xl); box-shadow: var(--wp--preset--shadow--card); }
.ts-trust__title { margin: 0; font-family: var(--wp--preset--font-family--outfit); font-weight: 600; font-size: var(--wp--preset--font-size--label-lg); color: var(--wp--preset--color--primary); }
.ts-trust__text { margin: 0; font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--on-surface-variant); }

/* ── Cartes produit (blocs WooCommerce « Collection de produits ») ──────── */
.ts-products { --ts-cols: 4; }
.ts-products--new { --ts-cols: 3; }
.ts-products ul.wc-block-product-template { display: grid; grid-template-columns: repeat(var(--ts-cols), minmax(0, 1fr)); gap: var(--wp--preset--spacing--lg); padding: 0; margin: 0; list-style: none; }
.ts-products ul.wc-block-product-template > li { margin: 0; width: auto; max-width: none; }
.ts-products .wc-block-product { position: relative; display: flex; flex-direction: column; gap: 0.375rem; background: var(--wp--preset--color--surface-container-lowest); border-radius: var(--wp--custom--radius--xl); box-shadow: var(--wp--preset--shadow--card); padding: 0.75rem 0.75rem 1rem; transition: box-shadow 0.2s ease, transform 0.2s ease; }
.ts-products .wc-block-product:hover { box-shadow: var(--wp--preset--shadow--hover); transform: translateY(-2px); }
.ts-products .wc-block-components-product-image, .ts-products .wc-block-components-product-image a { display: block; border-radius: var(--wp--custom--radius--lg); overflow: hidden; background: var(--wp--preset--color--surface-container-low); margin: 0; }
.ts-products .wc-block-components-product-image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.ts-products .wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.04); }
.ts-products .wc-block-components-product-sale-badge { position: absolute; top: 0.5rem; left: 0.5rem; right: auto; margin: 0; padding: 0.2rem 0.65rem; background: var(--wp--preset--color--tertiary); color: var(--wp--preset--color--on-primary); border: 0; border-radius: var(--wp--custom--radius--full); font-family: var(--wp--preset--font-family--outfit); font-size: var(--wp--preset--font-size--label-badge); font-weight: 700; letter-spacing: 0.04em; text-transform: none; z-index: 2; }
.ts-card__cat { margin: 0.5rem 0 0; font-size: var(--wp--preset--font-size--label-badge); font-weight: 600; letter-spacing: 0.03em; color: var(--wp--preset--color--on-surface-variant); }
.ts-card__cat a { color: inherit; text-decoration: none; }
.ts-card__cat a:not(:first-of-type) { display: none; } /* une seule catégorie sur la carte */
.ts-card__cat a[href*="stickers-promos"], .ts-single__cat a[href*="stickers-promos"] { display: none; } /* la catégorie « Promos » n'est pas une étiquette de produit */
.ts-products .wp-block-post-title { margin: 0; font-size: var(--wp--preset--font-size--label-lg); line-height: 1.3; }
.ts-products .wp-block-post-title a { color: var(--wp--preset--color--primary); text-decoration: none; }
.ts-products .wc-block-components-product-rating { margin: 0; font-size: var(--wp--preset--font-size--body-sm); }
.ts-card__excerpt { margin: 0; font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--on-surface-variant); }
.ts-card__buy { margin-top: auto; padding-top: 0.5rem; align-items: center; }
.ts-card__buy > * { margin: 0; }
.ts-card__from-label { margin: 0; font-size: var(--wp--preset--font-size--label-badge); color: var(--wp--preset--color--on-surface-variant); }
.ts-products .wc-block-components-product-price { font-family: var(--wp--preset--font-family--outfit); font-variant-numeric: tabular-nums; font-weight: 700; font-size: var(--wp--preset--font-size--body-lg); color: var(--wp--preset--color--primary-container); margin: 0; }
.ts-products .wc-block-components-product-price del { display: block; color: var(--wp--preset--color--outline); font-size: var(--wp--preset--font-size--body-sm); font-weight: 400; margin: 0; }
.ts-products .wc-block-components-product-price ins { text-decoration: none; }
.ts-products .wp-block-button, .ts-products .wc-block-components-product-button { margin: 0; }
.ts-products .wp-block-button__link { font-size: var(--wp--preset--font-size--label-md); padding: 0.5rem 1rem; }
/* Promotions : bouton compact (icône panier) */
.ts-products--promo .wc-block-components-product-button { flex: 0 0 2.5rem; width: 2.5rem; }
.ts-products--promo .wc-block-components-product-button__button { width: 100%; min-width: 2.5rem; }
.ts-products--promo .wp-block-button__link { position: relative; width: 2.5rem; height: 2.5rem; padding: 0; font-size: 0; line-height: 0; border-radius: var(--wp--custom--radius--md); }
.ts-products--promo .wp-block-button__link::before { content: ""; position: absolute; inset: 0; margin: auto; width: 1.375rem; height: 1.375rem; background: var(--wp--preset--color--on-primary); -webkit-mask: url("assets/icons/add_shopping_cart.svg") center / contain no-repeat; mask: url("assets/icons/add_shopping_cart.svg") center / contain no-repeat; }
/* Nouveautés : étiquette « Nouveau » (texte modifiable dans l'éditeur) */
.ts-badge-new { position: absolute; top: 1.25rem; right: 1.25rem; z-index: 3; margin: 0; padding: 0.2rem 0.65rem; border-radius: var(--wp--custom--radius--full); background: var(--wp--preset--color--surface-container-lowest); color: var(--wp--preset--color--primary-container); font-family: var(--wp--preset--font-family--outfit); font-size: var(--wp--preset--font-size--label-badge); font-weight: 700; box-shadow: var(--wp--preset--shadow--card); }

/* ── Grille « Un sticker, une ambiance » ───────────────────────────────── */
.ts-bento { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--wp--preset--spacing--lg); }
.ts-bento__card { position: relative; min-height: 21rem; border-radius: var(--wp--custom--radius--xxl); overflow: hidden; display: flex; align-items: flex-end; color: var(--wp--preset--color--on-primary); box-shadow: var(--wp--preset--shadow--card); }
.ts-bento__card::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(0, 55, 67, 0.88) 0%, rgba(0, 55, 67, 0.25) 55%, rgba(0, 55, 67, 0) 100%); }
.ts-bento__card--a { grid-column: span 7; min-height: 26rem; }
.ts-bento__card--b { grid-column: span 5; min-height: 26rem; }
.ts-bento__card--c, .ts-bento__card--d, .ts-bento__card--e { grid-column: span 4; }
.ts-bento__body { position: relative; z-index: 2; padding: var(--wp--preset--spacing--lg); display: flex; flex-direction: column; gap: 0.5rem; }
.ts-bento__body > * { margin: 0; }
.ts-bento__body h3 { color: var(--wp--preset--color--on-primary); }
.ts-bento__body p { color: var(--wp--preset--color--inverse-on-surface); }
.ts-bento__body .ts-pill { background: rgba(255, 255, 255, 0.2); color: var(--wp--preset--color--on-primary); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.ts-bento__body .ts-link-more a { color: var(--wp--preset--color--on-primary); }

/* ── Navigation rapide et newsletter ───────────────────────────────────── */
.ts-quick__box { background: var(--wp--preset--color--surface-container-lowest); border: 1px solid var(--wp--preset--color--surface-container); border-radius: var(--wp--custom--radius--xxl); padding: var(--wp--preset--spacing--xl); display: flex; flex-direction: column; gap: var(--wp--preset--spacing--lg); }
.ts-quick__pills { gap: var(--wp--preset--spacing--sm); }
.ts-chip { margin: 0; padding: 0.6rem 1.1rem; border-radius: var(--wp--custom--radius--full); background: var(--wp--preset--color--surface-container-low); color: var(--wp--preset--color--primary); font-family: var(--wp--preset--font-family--outfit); font-size: var(--wp--preset--font-size--label-md); font-weight: 500; transition: background 0.2s ease; }
.ts-chip:hover { background: var(--wp--preset--color--secondary-container); }
.ts-chip a { color: inherit; text-decoration: none; }
.ts-newsletter__box { background: var(--wp--preset--color--secondary-container); border-radius: var(--wp--custom--radius--xxl); padding: var(--wp--preset--spacing--section) var(--wp--preset--spacing--xl); text-align: center; display: flex; flex-direction: column; align-items: center; gap: var(--wp--preset--spacing--md); }
.ts-newsletter__box > * { margin: 0; }
.ts-newsletter__box .ts-eyebrow { color: var(--wp--preset--color--secondary); }
.ts-newsletter__text { max-width: 38rem; font-size: var(--wp--preset--font-size--body-lg); color: var(--wp--preset--color--on-surface); }
.ts-newsletter__legal { font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--on-surface-variant); }

/* ── Pied de page ───────────────────────────────────────────────────────── */
.ts-footer { background: var(--wp--preset--color--inverse-surface); color: var(--wp--preset--color--inverse-on-surface); margin-top: var(--wp--preset--spacing--xl); }
.ts-footer a { color: inherit; text-decoration: none; }
.ts-footer a:hover { color: var(--wp--preset--color--on-primary); text-decoration: underline; }
.ts-footer__strip, .ts-footer__main, .ts-footer__legal { max-width: var(--ts-max); margin-inline: auto; padding-inline: var(--ts-gutter); width: 100%; box-sizing: border-box; }
.ts-footer__strip { padding-block: var(--wp--preset--spacing--xl); border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.ts-footer__main { padding-block: var(--wp--preset--spacing--xl); }
.ts-footer__strip-cols, .ts-footer__main-cols { margin: 0; gap: var(--wp--preset--spacing--xl); }
.ts-footer__label { margin: 0 0 0.5rem; font-family: var(--wp--preset--font-family--outfit); font-size: var(--wp--preset--font-size--label-badge); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--primary-fixed-dim); }
.ts-footer__chips { margin: 0 0 0.25rem; font-size: var(--wp--preset--font-size--body-sm); }
.ts-footer__brand a { color: var(--wp--preset--color--on-primary); }
.ts-footer__about { font-size: var(--wp--preset--font-size--body-sm); line-height: 1.7; color: var(--wp--preset--color--inverse-on-surface); opacity: 0.85; }
.ts-footer__badges { gap: var(--wp--preset--spacing--md); }
.ts-footer__badges p { margin: 0; font-size: var(--wp--preset--font-size--body-sm); }
.ts-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; font-size: var(--wp--preset--font-size--body-sm); }
.ts-footer__legal { padding-block: var(--wp--preset--spacing--lg); border-top: 1px solid rgba(255, 255, 255, 0.1); font-size: var(--wp--preset--font-size--body-sm); gap: var(--wp--preset--spacing--sm); }
.ts-footer__legal p { margin: 0; opacity: 0.7; }


/* ── Fiche produit ──────────────────────────────────────────────────────── */
.ts-single { padding-top: var(--wp--preset--spacing--sm); }
.ts-breadcrumbs { margin-block: var(--wp--preset--spacing--md); font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--on-surface-variant); }
.ts-breadcrumbs a { color: inherit; text-decoration: none; }
.ts-breadcrumbs a:hover { color: var(--wp--preset--color--primary); text-decoration: underline; }
.ts-single__cols { gap: var(--wp--preset--spacing--xl); margin: 0 0 var(--wp--preset--spacing--xl); align-items: flex-start; }
.ts-single__media { position: sticky; top: 11rem; }
.admin-bar .ts-single__media { top: 13rem; }
.ts-single .wp-block-woocommerce-product-image-gallery { max-width: none; width: 100%; }
.ts-single .woocommerce-product-gallery, .woocommerce div.product div.images.woocommerce-product-gallery { position: relative; margin: 0; width: 100% !important; max-width: none; float: none !important; }
.ts-single .woocommerce-product-gallery__wrapper { margin: 0; border-radius: var(--wp--custom--radius--xxl); overflow: hidden; background: var(--wp--preset--color--surface-container-low); box-shadow: var(--wp--preset--shadow--card); }
.ts-single .woocommerce-product-gallery__wrapper:not(.flex-viewport *) { aspect-ratio: 1 / 1; }
.ts-single .woocommerce-product-gallery .flex-viewport { height: auto !important; aspect-ratio: 1 / 1; border-radius: var(--wp--custom--radius--xxl); overflow: hidden; }
.ts-single .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__wrapper { height: 100%; }
.ts-single .woocommerce-product-gallery__image { height: 100%; overflow: hidden; }
.ts-single .woocommerce-product-gallery__image > a { display: block; height: 100%; }
.ts-single .woocommerce-product-gallery__image img:not(.zoomImg) { display: block; width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.ts-single .woocommerce-product-gallery .flex-control-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; list-style: none; padding: 0; margin: 0.75rem 0 0; }
.ts-single .woocommerce-product-gallery .flex-control-thumbs li { margin: 0; width: auto; float: none; }
.ts-single .woocommerce-product-gallery .flex-control-thumbs img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--wp--custom--radius--lg); cursor: pointer; opacity: 0.7; transition: opacity 0.2s ease; }
.ts-single .woocommerce-product-gallery .flex-control-thumbs img.flex-active, .ts-single .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; outline: 2px solid var(--wp--preset--color--primary-container); outline-offset: 2px; }
.ts-single span.onsale, .woocommerce span.onsale { position: absolute; top: 1rem; left: 1rem; right: auto; z-index: 5; min-width: 0; min-height: 0; margin: 0; padding: 0.3rem 0.8rem; line-height: 1.2; background: var(--wp--preset--color--tertiary); color: var(--wp--preset--color--on-primary); border-radius: var(--wp--custom--radius--full); font-family: var(--wp--preset--font-family--outfit); font-size: var(--wp--preset--font-size--label-md); font-weight: 700; }
.ts-single__assure { gap: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--lg); margin-top: var(--wp--preset--spacing--md); padding: var(--wp--preset--spacing--md); background: var(--wp--preset--color--surface-container-low); border-radius: var(--wp--custom--radius--xl); font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--on-surface-variant); }
.ts-single__assure p, .ts-single__meta p, .ts-pricebox__notes p, .ts-single__trust p { margin: 0; }
.ts-single__buy > * { margin-block-start: 0; }
.ts-single__buy > * + * { margin-block-start: var(--wp--preset--spacing--md); }
.ts-single__cat { margin: 0; }
.ts-single__cat a { color: inherit; text-decoration: none; }
.ts-single__cat a:not(:first-of-type) { display: none; }
.ts-single__buy h1 { font-size: var(--wp--preset--font-size--headline-lg); line-height: 1.2; letter-spacing: -0.015em; margin-block: 0.25rem 0; }
.ts-single__meta { gap: var(--wp--preset--spacing--md); align-items: center; font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--on-surface-variant); }
.ts-single__meta .wc-block-components-product-stock-indicator { margin: 0; color: var(--wp--preset--color--secondary); font-weight: 600; }
.ts-pricebox { background: var(--wp--preset--color--surface-container-lowest); border: 1px solid var(--wp--preset--color--surface-container); border-radius: var(--wp--custom--radius--xl); padding: var(--wp--preset--spacing--lg); box-shadow: var(--wp--preset--shadow--card); display: flex; flex-direction: column; gap: var(--wp--preset--spacing--sm); }
.ts-pricebox .wc-block-components-product-price { margin: 0; font-family: var(--wp--preset--font-family--outfit); font-variant-numeric: tabular-nums; font-weight: 700; font-size: 2.25rem; line-height: 1.1; color: var(--wp--preset--color--primary-container); display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.75rem; }
.ts-pricebox .wc-block-components-product-price del { order: 2; font-size: 1.125rem; font-weight: 400; color: var(--wp--preset--color--outline); }
.ts-pricebox .wc-block-components-product-price ins { order: 1; text-decoration: none; }
.ts-pricebox__notes { gap: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--lg); font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--on-surface-variant); }
.ts-single__excerpt { margin: 0; color: var(--wp--preset--color--on-surface-variant); }
.ts-single__form form.cart { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--md); margin: 0; }
.ts-single__form table.variations { width: 100%; border-collapse: separate; border-spacing: 0 0.75rem; margin: 0; }
.ts-single__form table.variations, .ts-single__form table.variations tbody, .ts-single__form table.variations tr { display: block; width: 100%; }
.ts-single__form table.variations th, .ts-single__form table.variations td { display: block; width: 100%; padding: 0; text-align: left; }
.ts-single__form .woocommerce-variation-availability { display: none; }
.ts-single__form table.variations label { font-family: var(--wp--preset--font-family--outfit); font-weight: 600; font-size: var(--wp--preset--font-size--label-md); color: var(--wp--preset--color--primary); }
.ts-single__form select, .ts-single__form .qty { width: 100%; padding: 0.75rem 1rem; border: 1px solid var(--wp--preset--color--outline-variant); border-radius: var(--wp--custom--radius--md); background-color: var(--wp--preset--color--surface-container-lowest); color: var(--wp--preset--color--on-surface); font-family: inherit; font-size: var(--wp--preset--font-size--body-md); }
.ts-single__form select:focus, .ts-single__form .qty:focus { outline: 2px solid var(--wp--preset--color--secondary-container); border-color: var(--wp--preset--color--primary-container); }
.ts-single__form .reset_variations { display: inline-block; margin-top: 0.5rem; font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--secondary); }
.ts-single__form .woocommerce-variation-price .price { font-family: var(--wp--preset--font-family--outfit); font-weight: 700; color: var(--wp--preset--color--primary-container); }
.ts-single__form .woocommerce-variation-add-to-cart, .ts-single__form form.cart:not(.variations_form) { display: flex; flex-direction: row; gap: var(--wp--preset--spacing--md); align-items: center; flex-wrap: wrap; }
.ts-single__form .quantity { flex: 0 0 6rem; margin: 0; }
.ts-single__form .quantity .qty { height: 3rem; padding-block: 0; text-align: center; }
.ts-single__form .single_add_to_cart_button { flex: 1 1 12rem; height: 3rem; min-height: 0; margin: 0; }
.ts-single__trust { gap: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--lg); font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--on-surface-variant); }
/* Options de variation en pastilles (le script assets/js/variation-pills.js garde la liste d'origine cachée) */
.ts-select-hidden { position: absolute !important; left: 0 !important; top: 0 !important; width: 1px !important; height: 1px !important; min-width: 0 !important; margin: -1px !important; padding: 0 !important; border: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; opacity: 0; pointer-events: none; }
.ts-single__form table.variations td.value { position: relative; }
.ts-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.5rem; }
.ts-pill-btn { appearance: none; cursor: pointer; padding: 0.6rem 1rem; border: 1.5px solid var(--wp--preset--color--surface-container); border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--surface-container-lowest); color: var(--wp--preset--color--primary); font-family: var(--wp--preset--font-family--outfit); font-size: var(--wp--preset--font-size--label-md); font-weight: 500; line-height: 1.2; transition: border-color 0.15s ease, background-color 0.15s ease; }
.ts-pill-btn:hover:not(:disabled) { border-color: var(--wp--preset--color--primary-container); }
.ts-pill-btn:focus-visible { outline: 2px solid var(--wp--preset--color--primary-container); outline-offset: 2px; }
.ts-pill-btn[aria-checked="true"] { border-color: var(--wp--preset--color--primary-container); background: var(--wp--preset--color--secondary-container); }
.ts-pill-btn:disabled { opacity: 0.4; cursor: not-allowed; text-decoration: line-through; }
/* Options de personnalisation (champs texte, police, couleur, sens, aperçu) */
.ts-opts { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--md); flex: 1 1 100%; width: 100%; margin: 0 0 var(--wp--preset--spacing--md); }
.ts-opt { position: relative; margin: 0; padding: 0; border: 0; min-width: 0; }
.ts-opt label, .ts-opt legend { display: block; padding: 0; margin: 0 0 0.5rem; font-family: var(--wp--preset--font-family--outfit); font-weight: 600; font-size: var(--wp--preset--font-size--label-md); color: var(--wp--preset--color--primary); }
.ts-opt__req { color: var(--wp--preset--color--tertiary-container); }
.ts-opt__chosen { font-weight: 400; color: var(--wp--preset--color--on-surface-variant); }
.ts-opt--text input[type="text"] { width: 100%; box-sizing: border-box; padding: 0.75rem 1rem; padding-right: 4.5rem; border: 1px solid var(--wp--preset--color--outline-variant); border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--surface-container-lowest); color: var(--wp--preset--color--on-surface); font-family: inherit; font-size: var(--wp--preset--font-size--body-md); }
.ts-opt--text input[type="text"]:focus { outline: 2px solid var(--wp--preset--color--secondary-container); border-color: var(--wp--preset--color--primary-container); }
.ts-opt__count { position: absolute; right: 0.875rem; bottom: 0.8rem; font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--outline); pointer-events: none; font-variant-numeric: tabular-nums; }
.ts-opt--font select { width: 100%; }
.ts-swatches { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.ts-swatch { position: relative; display: block; margin: 0 !important; cursor: pointer; }
.ts-swatch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.ts-swatch__dot { display: block; width: 2rem; height: 2rem; border-radius: var(--wp--custom--radius--md); border: 1px solid var(--wp--preset--color--outline-variant); box-sizing: border-box; transition: transform 0.12s ease; }
.ts-swatch:hover .ts-swatch__dot { transform: scale(1.08); }
.ts-swatch input:checked + .ts-swatch__dot { outline: 2px solid var(--wp--preset--color--primary-container); outline-offset: 2px; }
.ts-swatch input:focus-visible + .ts-swatch__dot { outline: 2px solid var(--wp--preset--color--primary-container); outline-offset: 3px; }
.ts-flip-choices { display: flex; gap: 0.5rem; }
.ts-flip-choice { position: relative; display: block; margin: 0 !important; cursor: pointer; }
.ts-flip-choice input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.ts-flip-choice span { display: block; padding: 0.6rem 1rem; border: 1.5px solid var(--wp--preset--color--surface-container); border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--surface-container-lowest); color: var(--wp--preset--color--primary); font-family: var(--wp--preset--font-family--outfit); font-size: var(--wp--preset--font-size--label-md); font-weight: 500; line-height: 1.2; }
.ts-flip-choice input:checked + span { border-color: var(--wp--preset--color--primary-container); background: var(--wp--preset--color--secondary-container); }
.ts-flip-choice input:focus-visible + span { outline: 2px solid var(--wp--preset--color--primary-container); outline-offset: 2px; }
.ts-preview { border: 1px solid var(--wp--preset--color--surface-container); border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--surface-container-low); overflow: hidden; }
.ts-preview.is-dark { background: var(--wp--preset--color--inverse-surface); }
.ts-preview__label { margin: 0; padding: 0.5rem 0.875rem 0; font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--on-surface-variant); }
.ts-preview.is-dark .ts-preview__label { color: var(--wp--preset--color--inverse-on-surface); }
.ts-preview__stage { padding: 0.5rem 0.875rem 1rem; text-align: center; overflow-wrap: anywhere; }
.ts-preview__line { font-size: 2rem; line-height: 1.25; color: var(--wp--preset--color--on-surface); }
.ts-preview__line.is-empty { opacity: 0.35; font-size: 1.25rem; }
.ts-preview.is-dark .ts-preview__line.is-empty { color: var(--wp--preset--color--inverse-on-surface); }
.ts-fontpicker { position: relative; }
.ts-fontpicker__trigger { display: block; width: 100%; text-align: left; cursor: pointer; padding: 0.7rem 2.5rem 0.7rem 1rem; border: 1px solid var(--wp--preset--color--outline-variant); border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--surface-container-lowest); color: var(--wp--preset--color--on-surface); font-size: 1.125rem; line-height: 1.3; position: relative; }
.ts-fontpicker__trigger::after { content: ""; position: absolute; right: 1rem; top: 50%; width: 0.5rem; height: 0.5rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-70%) rotate(45deg); }
.ts-fontpicker__trigger:focus-visible { outline: 2px solid var(--wp--preset--color--primary-container); outline-offset: 2px; }
.ts-fontpicker__panel { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 0.25rem); background: var(--wp--preset--color--surface-container-lowest); border: 1px solid var(--wp--preset--color--outline-variant); border-radius: var(--wp--custom--radius--md); box-shadow: var(--wp--preset--shadow--card); overflow: hidden; }
.ts-fontpicker__tabs { display: flex; background: var(--wp--preset--color--primary-container); }
.ts-fontpicker__tab { flex: 1 1 0; min-width: 0; margin: 0; cursor: pointer; padding: 0.7rem 0.25rem; border: 0; border-radius: 0; background: transparent; color: var(--wp--preset--color--on-primary); font-family: var(--wp--preset--font-family--outfit); font-size: var(--wp--preset--font-size--label-md); font-weight: 600; }
.ts-fontpicker__tab[aria-selected="true"] { background: var(--wp--preset--color--primary); }
.ts-fontpicker__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 18rem; overflow-y: auto; }
.ts-fontpicker__grid[hidden] { display: none; }
.ts-fontpicker__item { margin: 0; cursor: pointer; padding: 0.7rem 0.75rem; border: 0; border-bottom: 1px solid var(--wp--preset--color--surface-container); border-radius: 0; background: transparent; text-align: left; color: var(--wp--preset--color--on-surface); font-size: 1.25rem; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ts-fontpicker__item:hover { background: var(--wp--preset--color--secondary-container); }
.ts-fontpicker__item[aria-selected="true"] { background: var(--wp--preset--color--surface-container-high); }
.ts-opt--font { position: relative; }
.ts-single__media.is-flipped .woocommerce-product-gallery__image img { transform: scaleX(-1); }
/* Onglets (Description / Informations / Avis) */
.ts-single__details { padding-block: var(--wp--preset--spacing--xl); border-top: 1px solid var(--wp--preset--color--surface-container); border-bottom: 1px solid var(--wp--preset--color--surface-container); margin-bottom: var(--wp--preset--spacing--lg); }
.ts-single__details ul.tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; padding: 0; margin: 0 0 var(--wp--preset--spacing--lg); border: 0; }
.ts-single__details ul.tabs::before, .ts-single__details ul.tabs::after { display: none; }
.ts-single__details ul.tabs li { margin: 0; padding: 0; border: 0; background: none; }
.ts-single__details ul.tabs li a { display: block; padding: 0.6rem 1.1rem; border-radius: var(--wp--custom--radius--full); background: var(--wp--preset--color--surface-container-lowest); color: var(--wp--preset--color--on-surface-variant); font-family: var(--wp--preset--font-family--outfit); font-weight: 500; text-decoration: none; }
.ts-single__details ul.tabs li.active a { background: var(--wp--preset--color--primary) !important; color: var(--wp--preset--color--on-primary) !important; box-shadow: var(--wp--preset--shadow--card); text-decoration: none !important; border: 0 !important; }
.ts-single__details .woocommerce-Tabs-panel > h2:first-child { display: none; }
.ts-single__details .woocommerce-Tabs-panel h3 { color: var(--wp--preset--color--primary); margin-top: var(--wp--preset--spacing--lg); }
.ts-single__details .woocommerce-Tabs-panel table { width: 100%; border-collapse: collapse; }
.ts-single__details .woocommerce-Tabs-panel th, .ts-single__details .woocommerce-Tabs-panel td { text-align: left; padding: 0.6rem 0.75rem; border-bottom: 1px solid var(--wp--preset--color--surface-container); font-size: var(--wp--preset--font-size--body-md); }
.ts-single__details .woocommerce-Tabs-panel th { width: 30%; font-weight: 600; color: var(--wp--preset--color--primary); }
@media (max-width: 781px) {
	.ts-single__media { position: static; }
	.ts-pricebox .wc-block-components-product-price { font-size: 1.875rem; }
}


/* ── Boutique, recherche, panier, paiement, compte, 404 ─────────────────── */
.ts-page > *, .ts-shop > *, .ts-notfound > * { margin-block-start: 0; }
.ts-page, .ts-shop { padding-block: var(--wp--preset--spacing--md) var(--wp--preset--spacing--xl); }
.ts-page > h1, .ts-shop__head h1 { font-size: var(--wp--preset--font-size--headline-lg); letter-spacing: -0.015em; margin-block: var(--wp--preset--spacing--md); }
.ts-page > h1.wp-block-post-title, .ts-page > .wp-block-post-content, .ts-page > .wc-block-store-notices { max-width: none; margin-inline: 0; }
.ts-shop__head { margin-bottom: var(--wp--preset--spacing--md); }
.ts-shop__head > * + * { margin-top: var(--wp--preset--spacing--sm); }
.ts-shop__bar { align-items: center; margin-bottom: var(--wp--preset--spacing--lg); gap: var(--wp--preset--spacing--md); font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--on-surface-variant); }
.ts-shop__bar > * { margin: 0; }
.ts-shop select.orderby, .ts-page select { padding: 0.55rem 2rem 0.55rem 0.9rem; border: 1px solid var(--wp--preset--color--outline-variant); border-radius: var(--wp--custom--radius--md); background-color: var(--wp--preset--color--surface-container-lowest); color: var(--wp--preset--color--on-surface); font-family: inherit; font-size: var(--wp--preset--font-size--body-sm); }
.ts-pagination { margin-top: var(--wp--preset--spacing--xl); gap: 0.5rem; }
.ts-pagination a, .ts-pagination span.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; padding: 0 0.75rem; border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--surface-container-lowest); border: 1px solid var(--wp--preset--color--surface-container); color: var(--wp--preset--color--primary); font-family: var(--wp--preset--font-family--outfit); font-weight: 500; text-decoration: none; }
.ts-pagination .page-numbers.current, .ts-pagination a:hover { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); border-color: var(--wp--preset--color--primary); }

/* Panier et paiement (blocs WooCommerce) */
.ts-masthead--checkout .ts-masthead__inner { padding-block: 1rem; }
.ts-masthead__secure { margin: 0; font-size: var(--wp--preset--font-size--body-sm); color: var(--wp--preset--color--on-surface-variant); }
.ts-page .wc-block-cart, .ts-page .wc-block-checkout { margin-top: var(--wp--preset--spacing--md); }
.ts-page .wc-block-components-sidebar { background: var(--wp--preset--color--surface-container-lowest); border: 1px solid var(--wp--preset--color--surface-container); border-radius: var(--wp--custom--radius--xl); box-shadow: var(--wp--preset--shadow--card); padding: var(--wp--preset--spacing--lg); box-sizing: border-box; }
.ts-page .wc-block-cart__sidebar, .ts-page .wc-block-checkout__sidebar { align-self: flex-start; }
.ts-page .wc-block-components-product-name { font-family: var(--wp--preset--font-family--outfit); font-weight: 600; color: var(--wp--preset--color--primary); text-decoration: none; }
.ts-page .wc-block-cart-item__image img, .ts-page .wc-block-components-order-summary-item__image img { border-radius: var(--wp--custom--radius--lg); }
.ts-page .wc-block-cart-items th { font-family: var(--wp--preset--font-family--outfit); font-size: var(--wp--preset--font-size--label-badge); letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--on-surface-variant); }
.ts-page .wc-block-components-totals-item__value, .ts-page .wc-block-components-product-price__value { font-family: var(--wp--preset--font-family--outfit); font-variant-numeric: tabular-nums; font-weight: 700; color: var(--wp--preset--color--primary-container); }
.ts-page .wc-block-components-button:not(.is-link), .ts-page .wc-block-cart__submit-button, .ts-page .wc-block-components-checkout-place-order-button { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); border-radius: var(--wp--custom--radius--md); font-family: var(--wp--preset--font-family--outfit); font-weight: 600; min-height: 3rem; }
.ts-page .wc-block-components-button:not(.is-link):hover { background: var(--wp--preset--color--primary-container); color: var(--wp--preset--color--on-primary); }
.ts-page .wc-block-components-text-input input, .ts-page .wc-block-components-textarea, .ts-page .wc-blocks-components-select__select, .ts-page .wc-block-components-form .wc-block-components-text-input input { border-radius: var(--wp--custom--radius--md); border-color: var(--wp--preset--color--outline-variant); }
.ts-page .wc-block-components-text-input input:focus { outline: 2px solid var(--wp--preset--color--secondary-container); border-color: var(--wp--preset--color--primary-container); box-shadow: none; }
.ts-page .wc-block-components-radio-control__option, .ts-page .wc-block-components-radio-control-accordion-option { border-radius: var(--wp--custom--radius--md); }
.ts-page .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--wp--preset--color--primary-container); }

/* Compte client (classique) */
.ts-page .woocommerce-MyAccount-navigation ul { list-style: none; display: flex; flex-direction: column; gap: 0.25rem; padding: 0; margin: 0; }
.ts-page .woocommerce-MyAccount-navigation a { display: block; padding: 0.65rem 1rem; border-radius: var(--wp--custom--radius--md); color: var(--wp--preset--color--primary); font-family: var(--wp--preset--font-family--outfit); font-weight: 500; text-decoration: none; }
.ts-page .woocommerce-MyAccount-navigation .is-active a, .ts-page .woocommerce-MyAccount-navigation a:hover { background: var(--wp--preset--color--secondary-container); }
.ts-page .woocommerce form .form-row input.input-text, .ts-page .woocommerce form .form-row textarea, .ts-page .woocommerce-form-login input, .ts-page .woocommerce-form-register input { padding: 0.75rem 1rem; border: 1px solid var(--wp--preset--color--outline-variant); border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--surface-container-lowest); font-family: inherit; font-size: var(--wp--preset--font-size--body-md); }
.ts-page .woocommerce a.button, .ts-page .woocommerce button.button, .ts-page .woocommerce input.button, .ts-page .woocommerce #respond input#submit { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); border-radius: var(--wp--custom--radius--md); padding: 0.75rem 1.5rem; font-family: var(--wp--preset--font-family--outfit); font-weight: 600; }
.ts-page .woocommerce a.button:hover, .ts-page .woocommerce button.button:hover { background: var(--wp--preset--color--primary-container); color: var(--wp--preset--color--on-primary); }
.ts-page .woocommerce table.shop_table { border-collapse: separate; border: 1px solid var(--wp--preset--color--surface-container); border-radius: var(--wp--custom--radius--lg); overflow: hidden; }

/* Page 404 */
.ts-notfound { padding-block: var(--wp--preset--spacing--section); }
.ts-notfound__box { max-width: 40rem; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: var(--wp--preset--spacing--md); }
.ts-notfound__box > * { margin: 0; }
.ts-notfound__box .ts-search { width: 100%; max-width: 30rem; }
.ts-notfound__box .is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--primary); border: 2px solid var(--wp--preset--color--primary); }

/* ── Tablette et mobile ─────────────────────────────────────────────────── */
@media (max-width: 1023px) {
	.ts-products { --ts-cols: 2; }
	.ts-products--new { --ts-cols: 2; }
	.ts-bento__card--a, .ts-bento__card--b { grid-column: span 12; min-height: 22rem; }
	.ts-bento__card--c, .ts-bento__card--d, .ts-bento__card--e { grid-column: span 6; }
	.ts-hero__card { margin: var(--wp--preset--spacing--lg); padding: var(--wp--preset--spacing--lg); }
}
@media (max-width: 781px) {
	.ts-products, .ts-products--new { --ts-cols: 1; }
	.ts-bento__card--c, .ts-bento__card--d, .ts-bento__card--e { grid-column: span 12; }
	.ts-announce__promo { display: none; }
	.ts-masthead__inner { flex-wrap: wrap; }
	.ts-search { order: 3; flex-basis: 100%; max-width: none; }
	.ts-hero__stage { min-height: 28rem; }
	.ts-trust__cols { padding: var(--wp--preset--spacing--md); }
	.ts-newsletter__box { padding: var(--wp--preset--spacing--xl) var(--wp--preset--spacing--md); }
}

/* ── En-tête mobile compact (≤599 px : seuil où le menu devient un bouton burger) ── */
.ts-searchtoggle, .ts-search__close { display: none; }
@media (min-width: 600px) {
	.ts-nav .ts-nav__mobile-only { display: none; }
}
@media (max-width: 599px) {
	/* Barre d'annonce : un seul message, centré, qui défile hors de l'écran (l'en-tête collant garde seulement la ligne principale) */
	.wp-site-blocks > header { top: -2rem; }
	.admin-bar .wp-site-blocks > header { top: calc(var(--wp-admin--admin-bar--height, 46px) - 2rem); }
	.ts-announce { box-sizing: border-box; height: 2rem; padding-block: 0; display: flex; align-items: center; font-size: var(--wp--preset--font-size--body-sm); }
	.ts-announce__inner { justify-content: center; flex-wrap: nowrap; padding-inline: 0.75rem; }
	.ts-announce__inner > p { flex: 0 0 auto; width: auto; max-width: 100%; white-space: nowrap; }
	.ts-announce__links { display: none !important; }

	/* Ligne principale : burger | logo | loupe, compte, panier (le bloc navigation est remonté par la grille) */
	.ts-masthead { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 3.5rem; padding-inline: 0.25rem; }
	.ts-masthead > * { margin-block: 0; }
	.ts-masthead__inner, .ts-navbar, .ts-nav { display: contents !important; }
	.ts-masthead__inner > *, .ts-navbar > * { margin-block: 0; }
	.ts-nav .wp-block-navigation__responsive-container-open { grid-column: 1; grid-row: 1; justify-self: start; display: flex; align-items: center; justify-content: center; min-width: 2.75rem; min-height: 2.75rem; padding: 0; margin: 0; color: var(--wp--preset--color--primary); }
	.ts-brand { grid-column: 2; grid-row: 1; justify-self: center; min-width: 0; }
	.ts-brand .wp-block-site-title { font-size: 1.375rem; white-space: nowrap; }
	.ts-logo img { width: 8.75rem; }
	.ts-actions { grid-column: 3; grid-row: 1; justify-self: end; gap: 0; }
	.ts-actions > * { margin: 0; }
	.ts-actions .wc-block-customer-account__link { display: flex; align-items: center; justify-content: center; min-width: 2.75rem; min-height: 2.75rem; padding: 0; }
	.ts-actions .wc-block-customer-account__link .label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.ts-actions .wc-block-customer-account__link svg { width: 1.5rem; height: 1.5rem; margin: 0; }
	.ts-actions .wc-block-mini-cart__button { min-width: 2.75rem; min-height: 2.75rem; padding: 0; display: flex; align-items: center; justify-content: center; }

	/* Loupe (avec JavaScript) : le champ de recherche devient un panneau sous l'en-tête */
	.ts-js .ts-searchtoggle { display: flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; padding: 0; margin: 0; border: 0; background: transparent; color: var(--wp--preset--color--primary); cursor: pointer; }
	.ts-js .ts-searchtoggle::before { content: ""; width: 1.5rem; height: 1.5rem; background-color: currentColor; -webkit-mask: url("assets/icons/search.svg") center / contain no-repeat; mask: url("assets/icons/search.svg") center / contain no-repeat; }
	.ts-js .ts-searchtoggle:focus-visible, .ts-search__close:focus-visible { outline: 2px solid var(--wp--preset--color--primary-container); outline-offset: 2px; }
	.ts-js .ts-search { display: none; position: absolute; left: 0; right: 0; top: 100%; order: 0; flex: none; width: auto; max-width: none; box-sizing: border-box; padding: 0.625rem var(--ts-gutter); background: var(--wp--preset--color--surface-container-lowest); border-top: 1px solid var(--wp--preset--color--surface-container); box-shadow: 0 8px 16px rgba(31, 78, 91, 0.12); }
	.ts-js .ts-search-open .ts-search { display: flex; align-items: center; gap: 0.5rem; }
	.ts-js .ts-search .wp-block-search__inside-wrapper { flex: 1 1 auto; min-width: 0; }
	.ts-js .ts-search .wp-block-search__input { min-width: 0; font-size: 1rem; }
	.ts-js .ts-search-open .ts-search__close { display: block; flex: none; position: relative; width: 2.75rem; height: 2.75rem; margin: 0; padding: 0; border: 0; border-radius: var(--wp--custom--radius--full); background: transparent; color: var(--wp--preset--color--primary); cursor: pointer; }
	.ts-search__close::before, .ts-search__close::after { content: ""; position: absolute; left: 50%; top: 50%; width: 1.25rem; height: 2px; margin: -1px 0 0 -0.625rem; background: currentColor; transform: rotate(45deg); }
	.ts-search__close::after { transform: rotate(-45deg); }
}

/* ── Pages (À propos, mentions légales, CGV...) ─────────────────────────── */
.ts-page .wp-block-post-content { max-width: 52rem; margin-inline: auto; }
.ts-page .wp-block-post-content h2 { margin-top: var(--wp--preset--spacing--xl); color: var(--wp--preset--color--primary); }
.ts-page .wp-block-post-content h3 { margin-top: var(--wp--preset--spacing--lg); color: var(--wp--preset--color--primary); }
.ts-page .wp-block-post-content :where(p, li) { line-height: 1.7; color: var(--wp--preset--color--on-surface-variant); }
.ts-page .wp-block-post-content a { color: var(--wp--preset--color--primary-container); }
.ts-page .wp-block-post-content :where(ul, ol) { padding-left: 1.25rem; }
.ts-todo { background: #fff3b0; color: var(--wp--preset--color--on-surface); padding: 0.05em 0.35em; border-radius: 0.25rem; font-weight: 600; }
.ts-about-lead { font-size: var(--wp--preset--font-size--body-lg); line-height: 1.6; color: var(--wp--preset--color--on-surface); }
.ts-about-values { margin-top: var(--wp--preset--spacing--lg); }
