/* ==========================================================================
   Sorali — base : police Poppins (locale), variables, boutons, titres, utilitaires.
   ========================================================================== */

@font-face { font-family: "Poppins"; font-style: normal; font-weight: 300; font-display: swap; src: url("../fonts/poppins/poppins-300.woff") format("woff"); }
@font-face { font-family: "Poppins"; font-style: italic; font-weight: 300; font-display: swap; src: url("../fonts/poppins/poppins-300-italic.woff") format("woff"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/poppins/poppins-400.woff") format("woff"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/poppins/poppins-500.woff") format("woff"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/poppins/poppins-600.woff") format("woff"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/poppins/poppins-700.woff") format("woff"); }

:root {
	--sorali-black: #0a0a0a;
	--sorali-white: #ffffff;
	--sorali-pink: #f4c2c2;
	--sorali-pink-soft: color-mix(in srgb, var(--sorali-pink) 28%, #ffffff);
	--sorali-grey: #5c5c5c;
	--sorali-line: #ececec;
	--sorali-font: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--sorali-radius: 0px;
	--sorali-ease: cubic-bezier(.2, .7, .2, 1);
	--sorali-accent: var(--sorali-pink);
	--sorali-pink-deep: color-mix(in srgb, var(--sorali-pink) 82%, #8a4a55);
	--sorali-pink-line: color-mix(in srgb, var(--sorali-pink) 55%, #ffffff);
	--sorali-blush: #fbf5f5;
	--sorali-ink-soft: #3d3d3d;
	--sorali-btn-radius: 18px;
	--sorali-card-radius: 20px;
	/* Échelle d'espacement */
	--sorali-s1: 4px; --sorali-s2: 8px; --sorali-s3: 12px; --sorali-s4: 16px; --sorali-s5: 24px; --sorali-s6: 32px; --sorali-s7: 48px; --sorali-s8: 64px; --sorali-s9: 96px; --sorali-s10: 128px;
	/* Échelle typographique */
	--sorali-fs-micro: .72rem; --sorali-fs-small: .85rem; --sorali-fs-body: 1rem; --sorali-fs-lead: clamp(1.05rem, 1rem + .3vw, 1.2rem);
	--sorali-fs-h3: clamp(1.15rem, 1.05rem + .4vw, 1.35rem); --sorali-fs-h2: clamp(1.9rem, 1.4rem + 2vw, 3.3rem); --sorali-fs-display: clamp(2.2rem, 1.5rem + 3vw, 4.5rem);
	--e-global-color-soralipk: var(--sorali-pink);
	--e-global-color-soralibk: #0a0a0a;
	--e-global-color-soraliwt: #ffffff;
	--e-global-color-soraligr: #5c5c5c;
}

/* Typographie Sorali sur les blocs Sorali et les pages WooCommerce (sans imposer de style au thème). */
[class*="sorali-"],
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.single-product .woocommerce-Reviews {
	font-family: var(--sorali-font);
}

/* ---------- Titres ---------- */
.sorali-title {
	font-family: var(--sorali-font);
	font-weight: 300;
	font-size: clamp(1.6rem, 1.25rem + 1.4vw, 2.5rem);
	letter-spacing: -.01em;
	text-transform: none;
	color: var(--sorali-black);
	margin: 0 0 1.75rem;
	line-height: 1.15;
}
.sorali-accent-yes .sorali-title::after {
	content: "";
	display: block;
	width: 36px;
	height: 1px;
	margin-top: 1.1rem;
	margin-left: var(--sorali-accent-ml, 0);
	margin-right: var(--sorali-accent-mr, auto);
	background: var(--sorali-pink);
}
.sorali-accent-yes .sorali-title[style*="center"]::after,
.elementor-widget[class*="title-align-center"] .sorali-title::after { margin-left: auto; margin-right: auto; }

/* ---------- Boutons : un seul système (rose bébé, texte blanc, rectangle arrondi 18 px) ---------- */
.sorali-btn,
a.sorali-btn,
button.sorali-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	min-height: 52px;
	padding: .9rem 2rem;
	border: 0;
	border-radius: var(--sorali-btn-radius);
	background: var(--sorali-pink);
	color: #ffffff;
	font-family: var(--sorali-font);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .14em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: background-color .3s var(--sorali-ease), color .3s var(--sorali-ease), transform .3s var(--sorali-ease);
}
.sorali-btn:focus-visible { background: var(--sorali-black); color: #ffffff; }
@media (hover: hover) {
	.sorali-btn:hover { background: var(--sorali-black); color: #ffffff; }
	.sorali-btn--light:hover { background: var(--sorali-pink); color: #fff; }
	.sorali-btn--outline:hover { background: var(--sorali-black); color: #fff; }
}
.sorali-btn:active { transform: scale(.98); }
.sorali-btn--primary { background: var(--sorali-pink); color: #fff; }
.sorali-btn--block { width: 100%; }
.sorali-btn--light { background: #ffffff; color: var(--sorali-black); }
.sorali-btn--light:focus-visible { background: var(--sorali-pink); color: #fff; }
.sorali-btn--outline { background: transparent; color: var(--sorali-black); box-shadow: inset 0 0 0 1px var(--sorali-black); }
.sorali-btn--small { min-height: 42px; padding: .6rem 1.2rem; font-size: .7rem; }
.sorali-btn--disabled,
.sorali-btn[aria-disabled="true"],
.sorali-btn:disabled { background: #ececec; color: #6b6b6b; cursor: not-allowed; }
.sorali-btn--whatsapp .sorali-btn__icon, .sorali-btn__icon { flex: 0 0 auto; }
.sorali-wa-wrap { display: flex; }
.sorali-wa-wrap[style*="stretch"] .sorali-btn, .elementor-widget-sorali-whatsapp-button .sorali-wa-wrap .sorali-btn { max-width: 100%; }

/* Boutons natifs Elementor générés par Sorali (géométrie commune). */
.elementor-widget-button.sorali-btn-native .elementor-button { border-radius: var(--sorali-btn-radius); transition: background-color .3s var(--sorali-ease), color .3s var(--sorali-ease); }

/* Lien texte (action secondaire). */
.sorali-textlink,
.sorali-textlink-native .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .3rem 0;
	color: var(--sorali-black);
	font-family: var(--sorali-font);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
	background-image: linear-gradient(var(--sorali-pink), var(--sorali-pink));
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 100% 1px;
	transition: background-size .35s var(--sorali-ease), color .3s;
}
.sorali-textlink:hover, .sorali-textlink:focus-visible,
.sorali-textlink-native .elementor-button:hover { background-size: 100% 2px; }
.sorali-textlink-native .elementor-button { background-color: transparent !important; border-radius: 0 !important; padding: .3rem 0 !important; }
.sorali-textlink-native .elementor-button-text::after { content: " →"; }

.sorali-link-button {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	font-size: .85rem;
	text-decoration: underline;
	text-underline-offset: 3px;
	color: var(--sorali-black);
	cursor: pointer;
}

/* ---------- Focus visible (accessibilité) ---------- */
[class*="sorali-"] a:focus-visible,
[class*="sorali-"] button:focus-visible,
[class*="sorali-"] summary:focus-visible,
[class*="sorali-"] input:focus-visible,
[class*="sorali-"] select:focus-visible,
[class*="sorali-"] textarea:focus-visible,
[class*="sorali-"][tabindex="0"]:focus-visible,
.sorali-btn:focus-visible {
	outline: 2px solid var(--sorali-black);
	outline-offset: 3px;
	box-shadow: 0 0 0 5px var(--sorali-pink);
}

/* ---------- Utilitaires ---------- */
.sorali-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
.sorali-visually-hidden-input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }

.sorali-pill {
	display: inline-block;
	padding: .3rem .85rem;
	border-radius: 999px;
	background: var(--sorali-pink-soft);
	color: var(--sorali-black);
	font-size: .75rem;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.sorali-stars { display: inline-flex; gap: 2px; color: var(--sorali-black); font-size: .95rem; line-height: 1; }
.sorali-star { opacity: .2; }
.sorali-star.is-on { opacity: 1; }

.sorali-verified {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	margin-left: .5rem;
	padding: .1rem .5rem;
	border-radius: 999px;
	background: var(--sorali-pink-soft);
	font-size: .7rem;
	font-weight: 500;
	letter-spacing: .04em;
}

/* Textes d'attente : visibles dans l'éditeur Elementor uniquement, jamais sur le site public. */
.sorali-placeholder { display: none !important; }
.elementor-editor-active .sorali-placeholder {
	display: block !important;
	padding: .75rem 1rem;
	border: 1px dashed #c9a2a2;
	background: #fff7f7;
	color: #7a4b4b;
	font-size: .85rem;
}

/* Conteneurs dont tous les blocs Sorali sont vides : masqués (aucune section vide). */
.sorali-autohide:not(:has(.elementor-widget)) { display: none !important; }

/* Avis visibles seulement dans l'éditeur. */
.sorali-editor-notice {
	padding: .9rem 1rem;
	border: 1px dashed #d4a6a6;
	background: #fff6f6;
	color: #6b3d3d;
	font-family: var(--sorali-font);
	font-size: .8rem;
	line-height: 1.5;
}

html.sorali-no-scroll { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	[class*="sorali-"], [class*="sorali-"]::before, [class*="sorali-"]::after {
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------- Logo ---------- */
.sorali-logo { --sorali-logo-w: 140px; display: flex; align-items: center; line-height: 0; }
.sorali-logo__link { display: inline-flex; align-items: center; text-decoration: none; color: var(--sorali-black); }
.sorali-logo__img { display: block; width: var(--sorali-logo-w); max-width: 100%; height: auto; }
.sorali-logo--black .sorali-logo__img { filter: brightness(0); }
.sorali-logo--white .sorali-logo__img { filter: brightness(0) invert(1); }
.sorali-logo__text { font-family: var(--sorali-font); font-size: 1.5rem; font-weight: 600; letter-spacing: .3em; line-height: 1.2; text-transform: uppercase; color: var(--sorali-black); }
.sorali-logo--white .sorali-logo__text, .sorali-logo--white .sorali-logo__link { color: #ffffff; }

/* 1.2.8 — Transition douce entre les pages (Chrome, Edge, Safari 18.2+ ; ignorée ailleurs). */
@media (prefers-reduced-motion: no-preference) {
	@view-transition { navigation: auto; }
	::view-transition-old(root), ::view-transition-new(root) { animation-duration: .2s; }
}
