/**
 * NRV Codes — CSS du site (spécifique à CE site).
 *
 * Chargé sur toutes les pages du site.
 * Modifiable dans l'admin : NRV Codes > Code du site, ou directement sur le serveur.
 *
 * ⚠️ Le CSS lié aux animations GSAP (états initiaux masqués…) va dans
 *    site/gsap/animations.css : il n'est chargé que si GSAP est actif.
 *
 * ==========================================================
 * STAR BLOK — base globale + styles des sorties de shortcodes / injections.
 * Le design system (variables --sb-*, classes sb-*) vit dans Oxygen.
 * Polices : uploads/star-blok/fonts/ ('Fraunces SB', 'Barlow SB') via site/php/functions-star-blok.php
 * ========================================================== */

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
html body { margin: 0; background: #FFF6D7; color: #000; font-family: 'Barlow SB', 'Barlow', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body a { color: #000; }
body a:hover { color: #000; }
body input, body textarea, body button, body select { font: inherit; }
::selection { background: #FFBD59; color: #000; }
html.sb-menu-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------- Compatibilité Bootstrap 5 (chargé par NRV - Tools sur tout le site) ----------
 * Spécificité (0,0,2) : bat Bootstrap (0,0,1), reste sous les classes Oxygen (0,1,0). */
body h1, body h2, body h3, body h4, body h5, body h6, body p, body ul, body ol, body dl, body dd, body figure, body blockquote, body table { margin-top: 0; margin-bottom: 0; }
body h1, body h2, body h3, body h4, body h5, body h6 { color: inherit; }
body ul, body ol { padding-left: 0; }

/* ---------- Bandeau NRV injecté par NRV Codes (style maquette) ---------- */
.nrv-link-injected { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 18px; padding: 14px 20px; background-color: #FFF6D7; border-top: 3px solid #000; font-family: 'Barlow SB', 'Barlow', sans-serif; transition: background-color .15s; }
.nrv-link-injected:hover { background-color: #FFBD59; }
.nrv-link-injected .nrv-link_lien-texte { margin: 0; color: #000; text-decoration: none; }
.nrv-link-injected .nrv-link_texte { font-size: 14px; font-weight: 500; color: #000; }
.nrv-link-injected .nrv-link_lien-logo svg { display: block; width: auto; height: 24px; fill: #000; }
@media (max-width: 480px) { .nrv-link-injected { flex-direction: row; } }

/* ==========================================================
 * HEADER — burger 3 traits + panneau de menu mobile
 * ========================================================== */
.sb-header .sb-header__toggle { position: relative; width: 52px; height: 52px; min-width: 52px; min-height: 52px; padding: 0; border-radius: 50%; font-size: 0; line-height: 0; color: transparent; transition: background-color .15s; }
.sb-header .sb-header__toggle:hover { background: #FFBD59; }
.sb-header .sb-header__toggle::before, .sb-header .sb-header__toggle::after { content: ''; position: absolute; left: 50%; top: 50%; width: 22px; height: 3px; margin: -1.5px 0 0 -11px; border-radius: 3px; background: #000; transition: transform .25s ease, box-shadow .2s ease, opacity .2s ease; }
.sb-header .sb-header__toggle::before { box-shadow: 0 -7px 0 #000, 0 7px 0 #000; }
.sb-header .sb-header__toggle::after { opacity: 0; }
.sb-header.is-open .sb-header__toggle { background: #000; }
.sb-header.is-open .sb-header__toggle::before { box-shadow: none; background: #FFF6D7; transform: rotate(45deg); }
.sb-header.is-open .sb-header__toggle::after { opacity: 1; background: #FFF6D7; transform: rotate(-45deg); }
@media (max-width: 767px) {
	.sb-header .sb-header__menu { position: absolute; left: 0; right: 0; top: 100%; z-index: 49; display: flex; flex-direction: column; gap: 0; height: calc(100dvh - var(--sb-header-h, 80px)); overflow-y: auto; overscroll-behavior: contain; padding: 8px 20px 28px; border-top: 3px solid #000; background: #FFF6D7; visibility: hidden; opacity: 0; transform: translateY(-12px); transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s; }
	.sb-header.is-open .sb-header__menu { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
	.sb-header .sb-header__menu .sb-header__menu-link { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 0; padding: 20px 4px; border: 0; border-bottom: 3px solid #000; border-radius: 0; background: transparent; font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 900; font-size: clamp(26px, 8vw, 34px); line-height: 1; text-transform: uppercase; color: #000; opacity: 0; transform: translateX(-12px); transition: opacity .25s ease, transform .25s ease, padding-left .2s ease, background-color .15s; }
	.sb-header .sb-header__menu .sb-header__menu-link::after { content: '\2192'; flex: none; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 3px solid #000; border-radius: 50%; font-family: 'Barlow SB', 'Barlow', sans-serif; font-weight: 700; font-size: 22px; transition: background-color .15s, transform .15s; }
	.sb-header .sb-header__menu .sb-header__menu-link:hover { background: transparent; padding-left: 10px; }
	.sb-header .sb-header__menu .sb-header__menu-link:hover::after { background: #FFBD59; }
	.sb-header .sb-header__menu .sb-header__menu-link:focus-visible { outline: 3px solid #273D93; outline-offset: -3px; }
	.sb-header.is-open .sb-header__menu .sb-header__menu-link { opacity: 1; transform: none; }
	.sb-header.is-open .sb-header__menu .sb-header__menu-link:nth-child(1) { transition-delay: .05s; }
	.sb-header.is-open .sb-header__menu .sb-header__menu-link:nth-child(2) { transition-delay: .1s; }
	.sb-header.is-open .sb-header__menu .sb-header__menu-link:nth-child(3) { transition-delay: .15s; }
	.sb-header .sb-header__menu .sb-header__menu-foot { opacity: 0; transition: opacity .25s ease .2s; }
	.sb-header.is-open .sb-header__menu .sb-header__menu-foot { opacity: 1; }
}

/* Barre d'admin WordPress : sous 600 px elle n'est plus fixe (elle défile avec la page).
 * Le header reste donc collé tout en haut de l'écran au lieu de garder un vide de 46 px. */
@media screen and (max-width: 600px) {
	html body .sb-header { top: 0; }
}

/* ==========================================================
 * HERO
 * ========================================================== */
.sb-hero__arc .sb-arc-text { font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 900; text-transform: uppercase; }
.sb-hero__track::-webkit-scrollbar { display: none; }
.sb-dots .sb-dot--light { border-color: #FFF5F5; }
.sb-dots .sb-dot--light.is-active { background: #FFF5F5; }
@media (max-width: 767px) {
	.sb-hero .sb-hero__title { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; white-space: normal; }
}

/* ==========================================================
 * CARTE [sb-carte]
 * ========================================================== */
.sb-carte { font-family: 'Barlow SB', 'Barlow', sans-serif; color: #000; }
.sb-carte__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; }
.sb-carte__title { margin: 0; }
.sb-carte__tabs { display: flex; gap: 4px; padding: 4px; border: 3px solid #000; border-radius: 999px; background: #FDFBEE; }
.sb-carte__tab { min-height: 48px; min-width: 120px; padding: 8px 24px; border: 0; border-radius: 999px; background: transparent; color: #000; font-weight: 700; font-size: 17px; line-height: 1; cursor: pointer; transition: background-color .15s, color .15s; }
.sb-carte__tab:hover { background: #FFBD59; }
.sb-carte__tab.is-active, .sb-carte__tab.is-active:hover { background: #000; color: #FDFBEE; }
.sb-carte__tab:focus-visible { outline: 3px solid #273D93; outline-offset: 3px; }
.sb-carte__panel { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); gap: 40px clamp(32px, 4vw, 64px); margin-top: 48px; align-items: start; }
.sb-carte__panel[hidden] { display: none; }
.sb-carte__col { display: flex; flex-direction: column; gap: 36px; min-width: 0; }
.sb-carte__cat { display: flex; flex-direction: column; gap: 14px; }
.sb-carte__cat-title { margin: 0; display: flex; justify-content: center; gap: 12px; padding: 10px 20px; border: 3px solid #000; border-radius: 999px; font-family: 'Barlow SB', 'Barlow', sans-serif; font-weight: 700; font-size: clamp(19px, 1.8vw, 21px); line-height: 1.2; text-transform: uppercase; letter-spacing: .02em; text-align: center; color: #000; }
.sb-carte__mention { font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 800; text-transform: none; }
.sb-carte__list { list-style: none; margin: 0; padding: 0 12px; display: flex; flex-direction: column; gap: 12px; }
.sb-carte__item { display: flex; flex-direction: column; gap: 3px; }
.sb-carte__row { display: flex; align-items: baseline; gap: 12px; font-size: 18px; line-height: 1.35; }
.sb-carte__bullet { width: 7px; height: 7px; flex: none; border-radius: 50%; background: #000; transform: translateY(-3px); }
.sb-carte__name { flex: 1; font-weight: 400; }
.sb-carte__name.is-bold { font-weight: 700; }
.sb-carte__price { font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 800; font-size: clamp(18px, 1.6vw, 20px); white-space: nowrap; }
.sb-carte__desc { margin: 0; padding-left: 19px; font-size: 15px; line-height: 1.45; max-width: 44ch; }
.sb-carte__tags { list-style: none; margin: 0; padding: 0 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; font-size: 18px; line-height: 1.35; }
.sb-carte__gobelet { display: block; align-self: center; width: clamp(170px, 18vw, 240px); height: auto; transform: rotate(3deg); }
@media (max-width: 479px) {
	.sb-carte__tabs { width: 100%; }
	.sb-carte__tab { flex: 1; min-width: 0; }
}

/* ==========================================================
 * AVIS GOOGLE [google-reviews-by-nrv] dans .sb-avis__slider
 * Structure : .google-reviews-by-nrv-review (slide, transparent, porte l'espacement)
 *             > .sb-review__card (carte visible, créée par scripts-site.js)
 * ========================================================== */
.sb-avis__slider .slick-slider { position: relative; display: block; box-sizing: border-box; -webkit-user-select: none; user-select: none; touch-action: pan-y; -webkit-tap-highlight-color: transparent; }
.sb-avis__slider .slick-list { position: relative; display: block; overflow: hidden; margin: 0 -12px; padding: 4px 0 8px; }
.sb-avis__slider .slick-track { position: relative; top: 0; left: 0; display: flex !important; align-items: stretch; }
.sb-avis__slider .slick-track::before, .sb-avis__slider .slick-track::after { display: none; }
.sb-avis__slider .slick-slide { float: none; height: auto !important; min-height: 1px; padding: 0; outline: none; display: flex !important; }
.sb-avis__slider .slick-slide > div { display: flex; width: 100%; }
/* Le "slide" d'avis : transparent, porte l'espace de 24 px entre les cartes */
.sb-avis__slider .google-reviews-by-nrv-review { display: flex !important; flex-direction: column; width: 100%; height: auto !important; padding: 0 12px; border: 0; background: none; box-sizing: border-box; }
.sb-avis__slider .google-reviews-by-nrv-container:not(.slick-initialized) { margin: 0 -12px; }
/* La carte visible */
.sb-avis__slider .sb-review__card { flex: 1; display: flex; flex-direction: column; gap: 14px; padding: 26px; border: 3px solid #000; border-radius: 24px; background: #FDFBEE; color: #000; }
.sb-avis__slider .nrv-google-reviews-stars { order: 1; display: flex; gap: 4px; }
.sb-avis__slider .nrv-google-reviews-stars .star::before { content: '\2605'; font-size: 28px; line-height: 1; color: #FFBD59; -webkit-text-stroke: 2px #000; }
.sb-avis__slider .nrv-google-reviews-stars .star.empty::before { color: transparent; }
.sb-avis__slider .sb-review__body { order: 2; flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding-bottom: 12px; border-bottom: 2px dashed #000; }
body .sb-avis__slider .google-reviews-by-nrv-review .content { margin: 0 !important; padding: 0; font-size: 17px; line-height: 1.55; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.sb-avis__slider .google-reviews-by-nrv-review.is-expanded .content { display: block; -webkit-line-clamp: unset; line-clamp: none; overflow: visible; }
.sb-avis__slider .google-reviews-by-nrv-review .content .lire { display: none; }
.sb-avis__slider .google-reviews-by-nrv-review .content .suite { display: inline; }
.sb-avis__slider .sb-review__more { visibility: hidden; margin-top: auto; padding: 0; border: 0; background: none; color: #000; font-weight: 700; font-size: 15px; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; cursor: pointer; }
.sb-avis__slider .google-reviews-by-nrv-review.has-more .sb-review__more, .sb-avis__slider .google-reviews-by-nrv-review.is-expanded .sb-review__more { visibility: visible; }
.sb-avis__slider .sb-review__more:hover { background: #FFBD59; }
.sb-avis__slider .sb-review__more:focus-visible { outline: 3px solid #273D93; outline-offset: 3px; }
.sb-avis__slider .google-reviews-by-nrv-review .author-name { order: 3; font-size: 15px; font-weight: 700; }
/* Flèches en bas à droite */
.sb-avis__slider .google-reviews-by-nrv-container { position: relative; }
.sb-avis__slider .google-reviews-by-nrv-container.slick-initialized { padding-bottom: 80px; }
.sb-avis__slider .slick-arrow { position: absolute; bottom: 0; top: auto; z-index: 2; width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; padding: 0; border: 3px solid #000; border-radius: 50%; background: #FDFBEE; color: #000; font-size: 0; line-height: 1; cursor: pointer; transform: none; transition: transform .15s, background-color .15s; }
.sb-avis__slider .slick-arrow::before { font-family: 'Barlow SB', 'Barlow', sans-serif; font-weight: 700; font-size: 26px; line-height: 1; color: #000; opacity: 1; }
.sb-avis__slider .slick-prev { right: 66px; left: auto; }
.sb-avis__slider .slick-prev::before { content: '\2190'; }
.sb-avis__slider .slick-next { right: 0; }
.sb-avis__slider .slick-next::before { content: '\2192'; }
.sb-avis__slider .slick-arrow:hover { background: #FFBD59; transform: translateY(-2px); }
.sb-avis__slider .slick-arrow:focus-visible { outline: 3px solid #273D93; outline-offset: 3px; }
.sb-avis__slider .slick-arrow.slick-disabled { opacity: .35; cursor: default; transform: none; background: #FDFBEE; }
/* Boutons Voir / Laisser un avis */
.sb-avis__slider .google-reviews-by-nrv-buttons-container { position: relative; z-index: 3; display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; } /* au-dessus du conteneur Slick (positionné) qui recouvrait les boutons */
.sb-avis__slider .google-reviews-by-nrv-container.slick-initialized + .google-reviews-by-nrv-buttons-container { margin-top: -56px; max-width: calc(100% - 140px); }
.sb-avis__slider .google-reviews-by-nrv-button { display: inline-flex; align-items: center; min-height: 52px; padding: 14px 28px; border: 3px solid #000; border-radius: 999px; background: transparent; color: #000; font-weight: 700; font-size: 17px; line-height: 1.1; text-decoration: none; transition: transform .15s, background-color .15s; }
.sb-avis__slider .google-reviews-by-nrv-all-reviews:hover { background: #FFBD59; color: #000; transform: translateY(-2px); }
.sb-avis__slider .google-reviews-by-nrv-let-review { background: #FFBD59; }
.sb-avis__slider .google-reviews-by-nrv-let-review:hover { background: #FFBD59; color: #000; transform: translateY(-2px); }
.sb-avis__slider .google-reviews-by-nrv-button:focus-visible { outline: 3px solid #273D93; outline-offset: 3px; }
@media (max-width: 767px) {
	.sb-avis__slider .google-reviews-by-nrv-container.slick-initialized + .google-reviews-by-nrv-buttons-container { margin-top: 24px; max-width: none; }
	body .sb-avis__slider .google-reviews-by-nrv-review .content { font-size: 16px; }
	/* Mobile : flèches et boutons centrés */
	.sb-avis__slider .slick-prev { right: auto; left: calc(50% - 61px); }
	.sb-avis__slider .slick-next { right: auto; left: calc(50% + 5px); }
	.sb-avis__slider .google-reviews-by-nrv-buttons-container { justify-content: center; }
	.sb-avis__slider .google-reviews-by-nrv-button { justify-content: center; text-align: center; }
}

/* ==========================================================
 * FORMULAIRE Contact Form 7 (.sb-cf7)
 * ========================================================== */
.sb-cf7 .sb-form { display: flex; flex-direction: column; gap: 18px; }
.sb-cf7 .sb-form__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 18px; }
.sb-cf7 .sb-form__field { display: flex; flex-direction: column; gap: 6px; font-weight: 700; font-size: 16px; color: #000; }
.sb-cf7 .sb-form__opt { font-weight: 500; font-size: 14px; }
.sb-cf7 .wpcf7-form-control-wrap { display: block; }
.sb-cf7 .wpcf7-text, .sb-cf7 .wpcf7-email, .sb-cf7 .wpcf7-tel, .sb-cf7 .wpcf7-textarea { display: block; width: 100%; min-height: 52px; padding: 12px 16px; border: 2px solid #000; border-radius: 16px; background: #FDFBEE; color: #000; font-size: 17px; font-weight: 400; line-height: 1.4; box-shadow: none; }
.sb-cf7 .wpcf7-textarea { resize: vertical; }
.sb-cf7 .wpcf7-text:focus-visible, .sb-cf7 .wpcf7-email:focus-visible, .sb-cf7 .wpcf7-tel:focus-visible, .sb-cf7 .wpcf7-textarea:focus-visible { outline: 3px solid #273D93; outline-offset: 3px; }
.sb-cf7 .wpcf7-not-valid { border-color: #F25549; }
.sb-cf7 .wpcf7-not-valid-tip { display: flex; align-items: center; gap: 8px; margin-top: 6px; color: #000; font-size: 15px; font-weight: 500; }
.sb-cf7 .wpcf7-not-valid-tip::before { content: '!'; flex: none; padding: 0 8px; border: 2px solid #000; border-radius: 999px; background: #F25549; font-weight: 700; }
.sb-cf7 .sb-form__rgpd .wpcf7-list-item { margin: 0; }
.sb-cf7 .sb-form__rgpd label { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.45; font-weight: 500; cursor: pointer; }
.sb-cf7 .sb-form__rgpd input[type="checkbox"] { flex: none; width: 24px; height: 24px; margin: 0; accent-color: #000; }
.sb-cf7 .sb-form__rgpd a { color: #000; text-decoration: underline; }
.sb-cf7 .sb-form__submit { align-self: flex-start; min-height: 52px; padding: 14px 32px; border: 3px solid #000; border-radius: 999px; background: #000; color: #FFF6D7; font-weight: 700; font-size: 17px; line-height: 1; cursor: pointer; transition: transform .15s, background-color .15s, color .15s; }
.sb-cf7 .sb-form__submit:hover { background: #FFBD59; color: #000; transform: translateY(-2px); }
.sb-cf7 .sb-form__submit:focus-visible { outline: 3px solid #273D93; outline-offset: 3px; }
.sb-cf7 .wpcf7-spinner { align-self: center; }
.wpcf7 form.sb-cf7 .wpcf7-response-output { margin: 18px 0 0; padding: 20px 24px; border: 3px solid #000; border-radius: 24px; background: #FFF6D7; color: #000; font-size: 17px; line-height: 1.5; }
.wpcf7 form.sb-cf7.invalid .wpcf7-response-output, .wpcf7 form.sb-cf7.unaccepted .wpcf7-response-output, .wpcf7 form.sb-cf7.failed .wpcf7-response-output { border-color: #F25549; }

/* ==========================================================
 * FAQ [nrv-seo-faq] dans .sb-faq
 * ========================================================== */
.sb-faq .nrv-faq-container { padding: 0; }
.sb-faq .Faq_questions { display: flex; flex-direction: column; gap: 14px; }
.sb-faq .Faq_question { border: 3px solid #000; border-radius: 24px; background: #FFF6D7; overflow: hidden; transition: background-color .15s; }
.sb-faq .Faq_question[open] { background: #FFF6D7; } /* retour cliente : beige, plus de fond clair a l ouverture */
.sb-faq .Faq_question-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding: 16px 24px; cursor: pointer; list-style: none; }
.sb-faq .Faq_question-header:focus-visible { outline: 3px solid #273D93; outline-offset: -6px; border-radius: 20px; }
.sb-faq .Faq_question-titre { margin: 0; padding: 0; font-family: 'Barlow SB', 'Barlow', sans-serif; font-weight: 700; font-size: clamp(18px, 1.8vw, 20px); line-height: 1.3; color: #000; text-transform: none; }
.sb-faq .Faq_question-icone { position: relative; flex: none; width: 36px; height: 36px; border: 3px solid #000; border-radius: 50%; transform: none; transition: none; }
.sb-faq details[open] .Faq_question-icone { transform: none; }
.sb-faq .nrv-faq-icon-svg::before, .sb-faq details[open] .nrv-faq-icon-svg::before { width: 14px; height: 3px; background-color: #000; }
.sb-faq .nrv-faq-icon-svg::after { width: 3px; height: 14px; background-color: #000; }
.sb-faq details[open] .nrv-faq-icon-svg::after { opacity: 0; background-color: #000; }
.sb-faq .Faq_question-reponse { padding: 0 24px 22px; width: 100%; max-width: none; color: #000; font-size: 18px; line-height: 1.55; }
.sb-faq .Faq_question-reponse p { margin: 0; }
@media (max-width: 767px) { .sb-faq .Faq_question-reponse { font-size: 17px; } }

/* ==========================================================
 * ACTUALITÉS
 * ========================================================== */
/* Fil d'Ariane */
.sb-breadcrumb { font-size: 14px; font-weight: 500; }
.sb-breadcrumb__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sb-breadcrumb a { color: #000; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.sb-breadcrumb a:hover { background: #FFBD59; }
/* Intro + filtres */
.sb-actus-intro__lead { max-width: 52ch; font-size: clamp(17px, 1.6vw, 19px); line-height: 1.55; }
.sb-filters { display: flex; gap: 10px; overflow-x: auto; padding: 4px; scrollbar-width: none; }
.sb-filters::-webkit-scrollbar { display: none; }
.sb-filter { flex: none; display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 8px 22px; border: 3px solid #000; border-radius: 999px; background: transparent; color: #000; font-weight: 700; font-size: 16px; text-decoration: none; transition: background-color .15s; }
.sb-filter:hover { background: #FFBD59; color: #000; }
.sb-filter:focus-visible { outline: 3px solid #273D93; outline-offset: 3px; }
.sb-filter.is-active, .sb-filter.is-active:hover { background: #000; color: #FFF6D7; }
.sb-filter__dot { width: 12px; height: 12px; border-radius: 50%; border: 2px solid #000; }
.sb-filter.is-active .sb-filter__dot { border-color: #FFF6D7; }
/* État vide */
.sb-empty { margin-top: 40px; display: flex; flex-direction: column; align-items: center; gap: 20px; padding: clamp(32px, 5vw, 64px); border: 3px solid #000; border-radius: 32px; background: #FDFBEE; text-align: center; }
.sb-empty__sticker { width: 180px; transform: rotate(-3deg); }
.sb-empty__text { max-width: 40ch; font-size: 20px; line-height: 1.5; font-weight: 500; }
.sb-actus-list:has(.sb-empty) .sb-actus-grid { display: none; }

/* Carte article : pastille, coupe des textes, survol à la couleur de la catégorie */
.sb-card .oxy-shortcode { display: contents; }
.sb-cat-pill--md { padding: 4px 14px; font-size: 15px; }
.sb-card__media { position: relative; }
.sb-card__media .sb-cover { position: absolute; inset: 0; width: 100%; height: 100%; }
.sb-card__title, .sb-card__excerpt { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.sb-card__title { -webkit-line-clamp: 3; line-clamp: 3; }
.sb-card__excerpt { -webkit-line-clamp: 2; line-clamp: 2; }
.sb-card__excerpt p { margin: 0; display: inline; }
/* Survol unique jaune pour toutes les cartes (retour client) */
.sb-card:hover { background: #FFBD59; color: #000; }
.sb-card:hover .sb-cat-pill { background: #FDFBEE; color: #000; }

/* Archive : premier article "À la une" (page 1) — image contenue à une hauteur raisonnable */
.sb-actus-grid { margin-top: 40px; }
body:not(.paged) .sb-actus-grid > .sb-card:first-of-type { grid-column: 1 / -1; grid-row: 1; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); border-radius: 32px; }
body:not(.paged) .sb-actus-grid > .sb-card:first-of-type .sb-card__media { aspect-ratio: auto; height: auto; min-height: 300px; align-self: stretch; border-bottom: 0; border-right: 3px solid #000; }
body:not(.paged) .sb-actus-grid > .sb-card:first-of-type .sb-card__body { justify-content: center; gap: 14px; padding: clamp(24px, 3.5vw, 44px); }
body:not(.paged) .sb-actus-grid > .sb-card:first-of-type .sb-card__meta::after { content: '\00b7 \00C0 la une'; font-size: 14px; font-weight: 500; }
body:not(.paged) .sb-actus-grid > .sb-card:first-of-type .sb-card__title { font-weight: 900; font-size: clamp(26px, 3vw, 38px); line-height: 1.08; text-wrap: balance; -webkit-line-clamp: 4; line-clamp: 4; }
body:not(.paged) .sb-actus-grid > .sb-card:first-of-type .sb-card__excerpt { font-size: 18px; line-height: 1.55; max-width: 56ch; -webkit-line-clamp: 3; line-clamp: 3; }
body:not(.paged) .sb-actus-grid > .sb-card:first-of-type .sb-card__more { margin-top: 0; font-size: 17px; }
body:not(.paged) .sb-actus-grid:has(> .sb-card:nth-of-type(2))::before { content: 'Tous les articles'; grid-column: 1 / -1; grid-row: 2; margin-top: clamp(32px, 4vw, 56px); font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 900; font-size: clamp(28px, 3vw, 36px); line-height: 1.05; text-transform: uppercase; }
@media (max-width: 1023px) {
	body:not(.paged) .sb-actus-grid > .sb-card:first-of-type { grid-template-columns: minmax(0, 1fr); }
	body:not(.paged) .sb-actus-grid > .sb-card:first-of-type .sb-card__media { aspect-ratio: 16 / 9; min-height: 0; border-right: 0; border-bottom: 3px solid #000; }
}
/* Pagination Oxygen */
.sb-actus-grid .bde-posts-pagination { grid-column: 1 / -1; margin-top: 32px; }
.sb-actus-grid .bde-posts-pagination ul, .sb-actus-grid .bde-posts-pagination .nav-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; }
.sb-actus-grid .bde-posts-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 10px 18px; border: 3px solid #000; border-radius: 999px; background: transparent; color: #000; font-weight: 700; font-size: 17px; text-decoration: none; transition: background-color .15s; }
.sb-actus-grid .bde-posts-pagination a.page-numbers:hover { background: #FFBD59; }
.sb-actus-grid .bde-posts-pagination .page-numbers.current { background: #000; color: #FFF6D7; }
.sb-actus-grid .bde-posts-pagination .page-numbers.dots { border-style: dashed; }

/* Article : "À lire aussi" masqué s'il n'y a aucun article lié ; image d'en-tête contenue */
.sb-related:not(:has(.sb-card)) { display: none; }
.sb-article__figure .sb-cover { position: absolute; inset: 0; width: 100%; height: 100%; }

/* Article : corps (blocs Gutenberg) */
.sb-prose { display: flex; flex-direction: column; gap: 22px; min-width: 0; overflow-wrap: break-word; }
.sb-prose > * { margin: 0; min-width: 0; max-width: 100%; }
/* Les enfants d'une colonne flex ne rétrécissent pas sous leur contenu : sans min-width:0, le tableau (420 px) élargissait la page sur mobile */
.sb-article, .sb-article__body-wrap, .sb-article__head-inner, .sb-article__media-inner { min-width: 0; }
.sb-prose .wp-block-table { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sb-article__title, .sb-breadcrumb__item { overflow-wrap: break-word; hyphens: auto; }
.sb-prose .sb-lead { font-size: 20px; line-height: 1.55; font-weight: 500; }
.sb-prose a { color: #000; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; border-radius: 4px; }
.sb-prose a:hover { background: #FFBD59; }
.sb-prose h2 { margin-top: 26px; font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 800; font-size: clamp(28px, 3vw, 34px); line-height: 1.1; }
.sb-prose h3 { margin-top: 10px; font-family: 'Barlow SB', 'Barlow', sans-serif; font-weight: 700; font-size: clamp(20px, 2vw, 22px); line-height: 1.25; }
.sb-prose ul, .sb-prose ol { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.sb-prose ul > li { position: relative; padding-left: 22px; }
.sb-prose ul > li::before { content: ''; position: absolute; left: 0; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: #000; }
.sb-prose ol { counter-reset: sb-ol; }
.sb-prose ol > li { position: relative; padding-left: 32px; counter-increment: sb-ol; }
.sb-prose ol > li::before { content: counter(sb-ol) '.'; position: absolute; left: 0; font-family: 'Fraunces SB', serif; font-weight: 800; }
.sb-prose blockquote, .sb-prose .wp-block-quote { margin: 18px 0; padding: 6px 0 6px 24px; border-left: 4px solid #FFBD59; display: flex; flex-direction: column; gap: 10px; }
.sb-prose blockquote::before { content: '\201C'; display: block; height: 36px; font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 900; font-size: 72px; line-height: .6; }
.sb-prose blockquote p { margin: 0; font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 700; font-style: italic; font-size: clamp(22px, 2.4vw, 26px); line-height: 1.35; }
.sb-prose blockquote cite { font-style: normal; font-size: 15px; font-weight: 500; }
.sb-prose .wp-block-image { margin: 14px 0; display: flex; flex-direction: column; gap: 10px; }
.sb-prose .wp-block-image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border: 3px solid #000; border-radius: 24px; background: #FDFBEE; }
.sb-prose .wp-element-caption, .sb-prose figcaption { margin: 0; font-size: 14px; line-height: 1.4; font-weight: 500; text-align: left; }
.sb-prose .wp-block-table { overflow-x: auto; }
.sb-prose table { width: 100%; min-width: 420px; border-collapse: collapse; border: 2px solid #000; font-size: 17px; }
.sb-prose th, .sb-prose td { padding: 10px 16px; border: 2px solid #000; text-align: left; }
.sb-prose thead tr, .sb-prose thead th { background: #FDFBEE; font-weight: 700; }
.sb-prose td:last-child, .sb-prose th:last-child { text-align: right; }
.sb-prose td:last-child { font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 800; }
@media (max-width: 767px) { .sb-prose .sb-lead { font-size: 18px; } }

/* ==========================================================
 * NUMÉROS CACHÉS [NumeroCache class="stb-..."] — un style par emplacement
 * Structure : a.NumeroCache > span.phone-number-real (révélé au clic) + .phone-overlay (icône + libellé)
 * ========================================================== */
.NumeroCache[class*="stb-"] { gap: 0; font-family: 'Barlow SB', 'Barlow', sans-serif; font-weight: 700; line-height: 1.1; text-decoration: none; white-space: nowrap; }
.NumeroCache[class*="stb-"] .PhoneIcon { width: 16px; height: 16px; margin-right: 8px; }
.NumeroCache[class*="stb-"]:focus-visible { outline: 3px solid #273D93; outline-offset: 3px; }
/* Boutons pilule communs */
.stb-header-call.NumeroCache, .stb-header-call-mobile.NumeroCache, .stb-menu-call.NumeroCache, .stb-infos-btn.NumeroCache, .stb-contact-call.NumeroCache, .stb-article-call.NumeroCache { display: inline-flex !important; justify-content: center; align-items: center; min-height: 52px; padding: 14px 28px; border: 3px solid #000; border-radius: 999px; font-size: 17px; transition: transform .15s, background-color .15s, color .15s, border-color .15s; }
.stb-header-call.NumeroCache:hover, .stb-menu-call.NumeroCache:hover, .stb-infos-btn.NumeroCache:hover, .stb-contact-call.NumeroCache:hover, .stb-article-call.NumeroCache:hover { transform: translateY(-2px); }
/* Header desktop : noir, survol rouge */
.stb-header-call.NumeroCache { min-height: 48px; padding: 10px 26px; background: #000; color: #FFF6D7; }
.stb-header-call.NumeroCache:hover { background: #FFBD59; color: #000; }
/* Header mobile : noir compact */
.stb-header-call-mobile.NumeroCache { min-height: 48px; padding: 8px 18px; font-size: 16px; background: #000; color: #FFF6D7; }
.stb-header-call-mobile.NumeroCache .PhoneIcon { margin-right: 6px; }
/* Menu mobile : pleine largeur */
.sb-header__menu-foot .oxy-shortcode { width: 100%; }
.stb-menu-call.NumeroCache { display: flex !important; width: 100%; min-height: 56px; margin-top: 6px; background: #000; color: #FFF6D7; font-size: 18px; }
.stb-menu-call.NumeroCache:hover { background: #FFBD59; color: #000; }
/* Barre d'infos du hero : cellule noire, gros libellé Fraunces */
.sb-infobar > .oxy-shortcode { flex: 1 1 200px; display: flex; }
.stb-hero-call.NumeroCache { flex: 1; justify-content: flex-start; padding: 14px 24px; background: #000; color: #FFF6D7; font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 800; font-size: 21px; transition: background-color .15s, color .15s; }
.stb-hero-call.NumeroCache .PhoneIcon { width: 18px; height: 18px; margin-right: 10px; }
.stb-hero-call.NumeroCache:hover { background: #FFBD59; color: #000; }
.stb-hero-call.NumeroCache:focus-visible { outline-offset: -6px; }
/* Section "Nous trouver" : gros numéro souligné (fond noir) */
.stb-infos-call.NumeroCache { display: inline-flex !important; align-self: flex-start; padding: 0; background: none; color: #FFF5F5; font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 800; font-size: 26px; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.stb-infos-call.NumeroCache .PhoneIcon { width: 20px; height: 20px; margin-right: 10px; }
.stb-infos-call.NumeroCache:hover { color: #FFBD59; }
.sb-infos__block > .oxy-shortcode { display: flex; }
/* Boutons crème (fond noir) : section infos + CTA article */
.stb-infos-btn.NumeroCache, .stb-article-call.NumeroCache { background: #FFF6D7; border-color: #FFF6D7; color: #000; }
.stb-infos-btn.NumeroCache:hover, .stb-article-call.NumeroCache:hover { background: #FFBD59; border-color: #FFBD59; color: #000; }
.stb-infos-btn.NumeroCache:focus-visible, .stb-article-call.NumeroCache:focus-visible { outline-color: #FFF5F5; }
/* Section contact : bouton noir */
.stb-contact-call.NumeroCache { align-self: flex-start; background: #000; color: #FFF6D7; }
.stb-contact-call.NumeroCache:hover { background: #FFBD59; color: #000; }
/* Footer : lien souligné clair */
.stb-footer-call.NumeroCache { display: inline-flex !important; align-self: flex-start; padding: 0; background: none; color: #FFF5F5; font-size: 16px; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.stb-footer-call.NumeroCache:hover { color: #FFBD59; }
.sb-footer__col > .oxy-shortcode { display: flex; }

/* ==========================================================
 * GOOGLE MAP [googlemap-by-nrv] — section "Nous trouver" (.sb-map)
 * Carte : display-map="true"  |  Fiche + boutons : display-elements="true" (générés en JS)
 * ========================================================== */
/* Carte : remplit tout le cadre */
.sb-map__frame > .oxy-shortcode, .sb-map__frame #nrv-googlemap-by-nrv-shortcode-container, .sb-map__frame .map-container, .sb-map__frame #nrv-googlemap-by-nrv-map-element { position: absolute; inset: 0; width: 100%; height: 100%; }
.sb-map__frame #nrv-googlemap-by-nrv-location-btn { position: absolute; top: 14px; right: 14px; z-index: 3; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border: 3px solid #000; border-radius: 50%; background: #FFF6D7; cursor: pointer; }
.sb-map__frame #nrv-googlemap-by-nrv-location-btn svg { width: 60%; height: 60%; fill: #000; }
/* Fiche du lieu (bandeau crème sous la carte) */
.sb-map__card .oxy-shortcode, .sb-map__card #nrv-googlemap-by-nrv-shortcode-container, .sb-map__card .element-container, .sb-map__card #nrv-googlemap-by-nrv-element-list { width: 100%; }
.sb-map__card .nrv-googlemap-by-nrv-element-template-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; color: #000; font-family: 'Barlow SB', 'Barlow', sans-serif; }
.sb-map__card .nrv-googlemap-by-nrv-element-template-item .name { grid-column: 1; margin: 0; font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 900; font-size: 22px; line-height: 1.1; text-transform: uppercase; color: #000; }
.sb-map__card .nrv-googlemap-by-nrv-element-template-item .item-details { grid-column: 1; margin: 0; font-family: 'Barlow SB', 'Barlow', sans-serif; font-weight: 500; font-size: 15px; line-height: 1.35; color: #000; }
.sb-map__card .item-details .code-postal::before { content: ', '; }
.sb-map__card .item-details .ville::before { content: ' '; }
.sb-map__card .item-details .ville::after { content: ' \00b7 en face du B612'; }
.sb-map__card .actions { grid-column: 2; grid-row: 1 / span 2; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.sb-map__card .actions .ct-link-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 18px; border: 3px solid #000; border-radius: 999px; background: transparent; color: #000; font-family: 'Barlow SB', 'Barlow', sans-serif; font-weight: 700; font-size: 15px; line-height: 1; white-space: nowrap; cursor: pointer; transition: transform .15s, background-color .15s, color .15s; }
.sb-map__card .actions .ct-link-button:hover { background: #FFBD59; color: #000; transform: translateY(-2px); }
.sb-map__card .actions .ct-link-button:focus-visible { outline: 3px solid #273D93; outline-offset: 3px; }
.sb-map__card .actions .drive-me { background: #FFBD59; }
.sb-map__card .actions .google-me { display: inline-flex; text-decoration: none; }
.sb-map__card .actions .google-me .ct-link-button { background: #000; color: #FFF6D7; }
.sb-map__card .actions .google-me .ct-link-button:hover { background: #FFBD59; color: #000; }
.sb-map__card .loc-details { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 14px; font-weight: 700; }
.sb-map__card .loc-details:empty, .sb-map__card .loc-details:not(:has(span:not(:empty))) { display: none; }
.sb-map__card .divider-wrap { display: none; }
@media (max-width: 1119px) {
	.sb-map__card .nrv-googlemap-by-nrv-element-template-item { grid-template-columns: minmax(0, 1fr); }
	.sb-map__card .actions { grid-column: 1; grid-row: auto; justify-content: flex-start; margin-top: 10px; }
}

/* ==========================================================
 * PAGES LÉGALES (module NRV Codes so-legal) dans .sb-legal
 * Mentions légales #MLSectMentions · Politique de confidentialité #PCSectPolitique
 * ========================================================== */
.sb-legal .ct-section-inner-wrap { display: flex; flex-direction: column; gap: 16px; max-width: none; padding: 0; min-width: 0; }
.sb-legal .ct-section { padding: 0; }
.sb-legal h1 { margin: 0 0 8px; font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 900; font-size: clamp(36px, 4.8vw, 56px); line-height: 1.05; text-transform: uppercase; text-wrap: balance; overflow-wrap: break-word; color: #000; }
.sb-legal h2, .sb-legal #PCSectPolitique h2:not(:first-child), .sb-legal #MLSectMentions h2:not(:first-child) { margin: 24px 0 0; font-family: 'Fraunces SB', serif; font-variation-settings: 'SOFT' 100, 'WONK' 0; font-weight: 800; font-size: clamp(24px, 2.6vw, 30px); line-height: 1.15; color: #000; }
.sb-legal h3, .sb-legal #PCSectPolitique h3:not(:first-child) { margin: 10px 0 0; font-family: 'Barlow SB', 'Barlow', sans-serif; font-weight: 700; font-size: 19px; line-height: 1.3; color: #000; }
.sb-legal p, .sb-legal li { font-size: 17px; line-height: 1.6; color: #000; overflow-wrap: break-word; }
.sb-legal ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sb-legal ul > li { position: relative; padding-left: 22px; }
.sb-legal ul > li::before { content: ''; position: absolute; left: 0; top: .65em; width: 8px; height: 8px; border-radius: 50%; background: #000; }
.sb-legal a:not(.Bouton) { color: #000; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.sb-legal a:not(.Bouton):hover { background: #FFBD59; }
.sb-legal .Bouton, .sb-legal #PCSectPolitique .Bouton:first-child, .sb-legal #MLSectMentions .Bouton:first-child, .sb-legal #PCSectPolitique .Bouton:last-child, .sb-legal #MLSectMentions .Bouton:last-child { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; min-height: 48px; margin: 0; padding: 10px 24px; border: 3px solid #000; border-radius: 999px; background: transparent; color: #000; font-weight: 700; font-size: 16px; text-decoration: none; transition: background-color .15s, transform .15s; }
.sb-legal .Bouton::before { content: '\2190'; }
.sb-legal .Bouton:hover { background: #FFBD59; transform: translateY(-2px); }
.sb-legal .Bouton:focus-visible { outline: 3px solid #273D93; outline-offset: 3px; }
.sb-legal .Bouton:last-child { margin-top: 24px; }
.sb-legal table, .sb-legal #PCSectPolitique table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; border: 2px solid #000; font-size: 16px; }
.sb-legal th, .sb-legal td, .sb-legal #PCSectPolitique table th, .sb-legal #PCSectPolitique table td { min-width: 200px; padding: 10px 14px; border: 2px solid #000; text-align: left; vertical-align: top; }
.sb-legal thead th, .sb-legal tr:first-child th { background: #FDFBEE; font-weight: 700; }

/* ==========================================================
 * PAGE 404 — contour du grand "404" (propriété non gérée par l'import Oxygen)
 * ========================================================== */
.sb-404 .sb-404__code { -webkit-text-stroke: 4px #000; paint-order: stroke fill; }
@media (max-width: 767px) { .sb-404 .sb-404__code { -webkit-text-stroke-width: 3px; } }
