/* Compositions de pages */

/* ================= Accueil ================= */
.hero-b { position: relative; margin: -84px clamp(8px, 1.2vw, 16px) 0; padding: calc(84px + clamp(40px, 6vw, 88px)) 0 clamp(48px, 6vw, 96px); background: var(--blue); color: #fff; border-radius: 0 0 var(--r-xl) var(--r-xl); overflow: hidden; isolation: isolate; }
.hero-b::before { content: ""; position: absolute; z-index: -1; left: -10%; bottom: -55%; width: 70%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(35, 116, 237, 0.9), transparent 65%); }
.hero-b__inner { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(24px, 4vw, 64px); align-items: center; }
.hero-b__text { display: grid; gap: 28px; justify-items: start; }
.eyebrow--glass { background: rgba(255, 255, 255, 0.14); color: #fff; }
.hero-b__title { display: grid; font-size: var(--fs-mega); font-weight: 900; line-height: 0.84; letter-spacing: -0.025em; color: #fff; }
.hero-b__title a { color: inherit; text-decoration: none; transition: color 0.25s; }
.hero-b__title a:hover { color: var(--sky); }
.hero-b__title .is-sun { color: var(--sun); }
.hero-b__lead { max-width: 46ch; font-size: clamp(1.1rem, 1rem + 0.5vw, 1.35rem); color: #DCEBFF; }
.hero-b__visual { position: relative; }
.hero-b__photo { width: min(100%, 560px); margin-left: auto; box-shadow: 0 40px 80px -30px rgba(11, 23, 54, 0.6); }
.hero-b__photo img { object-position: 66% 50%; }
.hero-b__card { position: absolute; left: 0; bottom: 6%; display: grid; gap: 10px; width: min(300px, 70%); padding: 20px 22px; border-radius: var(--r-md); background: #fff; color: var(--text); box-shadow: var(--shadow); }
.hero-b__card-title { font-family: var(--font-display); font-size: 1.35rem; font-weight: 800; text-transform: uppercase; line-height: 1; color: var(--navy); }
.hero-b__card ul { list-style: none; padding: 0; display: grid; gap: 6px; font-weight: 600; font-size: 0.95rem; }
.hero-b__card li { display: flex; gap: 10px; align-items: center; }
.hero-b__card li span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--sky); font-family: var(--font-display); font-weight: 800; font-size: 0.8rem; color: var(--navy); flex: none; }
.hero-b__card li:first-child span, .hero-b__card li:last-child span { background: var(--sun); }

/* Sticker circulaire qui tourne */
.sticker { position: absolute; top: -4%; right: -2%; width: clamp(120px, 13vw, 168px); aspect-ratio: 1; }
.sticker svg { width: 100%; height: 100%; animation: spin 22s linear infinite; }
.sticker text { font: 800 11.5px var(--font-display); letter-spacing: 2.6px; fill: var(--navy); text-transform: uppercase; }
.sticker::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--sun); }
.sticker img { position: absolute; inset: 30%; width: 40%; height: 40%; object-fit: contain; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .sticker svg, .marquee__track { animation: none !important; } }

@media (max-width: 960px) {
  .hero-b__inner { grid-template-columns: 1fr; }
  .hero-b__photo { width: min(88%, 460px); margin: 8px auto 0; }
  .hero-b__card { position: relative; left: auto; bottom: auto; width: 100%; margin-top: -40px; }
  .sticker { right: 2%; }
}

/* Bandeau défilant */
.marquee { overflow: hidden; margin: clamp(10px, 1.2vw, 16px) clamp(8px, 1.2vw, 16px) 0; padding: 18px 0; border-radius: 999px; background: var(--navy); }
.marquee__track { display: flex; width: max-content; gap: 28px; animation: marquee 40s linear infinite; }
.marquee__track span { display: inline-flex; align-items: center; gap: 28px; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.1rem, 0.9rem + 0.8vw, 1.6rem); text-transform: uppercase; color: var(--sky); white-space: nowrap; }
.marquee__track span::after { content: ""; width: 14px; height: 14px; border-radius: var(--drop); background: var(--sun); transform: rotate(-45deg); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* Parcours en escalier : les 5 teintes de la charte */
.stairs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; align-items: end; list-style: none; padding: 0; }
.stair { display: flex; flex-direction: column; gap: 10px; padding: 22px; border-radius: var(--r-lg); color: #fff; }
.stair__key { font-family: var(--font-display); font-size: clamp(3.2rem, 2rem + 3vw, 5.2rem); font-weight: 900; line-height: 0.8; margin-bottom: auto; }
.stair h3 { color: inherit; font-size: 1.35rem; text-transform: uppercase; font-weight: 800; }
.stair p { font-size: 0.95rem; line-height: 1.45; opacity: 0.92; }
.stair:nth-child(1) { min-height: 240px; background: var(--sky); color: var(--navy); }
.stair:nth-child(2) { min-height: 280px; background: var(--blue-3); }
.stair:nth-child(3) { min-height: 320px; background: var(--blue-2); }
.stair:nth-child(4) { min-height: 360px; background: var(--blue); }
.stair:nth-child(5) { min-height: 400px; background: var(--navy); }
.stair:nth-child(5) .stair__key { color: var(--sun); }
@media (max-width: 960px) {
  .stairs { grid-template-columns: 1fr; }
  .stair, .stair:nth-child(n) { min-height: 0; display: grid; grid-template-columns: 64px 1fr; column-gap: 16px; }
  .stair__key { grid-row: span 2; font-size: 3.2rem; }
}
.tailor { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 64px); align-items: center; margin-top: clamp(48px, 6vw, 88px); }
.tailor .photo { aspect-ratio: 5 / 4; border-radius: var(--r-xl); }
@media (max-width: 860px) { .tailor { grid-template-columns: 1fr; } }

/* Bento des expertises */
.bento { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.bento__card { display: flex; flex-direction: column; gap: 16px; padding: 14px 14px 28px; border-radius: var(--r-xl); background: #fff; }
.bento__card .photo { aspect-ratio: 16 / 11; border-radius: calc(var(--r-xl) - 14px); }
.bento__card > :not(.photo) { margin-inline: 14px; }
.bento__card h3 { font-size: clamp(2rem, 1.4rem + 1.6vw, 2.8rem); font-weight: 900; text-transform: uppercase; line-height: 0.9; }
.bento__card p { color: var(--muted); }
.bento__card .link-arrow { margin-top: auto; }
.bento__card--freiner { background: var(--blue); }
.bento__card--freiner h3, .bento__card--freiner .link-arrow { color: #fff; }
.bento__card--freiner p { color: #DCEBFF; }
.bento__card--freiner .list-line li { background: rgba(255, 255, 255, 0.12); color: #fff; }
.bento__card--freiner .list-line li::before { background-color: var(--sun); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23162B55' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E"); }
.bento__card--preserver { background: var(--navy); }
.bento__card--preserver h3, .bento__card--preserver .link-arrow { color: #fff; }
.bento__card--preserver p { color: #C9D8F2; }
.bento__card--preserver .list-line li { background: rgba(190, 225, 255, 0.1); color: #E4EEFF; }
.bento__card .list-line li { padding-block: 10px; font-size: 0.95rem; }
.bento__card .list-line li::before { top: 9px; }
@media (max-width: 960px) { .bento { grid-template-columns: 1fr; } }

/* Nuit : myopie */
.night__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.night__text { display: grid; gap: 26px; justify-items: start; }
.night__scale { display: flex; flex-wrap: wrap; gap: 10px; }
.night__scale span { padding: 8px 18px; border-radius: 999px; background: rgba(190, 225, 255, 0.12); font-family: var(--font-display); font-weight: 800; font-size: clamp(1.4rem, 1rem + 1.4vw, 2.2rem); color: var(--sky); }
.night__scale span:last-child { background: var(--sun); color: var(--navy); }
.night__visual { position: relative; }
.night__orb { width: min(100%, 520px); aspect-ratio: 1; margin-inline: auto; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 10px rgba(190, 225, 255, 0.08), 0 0 120px 10px rgba(80, 255, 200, 0.18); }
.night__orb img { width: 100%; height: 100%; object-fit: cover; }
.night__stat { position: absolute; left: 0; bottom: 4%; display: grid; gap: 6px; width: min(270px, 70%); padding: 22px; border-radius: var(--r-md); background: var(--sun); color: var(--navy); box-shadow: var(--shadow); transform: rotate(-3deg); }
.night__stat b { font-family: var(--font-display); font-size: 4rem; font-weight: 900; line-height: 0.85; }
.night__stat span { font-weight: 600; font-size: 0.95rem; line-height: 1.35; }
.night__stat small { font-size: 0.72rem; opacity: 0.75; }
.night__adult { display: grid; grid-template-columns: auto 1fr auto; gap: 28px; align-items: center; margin-top: clamp(48px, 6vw, 80px); padding: clamp(24px, 3vw, 36px); border-radius: var(--r-lg); background: rgba(190, 225, 255, 0.08); box-shadow: 0 0 0 1px rgba(190, 225, 255, 0.16) inset; }
.night__adult h3 { font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.2rem); text-transform: uppercase; font-weight: 900; }
.night__adult h3 em { font-style: normal; color: var(--sun); }
.night__moon { width: 72px; height: 72px; border-radius: 50%; box-shadow: inset -16px -6px 0 0 var(--sun); transform: rotate(-20deg); }
@media (max-width: 960px) {
  .night__grid { grid-template-columns: 1fr; }
  .night__adult { grid-template-columns: 1fr; }
  .night__stat { position: relative; margin: -60px auto 0; }
}

/* Lunettes */
.glasses { display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px; }
.glasses__a { grid-column: 1 / span 4; grid-row: span 2; aspect-ratio: auto; height: 100%; min-height: 440px; border-radius: var(--r-xl); }
.glasses__b { grid-column: 5 / span 3; grid-row: span 2; height: 100%; min-height: 440px; border-radius: var(--r-xl); }
.glasses__offer { grid-column: 8 / span 5; display: grid; gap: 16px; align-content: start; padding: clamp(24px, 3vw, 36px); border-radius: var(--r-xl); background: var(--ice); }
.glasses__offer h3 { font-size: 1.6rem; text-transform: uppercase; font-weight: 900; }
.guarantees { grid-column: 8 / span 5; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; list-style: none; padding: 0; }
.guarantees li { display: grid; gap: 6px; align-content: start; padding: 20px; border-radius: var(--r-lg); background: var(--sky); color: var(--navy); }
.guarantees b { font-family: var(--font-display); font-size: 1.5rem; font-weight: 900; text-transform: uppercase; line-height: 0.95; }
.guarantees span { font-size: 0.875rem; line-height: 1.4; }
.guarantees li:nth-child(1) { background: var(--sun); }
.guarantees li:nth-child(3) { background: var(--blue); color: #fff; }
.guarantees li:nth-child(4) { background: var(--navy); color: #DCEBFF; }
.guarantees li:nth-child(4) b { color: var(--sun); }
@media (max-width: 1000px) {
  .glasses__a, .glasses__b { grid-column: span 6; min-height: 340px; grid-row: auto; }
  .glasses__offer, .guarantees { grid-column: 1 / -1; }
}
@media (max-width: 560px) { .guarantees { grid-template-columns: 1fr; } }

/* Formules : note assurance compacte */
.insurance-mini { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; justify-content: space-between; margin-top: 16px; padding: 18px 24px; border-radius: var(--r-md); background: #fff; }
.insurance-mini p { display: flex; gap: 12px; align-items: center; font-weight: 600; color: var(--ink); }
.insurance-mini .icon { width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: var(--sun); }

/* Fondatrice */
.founder { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.founder__photo { position: relative; }
.founder__photo .photo { background: #fff; }
.founder__photo .photo img { object-position: 50% 12%; }
.founder__badge { position: absolute; right: 4%; bottom: 8%; padding: 12px 18px; border-radius: 999px; background: var(--navy); color: #fff; font-weight: 700; box-shadow: var(--shadow); }
.founder__text { display: grid; gap: 22px; justify-items: start; }
.founder__text h2 { font-size: var(--fs-mega); font-weight: 900; line-height: 0.82; }
.founder__role { font-weight: 700; color: var(--blue); font-size: 1.1rem; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; }
.chips li { padding: 9px 16px; border-radius: 999px; background: var(--ice); font-weight: 700; font-size: 0.9rem; color: var(--navy); }
.chips li b { color: var(--blue); }
@media (max-width: 900px) { .founder { grid-template-columns: 1fr; } }

/* Accès */
.visit { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 16px; }
.visit__card { display: grid; gap: 22px; align-content: start; padding: clamp(28px, 4vw, 56px); border-radius: var(--r-xl); background: var(--blue); color: #DCEBFF; }
.visit__card h2 { color: #fff; }
.visit__card h2 em { color: var(--sun); }
.visit__card .infos { background: rgba(255, 255, 255, 0.1); }
.visit__card .infos dt { color: var(--sun); }
.visit__card .infos dd { color: #fff; }
.visit .photo { border-radius: var(--r-xl); min-height: 420px; height: 100%; }
@media (max-width: 900px) { .visit { grid-template-columns: 1fr; } }

/* ================= Pages intérieures ================= */
.split { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(20px, 3vw, 40px); align-items: start; }
.split__main { grid-column: 1 / span 7; display: grid; gap: 22px; }
.split__aside { grid-column: 8 / span 5; display: grid; gap: 22px; }
.split > .split__aside:first-child { grid-column: 1 / span 5; }
.split > .split__aside:first-child + .split__main { grid-column: 6 / span 7; }
.split--center { align-items: center; }
.split--reverse .split__main { grid-column: 6 / span 7; order: 2; }
.split--reverse .split__aside { grid-column: 1 / span 5; order: 1; }
.split > .split__aside > h2, .split > .split__main > h2 { margin-top: -4px; }
.split__aside > .btn, .split__aside > .link-arrow { justify-self: start; }
@media (max-width: 900px) {
  .split__main, .split__aside, .split > .split__aside:first-child, .split > .split__aside:first-child + .split__main, .split--reverse .split__main, .split--reverse .split__aside { grid-column: 1 / -1; order: initial; }
}
.prose { display: grid; gap: 16px; max-width: 70ch; justify-items: start; }
.prose h3 { margin-top: 10px; }
.prose ul { padding-left: 1.1em; display: grid; gap: 6px; }

.cols-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cols-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (max-width: 900px) { .cols-3, .cols-2 { grid-template-columns: 1fr; } }

/* Cartes pleines */
.card-line { display: flex; flex-direction: column; gap: 12px; padding: clamp(22px, 2.5vw, 30px); border-radius: var(--r-lg); background: var(--ice); }
.section--canvas .card-line { background: #fff; }
.section--sky .card-line { background: #fff; }
.section--navy .card-line { background: rgba(190, 225, 255, 0.08); }
.card-line .photo { margin: calc(-1 * clamp(22px, 2.5vw, 30px) + 8px); margin-bottom: 6px; border-radius: calc(var(--r-lg) - 8px); }
.card-line h3 { font-size: 1.45rem; text-transform: uppercase; font-weight: 800; }
.card-line p { color: var(--muted); }
.card-line .link-arrow { margin-top: auto; }
.cols-3 > .card-line:nth-child(2) { background: var(--blue); }
.cols-3 > .card-line:nth-child(2) h3, .cols-3 > .card-line:nth-child(2) .link-arrow { color: #fff; }
.cols-3 > .card-line:nth-child(2) p { color: #DCEBFF; }
.cols-3 > .card-line:nth-child(2) .num { background: var(--sun); color: var(--navy); }

.cta-band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding: clamp(28px, 4vw, 56px); border-radius: var(--r-xl); background: var(--sun); }
.cta-band > div:first-child { display: grid; gap: 10px; max-width: 46ch; }
.cta-band h2 { font-size: clamp(1.9rem, 1.2rem + 2.4vw, 3.2rem); }
.cta-band h2 em { color: var(--blue); }
.cta-band .lead { color: var(--navy); }
.cta-band .btn--ghost { border-color: var(--navy); }

.price-inline { display: inline-block; margin-left: 8px; padding: 4px 10px; border-radius: 999px; background: var(--sun); font-family: var(--font); font-size: 0.8rem; font-weight: 700; color: var(--navy); vertical-align: middle; text-transform: none; }
.eye-diagram { padding: 24px; border-radius: var(--r-xl); background: var(--ice); color: var(--navy); }
.eye-diagram svg { width: 100%; height: auto; }
.eye-diagram__label { font: 800 16px var(--font-display); fill: var(--navy); text-transform: uppercase; }
.eye-diagram__sub { font: 600 13px var(--font); fill: var(--blue); }
.lunettes-photos { display: grid; gap: 14px; }
.perks { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.perks li { display: grid; gap: 6px; align-content: start; padding: 22px; border-radius: var(--r-lg); background: var(--sky); color: var(--navy); }
.perks b { font-family: var(--font-display); font-size: 1.45rem; font-weight: 900; text-transform: uppercase; line-height: 0.95; }
.perks span { font-size: 0.9rem; line-height: 1.45; }
.perks li:nth-child(1) { background: var(--sun); }
.perks li:nth-child(3) { background: var(--blue-3); color: #fff; }
.perks li:nth-child(4) { background: #fff; }
.perks--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) { .perks--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .perks, .perks--4 { grid-template-columns: 1fr; } }
.plans-small .card-line h3 { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }

.risk-table { width: 100%; border-collapse: separate; border-spacing: 6px; text-align: center; }
.risk-table th, .risk-table td { padding: 16px 10px; border-radius: var(--r-sm); font-weight: 600; }
.risk-table thead th { font-size: var(--fs-small); color: var(--sky); }
.risk-table tbody th { text-align: left; color: #fff; background: rgba(190, 225, 255, 0.08); }
.risk-table td { background: rgba(190, 225, 255, 0.08); font-family: var(--font-display); font-size: clamp(1.4rem, 1rem + 1.2vw, 2.2rem); font-weight: 900; color: #fff; }
.risk-table td:last-child { background: var(--sun); color: var(--navy); }
.table-scroll { overflow-x: auto; }

.progress-chart { display: grid; gap: 16px; padding: 24px; border-radius: var(--r-lg); background: #fff; }
.progress-chart__row { display: grid; grid-template-columns: 90px 1fr; gap: 14px; align-items: center; }
.progress-chart__age { font-weight: 700; color: var(--navy); }
.progress-chart__bars { display: grid; gap: 6px; }
.bar { position: relative; height: 30px; border-radius: 999px; background: var(--ice); }
.bar span { position: absolute; inset: 0 auto 0 0; width: var(--w); min-width: 52px; display: flex; align-items: center; justify-content: flex-end; padding-right: 12px; border-radius: 999px; font-size: 0.82rem; font-weight: 800; color: var(--navy); background: #C6D3E8; }
.bar--treated span { background: var(--blue); color: #fff; }
.js .progress-chart[data-reveal] .bar span { width: 52px; transition: width 1.4s var(--ease-out) 0.2s; }
.js .progress-chart[data-reveal].is-visible .bar span { width: var(--w); }
.legend { display: flex; flex-wrap: wrap; gap: 18px; font-size: var(--fs-small); font-weight: 600; color: var(--muted); }
.legend span { display: inline-flex; align-items: center; gap: 8px; }
.legend span::before { content: ""; width: 16px; height: 16px; border-radius: 50%; background: #C6D3E8; }
.legend span.is-treated::before { background: var(--blue); }

.timeline { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.timeline li { display: grid; gap: 10px; align-content: start; padding: 22px; border-radius: var(--r-lg); background: var(--ice); }
.timeline li:first-child, .timeline li:nth-child(2) { background: var(--blue); color: #DCEBFF; }
.timeline li:first-child h3, .timeline li:nth-child(2) h3 { color: #fff; }
.timeline__date { justify-self: start; padding: 5px 12px; border-radius: 999px; background: var(--sun); font-weight: 800; font-size: 0.82rem; color: var(--navy); }
.timeline h3 { font-size: 1.2rem; }
.timeline p { font-size: 0.93rem; margin-top: 4px; color: inherit; opacity: 0.9; }
@media (max-width: 640px) { .timeline { grid-template-columns: 1fr; } }

.portrait-hero { position: relative; display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 24px; align-items: center; margin: -84px clamp(8px, 1.2vw, 16px) 0; padding: calc(84px + clamp(40px, 6vw, 80px)) max(var(--gutter), calc((100% - var(--container)) / 2)) clamp(40px, 6vw, 80px); max-width: none; background: var(--sky); border-radius: 0 0 var(--r-xl) var(--r-xl); }
.portrait-hero__text { display: grid; gap: 22px; justify-items: start; }
.portrait-hero__text h1 { font-size: var(--fs-mega); font-weight: 900; line-height: 0.82; }
.portrait-hero__text .eyebrow { background: #fff; }
.portrait-hero__photo { aspect-ratio: 1; border-radius: var(--drop); background: #fff; box-shadow: var(--shadow); max-width: 520px; width: 100%; justify-self: end; }
.portrait-hero__photo img { object-position: 50% 12%; }
@media (max-width: 900px) { .portrait-hero { grid-template-columns: 1fr; } .portrait-hero__photo { justify-self: center; max-width: 380px; } }

.team-card { display: grid; grid-template-columns: 96px 1fr; gap: 20px; align-items: center; padding: 16px; border-radius: var(--r-lg); background: #fff; }
.team-card + .team-card { margin-top: 12px; }
.team-card__img { width: 96px !important; border-radius: var(--drop); }
.team-card__photo { width: 96px; aspect-ratio: 1; display: grid; place-items: center; padding: 8px; border-radius: var(--drop); background: #FFF4CC; outline: 2px dashed #D9A300; color: #6A4B00; font-size: 0.7rem; text-align: center; }
.team-card .caption { margin-top: 4px; }

.press { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.press article { display: grid; gap: 10px; padding: 24px; border-radius: var(--r-lg); background: #fff; }
.press .num { background: var(--navy); font-family: var(--font); font-size: 0.8rem; font-weight: 700; }
@media (max-width: 760px) { .press { grid-template-columns: 1fr; } }

.checklist { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.checklist li { position: relative; padding: 12px 14px 12px 46px; border-radius: var(--r-sm); background: #fff; font-weight: 500; line-height: 1.4; }
.checklist li::before { content: ""; position: absolute; left: 12px; top: 11px; width: 22px; height: 22px; border-radius: 50%; background: var(--sky) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23162B55' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 13px no-repeat; }
.section:not(.section--canvas) .checklist li { background: var(--ice); }
@media (max-width: 640px) { .checklist { grid-template-columns: 1fr; } }
.checklist[style*="columns: 1"] { grid-template-columns: 1fr; }

.infos { display: grid; gap: 0; padding: 8px 20px; border-radius: var(--r-lg); background: var(--ice); }
.infos div { display: grid; grid-template-columns: 110px 1fr; gap: 14px; padding: 14px 0; border-bottom: 2px solid rgba(255, 255, 255, 0.6); }
.infos div:last-child { border-bottom: 0; }
.infos dt { font-weight: 800; color: var(--blue); }
.infos dd { margin: 0; font-weight: 500; }
@media (max-width: 520px) { .infos div { grid-template-columns: 1fr; gap: 2px; } }
.map-card { position: relative; aspect-ratio: 4 / 3; border-radius: var(--r-xl); overflow: hidden; background: var(--ice); }
.map-card iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.banner-photo { aspect-ratio: 21 / 8; border-radius: var(--r-xl); overflow: hidden; }
.banner-photo img { width: 100%; height: 100%; object-fit: cover; }

.shop-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 32px; }
.shop-count { font-weight: 700; color: var(--muted); }
.card-line .num { color: #fff; }
.portrait-hero__photo img { object-position: 42% 22%; }

/* ================= Hero, expertises, parcours ================= */
.nowrap { white-space: nowrap; }

/* Trois piliers en images */
.piliers-e { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.pilier-e { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--r-xl); text-decoration: none; background: #fff; transition: transform 0.35s var(--ease), box-shadow 0.3s; }
.pilier-e:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.pilier-e .photo { margin: 12px 12px 0; aspect-ratio: 4 / 3; border-radius: calc(var(--r-xl) - 12px); }
.pilier-e img { transition: transform 0.8s var(--ease-out); }
.pilier-e:hover img { transform: scale(1.04); }
.pilier-e__body { display: grid; gap: 10px; padding: 22px 26px 28px; flex: 1; }
.pilier-e h3 { font-size: clamp(2rem, 1.4rem + 1.6vw, 2.8rem); font-weight: 900; text-transform: uppercase; line-height: 0.9; color: var(--navy); }
.pilier-e p { color: var(--muted); }
.pilier-e__go { display: inline-flex; align-items: center; gap: 10px; margin-top: auto; font-weight: 700; color: var(--blue); }
.pilier-e__go .icon { width: 34px; height: 34px; padding: 8px; border-radius: 50%; background: var(--sky); color: var(--navy); }
.pilier-e:hover .pilier-e__go .icon { background: var(--sun); }
.pilier-e--2 { background: var(--blue); }
.pilier-e--2 h3, .pilier-e--2 .pilier-e__go { color: #fff; }
.pilier-e--2 p { color: #DCEBFF; }
.pilier-e--3 { background: var(--navy); }
.pilier-e--3 h3, .pilier-e--3 .pilier-e__go { color: #fff; }
.pilier-e--3 p { color: #C9D8F2; }
.pilier-e--2 .pilier-e__go .icon { background: var(--sun); }
@media (max-width: 960px) { .piliers-e { grid-template-columns: 1fr; } }

/* Formules : liens Essentiel / Relax */
.plans-more--links { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.plans-more--links a { display: grid; grid-template-columns: 1fr auto; gap: 2px 16px; align-items: center; padding: 18px 24px; border-radius: var(--r-md); background: #fff; text-decoration: none; color: var(--ink); transition: background 0.2s, transform 0.3s var(--ease); }
.plans-more--links a:hover { background: var(--sun); transform: translateY(-2px); }
.plans-more--links span { grid-column: 1; font-size: 0.9rem; color: var(--muted); }
.plans-more--links a:hover span { color: var(--navy); }
.plans-more--links strong { grid-column: 1; font-family: var(--font-display); font-size: 1.2rem; font-weight: 800; text-transform: uppercase; }
.plans-more--links b { grid-column: 2; grid-row: 1 / span 2; font-family: var(--font-display); font-size: 1.5rem; font-weight: 900; color: var(--blue); white-space: nowrap; }
@media (max-width: 700px) { .plans-more--links { grid-template-columns: 1fr; } }

/* Assurance : bloc dépliable, invitant à cliquer */
.insurance-exceptions { margin-top: 16px; border-radius: var(--r-md); background: #fff; box-shadow: 0 0 0 2px var(--sun) inset; }
.insurance-exceptions summary { display: flex; gap: 14px; align-items: center; padding: 18px 24px; cursor: pointer; list-style: none; font-weight: 500; color: var(--ink); }
.insurance-exceptions summary::-webkit-details-marker { display: none; }
.insurance-exceptions summary > .icon { flex: none; width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: var(--sun); }
.insurance-exceptions summary span { flex: 1; }
.insurance-exceptions summary i { flex: none; width: 12px; height: 12px; border-right: 3px solid var(--blue); border-bottom: 3px solid var(--blue); transform: rotate(45deg) translateY(-3px); transition: transform 0.25s; }
.insurance-exceptions[open] summary i { transform: rotate(-135deg); }
.insurance-exceptions__body { display: grid; gap: 12px; padding: 0 24px 24px 74px; color: var(--muted); }
.insurance-exceptions__body ul { padding-left: 1.2em; display: grid; gap: 4px; }
.insurance-exceptions__body a { color: var(--blue); font-weight: 700; }
@media (max-width: 600px) { .insurance-exceptions__body { padding-left: 24px; } }

/* Boutique : barre de recherche */
.shop-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-bottom: 20px; }
.shop-bar .shop-count { margin: 0; }
.shop-search { position: relative; flex: 1 1 320px; max-width: 460px; }
.shop-search .icon { position: absolute; left: 20px; top: 50%; width: 22px; height: 22px; transform: translateY(-50%); color: var(--blue); pointer-events: none; }
.shop-search input { width: 100%; height: 56px; padding: 0 22px 0 54px; border: 0; border-radius: 999px; background: #fff; box-shadow: 0 0 0 2px var(--line) inset; color: var(--navy); font: inherit; font-weight: 600; transition: box-shadow 0.2s; }
.shop-search input::placeholder { color: var(--muted); font-weight: 500; }
.shop-search input:focus { outline: none; box-shadow: 0 0 0 2px var(--blue); }

/* Hero et parcours */
.btn--glass { border: 2px solid rgba(255, 255, 255, 0.55); color: #fff; background: rgba(255, 255, 255, 0.08); }
.btn--glass:hover { background: #fff; color: var(--blue); }
.e-pill { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px; background: rgba(255, 255, 255, 0.14); font-size: 0.875rem; font-weight: 600; }
.e-hero { position: relative; margin: -84px clamp(8px, 1.2vw, 16px) 0; padding: calc(84px + clamp(40px, 6vw, 80px)) 0 clamp(56px, 6vw, 96px); overflow: hidden; border-radius: 0 0 var(--r-xl) var(--r-xl); background: radial-gradient(120% 90% at 0% 100%, #2B6BE6 0, rgba(43, 107, 230, 0) 60%), var(--blue); color: #fff; isolation: isolate; }
.e-hero::after { content: ""; position: absolute; z-index: -1; right: -8vw; top: -14vw; width: 46vw; aspect-ratio: 1; border-radius: var(--drop); background: rgba(190, 225, 255, 0.12); transform: rotate(-45deg); }
.e-hero__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.e-hero__text { display: grid; gap: 24px; justify-items: start; }
.e-hero h1 { text-transform: none; color: #fff; font-family: var(--font-display); font-weight: 800; letter-spacing: -0.02em; line-height: 0.98; font-size: clamp(2.7rem, 1.4rem + 4.4vw, 5.2rem); max-width: 12ch; }
.e-hero__lead { max-width: 36ch; font-size: clamp(1.15rem, 1rem + 0.5vw, 1.35rem); line-height: 1.5; color: #DCEAFF; }
.e-hero__visual { position: relative; padding: 0 0 24px 40px; }
.e-drop { margin: 0; aspect-ratio: 1; border-radius: var(--drop); overflow: hidden; background: var(--ice); box-shadow: 0 40px 80px -36px rgba(8, 20, 50, 0.7); }
.e-drop img { width: 100%; height: 100%; object-fit: cover; object-position: 38% 50%; }
.e-hero__sticker { top: auto; right: -10px; bottom: -6px; width: 30%; }
.e-hero__card { position: absolute; left: 0; bottom: 8%; width: min(270px, 64%); padding: 18px 20px; border-radius: 20px; background: #fff; color: var(--text); box-shadow: 0 24px 50px -24px rgba(8, 20, 50, 0.6); }
.e-hero__card-title { font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; color: var(--navy); margin-bottom: 10px; }
.e-hero__card ol { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; font-weight: 600; font-size: 0.95rem; }
.e-hero__card li { display: flex; gap: 10px; align-items: center; }
.e-hero__card li span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ice); color: var(--blue); font-family: var(--font-display); font-weight: 800; font-size: 0.8rem; flex: none; }
.e-hero__card li:first-child span, .e-hero__card li:last-child span { background: var(--blue); color: #fff; }
.e-hero__card li span.dot { font-size: 1.4rem; line-height: 0; padding-bottom: 5px; }
@media (max-width: 900px) {
  .e-hero { margin-top: -72px; padding-top: calc(72px + 32px); }
  .e-hero__grid { grid-template-columns: 1fr; }
  .e-hero__visual { padding: 0; max-width: 460px; width: 100%; justify-self: end; }
  .e-hero__card { position: relative; width: 100%; margin-top: -48px; bottom: auto; }
  .e-hero__sticker { width: 26%; bottom: auto; top: 0; }
}

.e-round { margin-inline: clamp(8px, 1.2vw, 16px); border-radius: var(--r-xl); }
.section--surface { background: var(--ice); }
.e-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px 40px; margin-bottom: clamp(32px, 4vw, 52px); }
.e-head > div { display: grid; gap: 14px; max-width: 640px; }
.e-head--center { justify-content: center; text-align: center; }
.e-head--center > div { justify-items: center; }
.e-head h2 { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.015em; line-height: 1.02; text-transform: none; font-size: clamp(1.9rem, 1.4rem + 1.9vw, 2.9rem); color: var(--navy); }
.e-label { display: inline-flex; align-items: center; gap: 8px; font-size: 0.9375rem; font-weight: 700; color: var(--blue); }
.e-label::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.e-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.e-steps li { position: relative; display: grid; gap: 6px; align-content: start; padding: 10px 10px 20px; border-radius: 22px; background: #fff; }
.e-steps figure { margin: 0 0 10px; aspect-ratio: 1; overflow: hidden; border-radius: 16px; }
.e-steps img { width: 100%; height: 100%; object-fit: cover; }
.e-steps__key { position: absolute; top: 18px; left: 18px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--blue); color: #fff; font-family: var(--font-display); font-weight: 800; box-shadow: 0 0 0 4px #fff; }
.e-steps__key.dot { font-size: 1.7rem; line-height: 0; padding-bottom: 5px; }
.e-steps li:first-child .e-steps__key, .e-steps li:last-child .e-steps__key { background: var(--sun); color: var(--navy); }
.e-steps h3, .e-steps p { padding-inline: 8px; }
.e-steps h3 { font-family: var(--font-display); font-size: 1.2rem; font-weight: 700; text-transform: none; color: var(--navy); }
.e-steps p { color: var(--muted); font-size: 0.95rem; }
@media (max-width: 1000px) { .e-steps { grid-template-columns: repeat(2, 1fr); } .e-steps li:last-child { grid-column: 1 / -1; } }
@media (max-width: 520px) { .e-steps { grid-template-columns: 1fr; } .e-steps li { grid-template-columns: 96px 1fr; column-gap: 14px; align-items: center; } .e-steps figure { grid-row: span 2; margin: 0; } .e-steps h3, .e-steps p { padding: 0; } .e-steps__key { width: 30px; height: 30px; top: 14px; left: 14px; font-size: 0.8rem; } }

/* Assurance : un seul bloc, message principal puis exceptions dépliables */
.insurance-card { margin-top: 16px; border: 2px solid var(--sun); border-radius: var(--r-md); background: #fff; overflow: hidden; }
.insurance-card__main { display: flex; gap: 14px; align-items: center; padding: 18px 24px; font-weight: 600; color: var(--ink); }
.insurance-card__main .icon { flex: none; width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: var(--sun); }
.insurance-card .insurance-exceptions { margin: 0 24px; border-radius: 0; background: transparent; box-shadow: none; border-top: 1px solid var(--line); }
.insurance-card .insurance-exceptions summary { padding: 14px 0 14px 50px; }
.insurance-card .insurance-exceptions summary span { color: var(--blue); }
.insurance-card .insurance-exceptions__body { padding: 0 0 22px 50px; }
@media (max-width: 600px) { .insurance-card .insurance-exceptions summary, .insurance-card .insurance-exceptions__body { padding-left: 0; } }

/* Assistant IA : barre du hero et page de discussion */
.ask { width: min(100%, 580px); margin-top: 8px; }
.ask__form { position: relative; display: flex; align-items: center; gap: 12px; padding: 8px 8px 8px 10px; border-radius: 999px; background: #fff; box-shadow: 0 18px 40px -20px rgba(8, 20, 50, 0.7); }
.ask__form:focus-within { box-shadow: 0 0 0 3px var(--sun), 0 18px 40px -20px rgba(8, 20, 50, 0.7); }
.ask__ai { flex: none; display: grid; place-items: center; width: 48px; height: 52px; margin-left: 6px; color: var(--sun-deep); }
.ask__ai .icon { width: 40px; height: 40px; fill: currentColor; stroke: none; }
.ask__form input { flex: 1; min-width: 0; height: 52px; border: 0; background: none; font: inherit; font-weight: 600; color: var(--navy); }
.ask__form input::placeholder { color: var(--muted); font-weight: 500; }
.ask__form input:focus { outline: none; }
.ask__send { flex: none; display: grid; place-items: center; width: 52px; height: 52px; border: 0; border-radius: 50%; background: var(--blue); color: #fff; cursor: pointer; transition: transform 0.3s var(--ease), background 0.2s; }
.ask__send:hover { background: var(--blue-2); transform: translateX(2px); }
.ask__send .icon { width: 22px; height: 22px; }
.ask__suggest { position: absolute; z-index: 5; left: 0; right: 0; bottom: calc(100% + 8px); display: grid; margin: 0; padding: 8px; list-style: none; border-radius: var(--r-md); background: #fff; box-shadow: 0 24px 50px -20px rgba(8, 20, 50, 0.6); }
.ask__suggest[hidden] { display: none; }
.ask__suggest a { display: block; padding: 9px 16px; border-radius: 12px; color: var(--navy); font-weight: 600; text-decoration: none; }
.ask__suggest a:hover, .ask__suggest a:focus-visible { background: var(--ice); color: var(--blue); }
.ask__cta { display: inline-block; padding: 9px 18px; border-radius: 999px; background: var(--blue); color: #fff; font-weight: 700; font-size: 0.9rem; text-decoration: none; }
.ask__cta:hover { background: var(--blue-2); }

.chat { display: grid; gap: 20px; max-width: 760px; }
.chat__log { display: grid; gap: 14px; min-height: 120px; }
.msg { max-width: 88%; display: grid; gap: 12px; justify-items: start; padding: 16px 20px; border-radius: 22px; line-height: 1.55; }
.msg--ai { background: #fff; box-shadow: 0 0 0 2px var(--line) inset; border-bottom-left-radius: 6px; animation: ask-in 0.35s var(--ease-out); }
.msg--user { justify-self: end; background: var(--blue); color: #fff; border-bottom-right-radius: 6px; animation: ask-in 0.35s var(--ease-out); }
.msg__dots { display: inline-flex; gap: 5px; padding: 6px 0; }
.msg__dots i { width: 8px; height: 8px; border-radius: 50%; background: var(--blue-3); animation: dots 1s infinite; }
.msg__dots i:nth-child(2) { animation-delay: 0.15s; }
.msg__dots i:nth-child(3) { animation-delay: 0.3s; }
.chat__chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.chat__chips[hidden] { display: none; }
.chat__chips button { padding: 10px 16px; border: 2px solid var(--line); border-radius: 999px; background: #fff; color: var(--navy); font: inherit; font-weight: 600; cursor: pointer; transition: background 0.2s, border-color 0.2s; }
.chat__chips button:hover { background: var(--sky); border-color: var(--sky); }
.chat__form { box-shadow: 0 0 0 2px var(--line) inset; }
.chat__note { color: var(--muted); font-size: 0.8125rem; }
@keyframes ask-in { from { opacity: 0; transform: translateY(8px); } }
@keyframes dots { 0%, 60%, 100% { opacity: 0.25; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-4px); } }
@media (prefers-reduced-motion: reduce) { .msg--ai, .msg--user, .msg__dots i { animation: none; } }
@media (max-width: 600px) { .ask__ai, .ask__send { width: 44px; height: 44px; } .ask__ai .icon { width: 34px; height: 34px; } .ask__form input { height: 44px; font-size: 0.9375rem; } .msg { max-width: 100%; } }

/* Bulle de chat flottante */
.fchat { position: fixed; z-index: 60; right: clamp(14px, 2vw, 28px); bottom: clamp(14px, 2vw, 28px); display: grid; gap: 12px; justify-items: end; transition: opacity 0.3s, transform 0.3s var(--ease); }
.fchat__btn.is-hidden { opacity: 0; transform: translateY(16px); pointer-events: none; }
.fchat__btn { display: inline-flex; align-items: center; gap: 10px; min-height: 58px; padding: 0 22px 0 12px; border: 0; border-radius: 999px; background: var(--blue); color: #fff; font: inherit; font-weight: 700; cursor: pointer; box-shadow: 0 18px 40px -14px rgba(22, 43, 85, 0.7); transition: transform 0.3s var(--ease), background 0.2s; }
.fchat__btn:hover { background: var(--blue-2); transform: translateY(-2px); }
.fchat__ico { display: grid; place-items: center; width: 36px; height: 36px; color: var(--sun); }
.fchat__ico .icon { width: 30px; height: 30px; fill: currentColor; stroke: none; }
.fchat.is-open .fchat__label { display: none; }
.fchat.is-open .fchat__btn { padding: 0 12px; }
.fchat__panel { display: grid; grid-template-rows: auto 1fr auto auto auto; width: min(380px, calc(100vw - 28px)); max-height: min(560px, calc(100vh - 140px)); border-radius: var(--r-lg); background: #fff; box-shadow: 0 30px 70px -20px rgba(11, 23, 54, 0.55); overflow: hidden; animation: ask-in 0.3s var(--ease-out); }
.fchat__panel[hidden] { display: none; }
.fchat__head { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--blue); color: #fff; }
.fchat__head b { display: block; font-family: var(--font-display); font-size: 1.05rem; }
.fchat__head small { color: #DCEBFF; }
.fchat__head .fchat__ico { width: 32px; height: 32px; }
.fchat__close { margin-left: auto; width: 34px; height: 34px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.16); color: #fff; font-size: 1.4rem; line-height: 1; cursor: pointer; }
.fchat__log { display: grid; align-content: start; gap: 10px; padding: 16px; overflow-y: auto; min-height: 160px; background: var(--ice); }
.fchat__log .msg { max-width: 92%; padding: 12px 16px; font-size: 0.95rem; }
.fchat__chips { padding: 10px 16px 0; }
.fchat__chips button { padding: 7px 12px; font-size: 0.8125rem; }
.fchat__form { display: flex; gap: 8px; align-items: center; margin: 12px 16px 0; padding: 6px 6px 6px 18px; border-radius: 999px; box-shadow: 0 0 0 2px var(--line) inset; }
.fchat__form:focus-within { box-shadow: 0 0 0 2px var(--blue) inset; }
.fchat__form input { flex: 1; min-width: 0; height: 40px; border: 0; background: none; font: inherit; color: var(--navy); }
.fchat__form input:focus { outline: none; }
.fchat__form .ask__send { width: 40px; height: 40px; }
.fchat__note { padding: 8px 16px 14px; color: var(--muted); font-size: 0.75rem; text-align: center; }
@media (max-width: 760px) { .fchat__btn { display: none; } .fchat { bottom: calc(86px + env(safe-area-inset-bottom)); } .fchat__panel { max-height: calc(100vh - 220px); } }
@media (prefers-reduced-motion: reduce) { .fchat, .fchat__panel { transition: none; animation: none; } }

/* Page assistant : en-tête compact pour voir la conversation tout de suite */
.page-head--chat { padding: calc(84px + 20px) 0 28px; }
.page-head--chat .page-head__grid { align-items: center; }
.page-head--chat h1 { margin-top: 10px; font-size: clamp(1.8rem, 1.2rem + 2.2vw, 3rem); }
.page-head--chat .page-head__lead { font-size: 1rem; }
.page-head--chat + .section { padding-top: clamp(24px, 3vw, 40px); }
@media (max-width: 900px) { .page-head--chat { padding-top: calc(76px + 16px); } .page-head--chat .page-head__lead { display: none; } }

/* Mode fenêtre (ouverte depuis la barre du hero) : pop-up centré sur la page */
.fchat__backdrop { position: fixed; inset: 0; z-index: -1; background: rgba(11, 23, 54, 0.6); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); animation: fade-in 0.25s; }
.fchat__backdrop[hidden] { display: none; }
.fchat.is-modal .fchat__panel { position: fixed; top: 50%; left: 50%; right: auto; bottom: auto; transform: translate(-50%, -50%); width: min(600px, calc(100vw - 28px)); max-height: min(680px, calc(100vh - 40px)); animation: modal-in 0.3s var(--ease-out); }
.fchat.is-modal .fchat__btn { display: none; }
.fchat.is-modal .fchat__log { min-height: 260px; }
.fchat.is-modal .fchat__log .msg { font-size: 1rem; }
.has-chat-modal body { overflow: hidden; }
@keyframes fade-in { from { opacity: 0; } }
@keyframes modal-in { from { opacity: 0; transform: translate(-50%, calc(-50% + 14px)) scale(0.98); } }
@media (max-width: 760px) { .fchat.is-modal .fchat__panel { top: auto; bottom: 10px; left: 10px; transform: none; width: calc(100vw - 20px); max-height: calc(100vh - 80px); animation: ask-in 0.3s var(--ease-out); } }

/* Pages légales et liste tarifaire */
.legal { max-width: 860px; display: grid; gap: 40px; }
.legal__block { display: grid; }
.legal__text { display: grid; gap: 14px; }
.legal__text h2 { margin-top: 24px; font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); }
.legal__text ul { padding-left: 1.2em; display: grid; gap: 10px; }

/* Page équipe */
.team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 28px 20px; list-style: none; padding: 0; margin: 0; }
.team-member { display: grid; gap: 4px; align-content: start; }
.team-member__photo { aspect-ratio: 4 / 5; margin-bottom: 14px; border-radius: var(--r-lg); background: var(--ice); }
.team-member__photo img { transition: transform 0.8s var(--ease-out); }
.team-member:hover .team-member__photo img { transform: scale(1.04); }
.team-member__name { font-size: clamp(1.3rem, 1.1rem + 0.6vw, 1.7rem); font-weight: 800; text-transform: uppercase; line-height: 1; }
.team-member__role { color: var(--muted); }
.prose .figure-key { margin-block: 16px; }
.fchat__trap { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.msg__links { display: flex; flex-wrap: wrap; gap: 8px; }
.fchat__note a { color: inherit; }
.fchat__reset { margin-left: auto; padding: 6px 12px; border: 0; border-radius: 999px; background: rgba(255, 255, 255, 0.16); color: #fff; font: inherit; font-size: 0.75rem; font-weight: 600; cursor: pointer; }
.fchat__reset:hover { background: rgba(255, 255, 255, 0.3); }
.fchat__reset[hidden] { display: none; }
.fchat__reset:not([hidden]) + .fchat__close { margin-left: 8px; }
.fchat__reset { white-space: nowrap; }
.fchat__head small { white-space: nowrap; }

/* Pages d'erreur */
.error-page { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; align-content: center; gap: 18px; min-height: 100vh; padding: 40px var(--gutter); text-align: center; }
.error-page > * { max-width: min(100%, 720px); }
.error-page h1 { overflow-wrap: anywhere; }
.error-page .btn-row { display: flex; flex-wrap: wrap; gap: 10px; }
.error-page__brand img { width: 180px; height: auto; }
.error-page__code { font-family: var(--font-display); font-size: clamp(4rem, 3rem + 6vw, 8rem); font-weight: 900; line-height: 0.9; color: var(--sun); }
.error-page h1 { font-size: clamp(1.8rem, 1.3rem + 2vw, 3rem); }
.error-page__text { max-width: 46ch; color: var(--muted); }
.error-page .btn-row { justify-content: center; }
