/* L'Attrape-Rêves — widgets sur mesure. Palette via les variables globales Elementor (avec repli). */
.lr-ticker, .lr-wall, .lr-rail, .lr-tour, .lr-says {
	--lr-brand: var(--brand, #a4160b); --lr-text: var(--text, #111010); --lr-muted: var(--muted, #8c9093);
	--lr-line: var(--line, #e7e0de); --lr-paper: var(--paper, #fff); --lr-ink: var(--ink, #141212);
	font-family: Lato, 'Helvetica Neue', Arial, sans-serif;
}
.lr-ticker img, .lr-wall img { display: block; max-width: none; }

/* --- Bande de marques défilante (logos passés en blanc) --- */
.lr-ticker { overflow: hidden; white-space: nowrap; width: 100%; }
.lr-ticker__track { display: flex; align-items: center; width: max-content; animation: lr-ticker 70s linear infinite; will-change: transform; }
.lr-ticker img { height: 40px; width: 80px; object-fit: contain; flex: 0 0 auto; margin-right: 46px; filter: brightness(0) invert(1); opacity: .74; transition: opacity .3s ease; }
.lr-ticker:hover img { opacity: .95; }
@keyframes lr-ticker { to { transform: translateX(-50%); } }
@media (max-width: 767px) { .lr-ticker img { height: 30px; width: 64px; margin-right: 32px; } .lr-ticker__track { animation-duration: 55s; } }

/* --- Mur de logos --- */
.lr-wall { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; background: var(--lr-line); border: 1px solid var(--lr-line); }
.lr-wall span { background: var(--lr-paper); display: flex; align-items: center; justify-content: center; height: 124px; }
.lr-wall img { height: 36px; width: auto; max-width: 68%; object-fit: contain; filter: grayscale(1); opacity: .74; transition: opacity .3s ease, filter .3s ease; }
.lr-wall span:hover img { filter: none; opacity: 1; }
@media (max-width: 1024px) { .lr-wall { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 767px) { .lr-wall { grid-template-columns: repeat(3, 1fr); } .lr-wall span { height: 84px; } .lr-wall img { height: 28px; } }

/* --- Cercles flèches --- */
.lr-rail .lr-circle, .lr-says .lr-circle { all: unset; box-sizing: border-box; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(17, 16, 16, .22); background: #fff; box-shadow: 0 2px 10px rgba(17, 16, 16, .08); color: var(--lr-brand); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background-color .25s ease, color .25s ease, border-color .25s ease; }
.lr-rail .lr-circle:hover, .lr-says .lr-circle:hover { background: var(--lr-brand); color: #fff; border-color: var(--lr-brand); }
.lr-rail .lr-circle:focus:not(:hover), .lr-says .lr-circle:focus:not(:hover) { background: #fff; color: var(--lr-brand); border-color: rgba(17, 16, 16, .22); }
.lr-rail .lr-circle:focus-visible, .lr-says .lr-circle:focus-visible { outline: 1px solid currentColor; outline-offset: 3px; }
.lr-rail .lr-circle:disabled, .lr-says .lr-circle:disabled { opacity: .35; pointer-events: none; }

/* --- Rangée de cartes --- */
.lr-rail { position: relative; }
.lr-rail__bar { position: relative; z-index: 2; display: flex; justify-content: flex-end; gap: 10px; max-width: 1440px; margin: -22px auto 30px; padding: 0 60px; }
.lr-rail__list { display: flex; gap: 18px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity; scrollbar-width: none; overscroll-behavior-x: contain; padding-left: max(60px, calc((100% - 1320px) / 2)); padding-right: 60px; scroll-padding-left: max(60px, calc((100% - 1320px) / 2)); cursor: grab; }
.lr-rail__list::-webkit-scrollbar { display: none; }
.lr-rail__list.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.lr-card { flex: 0 0 258px; scroll-snap-align: start; }
.lr-card__img { height: 344px; overflow: hidden; background: var(--lr-paper); }
.lr-card__img picture { display: block; width: 100%; height: 100%; }
.lr-card__img img { width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; transition: transform .7s cubic-bezier(.22,.61,.36,1); pointer-events: none; }
.lr-card:hover .lr-card__img img { transform: scale(1.05); }
.lr-card__link, .lr-card__link:hover, .lr-card__link:focus { display: block; color: inherit; text-decoration: none; }
.lr-card__link:focus-visible { outline: 1px solid var(--lr-brand); outline-offset: 4px; }
.lr-card__name { margin: 16px 0 0; font-size: 15px; color: var(--lr-text); transition: color .25s ease; }
.lr-card__go { display: inline-block; margin-left: 8px; color: var(--lr-brand); opacity: 0; transform: translate(-4px, 4px); transition: opacity .25s ease, transform .25s ease; }
.lr-card__link:hover .lr-card__name, .lr-card__link:focus-visible .lr-card__name { color: var(--lr-brand); }
.lr-card__link:hover .lr-card__go, .lr-card__link:focus-visible .lr-card__go { opacity: 1; transform: none; }
.lr-card__note { margin: 6px 0 0; font-size: 13px; line-height: 1.6; color: var(--lr-muted); }
.lr-follower { position: absolute; z-index: 5; left: 0; top: 0; transform: translate(-50%, -50%); padding: 13px 26px; border-radius: 999px; background: var(--lr-brand); color: #fff; font-size: 13px; white-space: nowrap; box-shadow: 0 10px 30px rgba(0,0,0,.14); opacity: 0; transition: opacity .25s ease; pointer-events: none; }
.lr-follower.is-on { opacity: 1; }
@media (max-width: 1024px) { .lr-rail__bar { padding: 0 40px; } .lr-rail__list { padding-left: 40px; padding-right: 40px; scroll-padding-left: 40px; } }
@media (max-width: 767px) {
	.lr-rail__bar { padding: 0 20px; } .lr-rail__list { padding-left: 20px; padding-right: 20px; scroll-padding-left: 20px; gap: 14px; }
	.lr-card { flex-basis: 232px; } .lr-card__img { height: 300px; } .lr-follower { display: none; }
}

/* --- Visite virtuelle : photo animée + bouton, visite dans une fenêtre modale --- */
.lr-tour__frame { position: relative; height: 520px; overflow: hidden; background: #2b2927; }
/* le bouton-photo neutralise les styles de bouton du thème (fond / couleur au survol et au focus) */
.lr-tour .lr-tour__poster, .lr-tour .lr-tour__poster:hover, .lr-tour .lr-tour__poster:focus {
	all: unset; box-sizing: border-box; display: block; position: relative; width: 100%; height: 100%; cursor: pointer; overflow: hidden;
}
.lr-tour .lr-tour__poster:focus-visible { outline: 1px solid #fff; outline-offset: -8px; }
.lr-tour__photo { position: absolute; inset: 0; opacity: 0; filter: brightness(.66) saturate(.9); transition: opacity .4s ease, transform .8s cubic-bezier(.22,.61,.36,1), filter .4s ease; }
.lr-tour__photo.is-active { opacity: 1; }
.lr-tour__photo picture, .lr-tour__photo img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.lr-tour__poster:hover .lr-tour__photo, .lr-tour__poster:focus-visible .lr-tour__photo { transform: scale(1.03); filter: brightness(.74) saturate(.95); }
.lr-tour__label { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: inline-flex; align-items: center; height: 48px; padding: 0 28px; border-radius: 999px; background: var(--on-dark, #f7f4f3); color: var(--lr-ink); font-size: 14px; white-space: nowrap; transition: background-color .25s ease, color .25s ease; }
.lr-tour__poster:hover .lr-tour__label, .lr-tour__poster:focus-visible .lr-tour__label { background: var(--lr-brand); color: #fff; }

.lr-tour__chips { display: flex; gap: 10px; margin-top: 22px; flex-wrap: wrap; }
.lr-tour .lr-tour__chips button { all: unset; box-sizing: border-box; display: inline-flex; align-items: center; height: 42px; padding: 0 22px; border-radius: 999px; border: 1px solid var(--lr-line); background: transparent; color: var(--lr-text); font: 400 14px/1 Lato, 'Helvetica Neue', Arial, sans-serif; cursor: pointer; transition: background-color .25s ease, color .25s ease, border-color .25s ease; }
.lr-tour .lr-tour__chips button:hover { background: transparent; color: var(--lr-brand); border-color: var(--lr-brand); }
.lr-tour .lr-tour__chips button:focus:not(:hover):not(.is-active) { background: transparent; color: var(--lr-text); border-color: var(--lr-line); }
.lr-tour .lr-tour__chips button.is-active, .lr-tour .lr-tour__chips button.is-active:hover, .lr-tour .lr-tour__chips button.is-active:focus { background: var(--lr-brand); color: #fff; border-color: var(--lr-brand); }
.lr-tour .lr-tour__chips button:focus-visible { outline: 1px solid currentColor; outline-offset: 3px; }
.lr-tour__note { margin: 18px 0 0; font-size: 13px; color: var(--lr-muted); }

.lr-tour__dialog { width: min(1120px, 94vw); height: min(720px, 82vh); max-width: none; max-height: none; margin: auto; padding: 0; box-sizing: border-box; border: 0; background: #0d0c0c; overflow: visible; box-shadow: 0 40px 90px -24px rgba(0, 0, 0, .65); }
.lr-tour__dialog:not([open]) { display: none; }
.lr-tour__dialog::backdrop { background: rgba(13, 12, 12, .82); backdrop-filter: blur(4px); }
.lr-tour__dialog iframe { width: 100%; height: 100%; border: 0; display: block; }
.lr-tour .lr-tour__close, .lr-tour .lr-tour__close:focus { all: unset; box-sizing: border-box; position: absolute; top: -22px; right: -22px; z-index: 2; width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; background: #fff; border: 0; color: var(--lr-ink, #141212); box-shadow: 0 8px 22px rgba(0, 0, 0, .38); transition: background-color .25s ease, color .25s ease; }
.lr-tour .lr-tour__close:hover { background: var(--lr-brand); color: #fff; }
.lr-tour .lr-tour__close:focus-visible { outline: 1px solid #fff; outline-offset: 3px; }
html:has(.lr-tour__dialog[open]) { overflow: hidden; }
@media (max-width: 1024px) { .lr-tour__frame { height: 300px; } }
@media (max-width: 767px) {
	.lr-tour__frame { height: 240px; }
	.lr-tour__label { height: 40px; padding: 0 20px; font-size: 13px; }
	.lr-tour__chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: -20px; padding: 3px 20px; }
	.lr-tour .lr-tour__chips button { flex: 0 0 auto; }
	.lr-tour__dialog { width: calc(100vw - 40px); height: 70vh; }
	.lr-tour .lr-tour__close, .lr-tour .lr-tour__close:focus { top: -18px; right: -10px; }
}

/* --- Avis --- */
.lr-says { display: grid; grid-template-columns: 300px 1fr; gap: 40px; align-items: start; }
.lr-dot { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; color: var(--lr-text); }
.lr-dot::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--lr-brand); }
.lr-says__score { margin-top: 26px; }
.lr-says__score strong { display: block; font-size: 46px; font-weight: 300; line-height: 1; letter-spacing: -.03em; color: var(--lr-text); }
.lr-says__score strong::after { content: " / 5"; font-size: 20px; font-weight: 300; letter-spacing: 0; color: var(--lr-muted); }
.lr-says__stars { display: block; margin-top: 10px; font-size: 14px; letter-spacing: 3px; color: #fbbc04; }
.lr-says__src { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 13px; color: var(--lr-muted); }
.lr-says__src::before { content: ""; flex: 0 0 16px; height: 16px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23EA4335' d='M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z'/%3E%3Cpath fill='%234285F4' d='M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z'/%3E%3Cpath fill='%23FBBC05' d='M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z'/%3E%3Cpath fill='%2334A853' d='M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z'/%3E%3C/svg%3E") center / contain no-repeat; }
.lr-says__item { animation: lr-fade .35s ease; }
.lr-says__item[hidden] { display: block; visibility: hidden; } /* masqué mais gardé dans la grille : la hauteur suit l'avis le plus long */
@keyframes lr-fade { from { opacity: 0; } to { opacity: 1; } }
.lr-says__quote { margin: 0; font-size: 31px; font-weight: 300; line-height: 1.5; letter-spacing: -.018em; max-width: 960px; color: var(--lr-text); }
.lr-says__mark { font-size: 52px; line-height: 0; vertical-align: -8px; padding-right: 46px; }
.lr-says__person { display: flex; align-items: center; gap: 13px; margin-top: 50px; }
.lr-says__badge { width: 44px; height: 44px; border-radius: 50%; background: var(--lr-paper); border: 1px solid var(--lr-line); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; overflow: hidden; }
.lr-says__badge img { width: 24px; height: auto; transform: translate(1%, -9%); }
.lr-says__person strong { display: block; font-size: 15px; font-weight: 400; color: var(--lr-text); }
.lr-says__person small { font-size: 13px; color: var(--lr-muted); }
.lr-says__main { position: relative; display: grid; }
.lr-says__main > .lr-says__item { grid-area: 1 / 1; }
.lr-says__nav { display: flex; gap: 10px; position: absolute; right: 0; bottom: 0; }
@media (max-width: 1024px) { .lr-says { grid-template-columns: 1fr; gap: 28px; } .lr-says__quote { font-size: 26px; } .lr-says__main { padding-bottom: 64px; } }
@media (max-width: 767px) { .lr-says__quote { font-size: 21px; line-height: 1.5; } .lr-says__mark { font-size: 40px; padding-right: 24px; } .lr-says__person { margin-top: 32px; } }

@media (prefers-reduced-motion: reduce) { .lr-ticker__track { animation: none; } .lr-says__item { animation: none; } }

/* Visite virtuelle : icône discrète dans le bouton, repère de localisation devant chaque magasin. */
.lr-tour__label::before, .lr-tour .lr-tour__chips button::before { content: ""; flex: 0 0 auto; background: currentColor; -webkit-mask: var(--lr-ico) center / contain no-repeat; mask: var(--lr-ico) center / contain no-repeat; }
.lr-tour__label::before { --lr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); width: 18px; height: 18px; margin-right: 10px; opacity: .75; }
.lr-tour .lr-tour__chips button::before { --lr-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.4'/%3E%3C/svg%3E"); width: 14px; height: 14px; margin-right: 8px; opacity: .7; }

/* Pastille « Voir … » : elle fait office de curseur sur les cartes (écrans avec souris), le curseur système est masqué. */
@media (hover: hover) and (min-width: 1025px) { .lr-rail .lr-card, .lr-rail .lr-card__link, .lr-rail .lr-card * { cursor: none; } }
