/* ==========================================================================
   Opal Symphony — mise en page native (remplace Elementor)
   ========================================================================== */

/* Polices auto-hébergées ------------------------------------------------- */

@font-face { font-family: "Arima"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/arima-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Arima"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/arima-latin-500-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Arima"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/arima-latin-600-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Arima"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/arima-latin-ext-400-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Arima"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/arima-latin-ext-500-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Arima"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/arima-latin-ext-600-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* « Arima Madurai » est l'ancien nom d'Arima, encore utilisé dans les réglages Savoy. */
@font-face { font-family: "Arima Madurai"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/arima-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Arima Madurai"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/arima-latin-500-normal.woff2) format("woff2"); }
@font-face { font-family: "Arima Madurai"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/arima-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "Proza Libre"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/proza-libre-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Proza Libre"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/proza-libre-latin-500-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Proza Libre"; font-style: italic; font-weight: 400; font-display: swap; src: url(../fonts/proza-libre-latin-400-italic.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Proza Libre"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/proza-libre-latin-ext-400-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Proza Libre"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/proza-libre-latin-ext-500-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Proza Libre"; font-style: italic; font-weight: 400; font-display: swap; src: url(../fonts/proza-libre-latin-ext-400-italic.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* Variables ---------------------------------------------------------------- */

:root {
	--opal-noir: #000;
	--opal-texte: #212121;
	--opal-gris: #7a7a7a;
	--opal-blanc: #fff;
	--opal-violet: #8100fe;
	--opal-police-titre: "Arima", "Arima Madurai", serif;
	--opal-police-texte: "Proza Libre", sans-serif;
	--opal-largeur: 1300px;
	--opal-marge: clamp(20px, 5vw, 72px);
}

/* Sections ----------------------------------------------------------------- */

.opal-page .entry-content > *,
.opal-page .nm-page-wrap-inner > * { margin-block: 0; }

.opal-section {
	position: relative;
	padding: var(--opal-marge);
	font-family: var(--opal-police-texte);
	font-size: 18px;
	line-height: 1.5;
	overflow: hidden;
}
.opal-section > *, .opal-section > .wp-block-group__inner-container > :where(:not(.opal-filigrane)) { position: relative; z-index: 1; max-width: var(--opal-largeur); margin-inline: auto; }

.is-style-opal-sombre { background: var(--opal-noir); color: var(--opal-blanc); }
.is-style-opal-sombre :where(h1, h2, h3, h4, p, li, a:not(.wp-block-button__link)) { color: var(--opal-blanc); }
.is-style-opal-clair { background: var(--opal-blanc); color: var(--opal-texte); }

.opal-section h1,
.opal-section h2,
.opal-section h3 {
	font-family: var(--opal-police-titre);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: 0;
	margin: 0 0 .5em;
}
.opal-section h2 { font-size: clamp(28px, 3.2vw, 40px); }
.opal-section h3 { font-size: clamp(22px, 2vw, 26px); }
.opal-section p { margin: 0 0 1em; }

/* Image décorative en filigrane (section « Pourquoi », « Serpent arc-en-ciel »…) */
.opal-filigrane {
	position: absolute !important;
	z-index: 0 !important;
	margin: 0 !important;
	pointer-events: none;
	max-width: none !important;
}
.opal-filigrane img { width: 100%; height: auto; display: block; }
.opal-filigrane--haut-droite { top: 0; right: 0; width: min(45%, 700px); opacity: .2; }
.opal-filigrane--bas-droite { bottom: 0; right: 0; width: min(35%, 540px); }
.opal-filigrane--tissme { bottom: 0; right: 0; width: min(30%, 420px); opacity: .4; }
@media (max-width: 781px) {
	.opal-filigrane--bas-droite, .opal-filigrane--haut-droite { opacity: .15; width: 80%; }
	.opal-filigrane--tissme { width: 100%; opacity: .2; }
}

/* Séparateur court sous les titres */
.wp-block-separator.is-style-opal-trait {
	width: 10%;
	min-width: 60px;
	max-width: 120px;
	border: 0;
	border-top: 2px solid currentColor;
	margin: 0 auto 2.5rem;
	opacity: 1;
	background: none;
}

/* Boutons ------------------------------------------------------------------ */

:is(.opal-section, .opal-hero) .wp-block-button__link.wp-element-button {
	font-family: var(--opal-police-texte);
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	padding: 16px 28px;
	border-radius: 999px;
	border: 1px solid var(--opal-noir);
	background: var(--opal-noir);
	color: var(--opal-blanc);
	text-decoration: none;
	transition: background-color .2s, color .2s;
}
:is(.opal-section, .opal-hero) .wp-block-button__link.wp-element-button:hover,
:is(.opal-section, .opal-hero) .wp-block-button__link.wp-element-button:focus-visible { background: var(--opal-blanc); border-color: var(--opal-noir); color: var(--opal-noir); }

.opal-section .is-style-opal-contour .wp-block-button__link.wp-element-button { background: transparent; border-color: var(--opal-blanc); color: var(--opal-blanc); }
.opal-section .is-style-opal-contour .wp-block-button__link.wp-element-button:hover,
.opal-section .is-style-opal-contour .wp-block-button__link.wp-element-button:focus-visible { background: var(--opal-blanc); color: var(--opal-noir); }

.opal-section .wp-block-buttons { gap: 1rem 2rem; margin-top: 2rem; }

/* Cartes de catégories ----------------------------------------------------- */

.opal-cartes.wp-block-columns { gap: 2rem 4%; justify-content: space-evenly; margin-bottom: 3rem; }
.opal-cartes > .wp-block-column { flex: 0 1 25% !important; text-align: center; display: flex; flex-direction: column; align-items: center; }
.opal-cartes h3 { margin-top: 1rem; }
.opal-cartes p { font-size: 16px; flex: 1; }
.opal-cartes .wp-block-buttons { margin-top: .5rem; }
.opal-section .opal-cartes .wp-block-button__link.wp-element-button { font-size: 15px; padding: 10px 20px; }
@media (max-width: 781px) {
	.opal-cartes > .wp-block-column { flex-basis: 100% !important; }
}

.wp-block-image.is-style-opal-medaillon img { width: 120px; height: 120px; object-fit: contain; }

/* En-tête de l'accueil (diaporama) ----------------------------------------- */

.opal-hero {
	position: relative;
	min-height: 88vh;
	display: flex;
	align-items: center;
	padding: var(--opal-marge);
	overflow: hidden;
	background: #fff;
}
.opal-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(255,255,255,.85) 0%, rgba(255,255,255,.55) 45%, rgba(255,255,255,0) 75%);
	pointer-events: none;
}
.opal-hero__images.wp-block-gallery {
	position: absolute !important;
	inset: 0;
	margin: 0 !important;
	display: block !important;
	z-index: 0;
	max-width: none !important;
}
.opal-hero__images.wp-block-gallery figure.wp-block-image {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100%;
	margin: 0 !important;
	opacity: 0;
	transition: opacity 1.5s ease;
}
.opal-hero__images.wp-block-gallery figure.wp-block-image.is-active,
.opal-hero__images.wp-block-gallery figure.wp-block-image:first-child:not(:has(~ .is-active)) { opacity: 1; }
.opal-hero__images.wp-block-gallery figure img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}
.opal-hero__images figure.is-active img { animation: opal-zoom 7.5s linear both; }
@keyframes opal-zoom { from { transform: scale(1); } to { transform: scale(1.12); } }
@media (prefers-reduced-motion: reduce) {
	.opal-hero__images figure img { animation: none !important; }
}

.opal-hero__contenu {
	position: relative;
	z-index: 2;
	width: min(75%, 980px);
	color: var(--opal-texte);
}
.opal-hero h1 {
	font-family: var(--opal-police-titre);
	font-size: clamp(35px, 4.9vw, 70px);
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -2px;
	color: var(--opal-texte);
	margin: 0 0 .5em;
}
.opal-hero p {
	font-family: var(--opal-police-texte);
	font-size: clamp(18px, 1.6vw, 22px);
	line-height: 1.4;
	color: var(--opal-texte);
}
.opal-hero__fleche {
	position: absolute;
	z-index: 2;
	left: 50%;
	bottom: 24px;
	transform: translateX(-50%);
	margin: 0 !important;
}
.opal-hero__fleche a {
	display: block;
	width: 44px;
	height: 44px;
	font-size: 0;
	background: no-repeat center / 28px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23212121' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}
@media (max-width: 781px) {
	.opal-hero__contenu { width: 100%; }
	.opal-hero::after { background: rgba(255,255,255,.7); }
}

/* Grilles de produits dans une section sombre ------------------------------ */

.is-style-opal-sombre .nm-products,
.is-style-opal-sombre ul.products { margin-bottom: 1rem; }
.is-style-opal-sombre ul.products li.product :is(h3, .woocommerce-loop-product__title, .price, .price *, a) { color: var(--opal-blanc); }

/* Variantes de sections ---------------------------------------------------- */

.opal-section--suite { padding-top: 1%; }
.opal-section--large { padding: 6% 9%; }
.opal-colonne-texte { width: min(70%, 900px); margin-inline: 0 auto !important; }
@media (max-width: 781px) {
	.opal-colonne-texte { width: 100%; }
	.opal-section--large { padding: var(--opal-marge); }
}

/* Animations des médaillons au survol des cartes (reprises de l'original) --- */

.opal-cartes .wp-block-image img { transition: transform .4s ease; }
.opal-cartes .opal-anim-bascule img { transform: rotate(-90deg) rotateX(-13deg); }
.opal-cartes .opal-anim-grand img { transform: scale(1.3); }
.opal-cartes .wp-block-column:hover .opal-anim-droite img { transform: rotate(90deg); }
.opal-cartes .wp-block-column:hover .opal-anim-gauche img { transform: rotate(-90deg); }
.opal-cartes .wp-block-column:hover .opal-anim-bascule img { transform: rotate(80deg) rotateX(-14deg); }
.opal-cartes .wp-block-column:hover .opal-anim-grand img { transform: scale(1.5); }
@media (prefers-reduced-motion: reduce) {
	.opal-cartes .wp-block-image img { transition: none; }
}

/* Bouton des cartes : passe en jaune-beige au survol, comme l'original */
.opal-section .opal-cartes .is-style-opal-contour .wp-block-button__link.wp-element-button:hover,
.opal-section .opal-cartes .is-style-opal-contour .wp-block-button__link.wp-element-button:focus-visible { background: transparent; border-color: #ffdd88; color: #ffdd88; }

/* Bandeau de titre des pages ----------------------------------------------- */

.wp-block-cover.opal-entete-page {
	min-height: 0;
	padding: 30px var(--opal-marge);
	align-items: center;
}
.opal-entete-page .wp-block-cover__inner-container { max-width: var(--opal-largeur); margin-inline: auto; width: 100%; color: var(--opal-texte); }
.opal-entete-page h1.wp-block-post-title {
	font-family: var(--opal-police-titre);
	font-size: clamp(34px, 3.6vw, 51px);
	font-weight: 500;
	line-height: 1.1;
	color: var(--opal-texte);
	margin: 0 0 .4em;
}
.wp-block-separator.opal-trait-gauche { margin: 0 0 1rem; }
.opal-entete-page .rank-math-breadcrumb { font-family: var(--opal-police-texte); font-size: 14px; color: #a36300; }
.rank-math-breadcrumb p { margin: 0; }
.opal-entete-page .rank-math-breadcrumb a, .opal-entete-boutique__ariane .rank-math-breadcrumb a { color: var(--opal-noir); text-decoration: none; }
.opal-entete-page .rank-math-breadcrumb a:hover, .opal-entete-boutique__ariane .rank-math-breadcrumb a:hover { color: #a36300; }

/* Deux images décalées à côté d'un texte (page Contact…) ------------------- */

.opal-duo-images { display: flex; flex-direction: column; }
.opal-duo-images .opal-duo-images__haut { align-self: flex-start; width: 45%; margin: 0; }
.opal-duo-images .opal-duo-images__bas { align-self: flex-end; width: 40%; margin: 8% 5% 0 0; }
.opal-duo-images img { width: 100%; height: auto; }
@media (max-width: 781px) {
	.opal-duo-images { flex-direction: row; justify-content: space-between; }
	.opal-duo-images .opal-duo-images__haut, .opal-duo-images .opal-duo-images__bas { width: 45%; margin: 0; }
}

/* Formulaires Fluent Forms ------------------------------------------------- */

.opal-section .fluentform .ff-el-input--label label { font-family: var(--opal-police-titre); font-weight: 400; font-size: 15px; color: var(--opal-noir); }
.opal-section .fluentform .ff-el-form-control { font-family: var(--opal-police-texte); color: var(--opal-gris); border-radius: 5px; }
.opal-section .fluentform .ff-btn-submit {
	width: 100%;
	font-family: var(--opal-police-titre);
	font-weight: 500;
	text-transform: uppercase;
	background-color: #ebaf2f !important;
	color: var(--opal-noir) !important;
	border: 0;
	border-radius: 0;
	transition: transform .3s;
}
.opal-section .fluentform .ff-btn-submit:hover,
.opal-section .fluentform .ff-btn-submit:focus-visible { transform: scale(1.03); opacity: 1; }

/* Fiche produit ------------------------------------------------------------ */

.opal-creation { display: flex; align-items: center; gap: 8px; margin: -.5rem 0 1rem; font-size: 14px; }
.opal-creation img { width: 48px; height: auto; }

.opal-fiche-bloc { margin: 1.5rem 0; }
.opal-fiche-titre { display: block; font-family: var(--opal-police-titre); font-size: 18px; color: var(--opal-texte); padding-bottom: .4rem; margin-bottom: .8rem; border-bottom: 1px solid #ddd; }
.nm-product-share-wrap { flex-wrap: wrap; }
.nm-product-share-wrap > .opal-fiche-bloc { flex: 0 0 100%; width: 100%; clear: both; padding-top: .5rem; }

.opal-caracteristiques__colonnes { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
@media (max-width: 600px) { .opal-caracteristiques__colonnes { grid-template-columns: 1fr; } }
.opal-caracteristiques .woocommerce-product-attributes { margin: 0 0 1rem; font-size: 13px; }

.opal-liste-icones { list-style: none; margin: 0 0 1rem; padding: 0; font-size: 13px; }
.opal-liste-icones li { display: flex; gap: 8px; align-items: flex-start; margin-bottom: .7rem; }
.opal-liste-icones .opal-icone { flex: none; margin-top: 2px; color: var(--opal-texte); }
.opal-liste-icones a, .opal-lien-bouton { color: var(--opal-violet); }
.opal-lien-bouton { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-align: left; }
.opal-lien-bouton:hover, .opal-liste-icones a:hover { text-decoration: underline; }
.opal-meta-courte { font-size: 13px; }
.opal-meta-courte > span { display: block; margin-bottom: .3rem; }

/* Fenêtre « Demande d'information » */
.opal-dialog { width: min(640px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 32px; border: 0; border-radius: 6px; box-shadow: 0 20px 60px rgba(0,0,0,.35); }
.opal-dialog::backdrop { background: rgba(0,0,0,.6); }
.opal-dialog h2 { font-family: var(--opal-police-titre); font-weight: 500; font-size: 28px; margin: 0 0 .25rem; }
.opal-dialog__produit { color: var(--opal-gris); margin-bottom: 1.25rem; }
.opal-dialog .opal-section { padding: 0; overflow: visible; }
.opal-dialog__fermer { position: absolute; top: 8px; right: 12px; background: none; border: 0; font-size: 32px; line-height: 1; cursor: pointer; color: var(--opal-texte); }

/* Accordéon « Tout savoir sur nos Opales et nos Bijoux » */
.opal-tout-savoir { max-width: 1000px; margin: 3rem auto; font-family: var(--opal-police-texte); text-align: left; }
.opal-tout-savoir > h2 { font-family: var(--opal-police-titre); font-weight: 500; font-size: clamp(26px, 3vw, 36px); text-align: center; margin-bottom: 1.5rem; }
.opal-accordeon { border-top: 1px solid #ddd; padding: 0; }
.opal-accordeon:last-child { border-bottom: 1px solid #ddd; }
.opal-accordeon > summary { cursor: pointer; padding: 14px 0; font-family: var(--opal-police-titre); font-size: 18px; list-style: none; display: flex; gap: 10px; align-items: center; }
.opal-accordeon > summary::-webkit-details-marker { display: none; }
.opal-accordeon > summary::before { content: "+"; width: 1em; text-align: center; font-size: 20px; }
.opal-accordeon[open] > summary::before { content: "−"; }
.opal-accordeon > :not(summary) { margin-left: calc(1em + 10px); }
.opal-accordeon[open] { padding-bottom: 1rem; }
.opal-accordeon h4 { font-family: var(--opal-police-titre); font-weight: 600; font-size: 17px; }
.opal-galerie-echelle.wp-block-gallery { gap: 8px; }

/* Fiche produit : résumé, question, réassurance ---------------------------- */

.opal-resume { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px 20px; margin: 0 0 1.25rem; padding: 12px 0; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }
.opal-resume dt { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--opal-gris); margin: 0; }
.opal-resume dd { margin: 2px 0 0; font-size: 14px; color: var(--opal-texte); }

.opal-bouton-question {
	display: block;
	width: 100%;
	margin: 10px 0 0;
	padding: 12px 20px;
	background: transparent;
	border: 1px solid var(--opal-texte);
	color: var(--opal-texte);
	font: inherit;
	font-size: 14px;
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.opal-bouton-question:hover, .opal-bouton-question:focus-visible { background: var(--opal-texte); color: #fff; }

.opal-reassurance { list-style: none; margin: 1.25rem 0; padding: 0; font-size: 13px; color: var(--opal-texte); }
.opal-reassurance li { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.opal-reassurance .opal-icone { flex: none; color: var(--opal-violet); }

.opal-vendu { margin: 1rem 0; padding: 12px 16px; background: #f6f2fb; border-left: 3px solid var(--opal-violet); font-size: 14px; }

/* Sommaire du guide en bas de fiche */
.opal-guide-sommaire { max-width: 1000px; margin: 3rem auto; text-align: left; }
.opal-guide-sommaire h2 { font-family: var(--opal-police-titre); font-weight: 500; font-size: clamp(24px, 2.6vw, 32px); text-align: center; margin-bottom: 1.25rem; }
.opal-guide-sommaire ul { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0 2rem; }
.opal-guide-sommaire li { border-top: 1px solid #ddd; }
.opal-guide-sommaire li a { display: block; padding: 12px 0; color: var(--opal-texte); text-decoration: none; }
.opal-guide-sommaire li a:hover { color: var(--opal-violet); }
.opal-guide-sommaire__tout { display: inline-block; margin-top: .5rem; color: var(--opal-violet); }

/* Vidéo dans la galerie photos : icône « lecture » sur sa vignette */
.flex-control-thumbs li.opal-vignette-video { position: relative; }
.flex-control-thumbs li.opal-vignette-video::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 34%;
	aspect-ratio: 1;
	max-width: 36px;
	border-radius: 50%;
	background: rgba(0,0,0,.55) no-repeat 55% 50% / 45% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E");
	pointer-events: none;
}
.woocommerce-product-gallery__video video { display: block; width: 100%; height: auto; }

/* En-tête des pages boutique */
.opal-bandeau-boutique { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 40px; padding: 2px 16px; background: #282828; color: #fff; text-align: center; }
.opal-bandeau-boutique__texte { font-size: 20px; }
.opal-bandeau-boutique__alerte { font-size: 18px; }
.opal-entete-boutique { width: 93%; margin: 0 auto; text-align: left; }
.opal-entete-boutique__ariane { font-size: 15px; margin: 1rem 0 .5rem; }
.opal-entete-boutique__titre { font-family: var(--opal-police-titre); font-weight: 500; margin: 0 0 .5rem; }

/* Réglages fins des filigranes (repris des réglages Elementor) */
.opal-filigrane.opal-opacite-20 { opacity: .2; }
.opal-filigrane.opal-opacite-40 { opacity: .4; }
.opal-filigrane.opal-opacite-50 { opacity: .5; }
.opal-filigrane.opal-opacite-100 { opacity: 1; }
.opal-filigrane.opal-largeur-30 { width: 30%; }
.opal-filigrane.opal-largeur-35 { width: 35%; }
.opal-filigrane.opal-largeur-45 { width: 45%; }

/* Galeries avec légendes */
.opal-galerie.wp-block-gallery figure.wp-block-image { align-items: center; }
.opal-galerie .wp-element-caption { position: static; background: none; color: inherit; font-size: 14px; text-align: center; padding: 8px 0 0; }
.opal-galerie.wp-block-gallery img { width: auto; max-width: 100%; max-height: 420px; margin-inline: auto; object-fit: contain; }
.has-text-align-justify { text-align: justify; }

/* Bord inférieur arrondi des bandeaux de titre (forme « courbe » de l'original) */
.wp-block-cover.opal-entete-page { clip-path: ellipse(130% 100% at 50% 0); padding-top: 0; padding-bottom: 20px; }

/* Taille du texte : 16 px par défaut, 18 px là où l'original l'imposait */
.opal-section { font-size: 16px; }
.opal-section.opal-texte-grand, .opal-section .opal-texte-grand { font-size: 18px; }

/* Listes : Savoy retire les puces, on les remet dans le contenu */
.opal-section ul.wp-block-list { list-style: disc; padding-left: 1.5em; margin: 0 0 1em; }
.opal-section ul.wp-block-list > li { list-style: inherit; }
.opal-section ol.wp-block-list > li { list-style: inherit; }
.opal-section ol.wp-block-list { list-style: decimal; padding-left: 1.5em; margin: 0 0 1em; }

/* Fidélité aux réglages Elementor d'origine --------------------------------- */

/* Titres : 51 px pour les titres de section, 40 px sur l'accueil, 30 px pour les sous-titres */
.opal-section h2, .opal-section .opal-fs-51 { font-size: clamp(32px, 3.6vw, 51px); }
.home .opal-section h2, .opal-section .opal-fs-40 { font-size: clamp(28px, 3.2vw, 40px); }
.opal-section .opal-fs-30 { font-size: clamp(22px, 2.2vw, 30px); line-height: 1.25; }
.opal-section .opal-fs-20 { font-size: 20px; }
.opal-section .opal-police-texte { font-family: var(--opal-police-texte); font-weight: 500; }

/* Texte : 18 px sur 32 px d'interligne, gris très foncé sur fond clair */
.opal-section.opal-texte-grand, .opal-section .opal-texte-grand { line-height: 32px; }
.is-style-opal-clair :where(p, li) { color: #222; }

/* Sections à hauteur minimale, contenu centré verticalement */
/* Sections : espacement vertical régulier plutôt qu'une hauteur minimale (évite les grands vides) */
.opal-section.opal-hauteur-50, .opal-section.opal-hauteur-60 { padding-block: clamp(48px, 6vw, 96px); }

/* Colonnes espacées de 5 % */
.wp-block-columns.opal-ecart-5 { column-gap: 5%; }

/* Image découpée selon la forme d'une opale (masque de l'original) */
.opal-masque-opale img {
	-webkit-mask: url(/wp-content/uploads/2023/06/DSC01717-LiR4-001.svg) center / 118% no-repeat;
	mask: url(/wp-content/uploads/2023/06/DSC01717-LiR4-001.svg) center / 118% no-repeat;
}

/* Bandeau de titre : dégradé blanc → transparent derrière le titre, comme l'original */
/* Le dégradé couvre toute la largeur du bandeau (pas de bord visible sur grand écran). */
.wp-block-cover.opal-entete-page::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.85) 25%, rgba(255,255,255,.35) 55%, rgba(255,255,255,0) 80%);
	pointer-events: none;
}
.opal-entete-page .wp-block-cover__inner-container { position: relative; z-index: 2; padding: 30px 0; }
@media (max-width: 781px) {
	.wp-block-cover.opal-entete-page::before { background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.75) 60%, rgba(255,255,255,.4) 100%); }
}

/* Largeur du contenu comme l'original : cadre de 1300 px, marge intérieure de 5 % de ce cadre */
.opal-section { padding-inline: calc((100% - min(100%, 1300px)) / 2 + min(100%, 1300px) * .05); }
.opal-section > * { max-width: none; }
/* Bandeau : le titre est aligné sur le cadre de 1300 px, sans marge intérieure */
.wp-block-cover.opal-entete-page { padding-inline: max(20px, calc((100% - 1300px) / 2)); }

/* Longueur de ligne confortable (environ 75 caractères) pour les textes en pleine largeur */
/* (Savoy enveloppe le contenu des groupes dans .wp-block-group__inner-container.) */
.opal-section > :is(p, ul, ol),
.opal-section > .wp-block-group__inner-container > :is(p, ul, ol),
:is(.opal-section, .opal-section > .wp-block-group__inner-container) > .wp-block-columns > .wp-block-column:only-child > :is(p, ul, ol) { max-width: 780px; margin-inline: 0; }
:is(.opal-section, .opal-section > .wp-block-group__inner-container) > p.has-text-align-center { margin-inline: auto; }

/* Fil d'Ariane de la boutique : même orange lisible */
.opal-entete-boutique__ariane { color: #a36300; }

/* Sommaire des pages longues */
.opal-section--sommaire { padding-bottom: 0; }
.opal-sommaire { max-width: 780px; padding: 20px 24px; background: #f7f5f2; border-left: 3px solid var(--opal-texte); }
.opal-sommaire__titre { font-family: var(--opal-police-titre); font-size: 20px; margin: 0 0 .5rem; }
.opal-sommaire ol { margin: 0; padding-left: 1.4em; columns: 2 280px; column-gap: 2rem; }
.opal-sommaire li { margin-bottom: .35rem; break-inside: avoid; }
.opal-sommaire a { color: var(--opal-texte); }
:where(.opal-section) h2[id] { scroll-margin-top: 120px; }

/* Appel à l'action de fin de page */
.opal-appel-action ul.products { margin-top: 1rem; }

/* Caractéristiques : grille au même format que le résumé sous le prix */
.opal-specs { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 16px 24px; border-bottom: 0; padding-top: 4px; }
.opal-specs dd a { color: var(--opal-texte); text-decoration: none; border-bottom: 1px solid #ddd; }
.opal-specs dd a:hover { border-color: var(--opal-violet); color: var(--opal-violet); }
.opal-caracteristiques .opal-meta-courte { display: flex; flex-wrap: wrap; gap: 4px 20px; font-size: 12px; color: var(--opal-gris); margin: 0 0 1rem; }
.opal-caracteristiques .opal-meta-courte > span { display: inline; margin: 0; }
.opal-caracteristiques .opal-meta-courte a { color: var(--opal-gris); }
.opal-aide { list-style: none; margin: 0; padding: 12px 0 0; border-top: 1px solid #eee; display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 13px; }
.opal-aide li { display: flex; align-items: center; gap: 6px; }
.opal-aide .opal-icone { color: var(--opal-violet); flex: none; }
.opal-aide a { color: var(--opal-texte); }
.opal-aide a:hover { color: var(--opal-violet); }
.opal-caracteristiques > .opal-fiche-titre { border-bottom: 0; padding-bottom: 0; }
