/* ==========================================================================
   OZ Immobilier — feuille de style
   Couleurs reprises du logo : bleu ardoise + or olive, sur fond sable.
   ========================================================================== */

:root {
	--oz-navy: #10293c;
	--oz-navy-2: #183a52;
	--oz-blue: #3a7fa3;
	--oz-blue-dark: #2b6587;
	--oz-gold: #a8932c;
	--oz-gold-dark: #8c7a21;
	--oz-sand: #f7f3ec;
	--oz-sand-2: #efe7d9;
	--oz-ink: #18232e;
	--oz-muted: #5b6875;
	--oz-line: #e5ddcf;
	--oz-white: #fff;
	--oz-wa: #1fa855;
	--oz-radius: 18px;
	--oz-radius-sm: 12px;
	--oz-shadow: 0 1px 2px rgba(16, 41, 60, .06), 0 8px 28px rgba(16, 41, 60, .08);
	--oz-shadow-lg: 0 24px 60px rgba(16, 41, 60, .18);
	--oz-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--oz-sans: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--oz-wrap: 1240px;
	--oz-header-h: 84px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--oz-white);
	color: var(--oz-ink);
	font-family: var(--oz-sans);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, video, iframe { max-width: 100%; display: block; }
img { height: auto; }
a { color: var(--oz-blue-dark); text-decoration: none; }
a:hover { color: var(--oz-navy); }
h1, h2, h3, h4 { font-family: var(--oz-serif); font-weight: 600; line-height: 1.12; color: var(--oz-navy); margin: 0 0 .5em; letter-spacing: -.01em; }
h1 { font-size: clamp(2.3rem, 4.6vw, 3.9rem); }
h2 { font-size: clamp(1.9rem, 3.4vw, 2.85rem); }
h3 { font-size: 1.45rem; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--oz-blue); outline-offset: 3px; }

.oz-wrap { width: 100%; max-width: var(--oz-wrap); margin-inline: auto; padding-inline: 24px; }
.oz-wrap--narrow { max-width: 820px; }
.oz-center { text-align: center; }
.oz-sr, .oz-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.oz-skip { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: var(--oz-navy); color: #fff; padding: 10px 16px; border-radius: 8px; }
.oz-skip:focus { left: 8px; }
.oz-icon { flex: none; width: 1.15em; height: 1.15em; }

/* Boutons ---------------------------------------------------------------- */
.oz-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	padding: .85em 1.45em; border-radius: 999px; border: 1.5px solid transparent;
	font-weight: 600; font-size: .95rem; line-height: 1.2; cursor: pointer; white-space: nowrap;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.oz-btn:hover { transform: translateY(-1px); }
.oz-btn--primary { background: var(--oz-navy); color: #fff; }
.oz-btn--primary:hover { background: var(--oz-blue-dark); color: #fff; }
.oz-btn--gold { background: var(--oz-gold); color: #fff; }
.oz-btn--gold:hover { background: var(--oz-gold-dark); color: #fff; }
.oz-btn--ghost { border-color: var(--oz-line); color: var(--oz-navy); background: #fff; }
.oz-btn--ghost:hover { border-color: var(--oz-navy); color: var(--oz-navy); }
.oz-btn--light { background: #fff; color: var(--oz-navy); }
.oz-btn--light:hover { background: var(--oz-sand); color: var(--oz-navy); }
.oz-btn--wa { background: var(--oz-wa); color: #fff; }
.oz-btn--wa:hover { background: #178c46; color: #fff; }
.oz-btn--lg { padding: 1.05em 1.75em; font-size: 1rem; }
.oz-btn--block { width: 100%; }
.oz-link { display: inline-flex; align-items: center; gap: .45em; font-weight: 600; color: var(--oz-blue-dark); }
.oz-link .oz-icon { transition: transform .2s; }
a:hover .oz-link .oz-icon, .oz-link:hover .oz-icon { transform: translateX(4px); }

.oz-kicker { font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--oz-gold); margin-bottom: .9em; }
.oz-kicker--light { color: #e5d48a; }

.oz-badge { display: inline-flex; align-items: center; padding: .32em .8em; border-radius: 999px; background: var(--oz-navy); color: #fff; font-size: .74rem; font-weight: 700; letter-spacing: .03em; }
.oz-badge--gold { background: var(--oz-gold); }
.oz-badge--soft { background: var(--oz-sand-2); color: var(--oz-navy); }

/* Barre du haut + en-tête -------------------------------------------------- */

/* Fond uni : un backdrop-filter ferait de l'en-tête le repère du menu mobile (position: fixed). */
.oz-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid transparent; transition: box-shadow .25s, border-color .25s; }
.admin-bar .oz-header { top: 32px; }
.oz-header.is-scrolled { box-shadow: 0 6px 24px rgba(16, 41, 60, .08); border-color: var(--oz-line); }
.oz-header { transition: box-shadow .25s, border-color .25s, transform .45s cubic-bezier(.2, .7, .2, 1); view-transition-name: oz-header; }
.oz-header.is-hidden { transform: translateY(-110%); }
.oz-logo img { transition: height .35s ease; }
.oz-header.is-scrolled .oz-logo img { height: 48px; }
.oz-header__inner { display: flex; align-items: center; gap: 28px; min-height: var(--oz-header-h); }
.oz-logo { display: block; flex: none; }
.oz-logo img { height: 58px; width: auto; }
.oz-logo--light img { filter: brightness(0) invert(1); opacity: .95; height: 64px; }

.oz-nav { margin-left: auto; }
.oz-menu { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.oz-menu > li { position: relative; }
.oz-menu a { display: block; padding: 10px 13px; border-radius: 10px; color: var(--oz-navy); font-weight: 600; font-size: .9rem; letter-spacing: .01em; }
.oz-menu a:hover, .oz-menu .current-menu-item > a { color: var(--oz-blue-dark); background: var(--oz-sand); }
.oz-menu .sub-menu { position: absolute; top: 100%; left: 0; min-width: 230px; list-style: none; margin: 0; padding: 8px; background: #fff; border: 1px solid var(--oz-line); border-radius: 14px; box-shadow: var(--oz-shadow); opacity: 0; visibility: hidden; transform: translateY(6px); transition: .2s; }
.oz-menu li:hover > .sub-menu, .oz-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.oz-menu .sub-menu a { font-weight: 500; }
.oz-nav__mobile-extra { display: none; }
.oz-header__actions { display: flex; align-items: center; gap: 10px; }
.oz-burger { display: none; width: 46px; height: 46px; border-radius: 12px; border: 1px solid var(--oz-line); background: #fff; align-items: center; justify-content: center; cursor: pointer; color: var(--oz-navy); }
.oz-burger .oz-icon { width: 22px; height: 22px; }
.oz-burger__close { display: none; }

/* Hero ------------------------------------------------------------------- */
.oz-hero { position: relative; min-height: min(86vh, 820px); display: flex; align-items: flex-end; color: #fff; overflow: hidden; background: var(--oz-navy); isolation: isolate; }
.oz-hero__slides { position: absolute; inset: 0; z-index: -2; }
.oz-hero__slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.06); transition: opacity 1.4s ease, transform 7s ease-out; }
.oz-hero__slide.is-active { opacity: 1; transform: scale(1); }
.oz-hero__shade { position: absolute; inset: 0; z-index: -1; background:
	linear-gradient(90deg, rgba(9, 25, 38, .82) 0%, rgba(9, 25, 38, .5) 45%, rgba(9, 25, 38, .12) 80%),
	linear-gradient(0deg, rgba(9, 25, 38, .65) 0%, rgba(9, 25, 38, 0) 45%); }
.oz-hero__content { padding-top: 120px; padding-bottom: 64px; }
.oz-hero__title { color: #fff; max-width: 16ch; font-size: clamp(2.7rem, 6vw, 5rem); margin-bottom: .3em; }
.oz-hero__text { max-width: 560px; font-size: 1.1rem; color: rgba(255, 255, 255, .88); margin-bottom: 30px; }
.oz-hero__controls { position: absolute; right: 100px; bottom: 30px; display: flex; align-items: center; gap: 10px; font-size: .82rem; font-weight: 600; color: rgba(255, 255, 255, .85); }
.oz-hero__nav { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .45); background: rgba(9, 25, 38, .25); color: #fff; display: grid; place-items: center; cursor: pointer; backdrop-filter: blur(6px); transition: background .2s; }
.oz-hero__nav:hover { background: rgba(255, 255, 255, .2); }
.oz-hero__counter { min-width: 56px; text-align: center; font-variant-numeric: tabular-nums; }

/* Recherche -------------------------------------------------------------- */
.oz-search { max-width: 920px; }
.oz-search__tabs { display: inline-flex; gap: 4px; padding: 5px; border-radius: 999px; background: rgba(255, 255, 255, .14); backdrop-filter: blur(8px); margin-bottom: 12px; }
.oz-tab { position: relative; cursor: pointer; }
.oz-tab input { position: absolute; opacity: 0; pointer-events: none; }
.oz-tab span { display: block; padding: .55em 1.3em; border-radius: 999px; font-weight: 700; font-size: .9rem; color: #fff; transition: background .2s, color .2s; }
.oz-tab input:checked + span { background: #fff; color: var(--oz-navy); }
.oz-tab input:focus-visible + span { outline: 2px solid #fff; outline-offset: 2px; }
a.oz-tab:hover span { background: rgba(255, 255, 255, .16); }
.oz-search__fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 6px; padding: 8px; background: #fff; border-radius: 20px; box-shadow: var(--oz-shadow-lg); color: var(--oz-ink); }
.oz-search .oz-field { display: flex; flex-direction: column; padding: 8px 16px; border-radius: 14px; min-width: 0; transition: background .2s; }
.oz-search .oz-field:hover { background: var(--oz-sand); }
.oz-search .oz-field + .oz-field { border-left: 1px solid var(--oz-line); }
.oz-search .oz-field > span { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--oz-muted); }
.oz-search select { appearance: none; border: 0; background: transparent; padding: 2px 18px 2px 0; font-weight: 600; font-size: .98rem; color: var(--oz-navy); cursor: pointer; width: 100%; text-overflow: ellipsis;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310293c' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right center; background-size: 14px; }
.oz-search select:focus { outline: none; }
.oz-search__submit { border-radius: 14px; padding-inline: 1.6em; }
.oz-search--compact { max-width: none; margin-top: 26px; }
.oz-search--compact .oz-search__fields { grid-template-columns: repeat(5, minmax(0, 1fr)) auto; box-shadow: var(--oz-shadow); border: 1px solid var(--oz-line); }

/* Sections --------------------------------------------------------------- */
.oz-section { padding: 96px 0; }
.oz-section--tight { padding: 56px 0; }
.oz-section--sand { background: var(--oz-sand); }
.oz-section--navy { background: var(--oz-navy); color: rgba(255, 255, 255, .85); }
.oz-section--navy h2 { color: #fff; }
.oz-section__head { max-width: 680px; margin-bottom: 44px; }
.oz-section__head p:last-child { color: var(--oz-muted); margin: 0; }
.oz-section__head h2 { margin-bottom: .25em; }
.oz-section__head--row { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.oz-section__head--row h2 { margin: 0; }

/* Catégories (mosaïque) ---------------------------------------------------- */
.oz-cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 236px; gap: 18px; }
.oz-cat { position: relative; display: flex; align-items: flex-end; border-radius: var(--oz-radius); overflow: hidden; color: #fff; isolation: isolate; background: var(--oz-navy); }
.oz-cat:first-child { grid-row: span 2; }
.oz-cat__img { position: absolute; inset: 0; z-index: -2; }
.oz-cat__img img { width: 100%; height: 100%; object-fit: cover; transform: translate3d(0, var(--oz-py, 0px), 0) scale(var(--oz-scale, 1.12)); transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.oz-cat::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(9, 25, 38, .88) 0%, rgba(9, 25, 38, .35) 48%, rgba(9, 25, 38, 0) 75%); }
.oz-cat:hover { color: #fff; }
.oz-cat:hover .oz-cat__img img { --oz-scale: 1.2; }
.oz-cat__body { display: flex; flex-direction: column; gap: 4px; padding: 22px 64px 22px 22px; }
.oz-cat__body strong { font-family: var(--oz-serif); font-size: 1.7rem; font-weight: 600; line-height: 1.1; }
.oz-cat:first-child .oz-cat__body strong { font-size: 2.3rem; }
.oz-cat__body span { font-size: .86rem; line-height: 1.45; color: rgba(255, 255, 255, .82); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.oz-cat__arrow { position: absolute; right: 18px; bottom: 22px; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .16); backdrop-filter: blur(6px); transition: background .25s, transform .25s; }
.oz-cat:hover .oz-cat__arrow { background: var(--oz-gold); transform: translateX(3px); }

/* Cartes ----------------------------------------------------------------- */
.oz-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.oz-card { display: flex; flex-direction: column; background: #fff; border-radius: var(--oz-radius); overflow: hidden; border: 1px solid var(--oz-line); transition: box-shadow .3s, transform .3s; }
.oz-card:hover { box-shadow: var(--oz-shadow-lg); transform: translateY(-4px); }
.oz-card__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--oz-sand-2); }
.oz-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.oz-card:hover .oz-card__media img { transform: scale(1.05); }
.oz-card__placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: var(--oz-gold); }
.oz-card__placeholder .oz-icon { width: 48px; height: 48px; }
.oz-card__badges { position: absolute; top: 14px; left: 14px; display: flex; gap: 6px; flex-wrap: wrap; }
.oz-card__count { position: absolute; right: 14px; bottom: 14px; display: inline-flex; align-items: center; gap: 5px; padding: .3em .7em; border-radius: 999px; background: rgba(9, 25, 38, .72); color: #fff; font-size: .78rem; font-weight: 600; }
.oz-card__body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; }
.oz-card__meta { font-size: .8rem; font-weight: 600; letter-spacing: .04em; color: var(--oz-muted); margin-bottom: 6px; display: flex; gap: 6px; flex-wrap: wrap; }
.oz-card__title { font-size: 1.42rem; margin-bottom: 12px; }
.oz-card__title a { color: var(--oz-navy); }
.oz-card__title a::after { content: ""; position: absolute; inset: 0; }
.oz-card { position: relative; }
.oz-card__excerpt { color: var(--oz-muted); font-size: .93rem; margin: 0; }
.oz-card__price { margin: auto 0 0; padding-top: 14px; border-top: 1px solid var(--oz-line); font-weight: 700; font-size: 1.12rem; color: var(--oz-navy); }
.oz-card__price small { font-weight: 500; color: var(--oz-muted); }
.oz-facts { display: flex; flex-wrap: wrap; gap: 6px 18px; list-style: none; margin: 0 0 16px; padding: 0; font-size: .9rem; color: var(--oz-ink); }
.oz-facts li { display: inline-flex; align-items: center; gap: 6px; }
.oz-facts .oz-icon { color: var(--oz-blue); }

/* Bien à la une ---------------------------------------------------------- */
.oz-spotlights { display: grid; gap: 28px; }
.oz-spotlight { position: relative; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); background: #fff; border-radius: 24px; overflow: hidden; border: 1px solid var(--oz-line); box-shadow: var(--oz-shadow); }
.oz-spotlight__media { position: relative; display: block; min-height: 460px; overflow: hidden; background: var(--oz-navy); }
.oz-spotlight__media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: translate3d(0, var(--oz-py, 0px), 0) scale(var(--oz-scale, 1.1)); transition: transform .9s cubic-bezier(.2, .7, .2, 1); }
.oz-spotlight:hover .oz-spotlight__media > img { --oz-scale: 1.15; }
.oz-spotlight__thumbs { position: absolute; left: 18px; bottom: 18px; display: flex; gap: 8px; }
.oz-spotlight__thumbs img, .oz-spotlight__more { width: 66px; height: 66px; border-radius: 12px; object-fit: cover; border: 2px solid rgba(255, 255, 255, .9); box-shadow: 0 6px 16px rgba(0, 0, 0, .25); }
.oz-spotlight__more { display: grid; place-items: center; background: rgba(9, 25, 38, .75); color: #fff; font-weight: 700; backdrop-filter: blur(4px); }
.oz-spotlight__body { display: flex; flex-direction: column; padding: 40px 40px 36px; }
.oz-spotlight__title { font-size: clamp(1.8rem, 2.6vw, 2.4rem); margin-bottom: .3em; }
.oz-spotlight__title a { color: var(--oz-navy); }
.oz-spotlight__title a::after { content: ""; position: absolute; inset: 0; }
.oz-spotlight__excerpt { color: var(--oz-muted); }
.oz-spotlight__features { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 26px; padding: 0; }
.oz-spotlight__features li { display: inline-flex; align-items: center; gap: 6px; padding: .4em .85em; border-radius: 999px; background: var(--oz-sand); font-size: .85rem; font-weight: 600; color: var(--oz-navy); }
.oz-spotlight__features .oz-icon { color: var(--oz-gold); width: 1em; height: 1em; }
.oz-spotlight__foot { margin-top: auto; padding-top: 22px; border-top: 1px solid var(--oz-line); display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.oz-spotlight__foot .oz-property__price { font-size: 1.7rem; }
.oz-spotlight__foot .oz-btn { position: relative; z-index: 1; }
.oz-spotlight__count { display: none; }

/* Bandeau Estimation ----------------------------------------------------- */
.oz-band { position: relative; color: #fff; isolation: isolate; overflow: hidden; }
.oz-band__bg { position: absolute; inset: 0; z-index: -2; }
.oz-band__bg img { width: 100%; height: 100%; object-fit: cover; transform: translate3d(0, var(--oz-py, 0px), 0) scale(1.3); will-change: transform; }
.oz-band::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(16, 41, 60, .94) 0%, rgba(16, 41, 60, .8) 55%, rgba(16, 41, 60, .55) 100%); }
.oz-band__inner { display: grid; grid-template-columns: minmax(0, 1.4fr) auto; gap: 40px; align-items: center; padding-top: 88px; padding-bottom: 88px; }
.oz-band h2 { color: #fff; max-width: 20ch; }
.oz-band p { color: rgba(255, 255, 255, .85); max-width: 560px; margin: 0; }
.oz-band__actions { display: flex; flex-direction: column; gap: 12px; }

/* Services --------------------------------------------------------------- */
.oz-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.oz-service { display: flex; flex-direction: column; padding: 30px; border-radius: var(--oz-radius); border: 1px solid var(--oz-line); background: #fff; color: var(--oz-ink); transition: border-color .25s, box-shadow .25s, transform .25s; }
.oz-service:hover { border-color: transparent; box-shadow: var(--oz-shadow-lg); transform: translateY(-3px); color: var(--oz-ink); }
.oz-service__icon { width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center; background: var(--oz-sand); color: var(--oz-gold); margin-bottom: 20px; transition: background .25s, color .25s; }
.oz-service__icon .oz-icon { width: 26px; height: 26px; }
.oz-service:hover .oz-service__icon { background: var(--oz-navy); color: #fff; }
.oz-service h3 { margin-bottom: .35em; }
.oz-service p { color: var(--oz-muted); font-size: .95rem; flex: 1; }

/* À propos + vidéo ------------------------------------------------------- */
.oz-about { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.oz-video { position: relative; border-radius: var(--oz-radius); overflow: hidden; aspect-ratio: 16 / 9; background: #000; box-shadow: 0 30px 70px rgba(0, 0, 0, .35); }
.oz-video video { width: 100%; height: 100%; object-fit: cover; }
.oz-video__sound { position: absolute; left: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 8px; padding: .55em 1em; border-radius: 999px; border: 0; background: rgba(255, 255, 255, .92); color: var(--oz-navy); font-weight: 600; font-size: .85rem; cursor: pointer; }
.oz-video__sound.is-on { background: var(--oz-gold); color: #fff; }
.oz-about__text p { color: rgba(255, 255, 255, .8); }
.oz-checks { list-style: none; margin: 0 0 30px; padding: 0; display: grid; gap: 10px; }
.oz-checks li { display: flex; gap: 10px; align-items: flex-start; color: #fff; font-weight: 500; }
.oz-checks .oz-icon { color: #e5d48a; margin-top: 3px; }
.oz-agent { display: flex; align-items: center; gap: 16px; padding-top: 26px; border-top: 1px solid rgba(255, 255, 255, .14); flex-wrap: wrap; }
.oz-agent > div { display: flex; flex-direction: column; margin-right: auto; }
.oz-agent strong { color: #fff; font-size: 1.05rem; }
.oz-agent > div span { font-size: .86rem; color: rgba(255, 255, 255, .65); }
.oz-agent__photo, .oz-agent__initials { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex: none; }
.oz-agent__initials { display: grid; place-items: center; background: var(--oz-gold); color: #fff; font-family: var(--oz-serif); font-size: 1.6rem; font-weight: 700; }

/* Villes ----------------------------------------------------------------- */
.oz-cities { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.oz-cities--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.oz-cities--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.oz-cities--1 { grid-template-columns: 1fr; }
.oz-city { position: relative; display: block; aspect-ratio: 3 / 4; border-radius: var(--oz-radius); overflow: hidden; color: #fff; isolation: isolate; background: var(--oz-navy); }
.oz-city img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transform: translate3d(0, var(--oz-py, 0px), 0) scale(var(--oz-scale, 1.14)); transition: transform .9s cubic-bezier(.2, .7, .2, 1); }
.oz-city::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(9, 25, 38, .8) 0%, rgba(9, 25, 38, 0) 55%); }
.oz-city:hover img { --oz-scale: 1.22; }
.oz-city:hover { color: #fff; }
.oz-city__label { position: absolute; left: 22px; right: 22px; bottom: 20px; display: flex; flex-direction: column; }
.oz-city__label strong { font-family: var(--oz-serif); font-size: 2rem; font-weight: 600; line-height: 1.1; }
.oz-city__label span { display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; font-weight: 600; color: rgba(255, 255, 255, .85); }

/* Contact ---------------------------------------------------------------- */
.oz-contact { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 64px; align-items: start; }
.oz-contact__info > p { color: var(--oz-muted); }
.oz-contact__list { list-style: none; margin: 30px 0 0; padding: 0; display: grid; gap: 14px; }
.oz-contact__list li { display: flex; align-items: center; gap: 14px; font-weight: 600; color: var(--oz-navy); }
.oz-contact__list li > span { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--oz-sand); color: var(--oz-gold); flex: none; }
.oz-contact__list a { color: var(--oz-navy); }
.oz-contact__form { background: #fff; border: 1px solid var(--oz-line); border-radius: 24px; padding: 34px; box-shadow: var(--oz-shadow); }

/* Formulaires ------------------------------------------------------------ */
.oz-form { display: grid; gap: 16px; }
.oz-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.oz-form__row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.oz-form__row--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.oz-input { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.oz-input > span { font-size: .82rem; font-weight: 600; color: var(--oz-navy); }
.oz-input input, .oz-input select, .oz-input textarea {
	width: 100%; padding: .8em 1em; border: 1.5px solid var(--oz-line); border-radius: var(--oz-radius-sm); background: #fff; font-size: .97rem;
	transition: border-color .2s, box-shadow .2s;
}
.oz-input textarea { resize: vertical; min-height: 110px; }
.oz-input input:focus, .oz-input select:focus, .oz-input textarea:focus { outline: none; border-color: var(--oz-blue); box-shadow: 0 0 0 4px rgba(58, 127, 163, .14); }
.oz-chips { display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 0; margin: 0; }
.oz-chips legend { width: 100%; font-size: .82rem; font-weight: 600; color: var(--oz-navy); margin-bottom: 8px; padding: 0; }
.oz-chips label { position: relative; cursor: pointer; }
.oz-chips input { position: absolute; opacity: 0; pointer-events: none; }
.oz-chips span { display: block; padding: .5em 1.1em; border-radius: 999px; border: 1.5px solid var(--oz-line); font-weight: 600; font-size: .9rem; color: var(--oz-navy); transition: .2s; }
.oz-chips label:hover span { border-color: var(--oz-blue); }
.oz-chips input:checked + span { background: var(--oz-navy); border-color: var(--oz-navy); color: #fff; }
.oz-chips input:focus-visible + span { outline: 2px solid var(--oz-blue); outline-offset: 2px; }
.oz-check { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; color: var(--oz-muted); cursor: pointer; }
.oz-check input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--oz-navy); flex: none; }
.oz-form__legal, .oz-hint { font-size: .8rem; color: var(--oz-muted); margin: 0; }
.oz-notice { padding: 14px 18px; border-radius: 12px; font-weight: 600; font-size: .93rem; }
.oz-notice--ok { background: #e8f5ec; color: #1d6b3a; }
.oz-notice--error { background: #fdecec; color: #9b2c2c; }
.oz-btn[disabled] { opacity: .65; cursor: progress; transform: none; }

/* Dépôt d'un bien -------------------------------------------------------- */
.oz-depot-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: start; }
.oz-depot { gap: 24px; }
.oz-step { border: 1px solid var(--oz-line); border-radius: 22px; padding: 28px; margin: 0; display: grid; gap: 16px; background: #fff; }
.oz-step legend { display: flex; align-items: center; gap: 12px; padding: 0 10px; margin-left: -10px; font-family: var(--oz-serif); font-size: 1.6rem; font-weight: 600; color: var(--oz-navy); }
.oz-step__num { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--oz-gold); color: #fff; font-family: var(--oz-sans); font-size: .95rem; font-weight: 700; }
.oz-drop { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 38px 20px; border: 2px dashed #cfc4b0; border-radius: 18px; background: var(--oz-sand); text-align: center; cursor: pointer; transition: border-color .2s, background .2s; }
.oz-drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.oz-drop strong { font-size: 1.05rem; color: var(--oz-navy); }
.oz-drop span { font-size: .86rem; color: var(--oz-muted); }
.oz-drop__icon { width: 60px; height: 60px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--oz-gold); margin-bottom: 6px; box-shadow: var(--oz-shadow); }
.oz-drop__icon .oz-icon { width: 28px; height: 28px; }
.oz-drop.is-over { border-color: var(--oz-blue); background: #eef6fa; }
.oz-previews { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 10px; list-style: none; margin: 0; padding: 0; }
.oz-previews:empty { display: none; }
.oz-previews li { position: relative; aspect-ratio: 1; border-radius: 12px; overflow: hidden; background: var(--oz-sand-2); }
.oz-previews img { width: 100%; height: 100%; object-fit: cover; }
.oz-previews li:first-child::after { content: "Principale"; position: absolute; left: 6px; bottom: 6px; padding: 2px 8px; border-radius: 999px; background: var(--oz-navy); color: #fff; font-size: .7rem; font-weight: 700; }
.oz-previews button { position: absolute; top: 6px; right: 6px; width: 28px; height: 28px; border-radius: 50%; border: 0; background: rgba(9, 25, 38, .75); color: #fff; display: grid; place-items: center; cursor: pointer; }
.oz-previews button .oz-icon { width: 14px; height: 14px; }
.oz-previews .is-error { outline: 2px solid #d64545; }
.oz-depot-aside { position: sticky; top: calc(var(--oz-header-h) + 24px); display: grid; gap: 18px; }
.oz-panel { padding: 28px; border-radius: 22px; background: var(--oz-sand); }
.oz-panel h3 { margin-bottom: .6em; }
.oz-panel--navy { background: var(--oz-navy); color: rgba(255, 255, 255, .85); }
.oz-panel--navy > .oz-icon { width: 32px; height: 32px; color: #e5d48a; margin-bottom: 10px; }
.oz-steps-list { margin: 0; padding: 0; list-style: none; counter-reset: s; display: grid; gap: 14px; }
.oz-steps-list li { counter-increment: s; position: relative; padding-left: 44px; color: var(--oz-muted); font-size: .94rem; }
.oz-steps-list li::before { content: counter(s); position: absolute; left: 0; top: 0; width: 30px; height: 30px; border-radius: 50%; background: #fff; color: var(--oz-gold); font-weight: 700; display: grid; place-items: center; }
.oz-steps-list strong { color: var(--oz-navy); }
.oz-depot-intro { margin-bottom: 28px; }

/* En-tête de page -------------------------------------------------------- */
.oz-pagehead { background: var(--oz-sand); padding: 64px 0 52px; border-bottom: 1px solid var(--oz-line); }
.oz-pagehead h1 { margin-bottom: .2em; }
.oz-pagehead__lead { max-width: 680px; color: var(--oz-muted); font-size: 1.08rem; margin: 0; }
.oz-crumbs { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; padding-top: 22px; padding-bottom: 18px; font-size: .85rem; color: var(--oz-muted); }
.oz-crumbs a { color: var(--oz-muted); }
.oz-crumbs a:hover { color: var(--oz-navy); }

.oz-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 26px; flex-wrap: wrap; }
.oz-toolbar__count { margin: 0; font-weight: 700; color: var(--oz-navy); }
.oz-toolbar__sort label { display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; color: var(--oz-muted); }
.oz-toolbar__sort select { border: 1.5px solid var(--oz-line); border-radius: 999px; padding: .45em 1em; background: #fff; font-weight: 600; color: var(--oz-navy); }
.oz-pagination { margin-top: 44px; display: flex; justify-content: center; gap: 6px; }
.oz-pagination .page-numbers { min-width: 44px; height: 44px; padding: 0 12px; display: inline-grid; place-items: center; border-radius: 999px; border: 1px solid var(--oz-line); font-weight: 600; color: var(--oz-navy); }
.oz-pagination .page-numbers.current { background: var(--oz-navy); border-color: var(--oz-navy); color: #fff; }
.oz-empty { max-width: 620px; margin: 0 auto; text-align: center; padding: 56px 28px; border: 1px dashed var(--oz-line); border-radius: 24px; background: #fff; }
.oz-empty__icon { width: 64px; height: 64px; border-radius: 50%; margin: 0 auto 18px; display: grid; place-items: center; background: var(--oz-sand); color: var(--oz-gold); }
.oz-empty__icon .oz-icon { width: 28px; height: 28px; }
.oz-empty p { color: var(--oz-muted); }
.oz-empty__actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin: 24px 0 0; }
.oz-owner-cta { display: flex; justify-content: space-between; align-items: center; gap: 28px; padding: 40px 44px; border-radius: 24px; background: var(--oz-sand); flex-wrap: wrap; }
.oz-owner-cta h2 { font-size: 2rem; margin-bottom: .15em; }
.oz-owner-cta p { color: var(--oz-muted); margin: 0; }

/* Fiche d'un bien -------------------------------------------------------- */
.oz-gallery-hero { position: relative; display: grid; gap: 10px; height: min(62vh, 560px); grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.oz-gallery-hero__item { position: relative; padding: 0; border: 0; overflow: hidden; cursor: zoom-in; background: var(--oz-sand-2); min-height: 0; }
.oz-gallery-hero__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s, filter .3s; }
.oz-gallery-hero__item:hover img { transform: scale(1.03); filter: brightness(.94); }
.oz-gallery-hero__item:first-child { grid-row: span 2; border-radius: var(--oz-radius) 0 0 var(--oz-radius); }
.oz-gallery-hero--5 .oz-gallery-hero__item:nth-child(3) { border-top-right-radius: var(--oz-radius); }
.oz-gallery-hero--5 .oz-gallery-hero__item:nth-child(5) { border-bottom-right-radius: var(--oz-radius); }
.oz-gallery-hero--4 .oz-gallery-hero__item:nth-child(3) { border-top-right-radius: var(--oz-radius); }
.oz-gallery-hero--4 .oz-gallery-hero__item:nth-child(4) { grid-column: span 2; border-bottom-right-radius: var(--oz-radius); }
.oz-gallery-hero--3 { grid-template-columns: 2fr 1fr; }
.oz-gallery-hero--3 .oz-gallery-hero__item:nth-child(2) { border-top-right-radius: var(--oz-radius); }
.oz-gallery-hero--3 .oz-gallery-hero__item:nth-child(3) { border-bottom-right-radius: var(--oz-radius); }
.oz-gallery-hero--2 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
.oz-gallery-hero--2 .oz-gallery-hero__item:first-child { grid-row: auto; }
.oz-gallery-hero--2 .oz-gallery-hero__item:nth-child(2) { border-radius: 0 var(--oz-radius) var(--oz-radius) 0; }
.oz-gallery-hero--1 { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.oz-gallery-hero--1 .oz-gallery-hero__item:first-child { grid-row: auto; border-radius: var(--oz-radius); }
.oz-gallery-hero__all { position: absolute; right: 42px; bottom: 18px; box-shadow: var(--oz-shadow); }

.oz-property { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; align-items: start; padding-top: 40px; padding-bottom: 80px; }
.oz-property__badges { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; }
.oz-property__head h1 { font-size: clamp(2.1rem, 3.6vw, 3.2rem); margin-bottom: .25em; }
.oz-property__loc { display: flex; align-items: center; gap: 8px; color: var(--oz-muted); font-weight: 500; margin-bottom: 14px; }
.oz-property__loc .oz-icon { color: var(--oz-gold); }
.oz-property__price { font-family: var(--oz-serif); font-size: 2.1rem; font-weight: 700; color: var(--oz-navy); margin: 0; }
.oz-property__price small { font-family: var(--oz-sans); font-size: 1rem; font-weight: 500; color: var(--oz-muted); }
.oz-specs { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; list-style: none; margin: 32px 0 0; padding: 0; }
.oz-specs li { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: center; padding: 16px 18px; border-radius: 16px; background: var(--oz-sand); }
.oz-specs .oz-icon { grid-row: span 2; width: 26px; height: 26px; color: var(--oz-gold); }
.oz-specs strong { color: var(--oz-navy); font-size: 1.05rem; line-height: 1.2; }
.oz-specs span { font-size: .8rem; color: var(--oz-muted); }
.oz-block { margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--oz-line); }
.oz-block h2 { font-size: 2rem; }
.oz-features { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; list-style: none; margin: 0; padding: 0; }
.oz-features li { display: flex; align-items: center; gap: 10px; font-weight: 500; }
.oz-features .oz-icon { color: var(--oz-wa); }
.oz-embed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--oz-radius); overflow: hidden; }
.oz-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.oz-map { border-radius: var(--oz-radius); overflow: hidden; height: 360px; margin-bottom: 10px; }
.oz-map iframe { width: 100%; height: 100%; border: 0; }
.oz-property__aside { position: sticky; top: calc(var(--oz-header-h) + 24px); }
.oz-contact-card { background: #fff; border: 1px solid var(--oz-line); box-shadow: var(--oz-shadow); }
.oz-contact-card__agent { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.oz-contact-card__agent > div { display: flex; flex-direction: column; }
.oz-contact-card__agent strong { color: var(--oz-navy); font-size: 1.05rem; }
.oz-contact-card__agent > div span { color: var(--oz-muted); font-size: .85rem; }
.oz-contact-card__actions { display: grid; gap: 10px; }
.oz-contact-card__or { position: relative; text-align: center; margin: 20px 0 14px; font-size: .8rem; color: var(--oz-muted); }
.oz-contact-card__or::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 1px solid var(--oz-line); }
.oz-contact-card__or span { position: relative; background: #fff; padding: 0 12px; }
.oz-contact-card .oz-form { gap: 12px; }
.oz-contact-card .oz-form__row { grid-template-columns: 1fr; gap: 12px; }
.oz-mobile-cta { display: none; }

/* Visionneuse ------------------------------------------------------------ */
.oz-lightbox { position: fixed; inset: 0; z-index: 100000; background: rgba(6, 15, 23, .96); display: grid; place-items: center; }
.oz-lightbox[hidden] { display: none; }
.oz-lightbox__figure { margin: 0; max-width: 92vw; max-height: 84vh; display: grid; place-items: center; }
.oz-lightbox__figure img { max-width: 92vw; max-height: 84vh; width: auto; height: auto; object-fit: contain; border-radius: 6px; user-select: none; }
.oz-lightbox__close, .oz-lightbox__nav { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .1); color: #fff; display: grid; place-items: center; cursor: pointer; transition: background .2s; }
.oz-lightbox__close:hover, .oz-lightbox__nav:hover { background: rgba(255, 255, 255, .22); }
.oz-lightbox__close { top: 20px; right: 20px; }
.oz-lightbox__nav--prev { left: 20px; top: 50%; transform: translateY(-50%); }
.oz-lightbox__nav--next { right: 20px; top: 50%; transform: translateY(-50%); }
.oz-lightbox__count { position: absolute; bottom: 18px; left: 0; right: 0; text-align: center; color: rgba(255, 255, 255, .75); font-size: .9rem; font-weight: 600; margin: 0; }
body.oz-noscroll { overflow: hidden; }

/* Contenus rédigés ------------------------------------------------------- */
.oz-prose { font-size: 1.04rem; color: #2c3a47; }
.oz-prose h2 { font-size: 2rem; margin-top: 1.4em; }
.oz-prose h3 { font-size: 1.5rem; margin-top: 1.4em; }
.oz-prose ul, .oz-prose ol { padding-left: 1.3em; }
.oz-prose li { margin-bottom: .4em; }
.oz-prose li::marker { color: var(--oz-gold); }
.oz-prose img { border-radius: var(--oz-radius-sm); }
.oz-prose table { width: 100%; border-collapse: collapse; margin: 1.2em 0; font-size: .96rem; }
.oz-prose th, .oz-prose td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--oz-line); }
.oz-prose th { color: var(--oz-navy); font-weight: 700; }
.oz-prose blockquote { margin: 1.5em 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--oz-gold); font-family: var(--oz-serif); font-size: 1.35rem; color: var(--oz-navy); }
.oz-prose em { color: var(--oz-muted); }
.oz-cover { margin-top: -26px; margin-bottom: 0; }
.oz-cover img { border-radius: var(--oz-radius); width: 100%; }
.oz-builder > .elementor { width: 100%; }

/* Pied de page ----------------------------------------------------------- */
.oz-footer { background: var(--oz-navy); color: rgba(255, 255, 255, .68); font-size: .93rem; padding-top: 80px; }
.oz-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 48px; padding-bottom: 56px; }
.oz-footer h3 { font-family: var(--oz-sans); font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #e5d48a; margin-bottom: 20px; }
.oz-footer__brand p { margin: 22px 0 22px; max-width: 320px; }
.oz-footer a { color: rgba(255, 255, 255, .78); }
.oz-footer a:hover { color: #fff; }
.oz-footer__links, .oz-footer__contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.oz-footer__contact li { display: flex; gap: 12px; align-items: flex-start; }
.oz-footer__contact .oz-icon { color: #e5d48a; margin-top: 4px; }
.oz-social { display: flex; gap: 10px; }
.oz-social a { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .2); }
.oz-social a:hover { background: rgba(255, 255, 255, .1); }
.oz-footer__bottom { display: flex; justify-content: space-between; gap: 16px; padding-top: 22px; padding-bottom: 26px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .84rem; }

/* ==========================================================================
   Immersion : apparitions au défilement, titres mot à mot, parallaxe,
   bandeau défilant, chiffres animés, transitions entre pages.
   Tout est désactivé si le visiteur préfère réduire les animations.
   ========================================================================== */

/* Fondu d'entrée de la page (retiré par le JS, ou après 2,5 s au plus tard). */
.oz-main { transition: opacity .5s ease; }
.oz-loading .oz-main { opacity: 0; }

/* Apparitions (classe ajoutée par le JS : sans JS, tout reste visible). */
.oz-js .oz-reveal { opacity: 0; transform: translate3d(0, 34px, 0); transition: opacity .9s cubic-bezier(.2, .7, .2, 1), transform 1s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--oz-delay, 0ms); }
.oz-js .oz-reveal.is-in { opacity: 1; transform: none; }
/* Rideau sur les grandes images. */
.oz-js .oz-cat.oz-reveal, .oz-js .oz-city.oz-reveal, .oz-js .oz-spotlight.oz-reveal { opacity: 1; transform: none; clip-path: inset(14% 10% 0 10% round var(--oz-radius)); transition: clip-path 1.2s cubic-bezier(.7, 0, .2, 1), transform .45s ease; transition-delay: var(--oz-delay, 0ms); }
.oz-js .oz-cat.oz-reveal.is-in, .oz-js .oz-city.oz-reveal.is-in, .oz-js .oz-spotlight.oz-reveal.is-in { clip-path: inset(0 0 0 0 round var(--oz-radius)); }
.oz-js .oz-spotlight.oz-reveal { clip-path: inset(10% 6% 0 6% round 24px); }
.oz-js .oz-spotlight.oz-reveal.is-in { clip-path: inset(0 0 0 0 round 24px); }
.oz-js .oz-cat.oz-reveal .oz-cat__body, .oz-js .oz-city.oz-reveal .oz-city__label { opacity: 0; transform: translateY(18px); transition: opacity .8s ease .45s, transform .8s cubic-bezier(.2, .7, .2, 1) .45s; }
.oz-js .oz-cat.oz-reveal.is-in .oz-cat__body, .oz-js .oz-city.oz-reveal.is-in .oz-city__label { opacity: 1; transform: none; }

/* Titres mot à mot. */
.oz-split .oz-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.oz-split .oz-w > span { display: inline-block; }
.oz-js .oz-split .oz-w > span { transform: translate3d(0, 105%, 0); transition: transform 1s cubic-bezier(.2, .8, .2, 1); transition-delay: calc(var(--i, 0) * 70ms + var(--oz-delay, 0ms)); }
.oz-js .oz-split.is-in .oz-w > span { transform: none; }

/* Entrée de la page d'accueil. */
.oz-js .oz-hero__content > :not(.oz-hero__title) { opacity: 0; transform: translate3d(0, 24px, 0); transition: opacity 1s ease, transform 1s cubic-bezier(.2, .7, .2, 1); }
.oz-js .oz-hero.is-ready .oz-hero__content > :not(.oz-hero__title) { opacity: 1; transform: none; }
.oz-js .oz-hero.is-ready .oz-hero__text { transition-delay: .55s; }
.oz-js .oz-hero.is-ready .oz-search { transition-delay: .75s; }
.oz-hero__content, .oz-hero__slides { will-change: transform; }
.oz-hero__scroll { position: absolute; left: 50%; bottom: 26px; width: 26px; height: 42px; margin-left: -13px; border: 1.5px solid rgba(255, 255, 255, .6); border-radius: 14px; }
.oz-hero__scroll::after { content: ""; position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: oz-scroll-hint 1.8s ease-in-out infinite; }
@keyframes oz-scroll-hint { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }

/* Bandeau défilant. */
.oz-marquee { position: relative; overflow: hidden; background: var(--oz-navy); color: #fff; padding: 22px 0; border-top: 1px solid rgba(255, 255, 255, .08); }
.oz-marquee__track { display: flex; align-items: center; gap: 34px; width: max-content; animation: oz-marquee 48s linear infinite; transform: skewX(var(--oz-skew, 0deg)); }
.oz-marquee span { font-family: var(--oz-serif); font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 500; font-style: italic; white-space: nowrap; letter-spacing: .01em; }
.oz-marquee span:nth-of-type(odd) { color: transparent; -webkit-text-stroke: 1px rgba(229, 212, 138, .85); font-style: normal; font-weight: 600; }
.oz-marquee i { width: 10px; height: 10px; flex: none; background: var(--oz-gold); transform: rotate(45deg); }
@keyframes oz-marquee { from { translate: 0 0; } to { translate: -50% 0; } }

/* Chiffres. */
.oz-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; list-style: none; margin: 4px 0 26px; padding: 0; }
.oz-stats li { padding: 16px 14px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 16px; background: rgba(255, 255, 255, .03); }
.oz-stats strong { display: block; font-family: var(--oz-serif); font-size: 2.6rem; line-height: 1; color: #e5d48a; font-variant-numeric: tabular-nums; }
.oz-stats li > span { display: block; margin-top: 6px; font-size: .8rem; line-height: 1.35; color: rgba(255, 255, 255, .7); }

/* Inclinaison au survol (souris uniquement). */
.oz-tilt { transform-style: preserve-3d; }
.oz-tilt.is-tilting { transition: transform .12s linear, clip-path 1.2s cubic-bezier(.7, 0, .2, 1); }
.oz-tilt::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; border-radius: inherit; opacity: 0; transition: opacity .3s; background: radial-gradient(420px circle at var(--oz-mx, 50%) var(--oz-my, 50%), rgba(255, 255, 255, .22), transparent 45%); }
.oz-tilt.is-tilting::before { opacity: 1; }

/* Transitions entre pages (navigateurs compatibles ; sinon navigation normale). */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: oz-vt-out .35s cubic-bezier(.4, 0, 1, 1) both; }
::view-transition-new(root) { animation: oz-vt-in .55s cubic-bezier(.2, .7, .2, 1) both; }
::view-transition-group(*) { animation-duration: .65s; animation-timing-function: cubic-bezier(.2, .7, .2, 1); }
@keyframes oz-vt-out { to { opacity: 0; } }
@keyframes oz-vt-in { from { opacity: 0; transform: translateY(18px); } }

/* ==========================================================================
   Bouton WhatsApp animé
   ========================================================================== */
.oz-wa { position: fixed; right: 24px; bottom: 24px; z-index: 90; display: flex; align-items: center; gap: 14px; pointer-events: none; }
.oz-wa > * { pointer-events: auto; }
/* Bouton : logo OZ qui se dessine, puis se retourne de temps en temps pour montrer WhatsApp. */
.oz-wa__btn { position: relative; width: 66px; height: 66px; border: 0; border-radius: 50%; padding: 0; cursor: pointer; color: var(--oz-navy); background: #fff; box-shadow: 0 14px 34px rgba(16, 41, 60, .22), 0 0 0 1px rgba(16, 41, 60, .06); perspective: 400px; transform: translateY(140px) scale(.4); opacity: 0; transition: transform .8s cubic-bezier(.34, 1.56, .64, 1), opacity .4s ease, box-shadow .3s; }
.oz-wa.is-visible .oz-wa__btn { transform: none; opacity: 1; }
.oz-wa__btn:hover { box-shadow: 0 18px 44px rgba(16, 41, 60, .3), 0 0 0 1px rgba(16, 41, 60, .08); }
.oz-wa__btn::before, .oz-wa__btn::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--oz-blue); opacity: 0; z-index: -1; }
.oz-wa.is-visible:not(.is-open) .oz-wa__btn::before { animation: oz-wa-pulse 3s cubic-bezier(.2, .7, .2, 1) 1.6s infinite; }
.oz-wa.is-visible:not(.is-open) .oz-wa__btn::after { animation: oz-wa-pulse 3s cubic-bezier(.2, .7, .2, 1) 3.1s infinite; }
@keyframes oz-wa-pulse { 0% { transform: scale(1); opacity: .5; } 100% { transform: scale(1.7); opacity: 0; } }
.oz-wa__ring { position: absolute; inset: -7px; width: calc(100% + 14px); height: calc(100% + 14px); transform: rotate(-90deg); pointer-events: none; }
.oz-wa__ring circle { fill: none; stroke-width: 2.5; }
.oz-wa__ring-track { stroke: rgba(16, 41, 60, .1); }
.oz-wa__ring-bar { stroke: var(--oz-gold); stroke-linecap: round; stroke-dasharray: 207.3; stroke-dashoffset: 207.3; transition: stroke-dashoffset .15s linear; }
.oz-wa__card { position: absolute; inset: 0; border-radius: 50%; transform-style: preserve-3d; transition: transform 1.5s cubic-bezier(.45, 0, .2, 1), opacity .5s ease; }
.oz-wa.is-flipped:not(.is-open) .oz-wa__card { transform: rotateY(180deg); }
.oz-wa__face { position: absolute; inset: 0; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; backface-visibility: hidden; -webkit-backface-visibility: hidden; overflow: hidden; }
.oz-wa__face--oz { background: radial-gradient(circle at 50% 35%, #fff 0%, #f7f3ec 100%); }
.oz-wa__face--wa { transform: rotateY(180deg); color: #fff; background: radial-gradient(circle at 30% 25%, #3ddc84, #1fa855 60%, #168a45); }
.oz-wa__face--wa .oz-icon { width: 32px; height: 32px; }
.oz-wa__logo { width: 48px; height: auto; overflow: visible; transition: transform .35s ease; filter: drop-shadow(0 1px 1px rgba(90, 56, 8, .25)); }
.oz-wa__btn:hover .oz-wa__logo { transform: scale(1.07); }
.oz-wa__logo path { stroke: #d9a63a; stroke-width: 0; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.oz-wa__logo .oz-mark__spark { opacity: 0; }
.oz-wa.no-travel:not(.is-visible) .oz-wa__logo path { stroke-dashoffset: 1; fill-opacity: 0; stroke-width: 12; }
.oz-wa.no-travel.is-visible .oz-wa__logo path:not(.oz-mark__spark) { animation: oz-mark-trace 2.4s cubic-bezier(.65, 0, .35, 1) both; animation-delay: calc(.5s + var(--d, 0) * .25s); }
.oz-wa.is-redraw .oz-wa__logo path:not(.oz-mark__spark) { animation: oz-mark-retrace 2.6s cubic-bezier(.65, 0, .35, 1) both; animation-delay: calc(var(--d, 0) * .14s); }
/* Le contour se trace d'un trait d'or, puis la matière (or et bleu) se remplit. */
@keyframes oz-mark-trace { 0% { stroke-width: 12; stroke-dashoffset: 1; fill-opacity: 0; } 62% { stroke-width: 12; stroke-dashoffset: 0; fill-opacity: 0; } 100% { stroke-width: 0; stroke-dashoffset: 0; fill-opacity: 1; } }
@keyframes oz-mark-retrace { 0% { stroke-width: 12; stroke-dashoffset: 1; fill-opacity: 1; } 22% { fill-opacity: .12; } 70% { stroke-width: 12; stroke-dashoffset: 0; fill-opacity: .12; } 100% { stroke-width: 0; stroke-dashoffset: 0; fill-opacity: 1; } }
.oz-wa__oz { display: none; } /* le O et le Z sont désormais dans le logo */
.oz-wa__oz--ancien { font-family: var(--oz-serif); font-size: 13px; font-weight: 700; letter-spacing: .14em; line-height: 1; color: var(--oz-gold); margin-top: 3px; padding-left: .14em; opacity: 0; transform: translateY(4px); transition: opacity .6s ease 1.7s, transform .6s ease 1.7s; }
.oz-wa.is-visible .oz-wa__oz { opacity: 1; transform: none; }
.oz-wa__mini { position: absolute; right: -3px; bottom: -3px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: #1fa855; color: #fff; border: 2px solid #fff; box-shadow: 0 3px 8px rgba(0, 0, 0, .18); transform: scale(0); transition: transform .5s cubic-bezier(.34, 1.56, .64, 1) 1.9s; }
.oz-wa__mini .oz-icon { width: 13px; height: 13px; }
.oz-wa.is-visible .oz-wa__mini { transform: scale(1); }
.oz-wa.is-flipped .oz-wa__mini, .oz-wa.is-open .oz-wa__mini { transform: scale(0); transition-delay: 0s; }
.oz-wa__x { position: absolute; inset: 0; border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--oz-navy); opacity: 0; transform: rotate(-90deg) scale(.5); transition: transform .45s cubic-bezier(.34, 1.56, .64, 1), opacity .25s; }
.oz-wa__x .oz-icon { width: 26px; height: 26px; }
.oz-wa.is-open .oz-wa__card { opacity: 0; transform: scale(.6); }
.oz-wa.is-open .oz-wa__x { opacity: 1; transform: none; }
.oz-wa__badge { position: absolute; top: -2px; right: -2px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: #e5484d; color: #fff; font-size: .75rem; font-weight: 800; line-height: 22px; border: 2px solid #fff; transform: scale(0); transition: transform .5s cubic-bezier(.34, 1.56, .64, 1); }
.oz-wa.has-badge .oz-wa__badge { transform: scale(1); }

.oz-wa__tease { order: -1; position: relative; padding: 11px 18px; border-radius: 18px 18px 4px 18px; background: #fff; color: var(--oz-navy); font-weight: 700; font-size: .9rem; white-space: nowrap; box-shadow: var(--oz-shadow-lg); opacity: 0; transform: translateX(16px) scale(.85); transform-origin: right bottom; transition: opacity .4s ease, transform .55s cubic-bezier(.34, 1.56, .64, 1); pointer-events: none; }
.oz-wa.is-teasing:not(.is-open) .oz-wa__tease { opacity: 1; transform: none; }

.oz-wa__panel { position: absolute; right: 0; bottom: 84px; width: 360px; max-width: calc(100vw - 32px); max-height: calc(100vh - 130px); overflow-y: auto; border-radius: 24px; background: #fff; box-shadow: 0 30px 80px rgba(9, 25, 38, .28); transform-origin: calc(100% - 32px) 100%; opacity: 0; transform: translateY(16px) scale(.92); transition: opacity .3s ease, transform .45s cubic-bezier(.34, 1.4, .64, 1); }
.oz-wa.is-open .oz-wa__panel { opacity: 1; transform: none; }
.oz-wa__head { display: flex; align-items: center; gap: 12px; padding: 18px 18px 18px 20px; background: linear-gradient(135deg, var(--oz-navy), var(--oz-navy-2)); color: #fff; }
.oz-wa__avatar { position: relative; width: 46px; height: 46px; border-radius: 50%; flex: none; display: grid; place-items: center; overflow: visible; background: var(--oz-gold); font-family: var(--oz-serif); font-size: 1.5rem; font-weight: 700; }
.oz-wa__avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.oz-wa__avatar::after { content: ""; position: absolute; right: 0; bottom: 1px; width: 12px; height: 12px; border-radius: 50%; background: #3ddc84; border: 2px solid var(--oz-navy); }
.oz-wa__who { display: flex; flex-direction: column; margin-right: auto; line-height: 1.3; }
.oz-wa__who strong { font-size: 1rem; }
.oz-wa__who span { font-size: .78rem; color: rgba(255, 255, 255, .7); }
.oz-wa__close { width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .12); color: #fff; display: grid; place-items: center; cursor: pointer; }
.oz-wa__close:hover { background: rgba(255, 255, 255, .22); }
.oz-wa__body { padding: 18px 16px 10px; background-color: #efe7dc; background-image: radial-gradient(rgba(16, 41, 60, .06) 1px, transparent 1.4px); background-size: 16px 16px; }
.oz-wa__bubble { display: none; position: relative; max-width: 88%; margin: 0 0 8px; padding: 10px 14px; border-radius: 4px 16px 16px 16px; background: #fff; font-size: .9rem; line-height: 1.45; color: var(--oz-ink); box-shadow: 0 1px 1px rgba(0, 0, 0, .06); transform-origin: left top; }
.oz-wa__typing { display: inline-flex; gap: 4px; padding: 13px 14px; border-radius: 4px 16px 16px 16px; background: #fff; margin-bottom: 8px; }
.oz-wa__typing span { width: 7px; height: 7px; border-radius: 50%; background: #9aa4ad; animation: oz-typing 1s ease-in-out infinite; }
.oz-wa__typing span:nth-child(2) { animation-delay: .15s; }
.oz-wa__typing span:nth-child(3) { animation-delay: .3s; }
@keyframes oz-typing { 0%, 60%, 100% { transform: translateY(0); opacity: .5; } 30% { transform: translateY(-5px); opacity: 1; } }
.oz-wa.is-greeted .oz-wa__typing { display: none; }
.oz-wa.is-greeted .oz-wa__bubble { display: block; animation: oz-wa-bubble .45s cubic-bezier(.34, 1.4, .64, 1) both; }
.oz-wa.is-greeted .oz-wa__bubble--2 { animation-delay: .45s; }
@keyframes oz-wa-bubble { from { opacity: 0; transform: translateY(10px) scale(.94); } }
.oz-wa__choices { list-style: none; margin: 12px 0 0; padding: 0; display: none; gap: 7px; }
.oz-wa.is-greeted .oz-wa__choices { display: grid; }
.oz-wa.is-greeted .oz-wa__choices li { animation: oz-wa-choice .45s cubic-bezier(.2, .7, .2, 1) both; animation-delay: calc(.85s + var(--i) * 90ms); }
@keyframes oz-wa-choice { from { opacity: 0; transform: translateX(14px); } }
.oz-wa__choices a { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-radius: 14px; background: #fff; border: 1px solid rgba(31, 168, 85, .25); color: var(--oz-navy); font-weight: 600; font-size: .9rem; transition: background .2s, border-color .2s, transform .2s; }
.oz-wa__choices a:hover { background: #effaf3; border-color: #1fa855; transform: translateX(-3px); color: var(--oz-navy); }
.oz-wa__choices a > .oz-icon:first-child { color: #1fa855; }
.oz-wa__choices span { flex: 1; }
.oz-wa__go { color: #1fa855; opacity: .6; }
.oz-wa__cta { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0; padding: 15px; background: #1fa855; color: #fff; font-weight: 700; }
.oz-wa__cta:hover { background: #178c46; color: #fff; }

@media (max-width: 700px) {
	.oz-wa { right: 14px; bottom: 14px; }
	.oz-wa__btn { width: 60px; height: 60px; }
	.oz-wa__logo { width: 40px; }
	.oz-wa__panel { position: fixed; left: 12px; right: 12px; bottom: 86px; width: auto; max-width: none; }
	.oz-wa__tease { font-size: .82rem; padding: 9px 14px; }
	.single-property .oz-wa { display: none; } /* la barre Appeler / WhatsApp prend le relais */
	.oz-stats { grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
	.oz-stats li { padding: 12px 10px; }
	.oz-stats strong { font-size: 2rem; }
	.oz-hero__scroll { display: none; }
}

/* Responsive ------------------------------------------------------------- */
@media (max-width: 1180px) {
	.oz-menu a { padding: 10px 9px; font-size: .85rem; }
	.oz-search--compact .oz-search__fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.oz-search--compact .oz-search__submit { grid-column: span 3; }
	.oz-search--compact .oz-field:nth-child(4) { border-left: 0; }
}

@media (max-width: 1060px) {
	:root { --oz-header-h: 72px; }
	.oz-burger { display: inline-flex; }
	.oz-header__actions { margin-left: auto; }
	.oz-logo, .oz-header__actions { position: relative; z-index: 51; } /* au-dessus du panneau de menu */
	.oz-menu-open .oz-mobile-cta, .oz-menu-open .oz-wa { display: none; }
	.oz-nav { position: fixed; inset: 0; z-index: 49; margin: 0; padding: calc(var(--oz-header-h) + 16px) 24px 40px; background: #fff; overflow-y: auto; transform: translateX(100%); transition: transform .3s ease; visibility: hidden; }
	.admin-bar .oz-nav { padding-top: calc(var(--oz-header-h) + 46px + 16px); }
	.oz-nav.is-open { transform: none; visibility: visible; }
	.oz-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.oz-menu a { padding: 15px 4px; font-size: 1.15rem; border-radius: 0; border-bottom: 1px solid var(--oz-line); }
	.oz-menu a:hover { background: none; }
	.oz-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 16px; }
	.oz-nav__mobile-extra { display: grid; gap: 10px; margin-top: 26px; }
	.oz-menu-open .oz-burger__open { display: none; }
	.oz-menu-open .oz-burger__close { display: block; }
	.oz-logo img { height: 50px; }

	.oz-grid, .oz-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.oz-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 210px; }
	.oz-cat:first-child { grid-row: auto; grid-column: span 2; }
	.oz-cities, .oz-cities--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.oz-about, .oz-contact { grid-template-columns: 1fr; gap: 44px; }
	.oz-band__inner { grid-template-columns: 1fr; }
	.oz-band__actions { flex-direction: row; flex-wrap: wrap; }
	.oz-property { grid-template-columns: 1fr; gap: 40px; }
	.oz-spotlight { grid-template-columns: 1fr; }
	.oz-spotlight__media { min-height: 0; aspect-ratio: 16 / 10; }
	.oz-spotlight__body { padding: 28px 24px; }
	.oz-property__aside { position: static; }
	.oz-depot-layout { grid-template-columns: 1fr; }
	.oz-depot-aside { position: static; }
	.oz-footer__grid { grid-template-columns: 1fr 1fr; }
	.oz-search__fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.oz-search__submit { grid-column: 1 / -1; }
}

@media (max-width: 782px) {
	.admin-bar .oz-header { top: 46px; }
}

@media (max-width: 600px) {
	.admin-bar .oz-header { top: 0; }
}

@media (max-width: 700px) {
	body { font-size: 15.5px; }
	.oz-spotlight__thumbs { display: none; }
	.oz-spotlight__count { display: inline-flex; }
	.oz-wrap { padding-inline: 16px; }
		.oz-hide-sm { display: none; }
	.oz-section { padding: 64px 0; }
	.oz-section--tight { padding: 40px 0; }
	.oz-section__head { margin-bottom: 30px; }

	.oz-hero { min-height: auto; }
	.oz-hero__content { padding-top: 140px; padding-bottom: 92px; }
	.oz-hero__text { font-size: 1rem; }
	.oz-hero__controls { left: 16px; right: auto; bottom: 22px; }
	.oz-search__fields { grid-template-columns: 1fr; padding: 6px; }
	.oz-search .oz-field + .oz-field { border-left: 0; border-top: 1px solid var(--oz-line); }
	.oz-search .oz-field { padding: 10px 14px; border-radius: 10px; }
	.oz-search--compact .oz-search__fields { grid-template-columns: 1fr 1fr; }
	.oz-search--compact .oz-search__submit { grid-column: 1 / -1; }
	.oz-search--compact .oz-field:nth-child(2) { border-top: 0; }
	.oz-search--compact .oz-field:nth-child(even) { border-left: 1px solid var(--oz-line); }

	.oz-grid, .oz-services { grid-template-columns: 1fr; }
	.oz-cats { grid-auto-rows: 180px; gap: 12px; }
	.oz-cat__body { padding: 16px 50px 16px 16px; }
	.oz-cat__body strong { font-size: 1.35rem; }
	.oz-cat:first-child .oz-cat__body strong { font-size: 1.9rem; }
	.oz-cat__body span { display: none; }
	.oz-cat:first-child .oz-cat__body span { display: -webkit-box; }
	.oz-cat__arrow { right: 12px; bottom: 14px; width: 32px; height: 32px; }
	.oz-cat:not(:first-child) .oz-cat__arrow { display: none; }
	.oz-cat:not(:first-child) .oz-cat__body { padding-right: 14px; }
	.oz-cat:not(:first-child) .oz-cat__body strong { font-size: 1.22rem; overflow-wrap: anywhere; }
	.oz-cities, .oz-cities--3, .oz-cities--2 { grid-template-columns: 1fr 1fr; gap: 12px; }
	.oz-city__label { left: 14px; right: 14px; bottom: 14px; }
	.oz-city__label strong { font-size: 1.5rem; }
	.oz-band__inner { padding-top: 64px; padding-bottom: 64px; }
	.oz-band__actions .oz-btn { width: 100%; }
	.oz-contact__form { padding: 22px; border-radius: 20px; }
	.oz-form__row, .oz-form__row--3 { grid-template-columns: 1fr; }
	.oz-form__row--4 { grid-template-columns: 1fr 1fr; }
	.oz-step { padding: 20px 16px; }
	.oz-owner-cta { padding: 28px 22px; }

	.oz-gallery-hero { height: auto; display: block; padding-inline: 0; }
	.oz-gallery-hero__item { display: none; width: 100%; aspect-ratio: 4 / 3; }
	.oz-gallery-hero__item:first-child { display: block; border-radius: 0; }
	.oz-gallery-hero__all { right: 16px; bottom: 16px; }
	.oz-property { padding-top: 26px; padding-bottom: 40px; }
	.oz-specs { grid-template-columns: 1fr 1fr; }
	.oz-mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--oz-line); box-shadow: 0 -8px 24px rgba(16, 41, 60, .08); }
	.single-property .oz-footer { padding-bottom: 72px; }
	.oz-lightbox__nav { width: 44px; height: 44px; }
	.oz-lightbox__nav--prev { left: 8px; }
	.oz-lightbox__nav--next { right: 8px; }

	.oz-footer { padding-top: 56px; }
	.oz-footer__grid { grid-template-columns: 1fr; gap: 34px; }
	.oz-footer__bottom { flex-direction: column; }
}

/* ==========================================================================
   Design fluide (v2) — moins d'encadrés, des arches marocaines, des courbes,
   des animations lentes. Ces règles complètent et remplacent celles du dessus.
   ========================================================================== */

html.lenis { scroll-behavior: auto !important; }

/* Logo : tracé vectoriel qui se dessine lentement à l'ouverture. */
.oz-logo { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; line-height: 1; color: inherit; }
.oz-logo__mark { display: block; width: 84px; }
.oz-logo__svg { display: block; width: 100%; height: auto; overflow: visible; filter: drop-shadow(0 1px 0 rgba(255, 244, 214, .7)) drop-shadow(0 2px 3px rgba(90, 56, 8, .22)); }
.oz-logo__svg path { stroke: #d9a63a; stroke-width: 0; stroke-linejoin: round; }
.oz-mark__spark { opacity: 0; transform-box: fill-box; transform-origin: center; }
.oz-logo__word { display: flex; font-family: "Cinzel", var(--oz-serif); font-weight: 600; font-size: 11.5px; letter-spacing: .2em; padding-left: .2em; white-space: nowrap; }
.oz-logo__word > span { display: inline-block; background: linear-gradient(180deg, #f3d277 0%, #c98d25 55%, #92590f 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.oz-logo--light .oz-logo__mark { width: 132px; }
.oz-logo--light .oz-logo__svg { filter: drop-shadow(0 3px 8px rgba(0, 0, 0, .35)); }
.oz-logo--light .oz-logo__svg path { stroke: #f1d58a; }
.oz-logo--light .oz-mark__part--vague path, .oz-logo--light .oz-mark__part--houle path { fill: url(#oz-g-bleu-clair); }
.oz-logo--light .oz-logo__word { font-size: 15px; }
/* Ouverture : un trait d'or dessine chaque partie, la matière se remplit, puis les lettres apparaissent. */
.oz-js .oz-logo--dark .oz-logo__svg path:not(.oz-mark__spark) { stroke-dasharray: 1; animation: oz-mark-trace 3s cubic-bezier(.65, 0, .35, 1) both; animation-delay: calc(.3s + var(--d, 0) * .35s); }
.oz-js .oz-logo--dark .oz-logo__word > span { animation: oz-letter 1.5s cubic-bezier(.16, 1, .3, 1) both; animation-delay: calc(2.9s + var(--i) * .08s); }
.oz-seen .oz-logo--dark .oz-logo__svg path:not(.oz-mark__spark) { animation-duration: 1.5s; animation-delay: calc(.1s + var(--d, 0) * .12s); }
.oz-seen .oz-logo--dark .oz-logo__word > span { animation-duration: 1s; animation-delay: calc(.8s + var(--i) * .03s); }
@keyframes oz-letter { from { opacity: 0; transform: translateY(8px); filter: blur(5px); } }

/* Le logo qui voyage jusqu'au bouton WhatsApp : une maquette d'architecte en calques. */
.oz-traveler { position: fixed; left: 0; top: 0; z-index: 95; pointer-events: none; visibility: hidden; perspective: 640px; will-change: transform, width; filter: drop-shadow(0 6px 8px rgba(16, 41, 60, calc(var(--oz-depth, 0) * .3))); }
.oz-traveler__model { position: absolute; inset: 0; transform-style: preserve-3d; }
.oz-traveler__layer { position: absolute; inset: 0; display: block; width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 0 1px rgba(255, 255, 255, .6)); }
.oz-traveler__layer path { stroke: #d9a63a; stroke-linejoin: round; stroke-dasharray: 1; }
.oz-traveler__layer .oz-traveler__keyline { fill: none; stroke: #fff; stroke-dasharray: none; opacity: 0; }
.oz-traveler__tip { fill: #f4e7b0; opacity: 0; }
.oz-traveler__halo { fill: var(--oz-gold); opacity: 0; }
.oz-trail { position: fixed; inset: 0; z-index: 94; width: 100%; height: 100%; overflow: visible; pointer-events: none; visibility: hidden; color: var(--oz-gold); }
.oz-trail path { fill: none; stroke: url(#oz-trail-grad); stroke-linecap: round; stroke-dasharray: 0 2; }
.oz-trail__line { stroke-width: 1.2; }
.oz-trail__glow { stroke-width: 6; opacity: .16; }
.oz-menu-open .oz-traveler, .oz-menu-open .oz-trail { opacity: 0 !important; }
/* Atterrissage : léger rebond du bouton et deux ondes dorées. */
.oz-wa__ripple { position: absolute; inset: 0; z-index: -1; border-radius: 50%; border: 1.5px solid var(--oz-gold); opacity: 0; pointer-events: none; }
.oz-wa__ripple--late { border-width: 1px; }
.oz-wa.is-landing .oz-wa__ripple { animation: oz-wa-ripple 1.6s cubic-bezier(.2, .7, .2, 1) both; }
.oz-wa.is-landing .oz-wa__ripple--late { animation-delay: .25s; }
.oz-wa.is-landing .oz-wa__card { animation: oz-wa-settle 1.1s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes oz-wa-ripple { 0% { opacity: .9; transform: scale(1); } 100% { opacity: 0; transform: scale(2.2); } }
@keyframes oz-wa-settle { 0% { transform: scale(.88); } 55% { transform: scale(1.05); } 100% { transform: none; } }
.oz-wa.is-measuring .oz-wa__btn { transform: none !important; transition: none !important; }
.oz-wa.has-travel .oz-wa__logo { opacity: 0; transition: opacity .6s ease; }
.oz-wa.has-travel.is-formed .oz-wa__logo { opacity: 1; transition: none; }
.oz-wa.has-travel:not(.is-formed) .oz-wa__oz { opacity: 0; transform: translateY(4px); }
.oz-wa.has-travel .oz-wa__oz { transition: opacity 1s ease .3s, transform 1s ease .3s; }
.oz-wa.has-travel:not(.is-formed) .oz-wa__mini { transform: scale(0); }
.oz-wa.has-travel .oz-wa__mini { transition-delay: .8s; }
.oz-wa__btn { transition: transform 1.3s cubic-bezier(.22, 1.2, .36, 1), opacity .8s ease, box-shadow .4s; }
.oz-wa.is-visible:not(.is-open) .oz-wa__btn::before { animation-duration: 4.2s; }
.oz-wa.is-visible:not(.is-open) .oz-wa__btn::after { animation-duration: 4.2s; animation-delay: 3.7s; }

/* ======================================================================
   Mouvement : curseur, boutons, images, détails
   ====================================================================== */

/* Curseur « lanterne » (ordinateur) : une lanterne marocaine dorée suspendue à la pointe. */
.oz-has-cursor, .oz-has-cursor * { cursor: none !important; }
.oz-has-cursor input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]), .oz-has-cursor textarea, .oz-has-cursor [contenteditable="true"] { cursor: text !important; }
.oz-cursor { position: fixed; left: 0; top: 0; z-index: 100001; pointer-events: none; transition: opacity .4s ease; }
.oz-cursor.is-hidden { opacity: 0; }
.oz-cursor > * { position: absolute; left: 0; top: 0; transition: opacity .3s ease; }
.oz-cursor__dust { width: 100vw; height: 100vh; }
/* La lanterne : accrochée par le haut de sa chaînette, elle pivote autour de ce point. */
.oz-cursor__lamp { width: 27px; height: 45px; overflow: visible; translate: -50% 0; transform-origin: 50% 0; will-change: transform; filter: drop-shadow(0 2px 3px rgba(16, 41, 60, .18)); transition: filter .5s ease, opacity .3s ease; }
.oz-lamp__sway { transform-box: view-box; transform-origin: 12px 1px; animation: oz-lamp-sway 4.6s ease-in-out infinite; }
@keyframes oz-lamp-sway { 0%, 100% { transform: rotate(-3.5deg); } 50% { transform: rotate(3.5deg); } }
.oz-lamp__line { fill: none; stroke: var(--oz-gold); stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; transition: stroke .4s ease; }
.oz-lamp__dots { stroke-width: 1.6; }
.oz-lamp__window { fill: rgba(168, 147, 44, .1); stroke: var(--oz-gold); stroke-width: .9; vector-effect: non-scaling-stroke; transition: fill .4s ease, stroke .4s ease; }
.oz-lamp__flame { fill: #d6b347; transform-box: fill-box; transform-origin: 50% 100%; animation: oz-flame 1.8s ease-in-out infinite; transition: fill .4s ease; }
@keyframes oz-flame { 0%, 100% { transform: scale(1, 1); opacity: .9; } 25% { transform: scale(.86, 1.1); opacity: 1; } 50% { transform: scale(1.05, .92); opacity: .82; } 75% { transform: scale(.93, 1.06); opacity: .96; } }
.oz-lamp__bead { fill: var(--oz-gold); transition: fill .4s ease; }
.oz-lamp__pin { fill: var(--oz-navy); transition: fill .4s ease; }
/* Sur un lien : la flamme s'avive. */
.oz-cursor.is-link .oz-cursor__lamp { filter: drop-shadow(0 0 5px rgba(214, 179, 71, .75)); }
.oz-cursor.is-link .oz-lamp__window { fill: rgba(214, 179, 71, .35); }
.oz-cursor.is-link .oz-lamp__flame, .oz-cursor.is-down .oz-lamp__flame { fill: #f2cf55; animation-duration: .9s; }
/* Sur une photo : la lanterne se suspend sous une fenêtre en arche bleu nuit, au-dessus du mot. */
.oz-cursor__arch { display: grid; place-items: center; width: 0; height: 0; translate: -50% -50%; border-radius: 999px 999px 10px 10px; background: rgba(16, 41, 60, .92); box-shadow: 0 18px 36px -16px rgba(16, 41, 60, .6); will-change: transform; transition: width .55s cubic-bezier(.2, .8, .2, 1), height .55s cubic-bezier(.2, .8, .2, 1), background-color .35s; }
.oz-cursor.is-view .oz-cursor__arch { width: 96px; height: 128px; }
.oz-cursor__label { font: 700 9.5px/1 var(--oz-sans); letter-spacing: .22em; padding-left: .22em; text-transform: uppercase; color: #fff; white-space: nowrap; opacity: 0; transform: translateY(32px); transition: opacity .3s, transform .5s cubic-bezier(.2, .8, .2, 1); }
.oz-cursor.is-view .oz-cursor__label { opacity: 1; transform: translateY(22px); transition-delay: .15s; }
.oz-cursor.is-view .oz-lamp__line, .oz-cursor.is-view .oz-lamp__window { stroke: #e5d48a; }
.oz-cursor.is-view .oz-lamp__window { fill: rgba(242, 207, 85, .25); }
.oz-cursor.is-view .oz-lamp__pin { fill: #e5d48a; }
.oz-cursor.is-view .oz-cursor__lamp { filter: drop-shadow(0 0 6px rgba(242, 207, 85, .55)); }
/* Sur les zones sombres : la lanterne s'allume. */
.oz-cursor.is-dark .oz-lamp__line, .oz-cursor.is-dark .oz-lamp__window { stroke: #f4e7aa; }
.oz-cursor.is-dark .oz-lamp__window { fill: rgba(255, 224, 138, .4); }
.oz-cursor.is-dark .oz-lamp__flame { fill: #ffe08a; }
.oz-cursor.is-dark .oz-lamp__bead { fill: #f4e7aa; }
.oz-cursor.is-dark .oz-lamp__pin { fill: #fff; }
.oz-cursor.is-dark .oz-cursor__lamp { filter: drop-shadow(0 0 6px rgba(255, 224, 138, .85)); }
.oz-cursor.is-dark.is-view .oz-cursor__arch { background: rgba(255, 255, 255, .94); }
.oz-cursor.is-dark.is-view .oz-cursor__label { color: var(--oz-navy); }
.oz-cursor.is-dark.is-view .oz-lamp__line, .oz-cursor.is-dark.is-view .oz-lamp__window { stroke: var(--oz-gold); }
.oz-cursor.is-dark.is-view .oz-lamp__pin { fill: var(--oz-navy); }
.oz-cursor.is-text > * { opacity: 0; }
@keyframes oz-star-turn { to { transform: rotate(360deg); } }
/* La lumière de la lanterne : sur les zones sombres, une lumière dorée ciselée d'étoiles. */
.oz-lantern { position: fixed; left: 0; top: 0; z-index: 99; width: 380px; height: 380px; translate: -50% -50%; pointer-events: none; mix-blend-mode: screen; opacity: 0; transition: opacity .8s ease; will-change: transform; }
.oz-lantern.is-on { opacity: 1; }
.oz-lantern__glow, .oz-lantern__pattern { position: absolute; inset: 0; border-radius: 50%; }
.oz-lantern__glow { background: radial-gradient(circle, rgba(255, 224, 138, .4) 0%, rgba(229, 212, 138, .15) 30%, rgba(229, 212, 138, 0) 66%); animation: oz-glow-flicker 3.2s ease-in-out infinite; }
@keyframes oz-glow-flicker { 0%, 100% { opacity: 1; } 30% { opacity: .86; } 55% { opacity: .97; } 80% { opacity: .9; } }
/* La lumière de la lanterne est ciselée de petits logos OZ, qui se balancent doucement. */
.oz-lantern__pattern { background: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2252%22 height=%2244%22 viewBox=%220 0 52 44%22%3E%3Cg fill=%22%23f4e7aa%22 transform=%22translate(10.77 11.68) scale(0.03866)%22%3E%3Cpath d=%22M182 479C185 478 195 477 202 476C208 475 219 472 224 470C228 469 230 467 230 467C230 467 232 464 232 464C232 464 233 462 230 462C226 462 216 462 208 461C201 460 192 457 184 454C175 451 166 447 158 442C151 437 144 432 138 426C131 420 126 415 120 408C114 400 107 389 103 382C99 376 98 372 95 366C93 361 90 355 88 347C86 339 83 329 82 318C81 307 80 293 81 281C82 270 84 259 86 251C88 244 88 243 91 236C94 228 100 215 103 208C107 202 109 199 112 195C116 190 120 184 124 179C128 175 130 173 136 168C141 163 150 156 156 152C163 147 168 145 176 141C184 138 195 134 204 131C214 129 220 127 232 126C243 125 262 125 272 126C281 127 284 128 290 130C297 132 303 134 308 136C314 138 318 140 326 144C333 148 344 155 352 162C359 169 367 178 372 184C377 191 380 196 383 202C386 207 387 209 390 215C393 222 397 231 399 241C402 250 404 262 405 270C406 277 407 279 407 288C407 297 407 315 407 324C407 333 406 335 405 342C404 348 402 355 401 361C399 367 398 372 396 378C394 383 389 392 387 395C386 399 387 398 387 398C387 398 388 400 388 400C388 400 418 394 428 389C437 384 440 377 444 373C448 368 449 366 451 361C454 357 457 350 459 344C461 339 463 335 464 328C466 322 467 314 468 305C469 295 469 285 468 274C467 263 464 248 462 239C460 229 457 223 454 215C451 208 448 202 444 196C440 189 435 181 430 175C425 170 423 167 417 161C410 155 403 148 393 142C384 136 368 127 362 124C355 121 357 123 354 122C350 121 344 117 340 116C336 115 333 115 330 114C326 113 324 111 318 110C313 109 301 107 294 106C288 105 291 105 280 105C268 105 239 105 224 106C209 107 201 109 190 112C178 115 167 118 156 122C146 126 134 132 126 136C118 140 115 141 108 146C102 151 92 157 85 164C77 171 69 178 63 186C56 194 50 201 45 209C40 218 35 228 31 236C28 243 26 247 24 253C22 260 19 270 18 276C17 283 16 281 16 290C16 298 15 318 16 328C17 339 19 346 21 355C23 363 25 369 29 378C33 386 38 397 43 405C48 412 51 417 57 424C63 430 71 438 77 443C82 448 86 451 93 455C99 459 108 464 114 467C121 470 127 472 134 474C141 476 148 478 156 479C164 480 182 479 182 479C182 479 179 479 182 479Z%22/%3E%3Cpath d=%22M521 387C522 386 510 402 527 381C544 361 594 300 623 266C652 231 687 192 700 176C713 161 703 174 703 172C704 171 703 170 703 170C703 170 701 168 701 168C701 168 447 168 447 168C447 168 446 168 445 169C445 170 445 172 445 172C445 172 445 173 447 175C449 178 454 186 457 189C460 191 463 193 463 193C463 193 597 193 597 193C597 193 600 197 600 197C600 197 591 209 588 213C585 217 604 192 581 220C558 248 473 354 451 381C429 409 450 385 450 385C450 385 453 387 453 387C453 387 457 385 465 385C473 385 491 385 501 385C510 385 521 387 521 387C521 387 520 387 521 387Z%22/%3E%3Cpath d=%22M713 160C715 157 726 146 726 146C726 146 726 142 726 142C726 142 757 141 724 141C690 141 524 141 524 141C524 141 519 138 517 136C515 133 514 130 511 127C509 124 506 121 502 117C498 114 493 108 485 103C478 98 467 91 459 86C450 81 440 77 433 73C427 69 422 66 417 62C413 58 408 53 406 51C404 48 404 48 403 45C402 43 399 38 398 34C397 31 398 28 397 27C396 25 395 23 395 23C395 23 393 23 393 23C393 23 387 39 382 45C377 52 367 60 362 64C358 68 357 68 352 71C347 74 339 78 332 81C326 84 316 86 312 88C309 90 310 91 310 91C310 91 309 92 312 93C314 94 321 98 324 99C328 100 324 102 330 99C337 97 354 88 362 84C369 80 371 78 376 74C380 70 385 64 388 62C390 60 392 61 392 61C392 61 400 71 405 75C409 79 409 79 417 84C425 89 443 98 453 104C462 109 465 112 472 117C478 122 485 129 491 136C497 142 502 153 505 158C508 162 474 160 509 160C543 160 713 160 713 160C713 160 711 162 713 160ZM481 160C481 159 482 156 482 156C482 156 480 152 477 148C474 145 471 141 467 137C462 133 456 128 452 125C448 122 452 124 443 119C433 114 402 98 393 94C385 90 390 93 390 93C390 93 389 95 389 95C389 95 389 97 389 97C389 97 393 101 399 106C404 111 416 119 424 126C431 133 438 140 443 146C448 151 453 159 453 159C453 159 481 160 481 160C481 160 481 160 481 160Z%22/%3E%3Cpath d=%22M322 522C326 519 334 517 346 509C357 501 379 484 390 476C400 469 401 468 409 464C418 460 431 454 441 450C450 447 458 445 467 443C475 441 485 440 493 440C500 439 505 440 512 440C518 440 521 441 529 442C537 444 545 444 560 449C574 453 604 465 619 469C633 473 640 473 648 474C656 475 660 475 667 474C673 473 681 472 689 470C696 468 706 463 713 460C719 457 723 452 726 450C729 447 731 445 732 444C733 442 734 440 734 440C734 440 732 439 732 439C732 439 722 446 717 449C713 452 709 454 703 456C696 458 686 460 679 461C671 462 663 462 656 461C648 461 643 460 636 458C628 456 618 453 609 450C599 447 591 442 579 438C566 434 545 429 536 427C526 425 530 425 520 425C510 425 486 425 476 426C465 427 462 428 455 430C447 432 442 433 433 437C423 441 411 447 401 453C390 459 384 464 372 474C359 484 333 506 324 514C316 522 318 521 318 521C318 521 318 522 318 522C318 522 322 522 322 522C322 522 318 524 322 522Z%22/%3E%3Cpath d=%22M192 523C192 523 214 522 220 521C225 520 223 519 224 519C226 519 227 520 230 519C234 519 243 517 246 516C250 515 248 514 252 513C256 512 262 511 270 508C279 505 292 499 302 495C311 491 317 488 326 483C334 478 345 471 352 467C358 464 361 464 364 462C366 461 366 459 368 458C370 457 372 457 376 455C379 453 384 449 390 446C395 443 401 440 411 436C420 432 437 426 445 423C453 420 454 421 459 420C463 419 469 420 472 419C474 419 468 418 476 417C483 417 503 415 515 416C526 417 535 418 547 421C558 424 577 430 585 432C592 435 584 433 592 436C600 439 621 447 633 450C644 453 650 455 661 456C671 457 688 456 695 455C702 454 700 453 703 452C705 452 705 453 708 452C710 451 720 445 720 445C720 445 720 444 720 444C720 444 719 442 719 442C719 442 709 445 705 446C702 447 702 447 696 447C690 447 679 447 669 445C660 443 648 438 640 435C632 432 625 429 621 427C618 425 619 424 617 423C614 422 611 422 605 420C600 418 595 414 585 411C576 408 556 402 549 400C543 398 547 400 545 400C542 399 545 398 535 397C524 396 499 393 484 393C468 393 453 396 440 398C426 400 417 402 405 406C392 410 376 416 364 421C353 426 350 427 336 434C323 441 296 456 286 461C275 466 277 464 274 465C271 466 271 467 268 469C264 471 259 473 252 475C246 477 235 481 228 483C222 485 220 484 214 485C209 486 201 489 196 490C192 491 192 489 188 490C183 491 179 493 172 493C164 494 144 493 144 493C144 493 144 494 144 494C144 494 126 494 114 492C101 490 82 486 71 483C59 480 55 478 48 475C40 472 27 465 27 465C27 465 25 467 25 467C25 467 22 465 26 469C30 472 39 480 47 485C54 490 64 496 72 500C79 504 82 506 92 509C101 512 120 517 128 519C135 521 132 519 136 519C140 520 142 521 152 522C161 523 192 523 192 523C192 523 192 523 192 523Z%22/%3E%3Cpath d=%22M660 521C665 520 682 517 689 515C697 513 698 513 704 510C710 507 719 503 725 499C732 495 736 491 741 486C747 481 753 473 757 469C761 464 762 461 764 456C766 451 769 445 770 438C771 432 772 423 771 417C770 410 767 404 765 399C763 395 757 391 757 391C757 391 753 393 753 393C753 393 756 403 756 408C757 412 757 414 756 418C756 421 754 426 753 430C752 433 751 436 747 442C743 447 735 455 729 460C722 465 716 469 711 472C705 475 702 477 697 479C691 481 685 484 679 485C673 487 667 488 661 488C654 489 648 488 641 488C635 488 629 487 623 486C616 485 607 483 601 481C595 479 590 476 587 475C583 474 585 476 581 474C576 472 570 468 561 465C553 462 539 458 531 456C522 454 517 455 513 454C509 453 513 452 507 452C500 452 484 452 476 452C467 453 463 454 456 455C449 457 441 458 433 461C426 464 417 467 409 471C400 475 391 479 382 486C372 493 355 506 349 511C343 515 347 515 347 515C347 515 347 516 350 515C352 514 355 512 364 509C374 506 397 498 409 495C422 492 430 491 440 490C449 489 460 489 467 489C474 489 477 489 481 490C486 491 491 493 495 493C498 494 499 493 501 493C503 493 505 495 507 495C508 495 506 493 513 495C519 496 541 502 548 504C555 506 553 507 555 507C556 508 556 506 559 507C562 508 563 510 573 512C583 514 604 520 619 521C633 523 660 521 660 521C660 521 655 522 660 521Z%22/%3E%3C/g%3E%3Cg fill=%22%23f4e7aa%22%3E%3Ccircle cx=%220%22 cy=%220%22 r=%221.1%22/%3E%3Ccircle cx=%2252%22 cy=%220%22 r=%221.1%22/%3E%3Ccircle cx=%220%22 cy=%2244%22 r=%221.1%22/%3E%3Ccircle cx=%2252%22 cy=%2244%22 r=%221.1%22/%3E%3C/g%3E%3C/svg%3E") center / 52px 44px; opacity: .42; -webkit-mask-image: radial-gradient(circle, #000 0%, rgba(0, 0, 0, .55) 28%, transparent 60%); mask-image: radial-gradient(circle, #000 0%, rgba(0, 0, 0, .55) 28%, transparent 60%); animation: oz-lantern-sway 14s ease-in-out infinite alternate; }
@keyframes oz-lantern-sway { from { transform: rotate(-7deg) scale(1.02); } to { transform: rotate(7deg) scale(1); } }

/* Logo de l'en-tête vivant : après le dessin d'ouverture, des animations se succèdent. */
.oz-js .oz-logo--dark.is-live .oz-logo__svg path, .oz-js .oz-logo--dark.is-live .oz-logo__word > span { animation: none; }
.oz-logo--dark .oz-mark__part { transform-box: fill-box; }
.oz-logo--dark .oz-logo__mark { position: relative; }
/* Reflet de lumière : une bande claire glisse sur l'or (invisible sur le fond blanc), les lettres s'illuminent. */
.oz-logo--dark .oz-logo__mark::after { content: ""; position: absolute; inset: -10% -40%; pointer-events: none; background: linear-gradient(105deg, rgba(255, 255, 255, 0) 38%, rgba(255, 255, 255, .95) 50%, rgba(255, 255, 255, 0) 62%); mix-blend-mode: overlay; opacity: 0; transform: translateX(-60%); }
.oz-js .oz-logo--dark.is-anim-glint .oz-logo__mark::after { animation: oz-mark-shine 1.7s cubic-bezier(.45, 0, .2, 1) both; }
.oz-js .oz-logo--dark.is-anim-glint .oz-logo__word > span { animation: oz-letter-shine 1.3s ease-in-out both; animation-delay: calc(.6s + var(--i) * .05s); }
@keyframes oz-mark-shine { 0% { opacity: 0; transform: translateX(-60%); } 15% { opacity: 1; } 85% { opacity: 1; } 100% { opacity: 0; transform: translateX(60%); } }
@keyframes oz-letter-shine { 0%, 100% { transform: none; filter: none; } 40% { transform: translateY(-2px); filter: brightness(1.45); } }
/* Émergence : le O, le Z et la coupole s'élèvent au-dessus des vagues, qui ondulent. */
.oz-js .oz-logo--dark.is-anim-build .oz-mark__part--o, .oz-js .oz-logo--dark.is-anim-build .oz-mark__part--z, .oz-js .oz-logo--dark.is-anim-build .oz-mark__part--coupole { transform-origin: 50% 100%; animation: oz-mark-rise 1.6s cubic-bezier(.2, .9, .25, 1.1) both; animation-delay: calc(var(--d) * .14s); }
.oz-js .oz-logo--dark.is-anim-build .oz-mark__part--vague-or, .oz-js .oz-logo--dark.is-anim-build .oz-mark__part--vague, .oz-js .oz-logo--dark.is-anim-build .oz-mark__part--houle { animation: oz-mark-wave 2s ease-in-out both; }
@keyframes oz-mark-rise { from { transform: translateY(22%) scaleY(.55); opacity: 0; } to { transform: none; opacity: 1; } }
/* Redessin : la matière s'efface, un trait d'or retrace le contour, puis tout se remplit. */
.oz-js .oz-logo--dark.is-anim-redraw .oz-logo__svg path:not(.oz-mark__spark) { stroke-dasharray: 1; animation: oz-mark-retrace 2.6s cubic-bezier(.65, 0, .35, 1) both; animation-delay: calc(var(--d) * .14s); }
/* La vague : les vagues ondulent et une étincelle brille à la pointe de la coupole. */
.oz-js .oz-logo--dark.is-anim-sun .oz-mark__part--vague-or, .oz-js .oz-logo--dark.is-anim-sun .oz-mark__part--vague, .oz-js .oz-logo--dark.is-anim-sun .oz-mark__part--houle { animation: oz-mark-wave 2.6s ease-in-out both; animation-delay: calc((var(--d) - 3) * .18s); }
.oz-js .oz-logo--dark.is-anim-sun .oz-mark__spark { animation: oz-mark-spark 1.8s ease-in-out .5s both; }
@keyframes oz-mark-wave { 0%, 100% { transform: none; } 30% { transform: translateX(-2.5%) skewX(-6deg); } 65% { transform: translateX(2%) skewX(4deg); } }
@keyframes oz-mark-spark { 0% { opacity: 0; transform: scale(.2) rotate(0deg); } 45% { opacity: 1; transform: scale(1.7) rotate(45deg); } 100% { opacity: 0; transform: scale(.4) rotate(90deg); } }
/* Respiration : le logo grandit légèrement dans un halo doré. */
.oz-js .oz-logo--dark.is-anim-breathe .oz-logo__mark { animation: oz-mark-breathe 2.4s ease-in-out both; }
@keyframes oz-mark-breathe { 0%, 100% { transform: none; filter: none; } 50% { transform: scale(1.07); filter: drop-shadow(0 0 7px rgba(214, 160, 50, .6)); } }
/* Pendant que sa copie part vers WhatsApp, le logo de l'en-tête s'illumine. */
.oz-logo--dark .oz-logo__mark { transition: filter .8s ease; }
.oz-logo--dark.is-emitting .oz-logo__mark { filter: drop-shadow(0 0 9px rgba(214, 160, 50, .65)); }

/* Texte des boutons qui roule au survol. */
.oz-roll { position: relative; display: inline-block; overflow: hidden; vertical-align: top; line-height: 1.34; margin: -.07em 0; }
.oz-roll__a, .oz-roll__b { display: block; transition: transform .6s cubic-bezier(.7, 0, .2, 1); }
.oz-roll__b { position: absolute; left: 0; top: 100%; }
@media (hover: hover) {
	.oz-btn:hover .oz-roll__a, .oz-btn:hover .oz-roll__b { transform: translateY(-100%); }
}

/* Images en relief : reflet de lumière qui suit la souris. */
.oz-glare { position: absolute; inset: 0; z-index: 0; pointer-events: none; border-radius: inherit; background: radial-gradient(circle at var(--gx, 50%) var(--gy, 50%), rgba(255, 255, 255, .26), rgba(255, 255, 255, 0) 58%); opacity: 0; transition: opacity .6s ease; }
.is-tilting > .oz-glare { opacity: 1; }

/* Rideau : les images se dévoilent de bas en haut et se posent en douceur. */
.oz-js .oz-reveal .oz-card__media, .oz-js .oz-reveal .oz-cat__img, .oz-js .oz-reveal .oz-city__img { clip-path: inset(100% -40% -40% -40%); transition: clip-path 1.6s cubic-bezier(.7, 0, .2, 1) calc(var(--oz-delay, 0ms) + .1s); }
.oz-js .oz-reveal.is-in .oz-card__media, .oz-js .oz-reveal.is-in .oz-cat__img, .oz-js .oz-reveal.is-in .oz-city__img { clip-path: inset(-40% -40% -40% -40%); }
.oz-js .oz-reveal:not(.is-in) .oz-card__media img { transform: scale(1.22); }
.oz-js .oz-reveal:not(.is-in) .oz-cat__img img, .oz-js .oz-reveal:not(.is-in) .oz-city__img img { --oz-scale: 1.4; }

/* Le trait doré des surtitres s'étire à l'apparition. */
.oz-kicker::before { transition: width 1.4s cubic-bezier(.7, 0, .2, 1) calc(var(--oz-delay, 0ms) + .35s); }
.oz-js .oz-reveal:not(.is-in) .oz-kicker::before, .oz-js .oz-kicker.oz-reveal:not(.is-in)::before { width: 0; }

/* Liens du pied de page et du fil d'Ariane : un trait se dessine au survol. */
.oz-footer__links a, .oz-footer__contact a, .oz-crumbs a { background: linear-gradient(currentColor, currentColor) no-repeat right 100% / 0 1px; transition: background-size .55s cubic-bezier(.7, 0, .2, 1), color .25s; }
.oz-footer__links a:hover, .oz-footer__contact a:hover, .oz-crumbs a:hover { background-position: left 100%; background-size: 100% 1px; }

/* Pied de page : le logo se dessine, puis les lettres apparaissent. */
.oz-footer__brand.is-drawable .oz-logo__svg path:not(.oz-mark__spark) { stroke-dasharray: 1; stroke-dashoffset: 1; stroke-width: 10; fill-opacity: 0; transition: stroke-dashoffset 2.2s cubic-bezier(.65, 0, .35, 1) calc(var(--d, 0) * .3s), fill-opacity 1.2s ease calc(1.5s + var(--d, 0) * .3s), stroke-width 1s ease calc(1.9s + var(--d, 0) * .3s); }
.oz-footer__brand.is-drawn .oz-logo__svg path:not(.oz-mark__spark) { stroke-dashoffset: 0; stroke-width: 0; fill-opacity: 1; }
.oz-footer__brand.is-drawable .oz-logo__word > span { opacity: 0; transform: translateY(8px); filter: blur(4px); transition: opacity 1.2s ease, transform 1.4s cubic-bezier(.16, 1, .3, 1), filter 1.2s ease; transition-delay: calc(1.8s + var(--i) * .07s); }
.oz-footer__brand.is-drawn .oz-logo__word > span { opacity: 1; transform: none; filter: none; }

/* Rythme général : plus d'air, transitions douces entre sections. */
.oz-section { padding: 130px 0; }
.oz-section--tight { padding: 72px 0; }
.oz-section--sand { background: linear-gradient(180deg, #fff 0%, var(--oz-sand) 16%, var(--oz-sand) 84%, #fff 100%); }
.oz-section__head { margin-bottom: 64px; }
.oz-section__head h2, .oz-band h2, .oz-about__text h2 { font-weight: 500; letter-spacing: -.015em; }
h2 { font-size: clamp(2.2rem, 4vw, 3.5rem); }
.oz-kicker::before { content: ""; display: inline-block; width: 30px; height: 1px; margin-right: 14px; vertical-align: middle; background: currentColor; }

/* En-tête : sans trait, ombre très douce. */
.oz-header.is-scrolled { border-color: transparent; box-shadow: 0 18px 40px -28px rgba(16, 41, 60, .35); }

/* Héros : bas arrondi, recherche en pilule de verre. */
.oz-hero { border-radius: 0 0 50% 50% / 0 0 80px 80px; }
.oz-hero__slide { transition: opacity 2.4s ease, transform 12s ease-out; }
.oz-js .oz-hero__content > :not(.oz-hero__title) { transition: opacity 1.8s ease, transform 2s cubic-bezier(.16, 1, .3, 1); }
.oz-js .oz-hero.is-ready .oz-hero__text { transition-delay: 1.1s; }
.oz-js .oz-hero.is-ready .oz-search { transition-delay: 1.5s; }
.oz-search__tabs { background: rgba(255, 255, 255, .12); }
.oz-search__fields { border-radius: 999px; padding: 8px 8px 8px 18px; background: rgba(255, 255, 255, .94); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 40px 90px -30px rgba(9, 25, 38, .55); }
.oz-search .oz-field { border-radius: 999px; }
.oz-search__submit { border-radius: 999px; padding-inline: 1.8em; }
.oz-search--compact .oz-search__fields { box-shadow: 0 30px 70px -40px rgba(16, 41, 60, .45); border: 0; }

/* Apparitions plus lentes et plus amples. */
.oz-js .oz-reveal { transform: translate3d(0, 48px, 0); transition: opacity 1.6s cubic-bezier(.16, 1, .3, 1), transform 1.9s cubic-bezier(.16, 1, .3, 1); transition-delay: var(--oz-delay, 0ms); }
.oz-js .oz-split .oz-w > span { transition: transform 1.6s cubic-bezier(.16, 1, .3, 1); transition-delay: calc(var(--i, 0) * 95ms + var(--oz-delay, 0ms)); }
.oz-js .oz-cat.oz-reveal, .oz-js .oz-city.oz-reveal, .oz-js .oz-spotlight.oz-reveal { clip-path: none; opacity: 0; transform: translate3d(0, 70px, 0); transition: opacity 1.6s ease, transform 2s cubic-bezier(.16, 1, .3, 1); transition-delay: var(--oz-delay, 0ms); }
.oz-js .oz-cat.oz-reveal.is-in, .oz-js .oz-city.oz-reveal.is-in, .oz-js .oz-spotlight.oz-reveal.is-in { opacity: 1; transform: none; clip-path: none; }
.oz-js .oz-cat.oz-reveal .oz-cat__body, .oz-js .oz-city.oz-reveal .oz-city__label { transition: opacity 1.4s ease .7s, transform 1.6s cubic-bezier(.16, 1, .3, 1) .7s; }
.oz-cat__img img, .oz-city img, .oz-spotlight__media > img, .oz-card__media img { transition: transform 1.6s cubic-bezier(.16, 1, .3, 1); }
.oz-marquee__track { animation-duration: 80s; }

/* Catégories : une galerie d'arches (portes marocaines), sans cadres. */
.oz-cats { display: flex; align-items: flex-start; gap: clamp(14px, 1.8vw, 26px); grid-template-columns: none; grid-auto-rows: auto; }
.oz-cat, .oz-cat:first-child { flex: 1 1 0; min-width: 0; display: block; grid-row: auto; grid-column: auto; background: none; color: var(--oz-navy); overflow: visible; border-radius: 0; isolation: auto; }
.oz-cat:nth-child(even) { margin-top: 64px; }
.oz-cat::after { display: none; }
.oz-cat__img { position: relative; inset: auto; z-index: 0; display: block; aspect-ratio: 3 / 4.6; border-radius: 999px 999px 24px 24px; overflow: hidden; background: var(--oz-sand-2); box-shadow: 0 40px 60px -40px rgba(16, 41, 60, .5); }
.oz-cat__body, .oz-cat:not(:first-child) .oz-cat__body { padding: 22px 2px 0; gap: 8px; }
.oz-cat__body strong, .oz-cat:first-child .oz-cat__body strong, .oz-cat:not(:first-child) .oz-cat__body strong { font-size: clamp(1.15rem, 1.4vw, 1.55rem); font-weight: 500; color: var(--oz-navy); transition: color .5s ease; overflow-wrap: anywhere; }
.oz-cat__body span, .oz-cat:first-child .oz-cat__body span { display: -webkit-box; color: var(--oz-muted); font-size: .84rem; }
.oz-cat__arrow { display: none; }
.oz-cat:hover { color: var(--oz-navy); }
.oz-cat:hover .oz-cat__body strong { color: var(--oz-gold-dark); }

/* À la une : pas de cadre, grande image arrondie et texte libre. */
.oz-spotlight { background: none; border: 0; box-shadow: none; border-radius: 0; overflow: visible; gap: clamp(32px, 5vw, 84px); align-items: center; }
.oz-spotlight__media { border-radius: 40px; overflow: hidden; min-height: 580px; box-shadow: 0 60px 90px -50px rgba(16, 41, 60, .6); }
.oz-spotlight__body { padding: 0; }
.oz-spotlight__thumbs img, .oz-spotlight__more { width: 58px; height: 58px; border-radius: 50%; }
.oz-spotlight__features { gap: 10px 26px; }
.oz-spotlight__features li { padding: 0; background: none; font-weight: 500; }
.oz-spotlight__foot { border-top: 0; padding-top: 12px; }

/* Cartes de biens et d'articles : l'image arrondie suffit. */
.oz-card { background: none; border: 0; border-radius: 0; overflow: visible; }
.oz-card:hover { box-shadow: none; transform: none; }
.oz-card__media { border-radius: 28px; overflow: hidden; }
.oz-card__body { padding: 22px 4px 0; }
.oz-card__price { border-top: 0; padding-top: 8px; font-family: var(--oz-serif); font-size: 1.5rem; }
.oz-grid { gap: 56px 34px; }

/* Services : une liste éditoriale numérotée, sans boîtes. */
.oz-services { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 80px; }
.oz-service { display: grid; grid-template-columns: 70px 1fr; column-gap: 12px; padding: 38px 0; border: 0; border-top: 1px solid var(--oz-line); border-radius: 0; background: none; transition: padding-left .8s cubic-bezier(.16, 1, .3, 1); }
.oz-service:hover { box-shadow: none; transform: none; padding-left: 12px; }
.oz-service__icon { display: none; }
.oz-service__num { grid-row: span 3; font-family: var(--oz-serif); font-size: 1.15rem; font-style: italic; color: var(--oz-gold); padding-top: 10px; }
.oz-service h3 { font-size: 2rem; font-weight: 500; margin-bottom: .3em; }
.oz-service p { margin-bottom: 14px; }
.oz-service .oz-link { opacity: 0; transform: translateX(-10px); transition: opacity .6s ease, transform .8s cubic-bezier(.16, 1, .3, 1); }
.oz-service:hover .oz-link { opacity: 1; transform: none; }

/* Qui sommes-nous : chiffres sans cases. */
.oz-video { border-radius: 36px; }
.oz-stats li { padding: 4px 0 4px 20px; border: 0; border-left: 1px solid rgba(229, 212, 138, .35); border-radius: 0; background: none; }

/* Villes : arches décalées, nom en italique dessous. */
.oz-cities, .oz-cities--3, .oz-cities--2 { display: flex; align-items: flex-start; gap: clamp(16px, 2vw, 30px); grid-template-columns: none; }
.oz-city { flex: 1 1 0; min-width: 0; aspect-ratio: auto; background: none; overflow: visible; border-radius: 0; color: var(--oz-navy); text-align: center; isolation: auto; }
.oz-city:nth-child(even) { margin-top: 80px; }
.oz-city::after { display: none; }
.oz-city__img { position: relative; display: block; aspect-ratio: 3 / 4.4; border-radius: 999px 999px 26px 26px; overflow: hidden; background: var(--oz-sand-2); box-shadow: 0 40px 60px -40px rgba(16, 41, 60, .5); }
.oz-city img { z-index: auto; }
.oz-city__label { position: static; padding-top: 20px; align-items: center; gap: 4px; }
.oz-city__label strong { font-size: 2.1rem; font-weight: 500; font-style: italic; color: var(--oz-navy); }
.oz-city__label span { justify-content: center; color: var(--oz-muted); }
.oz-city:hover { color: var(--oz-navy); }

/* Contact et formulaires : lignes fines plutôt que boîtes. */
.oz-contact__form { background: none; border: 0; box-shadow: none; padding: 0; border-radius: 0; }
.oz-input > span { font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--oz-muted); }
.oz-input input, .oz-input select, .oz-input textarea { padding: .75em 0; border: 0; border-bottom: 1.5px solid var(--oz-line); border-radius: 0; background: transparent; }
.oz-input input:focus, .oz-input select:focus, .oz-input textarea:focus { box-shadow: none; border-bottom-color: var(--oz-gold); }
.oz-input textarea { min-height: 90px; }
.oz-contact-card { border: 0; border-radius: 32px; box-shadow: 0 50px 90px -50px rgba(16, 41, 60, .55); }
.oz-contact-card .oz-input input, .oz-contact-card .oz-input textarea { background: transparent; }
.oz-step { border: 0; padding: 0; background: none; }
.oz-step + .oz-step { margin-top: 26px; }
.oz-drop { border-radius: 32px; }
.oz-panel, .oz-panel--navy { padding: 4px 0 4px 26px; border-radius: 0; background: none; border-left: 1px solid var(--oz-line); color: var(--oz-muted); }
.oz-panel--navy > .oz-icon { color: var(--oz-gold); }
.oz-panel--navy .oz-btn--light { background: var(--oz-wa); color: #fff; }
.oz-owner-cta { padding: 48px 0 0; border-top: 1px solid var(--oz-line); border-radius: 0; background: none; }
.oz-empty { border: 0; background: none; }

/* Pages intérieures et fiche bien. */
.oz-pagehead { padding: 96px 0 44px; border-bottom: 0; background: linear-gradient(180deg, var(--oz-sand) 0%, #fff 100%); }
.oz-specs { display: flex; flex-wrap: wrap; gap: 26px 46px; }
.oz-specs li { padding: 0; border-radius: 0; background: none; }
.oz-gallery-hero { gap: 8px; }
.oz-gallery-hero .oz-gallery-hero__item { border-radius: 24px; }
.oz-block { border-top: 0; }

/* Pied de page : bord supérieur arrondi. */
.oz-footer { border-radius: 60px 60px 0 0; }

@media (max-width: 1060px) {
	.oz-search__fields { border-radius: 30px; padding: 8px; }
	.oz-cats, .oz-cities, .oz-cities--3, .oz-cities--2 { overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: -24px; padding: 0 24px 24px; scrollbar-width: none; }
	.oz-cats::-webkit-scrollbar, .oz-cities::-webkit-scrollbar { display: none; }
	.oz-cat, .oz-cat:first-child { flex: 0 0 31%; scroll-snap-align: start; }
	.oz-city { flex: 0 0 38%; scroll-snap-align: start; }
	.oz-services { grid-template-columns: 1fr; }
	.oz-service .oz-link { opacity: 1; transform: none; }
	.oz-spotlight__media { min-height: 0; }
}

@media (max-width: 700px) {
	.oz-section { padding: 84px 0; }
	.oz-section__head { margin-bottom: 40px; }
	.oz-hero { border-radius: 0 0 50% 50% / 0 0 40px 40px; }
	.oz-search__fields { border-radius: 26px; }
	.oz-search .oz-field { border-radius: 14px; }
	.oz-cats, .oz-cities, .oz-cities--3, .oz-cities--2 { margin-inline: -16px; padding-inline: 16px; }
	.oz-cat, .oz-cat:first-child { flex-basis: 58%; }
	.oz-cat:nth-child(even) { margin-top: 36px; }
	.oz-city { flex-basis: 64%; }
	.oz-city:nth-child(even) { margin-top: 44px; }
	.oz-cat__body strong, .oz-cat:first-child .oz-cat__body strong, .oz-cat:not(:first-child) .oz-cat__body strong { font-size: 1.35rem; }
	.oz-service { grid-template-columns: 46px 1fr; padding: 30px 0; }
	.oz-service h3 { font-size: 1.65rem; }
	.oz-spotlight__media { border-radius: 28px; }
	.oz-logo__mark { width: 66px; }
	.oz-logo__word { font-size: 9.5px; }
	.oz-gallery-hero .oz-gallery-hero__item { border-radius: 0; }
	.oz-footer { border-radius: 36px 36px 0 0; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
	.oz-hero__slide { transform: none !important; }
	.oz-js .oz-reveal, .oz-js .oz-split .oz-w > span, .oz-js .oz-hero__content > * { opacity: 1 !important; transform: none !important; clip-path: none !important; }
	.oz-marquee__track { animation: none; }
	.oz-wa__logo path, .oz-logo__svg path { stroke-dashoffset: 0 !important; stroke-width: 0 !important; fill-opacity: 1 !important; animation: none !important; }
	.oz-logo--dark .oz-logo__mark::after { display: none; }
	.oz-logo__word > span { animation: none !important; opacity: 1 !important; }
	.oz-traveler, .oz-trail, .oz-wa__ripple { display: none !important; }
	.oz-cursor, .oz-glare, .oz-lantern, .oz-touchfx { display: none !important; }
	.is-swipe > * { scale: 1 !important; opacity: 1 !important; }
	.oz-js .oz-reveal .oz-card__media, .oz-js .oz-reveal .oz-cat__img, .oz-js .oz-reveal .oz-city__img { clip-path: none !important; }
	.oz-loading .oz-main { opacity: 1; }
	@view-transition { navigation: none; }
}

/* Téléphone : la lumière suit le doigt (onde dorée, poussière d'or, lanterne sur fond sombre). */
.oz-touchfx { position: fixed; inset: 0; z-index: 100001; pointer-events: none; }
.oz-touchfx canvas { display: block; width: 100%; height: 100%; }
.oz-touchfx__wave { position: absolute; width: 70px; height: 70px; translate: -50% -50%; border-radius: 50%; border: 1px solid rgba(176, 152, 48, .85); box-shadow: 0 0 22px rgba(214, 179, 71, .35), inset 0 0 14px rgba(214, 179, 71, .2); animation: oz-touch-wave .9s cubic-bezier(.2, .7, .2, 1) forwards; }
.oz-touchfx__wave.is-dark { border-color: rgba(244, 231, 170, .95); box-shadow: 0 0 26px rgba(255, 224, 138, .55), inset 0 0 16px rgba(255, 224, 138, .3); }
@keyframes oz-touch-wave { from { transform: scale(.15); opacity: 1; } to { transform: scale(1.7); opacity: 0; } }
.oz-lantern--touch { width: 300px; height: 300px; transition: opacity .5s ease; }

/* Carrousels au doigt : la carte du centre s'avance, un trait d'or suit la progression. */
.oz-swipe { display: none; }
@media (max-width: 1060px) {
	.is-swipe > * { scale: calc(.9 + .1 * var(--f, 1)); opacity: calc(.6 + .4 * var(--f, 1)); transition: scale .35s ease-out, opacity .35s ease-out; }
	.oz-swipe.is-on { display: block; position: relative; height: 2px; max-width: 140px; margin: 6px auto 0; border-radius: 2px; background: var(--oz-line); overflow: hidden; }
	.oz-swipe span { position: absolute; inset: 0; background: var(--oz-gold); transform-origin: left; transform: scaleX(.12); transition: transform .25s ease-out; }
}
@media (max-width: 700px) {
	/* Les services deviennent des cartes à faire glisser : la page est plus courte. */
	.oz-services { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: -16px; padding: 6px 16px 22px; scrollbar-width: none; }
	.oz-services::-webkit-scrollbar { display: none; }
	.oz-service { flex: 0 0 82%; scroll-snap-align: center; grid-template-columns: 1fr; align-content: start; padding: 26px 22px 24px; border: 1px solid var(--oz-line); border-radius: 26px; background: #fff; box-shadow: 0 26px 40px -32px rgba(16, 41, 60, .4); }
	.oz-service:hover { padding-left: 22px; }
	.oz-service__num { grid-row: auto; font-size: 2.1rem; line-height: 1; padding: 0 0 10px; }
	/* Apparitions plus vives sur téléphone. */
	.oz-js .oz-reveal { transition-duration: 1s, 1.2s; }
	.oz-js .oz-cat.oz-reveal, .oz-js .oz-city.oz-reveal, .oz-js .oz-spotlight.oz-reveal { transition-duration: 1.1s, 1.3s; }
}
/* Sous le doigt, photos et boutons s'enfoncent légèrement. */
@media (hover: none) {
	.oz-cat__img, .oz-city__img, .oz-card__media, .oz-spotlight__media { transition: transform .25s ease; }
	.oz-cat:active .oz-cat__img, .oz-city:active .oz-city__img, .oz-card:active .oz-card__media, .oz-spotlight:active .oz-spotlight__media { transform: scale(.965); }
	.oz-btn:active { transform: scale(.96); }
}
