/* Généré par tools/build-public.mjs (CSS_MIROIRS) : NE PAS MODIFIER À LA MAIN. */
.miroir-sim {--line: rgba(28,22,17,.1);
    --fs-2xs: .75rem;
    --fs-xs: .875rem;
    --fs-s: 1rem;
    --fs-m: 1.125rem;
    --fs-l: 1.3rem;
    --fs-h3: clamp(1.35rem, 1.9vw, 1.7rem);
    --fs-h2: clamp(2rem, 4vw, 3rem);
    --fs-display: clamp(2.5rem, 5.6vw, 4.5rem);
    --fs-num: clamp(3.2rem, 7vw, 5.4rem);
    --r-s: 12px; --r-m: 20px; --r-l: 32px; --r-pill: 999px;
    --sh-1: 0 0 0 1px rgba(28,22,17,.06), 0 1px 2px rgba(28,22,17,.05);
    --sh-2: 0 10px 26px -14px rgba(28,22,17,.4);
    --sh-3: 0 40px 80px -40px rgba(28,22,17,.35);
    --sp-1: 8px; --sp-2: 16px; --sp-3: 24px; --sp-4: 32px; --sp-5: 48px;
    --sec: clamp(96px, 12vw, 160px);
    --gap-arg: clamp(96px, 10vw, 140px);
    --btn-h: 52px; --btn-h-s: 40px;
    --ease: cubic-bezier(.2,.8,.2,1);
    --ease-move: cubic-bezier(.3,.7,.2,1);}
.miroir-sim .wrap { max-width: 1060px; margin: 0 auto; padding: 0 24px; }
.miroir-sim .wrap--wide { max-width: 1180px; }
.miroir-sim .sec { padding: var(--sec) 0; }
.miroir-sim .sec--cream { background: var(--cream); }
.miroir-sim .sec--white { background: #fff; }
.miroir-sim .sec--sand { background: var(--cream-dark); }
.miroir-sim .sec--dark { background: var(--espresso); color: var(--cream); }
.miroir-sim .sec--dark .pv-t { color: var(--cream); }
.miroir-sim .sec--dark .pv-d { color: rgba(250,248,245,.72); }
.miroir-sim .sec--dark .pv-num { background: rgba(250,248,245,.06); box-shadow: inset 0 0 0 1px rgba(233,169,130,.45); }
.miroir-sim .sec--dark .pv-num span { color: #E9A982; }
.miroir-sim .sec--dark .vid { box-shadow: var(--sh-3); }
.miroir-sim .sec--center { text-align: center; }
.miroir-sim .of-eyebrow, .miroir-sim .sim-card-k, .miroir-sim .sim-mini-k {
    text-transform: uppercase; letter-spacing: .13em; font-size: var(--fs-2xs); font-weight: 600; color: var(--sienna);
}
.miroir-sim .of-eyebrow { display: block; margin-bottom: 14px; }
.miroir-sim .sim-card-k, .miroir-sim .sim-mini-k { color: #E9A982; }
.miroir-sim .h2 { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-h2); line-height: 1.1; letter-spacing: -.015em; margin: 0; }
.miroir-sim .lead { color: var(--zinc); font-size: var(--fs-m); line-height: 1.6; max-width: 36em; margin: var(--sp-2) auto var(--sp-5); }
.miroir-sim .sim-step button:active { transform: scale(.97); }
.miroir-sim .tex { position: relative; isolation: isolate; }
.miroir-sim .tex::before {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .5;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .33 0 0 0 0 .24 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.miroir-sim .sec--sand.tex { background-color: #EFE7DD; }
.miroir-sim .sim-thumb img { --warm: saturate(1); }
.miroir-sim .sim-thumb img[src$="card-massage.webp"], .miroir-sim .sim-thumb img[src*="card-vin"], .miroir-sim .sim-thumb img[src$="card-chef.webp"], .miroir-sim .sim-thumb img[src$="card-vignoble.webp"], .miroir-sim .sim-thumb img[src$="card-yoga-terrasse.webp"] {
    --warm: sepia(.16) saturate(1.22) hue-rotate(-6deg);
}
.miroir-sim .sim { text-align: left; }
.miroir-sim .sim-lay { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 32px; align-items: start; }
.miroir-sim .sim-plus { opacity: .38; font-weight: 500; margin-right: .03em; }
.miroir-sim .sim-card { position: sticky; top: 24px; display: flex; flex-direction: column; max-height: calc(100vh - 120px); border-radius: var(--r-l); background: var(--espresso); color: var(--cream); box-shadow: var(--sh-3); overflow: hidden; }
.miroir-sim .sim-card-top { flex: none; padding: clamp(28px, 3.6vw, 48px) clamp(28px, 3.6vw, 48px) 8px; }
.miroir-sim .sim-card-k { margin: 0; }
.miroir-sim .sim-big { margin: 12px 0 0; font-family: var(--font-display); font-weight: 600; font-size: clamp(3.6rem, 7.2vw, 6.5rem); line-height: .95; letter-spacing: -.035em; font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
.miroir-sim .sim-sub { margin: 12px 0 0; font-size: var(--fs-m); color: rgba(250,248,245,.66); }
.miroir-sim .sim-sub b { color: var(--cream); font-weight: 600; font-variant-numeric: lining-nums tabular-nums; }
.miroir-sim .sim.is-vide .sim-big { color: rgba(250,248,245,.3); }
.miroir-sim .sim-rows { margin-top: 28px; border-top: 1px solid rgba(250,248,245,.14); }
.miroir-sim .sim-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 58px; border-bottom: 1px solid rgba(250,248,245,.14); font-size: var(--fs-s); color: rgba(250,248,245,.72); }
.miroir-sim .sim-row strong { color: var(--cream); font-weight: 600; margin-left: .3em; }
.miroir-sim .sim-step { display: inline-flex; align-items: center; gap: 2px; padding: 3px; border-radius: var(--r-pill); background: rgba(250,248,245,.1); }
.miroir-sim .sim-step button { touch-action: manipulation; width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(250,248,245,.16); color: var(--cream); font: inherit; font-size: 1.1rem; line-height: 1; cursor: pointer; transition: background-color .2s, transform .2s var(--ease), opacity .2s; }
.miroir-sim .sim-step button:disabled { opacity: .35; cursor: default; }
.miroir-sim .sim-step button:focus-visible { outline: 3px solid rgba(233,169,130,.55); outline-offset: 1px; }
@media (hover: hover) {
.miroir-sim .sim-step button:not(:disabled):hover { background: rgba(250,248,245,.26); }
}
.miroir-sim .sim-step output { min-width: 28px; text-align: center; font-weight: 600; color: var(--cream); font-variant-numeric: lining-nums tabular-nums; }
.miroir-sim .sim-step output.is-pulse { animation: pulse .22s var(--ease); }
.miroir-sim .sim-toggle { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin: 10px 0 0 -6px; padding: 0 6px; border: 0; background: none; color: #E9A982; font: inherit; font-size: var(--fs-xs); font-weight: 600; cursor: pointer; border-radius: var(--r-s); }
.miroir-sim .sim-toggle svg { width: 14px; height: 14px; transition: transform .3s var(--ease); }
.miroir-sim .sim-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.miroir-sim .sim-toggle:focus-visible { outline: 3px solid rgba(233,169,130,.55); }
@media (hover: hover) {
.miroir-sim .sim-toggle:hover span { text-decoration: underline; text-underline-offset: 3px; }
}
.miroir-sim .sim-calc { display: grid; grid-template-rows: 0fr; opacity: 0; flex: 0 1 auto; min-height: 0; transition: grid-template-rows .32s var(--ease), opacity .24s ease; }
.miroir-sim .sim-calc.is-open { grid-template-rows: 1fr; opacity: 1; }
.miroir-sim .sim-calc-scroll { min-height: 0; overflow: hidden; padding: 0 clamp(28px, 3.6vw, 48px); }
.miroir-sim .sim-calc.is-open .sim-calc-scroll { overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(250,248,245,.25) transparent; padding-bottom: 28px;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 14px, #000 calc(100% - 22px), transparent 100%); mask-image: linear-gradient(to bottom, transparent 0, #000 14px, #000 calc(100% - 22px), transparent 100%); }
.miroir-sim .sim-calc-scroll:focus-visible { outline: 2px solid rgba(233,169,130,.55); outline-offset: -2px; }
.miroir-sim .sim-calc ul { list-style: none; margin: 0; padding: 0; }
.miroir-sim .sim-calc li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 8px 0; border-top: 1px solid rgba(250,248,245,.12); font-size: var(--fs-xs); }
.miroir-sim .sim-calc li:first-child { border-top: 0; }
.miroir-sim .sim-c-n { display: flex; flex-direction: column; min-width: 0; }
.miroir-sim .sim-c-n small { font-size: var(--fs-2xs); color: rgba(250,248,245,.58); }
.miroir-sim .sim-c-v { font-variant-numeric: lining-nums tabular-nums; font-weight: 600; white-space: nowrap; }
.miroir-sim .sim-calc .sim-c-sub, .miroir-sim .sim-calc .sim-c-abo, .miroir-sim .sim-calc .sim-c-empty, .miroir-sim .sim-note { color: rgba(250,248,245,.58); }
.miroir-sim .sim-calc .sim-c-sub .sim-c-v, .miroir-sim .sim-calc .sim-c-abo .sim-c-v { font-weight: 500; }
.miroir-sim .sim-calc .sim-c-abo { font-size: var(--fs-2xs); }
.miroir-sim .sim-calc .sim-c-tot { font-size: var(--fs-s); border-top-color: rgba(250,248,245,.35); }
.miroir-sim .sim-calc .sim-c-tot .sim-c-v { color: #E9A982; }
.miroir-sim .sim-calc .sim-c-empty { justify-content: center; }
.miroir-sim .sim-note { margin: 10px 0 0; font-size: var(--fs-2xs); }
.miroir-sim .sim-card:has(.sim-calc.is-open) .sim-card-top { padding-bottom: 0; }
.miroir-sim .sim-stepb + .sim-stepb { margin-top: 28px; }
.miroir-sim .sim-t { margin: 0 0 14px; font-family: var(--font-body); font-size: var(--fs-l); font-weight: 600; line-height: 1.25; letter-spacing: -.01em; color: var(--espresso); }
.miroir-sim .sim-t span { color: rgba(90,80,72,.62); }
.miroir-sim .sim-seg { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 4px; border-radius: calc(var(--r-s) + 4px); background: rgba(28,22,17,.07); }
.miroir-sim .sim-seg::before { content: ""; position: absolute; top: 4px; bottom: 4px; left: 4px; width: calc((100% - 8px) / 3); border-radius: var(--r-s); background: #fff; box-shadow: var(--sh-2); transform: translateX(calc(100% * var(--i, 1))); transition: transform .32s var(--ease-move); }
.miroir-sim .sim-seg button { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 1px; min-height: 48px; padding: 6px 8px; border: 0; background: none; color: var(--zinc); font: inherit; cursor: pointer; text-align: center; border-radius: var(--r-s); transition: color .2s; }
.miroir-sim .sim-seg b { font-weight: 600; font-size: var(--fs-xs); }
.miroir-sim .sim-seg span { font-size: .7rem; }
.miroir-sim .sim-seg .court { display: none; }
.miroir-sim .sim-seg button[aria-pressed="true"] { color: var(--espresso); }
.miroir-sim .sim-seg button:focus-visible { outline: 3px solid rgba(186,74,44,.35); outline-offset: -2px; }
.miroir-sim .sim-grid { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.miroir-sim .sim-tile { position: relative; display: flex; flex-direction: column; align-items: stretch; padding: 0; border: 0; border-radius: var(--r-m); background: #fff; overflow: hidden; font: inherit; color: inherit; text-align: left; cursor: pointer;
    box-shadow: inset 0 0 0 1px rgba(28,22,17,.12); transition: box-shadow .22s ease, transform .2s var(--ease); }
.miroir-sim .sim-tile.is-on { box-shadow: inset 0 0 0 2px var(--sienna), var(--sh-2); }
@media (hover: hover) {
.miroir-sim .sim-tile:not(.is-on):hover { box-shadow: inset 0 0 0 1px rgba(28,22,17,.32); }
}
.miroir-sim .sim-tile:active { transform: scale(.98); }
.miroir-sim .sim-tile:focus-visible { outline: 3px solid rgba(186,74,44,.35); outline-offset: 2px; }
.miroir-sim .sim-thumb { position: relative; display: block; aspect-ratio: 4 / 3; margin: 5px 5px 0; border-radius: calc(var(--r-m) - 5px); overflow: hidden; background: var(--cream-dark); }
.miroir-sim .sim-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; filter: var(--warm) saturate(.55); opacity: .82; transform: scale(1.001); transition: filter .35s ease, opacity .35s ease, transform .6s var(--ease); }
.miroir-sim .sim-tile.is-on .sim-thumb img { filter: var(--warm); opacity: 1; transform: scale(1.04); }
.miroir-sim .sim-check { position: absolute; top: 7px; right: 7px; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; background: rgba(28,22,17,.28); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.9); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: background-color .2s, box-shadow .2s; }
.miroir-sim .sim-check svg { width: 13px; height: 13px; opacity: 0; transform: scale(.4); transition: opacity .16s, transform .28s var(--ease); }
.miroir-sim .sim-tile.is-on .sim-check { background: var(--sienna); box-shadow: none; }
.miroir-sim .sim-tile.is-on .sim-check svg { opacity: 1; transform: none; }
.miroir-sim .sim-tx { display: flex; flex-direction: column; min-width: 0; gap: 1px; padding: 8px 11px 11px; }
.miroir-sim .sim-n { font-weight: 600; font-size: var(--fs-xs); line-height: 1.2; }
.miroir-sim .sim-g { font-size: var(--fs-2xs); color: var(--zinc); font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; transition: opacity .16s; }
.miroir-sim .sim-g strong { font-weight: 600; }
.miroir-sim .sim-tile.is-on .sim-g strong { color: var(--sienna); }
.miroir-sim .sim-tile.is-swap .sim-n, .miroir-sim .sim-tile.is-swap .sim-g { opacity: 0; }
.miroir-sim .sim-tile.is-enter { animation: simIn .24s var(--ease) both; }
.miroir-sim .sim-tile.is-leave { position: absolute; pointer-events: none; animation: simOut .2s ease-in both; }
.miroir-sim .sim-foot { margin: 12px 0 0; font-size: var(--fs-2xs); color: var(--zinc); }
.miroir-sim .sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.miroir-sim .sim-mini { display: none; }
@media (max-width: 900px) {
.miroir-sim .sim-lay { grid-template-columns: 1fr; gap: 28px; }
.miroir-sim .sim-steps { display: contents; }
.miroir-sim .sim-stepb:first-child { order: -1; }
.miroir-sim .sim-stepb + .sim-stepb { margin-top: 0; }
.miroir-sim .sim-card { position: relative; top: auto; max-height: none; }
.miroir-sim .sim-calc.is-open .sim-calc-scroll { overflow: visible; -webkit-mask-image: none; mask-image: none; }
.miroir-sim .sim-mini { position: fixed; left: 12px; right: 12px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 850; display: grid; grid-template-columns: 1fr auto; grid-template-areas: "k n" "v n"; align-items: center; column-gap: 12px; padding: 10px 18px; border-radius: var(--r-m); background: rgba(28,22,17,.92); -webkit-backdrop-filter: saturate(1.4) blur(18px); backdrop-filter: saturate(1.4) blur(18px); color: var(--cream); box-shadow: var(--sh-2);
        opacity: 0; visibility: hidden; transform: translateY(calc(100% + 16px)); pointer-events: none; transition: transform .36s var(--ease-move), opacity .24s ease, visibility 0s linear .36s; }
.miroir-sim .sim-mini.is-on { opacity: 1; visibility: visible; transform: none; transition: transform .36s var(--ease-move), opacity .24s ease, visibility 0s; }
.miroir-sim .sim-mini-k { grid-area: k; }
.miroir-sim .sim-mini-v { grid-area: v; font-family: var(--font-display); font-weight: 600; font-size: 1.6rem; line-height: 1.05; font-variant-numeric: lining-nums tabular-nums; }
.miroir-sim .sim-mini-v small { font-family: var(--font-body); font-size: .8rem; font-weight: 500; color: rgba(250,248,245,.7); }
.miroir-sim .sim-mini-n { grid-area: n; font-size: .8rem; color: rgba(250,248,245,.7); }
}
@media (max-width: 560px) {
.miroir-sim .sim-lay { gap: 24px; }
.miroir-sim .sim-t { font-size: var(--fs-m); margin-bottom: 12px; }
.miroir-sim .sim-t span { white-space: nowrap; }
.miroir-sim .sim-card { border-radius: var(--r-l); }
.miroir-sim .sim-card-top { padding: 24px 20px 6px; }
.miroir-sim .sim-calc-scroll { padding: 0 20px; }
.miroir-sim .sim-calc.is-open .sim-calc-scroll { padding-bottom: 20px; }
.miroir-sim .sim-big { font-size: clamp(3.2rem, 16vw, 4.25rem); }
.miroir-sim .sim-sub { font-size: var(--fs-s); margin-top: 8px; }
.miroir-sim .sim-rows { margin-top: 18px; }
.miroir-sim .sim-row { min-height: 52px; font-size: .9rem; }
.miroir-sim .sim-seg b { font-size: .84rem; }
.miroir-sim .sim-seg .long { display: none; }
.miroir-sim .sim-seg .court { display: inline; }
.miroir-sim .sim-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.miroir-sim .sim-tile { border-radius: var(--r-s); }
.miroir-sim .sim-thumb { margin: 4px 4px 0; border-radius: calc(var(--r-s) - 4px); }
.miroir-sim .sim-tx { padding: 6px 7px 9px; }
.miroir-sim .sim-n { font-size: .78rem; line-height: 1.25; }
.miroir-sim .sim-g { font-size: .72rem; }
}
@media (prefers-reduced-motion: reduce) {
.miroir-sim .sim *, .miroir-sim .sim *::before, .miroir-sim .sim *::after, .miroir-sim .sim-seg::before { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
.miroir-sim .offer-sec > .wrap { position: relative; z-index: 2; }
@media (min-width: 900px) {
.miroir-sim #simulateur .lead { margin-bottom: 32px; }
}
.miroir-sim .lead b { color: var(--espresso); font-weight: 600; }
.miroir-sim .e3-head .lead { margin: 16px auto 0; }
@media (prefers-reduced-motion: reduce) {
.miroir-sim .sim-seg::before { transition: none; }
.miroir-sim .sim-card.is-enter, .miroir-sim .sim-card.is-leave, .miroir-sim .sim-step output.is-pulse { animation: none; }
}
@keyframes simIn { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: none; } }
@keyframes simOut { to { opacity: 0; transform: scale(.96); } }
