/**
 * TOSEYA - Transform & Ose
 * Feuille de style principale.
 *
 * Palette imposée par la charte : teal #5F8889, vert feuille #7BA83C,
 * ivoire #F7F4EE, doré #D4AF37. Beaucoup de blanc, peu d'ornement.
 */

/* ================================================== Jetons */

:root {
	--teal: #5f8889;
	--teal-fonce: #4a6d6e;
	--profond: #10454e;
	--feuille: #7ba83c;
	--olive: #6b7f2e;
	--ivoire: #f7f4ee;
	--ivoire-fonce: #ece6dc;
	--dore: #d4af37;
	--encre: #23302f;
	--encre-douce: #5a6664;
	--blanc: #fff;
	--trait: rgba(35, 48, 47, .12);

	--serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--sans: "Jost", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	--largeur: 1180px;
	--largeur-etroite: 760px;
	--rayon: 4px;
	--ombre: 0 10px 30px rgba(16, 69, 78, .08);
}

/* ================================================== Base */

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	background: var(--blanc);
	color: var(--encre);
	font-family: var(--sans);
	font-size: 16px;
	font-weight: 300;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--teal);
	text-decoration: none;
	transition: color .2s ease;
}

a:hover,
a:focus {
	color: var(--profond);
}

h1, h2, h3, h4 {
	margin: 0 0 .6em;
	color: var(--profond);
	font-family: var(--serif);
	font-weight: 500;
	line-height: 1.18;
	letter-spacing: .005em;
}

h1 { font-size: clamp(2.1rem, 4.4vw, 3.2rem); }
h2 { font-size: clamp(1.7rem, 3.2vw, 2.4rem); }
h3 { font-size: 1.3rem; }

p { margin: 0 0 1.1em; }

:focus-visible {
	outline: 2px solid var(--dore);
	outline-offset: 3px;
}

.ecran-lecteur {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.lien-evitement {
	position: absolute;
	left: -9999px;
	z-index: 1000;
	padding: .8em 1.4em;
	background: var(--profond);
	color: var(--blanc);
}

.lien-evitement:focus {
	left: 12px;
	top: 12px;
	color: var(--blanc);
}

.conteneur {
	width: min(100% - 2.5rem, var(--largeur));
	margin-inline: auto;
}

.conteneur--etroit {
	width: min(100% - 2.5rem, var(--largeur-etroite));
}

/* ================================================== Boutons */

.bouton,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .95em 2.1em;
	border: 1px solid var(--profond);
	border-radius: 999px;
	background: var(--profond);
	color: var(--blanc);
	font-family: var(--sans);
	font-size: .88rem;
	font-weight: 500;
	letter-spacing: .09em;
	line-height: 1.2;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .22s ease, color .22s ease, border-color .22s ease;
}

.bouton:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--teal);
	border-color: var(--teal);
	color: var(--blanc);
}

.bouton--fantome {
	background: transparent;
	color: var(--profond);
}

.bouton--fantome:hover {
	background: var(--profond);
	color: var(--blanc);
}

.bouton--clair {
	background: var(--blanc);
	border-color: var(--blanc);
	color: var(--profond);
}

.bouton--clair:hover {
	background: var(--dore);
	border-color: var(--dore);
	color: var(--profond);
}

/* ================================================== Bandeau + entête */

.bandeau-annonce {
	background: var(--profond);
	color: var(--blanc);
	font-size: .78rem;
	letter-spacing: .1em;
	text-align: center;
	text-transform: uppercase;
	padding: .55rem 0;
}

.site-entete {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, .96);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--trait);
}

.site-entete__interieur {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	min-height: 84px;
}

.site-entete__logo img {
	width: auto;
	max-height: 54px;
}

.navigation-principale {
	flex: 1;
}

.menu-principal {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.menu-principal a {
	position: relative;
	display: block;
	padding: .35rem 0;
	color: var(--encre);
	font-size: .8rem;
	font-weight: 400;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.menu-principal a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 1px;
	background: var(--feuille);
	transition: width .25s ease;
}

.menu-principal a:hover::after,
.menu-principal .current-menu-item > a::after,
.menu-principal .current_page_item > a::after {
	width: 100%;
}

.menu-principal .sub-menu {
	position: absolute;
	z-index: 20;
	min-width: 220px;
	margin: 0;
	padding: .6rem 0;
	background: var(--blanc);
	border: 1px solid var(--trait);
	box-shadow: var(--ombre);
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s;
}

.menu-principal li {
	position: relative;
}

.menu-principal li:hover > .sub-menu,
.menu-principal li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.menu-principal .sub-menu a {
	padding: .5rem 1.2rem;
	text-transform: none;
	letter-spacing: .02em;
	font-size: .9rem;
}

.site-entete__actions {
	display: flex;
	align-items: center;
	gap: .35rem;
}

.site-entete__action {
	position: relative;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	color: var(--profond);
}

.site-entete__action:hover {
	background: var(--ivoire);
}

.site-entete__action svg {
	width: 21px;
	height: 21px;
}

.site-entete__compteur {
	position: absolute;
	top: 2px;
	right: 0;
	min-width: 18px;
	height: 18px;
	border-radius: 999px;
	background: var(--feuille);
	color: var(--blanc);
	font-size: .68rem;
	font-weight: 600;
	line-height: 18px;
	text-align: center;
}

.site-entete__bascule {
	display: none;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.site-entete__bascule-barres,
.site-entete__bascule-barres::before,
.site-entete__bascule-barres::after {
	display: block;
	width: 22px;
	height: 1.5px;
	margin-inline: auto;
	background: var(--profond);
	transition: transform .25s ease, opacity .2s ease;
}

.site-entete__bascule-barres::before,
.site-entete__bascule-barres::after {
	content: "";
	position: relative;
}

.site-entete__bascule-barres::before { top: -7px; }
.site-entete__bascule-barres::after  { top: 5.5px; }

/* ================================================== Hero */

.hero {
	background: linear-gradient(180deg, var(--ivoire) 0%, var(--blanc) 100%);
	padding: clamp(2.5rem, 6vw, 5rem) 0;
	overflow: hidden;
}

.hero__interieur {
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	align-items: center;
	gap: clamp(2rem, 5vw, 4rem);
}

.hero__surtitre {
	margin-bottom: .8rem;
	color: var(--feuille);
	font-size: .78rem;
	font-weight: 500;
	letter-spacing: .34em;
	text-transform: uppercase;
}

.hero__titre {
	margin-bottom: 1rem;
	font-size: clamp(2.3rem, 5vw, 3.6rem);
}

.hero__intro {
	max-width: 46ch;
	color: var(--encre-douce);
	font-size: 1.06rem;
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem;
	margin-top: 1.8rem;
}

.hero__visuel img {
	width: 100%;
	border-radius: 3px;
	box-shadow: var(--ombre);
}

/* ================================================== Sections */

.section-titre {
	position: relative;
	margin-bottom: 2.2rem;
	padding-bottom: .9rem;
	text-align: center;
}

.section-titre::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 46px;
	height: 1px;
	background: var(--dore);
	transform: translateX(-50%);
}

.section-titre--clair {
	color: var(--blanc);
}

.univers,
.selection,
.nouveautes {
	padding: clamp(3rem, 6vw, 5rem) 0;
}

.selection {
	background: var(--ivoire);
}

.univers__grille {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.4rem;
}

.univers__carte {
	display: block;
	padding: 2.2rem 1.8rem;
	border: 1px solid var(--trait);
	border-radius: var(--rayon);
	background: var(--blanc);
	color: var(--encre);
	transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

.univers__carte:hover {
	border-color: var(--teal);
	transform: translateY(-3px);
	box-shadow: var(--ombre);
	color: var(--encre);
}

.univers__carte h3 {
	font-size: 1.42rem;
}

.univers__carte p {
	color: var(--encre-douce);
	font-size: .95rem;
}

.univers__lien {
	color: var(--teal);
	font-size: .78rem;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.selection__lien {
	margin-top: 1.5rem;
	text-align: center;
}

.engagement {
	padding: clamp(3.5rem, 7vw, 6rem) 0;
	background: var(--profond);
	color: rgba(255, 255, 255, .86);
}

.engagement__interieur {
	max-width: 760px;
	margin-inline: auto;
	text-align: center;
}

.engagement__liste {
	display: grid;
	gap: .7rem;
	margin: 1.8rem 0 0;
	padding: 0;
	list-style: none;
	text-align: left;
}

.engagement__liste li {
	padding-left: 1.6rem;
	position: relative;
}

.engagement__liste li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .68em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--feuille);
}

.engagement__action {
	margin-top: 2rem;
}

.cta-whatsapp {
	padding: clamp(3rem, 6vw, 4.5rem) 0;
	background: var(--teal);
	color: var(--blanc);
	text-align: center;
}

.cta-whatsapp p {
	max-width: 56ch;
	margin-inline: auto;
	margin-bottom: 1.6rem;
}

/* ================================================== Pages & contenu */

.site-contenu {
	padding: clamp(2rem, 5vw, 3.5rem) 0 clamp(3rem, 6vw, 4.5rem);
}

.site-contenu--accueil {
	padding: 0;
}

.page-entete {
	margin-bottom: 2rem;
	text-align: center;
}

.page-entete__meta {
	color: var(--encre-douce);
	font-size: .85rem;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.contenu-riche h2 {
	margin-top: 2.2rem;
	font-size: 1.75rem;
}

.contenu-riche h3 {
	margin-top: 1.8rem;
	font-family: var(--sans);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--encre);
}

.contenu-riche ul,
.contenu-riche ol {
	padding-left: 1.3rem;
}

.contenu-riche li {
	margin-bottom: .5rem;
}

.sopo-chapeau {
	font-size: 1.12rem;
	color: var(--encre-douce);
}

.liste-articles {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}

.carte-article__titre {
	margin-top: 1rem;
	font-size: 1.3rem;
}

.carte-article__extrait {
	color: var(--encre-douce);
	font-size: .95rem;
}

.page-404 {
	text-align: center;
}

.formulaire-recherche {
	display: flex;
	gap: .6rem;
	margin: 1.5rem 0;
}

.formulaire-recherche__champ {
	flex: 1;
	padding: .8em 1.1em;
	border: 1px solid var(--trait);
	border-radius: 999px;
	font: inherit;
}

.formulaire-recherche__bouton {
	padding: .8em 1.6em;
	border: 0;
	border-radius: 999px;
	background: var(--profond);
	color: var(--blanc);
	font: inherit;
	font-size: .85rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

/* ================================================== WooCommerce */

.boutique-entete {
	margin-bottom: 2.4rem;
	text-align: center;
}

.boutique-entete__titre {
	margin-bottom: .5rem;
}

.boutique-entete__intro {
	max-width: 62ch;
	margin-inline: auto;
	color: var(--encre-douce);
}

.woocommerce .woocommerce-breadcrumb {
	margin-bottom: 1.6rem;
	color: var(--encre-douce);
	font-size: .82rem;
	letter-spacing: .04em;
	text-align: center;
}

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem 1.6rem;
	margin: 0;
	padding: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none;
}

.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	text-align: center;
}

.carte-produit__media {
	position: relative;
	overflow: hidden;
	border-radius: var(--rayon);
	background: var(--ivoire);
}

.woocommerce ul.products li.product img {
	margin: 0;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: transform .5s ease;
}

.woocommerce ul.products li.product:hover img {
	transform: scale(1.04);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: .9rem 0 .2rem;
	font-family: var(--serif);
	font-size: 1.22rem;
	font-weight: 500;
	color: var(--profond);
}

.carte-produit__format {
	display: block;
	color: var(--encre-douce);
	font-size: .8rem;
	letter-spacing: .05em;
}

.woocommerce ul.products li.product .price {
	display: block;
	margin: .45rem 0 .8rem;
	color: var(--encre);
	font-size: 1.02rem;
	font-weight: 500;
}

.woocommerce ul.products li.product .price del {
	margin-right: .4rem;
	color: var(--encre-douce);
	font-weight: 300;
	opacity: .7;
}

.woocommerce ul.products li.product .price ins {
	background: none;
	color: var(--olive);
	text-decoration: none;
}

.woocommerce ul.products li.product .button {
	padding: .7em 1.5em;
	font-size: .74rem;
}

.badge-promo,
.woocommerce span.onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	min-height: auto;
	min-width: auto;
	margin: 0;
	padding: .3em .85em;
	border-radius: 999px;
	background: var(--dore);
	color: var(--profond);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .06em;
	line-height: 1.6;
}

/* Fiche produit */

.woocommerce div.product {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: start;
}

.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product .summary {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells,
.woocommerce div.product .woocommerce-product-gallery + .summary ~ * {
	grid-column: 1 / -1;
}

.woocommerce div.product .product_title {
	margin-bottom: .35rem;
	font-size: clamp(1.9rem, 3.6vw, 2.6rem);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin-bottom: .8rem;
	color: var(--profond);
	font-size: 1.5rem;
	font-weight: 500;
}

.woocommerce div.product p.price del {
	margin-right: .5rem;
	color: var(--encre-douce);
	font-size: 1.05rem;
	font-weight: 300;
}

.woocommerce div.product p.price ins {
	background: none;
	color: var(--olive);
	text-decoration: none;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--encre-douce);
	font-size: 1.02rem;
}

.woocommerce div.product form.cart {
	margin-bottom: 1.2rem;
}

.woocommerce div.product form.cart .quantity input {
	height: 100%;
	padding: .8em .5em;
	border: 1px solid var(--trait);
	border-radius: var(--rayon);
	font: inherit;
	text-align: center;
}

.woocommerce div.product form.cart .button {
	width: calc(100% - 90px);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	margin: 0 0 1.5rem;
	padding: 0;
	border-bottom: 1px solid var(--trait);
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	content: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	content: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: .8rem 1.1rem;
	border-bottom: 2px solid transparent;
	color: var(--encre-douce);
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	border-bottom-color: var(--feuille);
	color: var(--profond);
}

.woocommerce div.product .woocommerce-tabs .panel h2:first-of-type {
	display: none;
}

.woocommerce .related > h2,
.woocommerce .upsells > h2 {
	margin-top: 3rem;
	text-align: center;
}

/* Panier, commande, compte */

.woocommerce table.shop_table {
	border: 1px solid var(--trait);
	border-radius: var(--rayon);
	border-collapse: collapse;
}

.woocommerce table.shop_table th {
	font-family: var(--sans);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--profond);
}

.woocommerce .cart-collaterals .cart_totals > h2,
.woocommerce-checkout h3,
.woocommerce-account h2 {
	font-family: var(--serif);
	font-size: 1.5rem;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection--single {
	padding: .8em .95em;
	border: 1px solid var(--trait);
	border-radius: var(--rayon);
	font: inherit;
	height: auto;
}

.woocommerce form .form-row label {
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .04em;
	color: var(--encre-douce);
}

.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
	border-top-color: var(--teal);
	background: var(--ivoire);
}

.woocommerce-info::before,
.woocommerce-message::before {
	color: var(--teal);
}

/* ================================================== Pied de page */

.site-pied {
	background: var(--profond);
	color: rgba(255, 255, 255, .78);
	font-size: .93rem;
}

.site-pied a {
	color: rgba(255, 255, 255, .78);
}

.site-pied a:hover {
	color: var(--dore);
}

.site-pied__rassurance {
	border-bottom: 1px solid rgba(255, 255, 255, .12);
	padding: 1.8rem 0;
}

.site-pied__rassurance-grille {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	text-align: center;
}

.site-pied__rassurance strong {
	display: block;
	color: var(--blanc);
	font-size: .95rem;
	font-weight: 500;
}

.site-pied__rassurance span {
	font-size: .84rem;
	opacity: .7;
}

.site-pied__grille {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr;
	gap: 2.5rem;
	padding: 3rem 0;
}

.site-pied__logo {
	max-width: 150px;
	margin-bottom: 1rem;
}

.site-pied__signature {
	max-width: 34ch;
	font-family: var(--serif);
	font-size: 1.12rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, .9);
}

.site-pied__titre {
	margin-bottom: 1rem;
	color: var(--blanc);
	font-family: var(--sans);
	font-size: .76rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.menu-pied {
	display: grid;
	gap: .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-pied__bas {
	border-top: 1px solid rgba(255, 255, 255, .12);
	padding: 1.4rem 0;
	font-size: .8rem;
	text-align: center;
}

.site-pied__bas p {
	margin: 0;
}

.site-pied__mention {
	margin-top: .4rem !important;
	opacity: .6;
	font-size: .76rem;
}

/* ================================================== Responsive */

@media (max-width: 1024px) {
	.site-entete__interieur {
		flex-wrap: wrap;
	}

	.menu-principal {
		gap: 1.1rem;
	}

	.menu-principal a {
		font-size: .74rem;
	}
}

@media (max-width: 860px) {
	.site-entete__bascule {
		display: block;
		order: 3;
	}

	.site-entete__logo {
		order: 1;
		margin-right: auto;
	}

	.site-entete__actions {
		order: 2;
	}

	.navigation-principale {
		order: 4;
		flex-basis: 100%;
		display: none;
		padding-bottom: 1rem;
	}

	.navigation-principale.est-ouverte {
		display: block;
	}

	.menu-principal {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.menu-principal > li {
		border-bottom: 1px solid var(--trait);
	}

	.menu-principal a {
		padding: .85rem 0;
		font-size: .84rem;
	}

	.menu-principal .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		padding: 0 0 .5rem 1rem;
	}

	.hero__interieur,
	.univers__grille,
	.site-pied__grille,
	.site-pied__rassurance-grille,
	.liste-articles {
		grid-template-columns: 1fr;
	}

	.hero__visuel {
		order: -1;
	}

	.woocommerce div.product {
		grid-template-columns: 1fr;
	}

	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.6rem 1rem;
	}
}

@media (max-width: 520px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.2rem .8rem;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 1.05rem;
	}

	.woocommerce div.product form.cart .button {
		width: 100%;
		margin-top: .6rem;
	}

	.bandeau-annonce {
		font-size: .68rem;
		letter-spacing: .06em;
	}
}
