/* Relax Time : styles généraux et page d'accueil (maquette 3).
   La maquette fait 960 px de large : 1 px maquette = var(--m), plafonné pour les grands écrans. */

:root {
	--fond: #f1f7ec;
	--pale: #e2f1d9;
	--blanc: #fff;
	--encre: #1c2419;
	--encre-douce: #4a5745;
	--vert: #5e9632;
	--vert-fonce: #2e5929;
	--vert-titre: #2f5a2a;
	--nuit: #1b2418;
	--coeur: #e0313b;

	--titres: "Young Serif", Georgia, "Times New Roman", serif;
	--texte: "Figtree", "Helvetica Neue", Arial, sans-serif;

	--m: min(calc(100vw / 960), 1.6667px);
	--gouttiere: max(16px, calc(30 * var(--m)));
	--rayon-bloc: calc(32 * var(--m));
	--rayon-carte: max(16px, calc(20 * var(--m)));
	--ombre: 0 calc(10 * var(--m)) calc(26 * var(--m)) rgba(27, 36, 24, .08);

	--t-petit: max(13px, calc(9.8 * var(--m)));
	--t-texte: max(14px, calc(10.5 * var(--m)));
	--t-moyen: max(15px, calc(12 * var(--m)));
}

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--fond);
	color: var(--encre);
	font-family: var(--texte);
	font-size: var(--t-moyen);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--vert-fonce); }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
:focus-visible { outline: 2px solid var(--vert); outline-offset: 3px; }

.rt-sr, .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); white-space: nowrap;
}
.rt-skip { position: absolute; left: -999px; top: 0; z-index: 100; background: var(--nuit); color: var(--fond); padding: 10px 16px; border-radius: 999px; }
.rt-skip:focus { left: 16px; top: 8px; }

/* ---------- Éléments communs ---------- */

.rt-section { padding: 0 var(--gouttiere); margin-top: calc(66 * var(--m)); }

.rt-titre {
	font-family: var(--titres);
	font-weight: 400;
	font-size: max(30px, calc(36 * var(--m)));
	line-height: 1.05;
	letter-spacing: -.01em;
	margin: 0;
	color: var(--encre);
}
.rt-titre--centre { text-align: center; }

.rt-etiquette {
	display: inline-block;
	background: var(--blanc);
	color: var(--vert-titre);
	font-size: var(--t-petit);
	font-weight: 500;
	padding: calc(4 * var(--m)) calc(11 * var(--m));
	border-radius: 999px;
	margin: 0;
}

.rt-pilule,
.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: max(44px, calc(41.2 * var(--m)));
	padding: 0 calc(21 * var(--m));
	border-radius: 999px;
	border: 0;
	font-family: var(--texte);
	font-size: var(--t-moyen);
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	background: var(--vert-fonce);
	color: var(--blanc);
	transition: background .2s, color .2s, transform .2s;
}
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt { background: var(--vert-fonce); color: var(--blanc); }
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover { background: var(--nuit); color: var(--blanc); }
.woocommerce button.button:disabled,
.woocommerce button.button.disabled,
.woocommerce button.button.alt:disabled,
.woocommerce button.button.alt.disabled,
.woocommerce button.button:disabled[disabled] { background: var(--vert-fonce); color: var(--blanc); opacity: .45; cursor: not-allowed; }
.rt-pilule:hover,
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover { background: var(--nuit); color: var(--blanc); }
.rt-pilule--blanc { background: var(--blanc); color: var(--encre); font-weight: 500; }
.rt-pilule--blanc:hover { background: var(--pale); color: var(--encre); }
.rt-pilule--clair {
	background: var(--pale); color: var(--vert-titre);
	min-height: max(38px, calc(33 * var(--m))); padding: 0 calc(12 * var(--m));
	font-size: var(--t-texte);
}
.rt-pilule--clair:hover { background: var(--vert-fonce); color: var(--blanc); }
.rt-pilule--clair.added { background: var(--vert-fonce); color: var(--blanc); }

/* Ajout au panier sans rechargement : une roue tourne dans le bouton pendant l'ajout, puis une coche s'affiche. */
.woocommerce button.button.single_add_to_cart_button.loading, .woocommerce a.button.add_to_cart_button.loading,
.add_to_cart_button.loading, .single_add_to_cart_button.loading {
	position: relative; color: transparent !important; pointer-events: none; opacity: 1;
}
.woocommerce button.button.single_add_to_cart_button.loading::after, .woocommerce a.button.add_to_cart_button.loading::after,
.add_to_cart_button.loading::after, .single_add_to_cart_button.loading::after {
	content: ""; position: absolute; top: 50%; left: 50%; right: auto; width: 18px; height: 18px; margin: -9px 0 0 -9px;
	border: 2px solid rgba(255, 255, 255, .35); border-top-color: var(--blanc); border-radius: 50%;
	font-family: inherit; animation: rt-roue .7s linear infinite;
}
.rt-pilule--clair.loading::after { border-color: rgba(47, 90, 42, .25); border-top-color: var(--vert-titre); }
.woocommerce button.button.single_add_to_cart_button.added::after, .woocommerce a.button.add_to_cart_button.added::after,
.add_to_cart_button.added::after, .single_add_to_cart_button.added::after {
	content: "✓"; font-family: inherit; margin-left: .45em; vertical-align: baseline;
}
@keyframes rt-roue { to { transform: rotate(360deg); } }
.rt-produit__bas .added_to_cart { display: none; }

/* ---------- En-tête ---------- */

.rt-entete {
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 16px;
	padding: calc(15 * var(--m)) var(--gouttiere) 0;
}

.rt-logo { justify-self: start; display: block; }
.rt-logo__img { width: max(44px, calc(45 * var(--m))); height: auto; border-radius: 50%; }
.rt-logo__texte { font-family: var(--titres); font-size: 22px; color: var(--vert-titre); }

.rt-nav__list {
	display: flex; align-items: center; gap: calc(2 * var(--m));
	margin: 0; padding: calc(4.5 * var(--m));
	list-style: none;
	background: var(--blanc);
	border-radius: 999px;
	box-shadow: 0 2px 10px rgba(27, 36, 24, .04);
}
.rt-nav__list > li { position: relative; }
.rt-nav__list > li > a {
	display: block;
	padding: calc(6 * var(--m)) calc(14 * var(--m));
	border-radius: 999px;
	font-size: var(--t-texte);
	font-weight: 500;
	white-space: nowrap;
}
.rt-nav__list > li > a:hover { background: var(--fond); color: var(--encre); }
.rt-nav__list > li.current-menu-item > a,
.rt-nav__list > li.current-menu-ancestor > a { background: var(--pale); color: var(--vert-titre); }

.rt-nav .sub-menu {
	position: absolute; left: 0; top: calc(100% + 10px); z-index: 30;
	min-width: 230px; margin: 0; padding: 8px; list-style: none;
	background: var(--blanc); border-radius: var(--rayon-carte); box-shadow: var(--ombre);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .15s, transform .15s, visibility .15s;
}
.rt-nav .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.rt-nav li:hover > .sub-menu,
.rt-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.rt-nav .sub-menu a { display: block; padding: 8px 14px; border-radius: 12px; font-size: var(--t-texte); }
.rt-nav .sub-menu a:hover { background: var(--fond); }

/* Méga menu « Produits » : panneau centré sous le menu, familles en colonnes + encart offres. */
.rt-nav__list { position: relative; }
.rt-nav__list > li.rt-a-mega { position: static; }
.rt-mega {
	position: absolute; left: 50%; top: calc(100% + 10px); z-index: 30;
	width: min(calc(100vw - 2 * var(--gouttiere)), 980px);
	display: grid; grid-template-columns: 1fr 220px; gap: 18px;
	padding: 22px; background: var(--blanc); border-radius: var(--rayon-bloc); box-shadow: var(--ombre);
	opacity: 0; visibility: hidden; transform: translate(-50%, 6px);
	transition: opacity .15s, transform .15s, visibility .15s;
}
.rt-mega::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.rt-a-mega:hover > .rt-mega,
.rt-a-mega:focus-within > .rt-mega { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.rt-mega__familles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px 14px; }
.rt-mega__titre {
	margin: 4px 10px 8px; font-family: var(--titres); font-size: 17px; line-height: 1.2; color: var(--vert-titre);
}
.rt-mega ul { margin: 0; padding: 0; list-style: none; }
.rt-mega li a {
	display: flex; justify-content: space-between; align-items: baseline; gap: 10px;
	padding: 7px 10px; border-radius: 12px; font-size: var(--t-texte); font-weight: 500;
}
.rt-mega li a:hover, .rt-mega li a[aria-current="page"] { background: var(--fond); color: var(--vert-titre); }
.rt-mega__nb { font-size: 12px; font-weight: 500; color: var(--encre-douce); opacity: .7; }
.rt-mega__cote { display: flex; flex-direction: column; gap: 10px; }
.rt-mega__offres {
	flex: 1; display: flex; flex-direction: column; gap: 6px; justify-content: center;
	padding: 18px; border-radius: var(--rayon-carte); background: var(--pale);
	font-size: var(--t-texte); color: var(--encre-douce);
}
.rt-mega__offres:hover { color: var(--encre-douce); background: #d6ebca; }
.rt-mega__offres-titre { font-family: var(--titres); font-size: 20px; line-height: 1.15; color: var(--vert-titre); }
.rt-mega__offres .rt-pilule { margin-top: 8px; min-height: 40px; font-size: 14px; }
.rt-mega__tout { padding: 10px 14px; border-radius: 999px; background: var(--fond); text-align: center; font-weight: 600; font-size: var(--t-texte); }

.rt-outils { justify-self: end; display: flex; align-items: center; gap: calc(7 * var(--m)); }
.rt-rond {
	display: inline-flex; align-items: center; justify-content: center;
	width: max(44px, calc(36 * var(--m))); height: max(44px, calc(36 * var(--m)));
	border-radius: 50%; background: var(--blanc);
	font-size: var(--t-petit); font-weight: 600; line-height: 1; color: var(--encre);
	box-shadow: 0 2px 10px rgba(27, 36, 24, .04);
}
.rt-rond:hover { background: var(--pale); color: var(--encre); }
.rt-rond--coeur { color: var(--coeur); font-size: max(16px, calc(12 * var(--m))); }
.rt-rond--coeur:hover { color: var(--coeur); }
.rt-burger { display: none; }

/* ---------- Panier flottant ---------- */

.rt-panier-flottant {
	position: fixed; right: var(--gouttiere); bottom: max(16px, calc(24 * var(--m))); z-index: 60;
}
/* Le badge anti-spam reCAPTCHA occupe le coin bas droit : le panier passe au-dessus. */
body:has(.grecaptcha-badge) .rt-panier-flottant { bottom: 88px; }
.rt-menu-ouvert .rt-panier-flottant { display: none; }
.rt-panier {
	display: inline-flex; align-items: center; gap: calc(9 * var(--m));
	background: var(--nuit); color: var(--blanc);
	padding: calc(7 * var(--m)) calc(7 * var(--m)) calc(7 * var(--m)) calc(16 * var(--m));
	border-radius: 999px;
	font-size: var(--t-moyen); font-weight: 500;
	box-shadow: 0 12px 28px rgba(27, 36, 24, .28);
}
.rt-panier:hover { color: var(--blanc); background: var(--vert-fonce); }
.rt-panier__nb {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: max(30px, calc(27 * var(--m))); height: max(30px, calc(27 * var(--m)));
	padding: 0 6px; border-radius: 999px;
	background: #5d9532; color: var(--blanc); font-weight: 700;
}

/* ---------- Héros ---------- */

.rt-hero {
	display: grid;
	grid-template-columns: 1fr calc(345 * var(--m));
	align-items: center;
	gap: calc(30 * var(--m));
	margin: calc(28 * var(--m)) var(--gouttiere) 0;
	padding: calc(36 * var(--m)) calc(52 * var(--m)) calc(36 * var(--m)) calc(48 * var(--m));
	background: var(--pale);
	border-radius: var(--rayon-bloc);
}
.rt-hero__titre {
	font-family: var(--titres);
	font-weight: 400;
	font-size: max(46px, calc(72 * var(--m)));
	line-height: .95;
	letter-spacing: -.015em;
	color: var(--vert-titre);
	margin: calc(22 * var(--m)) 0 0;
}
.rt-hero__titre span { display: block; color: var(--vert); }
.rt-hero__accroche {
	font-size: max(18px, calc(16.5 * var(--m)));
	line-height: 1.45;
	max-width: 19em;
	margin: calc(28 * var(--m)) 0 0;
}
.rt-hero__boutons { display: flex; flex-wrap: wrap; gap: calc(9 * var(--m)); margin-top: calc(24 * var(--m)); }
.rt-hero__visuel {
	margin: 0;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--blanc);
	overflow: hidden;
	display: flex; align-items: center; justify-content: center;
}
.rt-hero__visuel img { width: 110%; max-width: none; height: 110%; object-fit: cover; }

/* ---------- Bénéfices ---------- */

.rt-benefices .rt-titre { margin-bottom: calc(36 * var(--m)); }
.rt-benefices__liste {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(12 * var(--m));
	margin: 0; padding: 0; list-style: none;
}
.rt-benefice {
	background: var(--blanc);
	border-radius: var(--rayon-carte);
	padding: calc(24 * var(--m)) calc(24 * var(--m)) calc(26 * var(--m));
}
.rt-benefice__num {
	display: inline-flex; align-items: center; justify-content: center;
	width: max(40px, calc(39 * var(--m))); height: max(40px, calc(39 * var(--m)));
	border-radius: 50%; background: var(--pale);
	font-family: var(--titres); font-size: max(16px, calc(16.5 * var(--m))); color: var(--vert-titre);
}
.rt-benefice__titre {
	font-family: var(--titres); font-weight: 400;
	font-size: max(21px, calc(22.5 * var(--m))); line-height: 1.15;
	margin: calc(12 * var(--m)) 0 calc(6 * var(--m));
}
.rt-benefice__texte { margin: 0; color: var(--encre-douce); }
.rt-benefice__titre + .rt-benefice__texte { margin-top: 6px; }

/* ---------- Nos produits (onglets) ---------- */

.rt-produits__tete {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	margin-bottom: calc(32 * var(--m));
}
.rt-onglets { display: flex; gap: calc(7 * var(--m)); }
.rt-onglet {
	min-height: max(40px, calc(31.5 * var(--m)));
	padding: 0 calc(15 * var(--m));
	border-radius: 999px;
	background: var(--blanc);
	font-size: max(14px, calc(11.2 * var(--m))); font-weight: 500;
	white-space: nowrap;
	transition: background .2s, color .2s;
}
.rt-onglet:hover { background: var(--pale); }
.rt-onglet[aria-selected="true"] { background: var(--vert-fonce); color: var(--blanc); font-weight: 600; }

.rt-produits__message {
	margin: 0 0 calc(16 * var(--m));
	padding: calc(10 * var(--m)) calc(16 * var(--m));
	background: var(--pale); border-radius: 999px;
	color: var(--vert-titre); font-weight: 600; text-align: center;
}

.rt-grille {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(12 * var(--m));
	margin: 0; padding: 0; list-style: none;
}
.rt-produit {
	display: flex; flex-direction: column;
	background: var(--blanc);
	border-radius: var(--rayon-carte);
	padding: calc(9 * var(--m));
	transition: box-shadow .2s, transform .2s;
}
.rt-produit:hover { box-shadow: var(--ombre); transform: translateY(-2px); }
.rt-produit__image {
	position: relative; display: block;
	aspect-ratio: 1; border-radius: calc(var(--rayon-carte) - 6px); overflow: hidden;
	background: var(--blanc);
}
.rt-produit__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.rt-produit__remise {
	position: absolute; top: 8px; left: 8px;
	background: var(--vert); color: var(--blanc);
	font-size: var(--t-petit); font-weight: 700;
	padding: 2px 10px; border-radius: 999px;
}
.rt-produit__bas {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	padding: calc(10 * var(--m)) calc(6 * var(--m)) calc(6 * var(--m)) calc(6 * var(--m));
	margin-top: auto;
}
.rt-produit__nom { display: block; font-weight: 600; font-size: max(15px, calc(12.8 * var(--m))); line-height: 1.25; }
.rt-produit__prix { margin: 5px 0 0; color: var(--vert-titre); font-size: var(--t-texte); }
.rt-produit__prix del { opacity: .55; margin-right: 4px; }
.rt-produit .rt-pilule--clair { flex-shrink: 0; }

.rt-produits__tout { text-align: center; margin: calc(22 * var(--m)) 0 0; }

/* ---------- Questions fréquentes ---------- */

.rt-faq {
	display: grid; grid-template-columns: 1fr calc(430.5 * var(--m)); gap: calc(42 * var(--m));
	background: var(--vert-fonce);
	border-radius: var(--rayon-bloc);
	padding: calc(42 * var(--m)) calc(48 * var(--m));
	color: #f1f8ec;
}
.rt-faq .rt-titre { color: #f1f8ec; margin-bottom: calc(18 * var(--m)); }
.rt-faq__questions { display: flex; flex-direction: column; gap: calc(6 * var(--m)); }
.rt-faq__question {
	text-align: left;
	padding: calc(9 * var(--m)) calc(15 * var(--m));
	min-height: max(44px, calc(35.2 * var(--m)));
	border-radius: calc(14 * var(--m));
	background: rgba(255, 255, 255, .1);
	color: #f1f8ec;
	font-size: var(--t-moyen); font-weight: 500; line-height: 1.3;
	transition: background .2s, color .2s;
}
.rt-faq__question:hover { background: rgba(255, 255, 255, .18); }
.rt-faq__question[aria-selected="true"] { background: var(--fond); color: var(--vert-titre); font-weight: 600; }
.rt-faq__reponse {
	background: var(--fond); color: var(--encre);
	border-radius: calc(24 * var(--m));
	padding: calc(30 * var(--m));
	align-self: start;
}
.rt-faq__reponse h3 {
	font-family: var(--titres); font-weight: 400;
	font-size: max(22px, calc(21 * var(--m))); line-height: 1.15;
	color: var(--vert-titre); margin: 0 0 calc(14 * var(--m));
}
.rt-faq__reponse p { margin: 0 0 calc(12 * var(--m)); line-height: 1.65; }
.rt-faq__reponse p:last-child { margin-bottom: 0; }
.rt-faq__reponse strong { font-weight: 600; }

/* ---------- Page « Tout savoir sur le CBD » (guide) ---------- */

.rt-guide-hero__titre { font-size: max(40px, calc(60 * var(--m))); }
.rt-guide-sommaire { display: flex; flex-wrap: wrap; gap: 8px; margin-top: calc(24 * var(--m)); }
.rt-guide-sommaire .rt-pilule { min-height: 38px; padding: 0 14px; font-size: var(--t-texte); }
.rt-guide-hero .rt-hero__visuel img { width: 100%; height: 100%; object-fit: cover; }

.rt-section[id], .rt-guide-encart[id] { scroll-margin-top: 24px; }
.rt-guide-deux { display: grid; grid-template-columns: 1.3fr 1fr; gap: calc(30 * var(--m)); align-items: start; }
.rt-guide-deux p { line-height: 1.7; }
.rt-guide-deux .rt-titre { margin-bottom: calc(14 * var(--m)); }
.rt-guide-chiffres { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.rt-guide-chiffres li { background: var(--blanc); border-radius: var(--rayon-carte); padding: calc(16 * var(--m)) calc(20 * var(--m)); display: flex; align-items: center; gap: 16px; }
.rt-guide-chiffres strong { font-family: var(--titres); font-weight: 400; font-size: max(26px, calc(28 * var(--m))); color: var(--vert-titre); min-width: 3.4em; }
.rt-guide-chiffres span { color: var(--encre-douce); line-height: 1.4; }

.rt-guide-compare { display: grid; grid-template-columns: 1fr 1fr; gap: calc(12 * var(--m)); margin-top: calc(30 * var(--m)); }
.rt-guide-carte { background: var(--blanc); border-radius: var(--rayon-carte); padding: calc(26 * var(--m)); }
.rt-guide-carte--cbd { background: var(--pale); }
.rt-guide-carte__tag { display: inline-block; margin: 0; padding: 2px 12px; border-radius: 999px; background: var(--vert-fonce); color: var(--blanc); font-weight: 700; font-size: var(--t-petit); }
.rt-guide-carte__tag--thc { background: var(--encre-douce); }
.rt-guide-carte h3, .rt-guide-encart h3 { font-family: var(--titres); font-weight: 400; font-size: max(22px, calc(22.5 * var(--m))); margin: 12px 0 10px; }
.rt-guide-carte ul, .rt-guide-encart ul { margin: 0; padding: 0; list-style: none; }
.rt-guide-carte li, .rt-guide-encart li { position: relative; padding: 6px 0 6px 22px; line-height: 1.5; }
.rt-guide-carte li::before, .rt-guide-encart li::before { content: ""; position: absolute; left: 4px; top: 14px; width: 7px; height: 7px; border-radius: 50%; background: var(--vert); }

.rt-guide-action {
	display: grid; grid-template-columns: 1.3fr 1fr; gap: calc(36 * var(--m)); align-items: center;
	background: var(--vert-fonce); color: #f1f8ec; border-radius: var(--rayon-bloc); padding: calc(42 * var(--m)) calc(48 * var(--m));
}
.rt-guide-action .rt-titre { color: #f1f8ec; margin-bottom: calc(14 * var(--m)); }
.rt-guide-action p { line-height: 1.7; }
.rt-guide-recepteurs { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.rt-guide-recepteurs li { background: var(--fond); color: var(--encre); border-radius: var(--rayon-carte); padding: 18px 20px; display: flex; gap: 16px; align-items: center; }
.rt-guide-recepteurs strong { font-family: var(--titres); font-weight: 400; font-size: 26px; color: var(--vert-titre); }

.rt-guide-bienfaits { margin-top: calc(30 * var(--m)); }
.rt-guide-avertissement { margin: 16px 0 0; text-align: center; color: var(--encre-douce); font-size: var(--t-texte); }

.rt-guide-intro { color: var(--encre-douce); max-width: 46em; margin: 12px 0 calc(24 * var(--m)); }
.rt-guide-formes { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(12 * var(--m)); margin: 0; padding: 0; list-style: none; }
.rt-guide-formes a { display: flex; flex-direction: column; height: 100%; background: var(--blanc); border-radius: var(--rayon-carte); padding: calc(22 * var(--m)); transition: box-shadow .2s, transform .2s; }
.rt-guide-formes a:hover { box-shadow: var(--ombre); transform: translateY(-2px); color: inherit; }
.rt-guide-formes h3 { font-family: var(--titres); font-weight: 400; font-size: max(20px, calc(20 * var(--m))); color: var(--vert-titre); margin: 0 0 8px; }
.rt-guide-formes p { margin: 0 0 14px; color: var(--encre-douce); line-height: 1.55; }
.rt-guide-formes .rt-lien-fleche { margin-top: auto; }

.rt-guide-encart { background: var(--pale); border-radius: var(--rayon-bloc); padding: calc(30 * var(--m)); height: 100%; }
.rt-guide-encart--blanc { background: var(--blanc); }
.rt-guide-encart .rt-titre { margin-bottom: 12px; font-size: max(26px, calc(28 * var(--m))); }
.rt-guide-encart p { line-height: 1.7; }

.rt-guide-fin {
	display: flex; justify-content: space-between; align-items: center; gap: 24px;
	background: var(--blanc); border-radius: var(--rayon-bloc); padding: calc(30 * var(--m)) calc(36 * var(--m));
}
.rt-guide-fin p { margin: 8px 0 0; color: var(--encre-douce); max-width: 34em; }
.rt-guide-fin__boutons { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.rt-guide-fin__boutons .rt-pilule--blanc { background: var(--fond); }

/* ---------- Pied de page ---------- */

.rt-pied { padding: 0 var(--gouttiere) calc(26 * var(--m) + 80px); margin-top: calc(48 * var(--m)); } /* + 80 px : la dernière ligne ne passe pas sous le panier flottant */
.rt-garanties {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(12 * var(--m));
	margin: 0; padding: 0; list-style: none;
}
.rt-garantie {
	display: flex; flex-direction: column; gap: 4px;
	background: var(--pale); border-radius: var(--rayon-carte);
	padding: calc(18 * var(--m)) calc(21 * var(--m));
	font-size: max(14px, calc(11.2 * var(--m))); line-height: 1.5;
}
.rt-garantie strong { font-weight: 700; }
.rt-pied__bas {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	margin-top: calc(26 * var(--m));
	font-size: var(--t-texte); color: var(--encre-douce);
}
.rt-pied__bas p { margin: 0; }
.rt-pied__liens { display: flex; flex-wrap: wrap; justify-content: center; margin: 0; padding: 0; list-style: none; }
.rt-pied__liens li:not(:last-child)::after { content: "·"; margin: 0 .45em; }
.rt-pied a:hover { color: var(--vert-fonce); }

/* ---------- Pages et articles ---------- */

.rt-page { margin-top: calc(36 * var(--m)); }
.rt-page__tete { margin-bottom: calc(26 * var(--m)); }
.rt-page__tete .rt-titre { font-size: max(34px, calc(48 * var(--m))); }
.rt-surtitre { margin: 0 0 10px; color: var(--vert-titre); font-weight: 600; font-size: var(--t-texte); }
.rt-note { color: var(--encre-douce); margin: 0; }
.rt-contenu {
	max-width: 820px;
	background: var(--blanc); border-radius: var(--rayon-carte);
	padding: calc(30 * var(--m)) calc(36 * var(--m));
	overflow-wrap: anywhere; /* liens sources très longs des anciens articles : sinon la page s'élargit sur mobile */
}
.rt-page--elementor .rt-contenu { max-width: none; background: transparent; padding: 0; }
.rt-contenu h2, .rt-contenu h3, .rt-contenu h4 { font-family: var(--titres); font-weight: 400; line-height: 1.15; margin: 1.4em 0 .5em; color: var(--vert-titre); }
.rt-contenu h2 { font-size: max(26px, calc(28 * var(--m))); }
.rt-contenu h3 { font-size: max(21px, calc(21 * var(--m))); }
/* Les anciens articles utilisent h5 et h6 comme intertitres : même style qu'un h4, lisible. */
.rt-contenu h4, .rt-contenu h5, .rt-contenu h6 { font-family: var(--titres); font-weight: 400; font-size: max(19px, calc(17 * var(--m))); line-height: 1.25; color: var(--vert-titre); margin: 1.4em 0 .4em; }
.rt-contenu > :first-child { margin-top: 0; }
.rt-contenu > :last-child { margin-bottom: 0; }
.rt-contenu p { margin: 0 0 1em; }
.rt-contenu ul, .rt-contenu ol { margin: 0 0 1em; padding-left: 1.3em; }
.rt-contenu li + li { margin-top: .45em; }
.rt-contenu p:empty { display: none; }
.rt-contenu a { color: var(--vert-fonce); text-decoration: underline; text-underline-offset: 3px; }
.rt-contenu img { margin: 1em 0; border-radius: 12px; }
.rt-page__image { margin: 0; max-width: 820px; }
.rt-page__image img { display: block; width: 100%; border-radius: var(--rayon-carte); margin-bottom: 24px; }
.rt-page--404 { min-height: 45vh; }
.rt-page--404 .rt-note { margin: 14px 0 26px; }

.rt-articles { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(12 * var(--m)); margin: 0; padding: 0; list-style: none; }
.rt-article a { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: calc(9 * var(--m)) calc(9 * var(--m)) 18px; background: var(--blanc); border-radius: var(--rayon-carte); }
.rt-article__image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; border-radius: calc(var(--rayon-carte) - 6px); }
.rt-article__date { font-size: var(--t-petit); color: var(--vert-titre); padding: 0 8px; }
.rt-article__titre { font-family: var(--titres); font-size: max(19px, calc(18 * var(--m))); line-height: 1.2; padding: 0 8px; }
.rt-article .rt-lien-fleche { margin-top: auto; padding: 0 8px; font-weight: 600; color: var(--vert-fonce); }
.rt-lien-fleche { font-weight: 600; color: var(--vert-fonce); }
.navigation.pagination { margin-top: 30px; }
.nav-links { display: flex; gap: 8px; }
.nav-links .page-numbers { display: inline-flex; min-width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 999px; background: var(--blanc); }
.nav-links .current { background: var(--vert-fonce); color: var(--blanc); }

/* ---------- Pages boutiques ---------- */

.rt-boutique-hero { grid-template-columns: 1fr minmax(0, .9fr); align-items: stretch; }
.rt-boutique-hero .rt-hero__texte { align-self: center; }
.rt-boutique-infos { display: grid; gap: 14px; margin: calc(26 * var(--m)) 0 0; padding: 0; list-style: none; line-height: 1.45; font-size: var(--t-moyen); }
.rt-boutique-infos__titre { display: block; margin-bottom: 2px; font-size: var(--t-petit); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--vert-titre); }
.rt-boutique-infos a { font-weight: 600; color: var(--vert-fonce); }
.rt-boutique-photo { margin: 0; border-radius: var(--rayon-carte); overflow: hidden; background: var(--blanc); min-height: 320px; }
.rt-boutique-photo img { width: 100%; height: 100%; object-fit: cover; }
.rt-boutiques { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(12 * var(--m)); margin: calc(24 * var(--m)) 0 0; padding: 0; list-style: none; }
.rt-boutiques a { display: flex; flex-direction: column; height: 100%; background: var(--blanc); border-radius: var(--rayon-carte); padding: calc(22 * var(--m)); transition: box-shadow .2s, transform .2s; }
.rt-boutiques a:hover { box-shadow: var(--ombre); transform: translateY(-2px); color: inherit; }
.rt-boutiques h3 { font-family: var(--titres); font-weight: 400; font-size: max(22px, calc(22 * var(--m))); color: var(--vert-titre); margin: 0 0 8px; }
.rt-boutiques p { margin: 0 0 4px; color: var(--encre-douce); line-height: 1.5; }
.rt-boutiques .rt-lien-fleche { margin-top: auto; padding-top: 12px; }

/* ---------- Page Contact ---------- */

.rt-page__tete .rt-note { margin-top: 10px; max-width: 40em; }
.rt-contact { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: calc(14 * var(--m)); align-items: start; }
.rt-contact__cote { display: grid; gap: calc(14 * var(--m)); }
.rt-contact__carte, .rt-contact__formulaire { background: var(--blanc); border-radius: var(--rayon-carte); padding: calc(26 * var(--m)) calc(28 * var(--m)); }
.rt-contact__carte--pale { background: var(--pale); }
.rt-contact h2 { font-family: var(--titres); font-weight: 400; font-size: max(22px, calc(24 * var(--m))); line-height: 1.15; color: var(--vert-titre); margin: 0 0 16px; }
.rt-contact__liens, .rt-contact__boutiques { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; line-height: 1.4; }
.rt-contact__liens span { display: block; font-size: var(--t-petit); color: var(--encre-douce); margin-bottom: 2px; }
.rt-contact__liens a { font-weight: 600; color: var(--vert-fonce); overflow-wrap: anywhere; }
.rt-contact__boutiques li { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; }
.rt-contact__boutiques li > a:first-child { font-weight: 700; color: var(--encre); }
.rt-contact__boutiques li > span { grid-column: 1; font-size: var(--t-texte); color: var(--encre-douce); }
.rt-contact__tel { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-weight: 600; color: var(--vert-fonce); white-space: nowrap; }

/* Formulaire Contact Form 7 */
.rt-contact__formulaire .theme-contact-form h6 { display: none; } /* titre déjà affiché au-dessus */
.wpcf7 form p { margin: 0 0 14px; }
.wpcf7 form label { display: block; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 textarea {
	display: block; width: 100%; font-family: var(--texte); font-size: var(--t-moyen); color: var(--encre);
	background: var(--fond); border: 1px solid #d6e5cd; border-radius: 12px; padding: 12px 14px; min-height: 48px;
}
.wpcf7 textarea { height: 170px; resize: vertical; }
.wpcf7 input:focus, .wpcf7 textarea:focus { border-color: var(--vert); outline: none; background: var(--blanc); }
.wpcf7 input[type="submit"] {
	display: inline-flex; min-height: 50px; padding: 0 30px; margin-top: 4px; border: 0; border-radius: 999px; cursor: pointer;
	font-family: var(--texte); font-size: var(--t-moyen); font-weight: 600; background: var(--vert-fonce); color: var(--blanc);
}
.wpcf7 input[type="submit"]:hover { background: var(--nuit); }
.wpcf7 .mcf-submit p { display: flex; align-items: center; gap: 10px; margin: 0; }
.wpcf7 .wpcf7-spinner { margin: 0; }
.wpcf7-not-valid-tip { margin-top: 6px; font-size: var(--t-petit); color: #b42318; }
.wpcf7 form .wpcf7-response-output { margin: 16px 0 0; padding: 12px 14px; border-radius: 12px; font-size: var(--t-texte); }

/* ---------- Bandeau cookies (Complianz) aux couleurs du site ---------- */

body .cmplz-cookiebanner {
	--cmplz_banner_background_color: var(--blanc);
	--cmplz_banner_border_color: var(--pale);
	--cmplz_banner_border_width: 0;
	--cmplz_banner_border_radius: 20px;
	--cmplz_text_color: var(--encre);
	--cmplz_hyperlink_color: var(--vert-fonce);
	--cmplz_button_accept_background_color: var(--vert-fonce);
	--cmplz_button_accept_border_color: var(--vert-fonce);
	--cmplz_button_accept_text_color: var(--blanc);
	--cmplz_button_deny_background_color: var(--fond);
	--cmplz_button_deny_border_color: var(--fond);
	--cmplz_button_deny_text_color: var(--encre);
	--cmplz_button_settings_background_color: var(--fond);
	--cmplz_button_settings_border_color: var(--fond);
	--cmplz_button_settings_text_color: var(--encre);
	--cmplz_button_border_radius: 999px;
	--cmplz_slider_active_color: var(--vert);
	--cmplz_category_header_always_active_color: var(--vert-fonce);
	font-family: var(--texte);
	box-shadow: var(--ombre);
}
body .cmplz-cookiebanner .cmplz-title { font-family: var(--titres); font-size: 20px; font-weight: 400; }
body .cmplz-cookiebanner .cmplz-btn { font-family: var(--texte); font-size: 14px; font-weight: 600; }
/* Onglet flottant « Gérer le consentement » : remplacé par le lien « Cookies » du pied de page (il recouvrait le contenu). */
#cmplz-manage-consent { display: none !important; }
.rt-pied__cookies { padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; }
.rt-pied__cookies:hover { color: var(--vert-fonce); }
/* Badge reCAPTCHA (Contact, Mon compte, commande) : au-dessus du panier flottant plutôt que dessous. */
.grecaptcha-badge { bottom: calc(max(16px, calc(24 * var(--m))) + 66px) !important; }

/* ---------- Tablette ---------- */

@media (max-width: 1100px) {
	.rt-nav__list > li > a { padding: 6px 10px; }
	.rt-grille { grid-template-columns: repeat(3, 1fr); }
	.rt-faq { grid-template-columns: 1fr 1fr; }
}

/* ---------- Mobile ---------- */

@media (max-width: 900px) {
	:root { --m: calc(100vw / 480); --gouttiere: 16px; --rayon-bloc: 24px; }

	.rt-entete { grid-template-columns: auto 1fr; padding-top: 12px; }
	.rt-outils { gap: 8px; }
	.rt-burger { display: inline-flex; flex-direction: column; gap: 4px; }
	.rt-burger span { display: block; width: 18px; height: 2px; border-radius: 2px; background: var(--encre); transition: transform .2s, opacity .2s; }
	.rt-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
	.rt-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
	.rt-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

	.rt-nav {
		position: absolute; left: var(--gouttiere); right: var(--gouttiere); top: calc(100% + 8px); z-index: 50;
		display: none;
	}
	.rt-nav.est-ouvert { display: block; }
	.rt-nav__list {
		flex-direction: column; align-items: stretch; gap: 2px;
		padding: 8px; border-radius: 20px; box-shadow: var(--ombre);
		max-height: calc(100vh - 100px); overflow-y: auto;
	}
	.rt-nav__list > li > a { padding: 12px 14px; font-size: 16px; }
	.rt-nav .sub-menu {
		position: static; opacity: 1; visibility: visible; transform: none;
		box-shadow: none; padding: 0 0 6px 10px; min-width: 0;
	}
	.rt-nav .sub-menu::before { display: none; }
	.rt-nav__list > li.rt-a-mega { position: relative; }
	.rt-nav__list > .menu-item-has-children > a { display: flex; justify-content: space-between; align-items: center; }
	.rt-nav__list > .menu-item-has-children > a::after {
		content: ""; width: 8px; height: 8px; margin-right: 4px;
		border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
		transform: rotate(45deg) translateY(-3px); transition: transform .2s;
	}
	.rt-nav__list > .menu-item-has-children.est-deplie > a::after { transform: rotate(-135deg) translateY(-3px); }
	.rt-nav__list > .menu-item-has-children:not(.est-deplie) > .sub-menu,
	.rt-nav__list > .menu-item-has-children:not(.est-deplie) > .rt-mega { display: none; }
	.rt-mega {
		position: static; width: auto; transform: none; opacity: 1; visibility: visible;
		display: block; padding: 0 0 8px 10px; box-shadow: none; border-radius: 0;
	}
	.rt-mega::before { display: none; }
	.rt-a-mega:hover > .rt-mega, .rt-a-mega:focus-within > .rt-mega { transform: none; }
	.rt-mega__familles { grid-template-columns: 1fr 1fr; gap: 4px 8px; }
	.rt-mega__titre { margin: 10px 10px 4px; font-size: 15px; }
	.rt-mega li a { padding: 6px 10px; font-size: 14px; color: var(--encre-douce); }
	.rt-mega__cote { margin-top: 10px; }
	.rt-mega__offres { padding: 14px; }
	.rt-nav .sub-menu a { padding: 7px 14px; font-size: 15px; color: var(--encre-douce); }

	.rt-hero { grid-template-columns: 1fr; padding: 28px 22px 26px; margin-top: 14px; gap: 22px; }
	.rt-hero__titre { font-size: calc(68 * var(--m)); margin-top: 16px; }
	.rt-hero__accroche { font-size: 17px; margin-top: 16px; }
	.rt-hero__boutons { margin-top: 20px; gap: 8px; }
	.rt-hero__boutons .rt-pilule { flex: 1 1 100%; }
	.rt-hero__visuel { width: 78%; justify-self: center; order: -1; }

	.rt-section { margin-top: 48px; }
	.rt-benefices .rt-titre { margin-bottom: 20px; }
	.rt-benefices__liste { grid-template-columns: 1fr; gap: 10px; }
	.rt-benefice { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: center; padding: 18px; }
	.rt-benefice__num { grid-row: span 2; }
	.rt-benefice__titre { margin: 0; font-size: 20px; }

	.rt-produits__tete { flex-direction: column; align-items: flex-start; margin-bottom: 18px; }
	.rt-onglets {
		width: calc(100% + 2 * var(--gouttiere)); margin: 0 calc(-1 * var(--gouttiere));
		padding: 0 var(--gouttiere); overflow-x: auto; scrollbar-width: none;
	}
	.rt-onglets::-webkit-scrollbar { display: none; }
	.rt-grille { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.rt-produit { padding: 7px; }
	.rt-produit__bas { flex-direction: column; align-items: stretch; gap: 8px; padding: 8px 4px 4px; }
	.rt-produit__nom { font-size: 15px; }
	.rt-produit .rt-pilule--clair { width: 100%; }
	.rt-produits__message { border-radius: 16px; }

	.rt-faq { grid-template-columns: 1fr; gap: 18px; padding: 26px 18px 18px; }
	.rt-faq__reponse { padding: 20px; border-radius: 18px; }

	.rt-guide-hero__titre { font-size: calc(54 * var(--m)); }
	.rt-guide-sommaire { gap: 6px; }
	.rt-guide-sommaire .rt-pilule { flex: 0 0 auto; }
	.rt-guide-deux, .rt-guide-compare, .rt-guide-action { grid-template-columns: 1fr; }
	.rt-guide-action { padding: 26px 20px; gap: 20px; }
	.rt-guide-formes { grid-template-columns: 1fr; gap: 10px; }
	.rt-guide-carte, .rt-guide-encart { padding: 22px 20px; }
	.rt-guide-fin { flex-direction: column; align-items: stretch; padding: 24px 20px; }
	.rt-guide-fin__boutons { justify-content: stretch; }
	.rt-guide-fin__boutons .rt-pilule { flex: 1 1 100%; }

	.rt-pied { padding-bottom: 96px; }
	.rt-garanties { grid-template-columns: 1fr; gap: 10px; }
	.rt-pied__bas { flex-direction: column; text-align: center; gap: 10px; }

	.rt-contenu { padding: 20px; }
	.rt-articles { grid-template-columns: 1fr; }

	.rt-boutique-hero { grid-template-columns: 1fr; }
	.rt-boutique-photo { order: -1; min-height: 0; aspect-ratio: 4 / 3; }
	.rt-boutiques { grid-template-columns: 1fr; gap: 10px; }
	.rt-boutiques a { padding: 20px; }
	.rt-contact { grid-template-columns: 1fr; gap: 12px; }
	.rt-contact__cote { gap: 12px; }
	.rt-contact__carte, .rt-contact__formulaire { padding: 22px 20px; }
	.rt-contact__boutiques li { grid-template-columns: 1fr; }
	.rt-contact__tel { grid-column: 1; grid-row: auto; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}
