/*
Theme Name: Luciemagena
Theme URI: https://luciemagena.fr
Author: Lucie
Description: Thème WordPress sur mesure pour luciemagena.fr — contact défunt, lectures et harmonisations. Élégant, féminin et fluide, construit autour d'une signature visuelle de lignes de champ magnétique. Palette « Améthyste & or » (blanc nacré, violet nuit, améthyste, orchidée, or), typographie Cormorant Garamond + Mulish.
Version: 1.37.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: luciemagena
Tags: custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, blog
*/

/* =====================================================================
   1. VARIABLES
   ===================================================================== */
:root {
	/* Palette « Améthyste & or » (1.26.0) */
	--ivory:        #FBF8FE;
	--ivory-deep:   #F1EAFA;
	--plum:         #2E1F4F;
	--plum-soft:    #5B4A7E;
	--rosewood:     #9B4F96;
	--rosewood-deep:#7A3878;
	--blush:        #E7DAF7;
	--blush-soft:   #F5EFFC;
	--copper:       #C9A04E;

	/* Boutons d'action de l'en-tête (contrastes vérifiés sur texte blanc) */
	--btn-rdv:      #6A3FC8;
	--btn-rdv-dark: #5530A8;
	--btn-alt:      #9B4F96;
	--btn-alt-dark: #7A3878;
	--btn-sms:      #C9A04E;
	--btn-sms-dark: #A8823A;
	--btn-phone:       #4C5BC0;
	--btn-phone-dark:  #3B489E;
	--btn-phone-light: #A9B3EE;

	/* Accents colorés accordés (tons « pierres » : orchidée, indigo, quartz rose, aigue-marine, or, améthyste) */
	--c-rosewood:   #9B4F96;
	--c-copper:     #C47A8A;
	--c-gold:       #C9A04E;
	--c-sage:       #5F9AA6;
	--c-teal:       #4C5BC0;
	--c-mauve:      #8D66E3;

	/* Violet « améthyste » lumineux */
	--amethyst:       #7B4FD6;
	--amethyst-deep:  #5B34B0;
	--amethyst-light: #B9A0F4;
	--amethyst-mist:  #EFE8FD;
	--gold-light:     #E9CD86;

	--line:         rgba(46, 31, 79, 0.12);
	--line-soft:    rgba(46, 31, 79, 0.07);
	--white:        #FFFFFF;

	/* Typographie */
	--font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--font-body:    'Mulish', system-ui, -apple-system, 'Segoe UI', sans-serif;

	/* Échelle */
	--step--1: clamp(0.83rem, 0.8rem + 0.15vw, 0.92rem);
	--step-0:  clamp(1rem, 0.96rem + 0.2vw, 1.12rem);
	--step-1:  clamp(1.2rem, 1.1rem + 0.5vw, 1.45rem);
	--step-2:  clamp(1.5rem, 1.3rem + 1vw, 2rem);
	--step-3:  clamp(2rem, 1.6rem + 2vw, 3rem);
	--step-4:  clamp(2.6rem, 2rem + 3vw, 4.4rem);

	/* Rythme */
	--header-h:  86px;
	--wrap:      1180px;
	--wrap-text: 760px;
	--section-y: clamp(4.5rem, 3rem + 6vw, 8rem);
	--radius:    18px;
	--radius-lg: 28px;
	--shadow:    0 24px 60px -32px rgba(46, 31, 79, 0.4);
	--shadow-sm: 0 12px 32px -22px rgba(46, 31, 79, 0.45);
	--ease:      cubic-bezier(0.22, 0.61, 0.36, 1);

	/* Motif « lignes de champ » réutilisable (cartes) */
	--field: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20320%20320'%3E%3Cg%20fill%3D'none'%20stroke%3D'%238D66E3'%20stroke-width%3D'1'%3E%3Cg%20opacity%3D'0.30'%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'168'%20ry%3D'74'%2F%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'134'%20ry%3D'56'%2F%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'100'%20ry%3D'40'%2F%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'66'%20ry%3D'25'%2F%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'34'%20ry%3D'12'%2F%3E%3C%2Fg%3E%3Cg%20opacity%3D'0.16'%20transform%3D'rotate(-18%20160%20185)'%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'168'%20ry%3D'60'%2F%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'120'%20ry%3D'42'%2F%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'72'%20ry%3D'25'%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	/* Variante claire du motif (traits blancs) pour fonds colorés */
	--field-light: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20320%20320'%3E%3Cg%20fill%3D'none'%20stroke%3D'%23FFFFFF'%20stroke-width%3D'1.2'%3E%3Cg%20opacity%3D'0.55'%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'168'%20ry%3D'74'%2F%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'134'%20ry%3D'56'%2F%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'100'%20ry%3D'40'%2F%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'66'%20ry%3D'25'%2F%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'34'%20ry%3D'12'%2F%3E%3C%2Fg%3E%3Cg%20opacity%3D'0.30'%20transform%3D'rotate(-18%20160%20185)'%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'168'%20ry%3D'60'%2F%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'120'%20ry%3D'42'%2F%3E%3Cellipse%20cx%3D'160'%20cy%3D'185'%20rx%3D'72'%20ry%3D'25'%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	/* 6 dessins de fond distincts pour les cartes (un par carte) */
	--field-1: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20320%20320%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-linecap%3D%22round%22%3E%3Cg%20opacity%3D%220.55%22%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22185%22%20rx%3D%22168%22%20ry%3D%2274%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22185%22%20rx%3D%22134%22%20ry%3D%2256%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22185%22%20rx%3D%22100%22%20ry%3D%2240%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22185%22%20rx%3D%2266%22%20ry%3D%2225%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22185%22%20rx%3D%2234%22%20ry%3D%2212%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3C%2Fg%3E%3Cg%20opacity%3D%220.30%22%20transform%3D%22rotate(-18%20160%20185)%22%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22185%22%20rx%3D%22168%22%20ry%3D%2260%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22185%22%20rx%3D%22120%22%20ry%3D%2242%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22185%22%20rx%3D%2272%22%20ry%3D%2225%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	--field-2: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20320%20320%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-linecap%3D%22round%22%3E%3Cg%20opacity%3D%220.5%22%3E%3Ccircle%20cx%3D%22150%22%20cy%3D%22150%22%20r%3D%2218%22%20stroke-width%3D%221.1%22%20opacity%3D%221.0%22%2F%3E%3Ccircle%20cx%3D%22150%22%20cy%3D%22150%22%20r%3D%2242%22%20stroke-width%3D%221.1%22%20opacity%3D%220.9%22%2F%3E%3Ccircle%20cx%3D%22150%22%20cy%3D%22150%22%20r%3D%2270%22%20stroke-width%3D%221.1%22%20opacity%3D%220.8%22%2F%3E%3Ccircle%20cx%3D%22150%22%20cy%3D%22150%22%20r%3D%22100%22%20stroke-width%3D%221.1%22%20opacity%3D%220.7%22%2F%3E%3Ccircle%20cx%3D%22150%22%20cy%3D%22150%22%20r%3D%22132%22%20stroke-width%3D%221.1%22%20opacity%3D%220.6%22%2F%3E%3Ccircle%20cx%3D%22150%22%20cy%3D%22150%22%20r%3D%22166%22%20stroke-width%3D%221.1%22%20opacity%3D%220.5%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	--field-3: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20320%20320%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-linecap%3D%22round%22%3E%3Cg%20opacity%3D%220.42%22%3E%3Cline%20x1%3D%22184.0%22%20y1%3D%22160.0%22%20x2%3D%22345.0%22%20y2%3D%22160.0%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22182.2%22%20y1%3D%22169.2%22%20x2%3D%22330.9%22%20y2%3D%22230.8%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22177.0%22%20y1%3D%22177.0%22%20x2%3D%22290.8%22%20y2%3D%22290.8%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22169.2%22%20y1%3D%22182.2%22%20x2%3D%22230.8%22%20y2%3D%22330.9%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22160.0%22%20y1%3D%22184.0%22%20x2%3D%22160.0%22%20y2%3D%22345.0%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22150.8%22%20y1%3D%22182.2%22%20x2%3D%2289.2%22%20y2%3D%22330.9%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22143.0%22%20y1%3D%22177.0%22%20x2%3D%2229.2%22%20y2%3D%22290.8%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22137.8%22%20y1%3D%22169.2%22%20x2%3D%22-10.9%22%20y2%3D%22230.8%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22136.0%22%20y1%3D%22160.0%22%20x2%3D%22-25.0%22%20y2%3D%22160.0%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22137.8%22%20y1%3D%22150.8%22%20x2%3D%22-10.9%22%20y2%3D%2289.2%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22143.0%22%20y1%3D%22143.0%22%20x2%3D%2229.2%22%20y2%3D%2229.2%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22150.8%22%20y1%3D%22137.8%22%20x2%3D%2289.2%22%20y2%3D%22-10.9%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22160.0%22%20y1%3D%22136.0%22%20x2%3D%22160.0%22%20y2%3D%22-25.0%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22169.2%22%20y1%3D%22137.8%22%20x2%3D%22230.8%22%20y2%3D%22-10.9%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22177.0%22%20y1%3D%22143.0%22%20x2%3D%22290.8%22%20y2%3D%2229.2%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3Cline%20x1%3D%22182.2%22%20y1%3D%22150.8%22%20x2%3D%22330.9%22%20y2%3D%2289.2%22%20stroke-width%3D%220.9%22%20opacity%3D%221%22%2F%3E%3C%2Fg%3E%3Cg%20opacity%3D%220.5%22%3E%3Ccircle%20cx%3D%22160%22%20cy%3D%22160%22%20r%3D%2230%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Ccircle%20cx%3D%22160%22%20cy%3D%22160%22%20r%3D%2270%22%20stroke-width%3D%221.1%22%20opacity%3D%220.7%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	--field-4: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20320%20320%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M%20166.0%20165.0%20L%20166.7%20165.7%20L%20167.3%20166.6%20L%20167.9%20167.6%20L%20168.2%20168.7%20L%20168.5%20169.9%20L%20168.5%20171.2%20L%20168.4%20172.5%20L%20168.1%20173.9%20L%20167.5%20175.3%20L%20166.8%20176.7%20L%20165.8%20178.1%20L%20164.7%20179.3%20L%20163.3%20180.5%20L%20161.7%20181.5%20L%20160.0%20182.3%20L%20158.1%20183.0%20L%20156.1%20183.4%20L%20154.0%20183.6%20L%20151.7%20183.6%20L%20149.5%20183.3%20L%20147.2%20182.7%20L%20144.9%20181.8%20L%20142.7%20180.6%20L%20140.5%20179.2%20L%20138.5%20177.4%20L%20136.6%20175.4%20L%20134.9%20173.1%20L%20133.5%20170.6%20L%20132.3%20167.9%20L%20131.4%20165.0%20L%20130.8%20161.9%20L%20130.5%20158.7%20L%20130.6%20155.5%20L%20131.1%20152.1%20L%20131.9%20148.8%20L%20133.2%20145.5%20L%20134.8%20142.3%20L%20136.8%20139.2%20L%20139.2%20136.4%20L%20141.9%20133.7%20L%20145.0%20131.3%20L%20148.4%20129.2%20L%20152.0%20127.4%20L%20155.9%20126.0%20L%20160.0%20125.1%20L%20164.3%20124.5%20L%20168.6%20124.5%20L%20173.0%20124.9%20L%20177.5%20125.8%20L%20181.8%20127.2%20L%20186.1%20129.0%20L%20190.2%20131.4%20L%20194.2%20134.2%20L%20197.8%20137.5%20L%20201.1%20141.3%20L%20204.1%20145.4%20L%20206.6%20149.9%20L%20208.6%20154.7%20L%20210.2%20159.7%20L%20211.2%20165.0%20L%20211.7%20170.4%20L%20211.6%20176.0%20L%20210.9%20181.5%20L%20209.6%20187.1%20L%20207.6%20192.5%20L%20205.1%20197.8%20L%20202.0%20202.8%20L%20198.3%20207.6%20L%20194.1%20211.9%20L%20189.4%20215.9%20L%20184.2%20219.4%20L%20178.6%20222.3%20L%20172.7%20224.7%20L%20166.5%20226.5%20L%20160.0%20227.5%20L%20153.4%20228.0%20L%20146.7%20227.7%20L%20140.0%20226.6%20L%20133.3%20224.9%20L%20126.8%20222.4%20L%20120.6%20219.3%20L%20114.6%20215.4%20L%20109.0%20210.9%20L%20103.9%20205.8%20L%2099.3%20200.0%20L%2095.3%20193.8%20L%2091.9%20187.1%20L%2089.2%20180.0%20L%2087.3%20172.6%20L%2086.1%20165.0%20L%2085.8%20157.2%20L%2086.3%20149.3%20L%2087.6%20141.5%20L%2089.8%20133.7%20L%2092.8%20126.2%20L%2096.6%20118.9%20L%20101.2%20112.0%20L%20106.5%20105.6%20L%20112.6%2099.8%20L%20119.3%2094.5%20L%20126.6%2090.0%20L%20134.4%2086.2%20L%20142.6%2083.2%20L%20151.2%2081.0%20L%20160.0%2079.8%20L%20169.0%2079.5%20L%20178.0%2080.2%20L%20187.0%2081.8%20L%20195.9%2084.4%20L%20204.5%2088.0%20L%20212.7%2092.4%20L%20220.5%2097.8%20L%20227.8%20104.0%20L%20234.4%20111.0%20L%20240.3%20118.6%20L%20245.4%20127.0%20L%20249.6%20135.9%20L%20252.9%20145.3%20L%20255.2%20155.0%20L%20256.5%20165.0%20L%20256.7%20175.2%20L%20255.8%20185.4%20L%20253.9%20195.5%20L%20250.9%20205.5%20L%20246.8%20215.1%20L%20241.7%20224.4%20L%20235.6%20233.1%20L%20228.6%20241.2%20L%20220.7%20248.5%20L%20212.0%20255.1%20L%20202.6%20260.7%20L%20192.6%20265.4%20L%20182.1%20269.0%20L%20171.2%20271.4%20L%20160.0%20272.8%20L%20148.7%20272.9%20L%20137.3%20271.9%20L%20126.0%20269.7%20L%20114.9%20266.2%20L%20104.2%20261.6%20L%2094.0%20255.9%20L%2084.3%20249.0%20L%2075.4%20241.2%20L%2067.3%20232.3%20L%2060.1%20222.7%20L%2054.0%20212.2%20L%2048.9%20201.1%20L%2045.0%20189.4%20L%2042.3%20177.4%20L%2040.9%20165.0%20L%2040.8%20152.5%20L%2042.0%20139.9%20L%2044.6%20127.5%20L%2048.4%20115.3%20L%2053.6%20103.6%20L%2060.0%2092.3%20L%2067.6%2081.8%20L%2076.3%2072.0%20L%2086.0%2063.2%20L%2096.7%2055.3%20L%20108.2%2048.6%20L%20120.4%2043.1%20L%20133.2%2038.9%20L%20146.4%2036.1%20L%20160.0%2034.6%20L%20173.7%2034.6%20L%20187.4%2036.0%20L%20201.0%2038.8%20L%20214.3%2043.1%20L%20227.1%2048.8%20L%20239.3%2055.8%20L%20250.8%2064.2%20L%20261.4%2073.7%20L%20271.0%2084.4%20L%20279.5%2096.0%20L%20286.7%20108.6%20L%20292.6%20121.9%20L%20297.1%20135.8%20L%20300.2%20150.3%20L%20301.7%20165.0%20L%20301.7%20179.9%20L%20300.1%20194.8%20L%20296.9%20209.5%20L%20292.2%20223.9%20L%20286.0%20237.7%20L%20278.3%20251.0%20L%20269.2%20263.4%20L%20258.9%20274.8%20L%20247.3%20285.1%20L%20234.6%20294.3%20L%20221.0%20302.0%20L%20206.6%20308.4%20L%20191.5%20313.2%20L%20175.9%20316.4%20L%20160.0%20318.0%20L%20143.9%20317.9%20L%20127.9%20316.2%20L%20112.0%20312.7%20L%2096.5%20307.6%20L%2081.6%20300.8%20L%2067.4%20292.5%20L%2054.1%20282.6%20L%2041.8%20271.4%20L%2030.7%20258.9%20L%2020.9%20245.3%20L%2012.6%20230.6%20L%205.9%20215.1%20L%200.7%20198.9%20L%20-2.7%20182.1%20L%20-4.3%20165.0%20L%20-4.2%20147.7%20L%20-2.2%20130.5%20L%201.6%20113.5%20L%207.1%2096.9%20L%2014.4%2080.9%20L%2023.4%2065.7%20L%2034.0%2051.5%20L%2046.0%2038.4%20L%2059.4%2026.6%20L%2074.1%2016.2%20L%2089.8%207.3%20L%20106.4%200.1%20L%20123.8%20-5.3%20L%20141.7%20-8.9%20L%20160.0%20-10.6%20L%20178.4%20-10.4%20L%20196.8%20-8.3%20L%20215.0%20-4.2%20L%20232.7%201.8%20L%20249.7%209.6%20L%20265.9%2019.2%20L%20281.1%2030.5%20L%20295.0%2043.4%20L%20307.6%2057.8%20L%20318.6%2073.4%20L%20328.0%2090.2%20L%20335.7%20107.9%20L%20341.4%20126.4%20L%20345.2%20145.5%20L%20347.0%20165.0%20L%20346.7%20184.6%20L%20344.3%20204.2%20L%20340.0%20223.5%20L%20333.5%20242.3%20L%20325.2%20260.4%20L%20314.9%20277.5%20L%20302.9%20293.6%20L%20289.1%20308.4%20L%20273.9%20321.7%20L%20257.2%20333.4%20L%20239.4%20343.4%20L%20220.6%20351.4%22%20stroke-width%3D%221.2%22%20opacity%3D%220.55%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	--field-5: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20320%20320%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-linecap%3D%22round%22%3E%3Cg%20opacity%3D%220.45%22%3E%3Cpath%20d%3D%22M%200%2070.0%20L%208%2073.6%20L%2016%2077.0%20L%2024%2080.2%20L%2032%2082.9%20L%2040%2085.1%20L%2048%2086.8%20L%2056%2087.7%20L%2064%2088.0%20L%2072%2087.5%20L%2080%2086.4%20L%2088%2084.6%20L%2096%2082.2%20L%20104%2079.3%20L%20112%2076.0%20L%20120%2072.5%20L%20128%2068.9%20L%20136%2065.4%20L%20144%2062.0%20L%20152%2059.0%20L%20160%2056.4%20L%20168%2054.3%20L%20176%2052.9%20L%20184%2052.1%20L%20192%2052.1%20L%20200%2052.7%20L%20208%2054.1%20L%20216%2056.1%20L%20224%2058.6%20L%20232%2061.6%20L%20240%2065.0%20L%20248%2068.5%20L%20256%2072.1%20L%20264%2075.6%20L%20272%2078.9%20L%20280%2081.8%20L%20288%2084.3%20L%20296%2086.2%20L%20304%2087.4%20L%20312%2088.0%20L%20320%2087.8%22%20stroke-width%3D%221%22%20opacity%3D%221.0%22%2F%3E%3Cpath%20d%3D%22M%200%20120.2%20L%208%20122.9%20L%2016%20125.1%20L%2024%20126.8%20L%2032%20127.7%20L%2040%20128.0%20L%2048%20127.5%20L%2056%20126.4%20L%2064%20124.6%20L%2072%20122.2%20L%2080%20119.3%20L%2088%20116.0%20L%2096%20112.5%20L%20104%20108.9%20L%20112%20105.4%20L%20120%20102.0%20L%20128%2099.0%20L%20136%2096.4%20L%20144%2094.3%20L%20152%2092.9%20L%20160%2092.1%20L%20168%2092.1%20L%20176%2092.7%20L%20184%2094.1%20L%20192%2096.1%20L%20200%2098.6%20L%20208%20101.6%20L%20216%20105.0%20L%20224%20108.5%20L%20232%20112.1%20L%20240%20115.6%20L%20248%20118.9%20L%20256%20121.8%20L%20264%20124.3%20L%20272%20126.2%20L%20280%20127.4%20L%20288%20128.0%20L%20296%20127.8%20L%20304%20126.9%20L%20312%20125.4%20L%20320%20123.2%22%20stroke-width%3D%221%22%20opacity%3D%220.94%22%2F%3E%3Cpath%20d%3D%22M%200%20166.8%20L%208%20167.7%20L%2016%20168.0%20L%2024%20167.5%20L%2032%20166.4%20L%2040%20164.6%20L%2048%20162.2%20L%2056%20159.3%20L%2064%20156.0%20L%2072%20152.5%20L%2080%20148.9%20L%2088%20145.4%20L%2096%20142.0%20L%20104%20139.0%20L%20112%20136.4%20L%20120%20134.3%20L%20128%20132.9%20L%20136%20132.1%20L%20144%20132.1%20L%20152%20132.7%20L%20160%20134.1%20L%20168%20136.1%20L%20176%20138.6%20L%20184%20141.6%20L%20192%20145.0%20L%20200%20148.5%20L%20208%20152.1%20L%20216%20155.6%20L%20224%20158.9%20L%20232%20161.8%20L%20240%20164.3%20L%20248%20166.2%20L%20256%20167.4%20L%20264%20168.0%20L%20272%20167.8%20L%20280%20166.9%20L%20288%20165.4%20L%20296%20163.2%20L%20304%20160.5%20L%20312%20157.4%20L%20320%20154.0%22%20stroke-width%3D%221%22%20opacity%3D%220.88%22%2F%3E%3Cpath%20d%3D%22M%200%20207.5%20L%208%20206.4%20L%2016%20204.6%20L%2024%20202.2%20L%2032%20199.3%20L%2040%20196.0%20L%2048%20192.5%20L%2056%20188.9%20L%2064%20185.4%20L%2072%20182.0%20L%2080%20179.0%20L%2088%20176.4%20L%2096%20174.3%20L%20104%20172.9%20L%20112%20172.1%20L%20120%20172.1%20L%20128%20172.7%20L%20136%20174.1%20L%20144%20176.1%20L%20152%20178.6%20L%20160%20181.6%20L%20168%20185.0%20L%20176%20188.5%20L%20184%20192.1%20L%20192%20195.6%20L%20200%20198.9%20L%20208%20201.8%20L%20216%20204.3%20L%20224%20206.2%20L%20232%20207.4%20L%20240%20208.0%20L%20248%20207.8%20L%20256%20206.9%20L%20264%20205.4%20L%20272%20203.2%20L%20280%20200.5%20L%20288%20197.4%20L%20296%20194.0%20L%20304%20190.4%20L%20312%20186.9%20L%20320%20183.4%22%20stroke-width%3D%221%22%20opacity%3D%220.82%22%2F%3E%3Cpath%20d%3D%22M%200%20242.2%20L%208%20239.3%20L%2016%20236.0%20L%2024%20232.5%20L%2032%20228.9%20L%2040%20225.4%20L%2048%20222.0%20L%2056%20219.0%20L%2064%20216.4%20L%2072%20214.3%20L%2080%20212.9%20L%2088%20212.1%20L%2096%20212.1%20L%20104%20212.7%20L%20112%20214.1%20L%20120%20216.1%20L%20128%20218.6%20L%20136%20221.6%20L%20144%20225.0%20L%20152%20228.5%20L%20160%20232.1%20L%20168%20235.6%20L%20176%20238.9%20L%20184%20241.8%20L%20192%20244.3%20L%20200%20246.2%20L%20208%20247.4%20L%20216%20248.0%20L%20224%20247.8%20L%20232%20246.9%20L%20240%20245.4%20L%20248%20243.2%20L%20256%20240.5%20L%20264%20237.4%20L%20272%20234.0%20L%20280%20230.4%20L%20288%20226.9%20L%20296%20223.4%20L%20304%20220.2%20L%20312%20217.4%20L%20320%20215.1%22%20stroke-width%3D%221%22%20opacity%3D%220.76%22%2F%3E%3Cpath%20d%3D%22M%200%20272.5%20L%208%20268.9%20L%2016%20265.4%20L%2024%20262.0%20L%2032%20259.0%20L%2040%20256.4%20L%2048%20254.3%20L%2056%20252.9%20L%2064%20252.1%20L%2072%20252.1%20L%2080%20252.7%20L%2088%20254.1%20L%2096%20256.1%20L%20104%20258.6%20L%20112%20261.6%20L%20120%20265.0%20L%20128%20268.5%20L%20136%20272.1%20L%20144%20275.6%20L%20152%20278.9%20L%20160%20281.8%20L%20168%20284.3%20L%20176%20286.2%20L%20184%20287.4%20L%20192%20288.0%20L%20200%20287.8%20L%20208%20286.9%20L%20216%20285.4%20L%20224%20283.2%20L%20232%20280.5%20L%20240%20277.4%20L%20248%20274.0%20L%20256%20270.4%20L%20264%20266.9%20L%20272%20263.4%20L%20280%20260.2%20L%20288%20257.4%20L%20296%20255.1%20L%20304%20253.4%20L%20312%20252.3%20L%20320%20252.0%22%20stroke-width%3D%221%22%20opacity%3D%220.7%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	--field-6: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20320%20320%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-linecap%3D%22round%22%3E%3Cg%20opacity%3D%220.4%22%20transform%3D%22rotate(28%20160%20160)%22%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22160%22%20rx%3D%22170%22%20ry%3D%2252%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22160%22%20rx%3D%22128%22%20ry%3D%2240%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22160%22%20rx%3D%2286%22%20ry%3D%2227%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22160%22%20rx%3D%2244%22%20ry%3D%2214%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3C%2Fg%3E%3Cg%20opacity%3D%220.4%22%20transform%3D%22rotate(-28%20160%20160)%22%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22160%22%20rx%3D%22170%22%20ry%3D%2252%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22160%22%20rx%3D%22128%22%20ry%3D%2240%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22160%22%20rx%3D%2286%22%20ry%3D%2227%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3Cellipse%20cx%3D%22160%22%20cy%3D%22160%22%20rx%3D%2244%22%20ry%3D%2214%22%20stroke-width%3D%221.1%22%20opacity%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}

/* =====================================================================
   2. RESET & BASE
   ===================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--step-0);
	line-height: 1.7;
	font-weight: 400;
	color: var(--plum);
	background: var(--ivory);
	-webkit-font-smoothing: antialiased;
	/* « clip » ne crée pas de conteneur de défilement : indispensable pour que
	   position: sticky continue de fonctionner (la colonne latérale, l'en-tête).
	   La première déclaration reste le repli pour les navigateurs anciens. */
	overflow-x: hidden;
	overflow-x: clip;
}
body.nav-open { overflow: hidden; }

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

a { color: var(--rosewood-deep); text-decoration: none; transition: color 0.25s var(--ease); }
a:hover { color: var(--plum); }

h1, h2, h3, h4 {
	font-family: var(--font-display);
	font-weight: 500;
	line-height: 1.14;
	color: var(--plum);
	margin: 0 0 0.5em;
	letter-spacing: 0;
}
p { margin: 0 0 1.1em; }
ul, ol { margin: 0 0 1.1em; padding-left: 1.2em; }

::selection { background: var(--rosewood); color: var(--white); }

:focus-visible {
	outline: 2px solid var(--rosewood);
	outline-offset: 3px;
	border-radius: 4px;
}

.wrap {
	width: 100%;
	max-width: var(--wrap);
	margin-inline: auto;
	padding-inline: clamp(1.25rem, 5vw, 2.5rem);
}

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px; height: 1px; overflow: hidden;
	word-wrap: normal !important;
}
.skip-link {
	position: absolute; left: -999px; top: 0; z-index: 9999;
	background: var(--plum); color: var(--white);
	padding: 0.7em 1.2em; border-radius: 0 0 8px 0;
}
.skip-link:focus { left: 0; color: var(--white); }

/* =====================================================================
   3. ÉLÉMENTS COMMUNS
   ===================================================================== */
.eyebrow {
	font-family: var(--font-body);
	font-size: var(--step--1);
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--rosewood);
	margin: 0 0 1rem;
}

.section-head { max-width: 640px; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.section-head h2 { font-size: var(--step-3); }

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	font-family: var(--font-body);
	font-weight: 600;
	font-size: var(--step-0);
	letter-spacing: 0.01em;
	color: var(--white);
	background: linear-gradient(120deg, var(--amethyst-deep), var(--amethyst));
	padding: 0.85em 1.7em;
	border: 1px solid var(--amethyst-deep);
	box-shadow: 0 8px 22px -12px rgba(91, 52, 176, 0.65);
	border-radius: 100px;
	cursor: pointer;
	white-space: nowrap;
	transition: transform 0.3s var(--ease), background 0.3s var(--ease), color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.btn:hover {
	color: var(--white);
	background: linear-gradient(120deg, var(--amethyst-deep), var(--rosewood));
	border-color: var(--rosewood-deep);
	transform: translateY(-2px);
	box-shadow: var(--shadow-sm);
}
.btn--ghost {
	background: transparent;
	color: var(--plum);
	border-color: var(--line);
}
.btn--ghost:hover {
	background: transparent;
	color: var(--rosewood-deep);
	border-color: var(--rosewood);
}
/* Variante secondaire : couleurs inversées par rapport au bouton rendez-vous. */
.btn--alt {
	background: var(--btn-alt);
	border-color: var(--btn-alt);
	color: var(--white);
}
.btn--alt:hover {
	background: var(--btn-alt-dark);
	border-color: var(--btn-alt-dark);
	color: var(--white);
}
/* Variante « voyance SMS » : une 4e couleur (or/bronze), distincte des 3 autres boutons (rendez-vous, mail, téléphone). */
.btn--sms {
	background: var(--btn-sms);
	border-color: var(--btn-sms);
	color: var(--white);
}
.btn--sms:hover {
	background: var(--btn-sms-dark);
	border-color: var(--btn-sms-dark);
	color: var(--white);
}
/* Variante « téléphone » : une 5e couleur (sauge), à la place du blanc/ivoire utilisé jusque-là — même couleur partout où le numéro apparaît (en-tête, accueil, section contact, barre latérale). */
.btn--phone {
	background: var(--btn-phone);
	border-color: var(--btn-phone);
	color: var(--white);
}
.btn--phone:hover {
	background: var(--btn-phone-dark);
	border-color: var(--btn-phone-dark);
	color: var(--white);
}
.btn--small { padding: 0.6em 1.2em; font-size: var(--step--1); }
.btn--lg { padding: 1em 2em; font-size: var(--step-1); }

.link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	font-weight: 600;
	color: var(--rosewood-deep);
}
.link-arrow::after {
	content: '→';
	transition: transform 0.3s var(--ease);
}
.link-arrow:hover::after { transform: translateX(5px); }

/* =====================================================================
   4. SIGNATURE — lignes de champ magnétique
   ===================================================================== */
.lumag-field { width: 100%; height: 100%; color: var(--rosewood); }
.lumag-field--hero {
	position: absolute;
	inset: 0;
	color: var(--rosewood);
	opacity: 0.5;
}
.lumag-field--divider {
	color: var(--rosewood);
	opacity: 0.32;
}
.lumag-line {
	transform-origin: 600px 300px;
	transform-box: view-box;
}
@media (prefers-reduced-motion: no-preference) {
	.lumag-field--hero .lumag-line {
		animation: lumag-breathe 14s var(--ease) infinite;
	}
	.lumag-field--hero .lumag-line:nth-child(2) { animation-delay: -2s; }
	.lumag-field--hero .lumag-line:nth-child(3) { animation-delay: -4s; }
	.lumag-field--hero .lumag-line:nth-child(4) { animation-delay: -6s; }
	.lumag-field--hero .lumag-line:nth-child(5) { animation-delay: -8s; }
}
@keyframes lumag-breathe {
	0%, 100% { transform: scale(1) rotate(0deg); }
	50%      { transform: scale(1.045) rotate(0.6deg); }
}

/* =====================================================================
   5. EN-TÊTE & NAVIGATION
   ===================================================================== */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid transparent;
	transition: border-color 0.3s var(--ease), padding 0.3s var(--ease);
}
/* Le flou est posé sur un calque séparé (::before), pas sur .site-header
   lui-même : backdrop-filter sur l'en-tête créerait un nouveau bloc
   conteneur pour le menu mobile (position: fixed) ci-dessous, qui se
   retrouverait alors coincé dans la hauteur de l'en-tête au lieu de
   couvrir tout l'écran — d'où le menu tronqué/transparent en mobile. */
.site-header::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: color-mix(in srgb, var(--ivory) 80%, transparent);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	transition: background 0.3s var(--ease);
}
.site-header.is-scrolled {
	border-bottom-color: var(--line-soft);
}
.site-header.is-scrolled::before {
	background: color-mix(in srgb, var(--ivory) 92%, transparent);
}
.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: clamp(1rem, 2vw, 1.4rem);
}
.site-header.is-scrolled .site-header__inner { padding-block: 0.8rem; }

.site-title {
	font-family: var(--font-display);
	font-size: var(--step-1);
	font-weight: 500;
	color: var(--plum);
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	letter-spacing: -0.01em;
}
.site-title:hover { color: var(--plum); }
.site-title__mark, .footer-mark {
	width: 1.5em; height: 1.5em;
	flex: none;
	border-radius: 50%;
	background:
		radial-gradient(circle at 50% 50%, transparent 28%, var(--rosewood) 29%, transparent 31%),
		radial-gradient(circle at 50% 50%, transparent 48%, var(--copper) 49%, transparent 51%),
		radial-gradient(circle at 50% 50%, var(--blush) 0%, var(--blush) 22%, transparent 23%);
}
.custom-logo { max-height: 60px; width: auto; }

.main-navigation {
	display: flex;
	align-items: center;
	gap: clamp(0.9rem, 1.8vw, 1.8rem);
	min-width: 0;
}
.main-navigation ul {
	list-style: none;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: clamp(0.8rem, 1.6vw, 1.6rem);
	margin: 0; padding: 0;
}
.main-navigation li { flex: none; }
.main-navigation a:not(.btn) {
	font-weight: 500;
	font-size: clamp(0.88rem, 0.82rem + 0.25vw, 1rem);
	color: var(--plum-soft);
	position: relative;
	padding-block: 0.3em;
	white-space: nowrap;
}
.main-navigation a:not(.btn)::after {
	content: '';
	position: absolute;
	left: 0; bottom: 0;
	width: 100%; height: 1px;
	background: var(--rosewood);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--ease);
}
.main-navigation a:not(.btn):hover { color: var(--plum); }
.main-navigation a:not(.btn):hover::after,
.main-navigation .current-menu-item > a:not(.btn)::after { transform: scaleX(1); }
.header-actions { display: flex; align-items: center; gap: 0.6rem; flex: none; }

/* Les boutons de l'en-tête : texte blanc, deux teintes distinctes. */
.main-navigation .btn,
.main-navigation .btn:hover { color: var(--white); white-space: nowrap; }
.main-navigation .btn::after { display: none; }
.header-cta { background: var(--btn-rdv); border-color: var(--btn-rdv); }
.header-cta:hover { background: var(--btn-rdv-dark); border-color: var(--btn-rdv-dark); }
.header-cta--alt { background: var(--btn-alt); border-color: var(--btn-alt); }
.header-cta--alt:hover { background: var(--btn-alt-dark); border-color: var(--btn-alt-dark); }

.nav-toggle {
	display: none;
	width: 44px; height: 44px;
	border: none;
	background: transparent;
	cursor: pointer;
	position: relative;
	z-index: 110;
}
.nav-toggle__bar,
.nav-toggle__bar::before,
.nav-toggle__bar::after {
	content: '';
	position: absolute;
	left: 11px;
	width: 22px; height: 2px;
	background: var(--plum);
	border-radius: 2px;
	transition: transform 0.3s var(--ease), opacity 0.2s var(--ease);
}
.nav-toggle__bar { top: 21px; }
.nav-toggle__bar::before { top: -7px; }
.nav-toggle__bar::after { top: 7px; }

/* =====================================================================
   6. HERO
   ===================================================================== */
.hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(120% 90% at 80% -10%, var(--blush) 0%, transparent 55%),
		radial-gradient(90% 80% at 10% 110%, var(--blush-soft) 0%, transparent 50%),
		var(--ivory);
	padding-block: clamp(5rem, 8vw, 9rem) clamp(5rem, 9vw, 10rem);
}
.hero__field { position: absolute; inset: -10% -5%; pointer-events: none; }
.hero__inner { position: relative; max-width: 820px; }
.hero__title {
	font-size: var(--step-4);
	font-weight: 500;
	margin-bottom: 0.4em;
}
.hero__title em { font-style: italic; color: var(--rosewood-deep); }
.hero__text {
	font-size: var(--step-1);
	color: var(--plum-soft);
	max-width: 600px;
	line-height: 1.6;
}
.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 2.2rem;
}

/* --- Hero « qui suis-je » : portrait + présentation, au-dessus de la ligne de flottaison --- */
.hero--intro { padding-block: clamp(2.2rem, 4vw, 3.6rem) clamp(3rem, 6vw, 5rem); }
.hero__grid {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 0.6fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
}
.hero--intro .hero__inner { max-width: 620px; }
.hero--intro .hero__title { font-size: var(--step-3); margin-bottom: 0.5em; }
.hero--intro .hero__text { font-size: var(--step-1); margin-bottom: 0.9em; }
.hero--intro .hero__actions { margin-top: 1.8rem; }
.hero__more { color: var(--plum-soft); margin: 0; }

/* Bloc de présentation répété en tête de chaque article/page. Depuis la
   v1.7.0 il est rendu HORS de .entry-content (pleine largeur, même gabarit
   que le hero de la home : .wrap à 1180px), entre le titre et le corps de
   texte. */
.hero--repeat {
	margin-top: 0.5rem;
	padding-block: clamp(1.6rem, 3vw, 2.6rem);
}
.hero--repeat .hero__grid {
	padding-top: clamp(1.2rem, 2.5vw, 2rem);
	border-top: 1px solid var(--line, #E7DAF7);
}
.hero__area {
	margin-top: 1.4rem;
	font-size: var(--step--1);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--rosewood);
}
.hero__media { display: flex; justify-content: flex-end; }
.hero__photo {
	display: block;
	width: 100%;
	max-width: 440px;
	height: auto;
	/* v1.23.6 : portrait affiché en entier (plus de recadrage), sans cadre ni
	   carte blanche. mix-blend-mode: multiply fait disparaître un fond blanc
	   éventuel de l'image sur le fond ivoire du site. */
	aspect-ratio: auto;
	object-fit: contain;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: none;
	mix-blend-mode: multiply;
}
.hero__photo--empty {
	display: grid;
	aspect-ratio: 4 / 5;
	max-width: 330px;
	border-radius: var(--radius-lg);
	border: 1px solid var(--line-soft);
	mix-blend-mode: normal;
	place-items: center;
	background:
		radial-gradient(80% 80% at 30% 20%, var(--blush) 0%, transparent 60%),
		linear-gradient(155deg, var(--blush-soft), var(--ivory-deep));
}
.section-anchor { position: absolute; top: -100px; left: 0; width: 1px; height: 1px; }

@media (max-width: 860px) {
	.hero__grid { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 2rem; }
	.hero--intro .hero__inner { max-width: 560px; }
	.hero--intro .hero__text { margin-inline: auto; }
	.hero__actions { justify-content: center; }
	.hero__media { justify-content: center; }
	.hero__photo { max-width: 280px; }
}

/* =====================================================================
   7. SECTIONS DE CONTENU
   ===================================================================== */
.about, .magnetism, .services, .steps, .pricing, .testimonials, .faq, .contact, .page-extra {
	padding-block: var(--section-y);
}
.magnetism, .steps, .faq { background: var(--ivory-deep); }
.services { background: var(--blush-soft); }

/* --- À propos --- */
.about__grid {
	display: grid;
	grid-template-columns: 0.85fr 1fr;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}
.about__photo {
	position: relative;
	aspect-ratio: 4 / 5;
	border-radius: var(--radius-lg);
	overflow: hidden;
	background:
		radial-gradient(80% 80% at 30% 20%, var(--blush) 0%, transparent 60%),
		linear-gradient(155deg, var(--blush-soft), var(--ivory-deep));
	box-shadow: var(--shadow);
	display: grid;
	place-items: center;
	border: 1px solid var(--line-soft);
}
.about__photo-hint {
	font-size: var(--step--1);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rosewood);
	opacity: 0.7;
}
.about__photo--img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}
.about__body h2 { font-size: var(--step-3); }
.about__body h2 em { font-style: italic; color: var(--rosewood-deep); }
.about__body p { color: var(--plum-soft); }

/* --- Le magnétisme : trois piliers --- */
.magnetism__head { max-width: 720px; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.magnetism__head .lead { font-size: var(--step-1); color: var(--plum-soft); line-height: 1.6; }
.feature-row {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1.5rem, 3vw, 2.5rem);
}
.feature {
	padding-top: 1.6rem;
	border-top: 1px solid var(--line);
}
.feature__num {
	display: block;
	font-family: var(--font-display);
	font-style: italic;
	font-size: var(--step-1);
	color: var(--copper);
	margin-bottom: 0.8rem;
}
.feature h3 { font-size: var(--step-1); }
.feature p { color: var(--plum-soft); margin: 0; }

/* --- Les soins : grille de cartes --- */
.services__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1.2rem, 2.5vw, 1.8rem);
}
@media (max-width: 640px) {
	.services__grid {
		grid-template-columns: 1fr;
	}
}
/* Cartes des pages de service — même esprit que les cartes « oracle »
   de l'accueil : bordure dégradée, cadre doré, médaillon ✦ lumineux. */
.service-card {
	--accent: var(--amethyst);
	--accent-soft: rgba(123, 79, 214, 0.16);
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 2.4rem clamp(1.4rem, 2.4vw, 2.1rem) 2.1rem;
	border-radius: 22px;
	border: 1.5px solid transparent;
	background:
		radial-gradient(120% 65% at 50% 0%, var(--accent-soft), transparent 65%) padding-box,
		linear-gradient(180deg, #FFFFFF 0%, #FDFAFF 60%, #F8F1FC 100%) padding-box,
		linear-gradient(150deg, var(--gold-light) 0%, var(--accent) 45%, var(--rosewood) 100%) border-box;
	box-shadow:
		0 1px 2px rgba(46, 31, 79, 0.05),
		0 18px 40px -24px rgba(91, 52, 176, 0.45);
	transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease);
	transition-delay: var(--d, 0ms);
	text-decoration: none;
	color: var(--plum-soft);
}
.services__grid > .service-card:nth-child(6n+2) { --accent: var(--rosewood);  --accent-soft: rgba(155, 79, 150, 0.15); }
.services__grid > .service-card:nth-child(6n+3) { --accent: var(--c-teal);    --accent-soft: rgba(76, 91, 192, 0.15); }
.services__grid > .service-card:nth-child(6n+4) { --accent: var(--c-gold);    --accent-soft: rgba(201, 160, 78, 0.2); }
.services__grid > .service-card:nth-child(6n+5) { --accent: var(--c-sage);    --accent-soft: rgba(95, 154, 166, 0.16); }
.services__grid > .service-card:nth-child(6n)   { --accent: var(--c-copper);  --accent-soft: rgba(196, 122, 138, 0.16); }

/* cadre intérieur doré */
.service-card::before {
	content: '';
	position: absolute; inset: 9px;
	border: 1px solid rgba(201, 160, 78, 0.42);
	border-radius: 15px;
	pointer-events: none;
}
.service-card:hover,
.service-card:focus-within {
	transform: translateY(-5px);
	box-shadow:
		0 2px 4px rgba(46, 31, 79, 0.06),
		0 0 0 4px var(--accent-soft),
		0 26px 56px -26px var(--accent);
}
.service-card__glyph { display: none; }

/* médaillon ✦ au-dessus du titre */
.service-card h3::before {
	content: '✦';
	display: grid;
	place-items: center;
	width: 52px; height: 52px;
	margin: 0 auto 1rem;
	border-radius: 50%;
	font-family: var(--font-body);
	font-size: 1.45rem;
	color: var(--accent);
	background: radial-gradient(circle at 50% 38%, #FFFFFF 0%, #FFFFFF 40%, var(--accent-soft) 100%);
	border: 1px dashed rgba(201, 160, 78, 0.7);
	box-shadow:
		inset 0 0 0 5px rgba(255, 255, 255, 0.75),
		0 0 22px -2px var(--accent-soft),
		0 0 0 8px rgba(255, 255, 255, 0.35);
	text-shadow: 0 0 10px var(--accent-soft);
	transition: transform 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.service-card:hover h3::before { transform: rotate(180deg) scale(1.08); }
.service-card h3,
.entry-content .service-card h3 {
	position: relative;
	font-family: var(--font-display);
	font-weight: 500;
	font-size: clamp(1.35rem, 1.15rem + 0.6vw, 1.7rem);
	line-height: 1.2;
	margin: 0;
	color: var(--plum);
}
/* filet doré sous le titre */
.service-card h3::after {
	content: '';
	display: block;
	width: 64px; height: 1px;
	margin: 0.9rem auto 0;
	background: linear-gradient(90deg, transparent, var(--c-gold, #C9A04E), transparent);
	transition: width 0.45s var(--ease);
}
.service-card:hover h3::after { width: 96px; }
.service-card p,
.entry-content .service-card p {
	position: relative;
	color: var(--plum-soft);
	margin: 0.9rem 0 0;
	line-height: 1.65;
}
@media (prefers-reduced-motion: reduce) {
	.service-card, .service-card h3::before, .service-card h3::after { transition: none; }
}
.services__note {
	margin-top: 2.5rem;
	font-size: var(--step--1);
	color: var(--plum-soft);
	font-style: italic;
	max-width: 640px;
}

/* --- La séance : étapes numérotées --- */
.steps__list {
	list-style: none;
	margin: 0; padding: 0;
	display: grid;
	gap: 0;
	max-width: 820px;
}
.step {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: clamp(1.5rem, 4vw, 3rem);
	padding-block: clamp(1.8rem, 4vw, 2.6rem);
	border-bottom: 1px solid var(--line);
}
.step:first-child { padding-top: 0; }
.step:last-child { border-bottom: none; }
.step__index {
	font-family: var(--font-display);
	font-style: italic;
	font-size: var(--step-3);
	color: var(--rosewood);
	line-height: 1;
}
.step h3 { font-size: var(--step-1); margin-bottom: 0.3em; }
.step p { color: var(--plum-soft); margin: 0; }

/* --- Tarifs --- */
.pricing__inner { max-width: 900px; margin-inline: auto; text-align: center; }
.pricing .section-head { margin-inline: auto; }
.pricing__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: clamp(1.2rem, 2.5vw, 1.8rem);
	text-align: left;
}
.price-card {
	background: var(--white);
	border: 1px solid var(--line-soft);
	border-radius: var(--radius-lg);
	padding: clamp(2rem, 4vw, 2.8rem);
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}
.price-card--feature {
	background: var(--plum);
	border-color: var(--plum);
}
.price-card--feature h3,
.price-card--feature .price { color: var(--white); }
.price-card--feature .price-desc { color: color-mix(in srgb, var(--white) 78%, transparent); }
.price-card--feature .btn {
	background: var(--white);
	color: var(--plum);
	border-color: var(--white);
	align-self: flex-start;
}
.price-card--feature .btn:hover { background: var(--blush); color: var(--plum); border-color: var(--blush); }
.price-card h3 { font-size: var(--step-1); margin: 0; }
.price {
	font-family: var(--font-display);
	font-size: var(--step-3);
	color: var(--rosewood-deep);
	line-height: 1;
}
.price-desc { color: var(--plum-soft); margin: 0 0 1.2rem; }
.price-card .btn { align-self: flex-start; margin-top: auto; }
.pricing__note {
	margin-top: 2.5rem;
	font-size: var(--step--1);
	color: var(--plum-soft);
	font-style: italic;
}

/* --- Témoignages --- */
.testimonials__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: clamp(1.2rem, 2.5vw, 1.8rem);
}
.testimonial {
	margin: 0;
	background: var(--blush-soft);
	border-radius: var(--radius);
	padding: clamp(1.8rem, 3vw, 2.4rem);
	position: relative;
}
.testimonial::before {
	content: '“';
	font-family: var(--font-display);
	font-size: 4rem;
	line-height: 0.5;
	color: var(--rosewood);
	opacity: 0.4;
	display: block;
	margin-bottom: 0.4rem;
}
.testimonial blockquote {
	margin: 0 0 1.2rem;
	font-size: var(--step-1);
	font-family: var(--font-display);
	font-style: italic;
	line-height: 1.45;
	color: var(--plum);
}
.testimonial figcaption {
	font-weight: 600;
	font-size: var(--step--1);
	letter-spacing: 0.04em;
	color: var(--rosewood-deep);
}

/* --- FAQ --- */
.faq__list { max-width: var(--wrap-text); }
.faq-item {
	border-bottom: 1px solid var(--line);
	padding-block: 0.4rem;
}
.faq-item summary {
	cursor: pointer;
	list-style: none;
	padding: 1.1rem 2.5rem 1.1rem 0;
	font-family: var(--font-display);
	font-size: var(--step-1);
	color: var(--plum);
	position: relative;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
	content: '+';
	position: absolute;
	right: 0; top: 50%;
	transform: translateY(-50%);
	font-size: 1.5rem;
	color: var(--rosewood);
	transition: transform 0.3s var(--ease);
}
.faq-item[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq-item p { color: var(--plum-soft); margin: 0 0 1.2rem; max-width: 62ch; }

/* --- Contact --- */
.contact {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(90% 90% at 85% 0%, var(--blush) 0%, transparent 55%),
		var(--plum);
	color: var(--ivory);
	text-align: center;
}
.contact__field { position: absolute; inset: -15% -5%; color: var(--blush); opacity: 0.16; pointer-events: none; }
.contact__inner { position: relative; max-width: 760px; margin-inline: auto; }
.contact .eyebrow { color: var(--blush); }
.contact h2 { color: var(--ivory); font-size: var(--step-3); }
.contact__lead { color: color-mix(in srgb, var(--ivory) 82%, transparent); font-size: var(--step-1); }
.contact__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
	margin: 2.2rem 0 2.8rem;
}
.contact__actions .btn { background: var(--ivory); color: var(--plum); border-color: var(--ivory); }
.contact__actions .btn:hover { background: var(--blush); color: var(--plum); border-color: var(--blush); }
.contact__actions .btn--phone { background: var(--btn-phone); color: var(--white); border-color: var(--btn-phone); }
.contact__actions .btn--phone:hover { background: var(--btn-phone-dark); color: var(--white); border-color: var(--btn-phone-dark); }
.contact__actions .btn--ghost { background: transparent; color: var(--ivory); border-color: color-mix(in srgb, var(--ivory) 35%, transparent); }
.contact__actions .btn--ghost:hover { background: transparent; color: var(--blush); border-color: var(--blush); }
.contact__meta {
	list-style: none;
	margin: 0; padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.5rem 3rem;
}
.contact__meta li {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	font-size: var(--step-0);
	color: color-mix(in srgb, var(--ivory) 85%, transparent);
}
.contact__meta strong {
	font-family: var(--font-body);
	font-size: var(--step--1);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--blush);
	font-weight: 700;
}

/* =====================================================================
   8. PIED DE PAGE
   ===================================================================== */
.site-footer {
	position: relative;
	overflow: hidden;
	background: var(--ivory-deep);
	padding-block: clamp(3rem, 5vw, 4.5rem) 2rem;
	border-top: 1px solid var(--line-soft);
}
.site-footer__grid {
	position: relative;
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 2.5rem;
	padding-bottom: 2.5rem;
	border-bottom: 1px solid var(--line);
}
.footer-mark { margin-bottom: 1rem; }
.footer-name {
	font-family: var(--font-display);
	font-size: var(--step-1);
	color: var(--plum);
	margin: 0 0 0.4rem;
}
.footer-area { color: var(--plum-soft); font-size: var(--step--1); margin: 0; }
.lumag-social-fb { color: var(--plum-soft); text-decoration: none; transition: color 0.2s; line-height: 1; display: inline-flex; align-items: center; }
.lumag-social-fb:hover { color: var(--plum); }
.lumag-social-icon { display: inline-flex; align-items: center; line-height: 1; text-decoration: none; transition: opacity 0.2s; }
.lumag-social-icon:hover { opacity: 0.8; }
.site-footer__nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.site-footer__nav a { color: var(--plum-soft); font-weight: 500; }
.site-footer__nav a:hover { color: var(--rosewood-deep); }
.site-footer__bottom {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 1.6rem;
	font-size: var(--step--1);
	color: var(--plum-soft);
}
.footer-legal { max-width: 60ch; margin: 0; font-style: italic; }
.footer-copy { margin: 0; }

/* =====================================================================
   9. BLOG, ARCHIVES, ARTICLE
   ===================================================================== */
.page-head { padding-block: clamp(3rem, 6vw, 5rem) 1.5rem; }
.page-title { font-size: var(--step-3); }
.page-title em { font-style: italic; color: var(--rosewood-deep); }
.archive-description { color: var(--plum-soft); max-width: var(--wrap-text); }

.content-area { padding-bottom: var(--section-y); }
.content-area.has-sidebar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}

.posts-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
}
.has-sidebar .posts-list { grid-template-columns: 1fr; }

.card {
	background: var(--white);
	border: 1px solid var(--line-soft);
	border-radius: var(--radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
}
.card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.card .post-thumbnail { display: block; overflow: hidden; }
.card .post-thumbnail img { width: 100%; aspect-ratio: 16 / 11; object-fit: cover; transition: transform 0.6s var(--ease); }
.card:hover .post-thumbnail img { transform: scale(1.04); }
.card__body { padding: clamp(1.4rem, 2.5vw, 1.9rem); display: flex; flex-direction: column; gap: 0.6rem; }
.card__meta, .entry-meta { font-size: var(--step--1); letter-spacing: 0.08em; text-transform: uppercase; color: var(--rosewood); }
.card__title { font-size: var(--step-1); margin: 0; }
.card__title a { color: var(--plum); }
.card__title a:hover { color: var(--rosewood-deep); }
.card__excerpt { color: var(--plum-soft); margin: 0; }
.card .link-arrow { margin-top: 0.3rem; }

.single-post .entry-content,
.single-page .entry-content,
.page-extra .entry-content { max-width: var(--wrap-text); margin-inline: auto; }
.has-sidebar .entry-content { margin-inline: 0; }
.page-thumb { max-width: var(--wrap-text); margin: 0 auto; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); }

.entry-content > * { margin-bottom: 1.2em; }
.entry-content h2 { font-size: var(--step-2); margin-top: 1.6em; }
.entry-content h3 { font-size: var(--step-1); margin-top: 1.4em; }
.entry-content a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--blush); }
.entry-content a:hover { text-decoration-color: var(--rosewood); }
.entry-content blockquote {
	margin: 1.6em 0;
	padding: 0.5em 0 0.5em 1.5em;
	border-left: 3px solid var(--rosewood);
	font-family: var(--font-display);
	font-style: italic;
	font-size: var(--step-1);
	color: var(--plum);
}
.entry-content img { border-radius: var(--radius); }
.entry-content :is(h2, h3) + p { margin-top: 0; }
.entry-content ul, .entry-content ol { padding-left: 1.4em; }
.entry-content li { margin-bottom: 0.4em; }

.entry-footer {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--line);
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	font-size: var(--step--1);
}
.entry-footer a { color: var(--rosewood-deep); }

.post-nav {
	display: flex;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: 2.5rem;
	max-width: var(--wrap-text);
	margin-inline: auto;
}
.post-nav a { font-family: var(--font-display); font-size: var(--step-1); color: var(--plum); }
.post-nav a:hover { color: var(--rosewood-deep); }
.post-nav__next { text-align: right; margin-left: auto; }

/* Pagination */
.pagination { margin-top: 3rem; display: flex; justify-content: center; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 2.6rem; height: 2.6rem;
	padding: 0 0.6rem;
	border-radius: 100px;
	border: 1px solid var(--line);
	color: var(--plum);
	font-weight: 600;
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover { background: var(--plum); color: var(--white); border-color: var(--plum); }

/* --- Carte tarif secondaire --- */
.price-card--alt { border-color: color-mix(in srgb, var(--btn-alt) 40%, transparent); }
.price-card--alt .price { color: var(--btn-alt); }

.page-hero__lead {
	margin-top: 1.2rem;
	max-width: 620px;
	font-size: var(--step-1);
	color: var(--plum-soft);
}
.voyance__steps { background: var(--ivory-deep); margin-top: clamp(2rem, 4vw, 3rem); }
.voyance__cta { padding-block: var(--section-y); }
.voyance__card {
	display: grid;
	gap: 1.8rem;
	align-items: center;
	padding: clamp(1.8rem, 4vw, 3rem);
	border-radius: var(--radius-lg);
	background: linear-gradient(135deg, var(--blush-soft) 0%, var(--ivory-deep) 100%);
	border: 1px solid var(--line-soft);
	text-align: center;
}
.voyance__card h2 { font-size: var(--step-2); margin: 0; }
.voyance__card .price { font-family: var(--font-display); font-size: var(--step-3); color: var(--btn-alt); margin: 0.2em 0 0.6rem; }
.voyance__card .price-desc { color: var(--plum-soft); margin: 0; }
.voyance__card-perks {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.4rem;
	font-size: var(--step--1);
	color: var(--plum);
}
.voyance__card-perks li { position: relative; padding-left: 1.4em; }
.voyance__card-perks li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: var(--btn-alt);
	font-weight: 700;
}
.voyance__card-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; justify-content: center; }
.voyance__note {
	margin-top: 2rem;
	max-width: var(--wrap-text);
	font-size: var(--step--1);
	color: var(--plum-soft);
}
.voyance__note p { margin-bottom: 0.8em; }

@media (min-width: 780px) {
	.voyance__card { text-align: left; }
}

/* --- Page « Avis & récits » --- */
.avis { padding-block: clamp(1rem, 3vw, 2rem) var(--section-y); }
.avis__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: clamp(1.2rem, 2.5vw, 1.8rem);
}
.avis-card {
	--accent: var(--c-rosewood);
	position: relative;
	padding: clamp(1.6rem, 3vw, 2.2rem);
	border-radius: var(--radius);
	background: var(--white);
	border: 1px solid var(--line-soft);
	border-top: 3px solid var(--accent);
	box-shadow: var(--shadow-sm);
}
.avis-card__mark {
	position: absolute;
	top: 0.6rem; right: 1.2rem;
	font-family: var(--font-display);
	font-size: 3.4rem;
	line-height: 1;
	color: var(--accent);
	opacity: 0.22;
}
.avis-card__kicker {
	font-size: var(--step--1);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--accent);
	margin: 0 0 0.5rem;
}
.avis-card__title { font-size: var(--step-1); margin: 0 0 0.7rem; }
.avis-card__text { color: var(--plum-soft); margin: 0; }

.avis-card:nth-child(6n+1) { --accent: var(--c-rosewood); }
.avis-card:nth-child(6n+2) { --accent: var(--c-teal); }
.avis-card:nth-child(6n+3) { --accent: var(--c-copper); }
.avis-card:nth-child(6n+4) { --accent: var(--c-sage); }
.avis-card:nth-child(6n+5) { --accent: var(--c-gold); }
.avis-card:nth-child(6n)   { --accent: var(--c-mauve); }

.avis-common { background: var(--ivory-deep); padding-block: var(--section-y); }
.avis-common__inner { max-width: var(--wrap-text); }
.avis-common h2 { font-size: var(--step-2); margin-bottom: 0.8rem; }
.avis-common p { color: var(--plum-soft); }

.avis-note { padding-block: clamp(2.5rem, 5vw, 4rem); }
.avis-note__inner {
	max-width: var(--wrap-text);
	padding: clamp(1.4rem, 3vw, 2rem);
	border-radius: var(--radius);
	border: 1px solid var(--line);
	background: var(--ivory);
}
.avis-note h2 { font-size: var(--step-1); margin-bottom: 0.6rem; }
.avis-note p { font-size: var(--step--1); color: var(--plum-soft); margin-bottom: 0.7em; }
.avis-note p:last-child { margin-bottom: 0; }

.avis-cta { padding-bottom: var(--section-y); }
.avis-cta__inner { text-align: center; }
.avis-cta h2 { font-size: var(--step-2); margin-bottom: 1.4rem; }
.avis-cta__actions { display: flex; flex-wrap: wrap; gap: 0.8rem; justify-content: center; }

/* Sidebar / widgets */
.widget-area {
	display: grid;
	gap: 2rem;
	position: sticky;
	top: calc(var(--header-h) + 1.4rem);
	align-self: start;
}
.widget { background: var(--white); border: 1px solid var(--line-soft); border-radius: var(--radius); padding: 1.6rem; }
.widget-title { font-size: var(--step-1); margin-bottom: 0.8rem; }
.widget ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.widget a:not(.btn) { color: var(--plum-soft); }
.widget a:not(.btn):hover { color: var(--rosewood-deep); }
.widget .btn, .widget .btn:hover { color: var(--white); }
.widget .btn--ghost { color: var(--plum); }
.widget .btn--ghost:hover { color: var(--rosewood-deep); }

/* Encart de présentation (colonne latérale des articles) */
.author-card {
	text-align: center;
	background: linear-gradient(180deg, var(--blush-soft) 0%, var(--white) 55%);
	border-color: var(--line);
	padding-top: 1.9rem;
}
.author-card__photo {
	width: 118px;
	height: 118px;
	margin: 0 auto 1rem;
	border-radius: 50%;
	overflow: hidden;
	border: 3px solid var(--white);
	box-shadow: var(--shadow-sm);
}
.author-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.author-card__name {
	font-family: var(--font-display);
	font-size: var(--step-1);
	margin: 0;
	color: var(--plum);
}
.author-card__role {
	font-size: var(--step--1);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--rosewood);
	margin: 0.35rem 0 0.9rem;
}
.author-card__bio {
	font-size: var(--step--1);
	line-height: 1.65;
	color: var(--plum-soft);
	margin: 0 0 1.2rem;
}
.author-card .author-card__phone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	font-weight: 700;
	font-size: var(--step-0);
	color: var(--btn-phone);
	margin-bottom: 1rem;
}
.author-card .author-card__phone:hover { color: var(--btn-phone-dark); }
.author-card .author-card__phone svg { color: var(--btn-phone); flex: none; }
.author-card__btn { width: 100%; }
.author-card__btn + .author-card__btn { margin-top: 0.6rem; }

/* Liste des catégories (colonne latérale) */
.category-list__list { gap: 0.5rem; }
.category-list__link {
	display: block;
	padding: 0.6rem 0.9rem;
	border-radius: var(--radius);
	background: var(--blush-soft);
	color: var(--plum);
	font-weight: 600;
	font-size: var(--step--1);
}
.category-list__link:hover { background: var(--rosewood); color: var(--white); }

/* Bandeau de rendez-vous en fin d'article */
.post-cta {
	margin-top: 3rem;
	padding: clamp(1.6rem, 3vw, 2.2rem);
	border-radius: var(--radius-lg);
	background: linear-gradient(135deg, var(--blush-soft) 0%, var(--ivory-deep) 100%);
	border: 1px solid var(--line-soft);
	display: grid;
	gap: 1.4rem;
	max-width: var(--wrap-text);
}
.post-cta__title {
	font-family: var(--font-display);
	font-size: var(--step-2);
	margin: 0 0 0.5rem;
	color: var(--plum);
}
.post-cta__price {
	margin: 0 0 0.3rem;
	font-family: var(--font-display);
	font-size: var(--step-3);
	font-weight: 600;
	color: var(--rosewood);
}
.post-cta__sub {
	margin: 0 0 0.6rem;
	font-size: var(--step-0);
	color: var(--plum);
}
.post-cta__note {
	margin: 0;
	color: var(--plum-soft);
	font-size: var(--step--1);
}
.post-cta__actions { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.entry-content .post-cta a { text-decoration: none; }
.post-cta .btn, .post-cta .btn:hover { color: var(--white); }
.post-cta .btn--ghost, .post-cta .btn--ghost:hover { color: var(--plum); }
.post-cta .btn--ghost:hover { color: var(--rosewood-deep); }
.post-cta .btn--ghost { background: var(--white); }

/* Formulaire MailBoss dans la section contact (fond sombre de l'accueil) */
.contact__form { max-width: 420px; margin: 1.6rem auto 0; }
.contact__form .mailboss-wrapper { margin: 0; }
.contact__form .mailboss-form { background: var(--ivory); border-color: transparent; }

/* Recherche & commentaires */
.search-form { display: flex; gap: 0.5rem; }
.search-field, input[type="text"], input[type="email"], input[type="url"], input[type="search"], textarea {
	width: 100%;
	font-family: var(--font-body);
	font-size: var(--step-0);
	padding: 0.75em 1em;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: var(--white);
	color: var(--plum);
}
.search-field:focus, input:focus, textarea:focus { outline: none; border-color: var(--rosewood); box-shadow: 0 0 0 3px var(--blush); }
.search-submit { white-space: nowrap; }

.no-results { max-width: var(--wrap-text); padding-block: 2rem; }

.comments-area { max-width: var(--wrap-text); margin: 3rem auto 0; padding-top: 2rem; border-top: 1px solid var(--line); }
.comments-title, .comment-reply-title { font-family: var(--font-display); font-weight: 400; font-size: var(--step-2); margin-bottom: 1.5rem; }
.comment-list { list-style: none; padding: 0; margin: 0 0 2.5rem; }
.comment-list ol.children { list-style: none; margin-left: 1.5rem; }
.comment-body { padding: 1.2rem 0; border-bottom: 1px solid var(--line-soft); }
.comment-author { display: flex; align-items: center; gap: 0.75rem; }
.comment-author .fn { font-weight: 700; font-style: normal; }
.comment-author img { border-radius: 50%; }
.comment-metadata { font-size: var(--step--1); color: var(--plum-soft); margin: 0.25rem 0 0.6rem; }
.comment-metadata a { color: inherit; }
.comment-form { display: grid; gap: 1rem; }
.comment-form p { margin: 0; }
.comment-form label { display: block; font-size: var(--step--1); color: var(--plum-soft); margin-bottom: 0.35rem; }
.comment-notes { color: var(--plum-soft); font-size: var(--step--1); }

.page-extra { background: var(--ivory); }

/* =====================================================================
   10. RÉVÉLATIONS AU DÉFILEMENT
   ===================================================================== */
.reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.reveal { opacity: 1; transform: none; transition: none; }
	.lumag-line { animation: none !important; }
}

/* =====================================================================
   11. RESPONSIVE
   ===================================================================== */
@media (max-width: 980px) {
	.about__grid { grid-template-columns: 1fr; }
	.about__media { max-width: 460px; }
	.feature-row { grid-template-columns: 1fr; gap: 0; }
	.feature { padding-block: 1.6rem; }
	.site-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1180px) {
	.nav-toggle { display: block; }
	.main-navigation {
		position: fixed;
		inset: 0;
		width: 100%;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 2rem;
		padding: 5rem 2.4rem 2.4rem;
		background: var(--ivory);
		box-shadow: none;
		overflow-y: auto;
		transform: translateX(100%);
		transition: transform 0.4s var(--ease);
		z-index: 104;
	}
	.main-navigation.is-open { transform: translateX(0); }
	.main-navigation ul { flex-direction: column; align-items: center; gap: 1.4rem; }
	.main-navigation a:not(.btn) { font-size: var(--step-2); font-family: var(--font-display); white-space: normal; text-align: center; }
	.header-actions { flex-direction: column; gap: 0.8rem; margin-top: 0.8rem; }
	.header-actions .btn { font-size: var(--step-0); }
	body.nav-open .nav-toggle .nav-toggle__bar { background: transparent; }
	body.nav-open .nav-toggle .nav-toggle__bar::before { transform: translateY(7px) rotate(45deg); }
	body.nav-open .nav-toggle .nav-toggle__bar::after { transform: translateY(-7px) rotate(-45deg); }
}

@media (max-width: 720px) {
	.pricing__grid { grid-template-columns: 1fr; }
	.content-area.has-sidebar { grid-template-columns: 1fr; }
	.widget-area { position: static; max-height: none; overflow: visible; }
	.step { grid-template-columns: 1fr; gap: 0.4rem; }
	.step__index { font-size: var(--step-2); }
	.site-footer__grid { grid-template-columns: 1fr; gap: 2rem; }
	.post-nav { flex-direction: column; }
	.post-nav__next { text-align: left; margin-left: 0; }
}

/* =====================================================================
   12. ALIGNEMENTS WORDPRESS
   ===================================================================== */
.alignleft { float: left; margin: 0.5rem 1.5rem 1rem 0; }
.alignright { float: right; margin: 0.5rem 0 1rem 1.5rem; }
.aligncenter { display: block; margin-inline: auto; }
.alignwide { width: min(100%, 1000px); }
.alignfull { width: 100%; }
.wp-caption-text, .gallery-caption { font-size: var(--step--1); color: var(--plum-soft); font-style: italic; text-align: center; }
.sticky, .bypostauthor { display: block; }
.wp-block-button__link { border-radius: 100px; }

/* =====================================================================
   13. CARTES DE CONTENU DANS LES PAGES (.containerOnglets / .card)
   Robuste aux &nbsp; parasites de l'éditeur : font-size:0 sur le
   conteneur les neutralise, l'espacement passe par les marges des
   cartes (pas par gap, qui se multiplierait à chaque &nbsp;).
   ===================================================================== */
.containerOnglets {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	font-size: 0;
	margin: clamp(1.5rem, 3vw, 2.5rem) 0;
}
/* La « tuile » (élément de la grille flex) : soit le lien .card-link
   qui enveloppe la carte, soit la carte directe (page magnétisme). */
.containerOnglets > .card-link,
.containerOnglets > .card {
	flex: 0 1 240px;
	width: 240px;
	max-width: 240px;
	aspect-ratio: 1 / 1;
	margin: 0.6rem;
}
.containerOnglets > .card-link {
	display: block;
	text-decoration: none;
	color: inherit;
	border-radius: var(--radius);
}
/* La carte enveloppée remplit entièrement son lien */
.containerOnglets > .card-link > .card {
	width: 100%;
	height: 100%;
	max-width: none;
	aspect-ratio: auto;
	margin: 0;
}
.containerOnglets .card {
	--card-c: var(--c-rosewood);
	--card-field: var(--field-1);
	position: relative;
	overflow: hidden;
	padding: 1.8rem;
	font-size: 1rem;
	text-align: left;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	background:
		linear-gradient(155deg,
			var(--card-c) 0%,
			color-mix(in srgb, var(--card-c) 80%, var(--plum)) 58%,
			color-mix(in srgb, var(--card-c) 58%, var(--plum)) 100%);
	color: var(--white);
	border: 0;
	border-radius: var(--radius);
	box-shadow:
		0 1px 2px rgba(46, 31, 79, 0.06),
		0 16px 34px -20px color-mix(in srgb, var(--card-c) 75%, transparent);
	transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
}
/* Motif « lignes de champ » blanc, animé au survol */
.containerOnglets .card::before {
	content: "";
	position: absolute;
	inset: -8%;
	background: var(--card-field) center 55% / 120% no-repeat;
	opacity: 0.8;
	transform: scale(1) rotate(0deg);
	transform-origin: 60% 55%;
	transition: transform 0.6s var(--ease), opacity 0.6s var(--ease);
	pointer-events: none;
}
/* Halo lumineux en haut de carte */
.containerOnglets .card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(80% 60% at 75% 8%, rgba(255, 255, 255, 0.28) 0%, transparent 60%);
	pointer-events: none;
}
.containerOnglets .card:hover {
	transform: translateY(-7px) scale(1.015);
	box-shadow:
		0 2px 4px rgba(46, 31, 79, 0.08),
		0 30px 56px -24px color-mix(in srgb, var(--card-c) 88%, transparent);
}
.containerOnglets .card:hover::before {
	transform: scale(1.14) rotate(-6deg);
	opacity: 1;
}
.containerOnglets .card h2 {
	position: relative;
	z-index: 1;
	font-family: var(--font-display);
	font-size: var(--step-1);
	font-weight: 500;
	line-height: 1.22;
	margin: 0;
	color: var(--white);
	text-shadow: 0 1px 10px color-mix(in srgb, var(--plum) 45%, transparent);
}
/* Filet sous le titre, qui s'allonge au survol */
.containerOnglets .card h2::after {
	content: "";
	display: block;
	width: 32px; height: 3px;
	margin-top: 0.9rem;
	background: var(--white);
	border-radius: 3px;
	opacity: 0.9;
	transition: width 0.4s var(--ease);
}
.containerOnglets .card:hover h2::after { width: 56px; }
.containerOnglets .card p {
	position: relative;
	z-index: 1;
	color: color-mix(in srgb, var(--white) 88%, transparent);
	text-shadow: 0 1px 8px color-mix(in srgb, var(--plum) 40%, transparent);
}
/* Une couleur ET un dessin différents par carte.
   Les propriétés sont posées sur la tuile (le lien .card-link ou la
   carte directe) et héritées par la carte. « of » ne compte que les
   vraies tuiles, en ignorant les &nbsp; ou textes parasites. */
.containerOnglets > :is(.card-link, .card):nth-child(6n+1 of .card-link, .card) { --card-c: var(--c-rosewood); --card-field: var(--field-1); }
.containerOnglets > :is(.card-link, .card):nth-child(6n+2 of .card-link, .card) { --card-c: var(--c-teal);     --card-field: var(--field-2); }
.containerOnglets > :is(.card-link, .card):nth-child(6n+3 of .card-link, .card) { --card-c: var(--c-copper);   --card-field: var(--field-3); }
.containerOnglets > :is(.card-link, .card):nth-child(6n+4 of .card-link, .card) { --card-c: var(--c-mauve);    --card-field: var(--field-4); }
.containerOnglets > :is(.card-link, .card):nth-child(6n+5 of .card-link, .card) { --card-c: var(--c-gold);     --card-field: var(--field-5); }
.containerOnglets > :is(.card-link, .card):nth-child(6n   of .card-link, .card) { --card-c: var(--c-sage);     --card-field: var(--field-6); }

/* Repli pour très petits écrans : la carte prend toute la largeur */
@media (max-width: 480px) {
	.containerOnglets > .card-link,
	.containerOnglets > .card {
		flex-basis: 100%;
		width: 100%;
		max-width: 320px;
	}
}

/* Numéro d'appel mis en bouton (lien .rdv dans le contenu) */
a.rdv {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	font-family: var(--font-body);
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--white);
	background: var(--plum);
	padding: 0.85em 1.7em;
	border-radius: 100px;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.3s var(--ease), transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
a.rdv:hover {
	color: var(--white);
	background: var(--rosewood-deep);
	transform: translateY(-2px);
	box-shadow: var(--shadow-sm);
}

/* =====================================================================
   14. EN-TÊTE DESIGN DES PAGES INTÉRIEURES (.page-hero)
   Bandeau coloré reprenant la signature « lignes de champ » de
   l'accueil, avec une teinte et une composition différentes par page
   (variante calculée à partir de l'ID de la page).
   ===================================================================== */
.page-hero {
	--page-accent: var(--rosewood);
	position: relative;
	padding-block: clamp(1rem, 2vw, 1.5rem) clamp(0.6rem, 1.2vw, 0.9rem);
	margin-bottom: 0;
}
.page-hero::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--page-accent) 50%, transparent), transparent);
}
.page-hero__inner { position: relative; max-width: 820px; }
.page-hero .page-title {
	font-size: var(--step-4);
	font-weight: 500;
	line-height: 1.08;
	margin: 0;
}
.page-hero .page-title em { font-style: italic; color: var(--page-accent); }

/* --- Une teinte par page (accent du titre et des mises en emphase) --- */
.page-hero--v0 { --page-accent: var(--c-rosewood); }
.page-hero--v1 { --page-accent: var(--c-teal); }
.page-hero--v2 { --page-accent: var(--c-copper); }
.page-hero--v3 { --page-accent: var(--c-mauve); }
.page-hero--v4 { --page-accent: var(--c-gold); }
.page-hero--v5 { --page-accent: var(--c-sage); }

/* ------------------------------------------------------------------
   Carte de bas de page (articles & pages) — v1.8.0
   ------------------------------------------------------------------ */
.map-section {
	padding-block: clamp(2.5rem, 6vw, 4.5rem);
	border-top: 1px solid var(--line, #E7DAF7);
	background: linear-gradient(180deg, transparent, var(--blush-soft, #F5EFFC));
}
.map-section__frame {
	max-width: 1080px;
	margin-inline: auto;
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow);
	border: 1px solid var(--line-soft);
	line-height: 0;
}
.map-section__frame iframe {
	width: 100% !important;
	height: clamp(440px, 55vw, 640px) !important;
	border: 0;
	display: block;
}
.map-section__consent {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	text-align: center;
	height: clamp(280px, 40vw, 400px);
	padding: 2rem;
	background: var(--ivory-deep);
}
.map-section__consent p {
	color: var(--plum-soft);
	font-size: var(--step--1);
	max-width: 32em;
	margin: 0;
}

/* ------------------------------------------------------------------
   Bandeau de consentement aux cookies (RGPD) — v1.9.0
   ------------------------------------------------------------------ */
.cookie-banner {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 200;
	background: var(--plum);
	box-shadow: 0 -12px 32px -18px rgba(46, 31, 79, 0.5);
}
.cookie-banner[hidden] { display: none; }
.cookie-banner__inner {
	max-width: var(--wrap);
	margin-inline: auto;
	padding: 1.2rem clamp(1.2rem, 4vw, 2rem);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem;
}
.cookie-banner__text {
	color: var(--blush);
	font-size: var(--step--1);
	max-width: 56em;
	margin: 0;
	line-height: 1.5;
}
.cookie-banner__text a {
	color: var(--white);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.cookie-banner__actions {
	display: flex;
	gap: 0.6rem;
	flex: none;
}
.cookie-banner .btn--ghost {
	color: var(--white);
	border-color: rgba(255, 255, 255, 0.35);
}
.cookie-banner .btn--ghost:hover {
	color: var(--white);
	border-color: rgba(255, 255, 255, 0.6);
}
@media (max-width: 560px) {
	.cookie-banner__inner { flex-direction: column; align-items: stretch; }
	.cookie-banner__actions { justify-content: center; }
}

.footer-cookie-link {
	background: none;
	border: none;
	padding: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.footer-cookie-link:hover { color: var(--rosewood); }

/* ------------------------------------------------------------------
   CTA de fin de bloc dans les articles (badge tarif + bouton) — v1.9.1
   Composant utilisé DANS le corps de texte (post_content) des articles
   générés par SEOBOSS Universal — voir le modèle HTML fourni pour ce
   chantier. Classes volontairement simples pour survivre à une
   réécriture IA.
   ------------------------------------------------------------------ */
.article-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1rem 1.4rem;
	margin: 2rem 0;
	padding: 1.4rem 1.8rem;
	background: var(--blush-soft);
	border: 1px solid var(--line-soft);
	border-radius: var(--radius-lg);
	text-align: center;
}
.article-cta__price {
	display: inline-flex;
	align-items: baseline;
	gap: 0.35em;
	font-family: var(--font-display);
	font-size: var(--step-2);
	font-weight: 600;
	color: var(--plum);
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 100px;
	padding: 0.45em 1.2em;
	line-height: 1;
}
.article-cta__price small {
	font-family: var(--font-body);
	font-size: var(--step--1);
	font-weight: 500;
	color: var(--plum-soft);
}
.article-cta .btn { flex: none; }
@media (max-width: 480px) {
	.article-cta { flex-direction: column; padding: 1.2rem; }
}

/* ---- Blocs en bas des articles (par catégorie) ---------------------- */
.lumag-article-blocks { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.5rem; }
.lumag-block { display: flex; flex-direction: column; gap: 0.75rem; }
.lumag-article-blocks .btn { text-decoration: none; }
.lumag-article-blocks .btn:hover { text-decoration: none; }
.lumag-block__reveal { margin-top: 0.75rem; }
.lumag-block__phone { display: inline-block; font-size: var(--step-1, 1.25rem); font-weight: 700; color: var(--plum); text-decoration: none; margin-top: 0.25rem; }
.lumag-block__phone:hover { text-decoration: underline; }

/* ---- Infos complémentaires sidebar (formations, loisirs) ------------ */
.author-card__extra {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--line);
	text-align: left;
}
.author-card__extra-section {
	margin-bottom: 1.1rem;
}
.author-card__extra-section:last-child { margin-bottom: 0; }
.author-card__extra-title {
	font-size: .68rem;
	font-weight: 800;
	color: var(--plum);
	text-transform: uppercase;
	letter-spacing: 0.16em;
	margin: 0 0 .6rem;
	font-family: var(--font-display);
	padding-bottom: .35rem;
	border-bottom: 1.5px solid var(--blush, #E7DAF7);
}
.author-card__extra-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: .45rem;
}
.author-card__extra-list li {
	display: flex;
	flex-direction: column;
	gap: .05rem;
	padding-left: .75rem;
	border-left: 2px solid var(--btn-sms, #BE9A55);
}
.extra-item__label {
	font-size: var(--step--1);
	font-weight: 600;
	color: var(--plum);
	line-height: 1.3;
}
.extra-item__sub {
	font-size: .72rem;
	color: var(--rosewood);
	font-style: italic;
	line-height: 1.2;
}
/* Pills loisirs — texte simple centré */
.author-card__loisirs {
	font-size: var(--step--1);
	color: var(--plum-soft);
	text-align: center;
	line-height: 1.8;
	margin: 0;
	font-style: italic;
}


/* =====================================================================
   MENU À DEUX NIVEAUX (sous-menus)
   ===================================================================== */
.main-navigation .menu-item-has-children { position: relative; }
.main-navigation .menu-item-has-children > a:not(.btn) { padding-right: 1em; }
.main-navigation .menu-item-has-children > a:not(.btn)::before {
	content: '';
	position: absolute;
	right: 0; top: 50%;
	width: 0.38em; height: 0.38em;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-70%) rotate(45deg);
	transition: transform 0.25s var(--ease);
}

@media (min-width: 1181px) {
	.main-navigation .sub-menu {
		position: absolute;
		top: 100%; left: -1.2rem;
		z-index: 120;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		min-width: 270px;
		margin-top: 0.7rem;
		padding: 0.6rem 0;
		background: var(--white, #fff);
		border: 1px solid var(--line-soft, rgba(0, 0, 0, 0.06));
		border-radius: 14px;
		box-shadow: 0 18px 40px -18px rgba(60, 30, 50, 0.28);
		opacity: 0;
		visibility: hidden;
		transform: translateY(6px);
		transition: opacity 0.2s var(--ease), transform 0.2s var(--ease), visibility 0.2s;
	}
	/* pont invisible : le sous-menu ne se ferme pas entre le lien et la liste */
	.main-navigation .sub-menu::before {
		content: '';
		position: absolute;
		left: 0; right: 0; top: -0.8rem;
		height: 0.8rem;
	}
	.main-navigation .menu-item-has-children:hover > .sub-menu,
	.main-navigation .menu-item-has-children:focus-within > .sub-menu,
	.main-navigation .menu-item-has-children.is-sub-open > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.main-navigation .menu-item-has-children:hover > a:not(.btn)::before,
	.main-navigation .menu-item-has-children.is-sub-open > a:not(.btn)::before {
		transform: translateY(-30%) rotate(-135deg);
	}
	.main-navigation .sub-menu li { width: 100%; }
	.main-navigation .sub-menu a:not(.btn) {
		display: block;
		padding: 0.55rem 1.3rem;
		white-space: nowrap;
	}
	.main-navigation .sub-menu a:not(.btn)::after { display: none; }
	.main-navigation .sub-menu a:not(.btn):hover,
	.main-navigation .sub-menu .current-menu-item > a:not(.btn) {
		background: color-mix(in srgb, var(--rosewood) 9%, transparent);
		color: var(--plum);
	}
}

/* Menu mobile (plein écran) : sous-menu fermé, révélé au toucher
   par une « ouverture d'aura » (halo, étoile qui tourne, éléments qui
   se matérialisent un à un). */
@media (max-width: 1180px) {
	.main-navigation .menu-item-has-children {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.main-navigation .menu-item-has-children > a:not(.btn) {
		display: inline-flex;
		align-items: center;
		gap: 0.55em;
		padding-right: 0;
		transition: color 0.5s var(--ease), text-shadow 0.6s var(--ease);
	}
	/* étoile-guide à côté de « Prestations » */
	.main-navigation .menu-item-has-children > a:not(.btn)::before {
		content: '✦';
		position: static;
		order: 2;
		width: auto; height: auto;
		border: 0;
		font-size: 0.55em;
		color: var(--c-gold, #C9A04E);
		transform: rotate(0deg) scale(1);
		transition: transform 0.8s cubic-bezier(0.34, 1.56, 0.64, 1), text-shadow 0.6s var(--ease);
	}
	.main-navigation .menu-item-has-children.is-sub-open > a:not(.btn) {
		color: var(--amethyst-deep, #5B34B0);
		text-shadow: 0 0 18px rgba(123, 79, 214, 0.55);
	}
	.main-navigation .menu-item-has-children.is-sub-open > a:not(.btn)::before {
		transform: rotate(225deg) scale(1.6);
		text-shadow: 0 0 10px rgba(233, 205, 134, 0.95), 0 0 22px rgba(201, 160, 78, 0.7);
	}
	.main-navigation .menu-item-has-children > a:not(.btn)::after { display: none; }

	/* le panneau : replié par défaut */
	.main-navigation .sub-menu {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 0.15rem;
		width: min(88vw, 360px);
		max-height: 0;
		margin-top: 0;
		padding: 0 1.2rem;
		overflow: hidden;
		opacity: 0;
		visibility: hidden;
		border-radius: 24px;
		background:
			radial-gradient(120% 80% at 50% 0%, rgba(185, 160, 244, 0.45), transparent 70%),
			radial-gradient(90% 60% at 50% 110%, rgba(233, 205, 134, 0.35), transparent 70%),
			rgba(255, 255, 255, 0.72);
		box-shadow:
			inset 0 0 0 1px rgba(201, 160, 78, 0.45),
			0 0 0 0 rgba(123, 79, 214, 0);
		transform: scale(0.92);
		filter: blur(6px);
		transition:
			max-height 0.75s cubic-bezier(0.22, 0.61, 0.36, 1),
			margin-top 0.6s var(--ease),
			padding 0.6s var(--ease),
			opacity 0.5s var(--ease),
			transform 0.7s cubic-bezier(0.34, 1.4, 0.64, 1),
			filter 0.6s var(--ease),
			box-shadow 0.9s var(--ease),
			visibility 0s linear 0.75s;
	}
	.main-navigation .is-sub-open > .sub-menu {
		max-height: 34rem;
		margin-top: 1.1rem;
		padding: 1.1rem 1.2rem;
		opacity: 1;
		visibility: visible;
		transform: scale(1);
		filter: blur(0);
		box-shadow:
			inset 0 0 0 1px rgba(201, 160, 78, 0.55),
			0 0 40px -6px rgba(123, 79, 214, 0.45),
			0 0 90px -20px rgba(201, 160, 78, 0.5);
		transition-delay: 0s;
	}
	/* onde de lumière qui traverse le panneau à l'ouverture */
	.main-navigation .sub-menu::before {
		content: '';
		position: absolute;
		inset: -40% -60%;
		background: linear-gradient(115deg, transparent 40%, rgba(255, 255, 255, 0.85) 50%, transparent 60%);
		transform: translateX(-70%);
		pointer-events: none;
	}
	.main-navigation .is-sub-open > .sub-menu::before {
		animation: lumag-aura-sweep 1.3s 0.15s var(--ease) both;
	}
	@keyframes lumag-aura-sweep {
		from { transform: translateX(-70%); }
		to   { transform: translateX(70%); }
	}
	/* fines lignes d'or en haut et en bas */
	.main-navigation .sub-menu::after {
		content: '';
		position: absolute;
		left: 18%; right: 18%; top: 0.55rem;
		height: 1px;
		background: linear-gradient(90deg, transparent, var(--c-gold, #C9A04E), transparent);
		box-shadow: 0 calc(100% + 0px) 0 transparent;
		opacity: 0.8;
	}

	/* les prestations se matérialisent une à une */
	.main-navigation .sub-menu li {
		width: 100%;
		opacity: 0;
		transform: translateY(12px);
		filter: blur(5px);
		letter-spacing: 0.12em;
		transition:
			opacity 0.5s var(--ease),
			transform 0.6s cubic-bezier(0.34, 1.4, 0.64, 1),
			filter 0.6s var(--ease),
			letter-spacing 0.8s var(--ease);
	}
	.main-navigation .is-sub-open > .sub-menu li {
		opacity: 1;
		transform: none;
		filter: blur(0);
		letter-spacing: 0;
	}
	.main-navigation .is-sub-open > .sub-menu li:nth-child(1)  { transition-delay: 0.18s; }
	.main-navigation .is-sub-open > .sub-menu li:nth-child(2)  { transition-delay: 0.26s; }
	.main-navigation .is-sub-open > .sub-menu li:nth-child(3)  { transition-delay: 0.34s; }
	.main-navigation .is-sub-open > .sub-menu li:nth-child(4)  { transition-delay: 0.42s; }
	.main-navigation .is-sub-open > .sub-menu li:nth-child(5)  { transition-delay: 0.50s; }
	.main-navigation .is-sub-open > .sub-menu li:nth-child(6)  { transition-delay: 0.58s; }
	.main-navigation .is-sub-open > .sub-menu li:nth-child(7)  { transition-delay: 0.66s; }
	.main-navigation .is-sub-open > .sub-menu li:nth-child(8)  { transition-delay: 0.74s; }
	.main-navigation .is-sub-open > .sub-menu li:nth-child(n+9) { transition-delay: 0.82s; }

	.main-navigation .sub-menu a:not(.btn) {
		display: block;
		padding: 0.6rem 0.4rem;
		font-family: var(--font-body, inherit);
		font-size: var(--step-0);
		color: var(--plum);
		text-align: center;
		border-radius: 12px;
	}
	.main-navigation .sub-menu a:not(.btn)::after { display: none; }
	.main-navigation .sub-menu a:not(.btn):active,
	.main-navigation .sub-menu a:not(.btn):hover {
		background: rgba(123, 79, 214, 0.1);
		color: var(--amethyst-deep, #5B34B0);
	}
	.main-navigation .sub-menu li + li a:not(.btn)::before {
		content: '';
		display: block;
		width: 22px; height: 1px;
		margin: -0.6rem auto 0.6rem;
		background: linear-gradient(90deg, transparent, rgba(201, 160, 78, 0.6), transparent);
	}
}

@media (max-width: 1180px) and (prefers-reduced-motion: reduce) {
	.main-navigation .sub-menu,
	.main-navigation .sub-menu li,
	.main-navigation .menu-item-has-children > a:not(.btn)::before { transition: none; filter: none; }
	.main-navigation .is-sub-open > .sub-menu::before { animation: none; }
}


/* =====================================================================
   ACCUEIL — CARTES « ORACLE » DES PRESTATIONS
   ===================================================================== */
.services--oracle {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background:
		radial-gradient(60% 50% at 15% 0%, rgba(185, 160, 244, 0.38), transparent 70%),
		radial-gradient(50% 45% at 90% 15%, rgba(233, 205, 134, 0.28), transparent 70%),
		radial-gradient(70% 60% at 50% 110%, rgba(155, 79, 150, 0.16), transparent 70%),
		linear-gradient(180deg, #FBF7FF 0%, var(--blush-soft) 55%, #F6EEFB 100%);
}
/* poussière d'étoiles */
.oracle-stars {
	position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background-image:
		radial-gradient(1.6px 1.6px at 8% 18%, rgba(201, 160, 78, .9), transparent 60%),
		radial-gradient(1.2px 1.2px at 22% 72%, rgba(123, 79, 214, .7), transparent 60%),
		radial-gradient(2px 2px at 35% 12%, rgba(255, 255, 255, .95), transparent 60%),
		radial-gradient(1.3px 1.3px at 48% 88%, rgba(201, 160, 78, .8), transparent 60%),
		radial-gradient(1.8px 1.8px at 63% 30%, rgba(123, 79, 214, .55), transparent 60%),
		radial-gradient(1.2px 1.2px at 77% 64%, rgba(201, 160, 78, .85), transparent 60%),
		radial-gradient(2px 2px at 88% 8%, rgba(255, 255, 255, .95), transparent 60%),
		radial-gradient(1.4px 1.4px at 94% 82%, rgba(123, 79, 214, .6), transparent 60%);
	animation: oracle-twinkle 6s ease-in-out infinite alternate;
}
@keyframes oracle-twinkle { from { opacity: .55; } to { opacity: 1; } }

.section-head--oracle { text-align: center; max-width: 680px; margin-inline: auto; }
.section-head--oracle h2 {
	background: linear-gradient(100deg, var(--plum) 10%, var(--amethyst) 50%, var(--rosewood-deep) 90%);
	-webkit-background-clip: text; background-clip: text;
	color: transparent;
}
.oracle-eyebrow {
	margin: 0 0 .6rem;
	font-size: var(--step--1);
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--c-gold, #BE9A55);
	font-weight: 600;
}
.oracle-eyebrow span { letter-spacing: 0; }
.oracle-lead { color: var(--plum-soft); margin: .8rem auto 0; }

.oracle-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.2rem, 2.4vw, 2rem);
	margin-top: clamp(2rem, 4vw, 3.2rem);
}
@media (max-width: 1080px) { .oracle-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .oracle-grid { grid-template-columns: 1fr; } }

.oracle-card {
	--accent: var(--amethyst);
	--accent-soft: rgba(123, 79, 214, .16);
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 2.4rem clamp(1.4rem, 2.2vw, 2rem) 2rem;
	border-radius: 22px;
	color: var(--plum);
	text-decoration: none;
	/* bordure dégradée or → améthyste → rose */
	border: 1.5px solid transparent;
	background:
		radial-gradient(120% 70% at 50% 0%, var(--accent-soft), transparent 65%) padding-box,
		linear-gradient(180deg, #FFFFFF 0%, #FDFAFF 60%, #F8F1FC 100%) padding-box,
		linear-gradient(150deg, var(--gold-light) 0%, var(--accent) 45%, var(--rosewood) 100%) border-box;
	box-shadow:
		0 1px 2px rgba(46, 31, 79, .05),
		0 18px 40px -24px rgba(91, 52, 176, .45);
	transition: transform .45s var(--ease), box-shadow .45s var(--ease);
}
.oracle-card--defunt     { --accent: #8D66E3; --accent-soft: rgba(141, 102, 227, .17); }
.oracle-card--intuitive  { --accent: #7B4FD6; --accent-soft: rgba(123, 79, 214, .16); }
.oracle-card--ame        { --accent: #B0619A; --accent-soft: rgba(176, 97, 154, .15); }
.oracle-card--vies       { --accent: #5F6FD8; --accent-soft: rgba(95, 111, 216, .15); }
.oracle-card--vibratoire { --accent: #C9A04E; --accent-soft: rgba(201, 160, 78, .2); }
.oracle-card--lieux      { --accent: #4F8F98; --accent-soft: rgba(79, 143, 152, .16); }

/* cadre intérieur doré, façon carte de tarot */
.oracle-card__frame {
	position: absolute; inset: 9px;
	border: 1px solid rgba(201, 160, 78, .45);
	border-radius: 15px;
	pointer-events: none;
}
.oracle-card__frame::before,
.oracle-card__frame::after {
	content: '✦';
	position: absolute; left: 50%;
	transform: translate(-50%, -50%);
	font-size: .7rem; line-height: 1;
	color: #C9A04E;
	background: #FEFBFF;
	padding: 0 .35rem;
}
.oracle-card__frame::before { top: 0; }
.oracle-card__frame::after  { top: 100%; }

.oracle-card__numeral {
	position: absolute; top: 1.15rem; right: 1.4rem;
	font-family: var(--font-display);
	font-size: .95rem; letter-spacing: .12em;
	color: #B8913F;
	opacity: .85;
}

.oracle-card__emblem {
	position: relative;
	display: grid; place-items: center;
	width: 104px; height: 104px;
	margin-bottom: 1.3rem;
	color: var(--accent);
}
.oracle-card__halo {
	position: absolute; inset: -26px;
	border-radius: 50%;
	background: radial-gradient(circle, var(--accent-soft) 0%, var(--accent-soft) 35%, rgba(255, 255, 255, 0) 70%);
	filter: blur(2px);
	transition: transform .6s var(--ease), opacity .6s var(--ease);
}
.oracle-card__ring {
	position: absolute; inset: 0;
	border-radius: 50%;
	border: 1px dashed rgba(201, 160, 78, .7);
	box-shadow: inset 0 0 0 7px rgba(255, 255, 255, .7), inset 0 0 0 8px var(--accent-soft);
	background: radial-gradient(circle at 50% 38%, #FFFFFF 0%, #FFFFFF 38%, var(--accent-soft) 100%);
	animation: oracle-spin 40s linear infinite;
}
@keyframes oracle-spin { to { transform: rotate(360deg); } }
.oracle-card__icon {
	position: relative;
	width: 56px; height: 56px;
	filter: drop-shadow(0 0 8px var(--accent));
	opacity: .95;
}

.oracle-card__title {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: clamp(1.45rem, 1.2rem + .7vw, 1.8rem);
	line-height: 1.15;
	margin: 0;
	color: var(--plum);
}
.oracle-card__ornament {
	display: flex; align-items: center; gap: .6rem;
	margin: .8rem 0 1rem;
	font-size: .7rem;
	color: #C9A04E;
}
.oracle-card__ornament i {
	display: block; width: 34px; height: 1px;
	background: linear-gradient(90deg, transparent, #C9A04E);
	transition: width .45s var(--ease);
}
.oracle-card__ornament i:last-child { background: linear-gradient(90deg, #C9A04E, transparent); }
.oracle-card__text {
	margin: 0 0 1.4rem;
	color: var(--plum-soft);
	font-size: var(--step-0);
	line-height: 1.65;
	flex: 1;
}
.oracle-card__more {
	display: inline-flex; align-items: center; gap: .45rem;
	padding: .55rem 1.25rem;
	border-radius: 999px;
	font-weight: 600;
	font-size: var(--step--1);
	letter-spacing: .04em;
	color: #FFFFFF;
	background: linear-gradient(120deg, var(--amethyst-deep), var(--accent));
	box-shadow: 0 8px 20px -10px var(--accent);
	transition: gap .3s var(--ease), box-shadow .3s var(--ease);
}

.oracle-card:hover,
.oracle-card:focus-visible {
	transform: translateY(-6px);
	box-shadow:
		0 2px 4px rgba(46, 31, 79, .06),
		0 0 0 4px var(--accent-soft),
		0 28px 60px -26px var(--accent);
}
.oracle-card:hover .oracle-card__halo { transform: scale(1.18); }
.oracle-card:hover .oracle-card__ornament i { width: 52px; }
.oracle-card:hover .oracle-card__more { gap: .75rem; }

@media (prefers-reduced-motion: reduce) {
	.oracle-stars, .oracle-card__ring { animation: none; }
	.oracle-card, .oracle-card__halo { transition: none; }
}


/* =====================================================================
   PORTRAIT ROND (accueil + bloc de présentation des pages) — 1.31.0
   ===================================================================== */
.hero__photo:not(.hero__photo--empty) {
	width: 100%;
	max-width: 380px;
	aspect-ratio: 1 / 1;
	height: auto;
	object-fit: cover;
	object-position: center 22%; /* garde le visage dans le cercle */
	border-radius: 50%;
	padding: 6px; /* épaisseur de l'anneau */
	background: conic-gradient(from 200deg, var(--gold-light), var(--amethyst), var(--rosewood), var(--amethyst-light), var(--gold-light));
	mix-blend-mode: normal;
	outline: 1px solid rgba(201, 160, 78, 0.55);
	outline-offset: 10px;
	box-shadow:
		0 0 0 4px rgba(255, 255, 255, 0.8),
		0 0 50px -6px rgba(123, 79, 214, 0.45),
		0 0 110px -30px rgba(201, 160, 78, 0.6);
}
.hero__photo--empty { border-radius: 50%; aspect-ratio: 1 / 1; }
@media (max-width: 860px) {
	.hero__photo:not(.hero__photo--empty) { max-width: 240px; }
}

/* Bloc portrait seul, centré, sans texte de présentation (1.34.0) */
.hero--portrait .hero__grid { grid-template-columns: 1fr; justify-items: center; }
.hero--portrait .hero__media { justify-content: center; }
.hero--portrait .hero__photo:not(.hero__photo--empty) { max-width: 260px; }
@media (max-width: 860px) {
	.hero--portrait .hero__photo:not(.hero__photo--empty) { max-width: 200px; }
}

/* Carte OpenStreetMap (1.37.0) */
.map-section__map {
	width: 100%;
	height: clamp(340px, 45vw, 520px);
	line-height: normal;
	z-index: 0;
}
.map-section__consent { line-height: 1.6; } /* ancien encart (au cas où) : texte lisible */
.map-section__link { text-align: center; margin: 1rem 0 0; font-size: var(--step--1); }
.map-section__link a { color: var(--amethyst-deep, #5B34B0); font-weight: 600; }
.lumag-pin { background: none; border: 0; }
.lumag-pin__dot {
	display: grid; place-items: center;
	width: 44px; height: 44px; border-radius: 50%;
	font-size: 20px; line-height: 1; color: #FFF4D2;
	background: radial-gradient(circle at 50% 35%, #8D66E3, #5B34B0);
	border: 2px solid #E9CD86;
	box-shadow: 0 0 0 6px rgba(123, 79, 214, 0.25), 0 8px 20px -6px rgba(46, 31, 79, 0.6);
}
.leaflet-popup-content { font-family: var(--font-body); color: var(--plum); }
