/* ═══════════════════════════════════════════════════════════════
   PAGES MÉTIER — feuille différée (15/10/2026)
   Activée à l'approche de la démonstration ou des sections du bas
   (js/v4/offre-secteur.js) : la démonstration, les scènes de la
   planche de la méthode, les visuels des six livrables.
   ═══════════════════════════════════════════════════════════════ */

/* ═══ LA MÉTHODE : les scènes de la planche ═══ */
.oz-scene { position: absolute; inset: 0; display: grid; align-content: center; gap: 14px; padding: 50px 24px 34px; opacity: 0; visibility: hidden; transition: opacity 450ms ease, visibility 0s linear 450ms; color: var(--sur-noir); }
[data-courant="1"] .oz-scene--1, [data-courant="2"] .oz-scene--2,
[data-courant="3"] .oz-scene--3, [data-courant="4"] .oz-scene--4 { opacity: 1; visibility: visible; transition: opacity 450ms ease 120ms, visibility 0s; }
.oz-scene-note { position: absolute; right: 16px; bottom: 10px; color: rgba(255, 255, 255, 0.35); font-size: 10px; }
.oz-scene img { display: block; }
@keyframes oz-pop { from { opacity: 0; transform: scale(0.4); } }
@keyframes oz-glisse { from { opacity: 0; transform: translateY(14px); } }
@keyframes oz-jauge { from { transform: scaleX(0); } }
@keyframes oz-pose { from { opacity: 0; transform: translateY(24px) rotate(var(--r, 0deg)) scale(0.9); } }

/* 1 · Stratégie */
.oz-brief { display: grid; gap: 8px; padding: 12px 14px; border-radius: 12px; background: #fff; color: #141414; }
.oz-brief small, .oz-canaux > small { color: #6B6B6B; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; }
.oz-canaux > small { color: var(--sur-noir-2); }
.oz-brief-puces { display: flex; flex-wrap: wrap; gap: 6px; }
.oz-brief-puces span { padding: 4px 10px; border-radius: 99px; background: #F4EEDC; color: #3A3220; font-size: 11.5px; font-weight: 500; }
.oz-canaux { display: grid; gap: 7px; padding: 12px 14px; border-radius: 12px; background: rgba(255, 255, 255, 0.04); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08); }
.oz-canal { display: grid; grid-template-columns: 150px minmax(0, 1fr) 40px; align-items: center; gap: 10px; font-size: 12px; }
.oz-canal-nom { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.oz-canal-nom img { width: 18px; height: 18px; padding: 2px; border-radius: 5px; background: #fff; }
.oz-canal-barre { height: 8px; border-radius: 99px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.oz-canal-barre i { display: block; width: calc(var(--p) * 2%); height: 100%; border-radius: inherit; background: linear-gradient(90deg, rgba(209, 163, 38, 0.5), var(--or)); transform-origin: left; }
.oz-canal b { color: var(--or); font-size: 12px; text-align: right; font-variant-numeric: tabular-nums; }
.oz-decision { display: grid; grid-template-columns: 1.5fr 1fr; gap: 10px; }
.oz-decision > span { display: grid; gap: 2px; padding: 10px 14px; border-radius: 12px; background: rgba(255, 255, 255, 0.05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08); }
.oz-decision > span:first-child { background: rgba(209, 163, 38, 0.14); box-shadow: inset 0 0 0 1px rgba(209, 163, 38, 0.45); }
.oz-decision small { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.7; }
.oz-decision b { font-size: 14.5px; }
.oz-decision > span:first-child b { color: var(--or); }
[data-courant="1"] .oz-brief-puces span { animation: oz-pop 350ms cubic-bezier(0.3, 1.6, 0.5, 1) backwards; }
[data-courant="1"] .oz-brief-puces span:nth-child(2) { animation-delay: 90ms; } [data-courant="1"] .oz-brief-puces span:nth-child(3) { animation-delay: 180ms; } [data-courant="1"] .oz-brief-puces span:nth-child(4) { animation-delay: 270ms; }
[data-courant="1"] .oz-canal { animation: oz-glisse 450ms var(--ressort) calc(300ms + var(--i) * 110ms) backwards; }
[data-courant="1"] .oz-canal-barre i { animation: oz-jauge 900ms cubic-bezier(0.2, 0.8, 0.2, 1) calc(600ms + var(--i) * 140ms) backwards; }
[data-courant="1"] .oz-decision > span { animation: oz-glisse 500ms var(--ressort) 1500ms backwards; }
[data-courant="1"] .oz-decision > span:nth-child(2) { animation-delay: 1650ms; }

/* 2 · Image */
.oz-identite { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 14px; align-items: center; }
.oz-moodboard { position: relative; height: 190px; }
.oz-moodboard img { position: absolute; width: 46%; height: 150px; object-fit: cover; border-radius: 6px; border: 4px solid #fff; box-shadow: 0 18px 30px -16px rgba(0, 0, 0, 0.8); transform: rotate(var(--r)); }
.oz-moodboard img:nth-child(1) { left: 0; top: 12px; }
.oz-moodboard img:nth-child(2) { left: 28%; top: 0; z-index: 1; }
.oz-moodboard img:nth-child(3) { left: 54%; top: 26px; }
.oz-specimen { display: grid; gap: 8px; padding: 16px; border-radius: 12px; background: var(--oz-fond); color: var(--oz-marque); }
.oz-specimen-marque { font-size: 26px; font-weight: 500; letter-spacing: 0.12em; line-height: 1; }
.oz-specimen-aa { display: flex; align-items: baseline; gap: 10px; font-size: 44px; line-height: 1; }
.oz-specimen-aa small { font: 500 10.5px/1.2 var(--police, inherit); font-family: inherit; letter-spacing: 0.04em; opacity: 0.65; }
.oz-nuancier { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.oz-nuancier span { display: grid; gap: 2px; }
.oz-nuancier i { height: 38px; border-radius: 8px; background: var(--c); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12); }
.oz-nuancier b { font-size: 11.5px; font-weight: 500; }
.oz-nuancier small { color: var(--sur-noir-2); font: 10px ui-monospace, 'SF Mono', Menlo, monospace; }
.oz-gabarits { display: flex; flex-wrap: wrap; gap: 6px; }
.oz-gabarits span { padding: 4px 10px; border-radius: 99px; box-shadow: inset 0 0 0 1px rgba(209, 163, 38, 0.45); color: #E6BA42; font-size: 11px; }
[data-courant="2"] .oz-moodboard img { animation: oz-pose 600ms var(--ressort) backwards; }
[data-courant="2"] .oz-moodboard img:nth-child(2) { animation-delay: 120ms; } [data-courant="2"] .oz-moodboard img:nth-child(3) { animation-delay: 240ms; }
[data-courant="2"] .oz-specimen { animation: oz-glisse 500ms var(--ressort) 400ms backwards; }
[data-courant="2"] .oz-nuancier span { animation: oz-pop 380ms cubic-bezier(0.3, 1.6, 0.5, 1) backwards; }
[data-courant="2"] .oz-nuancier span:nth-child(1) { animation-delay: 700ms; } [data-courant="2"] .oz-nuancier span:nth-child(2) { animation-delay: 790ms; } [data-courant="2"] .oz-nuancier span:nth-child(3) { animation-delay: 880ms; } [data-courant="2"] .oz-nuancier span:nth-child(4) { animation-delay: 970ms; }
[data-courant="2"] .oz-gabarits span { animation: oz-pop 350ms cubic-bezier(0.3, 1.6, 0.5, 1) 1200ms backwards; }

/* 3 · Site : trois écrans, le parcours */
.oz-parcours { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.oz-parcours::before { content: ''; position: absolute; left: 12%; right: 12%; top: 44%; height: 2px; background: repeating-linear-gradient(90deg, var(--or) 0 6px, transparent 6px 11px); opacity: 0.6; }
.oz-etape-ecran { position: relative; display: grid; gap: 4px; justify-items: start; }
.oz-etape-ecran small { color: var(--or); font-size: 11px; font-weight: 600; }
.oz-etape-ecran b { font-size: 12.5px; font-weight: 500; line-height: 1.25; }
.oz-mini { display: grid; grid-template-rows: auto 1fr; width: 100%; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 10px; background: #F7F3EA; box-shadow: 0 18px 30px -18px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(255, 255, 255, 0.1); color: #1E1A12; }
.oz-mini-barre { display: flex; gap: 3px; padding: 6px 7px; background: #fff; }
.oz-mini-barre i { width: 5px; height: 5px; border-radius: 50%; background: #D8D2C4; }
.oz-mini-liste { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 6px; }
.oz-mini-liste img { width: 100%; height: 100%; min-height: 0; object-fit: cover; border-radius: 4px; }
.oz-mini-fiche { display: grid; grid-template-rows: 1fr auto auto auto; gap: 5px; padding: 0 0 8px; }
.oz-mini-fiche img { width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.oz-mini-fiche i, .oz-mini-form i { display: block; height: 6px; margin-inline: 8px; border-radius: 3px; background: #DDD5C3; }
.oz-mini-fiche i + i { width: 55%; }
.oz-mini-fiche u, .oz-mini-form u { margin: 2px 8px 0; padding: 5px 0; border-radius: 6px; background: #1E1A12; color: #F3EEE4; font-size: 9.5px; font-weight: 600; text-align: center; text-decoration: none; }
.oz-mini-form { display: grid; align-content: center; gap: 8px; padding: 8px 0; }
.oz-mini-form i { height: 18px; background: #fff; box-shadow: inset 0 0 0 1px #DDD5C3; }
.oz-mini-form s { margin: 0 8px; padding: 4px 6px; border-radius: 6px; background: #E5F3EA; color: #1F7A45; font-size: 9.5px; font-weight: 600; text-align: center; text-decoration: none; }
.oz-controles { display: flex; flex-wrap: wrap; gap: 6px; }
.oz-controles span { padding: 4px 10px 4px 8px; border-radius: 99px; background: rgba(61, 220, 132, 0.1); color: #9FE8BE; font-size: 11px; }
.oz-controles span::before { content: '✓ '; font-weight: 700; }
[data-courant="3"] .oz-etape-ecran { animation: oz-glisse 500ms var(--ressort) calc(var(--i) * 220ms) backwards; }
[data-courant="3"] .oz-parcours::before { animation: oz-jauge 900ms cubic-bezier(0.65, 0, 0.35, 1) 300ms backwards; transform-origin: left; }
[data-courant="3"] .oz-mini-form s { animation: oz-pop 400ms cubic-bezier(0.3, 1.6, 0.5, 1) 1100ms backwards; }
[data-courant="3"] .oz-controles span { animation: oz-pop 350ms cubic-bezier(0.3, 1.6, 0.5, 1) 900ms backwards; }

/* 4 · Visibilité */
.oz-classement { display: grid; gap: 6px; padding: 14px; border-radius: 14px; background: #fff; color: #202124; font: 12px/1.35 Arial, sans-serif; }
.oz-classement-requete { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; padding: 7px 12px; border-radius: 99px; box-shadow: 0 1px 5px rgba(32, 33, 36, 0.22); }
.oz-classement-requete svg { width: 13px; height: 13px; fill: none; stroke: #9AA0A6; stroke-width: 1.6; }
.oz-classement-ligne { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 9px; }
.oz-classement-ligne > b { color: #9AA0A6; font-size: 13px; text-align: center; }
.oz-classement-ligne > span { display: grid; gap: 4px; }
.oz-classement-ligne > span i { display: block; height: 6px; border-radius: 3px; background: #EEF0F2; }
.oz-classement-ligne > span i:first-child { width: 45%; background: #DCE3F5; }
.oz-classement-ligne.est-nous { background: #FFFBEE; box-shadow: inset 0 0 0 1px rgba(209, 163, 38, 0.45); }
.oz-classement-ligne.est-nous > b { color: #8A6B12; }
.oz-classement-ligne.est-nous span b { color: #1A0DAB; font-size: 13.5px; font-weight: 400; }
.oz-classement-ligne.est-nous small { color: #4D5156; font-size: 11px; }
.oz-classement-ligne em { padding: 2px 8px; border-radius: 99px; background: #E6F4EA; color: #188038; font-style: normal; font-size: 11px; font-weight: 700; }
.oz-ia { display: grid; gap: 8px; padding: 14px; border-radius: 14px; background: rgba(255, 255, 255, 0.05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1); }
.oz-ia-tete { display: flex; align-items: center; gap: 6px; }
.oz-ia-tete img { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: #fff; }
.oz-ia-tete small { margin-left: 4px; color: var(--sur-noir-2); font-size: 11px; }
.oz-ia-texte { font-size: 13px; line-height: 1.5; }
.oz-ia-texte b { color: var(--or); font-weight: 600; box-shadow: 0 1px 0 rgba(209, 163, 38, 0.6); }
[data-courant="4"] .oz-classement-ligne { animation: oz-glisse 450ms var(--ressort) backwards; }
[data-courant="4"] .oz-classement-ligne:nth-child(3) { animation-delay: 120ms; } [data-courant="4"] .oz-classement-ligne:nth-child(4) { animation-delay: 240ms; }
[data-courant="4"] .oz-classement-ligne.est-nous { animation: oz-monte-premier 900ms var(--ressort) 300ms backwards; }
@keyframes oz-monte-premier { from { opacity: 0; transform: translateY(80px); } }
[data-courant="4"] .oz-classement-ligne em { animation: oz-pop 400ms cubic-bezier(0.3, 1.6, 0.5, 1) 1100ms backwards; }
[data-courant="4"] .oz-ia { animation: oz-glisse 500ms var(--ressort) 1300ms backwards; }
@media (prefers-reduced-motion: reduce) {
  .oz-scene, .oz-scene * { animation: none !important; }
}

/* ═══ LES LIVRABLES : six tuiles, calmes ═══ */
.oz-bento {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-areas: none;
}
.oz-bento .od-tuile { grid-area: auto; }
.oz-bento .od-tuile-vue { height: 260px; display: grid; place-items: center; padding: 18px; }
@media (max-width: 1100px) { .oz-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .oz-bento { grid-template-columns: minmax(0, 1fr); } }
.oz-tuile img { display: block; }

/* Les écrans */
.oz-v-ecrans { position: relative; width: 100%; height: 100%; }
.oz-v-bureau { position: absolute; left: 4%; top: 6%; width: 78%; height: 80%; overflow: hidden; border-radius: 8px; background: #fff; box-shadow: 0 20px 34px -18px rgba(0, 0, 0, 0.9); }
.oz-v-barre { display: flex; gap: 4px; padding: 6px 8px; background: #F2EFE8; }
.oz-v-barre i { width: 6px; height: 6px; border-radius: 50%; background: #D3CEC2; }
.oz-v-bureau img { width: 100%; height: calc(100% - 18px); object-fit: cover; transition: transform 1.4s cubic-bezier(0.2, 0.8, 0.2, 1); }
.oz-v-tel { position: absolute; right: 4%; bottom: 0; width: 26%; aspect-ratio: 9 / 18; overflow: hidden; border-radius: 14px; border: 4px solid #111; box-shadow: 0 20px 30px -14px rgba(0, 0, 0, 0.9); }
.oz-v-tel img { width: 100%; height: 100%; object-fit: cover; }
.oz-tuile:hover .oz-v-bureau img { transform: scale(1.05); }

/* La gestion de contenu */
.oz-v-cms { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; }
.oz-v-cms-studio { display: grid; align-content: center; gap: 10px; padding: 12px; border-radius: 10px; background: #1A1A1A; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1); }
.oz-v-champ { display: grid; gap: 4px; }
.oz-v-champ small { color: var(--sur-noir-2); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; }
.oz-v-champ span { padding: 7px 9px; border-radius: 7px; background: #0E0E0E; box-shadow: inset 0 0 0 1px rgba(209, 163, 38, 0.6); font-size: 11.5px; line-height: 1.3; }
.oz-v-publier { justify-self: start; padding: 5px 12px; border-radius: 99px; background: var(--or); color: #111; font-size: 11px; font-weight: 700; }
.oz-v-cms-page { position: relative; overflow: hidden; border-radius: 10px; background: #fff; color: #1E1A12; }
.oz-v-cms-page img { width: 100%; height: 120px; object-fit: cover; }
.oz-v-cms-page b { display: block; padding: 8px 10px; font: 500 12.5px/1.3 'Fraunces', Georgia, serif; }

/* Les formulaires et créneaux */
.oz-v-form, .oz-v-creneaux { display: grid; gap: 6px; width: min(100%, 290px); padding: 12px 14px; border-radius: 12px; background: #FBF8F1; color: #1E1A12; box-shadow: 0 20px 34px -18px rgba(0, 0, 0, 0.9); }
.oz-v-form-titre { font: 500 15px/1.2 'Fraunces', Georgia, serif; }
.oz-v-input { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; border-radius: 7px; background: #fff; box-shadow: inset 0 0 0 1px #E2DACA; font-size: 11.5px; }
.oz-v-input small { color: #8A7F68; }
.oz-v-input b { font-weight: 600; }
.oz-v-form-bouton { padding: 7px; border-radius: 8px; background: #1E1A12; color: #F3EEE4; font-size: 11.5px; font-weight: 600; text-align: center; }
.oz-v-form-ok { padding: 5px 8px; border-radius: 7px; background: #E5F3EA; color: #1F7A45; font-size: 11px; font-weight: 600; text-align: center; opacity: 0.35; transition: opacity 400ms ease, transform 500ms cubic-bezier(0.3, 1.6, 0.5, 1); }
.oz-tuile:hover .oz-v-form-ok { opacity: 1; transform: scale(1.04); }
.oz-v-jour { color: #8A7F68; font-size: 11.5px; }
.oz-v-heures { display: flex; gap: 6px; }
.oz-v-heures i { flex: 1; padding: 6px 0; border-radius: 7px; box-shadow: inset 0 0 0 1px #E2DACA; font-style: normal; font-size: 11.5px; text-align: center; }
.oz-v-heures .est-choisi { background: #1E1A12; color: #F3EEE4; box-shadow: none; }

/* La fiche Google */
.oz-v-maps { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; width: 100%; padding: 12px; border-radius: 12px; background: #fff; color: #202124; font-family: Arial, sans-serif; box-shadow: 0 20px 34px -18px rgba(0, 0, 0, 0.9); }
.oz-v-maps img { width: 110px; height: 130px; object-fit: cover; border-radius: 8px; }
.oz-v-maps-txt { display: grid; align-content: center; gap: 5px; }
.oz-v-maps-txt > b { font-size: 14px; }
.oz-v-maps-txt > small { color: #70757A; font-size: 11px; }
.oz-v-maps-repondu { justify-self: start; padding: 3px 9px; border-radius: 99px; background: #E6F4EA; color: #188038; font-size: 10.5px; font-weight: 600; }

/* Les réseaux */
.oz-v-reseaux { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; width: 78%; }
.oz-v-reseaux img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 3px; transition: transform 500ms var(--ressort); }
.oz-tuile:hover .oz-v-reseaux img:nth-child(2n) { transform: scale(0.94); }

/* Les langues */
.oz-v-langues { display: grid; gap: 10px; width: min(100%, 300px); padding: 14px; border-radius: 12px; background: #FBF8F1; color: #1E1A12; box-shadow: 0 20px 34px -18px rgba(0, 0, 0, 0.9); }
.oz-v-langues-onglets { display: flex; gap: 6px; }
.oz-v-langues-onglets i { padding: 3px 10px; border-radius: 99px; box-shadow: inset 0 0 0 1px #E2DACA; font-style: normal; font-size: 11px; font-weight: 600; animation: oz-onglet 6s steps(1) infinite; }
.oz-v-langues-onglets i:nth-child(2) { animation-delay: -4s; } .oz-v-langues-onglets i:nth-child(3) { animation-delay: -2s; }
@keyframes oz-onglet { 0% { background: #1E1A12; color: #F3EEE4; } 33.3% { background: transparent; color: inherit; } }
.oz-v-langues-titre { position: relative; height: 22px; overflow: hidden; }
.oz-v-langues-titre b { position: absolute; inset: 0; font: 500 16px/22px 'Fraunces', Georgia, serif; white-space: nowrap; animation: oz-titre-langue 6s ease infinite; opacity: 0; }
.oz-v-langues-titre b:nth-child(2) { animation-delay: 2s; } .oz-v-langues-titre b:nth-child(3) { animation-delay: 4s; }
@keyframes oz-titre-langue { 0% { opacity: 0; transform: translateY(10px); } 5%, 28% { opacity: 1; transform: none; } 33%, 100% { opacity: 0; transform: translateY(-10px); } }
.oz-v-langues-lignes { display: grid; gap: 5px; }
.oz-v-langues-lignes i { display: block; height: 6px; border-radius: 3px; background: #E2DACA; }
.oz-v-langues-lignes i:nth-child(2) { width: 85%; } .oz-v-langues-lignes i:nth-child(3) { width: 60%; }
.oz-v-langues-hreflang { color: #8A6B12; font: 10.5px ui-monospace, 'SF Mono', Menlo, monospace; }

/* L'off-market */
.oz-v-off { display: grid; place-items: center; width: 100%; height: 100%; }
.oz-v-off-carte { position: relative; width: 70%; height: 100%; overflow: hidden; border-radius: 12px; box-shadow: 0 20px 34px -18px rgba(0, 0, 0, 0.9); }
.oz-v-off-carte img { width: 100%; height: 100%; object-fit: cover; filter: blur(4px) saturate(0.85); transform: scale(1.08); transition: filter 900ms ease; }
.oz-tuile:hover .oz-v-off-carte img { filter: blur(1.5px) saturate(0.9); }
.oz-v-off-voile { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 4px; background: rgba(20, 18, 14, 0.45); color: #F3EEE4; text-align: center; }
.oz-v-off-voile svg { width: 26px; height: 26px; fill: none; stroke: var(--or); stroke-width: 1.6; }
.oz-v-off-voile b { font: 500 15px/1.2 'Fraunces', Georgia, serif; }
.oz-v-off-voile small { font-size: 11px; opacity: 0.8; }

/* Les variantes et le panier */
.oz-v-variantes { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; width: 100%; padding: 12px; border-radius: 12px; background: #FBF8F1; color: #1E1A12; box-shadow: 0 20px 34px -18px rgba(0, 0, 0, 0.9); }
.oz-v-variantes img { width: 120px; height: 160px; object-fit: cover; border-radius: 8px; }
.oz-v-variantes-txt { display: grid; align-content: center; gap: 7px; }
.oz-v-variantes-txt > b { font: 500 15px/1.2 'Fraunces', Georgia, serif; }
.oz-v-variantes-txt > small { color: #8A7F68; font-size: 12px; }
.oz-v-pastilles { display: flex; gap: 6px; }
.oz-v-pastilles i { width: 18px; height: 18px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12); }
.oz-v-pastilles .est-choisi { box-shadow: 0 0 0 2px #FBF8F1, 0 0 0 3.5px #1E1A12; }
.oz-v-tailles { display: flex; gap: 4px; }
.oz-v-tailles i { padding: 3px 6px; border-radius: 5px; box-shadow: inset 0 0 0 1px #E2DACA; font-style: normal; font-size: 10.5px; }
.oz-v-tailles .est-choisi { background: #1E1A12; color: #F3EEE4; box-shadow: none; }
.oz-v-panier { display: grid; gap: 10px; width: min(100%, 300px); padding: 14px; border-radius: 12px; background: #FBF8F1; color: #1E1A12; box-shadow: 0 20px 34px -18px rgba(0, 0, 0, 0.9); font-size: 12px; }
.oz-v-panier-article { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.oz-v-panier-article img { width: 44px; height: 54px; object-fit: cover; border-radius: 6px; }
.oz-v-panier-article span { display: grid; }
.oz-v-panier-article small { color: #8A7F68; font-size: 10.5px; }
.oz-v-panier-lignes { display: grid; gap: 4px; padding-block: 8px; border-block: 1px solid #E2DACA; }
.oz-v-panier-lignes span { display: flex; justify-content: space-between; }
.oz-v-panier-lignes small { color: #8A7F68; }
.oz-v-paiement { display: flex; align-items: center; gap: 7px; font-size: 11px; }
.oz-v-paiement img { width: 16px; height: 16px; }
.oz-v-paiement em { margin-left: auto; white-space: nowrap; padding: 3px 8px; border-radius: 99px; background: #E5F3EA; color: #1F7A45; font-style: normal; font-weight: 700; opacity: 0.4; transition: opacity 400ms ease; }
.oz-tuile:hover .oz-v-paiement em { opacity: 1; }

/* Vos outils, reliés : le site au centre, les outils du métier autour */
.oz-v-outils { position: relative; width: 100%; height: 100%; }
.oz-v-outils-fils { position: absolute; inset: 0; width: 100%; height: 100%; }
.oz-v-outils-fils path { fill: none; stroke: rgba(209, 163, 38, 0.55); stroke-width: 1.4; stroke-dasharray: 4 5; animation: oz-fil 1.6s linear infinite; }
@keyframes oz-fil { to { stroke-dashoffset: -18; } }
.oz-v-outils-centre { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; padding: 10px 14px; border-radius: 12px; background: #FBF8F1; color: #1E1A12; font: 500 14px/1 'Fraunces', Georgia, serif; letter-spacing: 0.14em; transform: translate(-50%, -50%); box-shadow: 0 0 0 4px rgba(209, 163, 38, 0.25), 0 18px 30px -16px rgba(0, 0, 0, 0.9); }
.oz-v-outil { position: absolute; left: var(--x); top: var(--y); padding: 6px 11px; border-radius: 99px; background: #1A1A1A; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16); color: #EDEDED; font-size: 11.5px; white-space: nowrap; transform: translate(-50%, -50%); transition: box-shadow 300ms ease, color 300ms ease; }
.oz-tuile:hover .oz-v-outil { box-shadow: inset 0 0 0 1px var(--or); color: #F2D27A; }
@media (prefers-reduced-motion: reduce) { .oz-v-outils-fils path { animation: none; } }

/* Les revenus estimés (conciergerie) */
.oz-v-revenus { display: grid; gap: 4px; width: min(100%, 300px); padding: 14px; border-radius: 12px; background: #FBF8F1; color: #1E1A12; box-shadow: 0 20px 34px -18px rgba(0, 0, 0, 0.9); }
.oz-v-revenus > b { font-size: 20px; font-weight: 600; }
.oz-v-revenus > small { color: #8A7F68; font-size: 10.5px; }
.oz-v-barres { display: grid; grid-template-columns: repeat(12, 1fr); align-items: end; gap: 4px; height: 70px; margin-top: 8px; }
.oz-v-barres i { height: var(--h); border-radius: 3px 3px 0 0; background: linear-gradient(180deg, #D9785A, #E9B39F); transform-origin: bottom; transition: transform 600ms var(--ressort); }
.oz-tuile:hover .oz-v-barres i { transform: scaleY(1.06); }
.oz-v-mois { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; }
.oz-v-mois i { color: #8A7F68; font-style: normal; font-size: 9px; text-align: center; }

/* Le livret d'accueil (conciergerie) */
.oz-v-livret { display: grid; gap: 6px; width: min(100%, 270px); padding: 14px; border-radius: 16px; background: #FBF8F1; color: #1E1A12; box-shadow: 0 20px 34px -18px rgba(0, 0, 0, 0.9); }
.oz-v-livret-tete { font: 500 14px/1.2 'Fraunces', Georgia, serif; margin-bottom: 4px; }
.oz-v-livret-ligne { display: grid; grid-template-columns: 8px auto 1fr; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px #E2DACA; font-size: 11.5px; }
.oz-v-livret-ligne i { width: 8px; height: 8px; border-radius: 50%; background: #D9785A; }
.oz-v-livret-ligne small { color: #8A7F68; text-align: right; }

/* L'estimation dans la démo (conciergerie) */
.oz-s-estimation { display: grid; gap: 2px; padding: 12px 14px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--m-accent) 45%, transparent); }
.oz-s-estimation small { font-size: 11px; opacity: 0.7; }
.oz-s-estimation b { font-size: 19px; font-weight: 600; color: var(--m-encre); }

/* Le cas (conciergerie) : l'aperçu Sublimex défile. Même mesure que la
   page Développement : 4,349 largeurs, fenêtre de 0,625. */
.oz-cas--sublimex .od-cas-defile { animation-name: oz-defile-sx; }
/* STYS : 2,236 largeurs ; la fenêtre en montre 0,625 → −72 %. */
.oz-cas--stys .od-cas-defile { animation-name: oz-defile-stys; }
@keyframes oz-defile-stys {
  0%, 10% { transform: translateY(0); }
  90%, 100% { transform: translateY(-72%); }
}
@keyframes oz-defile-sx {
  0%, 10% { transform: translateY(0); }
  90%, 100% { transform: translateY(-85.6%); }
}

/* ═══════════════════════════════════════════════════════════════
   LA DÉMONSTRATION (construite par js/v4/offre-secteur.js)
   Deux volets : le site tel que le voit le client (clair, aux
   couleurs de la marque fictive) et ce qui arrive chez vous (sombre).
   ═══════════════════════════════════════════════════════════════ */
.oz-demo { --m-encre: #1E2B26; --m-fond: #F6F2E9; --m-accent: #B08D57; --m-doux: #E9E2D3; --m-police: 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="hotellerie"] { --m-encre: #1F2A44; --m-fond: #F7F2EA; --m-accent: #C98A2B; --m-doux: #ECE3D3; }
.oz-demo[data-oz-demo="conciergerie"] { --m-encre: #1D3A4A; --m-fond: #F5F2EC; --m-accent: #D9785A; --m-doux: #E4ECE9; }
.oz-demo[data-oz-demo="joaillerie"] { --m-encre: #141210; --m-fond: #F7F3EC; --m-accent: #A8873F; --m-doux: #ECE4D6; }
.oz-d { position: absolute; inset: 0; display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); grid-template-rows: 46px minmax(0, 1fr); font: 400 13px/1.4 'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif; }
:where(.oz-d) button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
:where(.oz-d) img { display: block; }

/* La barre du haut */
.oz-d-barre { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; padding: 0 16px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); color: var(--sur-noir-2); font-size: 12px; }
.oz-d-feux { display: flex; gap: 6px; }
.oz-d-feux i { width: 11px; height: 11px; border-radius: 50%; background: #FF5F57; } .oz-d-feux i:nth-child(2) { background: #FEBC2E; } .oz-d-feux i:nth-child(3) { background: #28C840; }
.oz-d-url { display: flex; align-items: center; gap: 7px; flex: 0 1 380px; margin-inline: auto; padding: 5px 12px; border-radius: 8px; background: rgba(255, 255, 255, 0.06); color: #D8D8D8; }
.oz-d-url svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.oz-d-mode { display: flex; align-items: center; gap: 8px; }
.oz-d-mode i { width: 7px; height: 7px; border-radius: 50%; background: var(--or); box-shadow: 0 0 8px var(--or); animation: oz-pouls 1.8s ease infinite; }
.oz-d.est-main .oz-d-mode i { background: #3DDC84; box-shadow: 0 0 8px #3DDC84; animation: none; }
@keyframes oz-pouls { 50% { opacity: 0.35; } }

/* Le site */
.oz-site { position: relative; overflow: hidden; background: var(--m-fond); color: var(--m-encre); }
.oz-site-defile { position: absolute; inset: 0; overflow-y: auto; overflow-x: hidden; scrollbar-width: none; }
.oz-site-defile::-webkit-scrollbar { display: none; }
.oz-s-entete { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 18px; height: 54px; padding: 0 22px; background: color-mix(in srgb, var(--m-fond) 90%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid color-mix(in srgb, var(--m-encre) 10%, transparent); }
.oz-s-logo { display: flex; align-items: center; gap: 8px; font: 500 17px/1 var(--m-police); letter-spacing: 0.16em; }
.oz-s-logo svg { width: 64px; height: 20px; }
.oz-s-nav { display: flex; gap: 16px; margin-left: auto; font-size: 12px; }
.oz-s-nav button { padding: 4px 0; opacity: 0.75; }
.oz-s-nav button.est-actif { opacity: 1; box-shadow: 0 2px 0 var(--m-accent); }
.oz-s-cta { padding: 7px 14px; border-radius: 99px; background: var(--m-encre); color: var(--m-fond) !important; font-size: 12px; font-weight: 600; }
.oz-s-panier { position: relative; display: grid; place-items: center; width: 30px; height: 30px; }
.oz-s-panier svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.oz-s-panier b { position: absolute; right: -2px; top: -2px; display: grid; place-items: center; min-width: 16px; height: 16px; border-radius: 99px; background: var(--m-accent); color: #fff; font-size: 9.5px; }
.oz-s-panier b:empty { display: none; }
.oz-s-hero { position: relative; height: 230px; overflow: hidden; }
.oz-s-hero img { width: 100%; height: 100%; object-fit: cover; }
.oz-s-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(0, 0, 0, 0.55)); }
.oz-s-hero-txt { position: absolute; left: 22px; right: 22px; bottom: 18px; z-index: 1; color: #fff; }
.oz-s-hero-txt small { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; opacity: 0.85; }
.oz-s-hero-txt b { display: block; font: 400 30px/1.1 var(--m-police); }
.oz-s-section { padding: 18px 22px; }
.oz-s-titre { margin: 0 0 12px; font: 400 21px/1.2 var(--m-police); }
.oz-s-puces { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.oz-s-puce { padding: 6px 12px; border-radius: 99px; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--m-encre) 22%, transparent); font-size: 12px; transition: background-color 250ms ease, color 250ms ease; }
.oz-s-puce.est-actif { background: var(--m-encre); color: var(--m-fond); box-shadow: none; }
.oz-s-interrupteur { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; }
.oz-s-interrupteur i { position: relative; width: 32px; height: 18px; border-radius: 99px; background: color-mix(in srgb, var(--m-encre) 22%, transparent); transition: background-color 250ms ease; }
.oz-s-interrupteur i::after { content: ''; position: absolute; left: 2px; top: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; transition: transform 300ms var(--ressort); }
.oz-s-interrupteur.est-actif i { background: var(--m-accent); }
.oz-s-interrupteur.est-actif i::after { transform: translateX(14px); }
.oz-s-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.oz-s-carte { display: grid; gap: 6px; text-align: left; animation: oz-glisse 450ms var(--ressort) backwards; }
.oz-s-carte-photo { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 10px; background: var(--m-doux); }
.oz-s-carte-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms cubic-bezier(0.2, 0.8, 0.2, 1); }
.oz-s-carte:hover .oz-s-carte-photo img { transform: scale(1.05); }
.oz-s-carte-photo em { position: absolute; left: 8px; top: 8px; padding: 3px 8px; border-radius: 99px; background: rgba(255, 255, 255, 0.92); color: var(--m-encre); font-style: normal; font-size: 10px; font-weight: 600; }
.oz-s-carte.est-off .oz-s-carte-photo img { filter: blur(8px) saturate(0.8); transform: scale(1.15); }
.oz-s-carte.est-off .oz-s-carte-photo::after { content: ''; position: absolute; inset: 0; background: rgba(20, 18, 14, 0.35) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='5' y='10' width='14' height='10' rx='2' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") center / 28px no-repeat; }
.oz-s-carte b { font: 400 15px/1.2 var(--m-police); }
.oz-s-carte small { opacity: 0.7; font-size: 11.5px; }
.oz-s-carte span { font-size: 12.5px; font-weight: 600; }
.oz-s-vide { padding: 30px 0; opacity: 0.6; text-align: center; }

/* La fiche (bien, villa, produit) */
.oz-s-fiche { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 18px; padding: 18px 22px; animation: oz-glisse 450ms var(--ressort) backwards; }
.oz-s-galerie { display: grid; gap: 6px; }
.oz-s-galerie-grande { aspect-ratio: 4 / 4.4; overflow: hidden; border-radius: 12px; background: var(--m-doux); }
.oz-s-galerie-grande img { width: 100%; height: 100%; object-fit: cover; animation: oz-fondu 500ms ease; }
@keyframes oz-fondu { from { opacity: 0; } }
.oz-s-vignettes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.oz-s-vignettes button { aspect-ratio: 1; overflow: hidden; border-radius: 7px; opacity: 0.6; transition: opacity 200ms ease; }
.oz-s-vignettes button.est-actif { opacity: 1; box-shadow: 0 0 0 2px var(--m-accent); }
.oz-s-vignettes img { width: 100%; height: 100%; object-fit: cover; }
.oz-s-infos { display: grid; align-content: start; gap: 10px; }
.oz-s-retour { justify-self: start; font-size: 11.5px; opacity: 0.7; }
.oz-s-infos h4 { margin: 0; font: 400 24px/1.15 var(--m-police); }
.oz-s-prix { font-size: 17px; font-weight: 600; }
.oz-s-caracs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.oz-s-caracs span { display: grid; padding: 7px 9px; border-radius: 8px; background: var(--m-doux); font-size: 12px; }
.oz-s-caracs small { opacity: 0.65; font-size: 10px; }
.oz-s-label { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.7; }
.oz-s-choix { display: flex; flex-wrap: wrap; gap: 6px; }
.oz-s-choix button { padding: 7px 11px; border-radius: 8px; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--m-encre) 22%, transparent); font-size: 12px; transition: background-color 200ms ease, color 200ms ease; }
.oz-s-choix button.est-actif { background: var(--m-encre); color: var(--m-fond); box-shadow: none; }
.oz-s-choix button:disabled { opacity: 0.35; text-decoration: line-through; cursor: default; }
.oz-s-metal { display: flex; gap: 8px; }
.oz-s-metal button { width: 26px; height: 26px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15); }
.oz-s-metal button.est-actif { box-shadow: 0 0 0 2px var(--m-fond), 0 0 0 3.5px var(--m-encre); }
.oz-s-bouton { padding: 11px 16px; border-radius: 10px; background: var(--m-encre); color: var(--m-fond) !important; font-size: 13px; font-weight: 600; text-align: center; transition: transform 200ms ease; }
.oz-s-bouton:active { transform: scale(0.98); }
.oz-s-bouton--fin { background: transparent; color: var(--m-encre) !important; box-shadow: inset 0 0 0 1.5px var(--m-encre); }
.oz-s-rassure { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 11.5px; opacity: 0.75; }
.oz-s-rassure span::before { content: '✓ '; color: var(--m-accent); font-weight: 700; }
.oz-s-ok { display: grid; gap: 6px; justify-items: center; padding: 22px; border-radius: 14px; background: #fff; text-align: center; box-shadow: 0 20px 40px -24px rgba(0, 0, 0, 0.35); animation: oz-pop 450ms cubic-bezier(0.3, 1.4, 0.5, 1); }
.oz-s-ok i { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #E5F3EA; color: #1F7A45; font-style: normal; font-size: 22px; font-weight: 700; }
.oz-s-ok b { font: 400 20px/1.2 var(--m-police); }
.oz-s-ok small { opacity: 0.7; }

/* La barre de réservation (hôtellerie) */
.oz-s-resa { position: relative; z-index: 2; display: grid; grid-template-columns: 1.3fr 1fr auto; gap: 8px; margin: -34px 22px 0; padding: 10px; border-radius: 14px; background: #fff; box-shadow: 0 20px 40px -24px rgba(0, 0, 0, 0.45); }
.oz-s-resa-champ { display: grid; gap: 1px; padding: 6px 10px; border-radius: 9px; text-align: left; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--m-encre) 14%, transparent); }
.oz-s-resa-champ small { font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.65; }
.oz-s-resa-champ b { font-size: 13px; font-weight: 600; }
.oz-s-pas { display: flex; align-items: center; gap: 10px; }
.oz-s-pas button { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--m-encre) 30%, transparent); font-size: 14px; line-height: 1; }
.oz-s-calendrier { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin: 12px 22px 0; padding: 12px; border-radius: 14px; background: #fff; animation: oz-glisse 350ms var(--ressort); }
.oz-s-calendrier > small { grid-column: 1 / -1; margin-bottom: 4px; font-weight: 600; }
.oz-s-calendrier > i { font-style: normal; font-size: 10px; text-align: center; opacity: 0.55; }
.oz-s-calendrier button { padding: 6px 0; border-radius: 7px; font-size: 12px; }
.oz-s-calendrier button.est-dans { background: var(--m-doux); border-radius: 0; }
.oz-s-calendrier button.est-bord { background: var(--m-encre); color: var(--m-fond); }
.oz-s-calendrier button:disabled { opacity: 0.3; text-decoration: line-through; cursor: default; }
.oz-s-ligne-villa { display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px; border-radius: 12px; background: #fff; margin-bottom: 8px; animation: oz-glisse 400ms var(--ressort) backwards; }
.oz-s-ligne-villa img { width: 92px; height: 70px; object-fit: cover; border-radius: 8px; }
.oz-s-ligne-villa span { display: grid; gap: 2px; }
.oz-s-ligne-villa b { font: 400 16px/1.2 var(--m-police); }
.oz-s-ligne-villa small { opacity: 0.7; font-size: 11.5px; }
.oz-s-ligne-villa .oz-s-bouton { padding: 8px 12px; font-size: 12px; }

/* Le tiroir du panier (joaillerie) */
.oz-s-tiroir { position: absolute; top: 0; right: 0; bottom: 0; z-index: 8; display: grid; grid-template-rows: auto 1fr auto; gap: 12px; width: min(330px, 86%); padding: 18px; background: #fff; box-shadow: -30px 0 60px -30px rgba(0, 0, 0, 0.5); transform: translateX(105%); visibility: hidden; transition: transform 500ms cubic-bezier(0.65, 0, 0.35, 1), visibility 0s linear 500ms; }
.oz-site.est-tiroir .oz-s-tiroir { transform: none; visibility: visible; transition-delay: 0s; }
.oz-s-tiroir h5 { margin: 0; font: 400 19px/1.2 var(--m-police); }
.oz-s-tiroir-article { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 10px; align-items: center; align-self: start; }
.oz-s-tiroir-article img { width: 56px; height: 70px; object-fit: cover; border-radius: 7px; }
.oz-s-tiroir-article span { display: grid; font-size: 12px; }
.oz-s-tiroir-article small { opacity: 0.65; }
.oz-s-tiroir-pied { display: grid; gap: 8px; }
.oz-s-total { display: flex; justify-content: space-between; font-size: 14px; font-weight: 600; }
.oz-s-toast { position: absolute; left: 50%; bottom: 16px; z-index: 9; display: flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 99px; background: var(--m-encre); color: var(--m-fond); font-size: 12px; font-weight: 600; white-space: nowrap; box-shadow: 0 16px 30px -14px rgba(0, 0, 0, 0.6); opacity: 0; transform: translate(-50%, 24px); transition: transform 500ms var(--ressort), opacity 300ms ease; pointer-events: none; }
.oz-s-toast.est-visible { opacity: 1; transform: translate(-50%, 0); }

/* Le volet « chez vous » */
.oz-bo { display: grid; grid-template-rows: auto auto auto minmax(0, 1fr); gap: 12px; padding: 16px; overflow: hidden; border-left: 1px solid rgba(255, 255, 255, 0.08); background: radial-gradient(80% 40% at 50% 0%, rgba(209, 163, 38, 0.1), transparent 70%), #0E0E0E; }
.oz-bo-tete { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.oz-bo-tete b { font-size: 13px; font-weight: 600; }
.oz-bo-tete small { color: var(--sur-noir-2); font-size: 11px; }
.oz-bo-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.oz-bo-kpi { display: grid; gap: 2px; padding: 10px; border-radius: 12px; background: rgba(255, 255, 255, 0.04); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08); transition: box-shadow 400ms ease; }
.oz-bo-kpi small { color: var(--sur-noir-2); font-size: 10.5px; line-height: 1.25; }
.oz-bo-kpi b { color: #fff; font-size: 20px; font-weight: 600; font-variant-numeric: tabular-nums; }
.oz-bo-kpi.est-flash { box-shadow: inset 0 0 0 1px var(--or), 0 0 24px -8px rgba(209, 163, 38, 0.7); }
.oz-bo-kpi.est-flash b { color: var(--or); }
.oz-bo-sources { display: grid; gap: 6px; padding: 10px 12px; border-radius: 12px; background: rgba(255, 255, 255, 0.03); }
.oz-bo-sources > small { color: var(--sur-noir-2); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; }
.oz-bo-source { display: grid; grid-template-columns: 18px 96px minmax(0, 1fr) 26px; align-items: center; gap: 8px; font-size: 11.5px; }
.oz-bo-source img { width: 18px; height: 18px; padding: 2px; border-radius: 5px; background: #fff; }
.oz-bo-source u { height: 6px; border-radius: 99px; background: rgba(255, 255, 255, 0.07); overflow: hidden; }
.oz-bo-source u s { display: block; height: 100%; width: var(--p); border-radius: inherit; background: var(--or); transition: width 700ms cubic-bezier(0.2, 0.8, 0.2, 1); }
.oz-bo-source b { color: var(--sur-noir-2); font-weight: 500; text-align: right; font-variant-numeric: tabular-nums; }
.oz-bo-fil { display: flex; flex-direction: column; gap: 6px; min-height: 0; overflow: hidden; }
.oz-bo-fil > small { color: var(--sur-noir-2); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; }
.oz-bo-ligne { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 11px; background: rgba(255, 255, 255, 0.04); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.07); font-size: 12px; animation: oz-arrivee 600ms var(--ressort) backwards; }
@keyframes oz-arrivee { from { opacity: 0; transform: translateY(-14px) scale(0.97); } }
.oz-bo-ligne img { width: 26px; height: 26px; padding: 5px; border-radius: 8px; background: #fff; }
.oz-bo-ligne span { display: grid; min-width: 0; line-height: 1.3; }
.oz-bo-ligne span b { font-weight: 600; }
.oz-bo-ligne span small { overflow: hidden; color: var(--sur-noir-2); font-size: 11px; white-space: nowrap; text-overflow: ellipsis; }
.oz-bo-ligne em { color: var(--sur-noir-2); font-style: normal; font-size: 10.5px; }
.oz-bo-ligne.est-neuve { box-shadow: inset 0 0 0 1px rgba(209, 163, 38, 0.65), 0 0 24px -8px rgba(209, 163, 38, 0.55); }
.oz-bo-note { position: absolute; right: 14px; bottom: 10px; color: rgba(255, 255, 255, 0.35); font-size: 10.5px; }

/* Le curseur de la démonstration */
.oz-d-curseur { position: absolute; left: 0; top: 0; z-index: 20; width: 22px; height: 22px; pointer-events: none; transition: transform 900ms cubic-bezier(0.65, 0, 0.35, 1), opacity 300ms ease; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.45)); }
.oz-d-curseur svg { width: 22px; height: 22px; fill: #fff; stroke: #111; stroke-width: 1.2; }
.oz-d-curseur.est-clic::after { content: ''; position: absolute; left: -9px; top: -9px; width: 22px; height: 22px; border-radius: 50%; box-shadow: 0 0 0 2px var(--or); animation: oz-onde 500ms ease-out forwards; }
@keyframes oz-onde { to { transform: scale(2); opacity: 0; } }
.oz-d.est-main .oz-d-curseur { opacity: 0; }

@media (max-width: 1100px) {
  .oz-d { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
  .oz-bo-kpis { grid-template-columns: minmax(0, 1fr); }
  .oz-s-fiche { grid-template-columns: minmax(0, 1fr); }
  .oz-s-galerie-grande { aspect-ratio: 16 / 10; }
}
@media (max-width: 760px) {
  .oz-d { grid-template-columns: minmax(0, 1fr); grid-template-rows: 46px 760px minmax(0, 1fr); }
  .oz-bo { border-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.08); }
  .oz-bo-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .oz-d-url { display: none; }
  .oz-s-nav { display: none; }
  .oz-s-grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
  .oz-s-resa { grid-template-columns: 1fr 1fr; }
  .oz-s-resa > .oz-s-bouton { grid-column: 1 / -1; }
  .oz-s-hero-txt { bottom: 44px; }
  .oz-s-hero-txt b { font-size: 22px; }
  .oz-s-fiche { padding-inline: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .oz-d *, .oz-d *::after { animation: none !important; transition: none !important; }
}

/* ═══════════════════════════════════════════════════════════════
   QUATRE MAQUETTES, QUATRE IDENTITÉS (15/10/2026)
   Demande du fondateur : chaque démonstration doit ressembler à la
   maquette d'un vrai site en cours, propre à son métier, et non au
   même gabarit recoloré. Même mécanique (js/v4/offre-secteur.js),
   quatre directions artistiques :
   · Aubier (immobilier) : éditorial d'architecte, angles vifs, laiton,
     annonces en lignes comme un catalogue d'agence ;
   · Sérène (hôtel) : carte postale du soir, tout centré, italiques,
     arches, barre de réservation nuit ;
   · Célian (joaillerie) : maison de luxe minimale, blanc, capitales
     espacées, grille serrée de pièces sur fond pierre ;
   · Escale (conciergerie) : solaire et convivial, sans-serif ronde,
     cartes arrondies, corail et agave.
   ═══════════════════════════════════════════════════════════════ */
.oz-d-version { flex: none; padding: 3px 10px; border-radius: 99px; background: rgba(209, 163, 38, 0.14); box-shadow: inset 0 0 0 1px rgba(209, 163, 38, 0.4); color: #E6BA42; font-size: 11px; white-space: nowrap; }
@media (max-width: 760px) { .oz-d-version { display: none; } }

/* ─── AUBIER · éditorial d'architecte ─── */
.oz-demo[data-oz-demo="immobilier"] .oz-site { background: #F3F0E8; color: #1E2B26; }
.oz-demo[data-oz-demo="immobilier"] .oz-site * { border-radius: 0 !important; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-entete { background: #1E2B26; border-bottom: 0; height: 58px; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-logo { color: #E9E2D3; font: 400 17px/1 'Fraunces', Georgia, serif; letter-spacing: 0.34em; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-nav button { color: #E9E2D3; font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-nav button.est-actif { box-shadow: 0 2px 0 #B08D57; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-cta { background: transparent; color: #D8BF8E !important; box-shadow: inset 0 0 0 1px #B08D57; font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 500; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-hero { height: 270px; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-hero::after { background: linear-gradient(90deg, rgba(20, 30, 26, 0.82) 0%, rgba(20, 30, 26, 0.35) 55%, transparent 80%); }
.oz-demo[data-oz-demo="immobilier"] .oz-s-hero-txt { bottom: auto; top: 50%; transform: translateY(-50%); max-width: 60%; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-hero-txt small { color: #D8BF8E; letter-spacing: 0.26em; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-hero-txt b { margin-top: 8px; font-weight: 300; font-size: 30px; line-height: 1.12; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-section { padding: 22px 26px; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-titre { display: flex; align-items: center; gap: 14px; font: 500 11px/1 'Instrument Sans', sans-serif; letter-spacing: 0.26em; text-transform: uppercase; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-titre::after { content: ''; flex: 1; height: 1px; background: #B08D57; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-puces { gap: 18px; border-bottom: 1px solid rgba(30, 43, 38, 0.15); }
.oz-demo[data-oz-demo="immobilier"] .oz-s-puce { padding: 8px 0; box-shadow: none; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.6; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-puce.est-actif { background: none; color: #1E2B26; opacity: 1; box-shadow: 0 1.5px 0 #1E2B26; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-interrupteur { margin-left: auto; font-size: 11px; letter-spacing: 0.08em; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-interrupteur i, .oz-demo[data-oz-demo="immobilier"] .oz-s-interrupteur i::after { border-radius: 99px !important; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-grille { grid-template-columns: minmax(0, 1fr); gap: 0; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-carte { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr); grid-template-rows: auto auto 1fr; column-gap: 20px; row-gap: 6px; align-content: start; padding: 16px 0; border-bottom: 1px solid rgba(30, 43, 38, 0.14); }
.oz-demo[data-oz-demo="immobilier"] .oz-s-carte-photo { grid-row: 1 / span 3; aspect-ratio: 16 / 10; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-carte b { align-self: end; font-size: 21px; font-weight: 300; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-carte small { font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-carte span:not(.oz-s-carte-photo) { align-self: start; color: #8C6C38; font: 400 17px/1.2 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-carte-photo em { background: #1E2B26; color: #D8BF8E; letter-spacing: 0.12em; text-transform: uppercase; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-infos h4 { font-size: 28px; font-weight: 300; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-prix { color: #8C6C38; font: 400 20px/1.2 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-caracs span { background: transparent; box-shadow: inset 0 0 0 1px rgba(30, 43, 38, 0.2); }
.oz-demo[data-oz-demo="immobilier"] .oz-s-choix button { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-bouton { padding: 13px 16px; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 500; }
.oz-demo[data-oz-demo="immobilier"] .oz-s-ok { box-shadow: inset 0 3px 0 #B08D57, 0 20px 40px -24px rgba(0, 0, 0, 0.35); }
.oz-demo[data-oz-demo="immobilier"] .oz-s-ok i { border-radius: 50% !important; }

/* ─── SÉRÈNE · carte postale du soir ─── */
.oz-demo[data-oz-demo="hotellerie"] .oz-site { background: #F7F2EA; color: #1F2A44; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-entete { display: grid; grid-template-columns: 1fr auto 1fr; height: 62px; background: #F7F2EA; border-bottom: 1px solid rgba(31, 42, 68, 0.1); }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-nav { grid-column: 1; grid-row: 1; margin-left: 0; font-size: 12px; font-style: italic; font-family: 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-nav button.est-actif { box-shadow: 0 2px 0 #C98A2B; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-logo { grid-column: 2; grid-row: 1; font: italic 400 22px/1 'Fraunces', Georgia, serif; letter-spacing: 0.22em; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-cta { grid-column: 3; grid-row: 1; justify-self: end; background: #C98A2B; color: #1F2A44 !important; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-hero { height: 300px; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-hero::after { background: linear-gradient(180deg, rgba(31, 42, 68, 0.15), rgba(31, 42, 68, 0.6)); }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-hero-txt { bottom: 56px; text-align: center; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-hero-txt small { letter-spacing: 0.34em; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-hero-txt b { margin-top: 6px; font-style: italic; font-size: 34px; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-resa { margin: -30px auto 0; max-width: 560px; padding: 6px; border-radius: 99px; background: #1F2A44; color: #F7F2EA; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-resa-champ { padding: 6px 16px; border-radius: 99px; box-shadow: none; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-resa-champ small { opacity: 0.6; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-resa .oz-s-pas button { box-shadow: inset 0 0 0 1px rgba(247, 242, 234, 0.4); }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-bouton { border-radius: 99px; background: #C98A2B; color: #1F2A44 !important; font-family: 'Fraunces', Georgia, serif; font-style: italic; font-size: 14px; font-weight: 500; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-section { padding: 22px 26px; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-titre { text-align: center; font-style: italic; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-carte { justify-items: center; text-align: center; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-carte-photo { width: 100%; aspect-ratio: 3 / 4; border-radius: 999px 999px 10px 10px; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-carte b { font-style: italic; font-size: 16px; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-ligne-villa { border-radius: 18px; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-ligne-villa img { width: 64px; height: 84px; border-radius: 999px 999px 8px 8px; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-ligne-villa b { font-style: italic; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-calendrier { border-radius: 22px; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-calendrier button.est-bord { border-radius: 50%; background: #C98A2B; color: #1F2A44; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-calendrier button.est-dans { background: rgba(201, 138, 43, 0.18); }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-choix button { border-radius: 99px; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-choix button.est-actif { background: #1F2A44; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-label { font-family: 'Fraunces', Georgia, serif; font-style: italic; letter-spacing: 0.02em; text-transform: none; font-size: 13px; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-ok { border-radius: 26px; }
.oz-demo[data-oz-demo="hotellerie"] .oz-s-ok b { font-style: italic; }

/* ─── CÉLIAN · maison de luxe minimale ─── */
.oz-demo[data-oz-demo="joaillerie"] .oz-site { background: #FFFFFF; color: #111; font-family: 'Instrument Sans', sans-serif; }
.oz-demo[data-oz-demo="joaillerie"] .oz-site * { border-radius: 0 !important; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-entete { display: grid; grid-template-columns: 1fr auto 1fr; height: 64px; background: #fff; border-bottom: 1px solid #EDEAE4; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-nav { grid-column: 1; grid-row: 1; margin-left: 0; gap: 14px; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-nav button { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-nav button.est-actif { box-shadow: 0 1px 0 #111; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-logo { grid-column: 2; grid-row: 1; font: 500 19px/1 'Instrument Sans', sans-serif; letter-spacing: 0.55em; margin-right: -0.55em; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-panier { grid-column: 3; grid-row: 1; justify-self: end; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-panier b { border-radius: 50% !important; background: #111; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-hero { height: 320px; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-hero img { object-position: 50% 25%; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-hero::after { background: linear-gradient(180deg, transparent 55%, rgba(0, 0, 0, 0.4)); }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-hero-txt { text-align: center; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-hero-txt small { font-size: 10px; letter-spacing: 0.32em; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-hero-txt b { margin-top: 8px; font: 300 24px/1.25 'Instrument Sans', sans-serif; letter-spacing: 0.12em; text-transform: uppercase; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-section { padding: 24px 22px; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-titre { text-align: center; font: 500 11px/1 'Instrument Sans', sans-serif; letter-spacing: 0.34em; text-transform: uppercase; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-puces { justify-content: center; gap: 16px; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-puce { padding: 4px 0; box-shadow: none; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: #888; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-puce.est-actif { background: none; color: #111; box-shadow: 0 1px 0 #111; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-carte { justify-items: center; gap: 4px; padding-bottom: 14px; background: #F5F3EF; text-align: center; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-carte-photo { width: 100%; aspect-ratio: 4 / 5; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-carte b { margin-top: 6px; font: 500 10.5px/1.3 'Instrument Sans', sans-serif; letter-spacing: 0.16em; text-transform: uppercase; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-carte span:not(.oz-s-carte-photo) { font-size: 11.5px; font-weight: 400; color: #555; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-galerie-grande { background: #F5F3EF; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-infos h4 { font: 400 18px/1.3 'Instrument Sans', sans-serif; letter-spacing: 0.16em; text-transform: uppercase; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-prix { font-size: 14px; font-weight: 400; letter-spacing: 0.06em; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-label { font-size: 9.5px; letter-spacing: 0.22em; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-metal button { border-radius: 50% !important; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-choix button { min-width: 38px; font-size: 11px; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-bouton { padding: 14px; background: #111; font-size: 10.5px; letter-spacing: 0.24em; text-transform: uppercase; font-weight: 500; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-bouton--fin { background: #fff; box-shadow: inset 0 0 0 1px #111; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-tiroir h5 { font: 500 11px/1 'Instrument Sans', sans-serif; letter-spacing: 0.3em; text-transform: uppercase; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-ok b { font: 400 15px/1.3 'Instrument Sans', sans-serif; letter-spacing: 0.18em; text-transform: uppercase; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-ok i { border-radius: 50% !important; background: #F5F3EF; color: #111; }
.oz-demo[data-oz-demo="joaillerie"] .oz-s-toast { border-radius: 0 !important; letter-spacing: 0.12em; text-transform: uppercase; font-size: 10.5px; }

/* ─── ESCALE · solaire et convivial ─── */
.oz-demo[data-oz-demo="conciergerie"] .oz-site { background: #FFFFFF; color: #1D3A4A; font-family: 'Questrial', 'Instrument Sans', sans-serif; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-entete { height: 60px; background: #fff; border-bottom: 0; box-shadow: 0 1px 0 #EEF2F1; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-logo { font: 400 19px/1 'Questrial', sans-serif; letter-spacing: 0.06em; color: #1D3A4A; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-logo::before { content: ''; width: 18px; height: 18px; border-radius: 50%; background: radial-gradient(circle at 50% 120%, #7FA39A 0 45%, transparent 46%), #D9785A; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-nav button.est-actif { box-shadow: 0 2px 0 #D9785A; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-cta { background: #D9785A; color: #fff !important; font-weight: 400; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-hero { height: 230px; margin: 14px 18px 0; border-radius: 22px; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-hero::after { background: linear-gradient(180deg, transparent 35%, rgba(29, 58, 74, 0.6)); }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-hero-txt small { letter-spacing: 0.08em; text-transform: none; font-size: 12px; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-hero-txt b { font: 400 30px/1.15 'Questrial', sans-serif; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-titre { font: 400 20px/1.2 'Questrial', sans-serif; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-puce { background: #EEF4F2; box-shadow: none; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-puce.est-actif { background: #D9785A; color: #fff; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-grille { gap: 16px; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-carte { padding: 8px 8px 14px; border-radius: 20px; background: #fff; box-shadow: 0 14px 30px -20px rgba(29, 58, 74, 0.45), 0 0 0 1px #EEF2F1; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-carte-photo { border-radius: 14px; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-carte b { padding-inline: 4px; font: 400 16px/1.2 'Questrial', sans-serif; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-carte small { padding-inline: 4px; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-carte span:not(.oz-s-carte-photo) { padding-inline: 4px; color: #D9785A; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-galerie-grande { border-radius: 20px; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-vignettes button { border-radius: 12px; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-infos h4 { font: 400 26px/1.15 'Questrial', sans-serif; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-label { letter-spacing: 0.04em; text-transform: none; font-size: 12px; opacity: 0.65; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-choix button { border-radius: 99px; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-choix button.est-actif { background: #1D3A4A; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-total { padding: 10px 14px; border-radius: 14px; background: #EEF4F2; font-weight: 400; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-bouton { border-radius: 14px; background: #D9785A; color: #fff !important; font-weight: 400; font-size: 14px; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-estimation { border-radius: 16px; background: #EEF4F2; box-shadow: none; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-estimation b { color: #D9785A; font-weight: 400; font-size: 22px; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-ok { border-radius: 22px; }
.oz-demo[data-oz-demo="conciergerie"] .oz-s-ok b { font-family: 'Questrial', sans-serif; }

@media (max-width: 760px) {
  .oz-demo[data-oz-demo="immobilier"] .oz-s-carte { grid-template-columns: minmax(0, 1fr); }
  .oz-demo[data-oz-demo="immobilier"] .oz-s-carte-photo { grid-row: auto; }
  .oz-demo[data-oz-demo="immobilier"] .oz-s-hero-txt { max-width: none; }
  .oz-demo[data-oz-demo="hotellerie"] .oz-s-entete, .oz-demo[data-oz-demo="joaillerie"] .oz-s-entete { grid-template-columns: auto 1fr; }
  .oz-demo[data-oz-demo="hotellerie"] .oz-s-logo, .oz-demo[data-oz-demo="joaillerie"] .oz-s-logo { grid-column: 1; justify-self: start; }
  .oz-demo[data-oz-demo="hotellerie"] .oz-s-resa { border-radius: 22px; margin-inline: 14px; }
  .oz-demo[data-oz-demo="hotellerie"] .oz-s-grille, .oz-demo[data-oz-demo="joaillerie"] .oz-s-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ─── MARÉA · le carnet de bord (yachting) ───
   Bleu abysse, blanc voile, rouge pavillon ; les caractéristiques en
   chasse fixe comme une fiche technique ; une console de recherche
   (port, type) sous la photo ; les bateaux en lignes de fiche. */
.oz-demo[data-oz-demo="yachting"] { --m-encre: #0F2742; --m-fond: #F7F6F2; --m-accent: #C8442F; --m-doux: #E6EBF0; }
.oz-demo[data-oz-demo="yachting"] .oz-site { background: #F7F6F2; color: #0F2742; }
.oz-demo[data-oz-demo="yachting"] .oz-s-entete { height: 56px; background: #0F2742; border-bottom: 3px solid #C8442F; }
.oz-demo[data-oz-demo="yachting"] .oz-s-logo { color: #fff; font: 600 15px/1 'Instrument Sans', sans-serif; letter-spacing: 0.42em; }
.oz-demo[data-oz-demo="yachting"] .oz-s-logo::before { content: ''; width: 18px; height: 12px; background: linear-gradient(135deg, #C8442F 50%, #fff 50%); clip-path: polygon(0 0, 100% 50%, 0 100%); }
.oz-demo[data-oz-demo="yachting"] .oz-s-nav button { color: #fff; font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; }
.oz-demo[data-oz-demo="yachting"] .oz-s-nav button.est-actif { box-shadow: 0 2px 0 #C8442F; }
.oz-demo[data-oz-demo="yachting"] .oz-s-cta { border-radius: 4px; background: #C8442F; color: #fff !important; text-transform: uppercase; letter-spacing: 0.06em; font-size: 11px; }
.oz-demo[data-oz-demo="yachting"] .oz-s-hero { height: 250px; }
.oz-demo[data-oz-demo="yachting"] .oz-s-hero::after { background: linear-gradient(180deg, rgba(15, 39, 66, 0.1), rgba(15, 39, 66, 0.7)); }
.oz-demo[data-oz-demo="yachting"] .oz-s-hero-txt { bottom: 42px; }
.oz-demo[data-oz-demo="yachting"] .oz-s-hero-txt small { font: 500 10.5px/1 'Martian Mono', ui-monospace, monospace; letter-spacing: 0.08em; text-transform: uppercase; }
.oz-demo[data-oz-demo="yachting"] .oz-s-hero-txt b { margin-top: 6px; font: 600 32px/1.05 'Instrument Sans', sans-serif; letter-spacing: -0.02em; }
.oz-y-console { position: relative; z-index: 2; display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; margin: -26px 22px 0; padding: 12px 16px; border-radius: 6px; background: #fff; box-shadow: 0 20px 40px -24px rgba(15, 39, 66, 0.55), inset 0 3px 0 #0F2742; }
.oz-y-console > span { display: grid; gap: 6px; }
.oz-y-console small { font: 500 9.5px/1 'Martian Mono', ui-monospace, monospace; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.6; }
.oz-y-console .oz-s-puces { margin: 0; gap: 4px; }
.oz-demo[data-oz-demo="yachting"] .oz-s-puce { border-radius: 4px; padding: 5px 9px; font-size: 11.5px; }
.oz-demo[data-oz-demo="yachting"] .oz-s-puce.est-actif { background: #0F2742; }
.oz-demo[data-oz-demo="yachting"] .oz-s-titre { font: 500 10.5px/1 'Martian Mono', ui-monospace, monospace; letter-spacing: 0.12em; text-transform: uppercase; color: #C8442F; }
.oz-demo[data-oz-demo="yachting"] .oz-s-grille { grid-template-columns: minmax(0, 1fr); gap: 10px; }
.oz-demo[data-oz-demo="yachting"] .oz-s-carte { grid-template-columns: 150px minmax(0, 1fr) auto; grid-template-rows: auto auto 1fr; column-gap: 16px; row-gap: 2px; align-items: start; padding: 10px; border-radius: 6px; background: #fff; box-shadow: 0 0 0 1px rgba(15, 39, 66, 0.1); }
.oz-demo[data-oz-demo="yachting"] .oz-s-carte-photo { grid-row: 1 / span 3; aspect-ratio: 4 / 3; border-radius: 4px; }
.oz-demo[data-oz-demo="yachting"] .oz-s-carte b { font: 600 17px/1.2 'Instrument Sans', sans-serif; }
.oz-demo[data-oz-demo="yachting"] .oz-s-carte small { opacity: 0.6; }
.oz-demo[data-oz-demo="yachting"] .oz-s-carte > span:last-child { grid-column: 3; grid-row: 1; color: #C8442F; font: 500 12px/1.3 'Martian Mono', ui-monospace, monospace; text-align: right; }
.oz-demo[data-oz-demo="yachting"] .oz-s-carte .oz-y-specs { grid-column: 2 / span 2; margin-top: 6px; }
.oz-y-specs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid rgba(15, 39, 66, 0.15); border-radius: 4px; }
.oz-y-specs > span { display: grid; gap: 2px; padding: 6px 8px; }
.oz-y-specs > span + span { border-left: 1px solid rgba(15, 39, 66, 0.15); }
.oz-y-specs small { font: 500 8.5px/1 'Martian Mono', ui-monospace, monospace; letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.55; }
.oz-y-specs b { font: 500 13px/1.1 'Martian Mono', ui-monospace, monospace; }
.oz-y-port { font: 500 10.5px/1 'Martian Mono', ui-monospace, monospace; text-transform: uppercase; letter-spacing: 0.06em; opacity: 0.6; }
.oz-y-apa { font-size: 11px; opacity: 0.6; }
.oz-demo[data-oz-demo="yachting"] .oz-s-infos h4 { font: 600 30px/1.05 'Instrument Sans', sans-serif; letter-spacing: -0.02em; }
.oz-demo[data-oz-demo="yachting"] .oz-s-prix { color: #C8442F; font: 500 15px/1.2 'Martian Mono', ui-monospace, monospace; }
.oz-demo[data-oz-demo="yachting"] .oz-s-galerie-grande, .oz-demo[data-oz-demo="yachting"] .oz-s-vignettes button { border-radius: 4px; }
.oz-demo[data-oz-demo="yachting"] .oz-s-choix button { border-radius: 4px; font-family: 'Martian Mono', ui-monospace, monospace; font-size: 10.5px; }
.oz-demo[data-oz-demo="yachting"] .oz-s-label { font: 500 9.5px/1 'Martian Mono', ui-monospace, monospace; letter-spacing: 0.1em; }
.oz-demo[data-oz-demo="yachting"] .oz-s-bouton { border-radius: 4px; background: #C8442F; color: #fff !important; text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; }
.oz-demo[data-oz-demo="yachting"] .oz-s-ok { border-radius: 6px; box-shadow: inset 0 3px 0 #C8442F, 0 20px 40px -24px rgba(0, 0, 0, 0.35); }
@media (max-width: 760px) {
  .oz-y-console { grid-template-columns: minmax(0, 1fr); margin-inline: 12px; }
  .oz-demo[data-oz-demo="yachting"] .oz-s-carte { grid-template-columns: minmax(0, 1fr); }
  .oz-demo[data-oz-demo="yachting"] .oz-s-carte-photo { grid-row: auto; }
  .oz-demo[data-oz-demo="yachting"] .oz-s-carte > span:last-child { grid-column: 1; grid-row: auto; text-align: left; }
  .oz-demo[data-oz-demo="yachting"] .oz-s-carte .oz-y-specs { grid-column: 1; }
}

/* Les tuiles du yachting : la fiche technique et les ports */
.oz-v-specs { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; width: 100%; padding: 12px; border-radius: 8px; background: #F7F6F2; color: #0F2742; box-shadow: 0 20px 34px -18px rgba(0, 0, 0, 0.9); }
.oz-v-specs img { width: 120px; height: 150px; object-fit: cover; border-radius: 4px; }
.oz-v-specs-txt { display: grid; align-content: center; gap: 10px; }
.oz-v-specs-nom { font: 600 20px/1 'Instrument Sans', sans-serif; }
.oz-v-specs-grille { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid rgba(15, 39, 66, 0.18); border-radius: 4px; }
.oz-v-specs-grille span { display: grid; gap: 2px; padding: 6px 8px; }
.oz-v-specs-grille span:nth-child(even) { border-left: 1px solid rgba(15, 39, 66, 0.18); }
.oz-v-specs-grille span:nth-child(n+3) { border-top: 1px solid rgba(15, 39, 66, 0.18); }
.oz-v-specs-grille small { font: 500 8.5px/1 'Martian Mono', ui-monospace, monospace; text-transform: uppercase; opacity: 0.55; }
.oz-v-specs-grille b { font: 500 13px/1.1 'Martian Mono', ui-monospace, monospace; }
.oz-v-ports { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); align-items: start; width: 100%; padding: 30px 6px 0; }
.oz-v-ports-ligne { position: absolute; left: 12%; right: 12%; top: 37px; height: 2px; background: repeating-linear-gradient(90deg, var(--or) 0 6px, transparent 6px 11px); }
.oz-v-port { position: relative; display: grid; justify-items: center; gap: 4px; text-align: center; }
.oz-v-port i { width: 16px; height: 16px; border-radius: 50%; background: #0D0D0D; box-shadow: inset 0 0 0 3px var(--or); transition: transform 400ms var(--ressort); }
.oz-v-port b { margin-top: 8px; color: #fff; font-size: 13px; font-weight: 500; }
.oz-v-port small { color: var(--sur-noir-2); font-size: 10.5px; }
.oz-tuile:hover .oz-v-port i { transform: scale(1.3); }
.oz-tuile:hover .oz-v-port:nth-child(3) i { background: var(--or); }

/* ─── ALDANE · le papier à lettres (Monaco) ───
   Bordeaux, ivoire, filets dorés, capitales espacées ; une photo
   encadrée, un texte centré comme une lettre ; trois langues. */
.oz-demo[data-oz-demo="monaco"] { --m-encre: #5B1A22; --m-fond: #F5F0E6; --m-accent: #B8975A; --m-doux: #EDE4D3; }
.oz-demo[data-oz-demo="monaco"] .oz-site { background: #F5F0E6; color: #2B1A1C; }
.oz-demo[data-oz-demo="monaco"] .oz-site * { border-radius: 0 !important; }
.oz-demo[data-oz-demo="monaco"] .oz-s-entete { height: 64px; background: #F5F0E6; border-bottom: 0; box-shadow: 0 -1px 0 #B8975A inset, 0 -4px 0 #F5F0E6 inset, 0 -5px 0 #B8975A inset; }
.oz-demo[data-oz-demo="monaco"] .oz-s-logo { flex-direction: column; align-items: flex-start; gap: 3px; color: #5B1A22; font: 500 17px/1 'Fraunces', Georgia, serif; letter-spacing: 0.3em; }
.oz-demo[data-oz-demo="monaco"] .oz-s-logo small { font: 500 8px/1 'Instrument Sans', sans-serif; letter-spacing: 0.42em; color: #B8975A; }
.oz-demo[data-oz-demo="monaco"] .oz-s-nav button { font: 400 12px/1 'Fraunces', Georgia, serif; letter-spacing: 0.04em; }
.oz-demo[data-oz-demo="monaco"] .oz-s-nav button.est-actif { box-shadow: 0 1px 0 #5B1A22; }
.oz-a-langues { display: flex; margin-left: 10px; box-shadow: inset 0 0 0 1px #B8975A; }
.oz-a-langues button { padding: 5px 8px; font: 600 10px/1 'Instrument Sans', sans-serif; letter-spacing: 0.1em; color: #8A6E3E; }
.oz-a-langues button.est-actif { background: #5B1A22; color: #F5F0E6; }
.oz-demo[data-oz-demo="monaco"] .oz-s-hero { height: 190px; margin: 18px 22px 0; box-shadow: 0 0 0 1px #B8975A, 0 0 0 5px #F5F0E6, 0 0 0 6px #B8975A; }
.oz-demo[data-oz-demo="monaco"] .oz-s-hero::after { display: none; }
.oz-a-lettre { display: grid; justify-items: center; gap: 10px; padding: 26px 40px 10px; text-align: center; }
.oz-a-lettre small { color: #B8975A; font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; }
.oz-a-lettre b { color: #5B1A22; font: 400 30px/1.15 'Fraunces', Georgia, serif; }
.oz-a-lettre p { max-width: 40ch; margin: 0; font-size: 13px; opacity: 0.75; }
.oz-demo[data-oz-demo="monaco"] .oz-s-bouton { padding: 12px 22px; background: #5B1A22; color: #F5F0E6 !important; font: 500 11px/1 'Instrument Sans', sans-serif; letter-spacing: 0.2em; text-transform: uppercase; box-shadow: inset 0 -2px 0 #B8975A; }
.oz-demo[data-oz-demo="monaco"] .oz-s-titre { text-align: center; font: 500 11px/1 'Instrument Sans', sans-serif; letter-spacing: 0.3em; text-transform: uppercase; color: #8A6E3E; }
.oz-a-exps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid rgba(184, 151, 90, 0.6); }
.oz-a-exps > span { display: grid; justify-items: center; gap: 4px; padding: 16px 10px; text-align: center; }
.oz-a-exps > span + span { border-left: 1px solid rgba(184, 151, 90, 0.6); }
.oz-a-exps i { color: #B8975A; font: italic 400 16px/1 'Fraunces', Georgia, serif; }
.oz-a-exps b { color: #5B1A22; font: 400 15px/1.2 'Fraunces', Georgia, serif; }
.oz-a-exps small { font-size: 11px; opacity: 0.7; }
.oz-a-bandeau { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 0 22px 22px; }
.oz-a-bandeau img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: sepia(0.15); }
.oz-a-rdv { display: grid; gap: 10px; }
.oz-a-associes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.oz-a-associes button { display: flex; align-items: center; gap: 10px; padding: 10px; background: #fff; box-shadow: inset 0 0 0 1px rgba(184, 151, 90, 0.5); text-align: left; }
.oz-a-associes button.est-actif { box-shadow: inset 0 0 0 1.5px #5B1A22; }
.oz-a-associes i { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50% !important; background: #5B1A22; color: #F5F0E6; font: italic 400 13px/1 'Fraunces', Georgia, serif; }
.oz-a-associes span { display: grid; }
.oz-a-associes b { font: 400 14px/1.2 'Fraunces', Georgia, serif; }
.oz-a-associes small { font-size: 10.5px; opacity: 0.65; }
.oz-demo[data-oz-demo="monaco"] .oz-s-choix button { font-size: 11.5px; }
.oz-demo[data-oz-demo="monaco"] .oz-s-choix button.est-actif { background: #5B1A22; }
.oz-demo[data-oz-demo="monaco"] .oz-s-label { color: #8A6E3E; }
.oz-demo[data-oz-demo="monaco"] .oz-s-ok { box-shadow: 0 0 0 1px #B8975A, 0 0 0 5px #fff, 0 0 0 6px #B8975A; }
.oz-demo[data-oz-demo="monaco"] .oz-s-ok i { border-radius: 50% !important; }

/* ─── ARVELLE · le papier à lettres, version niçoise (Nice, 21/10/2026) ───
   Même gabarit qu'Aldane (classes oz-a-*), d'autres encres : le bleu
   de la Baie des Anges et l'ocre des façades du Vieux-Nice. */
.oz-demo[data-oz-demo="nice"] { --m-encre: #1E3A5C; --m-fond: #F7F1E6; --m-accent: #C98A3E; --m-doux: #EDE3D2; }
.oz-demo[data-oz-demo="nice"] .oz-site { background: #F7F1E6; color: #1B2A3A; }
.oz-demo[data-oz-demo="nice"] .oz-site * { border-radius: 0 !important; }
.oz-demo[data-oz-demo="nice"] .oz-s-entete { height: 64px; background: #F7F1E6; border-bottom: 0; box-shadow: 0 -1px 0 #C98A3E inset, 0 -4px 0 #F7F1E6 inset, 0 -5px 0 #C98A3E inset; }
.oz-demo[data-oz-demo="nice"] .oz-s-logo { flex-direction: column; align-items: flex-start; gap: 3px; color: #1E3A5C; font: 500 17px/1 'Fraunces', Georgia, serif; letter-spacing: 0.3em; }
.oz-demo[data-oz-demo="nice"] .oz-s-logo small { font: 500 8px/1 'Instrument Sans', sans-serif; letter-spacing: 0.42em; color: #C98A3E; }
.oz-demo[data-oz-demo="nice"] .oz-s-nav button { font: 400 12px/1 'Fraunces', Georgia, serif; letter-spacing: 0.04em; }
.oz-demo[data-oz-demo="nice"] .oz-s-nav button.est-actif { box-shadow: 0 1px 0 #1E3A5C; }
.oz-demo[data-oz-demo="nice"] .oz-a-langues { box-shadow: inset 0 0 0 1px #C98A3E; }
.oz-demo[data-oz-demo="nice"] .oz-a-langues button { color: #8A6436; }
.oz-demo[data-oz-demo="nice"] .oz-a-langues button.est-actif { background: #1E3A5C; color: #F7F1E6; }
.oz-demo[data-oz-demo="nice"] .oz-s-hero { height: 190px; margin: 18px 22px 0; box-shadow: 0 0 0 1px #C98A3E, 0 0 0 5px #F7F1E6, 0 0 0 6px #C98A3E; }
.oz-demo[data-oz-demo="nice"] .oz-s-hero::after { display: none; }
.oz-demo[data-oz-demo="nice"] .oz-a-lettre small { color: #C98A3E; }
.oz-demo[data-oz-demo="nice"] .oz-a-lettre b { color: #1E3A5C; }
.oz-demo[data-oz-demo="nice"] .oz-s-bouton { padding: 12px 22px; background: #1E3A5C; color: #F7F1E6 !important; font: 500 11px/1 'Instrument Sans', sans-serif; letter-spacing: 0.2em; text-transform: uppercase; box-shadow: inset 0 -2px 0 #C98A3E; }
.oz-demo[data-oz-demo="nice"] .oz-s-titre { text-align: center; font: 500 11px/1 'Instrument Sans', sans-serif; letter-spacing: 0.3em; text-transform: uppercase; color: #8A6436; }
.oz-demo[data-oz-demo="nice"] .oz-a-exps { border-block-color: rgba(201, 138, 62, 0.6); }
.oz-demo[data-oz-demo="nice"] .oz-a-exps > span + span { border-left-color: rgba(201, 138, 62, 0.6); }
.oz-demo[data-oz-demo="nice"] .oz-a-exps i { color: #C98A3E; }
.oz-demo[data-oz-demo="nice"] .oz-a-exps b { color: #1E3A5C; }
.oz-demo[data-oz-demo="nice"] .oz-a-bandeau img { filter: none; }
.oz-demo[data-oz-demo="nice"] .oz-a-associes button { box-shadow: inset 0 0 0 1px rgba(201, 138, 62, 0.5); }
.oz-demo[data-oz-demo="nice"] .oz-a-associes button.est-actif { box-shadow: inset 0 0 0 1.5px #1E3A5C; }
.oz-demo[data-oz-demo="nice"] .oz-a-associes i { background: #1E3A5C; color: #F7F1E6; }
.oz-demo[data-oz-demo="nice"] .oz-s-choix button { font-size: 11.5px; }
.oz-demo[data-oz-demo="nice"] .oz-s-choix button.est-actif { background: #1E3A5C; }
.oz-demo[data-oz-demo="nice"] .oz-s-label { color: #8A6436; }
.oz-demo[data-oz-demo="nice"] .oz-s-ok { box-shadow: 0 0 0 1px #C98A3E, 0 0 0 5px #fff, 0 0 0 6px #C98A3E; }
.oz-demo[data-oz-demo="nice"] .oz-s-ok i { border-radius: 50% !important; }

/* ─── ATELIER CALADE · la lumière de la Côte (Côte d'Azur) ───
   Chaux, bleu azur, ocre ; logo en minuscules ; la côte en ligne de
   villes à cliquer ; un mur de projets en hauteurs libres. */
.oz-demo[data-oz-demo="cotedazur"] { --m-encre: #23384A; --m-fond: #F6F3EC; --m-accent: #2F6FA3; --m-doux: #EAE4D7; }
.oz-demo[data-oz-demo="cotedazur"] .oz-site { background: #F6F3EC; color: #23384A; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-entete { height: 58px; background: #F6F3EC; border-bottom: 0; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-logo { font: italic 400 21px/1 'Fraunces', Georgia, serif; letter-spacing: 0; text-transform: lowercase; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-logo::after { content: ''; width: 7px; height: 7px; margin-left: -4px; border-radius: 50%; background: #C98B4B; align-self: flex-end; margin-bottom: 3px; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-nav button { font-size: 12.5px; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-nav button.est-actif { box-shadow: 0 2px 0 #2F6FA3; color: #2F6FA3; }
.oz-k-titre { padding: 18px 22px 6px; font: 300 30px/1.15 'Instrument Sans', sans-serif; letter-spacing: -0.02em; }
.oz-k-cote { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 18px; padding: 12px 22px 4px; }
.oz-k-toute { padding: 6px 12px; border-radius: 99px; box-shadow: inset 0 0 0 1px rgba(47, 111, 163, 0.4); color: #2F6FA3; font-size: 11.5px; }
.oz-k-toute.est-actif { background: #2F6FA3; color: #fff; }
.oz-k-ligne { position: relative; display: flex; justify-content: space-between; padding-top: 4px; }
.oz-k-ligne::before { content: ''; position: absolute; left: 6px; right: 6px; top: 10px; height: 2px; background: repeating-linear-gradient(90deg, #2F6FA3 0 5px, transparent 5px 9px); opacity: 0.5; }
.oz-k-ligne button { position: relative; display: grid; justify-items: center; gap: 6px; font-size: 11px; color: rgba(35, 56, 74, 0.7); }
.oz-k-ligne button i { width: 13px; height: 13px; border-radius: 50%; background: #F6F3EC; box-shadow: inset 0 0 0 2px #2F6FA3; transition: transform 300ms var(--ressort), background-color 300ms ease; }
.oz-k-ligne button.est-actif { color: #2F6FA3; font-weight: 600; }
.oz-k-ligne button.est-actif i { background: #C98B4B; box-shadow: 0 0 0 3px rgba(201, 139, 75, 0.25); transform: scale(1.25); }
.oz-k-mur { columns: 3; column-gap: 12px; }
.oz-k-mur .oz-s-carte { display: inline-grid; width: 100%; margin-bottom: 14px; break-inside: avoid; gap: 4px; }
.oz-k-mur .oz-s-carte-photo { aspect-ratio: 1 / var(--h, 1); border-radius: 3px; }
.oz-k-mur .oz-s-carte b { font: 400 14px/1.25 'Instrument Sans', sans-serif; }
.oz-k-mur .oz-s-carte small { color: #2F6FA3; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; opacity: 1; }
.oz-k-ville { color: #2F6FA3; font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-infos h4 { font: 300 26px/1.15 'Instrument Sans', sans-serif; letter-spacing: -0.01em; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-caracs span { background: #fff; border-radius: 3px; }
.oz-k-pieces { display: grid; gap: 2px; margin: 0; font-size: 13px; }
.oz-k-pieces small { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.6; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-galerie-grande, .oz-demo[data-oz-demo="cotedazur"] .oz-s-vignettes button { border-radius: 3px; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-bouton { border-radius: 99px; background: transparent; color: #2F6FA3 !important; box-shadow: inset 0 0 0 1.5px #2F6FA3; font-weight: 500; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-bouton:hover { background: #2F6FA3; color: #fff !important; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-choix button { border-radius: 99px; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-choix button.est-actif { background: #2F6FA3; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-titre { font: 300 24px/1.2 'Instrument Sans', sans-serif; }
.oz-k-contact { display: grid; gap: 10px; }
.oz-demo[data-oz-demo="cotedazur"] .oz-s-ok { border-radius: 4px; }
@media (max-width: 760px) {
  .oz-a-exps { grid-template-columns: minmax(0, 1fr); }
  .oz-a-exps > span + span { border-left: 0; border-top: 1px solid rgba(184, 151, 90, 0.6); }
  .oz-a-langues { display: none; }
  .oz-k-mur { columns: 2; }
  .oz-k-cote { grid-template-columns: minmax(0, 1fr); }
  .oz-k-ligne button { font-size: 9.5px; }
}

/* ─── VESPÉRAL · maison de parfums, papier et laiton (21/10/2026) ─── */
.oz-demo[data-oz-demo="boutique"] { --m-encre: #1C1814; --m-fond: #F4EEE5; --m-accent: #A47F48; --m-doux: #E4D9C9; --m-police: 'Cormorant Garamond', Garamond, Georgia, serif; }
.oz-demo[data-oz-demo="boutique"] .oz-s-logo { font: 500 19px/1 'Cormorant Garamond', Garamond, Georgia, serif; letter-spacing: 0.32em; }
.oz-demo[data-oz-demo="boutique"] .oz-s-titre, .oz-demo[data-oz-demo="boutique"] .oz-s-infos h4 { font-family: 'Cormorant Garamond', Garamond, Georgia, serif; font-weight: 500; }
.oz-demo[data-oz-demo="boutique"] .oz-s-infos h4 { font-size: 24px; }
.oz-demo[data-oz-demo="boutique"] .oz-s-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.oz-demo[data-oz-demo="boutique"] .oz-s-carte-photo { aspect-ratio: 4 / 5; }
.oz-demo[data-oz-demo="boutique"] .oz-s-bouton { background: #1C1814; letter-spacing: 0.08em; }
.oz-demo[data-oz-demo="boutique"] .oz-s-bouton--fin { background: transparent; color: #1C1814 !important; box-shadow: inset 0 0 0 1px #1C1814; }
.oz-s-notes { display: block; margin: -2px 0 2px; font-size: 12px; font-style: italic; opacity: 0.7; }
.oz-s-franco { display: grid; gap: 6px; margin-bottom: 4px; font-size: 11.5px; }
.oz-s-franco u { display: block; height: 4px; border-radius: 4px; background: color-mix(in srgb, var(--m-encre) 12%, transparent); overflow: hidden; text-decoration: none; }
.oz-s-franco s { display: block; height: 100%; border-radius: 4px; background: var(--m-accent); text-decoration: none; transition: width 500ms cubic-bezier(0.2, 0.8, 0.2, 1); }

/* ─── ORVANE · la refonte, avant / après (21/10/2026) ───
   Une barre noire pour basculer d'une version à l'autre, avec ses
   trois mesures ; avant, un site de 2016 (Times, liens bleus, photo
   qui tarde, formulaire à fax) ; après, le site refait. */
.oz-demo[data-oz-demo="refonte"] { --m-encre: #1F2420; --m-fond: #F5F1E8; --m-accent: #B4683E; --m-doux: #E8E0D0; }
.oz-r-bascule { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 8px 14px; background: #161616; color: #EDEDED; font-family: 'Instrument Sans', sans-serif; }
.oz-r-choix { display: flex; padding: 3px; border-radius: 99px; background: rgba(255, 255, 255, 0.08); }
.oz-r-choix button { padding: 6px 12px; border-radius: 99px; color: rgba(255, 255, 255, 0.7); font-size: 11.5px; white-space: nowrap; transition: background-color 250ms ease, color 250ms ease; }
.oz-r-choix button.est-actif { background: #fff; color: #111; font-weight: 600; }
.oz-r-mesures { display: flex; gap: 16px; margin-left: auto; }
.oz-r-mesures i { display: grid; font-style: normal; line-height: 1.15; }
.oz-r-mesures small { font-size: 9.5px; letter-spacing: 0.04em; opacity: 0.6; }
.oz-r-mesures b { font-size: 13.5px; font-variant-numeric: tabular-nums; animation: oz-pop 400ms cubic-bezier(0.3, 1.6, 0.5, 1); }
.oz-r-mesures.est-avant b { color: #FF8A7A; }
.oz-r-mesures.est-apres b { color: #6FE3A1; }
.oz-demo[data-oz-demo="refonte"] .oz-site-defile:has(.oz-r-vieux) { background: #E4E4E4; }
.oz-r-vieux { color: #222; font: 13px/1.45 'Times New Roman', Times, serif; }
.oz-r-vieux button { font-family: inherit; }
.oz-r-vieux-tete { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 14px 16px; background: linear-gradient(180deg, #7A2B3A, #4E1622); color: #FFE9A8; }
.oz-r-vieux-tete b { font: italic 700 25px/1 'Times New Roman', Times, serif; text-shadow: 2px 2px 0 #2A0A10; }
.oz-r-vieux-tete small { color: #fff; font-size: 11px; }
.oz-r-vieux-nav { padding: 5px 16px; background: #C9C9C9; border-bottom: 2px solid #999; color: #333; font-size: 12px; }
.oz-r-vieux-nav button { color: #0000EE !important; text-decoration: underline; }
.oz-r-vieux-hero { position: relative; height: 170px; margin: 12px 16px 0; overflow: hidden; background: #BDBDBD; border: 3px ridge #999; }
.oz-r-vieux-hero img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.55) contrast(0.9); animation: oz-r-lent 3.2s steps(1, end) both; }
@keyframes oz-r-lent { from { opacity: 0; } to { opacity: 1; } }
.oz-r-roue { position: absolute; left: 50%; top: 50%; z-index: 1; width: 26px; height: 26px; margin: -13px; border: 3px solid #fff; border-top-color: #7A2B3A; border-radius: 50%; animation: oz-r-tourne 700ms linear infinite, oz-r-fin 3.2s steps(1, end) forwards; }
@keyframes oz-r-tourne { to { transform: rotate(360deg); } }
@keyframes oz-r-fin { to { visibility: hidden; } }
.oz-r-fleche { position: absolute; left: 0; top: 50%; display: grid; place-items: center; width: 22px; height: 34px; background: rgba(0, 0, 0, 0.45); color: #fff; font-size: 20px; transform: translateY(-50%); }
.oz-r-fleche--d { left: auto; right: 0; }
.oz-r-vieux-corps { padding: 12px 16px 24px; }
.oz-r-vieux-corps h4 { margin: 0 0 6px; color: #7A2B3A; font: 700 18px/1.2 'Times New Roman', Times, serif; text-decoration: underline; }
.oz-r-vieux-corps p { margin: 0 0 8px; font-size: 12.5px; text-align: justify; }
.oz-r-vieux-pied button { color: #0000EE !important; font-size: 11px; text-decoration: underline; }
.oz-r-compteur { color: #666; font-size: 10.5px; text-align: center !important; }
.oz-r-vieux-form { display: grid; gap: 5px; max-width: 380px; }
.oz-r-ligne { display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: center; gap: 8px; font-size: 11.5px; }
.oz-r-ligne i { height: 18px; background: #fff; border: 1px inset #999; }
.oz-r-captcha i { background: repeating-linear-gradient(45deg, #DDD 0 3px, #fff 3px 6px); color: #555; font: italic 700 14px/16px 'Courier New', monospace; letter-spacing: 3px; text-align: center; }
.oz-r-vieux-form > button { justify-self: start; margin-top: 4px; padding: 3px 14px; border: 1px solid #888 !important; border-radius: 3px; background: linear-gradient(#FAFAFA, #CFCFCF) !important; color: #111; font: 12px Arial, sans-serif !important; }
.oz-r-erreur { margin: 4px 0 0 !important; padding: 6px 8px; border: 1px solid #D33; background: #FFE3E3; color: #B00; font: 700 11.5px/1.35 Arial, sans-serif; text-align: left !important; animation: oz-glisse 300ms ease; }
.oz-demo[data-oz-demo="refonte"] .oz-s-logo { font: 400 18px/1 'Fraunces', Georgia, serif; letter-spacing: 0.32em; }
.oz-demo[data-oz-demo="refonte"] .oz-s-cta, .oz-demo[data-oz-demo="refonte"] .oz-s-bouton { background: #B4683E; color: #fff !important; }
.oz-demo[data-oz-demo="refonte"] .oz-s-hero { height: 250px; }
.oz-demo[data-oz-demo="refonte"] .oz-s-hero-txt b { font-weight: 300; }
.oz-demo[data-oz-demo="refonte"] .oz-s-grille.oz-r-trois { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.oz-demo[data-oz-demo="refonte"] .oz-s-carte-photo { aspect-ratio: 4 / 5; }
.oz-demo[data-oz-demo="refonte"] .oz-s-choix button.est-actif { background: #1F2420; }
@media (max-width: 760px) {
  .oz-r-mesures { width: 100%; margin-left: 0; justify-content: space-between; }
  .oz-r-ligne { grid-template-columns: 96px minmax(0, 1fr); }
  .oz-demo[data-oz-demo="refonte"] .oz-s-grille.oz-r-trois { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Refonte : le plan de redirection (scène 4 de la méthode, tuile 02) */
.oz-redir { display: grid; gap: 6px; padding: 12px 14px; border-radius: 12px; background: rgba(255, 255, 255, 0.04); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08); font: 11.5px/1.3 ui-monospace, 'SF Mono', Menlo, monospace; }
.oz-redir > small { color: var(--sur-noir-2); font: 10px/1.2 'Instrument Sans', sans-serif; letter-spacing: 0.12em; text-transform: uppercase; }
.oz-redir-ligne, .oz-v-redir > span { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 0.8fr); align-items: center; gap: 8px; }
.oz-redir-ligne s, .oz-v-redir s { overflow: hidden; color: var(--sur-noir-2); white-space: nowrap; text-overflow: ellipsis; }
.oz-redir-ligne i, .oz-v-redir i { padding: 1px 6px; border-radius: 5px; background: rgba(209, 163, 38, 0.16); color: #E6BA42; font-style: normal; font-size: 10px; font-weight: 700; }
.oz-redir-ligne b, .oz-v-redir b { overflow: hidden; color: #9FE8BE; font-weight: 500; white-space: nowrap; text-overflow: ellipsis; }
.oz-redir-total { margin-top: 2px; color: var(--sur-noir-2); font-family: 'Instrument Sans', sans-serif; }
.oz-redir-total b { color: #6FE3A1; }
[data-courant="4"] .oz-redir-ligne { animation: oz-glisse 450ms var(--ressort) calc(var(--i) * 140ms) backwards; }
[data-courant="4"] .oz-redir-total { animation: oz-pop 400ms cubic-bezier(0.3, 1.6, 0.5, 1) 800ms backwards; }
.oz-v-redir { display: grid; gap: 7px; width: min(100%, 320px); padding: 14px; border-radius: 12px; background: #141414; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1), 0 20px 34px -18px rgba(0, 0, 0, 0.9); font: 10.5px/1.3 ui-monospace, 'SF Mono', Menlo, monospace; }
.oz-v-redir em { justify-self: start; margin-top: 4px; padding: 3px 9px; border-radius: 99px; background: rgba(61, 220, 132, 0.12); color: #9FE8BE; font: 600 11px/1.2 'Instrument Sans', sans-serif; font-style: normal; transition: transform 400ms var(--ressort); }
.oz-tuile:hover .oz-v-redir em { transform: scale(1.06); }

/* ─── ELSAIRE · site vitrine, chaux, terre cuite et serif (21/10/2026) ───
   Le site de démonstration du studio (/demo/vitrine) en miniature :
   logo centré à l'italienne, grandes respirations, contact en un écran. */
.oz-demo[data-oz-demo="vitrine"] { --m-encre: #1F1D1A; --m-fond: #F5EFE4; --m-accent: #B8704F; --m-doux: #E3D4BC; --m-police: 'Cormorant Garamond', Garamond, Georgia, serif; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-entete { height: 60px; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-logo { flex-direction: column; align-items: flex-start; gap: 4px; font: 500 19px/1 'Cormorant Garamond', Garamond, Georgia, serif; letter-spacing: 0.34em; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-logo small { font: 500 8px/1 'Instrument Sans', sans-serif; letter-spacing: 0.5em; color: #B8704F; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-nav button { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-cta { background: transparent; color: #8F4F31 !important; box-shadow: inset 0 0 0 1px #B8704F; font-weight: 500; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-hero { height: 300px; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-hero::after { background: linear-gradient(180deg, rgba(20, 27, 46, 0.1) 30%, rgba(20, 27, 46, 0.65)); }
.oz-demo[data-oz-demo="vitrine"] .oz-s-hero-txt b { font-size: 36px; font-weight: 400; font-style: italic; }
.oz-v2-intro { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; margin: 0 22px; padding: 20px 0; border-bottom: 1px solid rgba(31, 29, 26, 0.12); }
.oz-v2-intro p { margin: 0; font: 400 17px/1.4 'Cormorant Garamond', Garamond, Georgia, serif; }
.oz-v2-blocs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.oz-v2-blocs .oz-s-carte-photo { aspect-ratio: 3 / 4; border-radius: 999px 999px 4px 4px; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-carte b { font-size: 18px; font-weight: 500; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-titre { font-size: 24px; font-style: italic; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-bouton { border-radius: 99px; background: #B8704F; color: #fff !important; font-weight: 500; letter-spacing: 0.04em; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-choix button { border-radius: 99px; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-choix button.est-actif { background: #1F1D1A; }
.oz-v2-contact { display: grid; gap: 11px; }
.oz-v2-choisie { display: grid; grid-template-columns: 54px minmax(0, 1fr); align-items: center; gap: 12px; padding: 8px; border-radius: 12px; background: #fff; }
.oz-v2-choisie img { width: 54px; height: 54px; object-fit: cover; border-radius: 50%; }
.oz-v2-choisie span { display: grid; }
.oz-v2-choisie small, .oz-v2-sur { font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: #8F4F31; }
.oz-v2-choisie b { font: 500 18px/1.1 'Cormorant Garamond', Garamond, Georgia, serif; }
.oz-demo[data-oz-demo="vitrine"] .oz-s-ok { border-radius: 999px 999px 18px 18px; padding-top: 40px; }
@media (max-width: 760px) {
  .oz-v2-intro { grid-template-columns: minmax(0, 1fr); }
  .oz-v2-blocs { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .oz-demo[data-oz-demo="vitrine"] .oz-s-hero-txt b { font-size: 26px; }
}

/* ─── AURÈLE · chauffeurs privés, nuit bleue et laiton (21/10/2026) ───
   Un site sombre de service de nuit : la réservation posée sur la photo,
   des silhouettes de véhicules dessinées, le prix avant de confirmer. */
.oz-demo[data-oz-demo="automobile"] { --m-encre: #EDE6D8; --m-fond: #10151F; --m-accent: #C9A35B; --m-doux: #1B2230; }
.oz-demo[data-oz-demo="automobile"] .oz-s-entete { height: 60px; background: rgba(16, 21, 31, 0.92); border-bottom-color: rgba(201, 163, 91, 0.25); }
.oz-demo[data-oz-demo="automobile"] .oz-s-logo { flex-direction: column; align-items: flex-start; gap: 4px; font: 500 17px/1 'Instrument Sans', sans-serif; letter-spacing: 0.42em; }
.oz-demo[data-oz-demo="automobile"] .oz-s-logo small { font: 500 7.5px/1 'Instrument Sans', sans-serif; letter-spacing: 0.4em; color: #C9A35B; }
.oz-demo[data-oz-demo="automobile"] .oz-s-nav button { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; }
.oz-demo[data-oz-demo="automobile"] .oz-s-cta, .oz-demo[data-oz-demo="automobile"] .oz-s-bouton { background: #C9A35B; color: #10151F !important; }
.oz-demo[data-oz-demo="automobile"] .oz-s-bouton--fin { background: transparent; color: #EDE6D8 !important; box-shadow: inset 0 0 0 1px rgba(237, 230, 216, 0.4); }
.oz-c-hero { height: 250px; }
.oz-demo[data-oz-demo="automobile"] .oz-s-hero::after { background: linear-gradient(180deg, rgba(16, 21, 31, 0.15) 20%, rgba(16, 21, 31, 0.95)); }
.oz-demo[data-oz-demo="automobile"] .oz-s-hero-txt { bottom: 48px; }
.oz-demo[data-oz-demo="automobile"] .oz-s-hero-txt small { color: #C9A35B; letter-spacing: 0.3em; }
.oz-demo[data-oz-demo="automobile"] .oz-s-hero-txt b { font: 300 32px/1.1 'Instrument Sans', sans-serif; letter-spacing: -0.02em; }
.oz-c-resa { position: relative; z-index: 2; display: grid; gap: 10px; margin: -34px 22px 22px; padding: 14px 16px 16px; border-radius: 14px; background: #171E2B; box-shadow: inset 0 0 0 1px rgba(201, 163, 91, 0.3), 0 24px 40px -24px rgba(0, 0, 0, 0.8); }
.oz-c-onglets { display: flex; gap: 4px; justify-self: start; padding: 3px; border-radius: 99px; background: rgba(255, 255, 255, 0.06); }
.oz-c-onglets button { padding: 6px 14px; border-radius: 99px; font-size: 12px; opacity: 0.7; }
.oz-c-onglets button.est-actif { background: #C9A35B; color: #10151F; opacity: 1; font-weight: 600; }
.oz-c-deux { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; gap: 14px; }
.oz-c-deux > span { display: grid; gap: 6px; }
.oz-demo[data-oz-demo="automobile"] .oz-s-choix button { box-shadow: inset 0 0 0 1px rgba(237, 230, 216, 0.22); }
.oz-demo[data-oz-demo="automobile"] .oz-s-choix button.est-actif { background: #EDE6D8; color: #10151F; }
.oz-demo[data-oz-demo="automobile"] .oz-s-pas button { box-shadow: inset 0 0 0 1px rgba(237, 230, 216, 0.4); }
.oz-c-flotte { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.oz-c-carte { display: grid; gap: 4px; padding: 12px; border-radius: 12px; background: #171E2B; box-shadow: inset 0 0 0 1px rgba(237, 230, 216, 0.1); text-align: left; animation: oz-glisse 450ms var(--ressort) backwards; transition: box-shadow 250ms ease, background-color 250ms ease; }
.oz-c-carte.est-actif { background: #1E2636; box-shadow: inset 0 0 0 1.5px #C9A35B; }
.oz-c-carte b { font-size: 13px; font-weight: 600; }
.oz-c-carte small { opacity: 0.65; font-size: 11px; }
.oz-c-carte > span { color: #C9A35B; font-size: 14px; font-weight: 600; }
.oz-c-voiture { width: 100%; height: auto; margin-bottom: 4px; }
.oz-c-caisse { fill: #2A3346; stroke: #C9A35B; stroke-width: 1.2; }
.oz-c-carte.est-actif .oz-c-caisse { fill: #39445C; }
.oz-c-vitre { fill: #4E5D78; opacity: 0.75; }
.oz-c-roue { fill: #0B0F16; stroke: #5A6476; stroke-width: 2; }
.oz-c-jante { fill: #C9A35B; }
.oz-c-carte.est-actif .oz-c-voiture { animation: oz-c-roule 700ms cubic-bezier(0.3, 1.4, 0.5, 1); }
@keyframes oz-c-roule { from { transform: translateX(-14px); } }
.oz-c-recap { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; margin: 14px 0 10px; padding: 12px 14px; border-radius: 12px; background: rgba(201, 163, 91, 0.1); box-shadow: inset 0 0 0 1px rgba(201, 163, 91, 0.35); }
.oz-c-recap > span { display: grid; gap: 2px; }
.oz-c-recap small { font-size: 10.5px; opacity: 0.7; }
.oz-c-recap b { font-size: 14px; }
.oz-c-total { text-align: right; }
.oz-c-total b { color: #C9A35B; font-size: 20px; }
.oz-c-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; margin-bottom: 10px; }
.oz-c-wa::before { content: ''; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: #25D366; box-shadow: 0 0 8px #25D366; }
.oz-demo[data-oz-demo="automobile"] .oz-s-ok { background: #171E2B; box-shadow: inset 0 0 0 1px rgba(201, 163, 91, 0.35); }
.oz-demo[data-oz-demo="automobile"] .oz-s-ok i { background: rgba(201, 163, 91, 0.15); color: #C9A35B; }
@media (prefers-reduced-motion: reduce) { .oz-c-carte.est-actif .oz-c-voiture { animation: none; } }
@media (max-width: 760px) {
  .oz-c-flotte { grid-template-columns: minmax(0, 1fr); }
  .oz-c-carte { grid-template-columns: 110px minmax(0, 1fr); column-gap: 12px; }
  .oz-c-carte .oz-c-voiture { grid-row: 1 / span 3; align-self: center; }
  .oz-c-deux, .oz-c-actions { grid-template-columns: minmax(0, 1fr); }
  .oz-c-resa { margin-inline: 12px; }
}
.oz-c-tuile .oz-c-voiture { display: block; margin: 0; padding: 26px 14px 8px; background: #10151F; }

/* ─── SOREL · le papier à lettres, version parisienne (Paris, 21/10/2026) ───
   Même maquette que Monaco et Nice ; l'ardoise des toits de Paris et le
   laiton des plaques de cabinet. */
.oz-demo[data-oz-demo="paris"] { --m-encre: #1F2630; --m-fond: #F4F1EA; --m-accent: #A88A55; --m-doux: #E6E0D3; }
.oz-demo[data-oz-demo="paris"] .oz-site { background: #F4F1EA; color: #1A1D22; }
.oz-demo[data-oz-demo="paris"] .oz-site * { border-radius: 0 !important; }
.oz-demo[data-oz-demo="paris"] .oz-s-entete { height: 64px; background: #F4F1EA; border-bottom: 0; box-shadow: 0 -1px 0 #A88A55 inset, 0 -4px 0 #F4F1EA inset, 0 -5px 0 #A88A55 inset; }
.oz-demo[data-oz-demo="paris"] .oz-s-logo { flex-direction: column; align-items: flex-start; gap: 3px; color: #1F2630; font: 500 17px/1 'Fraunces', Georgia, serif; letter-spacing: 0.3em; }
.oz-demo[data-oz-demo="paris"] .oz-s-logo small { font: 500 8px/1 'Instrument Sans', sans-serif; letter-spacing: 0.42em; color: #A88A55; }
.oz-demo[data-oz-demo="paris"] .oz-s-nav button { font: 400 12px/1 'Fraunces', Georgia, serif; letter-spacing: 0.04em; }
.oz-demo[data-oz-demo="paris"] .oz-s-nav button.est-actif { box-shadow: 0 1px 0 #1F2630; }
.oz-demo[data-oz-demo="paris"] .oz-a-langues { box-shadow: inset 0 0 0 1px #A88A55; }
.oz-demo[data-oz-demo="paris"] .oz-a-langues button { color: #6F6046; }
.oz-demo[data-oz-demo="paris"] .oz-a-langues button.est-actif { background: #1F2630; color: #F4F1EA; }
.oz-demo[data-oz-demo="paris"] .oz-s-hero { height: 190px; margin: 18px 22px 0; box-shadow: 0 0 0 1px #A88A55, 0 0 0 5px #F4F1EA, 0 0 0 6px #A88A55; }
.oz-demo[data-oz-demo="paris"] .oz-s-hero::after { display: none; }
.oz-demo[data-oz-demo="paris"] .oz-a-lettre small { color: #A88A55; }
.oz-demo[data-oz-demo="paris"] .oz-a-lettre b { color: #1F2630; }
.oz-demo[data-oz-demo="paris"] .oz-s-bouton { padding: 12px 22px; background: #1F2630; color: #F4F1EA !important; font: 500 11px/1 'Instrument Sans', sans-serif; letter-spacing: 0.2em; text-transform: uppercase; box-shadow: inset 0 -2px 0 #A88A55; }
.oz-demo[data-oz-demo="paris"] .oz-s-titre { text-align: center; font: 500 11px/1 'Instrument Sans', sans-serif; letter-spacing: 0.3em; text-transform: uppercase; color: #6F6046; }
.oz-demo[data-oz-demo="paris"] .oz-a-exps { border-block-color: rgba(168, 138, 85, 0.6); }
.oz-demo[data-oz-demo="paris"] .oz-a-exps > span + span { border-left-color: rgba(168, 138, 85, 0.6); }
.oz-demo[data-oz-demo="paris"] .oz-a-exps i { color: #A88A55; }
.oz-demo[data-oz-demo="paris"] .oz-a-exps b { color: #1F2630; }
.oz-demo[data-oz-demo="paris"] .oz-a-bandeau img { filter: none; }
.oz-demo[data-oz-demo="paris"] .oz-a-associes button { box-shadow: inset 0 0 0 1px rgba(168, 138, 85, 0.5); }
.oz-demo[data-oz-demo="paris"] .oz-a-associes button.est-actif { box-shadow: inset 0 0 0 1.5px #1F2630; }
.oz-demo[data-oz-demo="paris"] .oz-a-associes i { background: #1F2630; color: #F4F1EA; }
.oz-demo[data-oz-demo="paris"] .oz-s-choix button { font-size: 11.5px; }
.oz-demo[data-oz-demo="paris"] .oz-s-choix button.est-actif { background: #1F2630; }
.oz-demo[data-oz-demo="paris"] .oz-s-label { color: #6F6046; }
.oz-demo[data-oz-demo="paris"] .oz-s-ok { box-shadow: 0 0 0 1px #A88A55, 0 0 0 5px #fff, 0 0 0 6px #A88A55; }
.oz-demo[data-oz-demo="paris"] .oz-s-ok i { border-radius: 50% !important; }

/* ─── SÉRÈNE SUR LES RÉSEAUX · l'outil de publication (21/10/2026) ───
   Blanc d'application, dégradé du compte, le bleu nuit de Sérène :
   profil, composition, calendrier éditorial, messagerie. */
.oz-demo[data-oz-demo="reseaux"] { --m-encre: #1F2A44; --m-fond: #FFFFFF; --m-accent: #C98A2B; --m-doux: #F1EEE8; --m-police: 'Instrument Sans', -apple-system, sans-serif; }
.oz-demo[data-oz-demo="reseaux"] .oz-s-logo { gap: 9px; font: 600 14px/1 'Instrument Sans', sans-serif; letter-spacing: 0; }
.oz-demo[data-oz-demo="reseaux"] .oz-s-nav button { position: relative; font-weight: 500; }
.oz-demo[data-oz-demo="reseaux"] .oz-s-cta { background: linear-gradient(90deg, #F58529, #DD2A7B 55%, #8134AF); color: #fff !important; }
.oz-rs-pastille { position: absolute; right: -12px; top: -4px; display: grid; place-items: center; min-width: 15px; height: 15px; border-radius: 99px; background: #FF3040; color: #fff; font-size: 9px; }
.oz-rs-av { display: inline-grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; background: #1F2A44; color: #F2D27A; font: italic 500 15px/1 'Fraunces', Georgia, serif; box-shadow: 0 0 0 2px #fff, 0 0 0 4px #DD2A7B; }
.oz-rs-av--petit { width: 24px; height: 24px; font-size: 11px; box-shadow: 0 0 0 1.5px #fff, 0 0 0 3px #DD2A7B; }
.oz-rs-av--grand { width: 78px; height: 78px; font-size: 32px; box-shadow: 0 0 0 3px #fff, 0 0 0 6px #DD2A7B; }
.oz-rs-profil { display: flex; align-items: center; gap: 26px; padding: 22px 26px 10px; }
.oz-rs-chiffres { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 18px; font-size: 12.5px; }
.oz-rs-chiffres > b { flex-basis: 100%; font-size: 16px; }
.oz-rs-chiffres span b { font-weight: 700; }
.oz-rs-bio { margin: 0; padding: 0 26px; font-size: 12.5px; line-height: 1.45; }
.oz-rs-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 12px 26px; }
.oz-rs-actions .oz-s-bouton { padding: 8px; font-size: 12px; border-radius: 8px; }
.oz-rs-temps { display: flex; gap: 16px; padding: 4px 26px 14px; }
.oz-rs-temps span { display: grid; justify-items: center; gap: 5px; font-size: 10.5px; }
.oz-rs-temps img { width: 54px; height: 54px; object-fit: cover; border-radius: 50%; box-shadow: 0 0 0 2px #fff, 0 0 0 3px #D9D4CA; }
.oz-rs-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; }
.oz-rs-vignette { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: #F1EEE8; animation: oz-glisse 450ms var(--ressort) backwards; }
.oz-rs-vignette img { width: 100%; height: 100%; object-fit: cover; }
.oz-rs-vignette.est-planifie img { filter: saturate(0.6) brightness(0.8); }
.oz-rs-vignette em { position: absolute; left: 8px; bottom: 8px; padding: 3px 8px; border-radius: 99px; background: rgba(0, 0, 0, 0.65); color: #fff; font-style: normal; font-size: 10.5px; }
.oz-rs-vignette em::before { content: '◷ '; }
.oz-rs-reel { position: absolute; right: 7px; top: 7px; width: 16px; height: 16px; border-radius: 4px; box-shadow: inset 0 0 0 1.6px #fff; }
.oz-rs-reel::after { content: ''; position: absolute; left: 6px; top: 4.5px; border: 3.5px solid transparent; border-left: 5px solid #fff; border-right: 0; }
.oz-rs-composer { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr); gap: 20px; padding: 18px 22px; }
.oz-rs-apercu { display: grid; align-content: start; gap: 8px; padding: 10px; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px #ECE8E0, 0 24px 40px -28px rgba(0, 0, 0, 0.4); }
.oz-rs-apercu-tete { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.oz-rs-apercu-tete small { margin-left: auto; opacity: 0.55; }
.oz-rs-apercu-media { position: relative; overflow: hidden; border-radius: 8px; aspect-ratio: 4 / 5; background: #F1EEE8; transition: aspect-ratio 400ms ease; }
.oz-rs-apercu-media.oz-rs-format-0, .oz-rs-apercu-media.oz-rs-format-2 { aspect-ratio: 9 / 14; }
.oz-rs-apercu-media img { width: 100%; height: 100%; object-fit: cover; animation: oz-fondu 400ms ease; }
.oz-rs-apercu-legende { font-size: 11.5px; line-height: 1.4; }
.oz-rs-reglages { display: grid; align-content: start; gap: 9px; }
.oz-rs-medias { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.oz-rs-medias button { aspect-ratio: 1; overflow: hidden; border-radius: 8px; opacity: 0.55; transition: opacity 200ms ease; }
.oz-rs-medias button.est-actif { opacity: 1; box-shadow: 0 0 0 2px #fff, 0 0 0 4px #DD2A7B; }
.oz-rs-medias img { width: 100%; height: 100%; object-fit: cover; }
.oz-rs-reseau { display: inline-flex; align-items: center; gap: 6px; }
.oz-rs-reseau img { width: 14px; height: 14px; }
.oz-demo[data-oz-demo="reseaux"] .oz-s-choix button.est-actif { background: #1F2A44; }
.oz-rs-legendes { display: grid; gap: 6px; }
.oz-rs-legendes button { padding: 8px 10px; border-radius: 9px; box-shadow: inset 0 0 0 1px #E2DDD3; font-size: 11.5px; line-height: 1.35; text-align: left; opacity: 0.7; }
.oz-rs-legendes button.est-actif { box-shadow: inset 0 0 0 1.5px #1F2A44; opacity: 1; }
.oz-rs-meilleur { color: #A06A12; font-size: 11px; }
.oz-demo[data-oz-demo="reseaux"] .oz-s-bouton { border-radius: 9px; }
.oz-rs-semaine { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.oz-rs-jour { display: grid; align-content: start; gap: 6px; min-height: 260px; padding: 6px; border-radius: 10px; background: #F7F5F1; }
.oz-rs-jour > small { font-size: 10.5px; font-weight: 600; opacity: 0.65; }
.oz-rs-case { position: relative; display: grid; gap: 3px; }
.oz-rs-case img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 6px; }
.oz-rs-case i { font-style: normal; font-size: 9.5px; opacity: 0.7; }
.oz-rs-case.est-neuf { animation: oz-pop 500ms cubic-bezier(0.3, 1.4, 0.5, 1); }
.oz-rs-case.est-neuf img { box-shadow: 0 0 0 2px #fff, 0 0 0 4px #DD2A7B; }
.oz-rs-case em { position: absolute; left: 4px; top: 4px; padding: 1px 6px; border-radius: 99px; background: #DD2A7B; color: #fff; font-style: normal; font-size: 9px; font-weight: 700; }
.oz-rs-boite { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); min-height: calc(100% - 54px); }
.oz-rs-liste { display: grid; align-content: start; gap: 4px; padding: 16px; border-right: 1px solid #EEEAE2; }
.oz-rs-msg { display: grid; grid-template-columns: 34px minmax(0, 1fr) 16px 10px; align-items: center; gap: 10px; padding: 9px; border-radius: 10px; text-align: left; transition: background-color 200ms ease; }
.oz-rs-msg.est-actif { background: #F3F0EA; }
.oz-rs-msg span { display: grid; min-width: 0; }
.oz-rs-msg b { font-size: 12.5px; }
.oz-rs-msg small { overflow: hidden; font-size: 11.5px; white-space: nowrap; text-overflow: ellipsis; opacity: 0.7; }
.oz-rs-msg em { color: #1F7A45; font-style: normal; font-weight: 700; font-size: 11px; }
.oz-rs-point { width: 8px; height: 8px; border-radius: 50%; background: #3797F0; }
.oz-rs-msg.est-repondu b { font-weight: 500; }
.oz-rs-conv { display: grid; align-content: start; gap: 10px; padding: 16px 18px; background: #FCFBF9; }
.oz-rs-conv--vide { place-content: center; opacity: 0.55; }
.oz-rs-conv-tete { display: flex; align-items: center; gap: 10px; padding-bottom: 10px; border-bottom: 1px solid #EEEAE2; font-size: 13px; }
.oz-rs-bulle { justify-self: start; max-width: 85%; padding: 9px 12px; border-radius: 16px 16px 16px 4px; background: #EFEDE8; font-size: 12.5px; line-height: 1.4; animation: oz-glisse 350ms var(--ressort); }
.oz-rs-bulle--nous { justify-self: end; border-radius: 16px 16px 4px 16px; background: linear-gradient(135deg, #7B3FE4, #3797F0); color: #fff; }
.oz-rs-reponses { display: grid; gap: 6px; margin-top: 6px; }
.oz-rs-etat { justify-self: end; color: #1F7A45; font-size: 11px; font-weight: 600; }
@media (max-width: 760px) {
  .oz-rs-composer, .oz-rs-boite { grid-template-columns: minmax(0, 1fr); }
  .oz-rs-apercu { max-width: 210px; justify-self: center; }
  .oz-rs-semaine { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .oz-rs-jour { min-height: 0; }
  .oz-rs-profil { gap: 16px; padding-inline: 16px; }
  .oz-rs-bio, .oz-rs-actions, .oz-rs-temps { padding-inline: 16px; }
  .oz-rs-liste { border-right: 0; border-bottom: 1px solid #EEEAE2; }
}

/* ─── HALVANE · le tableau des départs (aviation privée, 22/10/2026) ───
   Blanc froid de piste, graphite, orange de signalisation ; les trajets en
   codes d'aéroport, comme sur une carte d'embarquement perforée. */
.oz-demo[data-oz-demo="aviation"] { --m-encre: #1A1F24; --m-fond: #F3F5F6; --m-accent: #E2582B; --m-doux: #E3E8EB; --m-police: 'Instrument Sans', -apple-system, sans-serif; }
.oz-demo[data-oz-demo="aviation"] .oz-s-entete { height: 60px; background: #F3F5F6; border-bottom: 1px solid #D8DEE2; }
.oz-demo[data-oz-demo="aviation"] .oz-s-logo { flex-direction: column; align-items: flex-start; gap: 4px; font: 600 16px/1 'Instrument Sans', sans-serif; letter-spacing: 0.38em; }
.oz-demo[data-oz-demo="aviation"] .oz-s-logo small { font: 500 7.5px/1 ui-monospace, 'SF Mono', Menlo, monospace; letter-spacing: 0.22em; color: #E2582B; }
.oz-demo[data-oz-demo="aviation"] .oz-s-nav button { font: 500 11px/1 ui-monospace, 'SF Mono', Menlo, monospace; letter-spacing: 0.08em; text-transform: uppercase; }
.oz-demo[data-oz-demo="aviation"] .oz-s-cta { border-radius: 4px; background: #E2582B; color: #fff !important; }
.oz-demo[data-oz-demo="aviation"] .oz-s-bouton { border-radius: 4px; background: #1A1F24; letter-spacing: 0.02em; }
.oz-demo[data-oz-demo="aviation"] .oz-s-choix button { border-radius: 4px; }
.oz-demo[data-oz-demo="aviation"] .oz-s-label { font-family: ui-monospace, 'SF Mono', Menlo, monospace; font-size: 10px; letter-spacing: 0.14em; }
.oz-demo[data-oz-demo="aviation"] .oz-s-titre { font: 600 18px/1.2 'Instrument Sans', sans-serif; letter-spacing: -0.01em; }
.oz-h-hero { height: 230px; }
.oz-demo[data-oz-demo="aviation"] .oz-s-hero::after { background: linear-gradient(180deg, rgba(26, 31, 36, 0.05) 30%, rgba(26, 31, 36, 0.75)); }
.oz-demo[data-oz-demo="aviation"] .oz-s-hero-txt { bottom: 52px; }
.oz-demo[data-oz-demo="aviation"] .oz-s-hero-txt small { font-family: ui-monospace, 'SF Mono', Menlo, monospace; letter-spacing: 0.2em; color: #FFB494; }
.oz-demo[data-oz-demo="aviation"] .oz-s-hero-txt b { font: 600 30px/1.05 'Instrument Sans', sans-serif; letter-spacing: -0.02em; }
.oz-h-billet { position: relative; z-index: 2; display: grid; gap: 9px; margin: -36px 22px 22px; padding: 14px 16px 16px; border-radius: 10px; background: #fff; box-shadow: 0 24px 40px -26px rgba(26, 31, 36, 0.55), 0 0 0 1px #DDE3E7; }
.oz-h-billet-tete { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 9px; border-bottom: 1.5px dashed #CBD3D8; }
.oz-h-billet-tete small { font: 500 10.5px/1.2 ui-monospace, 'SF Mono', Menlo, monospace; opacity: 0.65; text-align: right; }
.oz-h-routes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.oz-h-route { display: grid; gap: 2px; padding: 8px 9px; border-radius: 6px; text-align: left; box-shadow: inset 0 0 0 1px #DDE3E7; transition: background-color 200ms ease, box-shadow 200ms ease; }
.oz-h-route b { font: 600 13px/1 ui-monospace, 'SF Mono', Menlo, monospace; letter-spacing: 0.02em; }
.oz-h-route small { overflow: hidden; font-size: 10.5px; white-space: nowrap; text-overflow: ellipsis; opacity: 0.65; }
.oz-h-route.est-actif { background: #1A1F24; color: #F3F5F6; box-shadow: none; }
.oz-h-route.est-actif b { color: #FFB494; }
.oz-h-deux { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: end; gap: 14px; }
.oz-h-deux > span { display: grid; gap: 6px; }
.oz-h-appareils { display: grid; gap: 8px; }
.oz-h-appareil { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 8px; border-radius: 8px; background: #fff; text-align: left; box-shadow: 0 0 0 1px #DDE3E7; animation: oz-glisse 450ms var(--ressort) backwards; transition: box-shadow 250ms ease; }
.oz-h-appareil img { width: 96px; height: 62px; object-fit: cover; border-radius: 5px; }
.oz-h-appareil span { display: grid; gap: 2px; }
.oz-h-appareil b { font-size: 13.5px; }
.oz-h-appareil small { font-size: 11px; opacity: 0.65; }
.oz-h-appareil em { display: grid; justify-items: end; font: 600 14px/1.2 ui-monospace, 'SF Mono', Menlo, monospace; font-style: normal; }
.oz-h-appareil em small { font: 400 9.5px/1 'Instrument Sans', sans-serif; text-transform: uppercase; letter-spacing: 0.1em; }
.oz-h-appareil.est-actif { box-shadow: 0 0 0 2px #E2582B; }
.oz-h-billet--recap { margin: 14px 0 12px; }
.oz-h-codes { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 10px; }
.oz-h-codes > span { display: grid; gap: 2px; }
.oz-h-codes > span:last-child { text-align: right; }
.oz-h-codes b { font: 600 30px/1 ui-monospace, 'SF Mono', Menlo, monospace; letter-spacing: 0.04em; }
.oz-h-codes small { font-size: 11px; opacity: 0.65; }
.oz-h-avion { position: relative; width: 90px; height: 2px; background: repeating-linear-gradient(90deg, #CBD3D8 0 5px, transparent 5px 9px); }
.oz-h-avion::after { content: ''; position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; background: #E2582B; transform: translate(-50%, -50%); -webkit-mask: var(--oz-avion) center / contain no-repeat; mask: var(--oz-avion) center / contain no-repeat; animation: oz-h-vol 2.6s ease-in-out infinite; }
.oz-demo[data-oz-demo="aviation"] { --oz-avion: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.5 12c0-.8-.7-1.4-1.5-1.4h-5.2L9.6 2.5H7.5l2.6 8.1H5L3.3 8.4H1.8l1 3.6-1 3.6h1.5L5 13.4h5.1l-2.6 8.1h2.1l5.2-8.1H20c.8 0 1.5-.6 1.5-1.4Z'/%3E%3C/svg%3E"); }
@keyframes oz-h-vol { 0%, 100% { transform: translate(-130%, -50%); } 50% { transform: translate(30%, -50%); } }
.oz-h-billet-pied { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding-top: 9px; border-top: 1.5px dashed #CBD3D8; }
.oz-h-billet-pied span { display: grid; gap: 1px; }
.oz-h-billet-pied small { font: 500 9.5px/1.2 ui-monospace, 'SF Mono', Menlo, monospace; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.6; }
.oz-h-billet-pied b { font-size: 13px; }
.oz-h-envoyer { width: 100%; margin-top: 10px; }
.oz-h-note, .oz-h-sous { margin: 8px 0 0; font-size: 11px; line-height: 1.4; opacity: 0.65; }
.oz-h-sous { margin: -4px 0 12px; }
.oz-h-leg { display: grid; grid-template-columns: 74px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; margin-bottom: 8px; padding: 8px; border-radius: 8px; background: #fff; box-shadow: 0 0 0 1px #DDE3E7; animation: oz-glisse 450ms var(--ressort) backwards; }
.oz-h-leg img { width: 74px; height: 52px; object-fit: cover; border-radius: 5px; }
.oz-h-leg-route { display: grid; gap: 2px; }
.oz-h-leg-route b { font: 600 15px/1 ui-monospace, 'SF Mono', Menlo, monospace; }
.oz-h-leg-route small { font-size: 11px; opacity: 0.65; }
.oz-h-leg-prix { font: 600 14px/1 ui-monospace, 'SF Mono', Menlo, monospace; color: #C2441C; }
.oz-h-leg .oz-s-bouton { padding: 8px 12px; font-size: 12px; }
.oz-demo[data-oz-demo="aviation"] .oz-s-ok { border-radius: 10px; box-shadow: inset 0 3px 0 #E2582B, 0 20px 40px -24px rgba(0, 0, 0, 0.35); }
@media (prefers-reduced-motion: reduce) { .oz-h-avion::after { animation: none; transform: translate(-50%, -50%); } }
@media (max-width: 760px) {
  .oz-h-routes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oz-h-deux { grid-template-columns: minmax(0, 1fr); }
  .oz-h-billet { margin-inline: 12px; }
  .oz-h-leg { grid-template-columns: 60px minmax(0, 1fr) auto; }
  .oz-h-leg .oz-s-bouton { grid-column: 1 / -1; }
  .oz-h-avion { width: 46px; }
  .oz-h-codes b { font-size: 24px; }
}

/* ─── OSTRANE · le rapport annuel (gestion de patrimoine, 22/10/2026) ───
   Ni le papier à lettres d'Aldane, ni ses déclinaisons : une mise en page
   de rapport, vert sapin et or éteint, des étapes numérotées, et la
   mention réglementaire (fictive) toujours visible en pied. */
.oz-demo[data-oz-demo="patrimoine"] { --m-encre: #17332B; --m-fond: #FAF8F3; --m-accent: #9C8350; --m-doux: #E8E4DA; --m-police: 'Instrument Sans', -apple-system, sans-serif; }
.oz-demo[data-oz-demo="patrimoine"] .oz-site * { border-radius: 2px; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-entete { height: 62px; background: #17332B; color: #F1EDE3; border-bottom: 0; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-logo { flex-direction: column; align-items: flex-start; gap: 4px; font: 500 16px/1 'Instrument Sans', sans-serif; letter-spacing: 0.46em; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-logo small { font: 500 7.5px/1 'Instrument Sans', sans-serif; letter-spacing: 0.32em; color: #C9B27E; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-nav button { font-size: 11.5px; letter-spacing: 0.04em; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-nav button.est-actif { box-shadow: 0 2px 0 #C9B27E; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-cta { background: #C9B27E; color: #17332B !important; }
.oz-o-hero { height: 220px; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-hero::after { background: linear-gradient(90deg, rgba(23, 51, 43, 0.88) 0%, rgba(23, 51, 43, 0.45) 55%, transparent 85%); }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-hero-txt { top: 50%; bottom: auto; max-width: 62%; transform: translateY(-50%); }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-hero-txt small { color: #C9B27E; letter-spacing: 0.3em; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-hero-txt b { margin-top: 8px; font: 400 29px/1.12 'Instrument Sans', sans-serif; letter-spacing: -0.02em; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-titre { display: flex; align-items: center; gap: 12px; font: 600 11px/1 'Instrument Sans', sans-serif; letter-spacing: 0.24em; text-transform: uppercase; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-titre::after { content: ''; flex: 1; height: 1px; background: rgba(23, 51, 43, 0.25); }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-bouton { background: #17332B; font-size: 12.5px; letter-spacing: 0.04em; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-bouton--fin { background: transparent; box-shadow: inset 0 0 0 1px #17332B; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-choix button.est-actif { background: #17332B; }
.oz-o-situations { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.oz-o-situation { position: relative; display: grid; align-content: start; gap: 4px; padding-bottom: 12px; text-align: left; border-bottom: 1px solid rgba(23, 51, 43, 0.2); animation: oz-glisse 450ms var(--ressort) backwards; }
.oz-o-situation img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-bottom: 6px; filter: saturate(0.85); transition: filter 400ms ease; }
.oz-o-situation:hover img { filter: none; }
.oz-o-situation b { font-size: 14px; }
.oz-o-situation small { font-size: 11.5px; line-height: 1.35; opacity: 0.72; }
.oz-o-situation u { position: absolute; right: 2px; bottom: 10px; color: #9C8350; text-decoration: none; transition: transform 300ms ease; }
.oz-o-situation:hover u { transform: translateX(4px); }
.oz-o-mention { margin: 4px 22px 18px; padding-top: 10px; border-top: 1px solid rgba(23, 51, 43, 0.15); font-size: 10px; line-height: 1.45; opacity: 0.62; }
.oz-o-rdv { display: grid; gap: 7px; }
.oz-o-etape { display: flex; align-items: center; gap: 8px; margin-top: 4px; }
.oz-o-etape i { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50% !important; background: #E8E4DA; color: #17332B; font: 600 10px/1 'Instrument Sans', sans-serif; font-style: normal; }
.oz-o-tranches { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.oz-o-tranches button { padding: 10px 6px; font-weight: 600; font-variant-numeric: tabular-nums; }
.oz-o-deux { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.oz-o-deux > span { display: grid; align-content: start; gap: 7px; }
.oz-o-cadre { margin: 6px 0 2px; padding: 9px 11px; background: #F0ECE2; font-size: 11px; line-height: 1.4; box-shadow: inset 2px 0 0 #9C8350; }
.oz-o-sous { margin: -4px 0 12px; font-size: 11.5px; opacity: 0.7; }
.oz-o-guide { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(23, 51, 43, 0.14); animation: oz-glisse 450ms var(--ressort) backwards; }
.oz-o-guide img { width: 70px; height: 70px; object-fit: cover; }
.oz-o-guide > span { display: grid; gap: 3px; }
.oz-o-guide em { justify-self: start; padding: 2px 7px; background: #E6EFE9; color: #1F6B4A; font-style: normal; font-size: 9.5px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.oz-o-guide b { font-size: 13.5px; line-height: 1.25; }
.oz-o-guide small { font-size: 11px; opacity: 0.65; }
.oz-o-guide .oz-s-bouton { padding: 8px 11px; font-size: 11.5px; }
.oz-o-recu { color: #1F6B4A; font-size: 11.5px; font-weight: 600; }
.oz-o-recu::before { content: '✓ '; }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-ok { box-shadow: inset 0 3px 0 #9C8350, 0 20px 40px -24px rgba(0, 0, 0, 0.35); }
.oz-demo[data-oz-demo="patrimoine"] .oz-s-ok i { border-radius: 50%; }
@media (max-width: 760px) {
  .oz-o-situations { grid-template-columns: minmax(0, 1fr); }
  .oz-o-situation { grid-template-columns: 96px minmax(0, 1fr); column-gap: 12px; }
  .oz-o-situation img { grid-row: 1 / span 2; margin: 0; }
  .oz-o-tranches { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oz-o-deux { grid-template-columns: minmax(0, 1fr); }
  .oz-o-guide { grid-template-columns: 56px minmax(0, 1fr); }
  .oz-o-guide img { width: 56px; height: 56px; }
  .oz-o-guide .oz-s-bouton, .oz-o-recu { grid-column: 1 / -1; }
  .oz-demo[data-oz-demo="patrimoine"] .oz-s-hero-txt { max-width: 90%; }
}

/* ─── ATELIER LUNELLE · plâtre et noyer (architecture intérieure, 22/10/2026) ───
   Pas la lumière bleue de Calade : un mur de projets en colonnes, le
   carnet qu'on remplit comme un tableau Pinterest, un italique éditorial. */
.oz-demo[data-oz-demo="architecture"] { --m-encre: #2E2620; --m-fond: #F1ECE5; --m-accent: #A0674B; --m-doux: #E4DCD1; --m-police: 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="architecture"] .oz-s-entete { height: 58px; background: rgba(241, 236, 229, 0.94); border-bottom: 1px solid rgba(46, 38, 32, 0.12); }
.oz-demo[data-oz-demo="architecture"] .oz-s-logo { font: italic 400 20px/1 'Fraunces', Georgia, serif; letter-spacing: 0.02em; }
.oz-demo[data-oz-demo="architecture"] .oz-s-nav button { position: relative; font: 400 12.5px/1 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="architecture"] .oz-s-nav button.est-actif { box-shadow: 0 1px 0 #2E2620; }
.oz-demo[data-oz-demo="architecture"] .oz-s-cta { border-radius: 0; background: #2E2620; font: 500 11px/1 'Instrument Sans', sans-serif; letter-spacing: 0.14em; text-transform: uppercase; }
.oz-l-compte { position: absolute; right: -14px; top: -6px; display: grid; place-items: center; min-width: 15px; height: 15px; border-radius: 99px; background: #A0674B; color: #fff; font: 600 9px/1 'Instrument Sans', sans-serif; }
.oz-l-intro { display: grid; gap: 8px; padding: 26px 22px 6px; }
.oz-l-intro small { font: 500 10px/1 'Instrument Sans', sans-serif; letter-spacing: 0.28em; text-transform: uppercase; color: #A0674B; }
.oz-l-intro b { font: 300 30px/1.08 'Fraunces', Georgia, serif; letter-spacing: -0.01em; }
.oz-l-intro em { font-style: italic; color: #7A4B33; }
.oz-demo[data-oz-demo="architecture"] .oz-s-puces { gap: 4px 14px; }
.oz-demo[data-oz-demo="architecture"] .oz-s-puce { padding: 4px 0; border-radius: 0; box-shadow: none; font: italic 400 13px/1.2 'Fraunces', Georgia, serif; opacity: 0.6; }
.oz-demo[data-oz-demo="architecture"] .oz-s-puce.est-actif { background: none; color: #2E2620; opacity: 1; box-shadow: 0 1px 0 #A0674B; }
.oz-l-mur { columns: 3; column-gap: 12px; }
.oz-l-carte { position: relative; display: grid; gap: 3px; margin-bottom: 14px; break-inside: avoid; animation: oz-glisse 450ms var(--ressort) backwards; }
.oz-l-photo { display: block; overflow: hidden; background: #E4DCD1; aspect-ratio: 1 / var(--h); }
.oz-l-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms cubic-bezier(0.2, 0.8, 0.2, 1); }
.oz-l-carte:hover .oz-l-photo img { transform: scale(1.04); }
.oz-l-carte b { font: 400 14px/1.2 'Fraunces', Georgia, serif; }
.oz-l-carte small { font-size: 11px; opacity: 0.65; }
.oz-l-coeur { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; }
.oz-l-coeur svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; transition: transform 350ms cubic-bezier(0.3, 1.6, 0.5, 1), fill 200ms ease; }
.oz-l-coeur.est-actif svg { fill: #BD081C; stroke: #BD081C; transform: scale(1.15); }
.oz-l-carte > .oz-l-coeur { position: absolute; right: 8px; top: 8px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(255, 255, 255, 0.92); box-shadow: 0 6px 14px -8px rgba(0, 0, 0, 0.5); }
.oz-demo[data-oz-demo="architecture"] .oz-s-infos > .oz-l-coeur { justify-self: start; padding: 8px 12px; box-shadow: inset 0 0 0 1px rgba(46, 38, 32, 0.3); }
.oz-demo[data-oz-demo="architecture"] .oz-s-galerie-grande, .oz-demo[data-oz-demo="architecture"] .oz-s-vignettes button, .oz-demo[data-oz-demo="architecture"] .oz-s-caracs span { border-radius: 0; }
.oz-demo[data-oz-demo="architecture"] .oz-s-infos h4 { font-weight: 300; font-style: italic; }
.oz-l-lieu { font: 500 10px/1 'Instrument Sans', sans-serif; letter-spacing: 0.22em; text-transform: uppercase; color: #A0674B; }
.oz-l-matieres { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; }
.oz-l-matieres span { padding: 4px 9px; background: #E4DCD1; font-size: 11.5px; }
.oz-demo[data-oz-demo="architecture"] .oz-s-bouton { border-radius: 0; background: #2E2620; font: 500 11px/1 'Instrument Sans', sans-serif; letter-spacing: 0.14em; text-transform: uppercase; padding: 13px 16px; }
.oz-demo[data-oz-demo="architecture"] .oz-s-choix button { border-radius: 0; font-size: 12px; }
.oz-demo[data-oz-demo="architecture"] .oz-s-choix button.est-actif { background: #2E2620; }
.oz-demo[data-oz-demo="architecture"] .oz-s-titre { font-style: italic; font-weight: 300; font-size: 24px; }
.oz-l-form { display: grid; gap: 8px; }
.oz-l-joint { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; margin: 6px 0 4px; padding: 10px; background: #fff; box-shadow: inset 0 0 0 1px rgba(46, 38, 32, 0.12); }
.oz-l-joint-img { display: flex; min-width: 40px; min-height: 40px; background: #E4DCD1; }
.oz-l-joint-img img { width: 40px; height: 40px; object-fit: cover; box-shadow: 0 0 0 2px #fff; }
.oz-l-joint-img img + img { margin-left: -12px; }
.oz-l-joint span:last-child { display: grid; gap: 2px; }
.oz-l-joint small { font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.6; }
.oz-l-joint b { font: 400 14px/1.2 'Fraunces', Georgia, serif; }
.oz-l-carnet { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.oz-l-case { display: grid; gap: 4px; animation: oz-pop 450ms cubic-bezier(0.3, 1.4, 0.5, 1) backwards; }
.oz-l-case img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.oz-l-case small { font: italic 400 12px/1.2 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="architecture"] .oz-s-ok { border-radius: 0; box-shadow: inset 0 3px 0 #A0674B, 0 20px 40px -24px rgba(0, 0, 0, 0.35); }
.oz-demo[data-oz-demo="architecture"] .oz-s-ok b { font-style: italic; }
.oz-demo[data-oz-demo="architecture"] .oz-s-toast { border-radius: 0; }
@media (max-width: 760px) {
  .oz-l-mur { columns: 2; }
  .oz-l-intro b { font-size: 24px; }
}

/* ─── OMBRINE · la vitrine du soir à Monte-Carlo (immobilier à Monaco, 22/10/2026) ───
   Nuit bleue et cuivre rosé, capitales très espacées, prix en italique,
   cartes hautes comme des vitrines d'agence ; le site parle quatre
   langues (sélecteur FR · EN · IT · RU) et Beausoleil porte « FR ». */
.oz-demo[data-oz-demo="immomonaco"] { --m-encre: #15202B; --m-fond: #F6F1EC; --m-accent: #B9806A; --m-doux: #EAE1D8; --m-police: 'Instrument Sans', -apple-system, sans-serif; }
.oz-demo[data-oz-demo="immomonaco"] .oz-site { background: #F6F1EC; color: #15202B; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-entete { height: 60px; gap: 14px; background: #15202B; border-bottom: 1px solid #B9806A; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-logo { flex-direction: column; align-items: flex-start; gap: 4px; color: #F6F1EC; font: 300 15px/1 'Instrument Sans', sans-serif; letter-spacing: 0.5em; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-logo small { color: #D3A48F; font-size: 7.5px; letter-spacing: 0.62em; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-nav button { color: #F6F1EC; font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-nav button.est-actif { box-shadow: 0 2px 0 #B9806A; }
.oz-om-langues { display: flex; gap: 2px; padding: 3px; border-radius: 99px; box-shadow: inset 0 0 0 1px rgba(185, 128, 106, 0.6); }
.oz-om-langues button { min-width: 26px; padding: 4px 6px; border-radius: 99px; color: #D3A48F; font-size: 9.5px; letter-spacing: 0.08em; transition: background-color 250ms ease, color 250ms ease; }
.oz-om-langues button.est-actif { background: #B9806A; color: #15202B; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-hero { height: 250px; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-hero::after { background: linear-gradient(180deg, rgba(21, 32, 43, 0.15), rgba(21, 32, 43, 0.82)); }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-hero-txt small { color: #E2BBA9; letter-spacing: 0.32em; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-hero-txt b { margin-top: 8px; font: italic 400 30px/1.12 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-section { padding: 20px 24px; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-titre { font: 400 10.5px/1 'Instrument Sans', sans-serif; letter-spacing: 0.34em; text-transform: uppercase; color: #8A5A47; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-puces { gap: 4px; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-puce { border-radius: 2px; padding: 6px 10px; font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-puce.est-actif { background: #15202B; color: #F6F1EC; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-puce.oz-om-fr { box-shadow: inset 0 0 0 1px rgba(21, 32, 43, 0.22), inset 0 -2px 0 #5E7C8A; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-carte { gap: 3px; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-carte-photo { aspect-ratio: 3 / 4; border-radius: 0; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-carte-photo em { left: 0; top: 0; border-radius: 0; background: #15202B; color: #E2BBA9; letter-spacing: 0.14em; text-transform: uppercase; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-carte > small:first-of-type { margin-top: 6px; color: #8A5A47; font-size: 9.5px; letter-spacing: 0.2em; text-transform: uppercase; opacity: 1; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-carte b { font: 500 14px/1.2 'Instrument Sans', sans-serif; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-carte > span:last-child { font: italic 400 15px/1.2 'Fraunces', Georgia, serif; color: #8A5A47; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-galerie-grande, .oz-demo[data-oz-demo="immomonaco"] .oz-s-vignettes button, .oz-demo[data-oz-demo="immomonaco"] .oz-s-caracs span, .oz-demo[data-oz-demo="immomonaco"] .oz-s-choix button, .oz-demo[data-oz-demo="immomonaco"] .oz-s-bouton { border-radius: 0; }
.oz-om-quartier { color: #8A5A47; font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-infos h4 { font: 400 23px/1.15 'Instrument Sans', sans-serif; letter-spacing: -0.01em; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-prix { font: italic 400 21px/1.2 'Fraunces', Georgia, serif; color: #8A5A47; }
.oz-om-france { margin: 0; padding: 8px 10px; background: #E3EAEC; color: #33505C; font-size: 11.5px; box-shadow: inset 2px 0 0 #5E7C8A; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-bouton { padding: 13px 16px; background: #15202B; font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 500; box-shadow: inset 0 -2px 0 #B9806A; }
.oz-demo[data-oz-demo="immomonaco"] .oz-s-ok { border-radius: 0; box-shadow: inset 0 0 0 1px #B9806A, 0 20px 40px -24px rgba(0, 0, 0, 0.35); }
@media (max-width: 760px) {
  .oz-demo[data-oz-demo="immomonaco"] .oz-s-nav { display: flex; gap: 10px; }
  .oz-demo[data-oz-demo="immomonaco"] .oz-s-logo small { display: none; }
  .oz-demo[data-oz-demo="immomonaco"] .oz-s-entete { gap: 10px; padding: 0 12px; }
  .oz-demo[data-oz-demo="immomonaco"] .oz-s-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ─── BRISANE · la carte marine (yachting à Antibes, 22/10/2026) ───
   Fond d'écume quadrillé comme une carte, carène vert profond, jaune
   signal des pavillons, repères en chasse fixe (coordonnées du port) ;
   quatre portes : charter, équipages, refit, salons. */
.oz-demo[data-oz-demo="yachtantibes"] { --m-encre: #0B2E2B; --m-fond: #EEF2EF; --m-accent: #E0A526; --m-doux: #DCE5E0; --m-police: 'Instrument Sans', -apple-system, sans-serif; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-site { color: #0B2E2B; background: linear-gradient(rgba(11, 46, 43, 0.05) 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(90deg, rgba(11, 46, 43, 0.05) 1px, transparent 1px) 0 0 / 28px 28px, #EEF2EF; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-entete { height: 56px; background: #0B2E2B; border-bottom: 0; box-shadow: inset 0 -3px 0 #E0A526; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-logo { flex-direction: column; align-items: flex-start; gap: 4px; color: #fff; font: 700 15px/1 'Instrument Sans', sans-serif; letter-spacing: 0.3em; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-logo small { color: #E0A526; font: 500 8px/1 'Martian Mono', ui-monospace, monospace; letter-spacing: 0.08em; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-nav { gap: 4px; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-nav button { padding: 6px 9px; border-radius: 3px; color: #CFE0DA; font: 500 10.5px/1 'Martian Mono', ui-monospace, monospace; text-transform: uppercase; opacity: 1; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-nav button.est-actif { background: #E0A526; color: #0B2E2B; box-shadow: none; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-hero { height: 220px; margin: 14px 18px 0; border-radius: 3px; box-shadow: 0 0 0 1px rgba(11, 46, 43, 0.25); }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-hero.oz-br-bandeau { height: 130px; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-br-bandeau img { object-position: 50% 12%; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-hero::after { background: linear-gradient(90deg, rgba(11, 46, 43, 0.85), rgba(11, 46, 43, 0.15) 70%); }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-hero-txt { top: 50%; bottom: auto; transform: translateY(-50%); max-width: 70%; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-hero-txt small { color: #E0A526; font: 500 10px/1.3 'Martian Mono', ui-monospace, monospace; letter-spacing: 0.04em; text-transform: none; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-hero-txt b { margin-top: 6px; font: 700 26px/1.08 'Instrument Sans', sans-serif; letter-spacing: -0.02em; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-titre { font: 500 10.5px/1 'Martian Mono', ui-monospace, monospace; letter-spacing: 0.1em; text-transform: uppercase; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-titre::before { content: '▸ '; color: #E0A526; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-carte { padding: 8px; border-radius: 3px; background: #fff; box-shadow: 0 0 0 1px rgba(11, 46, 43, 0.12); }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-carte-photo { border-radius: 2px; aspect-ratio: 4 / 3; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-carte b { font: 700 16px/1.1 'Instrument Sans', sans-serif; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-carte > span:last-child { font: 500 11px/1.3 'Martian Mono', ui-monospace, monospace; color: #8A6410; }
.oz-br-specs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid rgba(11, 46, 43, 0.18); border-radius: 2px; }
.oz-br-specs > span { display: grid; gap: 1px; padding: 4px 6px; font-weight: 400 !important; }
.oz-br-specs > span + span { border-left: 1px solid rgba(11, 46, 43, 0.18); }
.oz-br-specs small { font: 500 8px/1 'Martian Mono', ui-monospace, monospace; text-transform: uppercase; opacity: 0.6; }
.oz-br-specs b { font: 500 12px/1.1 'Martian Mono', ui-monospace, monospace !important; }
.oz-br-coord, .oz-br-apa { font: 500 10px/1.3 'Martian Mono', ui-monospace, monospace; opacity: 0.7; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-infos h4 { font: 700 30px/1 'Instrument Sans', sans-serif; letter-spacing: -0.02em; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-prix { font: 500 14px/1.2 'Martian Mono', ui-monospace, monospace; color: #8A6410; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-galerie-grande, .oz-demo[data-oz-demo="yachtantibes"] .oz-s-vignettes button, .oz-demo[data-oz-demo="yachtantibes"] .oz-s-choix button, .oz-demo[data-oz-demo="yachtantibes"] .oz-s-puce { border-radius: 2px; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-choix button { font: 500 10.5px/1 'Martian Mono', ui-monospace, monospace; padding: 8px 10px; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-label { font: 500 9px/1 'Martian Mono', ui-monospace, monospace; letter-spacing: 0.1em; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-bouton { border-radius: 3px; background: #E0A526; color: #0B2E2B !important; font: 700 11px/1 'Martian Mono', ui-monospace, monospace; letter-spacing: 0.06em; text-transform: uppercase; padding: 13px 14px; }
.oz-demo[data-oz-demo="yachtantibes"] .oz-s-ok { border-radius: 3px; box-shadow: inset 0 3px 0 #E0A526, 0 20px 40px -24px rgba(0, 0, 0, 0.35); }
.oz-br-postes { display: grid; gap: 6px; }
.oz-br-poste { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 3px; background: #fff; box-shadow: 0 0 0 1px rgba(11, 46, 43, 0.12); animation: oz-glisse 400ms var(--ressort) backwards; }
.oz-br-poste span { display: grid; gap: 2px; }
.oz-br-poste b { font: 700 14px/1.2 'Instrument Sans', sans-serif; }
.oz-br-poste small { font: 500 9.5px/1.3 'Martian Mono', ui-monospace, monospace; opacity: 0.7; }
.oz-br-poste.est-actif { box-shadow: 0 0 0 1.5px #E0A526; }
.oz-br-poste .oz-s-puce { flex: none; background: #0B2E2B; color: #fff; box-shadow: none; font: 500 10px/1 'Martian Mono', ui-monospace, monospace; text-transform: uppercase; }
.oz-br-form { display: grid; gap: 10px; margin-bottom: 14px; animation: oz-glisse 400ms var(--ressort) backwards; }
.oz-br-form > b { font: 700 18px/1.2 'Instrument Sans', sans-serif; }
.oz-br-cv { justify-self: start; padding: 6px 10px; border: 1px dashed rgba(11, 46, 43, 0.4); border-radius: 3px; font: 500 10px/1 'Martian Mono', ui-monospace, monospace; }
.oz-br-cv::before { content: '⎘ '; }
.oz-br-sous { margin: -4px 0 4px; font-size: 12px; opacity: 0.75; }
.oz-br-salons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.oz-br-salon { display: grid; gap: 4px; padding: 14px; border-radius: 3px; background: #fff; text-align: left; box-shadow: 0 0 0 1px rgba(11, 46, 43, 0.15); transition: box-shadow 250ms ease, background-color 250ms ease; }
.oz-br-salon b { font: 700 14px/1.2 'Instrument Sans', sans-serif; }
.oz-br-salon small { font: 500 9.5px/1.3 'Martian Mono', ui-monospace, monospace; opacity: 0.7; }
.oz-br-salon.est-actif { background: #0B2E2B; color: #fff; box-shadow: inset 0 -3px 0 #E0A526; }
@media (max-width: 760px) {
  .oz-demo[data-oz-demo="yachtantibes"] .oz-s-nav { display: flex; overflow-x: auto; scrollbar-width: none; }
  .oz-demo[data-oz-demo="yachtantibes"] .oz-s-nav button { padding: 6px 6px; font-size: 9.5px; }
  .oz-demo[data-oz-demo="yachtantibes"] .oz-s-logo small { display: none; }
  .oz-demo[data-oz-demo="yachtantibes"] .oz-s-entete { gap: 8px; padding: 0 12px; }
  .oz-demo[data-oz-demo="yachtantibes"] .oz-s-grille { grid-template-columns: minmax(0, 1fr); }
  .oz-br-salons { grid-template-columns: 1fr; }
}

/* ─── OCRELLE · la plage rayée (hôtellerie à Saint-Tropez, 22/10/2026) ───
   Sable et ocre, rayures de parasol en tête, serif grasse et droite,
   un vrai plan de plage (trois rangs face à la mer, transats pris
   barrés), les jours complets de juillet et les nuits minimum l'été. */
.oz-demo[data-oz-demo="hoteltropez"] { --m-encre: #2B1C14; --m-fond: #FBF3E6; --m-accent: #D9663A; --m-doux: #F1E2CB; --m-police: 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-site { background: #FBF3E6; color: #2B1C14; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-entete { height: 64px; padding-top: 8px; border-bottom: 0; background: repeating-linear-gradient(90deg, #D9663A 0 14px, #FBF3E6 14px 28px) top / 100% 8px no-repeat, #FBF3E6; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-logo { flex-direction: column; align-items: flex-start; gap: 3px; font: 800 20px/1 'Fraunces', Georgia, serif; letter-spacing: 0.04em; color: #2B1C14; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-logo small { font: 600 8px/1 'Instrument Sans', sans-serif; letter-spacing: 0.4em; color: #D9663A; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-nav button { font: 600 13px/1 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-nav button.est-actif { box-shadow: 0 3px 0 #D9663A; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-hero { height: 230px; margin: 0 16px; border-radius: 22px; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-hero::after { background: linear-gradient(180deg, transparent 35%, rgba(43, 28, 20, 0.7)); }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-hero-txt small { letter-spacing: 0.2em; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-hero-txt b { font: 800 32px/1.02 'Fraunces', Georgia, serif; letter-spacing: -0.01em; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-titre { font: 700 18px/1.2 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-choix button, .oz-demo[data-oz-demo="hoteltropez"] .oz-s-bouton { border-radius: 99px; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-choix button.est-actif { background: #D9663A; color: #FBF3E6; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-bouton { background: #2B1C14; color: #FBF3E6 !important; font: 600 13px/1 'Instrument Sans', sans-serif; padding: 13px 18px; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-bouton:disabled { opacity: 0.45; cursor: default; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-ok { border-radius: 22px; box-shadow: inset 0 6px 0 #D9663A, 0 20px 40px -24px rgba(0, 0, 0, 0.35); }
.oz-oc-jours { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-bottom: 14px; }
.oz-oc-jours button { display: grid; gap: 2px; padding: 9px 4px; border-radius: 14px; background: #fff; font: 600 12.5px/1.1 'Instrument Sans', sans-serif; box-shadow: inset 0 0 0 1px #EBD8BC; transition: background-color 250ms ease, color 250ms ease; }
.oz-oc-jours button small { color: #B2462A; font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; }
.oz-oc-jours button.est-actif { background: #2B1C14; color: #FBF3E6; box-shadow: none; }
.oz-oc-jours button.est-actif small { color: #F2B08E; }
.oz-oc-jours button.est-complet:not(.est-actif) { background: repeating-linear-gradient(135deg, #fff 0 6px, #F6E9D6 6px 12px); }
.oz-oc-plan { display: grid; gap: 10px; margin-bottom: 14px; padding: 12px 14px 14px; border-radius: 18px; background: linear-gradient(180deg, #CFE4E6 0 30px, #F4E3C6 30px); }
.oz-oc-mer { justify-self: center; margin-top: -4px; color: #2F6F7A; font: italic 600 11px/1 'Fraunces', Georgia, serif; letter-spacing: 0.24em; text-transform: uppercase; }
.oz-oc-rang { display: grid; gap: 5px; }
.oz-oc-rang small { font-size: 10px; letter-spacing: 0.06em; opacity: 0.75; }
.oz-oc-rang > span { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.oz-oc-transat { position: relative; height: 30px; border-radius: 8px 8px 4px 4px; background: #fff; box-shadow: inset 0 0 0 1.5px #D9B98C; transition: background-color 200ms ease, transform 200ms ease; }
.oz-oc-transat::after { content: ''; position: absolute; left: 22%; right: 22%; top: 5px; height: 6px; border-radius: 4px; background: #EBD8BC; }
.oz-oc-transat:hover:not(:disabled) { transform: translateY(-2px); }
.oz-oc-transat.est-choisi { background: #D9663A; box-shadow: none; }
.oz-oc-transat.est-choisi::after { background: #FBF3E6; }
.oz-oc-transat:disabled { cursor: default; background: repeating-linear-gradient(135deg, #E9D7BC 0 4px, #F4E3C6 4px 8px); box-shadow: none; }
.oz-oc-transat:disabled::after { display: none; }
.oz-oc-complet { display: grid; gap: 12px; justify-items: start; padding: 18px; border-radius: 18px; background: repeating-linear-gradient(135deg, #FFF8EE 0 10px, #F6E9D6 10px 20px); }
.oz-oc-complet b { font: 700 16px/1.3 'Fraunces', Georgia, serif; }
.oz-oc-sejour { display: grid; gap: 10px; }
.oz-oc-alerte { margin-left: 8px; padding: 3px 9px; border-radius: 99px; background: #FBE1D4; color: #A23E1E; font-style: normal; font-size: 10.5px; font-weight: 600; animation: oz-pop 400ms cubic-bezier(0.3, 1.4, 0.5, 1); }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-ligne-villa { margin-bottom: 0; border-radius: 18px; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-ligne-villa img { border-radius: 14px; }
.oz-demo[data-oz-demo="hoteltropez"] .oz-s-ligne-villa b { font-weight: 700; }
@media (max-width: 760px) {
  .oz-demo[data-oz-demo="hoteltropez"] .oz-s-nav { display: flex; gap: 12px; }
  .oz-demo[data-oz-demo="hoteltropez"] .oz-s-logo small { display: none; }
  .oz-demo[data-oz-demo="hoteltropez"] .oz-s-hero { margin: 0 10px; }
  .oz-oc-rang > span { gap: 4px; }
}

/* ═══════════════════════════════════════════════════════════════
   VILLES · TROIS MAQUETTES DE PLUS (22/10/2026)
   · Valmeur (Cannes, événements d'affaires) : programme de festival
     Art déco, nuit de gala et sable doré, didone en capitales, rayures
     de parasol de la Croisette ;
   · Tessane (Antibes, capteurs B2B de Sophia Antipolis) : produit
     technique, trame de mesure, pin parasol et mimosa, chiffres en
     chasse fixe, tableau de bord sombre ;
   · Merlane (Saint-Tropez, boutique de lin) : lin et marinière,
     italique, cartes posées comme des polaroïds, bandeau de saison.
   ═══════════════════════════════════════════════════════════════ */

/* ─── VALMEUR · programme de la Croisette ─── */
.oz-demo[data-oz-demo="cannes"] { --m-encre: #14223A; --m-fond: #FAF6EE; --m-accent: #C9A45C; --m-doux: #EFE7D6; --m-police: 'Didot', 'Bodoni 72', 'Bodoni MT', Georgia, serif; }
.oz-demo[data-oz-demo="cannes"] .oz-site { background: #FAF6EE; color: #14223A; }
.oz-demo[data-oz-demo="cannes"] .oz-site * { border-radius: 0 !important; }
.oz-demo[data-oz-demo="cannes"] .oz-s-entete { height: 62px; background: #14223A; color: #FAF6EE; border-bottom: 0; box-shadow: 0 6px 0 -1px #FAF6EE, 0 7px 0 -1px #3D6E9E; }
.oz-demo[data-oz-demo="cannes"] .oz-s-logo { flex-direction: column; align-items: flex-start; gap: 4px; font: 400 18px/1 'Didot', 'Bodoni 72', Georgia, serif; letter-spacing: 0.34em; color: #FAF6EE; }
.oz-demo[data-oz-demo="cannes"] .oz-s-logo small { font: 600 7.5px/1 'Instrument Sans', system-ui, sans-serif; letter-spacing: 0.4em; color: #C9A45C; }
.oz-demo[data-oz-demo="cannes"] .oz-s-nav button { color: #FAF6EE; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; }
.oz-demo[data-oz-demo="cannes"] .oz-s-nav button.est-actif { box-shadow: 0 2px 0 #C9A45C; }
.oz-demo[data-oz-demo="cannes"] .oz-s-cta { background: #C9A45C; color: #14223A !important; font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; }
.oz-demo[data-oz-demo="cannes"] .oz-s-hero { height: 220px; margin-top: 8px; }
.oz-demo[data-oz-demo="cannes"] .oz-s-hero::after { background: linear-gradient(180deg, rgba(20, 34, 58, 0.05) 25%, rgba(20, 34, 58, 0.78)); }
.oz-demo[data-oz-demo="cannes"] .oz-s-hero-txt small { color: #E5C98C; letter-spacing: 0.3em; }
.oz-demo[data-oz-demo="cannes"] .oz-s-hero-txt b { font-size: 30px; letter-spacing: 0.01em; }
.oz-demo[data-oz-demo="cannes"] .oz-s-titre { text-align: center; font: 600 10.5px/1 'Instrument Sans', system-ui, sans-serif; letter-spacing: 0.34em; text-transform: uppercase; color: #9C7A35; }
.oz-demo[data-oz-demo="cannes"] .oz-s-titre::after { content: ''; display: block; width: 46px; height: 5px; margin: 10px auto 0; background: repeating-linear-gradient(90deg, #3D6E9E 0 5px, transparent 5px 10px); }
.oz-vm-programme { display: grid; border-top: 1px solid rgba(201, 164, 92, 0.6); }
.oz-vm-programme button { display: grid; grid-template-columns: 64px 1fr auto; align-items: baseline; gap: 12px; padding: 11px 10px; border-bottom: 1px solid rgba(201, 164, 92, 0.6); text-align: left; transition: background-color 250ms ease, color 250ms ease; }
.oz-vm-programme small { font: 600 10px/1 'Instrument Sans', system-ui, sans-serif; letter-spacing: 0.22em; text-transform: uppercase; color: #9C7A35; }
.oz-vm-programme b { font: 400 19px/1.1 'Didot', 'Bodoni 72', Georgia, serif; }
.oz-vm-programme i { font: italic 400 12px/1 Georgia, serif; opacity: 0.7; }
.oz-vm-programme button.est-actif { background: #14223A; color: #FAF6EE; }
.oz-vm-programme button.est-actif small { color: #C9A45C; }
.oz-vm-dispo { margin: 0 0 12px; font: italic 400 15px/1.2 Georgia, serif; color: #14223A; }
.oz-demo[data-oz-demo="cannes"] .oz-s-carte-photo { aspect-ratio: 4 / 3; box-shadow: 0 0 0 1px #C9A45C, 0 0 0 4px #FAF6EE, 0 0 0 5px rgba(201, 164, 92, 0.5); }
.oz-demo[data-oz-demo="cannes"] .oz-s-carte b { font-size: 16px; }
.oz-demo[data-oz-demo="cannes"] .oz-s-bouton { background: #14223A; color: #E5C98C !important; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; box-shadow: inset 0 -2px 0 #C9A45C; }
.oz-demo[data-oz-demo="cannes"] .oz-s-choix button.est-actif { background: #14223A; color: #E5C98C; }
.oz-demo[data-oz-demo="cannes"] .oz-s-label { color: #9C7A35; }
.oz-demo[data-oz-demo="cannes"] .oz-s-caracs span { background: #EFE7D6; }
.oz-vm-quartier { font: 600 10px/1 'Instrument Sans', system-ui, sans-serif; letter-spacing: 0.26em; text-transform: uppercase; color: #9C7A35; }
.oz-vm-salons { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; font-size: 11px; }
.oz-vm-salons small { width: 100%; opacity: 0.65; letter-spacing: 0.08em; text-transform: uppercase; font-size: 10px; }
.oz-vm-salons i { padding: 4px 9px; font-style: normal; box-shadow: inset 0 0 0 1px rgba(20, 34, 58, 0.25); }
.oz-vm-demande { display: grid; gap: 8px; }
.oz-demo[data-oz-demo="cannes"] .oz-s-ok { box-shadow: 0 0 0 1px #C9A45C, 0 0 0 6px #FAF6EE, 0 0 0 7px #3D6E9E; }
.oz-demo[data-oz-demo="cannes"] .oz-s-ok i { border-radius: 50% !important; background: #14223A; color: #E5C98C; }
@media (max-width: 760px) {
  .oz-vm-programme button { grid-template-columns: 52px 1fr; }
  .oz-vm-programme i { display: none; }
  .oz-demo[data-oz-demo="cannes"] .oz-s-logo { font-size: 15px; letter-spacing: 0.22em; }
  .oz-demo[data-oz-demo="cannes"] .oz-s-logo small { letter-spacing: 0.22em; white-space: nowrap; }
  .oz-demo[data-oz-demo="cannes"] .oz-s-cta { padding: 7px 10px; font-size: 9.5px; letter-spacing: 0.08em; }
}

/* ─── TESSANE · produit technique de Sophia Antipolis ─── */
.oz-demo[data-oz-demo="antibes"] { --m-encre: #123A30; --m-fond: #F4F6F3; --m-accent: #E2B93B; --m-doux: #E3EAE5; --m-police: 'Avenir Next', 'Helvetica Neue', Arial, sans-serif; }
.oz-demo[data-oz-demo="antibes"] .oz-site { background: #F4F6F3 linear-gradient(rgba(18, 58, 48, 0.05) 1px, transparent 1px) 0 0 / 100% 24px; color: #12261F; font-family: 'Avenir Next', 'Helvetica Neue', Arial, sans-serif; }
.oz-demo[data-oz-demo="antibes"] .oz-s-entete { height: 56px; background: rgba(244, 246, 243, 0.94); }
.oz-demo[data-oz-demo="antibes"] .oz-s-logo { gap: 7px; font: 600 18px/1 'Avenir Next', 'Helvetica Neue', Arial, sans-serif; letter-spacing: -0.02em; color: #123A30; }
.oz-ts-point { width: 10px; height: 10px; border-radius: 50%; background: #E2B93B; box-shadow: 0 0 0 3px rgba(226, 185, 59, 0.3); animation: oz-ts-pouls 2.4s ease-in-out infinite; }
@keyframes oz-ts-pouls { 50% { box-shadow: 0 0 0 6px rgba(226, 185, 59, 0); } }
.oz-demo[data-oz-demo="antibes"] .oz-s-nav button.est-actif { box-shadow: 0 2px 0 #E2B93B; }
.oz-demo[data-oz-demo="antibes"] .oz-s-cta { border-radius: 8px; background: #123A30; color: #F4F6F3 !important; }
.oz-ts-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 16px; align-items: center; padding: 22px 22px 6px; animation: oz-glisse 450ms var(--ressort) backwards; }
.oz-ts-hero-txt { display: grid; gap: 10px; justify-items: start; }
.oz-ts-hero-txt small { font: 500 10.5px/1.3 ui-monospace, Menlo, monospace; letter-spacing: 0.04em; color: #4F8F7A; text-transform: uppercase; }
.oz-ts-hero-txt b { font: 600 27px/1.08 'Avenir Next', 'Helvetica Neue', Arial, sans-serif; letter-spacing: -0.02em; color: #123A30; }
.oz-ts-hero-txt p { margin: 0; font-size: 12.5px; line-height: 1.5; opacity: 0.8; }
.oz-ts-hero-photo { aspect-ratio: 4 / 4.6; overflow: hidden; border-radius: 14px; box-shadow: 10px 10px 0 -2px #E2B93B; }
.oz-ts-hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.oz-ts-onglets { display: inline-flex; gap: 3px; margin: 6px 0 12px; padding: 3px; border-radius: 10px; background: #E3EAE5; }
.oz-ts-onglets button { padding: 7px 14px; border-radius: 8px; font-size: 12px; font-weight: 600; color: #3E5A50; transition: background-color 250ms ease, color 250ms ease; }
.oz-ts-onglets button.est-actif { background: #fff; color: #123A30; box-shadow: 0 2px 6px -2px rgba(18, 58, 48, 0.35); }
.oz-ts-tableau { display: grid; gap: 12px; padding: 16px; border-radius: 14px; background: #123A30; color: #E9F1EC; }
.oz-ts-mesures { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.oz-ts-mesures span { display: grid; gap: 2px; padding: 9px 10px; border-radius: 9px; background: rgba(255, 255, 255, 0.06); }
.oz-ts-mesures small { font-size: 10px; opacity: 0.7; }
.oz-ts-mesures b { font: 600 22px/1 ui-monospace, Menlo, monospace; color: #E2B93B; }
.oz-ts-mesures i { font: 400 10px/1 ui-monospace, Menlo, monospace; font-style: normal; opacity: 0.7; }
.oz-ts-courbe { display: flex; align-items: flex-end; gap: 5px; height: 70px; }
.oz-ts-courbe i { flex: 1; height: var(--h); border-radius: 3px 3px 0 0; background: linear-gradient(#E2B93B, rgba(226, 185, 59, 0.35)); animation: oz-ts-pousse 600ms var(--ressort) backwards; transform-origin: bottom; }
@keyframes oz-ts-pousse { from { transform: scaleY(0.1); } }
.oz-ts-legende { font: 400 10px/1 ui-monospace, Menlo, monospace; opacity: 0.6; }
.oz-ts-cas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.oz-demo[data-oz-demo="antibes"] .oz-s-carte { padding: 8px; border-radius: 12px; background: #fff; box-shadow: 0 0 0 1px rgba(18, 58, 48, 0.1); }
.oz-demo[data-oz-demo="antibes"] .oz-s-carte b { font-size: 13px; font-weight: 600; line-height: 1.3; }
.oz-ts-chiffre { justify-self: start; padding: 3px 8px; border-radius: 6px; background: rgba(226, 185, 59, 0.22); color: #6B5310; font: 600 12px/1.2 ui-monospace, Menlo, monospace; }
.oz-ts-cas-fiche { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 18px; padding: 18px 22px; animation: oz-glisse 450ms var(--ressort) backwards; }
.oz-ts-cas-photo { aspect-ratio: 4 / 4.4; overflow: hidden; border-radius: 12px; }
.oz-ts-cas-photo img { width: 100%; height: 100%; object-fit: cover; }
.oz-demo[data-oz-demo="antibes"] .oz-s-infos h4 { font-size: 21px; font-weight: 600; letter-spacing: -0.01em; }
.oz-demo[data-oz-demo="antibes"] .oz-ts-cas-fiche .oz-ts-chiffre { font-size: 18px; }
.oz-ts-texte { margin: 0; font-size: 12.5px; line-height: 1.5; opacity: 0.85; }
.oz-ts-form { display: grid; gap: 8px; max-width: 460px; margin: 10px auto; padding: 18px 20px; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px rgba(18, 58, 48, 0.1), 0 18px 34px -24px rgba(18, 58, 48, 0.5); }
.oz-demo[data-oz-demo="antibes"] .oz-s-titre { font-size: 19px; font-weight: 600; letter-spacing: -0.01em; }
.oz-demo[data-oz-demo="antibes"] .oz-s-label { font: 500 10px/1 ui-monospace, Menlo, monospace; letter-spacing: 0.04em; }
.oz-demo[data-oz-demo="antibes"] .oz-s-choix button.est-actif { background: #123A30; color: #fff; }
.oz-demo[data-oz-demo="antibes"] .oz-s-bouton { border-radius: 9px; background: #E2B93B; color: #123A30 !important; }
.oz-demo[data-oz-demo="antibes"] .oz-s-ok i { background: #123A30; color: #E2B93B; }
@media (max-width: 760px) {
  .oz-ts-hero, .oz-ts-cas-fiche { grid-template-columns: 1fr; }
  .oz-ts-hero-photo { aspect-ratio: 16 / 9; }
  .oz-ts-cas { grid-template-columns: 1fr; }
  .oz-ts-hero-txt b { font-size: 22px; }
}

/* ─── MERLANE · le lin et la marinière ─── */
.oz-demo[data-oz-demo="sttropez"] { --m-encre: #24476B; --m-fond: #F5EEE2; --m-accent: #D8826A; --m-doux: #EADFCB; --m-police: Georgia, 'Times New Roman', serif; }
.oz-demo[data-oz-demo="sttropez"] .oz-site { background: #F5EEE2; color: #24364A; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-entete { height: 60px; background: #F5EEE2; border-bottom: 0; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-logo { flex-direction: column; align-items: flex-start; gap: 2px; font: italic 400 24px/1 Georgia, 'Times New Roman', serif; letter-spacing: 0; color: #24476B; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-logo small { font: 600 7.5px/1 'Instrument Sans', system-ui, sans-serif; font-style: normal; letter-spacing: 0.46em; color: #D8826A; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-nav button { font: italic 400 13px/1 Georgia, serif; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-nav button.est-actif { box-shadow: 0 2px 0 #D8826A; }
.oz-ml-saison { position: sticky; top: 60px; z-index: 4; display: grid; place-items: center; height: 26px; background: repeating-linear-gradient(180deg, #24476B 0 3px, #F5EEE2 3px 7px); }
.oz-ml-saison span { padding: 3px 12px; border-radius: 99px; background: #F5EEE2; color: #24476B; font-size: 10.5px; font-weight: 600; letter-spacing: 0.04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 92%; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-hero { height: 220px; margin: 14px 18px 0; border-radius: 18px; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-hero::after { background: linear-gradient(180deg, transparent 35%, rgba(36, 71, 107, 0.7)); }
.oz-demo[data-oz-demo="sttropez"] .oz-s-hero-txt b { font-style: italic; font-size: 30px; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-puce { border-radius: 99px; font-style: italic; font-family: Georgia, serif; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-puce.est-actif { background: #24476B; color: #F5EEE2; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 12px; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-carte { padding: 7px 7px 10px; border-radius: 4px; background: #fff; box-shadow: 0 10px 22px -16px rgba(36, 54, 74, 0.55); transition: transform 300ms var(--ressort); }
.oz-demo[data-oz-demo="sttropez"] .oz-s-carte:nth-child(odd) { transform: rotate(-1.2deg); }
.oz-demo[data-oz-demo="sttropez"] .oz-s-carte:nth-child(even) { transform: rotate(1deg); }
.oz-demo[data-oz-demo="sttropez"] .oz-s-carte:hover { transform: rotate(0) translateY(-3px); }
.oz-demo[data-oz-demo="sttropez"] .oz-s-carte-photo { aspect-ratio: 4 / 5; border-radius: 2px; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-carte b { font: italic 400 15px/1.2 Georgia, serif; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-carte span { color: #B4604A; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-galerie-grande { border-radius: 4px; box-shadow: 0 0 0 7px #fff, 0 14px 30px -18px rgba(36, 54, 74, 0.6); }
.oz-demo[data-oz-demo="sttropez"] .oz-s-infos h4 { font-style: italic; }
.oz-ml-matiere { opacity: 0.7; font-size: 12px; }
.oz-ml-quand { color: #B4604A; font-size: 11.5px; font-weight: 600; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-choix button { border-radius: 99px; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-choix button.est-actif { background: #24476B; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-bouton { border-radius: 99px; background: #D8826A; color: #fff !important; letter-spacing: 0.03em; }
.oz-ml-boutique { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; align-items: center; padding: 20px 22px; animation: oz-glisse 450ms var(--ressort) backwards; }
.oz-ml-boutique-photo { aspect-ratio: 4 / 4.6; overflow: hidden; border-radius: 999px 999px 6px 6px; }
.oz-ml-boutique-photo img { width: 100%; height: 100%; object-fit: cover; }
.oz-ml-boutique-txt { display: grid; gap: 10px; justify-items: start; }
.oz-ml-boutique-txt h4 { margin: 0; font: italic 400 24px/1.15 Georgia, serif; color: #24476B; }
.oz-ml-boutique-txt p { margin: 0; font-size: 12.5px; line-height: 1.55; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-ok { border-radius: 18px; box-shadow: 0 0 0 6px #F5EEE2, 0 0 0 9px #24476B; }
.oz-demo[data-oz-demo="sttropez"] .oz-s-ok i { background: #D8826A; color: #fff; }
@media (max-width: 760px) {
  .oz-demo[data-oz-demo="sttropez"] .oz-s-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oz-ml-boutique { grid-template-columns: 1fr; }
  .oz-ml-saison span { font-size: 9.5px; }
}

/* ─── LAUVELLE · domaine de Provence, chaux et lie de vin (22/10/2026) ───
   Fond de chaux, encre lie de vin, italique Fraunces, filets fins
   comme une étiquette ; l'âge à l'entrée et la mention sanitaire
   toujours visible (loi Évin). */
.oz-demo[data-oz-demo="vins"] { --m-encre: #3B1F22; --m-fond: #F4EEE3; --m-accent: #C9826F; --m-doux: #E9DFCF; --m-police: 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="vins"] .oz-site-defile { display: flex; flex-direction: column; }
.oz-demo[data-oz-demo="vins"] .oz-site-defile > * { flex-shrink: 0; }
.oz-demo[data-oz-demo="vins"] .oz-s-entete { height: 60px; background: #F4EEE3; border-bottom: 1px solid #DCCFBB; }
.oz-demo[data-oz-demo="vins"] .oz-s-logo { font: italic 400 22px/1 'Fraunces', Georgia, serif; letter-spacing: 0.02em; }
.oz-demo[data-oz-demo="vins"] .oz-s-nav button { font: italic 400 13px/1 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="vins"] .oz-s-nav button.est-actif { box-shadow: 0 1px 0 #3B1F22; }
.oz-demo[data-oz-demo="vins"] .oz-s-panier b { background: #6E7146; }
.oz-demo[data-oz-demo="vins"] .oz-s-hero { height: 250px; margin: 14px 18px 0; border-radius: 3px; }
.oz-demo[data-oz-demo="vins"] .oz-s-hero::after { background: linear-gradient(180deg, transparent 40%, rgba(59, 31, 34, 0.65)); }
.oz-demo[data-oz-demo="vins"] .oz-s-hero-txt small { letter-spacing: 0.24em; font-size: 10px; }
.oz-demo[data-oz-demo="vins"] .oz-s-hero-txt b { font: italic 300 28px/1.15 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="vins"] .oz-s-titre { display: flex; align-items: center; gap: 12px; font: italic 400 20px/1 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="vins"] .oz-s-titre::after { content: ''; flex: 1; height: 1px; background: #DCCFBB; }
.oz-demo[data-oz-demo="vins"] .oz-s-puce { border-radius: 2px; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
.oz-demo[data-oz-demo="vins"] .oz-s-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.oz-demo[data-oz-demo="vins"] .oz-s-carte { padding: 8px 8px 12px; border-radius: 3px; background: #FBF8F2; box-shadow: inset 0 0 0 1px #E3D8C6; text-align: center; justify-items: center; }
.oz-demo[data-oz-demo="vins"] .oz-s-carte-photo { width: 100%; aspect-ratio: 3 / 4; border-radius: 2px; }
.oz-demo[data-oz-demo="vins"] .oz-s-carte b { font: italic 400 14px/1.2 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="vins"] .oz-s-carte span:not(.oz-s-carte-photo) { color: #8C4A3E; }
.oz-demo[data-oz-demo="vins"] .oz-s-galerie-grande, .oz-demo[data-oz-demo="vins"] .oz-s-vignettes button { border-radius: 3px; }
.oz-demo[data-oz-demo="vins"] .oz-s-infos h4 { font: italic 400 24px/1.15 'Fraunces', Georgia, serif; }
.oz-demo[data-oz-demo="vins"] .oz-s-bouton { border-radius: 3px; letter-spacing: 0.06em; }
.oz-demo[data-oz-demo="vins"] .oz-s-choix button { border-radius: 3px; }
.oz-demo[data-oz-demo="vins"] .oz-s-ok { border-radius: 4px; }
.oz-demo[data-oz-demo="vins"] .oz-s-ok b { font-style: italic; }
.oz-lv-fiche { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0; background: #DCCFBB; box-shadow: 0 0 0 1px #DCCFBB; }
.oz-lv-fiche dd { margin: 0; padding: 7px 9px; background: #FBF8F2; font-size: 11.5px; }
.oz-lv-evin { position: sticky; bottom: 0; z-index: 4; margin: auto 0 0; padding: 8px 14px; background: #3B1F22; color: #F4EEE3; font-size: 10.5px; line-height: 1.35; letter-spacing: 0.02em; text-align: center; }
.oz-lv-evin--tiroir { position: static; margin: 4px 0 0; border-radius: 3px; }
.oz-lv-age { position: relative; display: grid; place-items: center; flex: 1; min-height: 560px; padding: 24px; overflow: hidden; }
.oz-lv-age-fond { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(0.85); }
.oz-lv-age::after { content: ''; position: absolute; inset: 0; background: rgba(59, 31, 34, 0.45); }
.oz-lv-age-carte { position: relative; z-index: 1; display: grid; justify-items: center; gap: 12px; width: min(380px, 100%); padding: 26px 24px; border-radius: 3px; background: #F4EEE3; text-align: center; box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.6); animation: oz-pop 450ms cubic-bezier(0.3, 1.4, 0.5, 1); }
.oz-lv-age-carte .oz-s-logo { font: italic 400 26px/1 'Fraunces', Georgia, serif; }
.oz-lv-age-carte > small { font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; opacity: 0.7; }
.oz-lv-age-q { margin: 0; font-size: 13px; line-height: 1.45; }
.oz-lv-age-choix { display: grid; gap: 8px; width: 100%; }
.oz-lv-visite { width: 100%; text-align: left; box-shadow: inset 0 0 0 1px #E3D8C6; border-radius: 3px; }
.oz-lv-visite.est-actif { box-shadow: inset 0 0 0 1.5px #3B1F22; }
.oz-lv-visite img { border-radius: 2px; }
.oz-lv-coche { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; box-shadow: inset 0 0 0 1px #3B1F22; font-style: normal; font-size: 12px; }
.oz-lv-visite.est-actif .oz-lv-coche { background: #3B1F22; color: #F4EEE3; }

/* ─── NIVÉOLE · maison de soin, lait et sauge (22/10/2026) ───
   Différente de Vespéral (papier et laiton) : blanc laiteux, sauge,
   capsules très arrondies, Questrial en minuscules ; un diagnostic
   en deux questions, une routine numérotée, un abonnement. */
.oz-demo[data-oz-demo="beaute"] { --m-encre: #2F3B36; --m-fond: #F5F2EE; --m-accent: #A9BDB1; --m-doux: #E8E3DC; --m-police: 'Questrial', 'Instrument Sans', sans-serif; }
.oz-demo[data-oz-demo="beaute"] .oz-site { font-family: 'Questrial', 'Instrument Sans', sans-serif; }
.oz-demo[data-oz-demo="beaute"] .oz-s-entete { height: 58px; background: rgba(245, 242, 238, 0.92); border-bottom: 0; box-shadow: 0 1px 0 #E5DFD6; }
.oz-demo[data-oz-demo="beaute"] .oz-s-logo { font: 400 21px/1 'Questrial', sans-serif; letter-spacing: 0.06em; text-transform: lowercase; }
.oz-demo[data-oz-demo="beaute"] .oz-s-logo::after { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #A9BDB1; }
.oz-demo[data-oz-demo="beaute"] .oz-s-nav button.est-actif { box-shadow: none; padding: 4px 10px; border-radius: 99px; background: #E3EAE5; }
.oz-demo[data-oz-demo="beaute"] .oz-s-panier b { background: #2F3B36; }
.oz-demo[data-oz-demo="beaute"] .oz-s-hero { height: 340px; margin: 14px 16px 0; border-radius: 28px; }
.oz-demo[data-oz-demo="beaute"] .oz-s-hero::after { background: linear-gradient(180deg, transparent 30%, rgba(47, 59, 54, 0.6)); }
.oz-demo[data-oz-demo="beaute"] .oz-s-hero-txt { display: grid; justify-items: start; gap: 8px; }
.oz-demo[data-oz-demo="beaute"] .oz-s-hero-txt small { letter-spacing: 0.1em; text-transform: none; font-size: 12px; }
.oz-demo[data-oz-demo="beaute"] .oz-s-hero-txt b { font: 400 30px/1.12 'Questrial', sans-serif; }
.oz-demo[data-oz-demo="beaute"] .oz-s-hero-txt .oz-s-bouton { background: #F5F2EE; color: #2F3B36 !important; }
.oz-demo[data-oz-demo="beaute"] .oz-s-titre { font: 400 20px/1.2 'Questrial', sans-serif; }
.oz-demo[data-oz-demo="beaute"] .oz-s-bouton { border-radius: 99px; font-weight: 400; letter-spacing: 0.02em; }
.oz-demo[data-oz-demo="beaute"] .oz-s-bouton:disabled { opacity: 0.4; cursor: default; }
.oz-demo[data-oz-demo="beaute"] .oz-s-choix button { border-radius: 99px; }
.oz-demo[data-oz-demo="beaute"] .oz-s-carte { padding: 8px 8px 12px; border-radius: 22px; background: #fff; }
.oz-demo[data-oz-demo="beaute"] .oz-s-carte-photo { border-radius: 16px; aspect-ratio: 1; }
.oz-demo[data-oz-demo="beaute"] .oz-s-carte b { padding-inline: 4px; font: 400 14px/1.2 'Questrial', sans-serif; }
.oz-demo[data-oz-demo="beaute"] .oz-s-carte small { padding-inline: 4px; }
.oz-demo[data-oz-demo="beaute"] .oz-s-carte .oz-s-bouton { padding: 7px; font-size: 12px; }
.oz-demo[data-oz-demo="beaute"] .oz-s-ligne-villa { border-radius: 20px; }
.oz-demo[data-oz-demo="beaute"] .oz-s-ligne-villa img { border-radius: 14px; }
.oz-demo[data-oz-demo="beaute"] .oz-s-ligne-villa b { font-family: 'Questrial', sans-serif; }
.oz-demo[data-oz-demo="beaute"] .oz-s-ok { border-radius: 26px; }
.oz-demo[data-oz-demo="beaute"] .oz-s-ok i { background: #E3EAE5; color: #2F3B36; }
.oz-demo[data-oz-demo="beaute"] .oz-s-tiroir { border-radius: 24px 0 0 24px; }
.oz-demo[data-oz-demo="beaute"] .oz-s-tiroir h5 { font-family: 'Questrial', sans-serif; }
.oz-nv-bandeau { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.oz-nv-bandeau span { display: grid; gap: 6px; justify-items: center; font-size: 11px; text-align: center; }
.oz-nv-bandeau img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 18px; }
.oz-nv-diag { display: grid; gap: 18px; padding: 24px 22px; }
.oz-nv-q { display: grid; gap: 10px; padding: 18px; border-radius: 24px; background: #fff; transition: opacity 300ms ease; animation: oz-glisse 400ms var(--ressort) backwards; }
.oz-nv-q.est-attente { opacity: 0.45; }
.oz-nv-q h4 { margin: 0; font: 400 19px/1.2 'Questrial', sans-serif; }
.oz-nv-num { font-size: 11px; letter-spacing: 0.12em; color: #7C8F85; }
.oz-nv-options { display: flex; flex-wrap: wrap; gap: 8px; }
.oz-nv-options button { padding: 10px 16px; border-radius: 99px; background: #F2EFEA; font-size: 13px; transition: background-color 200ms ease, color 200ms ease; }
.oz-nv-options button.est-actif { background: #2F3B36; color: #F5F2EE; }
.oz-nv-options button:disabled { cursor: default; }
.oz-nv-conseil { margin: 0; font-size: 11px; opacity: 0.6; text-align: center; }
.oz-nv-routine { display: grid; gap: 8px; margin-bottom: 14px; }
.oz-nv-etape { display: grid; grid-template-columns: 26px 58px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 8px 14px 8px 10px; border-radius: 20px; background: #fff; animation: oz-glisse 420ms var(--ressort) backwards; }
.oz-nv-etape-num { font-size: 11px; color: #7C8F85; text-align: center; }
.oz-nv-etape img { width: 58px; height: 58px; object-fit: cover; border-radius: 14px; }
.oz-nv-etape span { display: grid; }
.oz-nv-etape small { font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: #7C8F85; }
.oz-nv-etape b { font-weight: 400; font-size: 14px; }
.oz-nv-etape em { font-style: normal; font-size: 13px; }
.oz-nv-abo { width: 100%; margin-bottom: 12px; padding: 12px 14px; border-radius: 18px; background: #E3EAE5; text-align: left; }
.oz-nv-barre { opacity: 0.5; font-weight: 400; }
.oz-demo[data-oz-demo="beaute"] .oz-s-section > .oz-s-bouton { display: block; width: 100%; margin: 12px 0 8px; }
.oz-demo[data-oz-demo="beaute"] .oz-s-section > .oz-s-total { margin-top: 4px; }
.oz-nv-rituel { width: 100%; text-align: left; box-shadow: inset 0 0 0 1px #E5DFD6; }
.oz-nv-rituel.est-actif { box-shadow: inset 0 0 0 1.5px #2F3B36; background: #fff; }
.oz-nv-rituel em { font-style: normal; font-size: 13px; }

/* ─── GALERIE ANCELLE · le cube blanc (22/10/2026) ───
   Blanc de cimaise, encre noire, aucune couleur sinon les œuvres et
   la pastille rouge des œuvres vendues ; cartels comme au mur. */
.oz-demo[data-oz-demo="galerie"] { --m-encre: #111111; --m-fond: #FFFFFF; --m-accent: #B4322A; --m-doux: #EFEDE8; --m-police: 'Instrument Sans', -apple-system, sans-serif; }
.oz-demo[data-oz-demo="galerie"] .oz-site { background: #fff; color: #111; }
.oz-demo[data-oz-demo="galerie"] .oz-site * { border-radius: 0 !important; }
.oz-demo[data-oz-demo="galerie"] .oz-s-entete { height: 62px; background: #fff; border-bottom: 1px solid #ECEAE5; }
.oz-demo[data-oz-demo="galerie"] .oz-s-logo { font: 500 13px/1 'Instrument Sans', sans-serif; letter-spacing: 0.32em; text-transform: uppercase; }
.oz-demo[data-oz-demo="galerie"] .oz-s-nav button { font-size: 11.5px; letter-spacing: 0.04em; }
.oz-demo[data-oz-demo="galerie"] .oz-s-nav button.est-actif { box-shadow: 0 1px 0 #111; }
.oz-demo[data-oz-demo="galerie"] .oz-s-cta { background: #fff; color: #111 !important; box-shadow: inset 0 0 0 1px #111; font-weight: 500; }
.oz-demo[data-oz-demo="galerie"] .oz-s-section { padding: 22px 24px; }
.oz-demo[data-oz-demo="galerie"] .oz-s-titre { font: 500 26px/1.1 'Instrument Sans', sans-serif; letter-spacing: -0.01em; }
.oz-demo[data-oz-demo="galerie"] .oz-s-puces { align-items: center; gap: 14px; padding-bottom: 12px; border-bottom: 1px solid #ECEAE5; }
.oz-demo[data-oz-demo="galerie"] .oz-s-puce { padding: 2px 0; box-shadow: none; font-size: 11.5px; color: #8A877F; }
.oz-demo[data-oz-demo="galerie"] .oz-s-puce.est-actif { background: none; color: #111; box-shadow: 0 1px 0 #111; }
.oz-demo[data-oz-demo="galerie"] .oz-s-interrupteur { margin-left: auto; font-size: 11.5px; }
.oz-demo[data-oz-demo="galerie"] .oz-s-interrupteur i, .oz-demo[data-oz-demo="galerie"] .oz-s-interrupteur i::after { border-radius: 99px !important; }
.oz-demo[data-oz-demo="galerie"] .oz-s-interrupteur.est-actif i { background: #111; }
.oz-demo[data-oz-demo="galerie"] .oz-s-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px 18px; }
.oz-demo[data-oz-demo="galerie"] .oz-s-carte { gap: 10px; }
.oz-demo[data-oz-demo="galerie"] .oz-s-carte-photo { aspect-ratio: 4 / 5; background: #F4F3F0; padding: 14%; }
.oz-demo[data-oz-demo="galerie"] .oz-s-carte-photo img { box-shadow: 0 10px 18px -12px rgba(0, 0, 0, 0.45); }
.oz-demo[data-oz-demo="galerie"] .oz-s-hero::after { background: linear-gradient(180deg, transparent 40%, rgba(0, 0, 0, 0.55)); }
.oz-demo[data-oz-demo="galerie"] .oz-s-hero-txt b { font: 500 26px/1.1 'Instrument Sans', sans-serif; }
.oz-demo[data-oz-demo="galerie"] .oz-s-bouton { padding: 13px; font-weight: 500; font-size: 12.5px; letter-spacing: 0.02em; }
.oz-demo[data-oz-demo="galerie"] .oz-s-bouton:disabled { opacity: 0.35; cursor: default; }
.oz-demo[data-oz-demo="galerie"] .oz-s-ok { box-shadow: inset 0 0 0 1px #ECEAE5; }
.oz-demo[data-oz-demo="galerie"] .oz-s-ok b { font: 500 18px/1.2 'Instrument Sans', sans-serif; }
.oz-demo[data-oz-demo="galerie"] .oz-s-ok i { border-radius: 50% !important; background: #F4F3F0; color: #111; }
.oz-demo[data-oz-demo="galerie"] .oz-s-pas button { border-radius: 50% !important; }
.oz-demo[data-oz-demo="galerie"] .oz-s-toast { border-radius: 0 !important; }
.oz-ga-tete { display: grid; gap: 4px; margin-bottom: 14px; }
.oz-ga-tete small { font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: #8A877F; }
.oz-ga-tete .oz-s-titre { margin: 0; }
.oz-ga-cartel { display: grid; gap: 1px; text-align: left; font-size: 11px; line-height: 1.35; }
.oz-ga-cartel b { font-weight: 600; font-size: 11.5px; }
.oz-ga-cartel i { font-style: italic; }
.oz-ga-cartel small { color: #8A877F; font-size: 10.5px; }
.oz-s-carte .oz-ga-cartel { font-weight: 400; }
.oz-ga-point { position: absolute; right: 10px; top: 10px; left: auto !important; width: 9px; height: 9px; padding: 0 !important; border-radius: 50% !important; background: #B4322A !important; }
.oz-ga-point--reserve { background: transparent !important; box-shadow: inset 0 0 0 1.5px #B4322A; }
.oz-ga-fiche { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.oz-ga-mur { display: grid; place-items: center; padding: 34px; background: #F4F3F0; aspect-ratio: 1; }
.oz-ga-mur img { max-width: 100%; max-height: 100%; object-fit: contain; box-shadow: 0 18px 30px -18px rgba(0, 0, 0, 0.5); animation: oz-fondu 500ms ease; }
.oz-ga-fiche .oz-ga-cartel { font-size: 13px; }
.oz-ga-fiche .oz-ga-cartel b { font-size: 15px; }
.oz-ga-statut { display: inline-flex; align-items: center; gap: 7px; justify-self: start; font-size: 11.5px; }
.oz-ga-statut::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #3E8E5C; }
.oz-ga-statut--reserve::before { background: transparent; box-shadow: inset 0 0 0 1.5px #B4322A; }
.oz-ga-statut--vendu::before { background: #B4322A; }
.oz-ga-prix { font-weight: 500; font-size: 14px; letter-spacing: 0.02em; }
.oz-ga-demande { display: grid; gap: 8px; padding-top: 10px; border-top: 1px solid #ECEAE5; animation: oz-glisse 350ms var(--ressort); }
.oz-ga-sujets { display: grid; gap: 4px; }
.oz-ga-sujets button { padding: 8px 10px; text-align: left; font-size: 12px; box-shadow: inset 0 0 0 1px #E2DFD8; }
.oz-ga-sujets button.est-actif { box-shadow: inset 0 0 0 1.5px #111; font-weight: 500; }
.oz-ga-champ { padding: 9px 10px; box-shadow: inset 0 -1px 0 #111; font-size: 12px; color: #8A877F; }
.oz-ga-vern { display: grid; gap: 12px; }
.oz-ga-quand { margin: 0; font-size: 15px; font-weight: 500; }
.oz-ga-texte { margin: 0 0 14px; font-size: 13.5px; line-height: 1.55; }
.oz-ga-artistes { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-bottom: 16px; font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; }

@media (max-width: 760px) {
  .oz-demo[data-oz-demo="vins"] .oz-s-grille, .oz-demo[data-oz-demo="galerie"] .oz-s-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oz-demo[data-oz-demo="vins"] .oz-s-hero, .oz-demo[data-oz-demo="beaute"] .oz-s-hero { margin-inline: 10px; }
  .oz-lv-age { min-height: 520px; }
  .oz-nv-bandeau { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oz-ga-fiche { grid-template-columns: minmax(0, 1fr); }
  .oz-ga-mur { aspect-ratio: 4 / 3; padding: 20px; }
  .oz-demo[data-oz-demo="galerie"] .oz-s-interrupteur { margin-left: 0; }
}
