/* TPTF - CSS commun du style kit (passations du 26 et 27 oct. 2026)
   Les tailles de texte viennent du kit Elementor (typographies globales).
   Ici : polices, composants reutilisables et regles de mise en page. */

/* ---------- Polices ---------- */
@font-face { font-family: "Ethic Serif"; src: url("polices/EthicSerif-Light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Ethic Serif"; src: url("polices/EthicSerif-LightItalic.woff2") format("woff2"); font-weight: 300; font-style: italic; font-display: swap; }

/* ---------- Jetons ---------- */
:root {
	--tptf-marine: #211747;
	--tptf-lavande: #838DC8;
	--tptf-brume: #E1E7FF;
	--tptf-mauve: #B7BADC;
	--tptf-fond-pale: #F6F7FF;
	--tptf-texte-doux: #4A4580;
	--tptf-avis: #77739A;
	--tptf-pastille-texte: #6A72B5;
	--tptf-filet: rgba(33, 23, 71, 0.14);
	--tptf-sauge: #CFE2D4;
	--tptf-rose: #F2C8DA;
}

/* ---------- Liens : jamais de soulignement par defaut ---------- */
body a { text-decoration: none; }

/* Lien d action : majuscules espacees + fleche, soulignement sur le texte seulement */
.tptf-lien-action, .tptf-lien-action a {
	display: inline-flex; align-items: center; gap: .45em;
	font-weight: 700; text-transform: uppercase; letter-spacing: .1em;
	font-size: 17px; color: var(--tptf-marine);
}
.tptf-lien-action .tptf-lien-texte, .tptf-lien-action a .elementor-button-text { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 1px; }
.tptf-lien-action::after { content: "\2192"; text-decoration: none; }
.tptf-lien-action:hover { color: var(--tptf-lavande); }

/* Bouton secondaire (contour marine) : ajouter la classe tptf-btn-secondaire au widget Bouton */
.tptf-btn-secondaire .elementor-button { background: transparent !important; color: var(--tptf-marine) !important; border: 1.5px solid var(--tptf-marine) !important; }
.tptf-btn-secondaire .elementor-button:hover { background: var(--tptf-marine) !important; color: #fff !important; }
/* Bouton sur photo : blanc ou mauve Maison, texte marine */
.tptf-btn-photo .elementor-button { background: #fff !important; color: var(--tptf-marine) !important; border-color: #fff !important; }
.tptf-btn-mauve .elementor-button { background: var(--tptf-mauve) !important; color: var(--tptf-marine) !important; border-color: var(--tptf-mauve) !important; }

/* ---------- Pastilles de bienfaits ---------- */
.tptf-pastilles { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.tptf-pastille {
	display: inline-block; padding: 2px 10px; border: 1.25px solid var(--tptf-lavande); border-radius: 999px;
	color: var(--tptf-pastille-texte); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; line-height: 1.6;
}
@media (max-width: 767px) { .tptf-pastille { font-size: 11px; padding: 2px 9px; } }

/* ---------- Badge Nouveaute (coin haut gauche, miroir du bouton panier) ---------- */
.tptf-badge-nouveaute {
	position: absolute; top: 0; left: 0; z-index: 2; height: 48px; display: flex; align-items: center; padding: 0 12px;
	background: var(--tptf-marine); color: #fff; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em;
}
@media (max-width: 767px) { .tptf-badge-nouveaute { height: 44px; } }

/* ---------- Pastille de rabais (option D) ---------- */
.tptf-rabais {
	position: absolute; top: 10px; right: 10px; z-index: 3; width: 68px; height: 68px; border-radius: 50%;
	background: var(--tptf-brume); color: var(--tptf-marine); box-shadow: 0 3px 10px rgba(33, 23, 71, .16);
	display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: .7; text-align: center;
}
.tptf-rabais .tptf-rabais-chiffre { font-size: 24px; font-weight: 700; }
.tptf-rabais .tptf-rabais-symbole { font-size: 15px; font-weight: 700; }
.tptf-rabais .tptf-rabais-mot { font-family: "Aesthetic White", cursive; font-size: 19px; line-height: 1; margin-top: 4px; }
@media (max-width: 767px) {
	.tptf-rabais { width: 52px; height: 52px; top: 6px; right: 6px; }
	.tptf-rabais .tptf-rabais-chiffre { font-size: 19px; }
	.tptf-rabais .tptf-rabais-symbole { font-size: 12px; }
	.tptf-rabais .tptf-rabais-mot { font-size: 15px; }
}
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.tptf-rabais { animation: tptf-rabais-in linear both; animation-timeline: view(); animation-range: entry 10% entry 90%; }
	}
}
@keyframes tptf-rabais-in { from { opacity: 0; transform: scale(.8); } to { opacity: 1; transform: none; } }

/* Prix solde : ancien prix barre gris avant le nouveau */
.woocommerce .price del, .woocommerce-Price-amount del, .price del { color: var(--tptf-avis); opacity: 1; margin-right: .35em; }
.woocommerce .price ins, .price ins { text-decoration: none; }

/* ---------- Etoiles et avis ---------- */
.tptf-avis-nombre { color: var(--tptf-avis); }
.star-rating span::before, .star-rating::before { color: var(--tptf-lavande); }

/* ---------- Onglet lateral « 15 % de rabais » ---------- */
.tptf-onglet-15 {
	position: fixed; left: 0; top: 300px; z-index: 990;
	writing-mode: vertical-rl; transform: rotate(180deg);
	background: var(--tptf-marine); color: #fff; padding: 15px 10px; font-size: 13px; font-weight: 700;
	text-transform: uppercase; letter-spacing: .1em; cursor: pointer; border: 0;
}
@media (max-width: 1024px) { .tptf-onglet-15 { top: 290px; } }
@media (max-width: 767px) { .tptf-onglet-15 { top: 250px; padding: 10px 7px; font-size: 11px; } }

/* ---------- Decors argentes (branches) ---------- */
.tptf-section-decor { position: relative; overflow: hidden; isolation: isolate; }
.tptf-decor { position: absolute !important; z-index: -1; pointer-events: none; }
.tptf-decor img { width: 100%; height: auto; }
.tptf-decor-miroir { transform: scaleX(-1); }

/* ---------- Filets et separateurs ---------- */
.tptf-filet { border: 0; border-top: 1px solid var(--tptf-filet); }

/* ---------- Image « cartes qui tombent » : toujours a fond perdu ---------- */
.tptf-fond-perdu, .tptf-fond-perdu > .e-con-inner { padding-top: 0 !important; padding-bottom: 0 !important; }
.tptf-fond-perdu img { display: block; height: 100%; width: 100%; object-fit: cover; }

/* ---------- Messages ---------- */
.woocommerce-message { background: var(--tptf-sauge); color: var(--tptf-marine); border-top-color: var(--tptf-marine); }
.woocommerce-error { background: var(--tptf-rose); color: var(--tptf-marine); }

/* =========================================================
   EN-TETE [tptf_entete] : bandeau, barre, mega menu, recherche, tiroir mobile
   ========================================================= */
.tptf-entete { position: relative; z-index: 999; font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif; color: var(--tptf-marine); }
.tptf-entete a { color: var(--tptf-marine); }
.tptf-entete a:hover, .tptf-entete a:focus-visible { color: var(--tptf-lavande); }
.tptf-entete button { font-family: inherit; font-weight: 400; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; min-height: 0; line-height: inherit; }
.tptf-entete button:hover, .tptf-entete button:focus { background: none; color: var(--tptf-lavande); }
.tptf-entete .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
html.tptf-bloque { overflow: hidden; }

.tptf-bandeau { background: var(--tptf-marine); color: #fff; font-size: 16px; text-align: center; padding: 10px 24px; letter-spacing: .02em; line-height: 1.3; }
.tptf-barre { position: relative; background: #fff; border-bottom: 1px solid var(--tptf-brume); }
.tptf-barre-int { max-width: 1280px; margin: 0 auto; padding: 20px 48px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.tptf-zone { display: flex; align-items: center; flex: 1 1 0; gap: 32px; }
.tptf-zone-droite { justify-content: flex-end; gap: 4px; }
.tptf-zone-droite .tptf-nav { margin-right: 20px; }
.tptf-nav { display: flex; align-items: center; gap: 36px; }
.tptf-nav-lien, .tptf-entete button.tptf-nav-lien { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; text-transform: uppercase; letter-spacing: .12em; color: var(--tptf-marine); line-height: 1.2; white-space: nowrap; }
.tptf-entete button.tptf-nav-lien[aria-expanded="true"] { color: var(--tptf-lavande); }
.tptf-entete button.tptf-nav-lien[aria-expanded="true"] svg { transform: rotate(180deg); }
.tptf-logo { flex: 0 0 auto; display: block; line-height: 0; }
.tptf-logo img { height: 46px; width: auto; display: block; }
.tptf-icone, .tptf-entete button.tptf-icone { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; position: relative; color: var(--tptf-marine); }
.tptf-nb-panier { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; background: var(--tptf-marine); color: #fff; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; line-height: 1; }
.tptf-nb-panier[hidden] { display: none; }
.tptf-mobile { display: none !important; }

/* Sous-menu A propos */
.tptf-sous { position: relative; }
.tptf-sous-menu { position: absolute; top: calc(100% + 18px); right: 0; min-width: 260px; background: #fff; box-shadow: 0 16px 32px rgba(33,23,71,.12); padding: 20px 28px; display: flex; flex-direction: column; gap: 12px; z-index: 5; }
.tptf-sous-menu[hidden] { display: none; }
.tptf-sous-menu a { font-size: 19px; line-height: 1.3; }

/* Mega menu */
.tptf-mega { position: absolute; left: 0; right: 0; top: 100%; background: #fff; box-shadow: 0 16px 32px rgba(33,23,71,.12); z-index: 3; }
.tptf-mega[hidden] { display: none; }
.tptf-mega-int { max-width: 1280px; margin: 0 auto; padding: 48px 48px 56px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) 300px; gap: 40px; box-sizing: border-box; }
.tptf-mega-col { display: flex; flex-direction: column; gap: 32px; }
.tptf-mega-col + .tptf-mega-col, .tptf-mega-vedette { border-left: 1px solid var(--tptf-filet); padding-left: 40px; }
.tptf-mega-groupe { display: flex; flex-direction: column; gap: 14px; }
.tptf-mega-groupe a { font-size: 19px; line-height: 1.3; }
.tptf-surtitre { margin: 0 0 4px; font-size: 15px; text-transform: uppercase; letter-spacing: .16em; color: var(--tptf-texte-doux); line-height: 1.3; }
.tptf-btn-contour { display: inline-block; align-self: flex-start; border: 1.5px solid var(--tptf-marine); padding: 15px 28px; font-size: 16px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; white-space: nowrap; line-height: 1.2; }
.tptf-entete a.tptf-btn-contour:hover { background: var(--tptf-marine); color: #fff; }
.tptf-mega-vedette { display: flex; flex-direction: column; gap: 12px; }
.tptf-mega-vedette img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; height: auto; }
.tptf-mega-vedette .tptf-surtitre { font-size: 13px; margin: 0; }
.tptf-mega-vedette-nom { font-size: 23px; line-height: 1.05; }
.tptf-mega-vedette .tptf-lien-action { font-size: 15px; }

/* Recherche */
.tptf-voile { position: fixed; inset: 0; background: rgba(225,231,255,.73); z-index: 998; }
.tptf-voile[hidden] { display: none; }
.tptf-recherche { position: absolute; left: 0; right: 0; top: 0; background: #fff; z-index: 1000; box-shadow: 0 18px 40px rgba(33,23,71,.16); }
.tptf-recherche[hidden] { display: none; }
.tptf-recherche-int { max-width: 1280px; margin: 0 auto; padding: 28px 48px 0; display: flex; gap: 24px; align-items: center; box-sizing: border-box; }
.tptf-recherche-champ { flex: 1; display: flex; align-items: center; gap: 10px; border-bottom: 1.5px solid var(--tptf-marine); padding: 6px 0; margin: 0; }
.tptf-recherche-champ input[type=search] { flex: 1; min-width: 0; font-family: inherit; font-size: 26px; padding: 10px 0; border: 0 !important; color: var(--tptf-marine); background: transparent; outline: none; box-shadow: none; }
.tptf-entete button.tptf-recherche-effacer { color: var(--tptf-texte-doux); font-size: 15px; text-decoration: underline; text-underline-offset: 3px; padding: 8px 0; }
.tptf-recherche-resultats { max-width: 1280px; margin: 0 auto; padding: 0 48px; box-sizing: border-box; display: none; grid-template-columns: 1fr 1.3fr 1fr; gap: 48px; }
.tptf-recherche.tptf-a-resultats .tptf-recherche-resultats { display: grid; padding-top: 32px; padding-bottom: 40px; }
.tptf-rr-col > div { display: flex; flex-direction: column; gap: 6px; }
.tptf-rr-col + .tptf-rr-col { border-left: 1px solid var(--tptf-filet); padding-left: 40px; }
.tptf-rr-col a { font-size: 19px; padding: 6px 0; line-height: 1.25; }
.tptf-rr-col strong { font-weight: 700; }
.tptf-rr-produit { display: flex; gap: 14px; align-items: center; }
.tptf-rr-produit img { width: 64px; height: 64px; object-fit: cover; flex: 0 0 auto; }
.tptf-rr-produit > span { display: flex; flex-direction: column; gap: 2px; }
.tptf-rr-nom { font-size: 19px; line-height: 1.15; }
.tptf-rr-prix { font-size: 15px; color: var(--tptf-avis); }
.tptf-rr-vide { font-size: 16px; color: var(--tptf-avis); }
.tptf-rr-tout { grid-column: 1 / -1; border-top: 1px solid var(--tptf-filet); padding-top: 20px; }

/* Tiroir mobile */
.tptf-tiroir { position: fixed; inset: 0; background: #fff; z-index: 1001; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.tptf-tiroir[hidden] { display: none; }
.tptf-tiroir-tete { display: flex; align-items: center; justify-content: space-between; padding: 12px 8px; border-bottom: 1px solid var(--tptf-brume); }
.tptf-tiroir-tete .tptf-logo img { height: 34px; }
.tptf-tiroir-corps { padding: 16px 20px 32px; display: flex; flex-direction: column; }
.tptf-tiroir-recherche { position: relative; margin: 0 0 8px; }
.tptf-tiroir-recherche input[type=search] { font-family: inherit; font-size: 17px; padding: 13px 14px 13px 44px; border: 1px solid var(--tptf-mauve); width: 100%; box-sizing: border-box; color: var(--tptf-marine); border-radius: 0; }
.tptf-tiroir-recherche svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--tptf-avis); }
.tptf-acc { border-bottom: 1px solid var(--tptf-filet); }
.tptf-acc-tete, .tptf-entete button.tptf-acc-tete { width: 100%; padding: 18px 0; display: flex; justify-content: space-between; align-items: center; font-size: 19px; text-transform: uppercase; letter-spacing: .12em; color: var(--tptf-marine); }
.tptf-entete button.tptf-acc-tete[aria-expanded="true"] { color: var(--tptf-lavande); }
.tptf-entete button.tptf-acc-tete[aria-expanded="true"] svg { transform: rotate(180deg); }
.tptf-acc-corps[hidden] { display: none; }
.tptf-acc-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.tptf-acc-grille .tptf-mega-groupe { padding: 4px 0 16px; gap: 12px; }
.tptf-acc-grille .tptf-surtitre { font-size: 13px; margin: 0; }
.tptf-acc-grille a { font-size: 17px; }
.tptf-acc-tout { margin: 0; padding: 0 0 18px; }
.tptf-acc-tout .tptf-lien-action { font-size: 15px; }
.tptf-acc-liste { display: flex; flex-direction: column; gap: 12px; padding: 0 0 18px; }
.tptf-acc-liste a { font-size: 17px; }
.tptf-etiquette-promo { background: var(--tptf-mauve); padding: 3px 10px; font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.tptf-tiroir-pied { display: flex; gap: 24px; padding-top: 22px; font-size: 16px; }
.tptf-tiroir-pied a { display: inline-flex; gap: 8px; align-items: center; }

@media (max-width: 1100px) {
	.tptf-barre-int { padding: 16px 24px; }
	.tptf-nav { gap: 24px; }
	.tptf-mega-int { padding: 40px 24px 48px; grid-template-columns: repeat(3, minmax(0, 1fr)) 220px; gap: 28px; }
	.tptf-mega-col + .tptf-mega-col, .tptf-mega-vedette { padding-left: 28px; }
}
@media (max-width: 1024px) {
	.tptf-ordi { display: none !important; }
	.tptf-mobile { display: inline-flex !important; }
	.tptf-barre-int { padding: 8px; gap: 8px; }
	.tptf-zone { gap: 0; }
	.tptf-zone-droite { gap: 0; }
	.tptf-logo img { height: 34px; }
	.tptf-mega { display: none !important; }
	.tptf-recherche { position: fixed; inset: 0; overflow-y: auto; }
	.tptf-recherche-int { padding: 12px 16px 0; }
	.tptf-recherche-champ input[type=search] { font-size: 20px; }
	.tptf-recherche-resultats { padding: 0 16px; }
	.tptf-recherche.tptf-a-resultats .tptf-recherche-resultats { grid-template-columns: 1fr; gap: 24px; padding-top: 20px; }
	.tptf-rr-col + .tptf-rr-col { border-left: 0; padding-left: 0; border-top: 1px solid var(--tptf-filet); padding-top: 20px; }
}
@media (max-width: 767px) {
	.tptf-bandeau { font-size: 14px; padding: 8px 16px; }
}
/* Le bouton panier d Elementor ne doit pas heriter du style de bouton du kit */
.elementor-menu-cart__toggle .elementor-button { background: transparent !important; border: 0 !important; color: var(--tptf-marine) !important; padding: 8px !important; }
/* L avis de boutique d origine (Astra) est remplace par le bandeau de l en-tete */
.woocommerce-store-notice, p.demo_store { display: none !important; }
body.woocommerce-demo-store { padding-top: 0 !important; margin-top: 0 !important; }

/* =========================================================
   PIED DE PAGE [tptf_pied]
   ========================================================= */
.tptf-pied { background: var(--tptf-marine); color: #fff; font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif; }
.tptf-pied a { color: #fff; text-decoration: none; }
.tptf-pied a:hover { color: var(--tptf-brume); text-decoration: underline; text-underline-offset: 4px; }
.tptf-pied-int { max-width: 1280px; margin: 0 auto; padding: 80px 48px 40px; display: flex; flex-direction: column; gap: 64px; box-sizing: border-box; }
.tptf-pied-contact { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(225,231,255,.2); padding-bottom: 64px; }
.tptf-pied-coord { flex: 1 1 380px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.tptf-pied .tptf-pied-titre { margin: 0; color: #fff; font-size: 34px; font-weight: 400; line-height: 1.15; text-transform: uppercase; letter-spacing: .06em; }
.tptf-pied-phrase { margin: 0; font-size: 20px; font-style: italic; line-height: 1.4; color: var(--tptf-brume); max-width: 420px; }
.tptf-pied-adresse { margin: 8px 0 0; font-size: 19px; line-height: 1.5; }
.tptf-pied-form { flex: 1 1 560px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; min-width: 0; margin: 0; }
.tptf-pied-form p { margin: 0; }
.tptf-pied-form .tptf-pied-pleine, .tptf-pied-msg { grid-column: 1 / -1; }
.tptf-pied-form input[type=text], .tptf-pied-form input[type=email], .tptf-pied-form textarea { font-family: inherit; font-size: 19px; padding: 14px 16px; border: 0; border-radius: 0; background: #fff; color: var(--tptf-marine); width: 100%; box-sizing: border-box; min-height: 0; }
.tptf-pied-form textarea { resize: vertical; height: auto; }
.tptf-pied-form button { font-family: inherit; background: var(--tptf-brume); color: var(--tptf-marine); border: 0; border-radius: 0; font-size: 17px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; padding: 15px 28px; cursor: pointer; }
.tptf-pied-form button:hover { background: #fff; color: var(--tptf-marine); }
.tptf-pied-msg { margin: 0; padding: 12px 16px; background: var(--tptf-sauge); color: var(--tptf-marine); font-size: 17px; }
.tptf-pied-msg-erreur { background: var(--tptf-rose); }
.tptf-pot { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tptf-pied-colonnes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; font-size: 17px; }
.tptf-pied-colonnes nav { display: flex; flex-direction: column; gap: 10px; }
.tptf-pied-surtitre { margin: 0 0 6px; font-size: 15px; text-transform: uppercase; letter-spacing: .16em; color: var(--tptf-brume); }
.tptf-pied-sigle img { height: 76px; width: auto; display: block; }
.tptf-pied-legal { display: flex; flex-wrap: wrap; gap: 12px 28px; justify-content: space-between; font-size: 15px; color: rgba(225,231,255,.6); border-top: 1px solid rgba(225,231,255,.2); padding-top: 24px; }
.tptf-pied-legal a { color: rgba(225,231,255,.6); }
.tptf-pied-legal-liens { display: flex; gap: 24px; flex-wrap: wrap; }
@media (max-width: 1024px) {
	.tptf-pied-int { padding: 64px 32px 32px; gap: 48px; }
	.tptf-pied-colonnes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.tptf-pied-int { padding: 48px 20px 32px; gap: 36px; }
	.tptf-pied-contact { gap: 20px; padding-bottom: 36px; }
	.tptf-pied .tptf-pied-titre { font-size: 24px; }
	.tptf-pied-phrase { font-size: 17px; }
	.tptf-pied-colonnes { gap: 28px 16px; font-size: 16px; }
	.tptf-pied-sigle { grid-column: 1 / -1; order: 9; }
	.tptf-pied-sigle img { height: 60px; }
	.tptf-pied-legal { flex-direction: column; font-size: 14px; }
}

/* =========================================================
   CARTE PRODUIT [tptf_carte] et grille [tptf_grille]
   ========================================================= */
.tptf-carte { position: relative; display: flex; flex-direction: column; gap: 10px; min-width: 0; color: var(--tptf-marine); font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif; }
.tptf-carte-media { position: relative; }
.tptf-carte-img { display: block; line-height: 0; background: var(--tptf-fond-pale); }
.tptf-carte-img img { width: 100% !important; height: auto !important; aspect-ratio: 1 / 1; object-fit: cover; display: block; margin: 0 !important; transition: opacity .2s; max-width: none; }
.tptf-carte:hover .tptf-carte-img img { opacity: .9; }
.tptf-carte-lien::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.tptf-carte .tptf-badge-nouveaute, .tptf-carte .tptf-carte-retour { z-index: 2; pointer-events: none; }
.tptf-carte .tptf-rabais { left: 10px; right: auto; z-index: 2; pointer-events: none; }
.tptf-carte .tptf-badge-nouveaute ~ .tptf-rabais { left: auto; right: 10px; }
.tptf-carte-retour { position: absolute; top: 0; left: 0; height: 48px; display: flex; align-items: center; padding: 0 12px; background: #fff; color: var(--tptf-marine); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.tptf-carte-btn, .tptf-carte a.tptf-carte-btn { position: absolute; right: 0; bottom: 0; z-index: 3; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: var(--tptf-marine); color: #fff !important; border: 0; padding: 0; margin: 0 !important; line-height: 1; border-radius: 0; transition: background .2s, color .2s; }
.tptf-carte a.tptf-carte-btn:hover, .tptf-carte a.tptf-carte-btn:focus-visible { background: var(--tptf-lavande); color: #fff; }
.tptf-carte a.tptf-carte-btn.loading { opacity: .6; }
.tptf-carte a.tptf-carte-btn.loading::after, .tptf-carte a.tptf-carte-btn.added::after { display: none !important; }
.tptf-carte a.tptf-carte-btn.added { background: var(--tptf-sauge); color: var(--tptf-marine) !important; }
.tptf-carte .added_to_cart { display: none !important; }
.tptf-carte .tptf-pastilles { padding-top: 4px; }
.tptf-carte h3.tptf-carte-nom { margin: 0 !important; padding: 0 !important; font-family: inherit !important; font-size: 28px !important; font-weight: 400 !important; font-style: normal !important; line-height: 1.05 !important; letter-spacing: .01em !important; text-transform: none !important; color: var(--tptf-marine); }
.tptf-carte-nom a { color: inherit; }
.tptf-carte .tptf-carte-nom a:hover, .tptf-carte:hover .tptf-carte-nom a { color: var(--tptf-marine); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.tptf-carte:has(.tptf-carte-lien:focus-visible) { outline: 2px solid var(--tptf-lavande); outline-offset: 4px; }
.tptf-carte .tptf-carte-lien:focus-visible { outline: 0; }
.tptf-carte-avis { margin: 0; font-size: 16px; line-height: 1.2; color: var(--tptf-avis); display: flex; align-items: center; gap: 6px; }
.tptf-etoiles { position: relative; display: inline-block; font-size: 16px; line-height: 1; letter-spacing: 2px; color: var(--tptf-brume); white-space: nowrap; }
.tptf-etoiles::before { content: "\2605\2605\2605\2605\2605"; }
.tptf-etoiles > span { position: absolute; top: 0; left: 0; overflow: hidden; color: var(--tptf-lavande); white-space: nowrap; }
.tptf-etoiles > span::before { content: "\2605\2605\2605\2605\2605"; }
.tptf-carte-prix, .tptf-carte-dispo { margin: 0; font-size: 20px; line-height: 1.2; color: var(--tptf-marine); }
.tptf-carte-prix .woocommerce-Price-amount { font-weight: 400; }
.tptf-carte-dispo { color: var(--tptf-avis); font-size: 17px; }
.tptf-carte-rupture .tptf-carte-img img { opacity: .55; }
.tptf-grille { display: grid; grid-template-columns: repeat(var(--tptf-colonnes, 4), minmax(0, 1fr)); gap: 48px 24px; }
@media (max-width: 1024px) {
	.tptf-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tptf-carte h3.tptf-carte-nom { font-size: 25px !important; }
}
@media (max-width: 767px) {
	.tptf-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 14px; }
	.tptf-carte { gap: 8px; }
	.tptf-carte h3.tptf-carte-nom { font-size: 21px !important; }
	.tptf-carte-prix { font-size: 18px; }
	.tptf-carte-avis { font-size: 14px; }
	.tptf-etoiles { font-size: 13px; letter-spacing: 1px; }
	.tptf-carte-btn, .tptf-carte a.tptf-carte-btn { width: 44px; height: 44px; }
	.tptf-carte-retour { height: 44px; font-size: 11px; padding: 0 9px; }
}

/* Pagination des archives */
.elementor-pagination, nav.woocommerce-pagination { font-size: 17px; margin-top: 56px; display: flex; justify-content: center; gap: 18px; }
.elementor-pagination .page-numbers { color: var(--tptf-marine); padding: 6px 4px; }
.elementor-pagination .page-numbers.current { border-bottom: 1.5px solid var(--tptf-marine); }
.elementor-pagination a.page-numbers:hover { color: var(--tptf-lavande); }
.tptf-carte h3.tptf-carte-nom { overflow-wrap: normal; word-break: normal; hyphens: manual; }
/* Case « Promotion du moment » inseree dans la grille : photo carree comme les cartes */
body .tptf-promo-case > a > .e-con.e-con:first-child { aspect-ratio: 1 / 1 !important; height: auto !important; min-height: 0 !important; background-size: cover !important; background-position: center !important; }
.tptf-promo-case .elementor-heading-title { font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif; }

/* =========================================================
   HAUT DE LA BOUTIQUE [tptf_boutique_tete] et barre [tptf_boutique_barre]
   ========================================================= */
.tptf-boutique-tete { position: relative; isolation: isolate; max-width: 1280px; margin: 0 auto; padding: 64px 48px 28px; display: flex; flex-direction: column; gap: 16px; align-items: center; text-align: center; box-sizing: border-box; color: var(--tptf-marine); }
.tptf-boutique-tete .tptf-surtitre { margin: 0; font-size: 17px; }
.tptf-boutique-tete h1.tptf-boutique-titre { margin: 0 !important; padding: 0 !important; font-family: inherit; font-size: 34px !important; font-weight: 400 !important; font-style: normal !important; line-height: 1.15 !important; text-transform: uppercase !important; letter-spacing: .06em !important; color: var(--tptf-marine); }
.tptf-boutique-texte { max-width: 760px; font-size: 20px; line-height: 1.35; }
.tptf-boutique-texte p { margin: 0; }
.tptf-branche { position: absolute; z-index: -1; pointer-events: none; background: var(--tptf-lavande); opacity: .55; -webkit-mask: var(--m) center / contain no-repeat; mask: var(--m) center / contain no-repeat; }
.tptf-branche-g { --m: url("/wp-content/uploads/2026/03/gD8lRh.tif.svg"); left: -99px; top: 36px; width: 221px; height: 221px; transform: rotate(-18deg); }
.tptf-branche-d { --m: url("/wp-content/uploads/2026/03/Group.svg"); right: -82px; top: 70px; width: 182px; height: 182px; transform: rotate(160deg); }
.tptf-engagements { list-style: none; max-width: 1280px; margin: 0 auto; padding: 16px 48px 28px; display: flex; gap: 24px; justify-content: space-between; box-sizing: border-box; }
.tptf-engagements li { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; font-size: 19px; line-height: 1.2; color: var(--tptf-marine); margin: 0; }
.tptf-engagements img { width: 116px !important; height: auto !important; display: block; }
.tptf-boutique-barre { display: flex; justify-content: space-between; align-items: center; gap: 24px; font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif; }
.tptf-puces { display: flex; gap: 8px; flex-wrap: wrap; }
.tptf-puce, .tptf-btn-filtre { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid var(--tptf-mauve); padding: 8px 14px; font-size: 15px; line-height: 1.2; white-space: nowrap; color: var(--tptf-marine) !important; background: #fff; text-decoration: none !important; transition: border-color .2s, background .2s, color .2s; }
.tptf-puce:hover { border-color: var(--tptf-marine); }
.tptf-puce.est-actif { background: var(--tptf-marine); border-color: var(--tptf-marine); color: #fff !important; }
.tptf-barre-droite { display: flex; gap: 12px; align-items: center; flex: 0 0 auto; }
.tptf-nb { font-size: 15px; color: var(--tptf-avis); white-space: nowrap; }
.tptf-btn-filtre { border-color: var(--tptf-marine); }
.tptf-btn-filtre:hover { background: var(--tptf-marine); color: #fff !important; }
@media (max-width: 1024px) {
	.tptf-boutique-barre { flex-direction: column; align-items: stretch; }
	.tptf-barre-droite { justify-content: space-between; }
	.tptf-engagements { overflow-x: auto; scroll-snap-type: x mandatory; justify-content: flex-start; }
	.tptf-engagements li { flex: 0 0 120px; scroll-snap-align: start; }
}
@media (max-width: 767px) {
	.tptf-boutique-tete { padding: 40px 20px 20px; gap: 12px; }
	.tptf-boutique-tete .tptf-surtitre { font-size: 15px; }
	.tptf-boutique-tete h1.tptf-boutique-titre { font-size: 26px !important; }
	.tptf-boutique-texte { font-size: 18px; }
	.tptf-branche-g { width: 140px; height: 140px; left: -70px; }
	.tptf-branche-d { width: 120px; height: 120px; right: -60px; }
	.tptf-engagements { padding: 8px 20px 20px; gap: 12px; }
	.tptf-engagements li { flex: 0 0 96px; font-size: 16px; gap: 10px; }
	.tptf-engagements img { width: 80px !important; }
	.tptf-puces { flex-wrap: nowrap; overflow-x: auto; margin: 0 -20px; padding: 0 20px 4px; scrollbar-width: none; }
	.tptf-puces::-webkit-scrollbar { display: none; }
}

/* =========================================================
   PAGE PRODUIT [tptf_produit_tete], formulaire d achat, [tptf_produit_assurances]
   ========================================================= */
.tptf-produit-tete { display: flex; flex-direction: column; gap: 18px; color: var(--tptf-marine); font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif; }
.tptf-produit-tete p.tptf-produit-zone { margin: 0 0 -10px !important; font-family: "Aesthetic White", cursive; font-size: 44px; line-height: 1; color: var(--tptf-lavande); }
.tptf-produit-tete h1.tptf-produit-nom { margin: 0 !important; padding: 0 !important; font-family: inherit !important; font-size: 34px !important; font-weight: 400 !important; font-style: normal !important; line-height: 1.15 !important; text-transform: uppercase !important; letter-spacing: .06em !important; color: var(--tptf-marine); }
.tptf-produit-avis { display: inline-flex; align-items: center; gap: 6px; font-size: 16px; color: var(--tptf-avis) !important; align-self: flex-start; }
.tptf-produit-avis:hover .tptf-avis-nombre { text-decoration: underline; text-underline-offset: 3px; }
.tptf-produit-desc { font-size: 20px; line-height: 1.35; }
.tptf-produit-desc p { margin: 0 0 .6em; }
.tptf-produit-desc p:last-child { margin-bottom: 0; }
.tptf-produit-desc.est-replie { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.tptf-produit-desc.est-replie p { display: inline; }
.tptf-produit-tete button.tptf-produit-plus { align-self: flex-start; margin: -10px 0 0; padding: 0; background: none !important; border: 0; box-shadow: none; font-family: inherit; font-size: 16px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--tptf-texte-doux) !important; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; min-height: 0; line-height: 1.3; }
.tptf-produit-prix { margin: 0; font-size: 26px; line-height: 1.2; }
.tptf-produit-prix .woocommerce-price-suffix { font-size: 16px; color: var(--tptf-avis); margin-left: .3em; }
/* Formulaire d achat (widget WooCommerce du gabarit) */
.bouton-add-to-cart .ast-stock-detail:has(.in-stock) { display: none; }
.bouton-add-to-cart .ast-stock-detail { margin: 0 0 12px; font-size: 17px; color: var(--tptf-avis); }
.bouton-add-to-cart form.cart { display: flex; flex-direction: column; gap: 14px; margin: 0 !important; }
.bouton-add-to-cart .e-atc-qty-button-holder { display: flex !important; gap: 18px; align-items: stretch; width: 100%; }
body .elementor-widget-woocommerce-product-add-to-cart.bouton-add-to-cart .quantity { display: inline-flex !important; align-items: center; border: 1px solid var(--tptf-mauve); margin: 0 !important; height: auto; flex: 0 0 auto; }
.bouton-add-to-cart .quantity .minus, .bouton-add-to-cart .quantity .plus { width: 44px; height: 54px; display: flex; align-items: center; justify-content: center; border: 0 !important; background: none !important; font-size: 22px; color: var(--tptf-marine) !important; }
.bouton-add-to-cart .quantity input.qty { width: 30px !important; min-height: 0; height: 54px; border: 0 !important; background: none; text-align: center; font-size: 20px; color: var(--tptf-marine); padding: 0; -moz-appearance: textfield; }
.bouton-add-to-cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; }
.bouton-add-to-cart button.single_add_to_cart_button { flex: 1 1 auto; margin: 0 !important; background: var(--tptf-marine) !important; color: #fff !important; border: 1.5px solid var(--tptf-marine) !important; border-radius: 0 !important; padding: 0 16px !important; min-height: 56px; font-size: 17px !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase; }
.bouton-add-to-cart button.single_add_to_cart_button:hover { background: #fff !important; color: var(--tptf-marine) !important; }
.bouton-add-to-cart input#aqbp_quick_buy_btn { width: 100%; margin: 0 !important; background: transparent !important; color: var(--tptf-marine) !important; border: 1.5px solid var(--tptf-marine) !important; border-radius: 0 !important; padding: 15px 28px !important; font-family: inherit; font-size: 17px !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase; cursor: pointer; }
.bouton-add-to-cart input#aqbp_quick_buy_btn:hover { background: var(--tptf-marine) !important; color: #fff !important; }
.bouton-add-to-cart .ppc-button-wrapper { margin-top: 14px; }
/* Assurances et engagements */
.tptf-produit-assur { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 16px; color: var(--tptf-marine); }
.tptf-produit-assur li { display: flex; align-items: center; gap: 10px; margin: 0; }
.tptf-produit-assur svg { color: var(--tptf-lavande); flex: 0 0 auto; }
.tptf-produit-engag { list-style: none; margin: 0; padding: 20px 0 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px 12px; border-top: 1px solid var(--tptf-filet); }
.tptf-produit-engag li { display: flex; flex-direction: column; align-items: center; gap: 8px; min-width: 0; text-align: center; font-size: 14px; line-height: 1.2; color: var(--tptf-marine); margin: 0; }
.tptf-produit-engag img { width: 67px !important; height: auto !important; display: block; }
/* Branche decorative de la colonne photos : lavande */
.elementor-38381 .elementor-element-aa31906 svg, .elementor-38381 .elementor-element-aa31906 img { filter: brightness(0) saturate(100%) invert(58%) sepia(19%) saturate(800%) hue-rotate(196deg) brightness(95%) contrast(88%); opacity: .55; }
@media (max-width: 767px) {
	.tptf-produit-zone { font-size: 36px; }
	.tptf-produit-tete h1.tptf-produit-nom { font-size: 26px !important; }
	.tptf-produit-desc { font-size: 18px; }
	.tptf-produit-prix { font-size: 23px; }
	.tptf-produit-engag { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px 6px; }
	.tptf-produit-engag img { width: 52px !important; }
	.tptf-produit-engag li { font-size: 12px; }
	.bouton-add-to-cart .e-atc-qty-button-holder { gap: 10px; }
}
/* Sections du bas de la page produit */
.tptf-deco-lavande svg, .tptf-deco-lavande img { filter: brightness(0) saturate(100%) invert(58%) sepia(19%) saturate(800%) hue-rotate(196deg) brightness(95%) contrast(88%); opacity: .55; }
.tptf-acc-details .e-n-accordion-item-title, .tptf-acc-faq .e-n-accordion-item-title { padding: 22px 0 !important; border: 0 !important; border-bottom: 1px solid var(--tptf-filet) !important; background: none !important; }
.tptf-acc-details .e-n-accordion-item-title-text { font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif !important; font-size: 26px !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1.2 !important; color: var(--tptf-marine) !important; }
.tptf-acc-faq .e-n-accordion-item-title-text { font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif !important; font-size: 22px !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1.3 !important; color: var(--tptf-marine) !important; }
.tptf-acc-details .e-n-accordion-item > [role="region"], .tptf-acc-faq .e-n-accordion-item > [role="region"] { padding: 4px 0 28px; max-width: 820px; font-size: 20px; line-height: 1.35; }
.tptf-acc-details .e-n-accordion-item-title-icon, .tptf-acc-faq .e-n-accordion-item-title-icon { color: var(--tptf-marine); }
.tptf-section-bleuet > .e-con-inner { flex-direction: row !important; flex-wrap: wrap !important; justify-content: center; gap: 32px 16px !important; }
.tptf-section-bleuet > .e-con-inner > .elementor-widget { flex: 0 0 100%; width: 100%; }
.tptf-section-bleuet > .e-con-inner > .tptf-stat { flex: 1 1 0 !important; width: auto !important; min-width: 0; flex-direction: column !important; align-items: flex-start !important; justify-content: flex-start !important; gap: 10px !important; padding: 28px 22px !important; min-height: 0 !important; }
.tptf-stat .elementor-heading-title { font-size: 48px !important; line-height: 1 !important; padding: 0 !important; }
.tptf-stat .elementor-widget-text-editor, .tptf-stat .elementor-widget-text-editor p { font-size: 16px !important; line-height: 1.3 !important; text-align: left !important; margin: 0; }
.tptf-section-bleuet .elementor-widget-heading:first-child .elementor-heading-title { font-size: 64px !important; padding: 0 !important; }
.tptf-section-routine .tptf-carte { background: #fff; padding-bottom: 24px; }
.tptf-section-routine .tptf-carte > :not(.tptf-carte-media) { padding-left: 24px; padding-right: 24px; }
.tptf-section-routine .tptf-carte .tptf-pastilles { padding-top: 14px; }
@media (max-width: 1024px) {
	.tptf-section-bleuet > .e-con-inner > .tptf-stat { flex: 0 0 calc(50% - 8px) !important; }
}
@media (max-width: 767px) {
	.tptf-acc-details .e-n-accordion-item-title-text { font-size: 21px !important; }
	.tptf-acc-faq .e-n-accordion-item-title-text { font-size: 19px !important; }
	.tptf-section-bleuet > .e-con-inner { padding-left: 20px; padding-right: 20px; }
	.tptf-section-bleuet > .e-con-inner > .tptf-stat { flex: 0 0 100% !important; flex-direction: row !important; align-items: center !important; gap: 16px !important; padding: 18px !important; }
	.tptf-stat .elementor-heading-title { font-size: 36px !important; }
	.tptf-section-bleuet .elementor-widget-heading:first-child .elementor-heading-title { font-size: 48px !important; }
	.tptf-section-routine .tptf-carte > :not(.tptf-carte-media) { padding-left: 14px; padding-right: 14px; }
}
/* Avis (Customer Reviews) : etoiles lavande partout */
.cr-histogram-rating-icon, #avis .cr-histogram-rating-icon path { color: var(--tptf-lavande) !important; fill: currentColor; }
.bouton-add-to-cart .stock.out-of-stock, .bouton-add-to-cart p.stock { color: var(--tptf-marine) !important; font-size: 19px; font-weight: 400; font-style: italic; }
.tptf-cert-montant label, .tptf-cert-destinataire h3 { font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif; color: var(--tptf-marine); }
.tptf-cert-destinataire h3 { font-size: 22px !important; font-weight: 400; padding: 0 !important; margin: 8px 0 4px; }
.tptf-cert-montant input, .tptf-cert-destinataire input, .tptf-cert-destinataire textarea { border: 1px solid var(--tptf-mauve) !important; border-radius: 0 !important; font-size: 18px; padding: 12px 14px !important; }

/* =========================================================
   ACCUEIL (page 9)
   ========================================================= */
.tptf-hero, .tptf-acc-maison, .tptf-acc-amelie, .tptf-acc-engag, .tptf-acc-pdv, .tptf-message-cle { --tptf-largeur: 1280px; }
.tptf-acc-section, .tptf-maison-int, .tptf-pdv-int { width: 100%; max-width: 1280px !important; margin: 0 auto; box-sizing: border-box; padding-left: 48px !important; padding-right: 48px !important; }
.tptf-acc-section .elementor-widget, .tptf-acc-maison .elementor-widget, .tptf-acc-amelie .elementor-widget, .tptf-acc-pdv .elementor-widget, .tptf-hero .elementor-widget { margin: 0 !important; }
.tptf-acc-section p, .tptf-acc-maison p, .tptf-acc-amelie p, .tptf-acc-pdv p, .tptf-hero p, .tptf-message-cle p { margin: 0; }
/* Titres communs */
.tptf-h2 .elementor-heading-title { font-size: 34px !important; line-height: 1.15 !important; text-transform: uppercase !important; letter-spacing: .06em !important; font-weight: 400 !important; padding: 0 !important; color: var(--tptf-marine); }
.tptf-texte { font-size: 20px; line-height: 1.35; max-width: 520px; }
.tptf-accroche { font-size: 22px; font-style: italic; line-height: 1.4; max-width: 440px; }
.tptf-surtitre-w, .tptf-surtitre-m { font-size: 17px; text-transform: uppercase; letter-spacing: .16em; }
.tptf-surtitre-m { color: var(--tptf-texte-doux); }
.tptf-cursive p { font-family: "Aesthetic White", cursive; font-size: 56px; line-height: 1.1; color: var(--tptf-lavande); }
.tptf-acc-entete { justify-content: space-between !important; align-items: flex-end !important; gap: 24px !important; margin-bottom: 36px; }
.tptf-lien-widget .tptf-lien-action { white-space: nowrap; }
.tptf-rang-boutons { align-items: center !important; gap: 28px !important; flex-wrap: wrap !important; }
.tptf-btn-plein .elementor-button, .tptf-btn-mauve .elementor-button, .tptf-btn-contour-blanc .elementor-button { border-radius: 0 !important; padding: 16px 30px !important; font-size: 17px !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase; }
.tptf-btn-plein .elementor-button { background: var(--tptf-marine) !important; color: #fff !important; border: 1.5px solid var(--tptf-marine) !important; }
.tptf-btn-plein .elementor-button:hover { background: #fff !important; color: var(--tptf-marine) !important; }
.tptf-btn-contour-blanc .elementor-button { background: transparent !important; color: #fff !important; border: 1.5px solid #fff !important; }
.tptf-btn-contour-blanc .elementor-button:hover { background: #fff !important; color: var(--tptf-marine) !important; }
/* Banniere */
.tptf-hero .swiper, .tptf-hero .e-n-carousel { overflow: hidden; }
.tptf-hero-diapo { position: relative; min-height: 680px !important; justify-content: center !important; isolation: isolate; }
.tptf-hero-diapo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(270deg, #211747 0%, rgba(33,23,71,.5) 36%, rgba(33,23,71,0) 60%); }
.tptf-hero-texte { width: 100%; max-width: 1280px !important; margin: 0 auto; padding: 80px 48px !important; box-sizing: border-box; align-items: flex-end !important; }
.tptf-hero-texte > * { width: 100%; max-width: 500px; color: #fff; }
.tptf-hero-texte > .elementor-element { margin-bottom: 18px !important; }
.tptf-titre-diapo .elementor-heading-title { font-size: 48px !important; line-height: 1.1 !important; text-transform: uppercase !important; letter-spacing: .06em !important; color: #fff !important; font-weight: 400 !important; padding: 0 !important; }
.tptf-hero-texte .tptf-accroche { color: #fff; }
.tptf-hero-texte .tptf-lien-action { color: #fff; }
.tptf-hero .swiper-pagination { bottom: 28px !important; }
.tptf-hero .swiper-pagination-bullet { width: 8px; height: 8px; background: rgba(255,255,255,.55); opacity: 1; border-radius: 0; transition: width .2s; }
.tptf-hero .swiper-pagination-bullet-active { width: 22px; background: #fff; }
/* Message cle */
.tptf-message-cle { align-items: center !important; text-align: center; padding: 88px 48px 72px !important; gap: 22px !important; }
.tptf-branche-cle { display: block; width: 120px; height: 90px; background: var(--tptf-lavande); -webkit-mask: url("/wp-content/uploads/2026/03/Group.svg") center / contain no-repeat; mask: url("/wp-content/uploads/2026/03/Group.svg") center / contain no-repeat; }
.tptf-h1-cle { max-width: 900px; }
.tptf-h1-cle .elementor-heading-title { font-size: 38px !important; font-style: italic !important; line-height: 1.25 !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; padding: 0 !important; color: var(--tptf-marine); }
/* Tuiles de categories */
.tptf-tuiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.tptf-tuile { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; color: #fff !important; }
.tptf-tuile img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; transition: transform .4s; }
.tptf-tuile:hover img { transform: scale(1.03); }
.tptf-tuile span { position: absolute; left: 0; right: 0; bottom: 0; padding: 72px 24px 22px; background: linear-gradient(transparent, rgba(33,23,71,.88)); font-size: 24px; line-height: 1.15; letter-spacing: .02em; }
.tptf-acc-cats { padding-top: 16px !important; }
.tptf-acc-aimes { padding-top: 96px !important; padding-bottom: 96px !important; }
/* Collection Maison */
.tptf-acc-maison { background: var(--tptf-mauve); position: relative; overflow: hidden; }
.tptf-maison-int { padding-left: 0 !important; padding-right: 0 !important; align-items: stretch !important; }
.tptf-maison-photo { flex: 1 1 50% !important; min-height: 520px; }
.tptf-img-cover, .tptf-img-cover .elementor-widget-container { height: 100%; }
.tptf-img-cover img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.tptf-maison-texte { flex: 1 1 50% !important; padding: 72px !important; gap: 20px !important; justify-content: center !important; color: var(--tptf-marine); }
.tptf-h2-maison .elementor-heading-title { font-family: "Ethic Serif", Georgia, serif !important; font-weight: 300 !important; font-size: 52px !important; line-height: 1.1 !important; text-transform: none !important; letter-spacing: 0 !important; padding: 0 !important; color: var(--tptf-marine); }
.tptf-accroche-maison p { font-family: "Ethic Serif", Georgia, serif; font-weight: 300; font-style: italic; font-size: 24px; line-height: 1.4; }
.tptf-rangees { display: flex; flex-direction: column; gap: 10px; padding: 8px 0; max-width: 460px; }
.tptf-rangee { display: flex; align-items: center; gap: 16px; background: rgba(255,255,255,.55); padding: 12px; color: var(--tptf-marine) !important; transition: background .2s; }
.tptf-rangee:hover { background: rgba(255,255,255,.85); }
.tptf-rangee img { width: 64px !important; height: 64px !important; object-fit: cover; flex: 0 0 auto; }
.tptf-rangee-txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.tptf-rangee-nom { font-size: 22px; line-height: 1.1; }
.tptf-rangee-avis { font-size: 15px; color: var(--tptf-avis); display: flex; align-items: center; gap: 4px; }
.tptf-rangee-avis .tptf-etoiles { font-size: 13px; }
.tptf-rangee-prix { font-size: 19px; white-space: nowrap; }
/* Bleuet sauvage */
.tptf-acc-bleuet { padding-top: 112px !important; padding-bottom: 112px !important; gap: 64px !important; align-items: center !important; }
.tptf-bleuet-texte, .tptf-bleuet-photo { flex: 1 1 50% !important; }
.tptf-bleuet-texte { gap: 20px !important; }
.tptf-img-carree img { width: 100% !important; aspect-ratio: 1 / 1; object-fit: cover; display: block; }
/* Engagements */
.tptf-acc-engag { background: var(--tptf-brume); }
.tptf-engagements-5 { padding: 48px !important; }
.tptf-engagements-5 img { width: 101px !important; }
.tptf-engagements-5 li { font-size: 17px; }
/* Mot de la fondatrice */
.tptf-acc-amelie { position: relative; min-height: 640px !important; justify-content: center !important; isolation: isolate; }
.tptf-acc-amelie::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(270deg, rgba(33,23,71,.82) 0%, rgba(33,23,71,.55) 40%, rgba(33,23,71,0) 66%); }
.tptf-amelie-texte { width: 100%; max-width: 1280px !important; margin: 0 auto; padding: 96px 48px !important; box-sizing: border-box; align-items: flex-end !important; gap: 22px !important; }
.tptf-amelie-texte > * { width: 100%; max-width: 500px; color: #fff; }
.tptf-citation blockquote { margin: 0; padding: 0; border: 0; font-size: 26px; font-style: italic; line-height: 1.4; color: #fff; quotes: none; }
.tptf-signature-bloc p { display: flex; align-items: baseline; gap: 14px; }
.tptf-signature { font-family: "Aesthetic White", cursive; font-size: 46px; line-height: 1; color: var(--tptf-brume); }
.tptf-signature-role { font-size: 17px; letter-spacing: .06em; }
/* Points de vente */
.tptf-acc-pdv { background: #fff; overflow: hidden; }
.tptf-pdv-int { align-items: center !important; gap: 64px !important; }
.tptf-pdv-cartes { flex: 1 1 50% !important; min-height: 600px; position: relative; overflow: hidden; align-self: stretch !important; }
.tptf-cartes-tombent { position: absolute !important; top: 50%; right: 0; transform: translateY(-50%); }
.tptf-cartes-tombent img { width: 560px !important; max-width: none !important; height: auto; display: block; }
.tptf-pdv-texte { flex: 1 1 50% !important; padding: 112px 0 !important; gap: 20px !important; }
@media (max-width: 1024px) {
	.tptf-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tptf-maison-texte { padding: 48px !important; }
	.tptf-h2-maison .elementor-heading-title { font-size: 44px !important; }
	.tptf-pdv-cartes { min-height: 460px; }
}
@media (max-width: 767px) {
	.tptf-acc-section, .tptf-maison-int, .tptf-pdv-int { padding-left: 20px !important; padding-right: 20px !important; }
	.tptf-h2 .elementor-heading-title { font-size: 26px !important; }
	.tptf-texte { font-size: 18px; }
	.tptf-accroche { font-size: 19px; }
	.tptf-surtitre-w, .tptf-surtitre-m { font-size: 15px; }
	.tptf-cursive p { font-size: 44px; }
	.tptf-acc-entete { flex-direction: column !important; align-items: flex-start !important; gap: 12px !important; margin-bottom: 24px; }
	.tptf-hero-diapo { min-height: 0 !important; justify-content: flex-start !important; background-size: auto 420px !important; background-position: center top !important; background-color: var(--tptf-marine); padding-top: 420px !important; }
	.tptf-hero-diapo::before { display: none; }
	.tptf-hero-texte { padding: 32px 20px 56px !important; align-items: flex-start !important; }
	.tptf-titre-diapo .elementor-heading-title { font-size: 32px !important; }
	.tptf-message-cle { padding: 56px 20px 40px !important; }
	.tptf-h1-cle .elementor-heading-title { font-size: 26px !important; }
	.tptf-tuiles { gap: 12px; }
	.tptf-tuile span { font-size: 19px; padding: 56px 14px 14px; }
	.tptf-acc-aimes { padding-top: 64px !important; padding-bottom: 64px !important; }
	.tptf-acc-aimes .tptf-grille { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin: 0 -20px; padding: 0 20px 8px; scrollbar-width: none; }
	.tptf-acc-aimes .tptf-grille .tptf-carte { flex: 0 0 72%; scroll-snap-align: start; }
	.tptf-maison-int, .tptf-acc-bleuet, .tptf-pdv-int { flex-direction: column !important; }
	.tptf-maison-int { padding: 0 !important; }
	.tptf-maison-photo { min-height: 360px; width: 100%; }
	.tptf-maison-texte { padding: 40px 20px 56px !important; }
	.tptf-h2-maison .elementor-heading-title { font-size: 38px !important; }
	.tptf-acc-bleuet { padding-top: 64px !important; padding-bottom: 64px !important; gap: 32px !important; }
	.tptf-engagements-5 { padding: 32px 20px !important; }
	.tptf-engagements-5 img { width: 72px !important; }
	.tptf-acc-amelie { min-height: 0 !important; background-size: auto 380px !important; background-position: left top !important; background-color: var(--tptf-marine); padding-top: 380px !important; }
	.tptf-acc-amelie::before { display: none; }
	.tptf-amelie-texte { padding: 40px 20px 56px !important; align-items: flex-start !important; }
	.tptf-citation blockquote { font-size: 21px; }
	.tptf-pdv-cartes { min-height: 320px; width: 100%; }
	.tptf-cartes-tombent img { width: 380px !important; }
	.tptf-pdv-texte { padding: 0 0 64px !important; }
}
/* Texte de la banniere et de la citation : colonne de 500 px collee a droite */
body .tptf-hero-texte.e-con, body .tptf-amelie-texte.e-con { width: 100% !important; --width: 100%; }
body .tptf-hero-texte > .elementor-element, body .tptf-amelie-texte > .elementor-element { width: 100% !important; max-width: 500px !important; margin-left: auto !important; margin-right: 0 !important; }
@media (max-width: 767px) { body .tptf-hero-texte > .elementor-element, body .tptf-amelie-texte > .elementor-element { margin-left: 0 !important; } }
@media (max-width: 767px) { body .tptf-acc-aimes .tptf-grille { margin: 0 -20px !important; padding: 0 20px 8px !important; scroll-padding-left: 20px; } }

/* =========================================================
   PANIER LATERAL [tptf-panier.php]
   ========================================================= */
.tptf-pl-voile { position: fixed; inset: 0; z-index: 100000; background: rgba(33,23,71,.55); opacity: 0; transition: opacity .25s; }
.tptf-pl-voile.est-ouvert { opacity: 1; }
.tptf-pl { position: fixed; top: 0; right: 0; bottom: 0; z-index: 100001; width: 460px; max-width: 100%; background: #fff; color: var(--tptf-marine); font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif; font-size: 19px; transform: translateX(100%); transition: transform .25s ease; box-shadow: -12px 0 40px rgba(33,23,71,.18); }
.tptf-pl.est-ouvert { transform: none; }
@media (prefers-reduced-motion: reduce) { .tptf-pl, .tptf-pl-voile { transition: none; } }
.tptf-pl .tptf-panier-contenu { height: 100%; display: flex; flex-direction: column; }
.tptf-pl-tete { display: flex; justify-content: space-between; align-items: center; padding: 22px 28px; border-bottom: 1px solid var(--tptf-brume); }
.tptf-pl h2.tptf-pl-titre { margin: 0 !important; padding: 0 !important; font-family: inherit !important; font-size: 22px !important; font-weight: 400 !important; text-transform: uppercase !important; letter-spacing: .08em !important; line-height: 1.2 !important; color: var(--tptf-marine); }
.tptf-pl button { font-family: inherit; box-shadow: none; text-transform: none; letter-spacing: 0; min-height: 0; border-radius: 0; }
.tptf-pl button.tptf-pl-fermer { background: none !important; border: 0; padding: 10px; color: var(--tptf-marine) !important; margin: -10px; cursor: pointer; }
.tptf-pl-livraison { padding: 18px 28px; background: var(--tptf-brume); }
.tptf-pl-livraison p { margin: 0 0 10px; font-size: 17px; }
.tptf-pl-barre { height: 6px; background: #fff; }
.tptf-pl-barre span { display: block; height: 100%; background: var(--tptf-marine); transition: width .3s; }
.tptf-pl-corps { flex: 1 1 auto; overflow-y: auto; padding: 8px 28px; -webkit-overflow-scrolling: touch; }
.tptf-pl-items { list-style: none; margin: 0; padding: 0; }
.tptf-pl-item { display: flex; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--tptf-brume); margin: 0; transition: opacity .2s; }
.tptf-pl-item.est-occupe { opacity: .45; pointer-events: none; }
.tptf-pl-item img { width: 92px !important; height: 92px !important; object-fit: cover; flex: 0 0 auto; display: block; }
.tptf-pl-info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.tptf-pl-ligne { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.tptf-pl-nom { font-size: 20px; line-height: 1.15; color: var(--tptf-marine) !important; }
.tptf-pl-prix { white-space: nowrap; }
.tptf-pl-meta { font-size: 14px; color: var(--tptf-avis); line-height: 1.3; }
.tptf-pl-actions { display: flex; align-items: center; gap: 16px; }
.tptf-pl-qte { display: inline-flex; align-items: center; border: 1px solid var(--tptf-mauve); }
.tptf-pl-qte button { background: none !important; border: 0; width: 40px; height: 38px; font-size: 20px; color: var(--tptf-marine) !important; cursor: pointer; padding: 0; }
.tptf-pl-qte button:disabled { opacity: .35; cursor: default; }
.tptf-pl-qte span { width: 32px; text-align: center; font-size: 18px; }
.tptf-pl button.tptf-pl-retirer { background: none !important; border: 0; padding: 0; font-size: 15px; color: var(--tptf-texte-doux) !important; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.tptf-pl-sugg { padding: 24px 0 8px; }
.tptf-pl-surtitre { margin: 0 0 10px; font-size: 15px; text-transform: uppercase; letter-spacing: .14em; }
.tptf-pl-sugg-carte { display: flex; align-items: center; gap: 14px; background: var(--tptf-fond-pale); padding: 12px; }
.tptf-pl-sugg-carte img { width: 60px !important; height: 60px !important; object-fit: cover; }
.tptf-pl-sugg-carte > div { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; font-size: 16px; }
.tptf-pl-sugg-carte > div a { font-size: 19px; color: var(--tptf-marine) !important; line-height: 1.15; }
.tptf-pl a.tptf-pl-ajouter { border: 1.5px solid var(--tptf-marine); color: var(--tptf-marine) !important; background: none; font-size: 14px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 10px 14px; white-space: nowrap; }
.tptf-pl a.tptf-pl-ajouter:hover { background: var(--tptf-marine); color: #fff !important; }
.tptf-pl a.tptf-pl-ajouter.loading { opacity: .5; }
.tptf-pl .added_to_cart { display: none !important; }
.tptf-pl-pied { border-top: 1px solid var(--tptf-brume); padding: 22px 28px 28px; display: flex; flex-direction: column; gap: 12px; }
.tptf-pl-total { display: flex; justify-content: space-between; font-size: 20px; }
.tptf-pl-note { margin: -6px 0 4px; font-size: 15px; color: var(--tptf-texte-doux); }
.tptf-pl a.tptf-pl-btn { display: block; text-align: center; background: var(--tptf-marine); color: #fff !important; border: 1.5px solid var(--tptf-marine); font-size: 17px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 17px 20px; }
.tptf-pl a.tptf-pl-btn:hover { background: #fff; color: var(--tptf-marine) !important; }
.tptf-pl a.tptf-pl-lien { text-align: center; font-size: 16px; color: var(--tptf-texte-doux) !important; text-decoration: underline; text-underline-offset: 3px; }
.tptf-pl-vide { padding: 48px 28px; display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.tptf-pl-vide p { margin: 0; }
@media (max-width: 767px) {
	.tptf-pl { width: 100%; font-size: 17px; }
	.tptf-pl-tete, .tptf-pl-livraison, .tptf-pl-pied { padding-left: 20px; padding-right: 20px; }
	.tptf-pl-corps { padding: 4px 20px; }
	.tptf-pl-item img { width: 76px !important; height: 76px !important; }
	.tptf-pl-nom { font-size: 18px; }
}

/* =========================================================
   TITRES DE PAGE, PANIER, CAISSE, COMPTE (gabarits WooCommerce)
   ========================================================= */
.woocommerce-cart .entry-title, .woocommerce-checkout .entry-title, .woocommerce-account .entry-title, .page .entry-header .entry-title { font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif !important; font-size: 34px !important; font-style: normal !important; font-weight: 400 !important; text-transform: uppercase; letter-spacing: .06em; line-height: 1.15 !important; color: var(--tptf-marine); padding: 0 !important; }
.woocommerce-page .woocommerce { font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif; color: var(--tptf-marine); font-size: 18px; }
.woocommerce-page .woocommerce h2, .woocommerce-page .woocommerce h3 { font-family: inherit !important; font-weight: 400 !important; text-transform: uppercase; letter-spacing: .06em; font-size: 22px !important; padding: 0 0 12px !important; color: var(--tptf-marine); }
/* Champs */
.woocommerce-page .woocommerce form .input-text, .woocommerce-page .woocommerce form select, .woocommerce-page .select2-container .select2-selection, .woocommerce-page .woocommerce form textarea { border: 1px solid var(--tptf-mauve) !important; border-radius: 0 !important; background: #fff !important; font-family: inherit; font-size: 17px !important; color: var(--tptf-marine) !important; padding: 12px 14px !important; min-height: 48px; box-shadow: none !important; }
.woocommerce-page .woocommerce form .input-text:focus, .woocommerce-page .woocommerce form select:focus { border-color: var(--tptf-marine) !important; outline: 2px solid var(--tptf-brume); }
.woocommerce-page .woocommerce form .form-row label { font-size: 15px; font-weight: 700; letter-spacing: .02em; color: var(--tptf-marine); }
.woocommerce-page .woocommerce form .form-row .required { color: var(--tptf-texte-doux); }
/* Boutons */
.woocommerce-page .woocommerce .button, .woocommerce-page .woocommerce button.button, .woocommerce-page .woocommerce a.button, .woocommerce-page #place_order, .woocommerce-page .woocommerce a.checkout-button { background: var(--tptf-marine) !important; color: #fff !important; border: 1.5px solid var(--tptf-marine) !important; border-radius: 0 !important; font-family: inherit; font-size: 16px !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase; padding: 14px 24px !important; line-height: 1.2 !important; box-shadow: none !important; }
.woocommerce-page .woocommerce .button:hover, .woocommerce-page #place_order:hover, .woocommerce-page .woocommerce a.checkout-button:hover { background: #fff !important; color: var(--tptf-marine) !important; }
.woocommerce-page .woocommerce button[name="update_cart"] { background: transparent !important; color: var(--tptf-marine) !important; }
.woocommerce-page .woocommerce button[name="update_cart"]:disabled { opacity: .45; }
.woocommerce-page .woocommerce a.checkout-button { font-size: 17px !important; padding: 18px 24px !important; }
/* Messages */
.woocommerce-page .woocommerce-message, .woocommerce-page .woocommerce-info, .woocommerce-page .woocommerce-error { border: 0 !important; border-left: 3px solid var(--tptf-marine) !important; background: var(--tptf-fond-pale) !important; color: var(--tptf-marine) !important; font-size: 17px; padding: 16px 20px 16px 52px !important; }
.woocommerce-page .woocommerce-message { background: var(--tptf-sauge) !important; }
.woocommerce-page .woocommerce-error { background: var(--tptf-rose) !important; }
.woocommerce-page .woocommerce-message::before, .woocommerce-page .woocommerce-info::before { color: var(--tptf-marine) !important; }
.woocommerce-page .woocommerce-message .button { float: right; padding: 8px 16px !important; font-size: 14px !important; }
/* Tableau du panier */
.woocommerce-cart table.shop_table { border: 0 !important; border-radius: 0 !important; border-collapse: collapse; }
.woocommerce-cart table.shop_table th { background: none !important; font-size: 14px; text-transform: uppercase; letter-spacing: .12em; font-weight: 400; color: var(--tptf-texte-doux); border: 0 !important; border-bottom: 1px solid var(--tptf-filet) !important; padding: 12px 10px !important; }
.woocommerce-cart table.shop_table td { border: 0 !important; border-bottom: 1px solid var(--tptf-filet) !important; padding: 20px 10px !important; font-size: 18px; vertical-align: middle; }
.woocommerce-cart table.shop_table td.product-thumbnail img { width: 92px !important; height: 92px; object-fit: cover; }
.woocommerce-cart table.shop_table td.product-name a { font-size: 20px; color: var(--tptf-marine); }
.woocommerce-cart table.shop_table td.product-remove a.remove { color: var(--tptf-texte-doux) !important; border: 1px solid var(--tptf-mauve); border-radius: 50%; }
.woocommerce-cart table.shop_table td.product-remove a.remove:hover { background: var(--tptf-marine) !important; color: #fff !important; }
.woocommerce-cart .quantity { border: 1px solid var(--tptf-mauve); display: inline-flex !important; }
.woocommerce-cart .quantity .minus, .woocommerce-cart .quantity .plus { border: 0 !important; background: none !important; color: var(--tptf-marine) !important; width: 36px; }
.woocommerce-cart .quantity input.qty { border: 0 !important; min-height: 40px; padding: 0 !important; width: 36px !important; }
.woocommerce-cart table.shop_table td.actions { border-bottom: 0 !important; padding-top: 24px !important; }
.woocommerce-cart .coupon .input-text { min-width: 200px; }
/* Totaux */
.woocommerce-page .cart_totals, .woocommerce-checkout #order_review, .woocommerce-checkout .woocommerce-checkout-review-order { border: 0 !important; background: var(--tptf-fond-pale) !important; padding: 28px !important; border-radius: 0 !important; }
.woocommerce-page .cart_totals h2 { background: none !important; border: 0 !important; padding: 0 0 12px !important; }
.woocommerce-page .cart_totals table, .woocommerce-checkout table.shop_table { border: 0 !important; background: none !important; }
.woocommerce-page .cart_totals table th, .woocommerce-page .cart_totals table td, .woocommerce-checkout table.shop_table th, .woocommerce-checkout table.shop_table td { border: 0 !important; border-bottom: 1px solid var(--tptf-filet) !important; padding: 12px 0 !important; background: none !important; font-size: 17px; font-weight: 400; }
.woocommerce-page .cart_totals .order-total th, .woocommerce-page .cart_totals .order-total td, .woocommerce-checkout .order-total th, .woocommerce-checkout .order-total td { font-size: 20px !important; font-weight: 700 !important; border-bottom: 0 !important; }
/* Produits complementaires du panier */
.tptf-panier-routine { margin: 72px 0 24px; }
.tptf-panier-routine h2.tptf-panier-routine-titre { font-size: 34px !important; margin: 0 0 32px; padding: 0 !important; }
.woocommerce-cart .cart-collaterals .cross-sells { display: none; }
/* Caisse */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info { background: var(--tptf-fond-pale) !important; }
.woocommerce-checkout #customer_details h3 { border-bottom: 1px solid var(--tptf-filet); }
.woocommerce-checkout #payment { background: none !important; border-radius: 0 !important; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--tptf-filet) !important; padding: 0 0 16px !important; }
.woocommerce-checkout #payment div.payment_box { background: #fff !important; color: var(--tptf-marine) !important; border-radius: 0 !important; font-size: 16px; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff !important; }
.woocommerce-checkout #place_order { width: 100%; font-size: 17px !important; padding: 18px 24px !important; }
.woocommerce-checkout .woocommerce-privacy-policy-text, .woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text { font-size: 15px; }
/* Compte */
.woocommerce-account .woocommerce form.login, .woocommerce-account .woocommerce form.register { border: 0 !important; background: var(--tptf-fond-pale); border-radius: 0 !important; padding: 32px !important; max-width: 560px; }
.woocommerce-account .woocommerce form .show-password-input { background: none !important; border: 0 !important; color: var(--tptf-texte-doux) !important; padding: 0 12px !important; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--tptf-filet); }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--tptf-filet); margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 14px 4px; color: var(--tptf-marine); font-size: 18px; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { font-weight: 700; }
.woocommerce-account .woocommerce-LostPassword a, .woocommerce-account .lost_password a { color: var(--tptf-texte-doux); text-decoration: underline; text-underline-offset: 3px; font-size: 16px; }
@media (max-width: 767px) {
	.woocommerce-cart .entry-title, .woocommerce-checkout .entry-title, .woocommerce-account .entry-title, .page .entry-header .entry-title { font-size: 26px !important; }
	.tptf-panier-routine h2.tptf-panier-routine-titre { font-size: 26px !important; }
	.woocommerce-page .cart_totals, .woocommerce-checkout #order_review { padding: 20px !important; }
}

/* =========================================================
   BLOGUE [tptf_articles]
   ========================================================= */
.tptf-puces-blogue { margin-bottom: 40px; }
.tptf-articles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 32px; }
.tptf-article { position: relative; display: flex; flex-direction: column; gap: 10px; color: var(--tptf-marine); }
.tptf-article-img { display: block; overflow: hidden; background: var(--tptf-fond-pale); aspect-ratio: 4 / 3; }
.tptf-article-img img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; transition: transform .4s; }
.tptf-article:hover .tptf-article-img img { transform: scale(1.03); }
.tptf-article-cat { margin: 6px 0 0; font-size: 14px; text-transform: uppercase; letter-spacing: .14em; color: var(--tptf-texte-doux); }
.tptf-article h3.tptf-article-titre { margin: 0 !important; padding: 0 !important; font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif !important; font-size: 26px !important; font-weight: 400 !important; font-style: normal !important; line-height: 1.15 !important; text-transform: none !important; letter-spacing: 0 !important; }
.tptf-article-titre a { color: var(--tptf-marine); }
.tptf-article-lien::after { content: ""; position: absolute; inset: 0; }
.tptf-article:hover .tptf-article-titre a { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.tptf-article-extrait { margin: 0; font-size: 18px; line-height: 1.4; }
.tptf-article .tptf-lien-action { font-size: 15px; margin-top: 4px; }
.tptf-pagination { margin-top: 56px; display: flex; justify-content: center; gap: 16px; font-size: 17px; }
.tptf-pagination .page-numbers { color: var(--tptf-marine); padding: 6px 4px; }
.tptf-pagination .page-numbers.current { border-bottom: 1.5px solid var(--tptf-marine); }
@media (max-width: 1024px) { .tptf-articles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.tptf-articles { grid-template-columns: 1fr; gap: 40px; }
	.tptf-article h3.tptf-article-titre { font-size: 22px !important; }
	.tptf-puces-blogue { flex-wrap: nowrap; overflow-x: auto; }
}
/* Grilles placees dans une colonne etroite (ex. barre laterale d un article) : moins de colonnes */
.elementor-widget-shortcode > .elementor-widget-container, .elementor-widget-shortcode .elementor-shortcode { container-type: inline-size; }
@container (max-width: 700px) { .tptf-articles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tptf-grille { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@container (max-width: 420px) { .tptf-articles { grid-template-columns: 1fr; gap: 28px; } .tptf-article h3.tptf-article-titre { font-size: 20px !important; } .tptf-article-extrait { display: none; } }
.elementor-location-header .elementor-widget-shortcode > .elementor-widget-container, .elementor-location-header .elementor-shortcode, .elementor-location-footer .elementor-widget-shortcode > .elementor-widget-container, .elementor-location-footer .elementor-shortcode { container-type: normal; }
.tptf-article { text-align: left; }
.elementor-social-icon { background-color: var(--tptf-marine) !important; }
.elementor-social-icon:hover { background-color: var(--tptf-lavande) !important; }
/* Accordeons et bascules des pages (FAQ, etc.) : casse normale, taille du style kit */
.elementor-accordion .elementor-tab-title, .elementor-toggle .elementor-tab-title { font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif !important; font-size: 20px !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1.3 !important; color: var(--tptf-marine) !important; padding: 18px 0 !important; border: 0 !important; border-bottom: 1px solid var(--tptf-filet) !important; background: none !important; }
.elementor-accordion .elementor-tab-title a, .elementor-toggle .elementor-tab-title a { color: inherit !important; }
.elementor-accordion .elementor-accordion-item, .elementor-toggle .elementor-toggle-item { border: 0 !important; }
.elementor-accordion .elementor-tab-content, .elementor-toggle .elementor-tab-content { font-size: 19px; line-height: 1.4; padding: 6px 0 22px !important; border: 0 !important; color: var(--tptf-marine); }
.e-n-accordion:not(.tptf-acc-details .e-n-accordion):not(.tptf-acc-faq .e-n-accordion) .e-n-accordion-item-title-text { text-transform: none; }
/* Localisateur de points de vente (WP Store Locator) */
#wpsl-wrap { font-family: "mr-eaves-sans", "Mr Eaves Sans", sans-serif; color: var(--tptf-marine); font-size: 17px; }
#wpsl-search-wrap input, #wpsl-search-wrap select { border: 1px solid var(--tptf-mauve) !important; border-radius: 0 !important; font-size: 17px !important; padding: 10px 12px !important; }
#wpsl-search-btn { background: var(--tptf-marine) !important; color: #fff !important; border: 0 !important; border-radius: 0 !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 12px 22px !important; }
#wpsl-result-list li { font-size: 17px; border-bottom: 1px solid var(--tptf-filet) !important; padding: 16px 0 !important; }
#wpsl-result-list li strong { font-size: 19px; }
#wpsl-gmap { border: 0; }
