/* Site public et parcours de réservation. */

.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; font-family: var(--font-serif); font-weight: 600; font-size: 1.12rem; }
.brand:hover { color: var(--ink); }
.brand--small { font-size: 1rem; }
.brand--small .logo { width: 26px; height: 26px; }

.public-header { position: sticky; top: 0; z-index: 20; background: rgb(246 241 233 / 92%); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
.public-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); min-height: 64px; }
.public-nav { display: flex; align-items: center; gap: var(--space-4); }
.public-nav > a:not(.btn) { color: var(--ink-2); text-decoration: none; font-weight: 550; }
@media (max-width: 560px) { .public-nav > a:not(.btn) { display: none; } }

.public-footer { margin-top: var(--space-7); padding: var(--space-6) 0 calc(var(--space-6) + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--sand-2); }

.locale-switcher { position: relative; }
.locale-switcher summary { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 10px; border: 1px solid var(--line); border-radius: 999px; cursor: pointer; list-style: none; font-size: 0.85rem; font-weight: 600; color: var(--ink-2); background: var(--paper); }
.locale-switcher summary::-webkit-details-marker { display: none; }
.locale-switcher ul { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; list-style: none; margin: 0; padding: 6px; min-width: 160px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); }
.locale-switcher li a { display: block; padding: 8px 10px; border-radius: 6px; color: var(--ink); text-decoration: none; }
.locale-switcher li a:hover, .locale-switcher li a[aria-current] { background: var(--sea-soft); }

.hero { position: relative; overflow: hidden; background: linear-gradient(180deg, #cfe2dc 0%, #a9c9c1 45%, #6f9d95 100%); color: var(--ink); }
.hero__inner { position: relative; z-index: 1; padding: clamp(40px, 8vw, 96px) 0 clamp(32px, 6vw, 72px); }
.hero__art { position: absolute; inset: auto 0 0 0; width: 100%; height: 55%; }

.auth-main { padding-top: 10vh; display: flex; flex-direction: column; gap: var(--space-4); }
