/*
 * theme_public.css
 * Extrait du <style> inline de app/views/layouts/mockup_public.html.erb (référence mockup).
 * Sert l'espace public (header pill-nav + footer) et, par réutilisation, le layout devise.
 * Aucune modification visuelle : tokens + composants identiques aux mockups.
 */
:root {
  --bg: #0E0B08;
  --surface: #161210;
  --surface-2: #1B1714;
  --surface-3: #221D18;
  --line: rgba(255,255,255,0.07);
  --line-2: rgba(255,255,255,0.13);
  --gold: #C9A961;
  --gold-light: #E8C875;
  --gold-deep: #8B7340;
  --gold-glow: rgba(201,169,97,0.16);
  --gold-gradient: #E8C875; /* aplat propre (plus de dégradé métallique sur les boutons) */
  --gold-gradient-hover: linear-gradient(180deg, #FFEFAE 0%, #E6BA5A 50%, #6B4F22 100%);
  --white: #FAF8F4;
  --text: rgba(250,248,244,0.74);
  --text-mute: rgba(250,248,244,0.55);
  --text-faint: rgba(250,248,244,0.28);
  --red: #E04848;
  --serif: "Fraunces", Georgia, serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --max: 1280px;
  --gutter: clamp(1rem, 3.5vw, 2.5rem);
  --r-sm: 8px; --r: 16px; --r-lg: 24px; --r-xl: 32px; --r-pill: 999px;
  --t: 0.35s cubic-bezier(.22,.7,.18,1);
  --ease: cubic-bezier(.22,.7,.18,1);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: linear-gradient(180deg, #120F0C 0%, #0E0B08 28%, #0E0B08 72%, #15110D 100%);
  background-attachment: fixed;
  color: var(--white);
  font-family: var(--sans);
  font-weight: 300;
  overflow-x: hidden;
}
body::before {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(1200px 800px at 78% -8%, rgba(201,169,97,0.12), transparent 60%),
    radial-gradient(1100px 900px at -8% 32%, rgba(201,169,97,0.09), transparent 70%);
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
main { position: relative; z-index: 1; padding-top: clamp(5.5rem, 8vw, 7rem); }
.kicker { font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.32em; text-transform: uppercase; color: var(--gold-light); display: inline-flex; align-items: center; gap: 12px; }
.kicker::before { content: ""; width: 22px; height: 1px; background: var(--gold); opacity: 0.7; }

/* ===== PILL NAV (identique au site vitrine, adapté à notre contenu) ===== */
.pill-nav { position: fixed; top: 1.5rem; left: 50%; transform: translateX(-50%); z-index: 50; display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.5rem 0.55rem 0.5rem 1.4rem; background: rgba(20,16,12,0.72); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid var(--line-2); border-radius: var(--r-pill); max-width: calc(100vw - 1.5rem); }
.pill-nav__logo { display: inline-flex; align-items: center; padding: 0.35rem 1rem 0.35rem 0; margin-right: 0.5rem; border-right: 1px solid var(--line); height: 38px; flex-shrink: 0; }
.pill-nav__logo img { height: 24px; width: auto; max-width: none; flex-shrink: 0; object-fit: contain; }
.pill-nav__lang { display: flex; align-items: center; gap: 2px; margin-left: 0.4rem; padding: 0.2rem; border: 1px solid var(--line-2); border-radius: var(--r-pill); }
.pill-nav__lang button { background: none; border: 0; cursor: pointer; font-family: var(--sans); font-size: 10px; font-weight: 500; letter-spacing: 0.08em; color: var(--text-mute); padding: 0.3rem 0.5rem; border-radius: var(--r-pill); transition: all var(--t); }
.pill-nav__lang button.is-active { background: rgba(201,169,97,0.15); color: var(--gold-light); }
.pill-nav__lang button:hover { color: var(--white); }
.pill-nav__links { list-style: none; display: flex; gap: 0.2rem; }
.pill-nav__links a { display: flex; align-items: center; gap: 0.45rem; padding: 0.7rem 1.2rem; font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--text); border-radius: var(--r-pill); transition: all var(--t); white-space: nowrap; }
.pill-nav__links a:hover { color: var(--white); }
.pill-nav__links a.is-active { color: var(--gold-light); background: rgba(201,169,97,0.14); border: 1px solid rgba(201,169,97,0.35); font-weight: 600; }
.drawer__links a.is-active { color: var(--gold-light); }
.pill-nav__links a:hover { color: var(--white); background: rgba(255,255,255,0.04); }
.pill-nav__links a.is-current { color: var(--gold-light); background: rgba(201,169,97,0.08); }
.pill-nav__live-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--red); animation: navPulse 1.4s infinite; }
@keyframes navPulse { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }
.pill-nav__cta { margin-left: 0.5rem; padding: 0.72rem 1.4rem; background: var(--gold-gradient); color: var(--bg); border-radius: var(--r-pill); font-family: var(--sans); font-size: 10px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; transition: all var(--t); white-space: nowrap; }
.pill-nav__cta:hover { transform: translateY(-1px); box-shadow: 0 14px 30px -10px rgba(201,169,97,0.55); }
.pill-nav__menu { display: none; width: 40px; height: 40px; border-radius: var(--r-pill); align-items: center; justify-content: center; background: var(--gold-gradient); color: var(--bg); cursor: pointer; border: 0; margin-left: 0.4rem; }
@media (max-width: 1100px) { .pill-nav__links, .pill-nav__lang { display: none; } .pill-nav__menu { display: inline-flex; } .pill-nav__logo { border-right: 0; margin-right: 0; padding-right: 0; } }
@media (max-width: 480px) { .pill-nav__cta { display: none; } }
.drawer__lang { display: flex; gap: 4px; margin-top: 1rem; }
.drawer__lang button { flex: 1; background: none; border: 1px solid var(--line-2); cursor: pointer; font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.1em; color: var(--text-mute); padding: 0.7rem; border-radius: var(--r-pill); }
.drawer__lang button.is-active { background: rgba(201,169,97,0.15); color: var(--gold-light); border-color: var(--gold); }

/* ===== DRAWER MOBILE ===== */
.drawer { position: fixed; top: 0; right: 0; width: min(420px, 100%); height: 100vh; background: var(--surface); border-left: 1px solid var(--line); z-index: 60; transform: translateX(100%); transition: transform var(--t); display: flex; flex-direction: column; padding: 2rem 1.75rem; overflow-y: auto; }
.drawer.is-open { transform: translateX(0); }
.drawer__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; }
.drawer__close { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: var(--r-pill); background: transparent; color: var(--white); cursor: pointer; font-size: 1rem; }
.drawer__links { list-style: none; display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 2rem; }
.drawer__links a { display: block; padding: 1rem 0; font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.28em; text-transform: uppercase; color: var(--text); border-bottom: 1px solid var(--line); }
.drawer__cta-btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; padding: 1.1rem 1.5rem; font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.28em; text-transform: uppercase; background: var(--gold-gradient); color: var(--bg); border-radius: var(--r-pill); }
/* Bouton « Installer l'application » (PWA) dans le drawer mobile. */
.drawer__install { -webkit-appearance: none; appearance: none; display: flex; align-items: center; gap: 0.6rem; width: 100%; padding: 1rem 0; margin-bottom: 0.75rem; background: none; border: 0; border-bottom: 1px solid var(--line); font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold-light); cursor: pointer; text-align: left; }

/* ===== FOOTER (copié du site vitrine — 01-homepage.html) ===== */
.footer { position: relative; margin-top: clamp(3rem, 6vw, 5rem); padding: clamp(4rem, 7vw, 6rem) var(--gutter) clamp(1.5rem, 3vw, 2.5rem); border-top: 1px solid var(--line); overflow: hidden; }
.footer::before { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0; background: radial-gradient(900px 500px at 50% 0%, rgba(201,169,97,0.05), transparent 65%), radial-gradient(700px 400px at 90% 100%, rgba(201,169,97,0.03), transparent 70%); }
.footer__inner { position: relative; z-index: 1; max-width: var(--max); margin: 0 auto; }
/* Pages sans les mots du fondateur : pas de bloc vide ni de bordure orpheline */
.footer--compact { padding-top: clamp(2rem, 3vw, 3rem); }
.footer--compact .footer__cols { padding-top: 0; border-top: none; }
.footer__signature { text-align: center; padding-bottom: clamp(4rem, 7vw, 6rem); display: flex; flex-direction: column; align-items: center; gap: 2rem; }
.footer__manifesto { font-family: var(--serif); font-weight: 300; font-size: clamp(1.85rem, 4vw, 3.2rem); line-height: 1.1; letter-spacing: -0.018em; color: var(--white); max-width: 22ch; margin: 0; font-variation-settings: "opsz" 96, "SOFT" 50, "WONK" 0; }
.footer__manifesto em { font-style: italic; color: var(--gold-light); font-weight: 300; font-variation-settings: "opsz" 96, "SOFT" 65, "WONK" 1; }
.footer__attribution { font-family: var(--sans); font-size: 10.5px; font-weight: 500; letter-spacing: 0.32em; text-transform: uppercase; color: var(--text-mute); display: inline-flex; align-items: center; gap: 12px; }
.footer__attribution::before { content: ""; width: 22px; height: 1px; background: var(--gold); opacity: 0.7; display: inline-block; }
.footer__cols { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr); gap: clamp(2rem, 4vw, 3.5rem); padding: clamp(3rem, 5vw, 4.5rem) 0 clamp(3rem, 5vw, 4rem); border-top: 1px solid var(--line); }
.footer__brand { display: flex; flex-direction: column; gap: 1.25rem; }
.footer__brand .logo { display: inline-flex; align-items: center; height: 40px; }
.footer__brand .logo img { height: 36px; width: auto; display: block; }
.footer__brand p { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 0.95rem; line-height: 1.6; color: var(--text); max-width: 30ch; margin: 0; font-variation-settings: "opsz" 24, "SOFT" 50, "WONK" 0; }
.footer__social { display: flex; gap: 0.5rem; list-style: none; padding: 0; margin: 0.25rem 0 0; }
.footer__social a { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line-2); border-radius: 50%; color: var(--text); transition: all var(--t); }
.footer__social a:hover { border-color: var(--gold); color: var(--gold-light); background: var(--gold-glow); transform: translateY(-2px); }
.footer__social svg { width: 16px; height: 16px; }
.footer__col h4 { font-family: var(--sans); font-size: 10px; font-weight: 500; letter-spacing: 0.32em; text-transform: uppercase; color: var(--gold); margin: 0 0 1.25rem; display: inline-flex; align-items: center; gap: 10px; }
.footer__col h4::before { content: ""; width: 18px; height: 1px; background: var(--gold); opacity: 0.7; }
.footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.65rem; }
.footer__col a, .footer__col li p { font-family: var(--sans); font-size: 13px; font-weight: 300; color: var(--text); margin: 0; line-height: 1.5; transition: color var(--t), transform var(--t); display: inline-block; }
.footer__col a:hover { color: var(--gold-light); transform: translateX(3px); }
.footer__col--auction { background: linear-gradient(160deg, rgba(201,169,97,0.08), var(--surface) 70%); border: 1px solid var(--gold); border-radius: var(--r-lg); padding: clamp(1.25rem, 2vw, 1.5rem); display: flex; flex-direction: column; gap: 0.85rem; align-self: flex-start; }
.footer__col--auction h4 { margin-bottom: 0; }
.footer__date { font-family: var(--serif); font-weight: 300; font-style: italic; font-size: clamp(1.6rem, 2.4vw, 2rem); line-height: 1; color: var(--white); letter-spacing: -0.01em; margin: 0; font-variation-settings: "opsz" 72, "SOFT" 60, "WONK" 1; }
.footer__date em { font-style: italic; color: var(--gold-light); }
.footer__location { font-family: var(--sans); font-size: 10px; font-weight: 500; letter-spacing: 0.28em; text-transform: uppercase; color: var(--text-mute); margin: 0; }
/* Bouton aplat gold #E8C875 comme la vitrine (notre --gold-gradient est métallique → on ne l'utilise pas ici) */
.footer__cta { margin-top: 0.5rem; display: inline-flex; align-items: center; gap: 8px; padding: 0.75rem 1.1rem; font-family: var(--sans); font-size: 10px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; background: var(--gold-light); color: var(--bg); border-radius: var(--r-pill); align-self: flex-start; white-space: nowrap; transition: all var(--t); }
.footer__cta svg, .footer__cta i { width: 13px; height: 13px; }
.footer__cta:hover { background: var(--gold-light); transform: translateY(-1px); box-shadow: 0 14px 30px -10px rgba(201,169,97,0.55); }
/* texte en noir : surcharge .footer__col a (plus spécifique) qui le passait en clair */
.footer__col--auction .footer__cta, .footer__col--auction .footer__cta:hover { color: #0E0B08; }
/* bouton sur une ligne, centré, contenu dans la carte */
.footer__col--auction .footer__cta { align-self: stretch; justify-content: center; text-align: center; white-space: nowrap; letter-spacing: 0.08em; }
.footer__bottom { border-top: 1px solid var(--line); padding-top: clamp(1.25rem, 2vw, 1.75rem); display: grid; grid-template-columns: 1fr auto 1fr; gap: 1.5rem; align-items: center; font-family: var(--sans); font-size: 10px; font-weight: 500; letter-spacing: 0.28em; text-transform: uppercase; color: var(--text-mute); }
.footer__bottom .copyright { justify-self: start; }
.footer__bottom .tagline { justify-self: center; font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 11px; letter-spacing: 0.18em; text-transform: none; color: var(--gold-light); }
.footer__bottom .legal { justify-self: end; display: flex; gap: 1.5rem; flex-wrap: wrap; }
.footer__bottom .legal a { color: var(--text-mute); transition: color var(--t); }
.footer__bottom .legal a:hover { color: var(--gold-light); }
@media (max-width: 1024px) { .footer__cols { grid-template-columns: 1fr 1fr; gap: 2.5rem; } .footer__col--auction { grid-column: 1 / -1; } }
@media (max-width: 600px) { .footer__cols { grid-template-columns: 1fr; gap: 2rem; } .footer__signature { gap: 1rem; } .footer__bottom { grid-template-columns: 1fr; text-align: center; gap: 1rem; } .footer__bottom .copyright, .footer__bottom .tagline, .footer__bottom .legal { justify-self: center; } }

/* ===== FLASH NOTICES (overlay top-right, partagé via shared/_flash_notices) ===== */
.flash-stack { position: fixed; top: 1.5rem; right: 1.5rem; z-index: 200; display: flex; flex-direction: column; gap: 0.6rem; max-width: min(380px, calc(100vw - 2rem)); pointer-events: none; }
.flash-card { pointer-events: auto; display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.9rem 1rem; border-radius: var(--r); background: rgba(22,18,16,0.94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid var(--line-2); box-shadow: 0 18px 40px -16px rgba(0,0,0,0.7); color: var(--white); font-family: var(--sans); font-size: 13px; font-weight: 400; line-height: 1.45; transform: translateX(0); opacity: 1; transition: transform var(--t), opacity var(--t); }
.flash-card.is-leaving { transform: translateX(115%); opacity: 0; }
.flash-card__icon { flex-shrink: 0; width: 8px; height: 8px; margin-top: 6px; border-radius: 50%; background: var(--gold); }
.flash-card__body { flex: 1; min-width: 0; }
.flash-card__close { flex-shrink: 0; background: none; border: 0; cursor: pointer; color: var(--text-mute); font-size: 1rem; line-height: 1; padding: 0.15rem; border-radius: var(--r-sm); transition: color var(--t); }
.flash-card__close:hover { color: var(--white); }
.flash-card--notice .flash-card__icon, .flash-card--success .flash-card__icon { background: var(--gold-light); }
.flash-card--success { border-color: rgba(201,169,97,0.4); }
.flash-card--alert .flash-card__icon, .flash-card--error .flash-card__icon { background: var(--red); }
.flash-card--alert, .flash-card--error { border-color: rgba(224,72,72,0.45); }

/* ===== AUTH (layout devise — reproduction fidèle des maquettes auth/*) ===== */
.auth-shell { position: relative; z-index: 1; min-height: 100vh; display: flex; align-items: flex-start; justify-content: center; padding: 7rem 1rem 2rem; }
.auth-wrap { width: 100%; max-width: 420px; }
.auth-wrap--wide { max-width: 500px; }

/* En-tête (logo + titre) */
.auth-head { text-align: center; margin-bottom: 2.5rem; }
.auth-head--tight { margin-bottom: 1.5rem; }
.auth-head__logo { height: 48px; margin-bottom: 0.75rem; }
.auth-head h1 { font-family: var(--serif); font-size: 1.8rem; font-weight: 400; color: var(--white); margin-bottom: 0.25rem; }
.auth-head p { font-size: 0.8rem; color: var(--text-faint); font-family: var(--sans); }

/* Carte de formulaire */
.auth-card { background: var(--surface); border: 1px solid rgba(255,255,255,0.08); border-radius: var(--r); padding: 2rem; }

/* Champs */
.auth-card input[type="text"], .auth-card input[type="email"], .auth-card input[type="password"],
.auth-card input[type="tel"], .auth-card select {
  width: 100%; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--r-sm); padding: 0.78rem 1rem; color: var(--white); font-family: var(--sans);
  font-size: 0.85rem; outline: none; transition: border-color 0.2s; display: block;
}
.auth-card select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23C9A961' viewBox='0 0 20 20'%3E%3Cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 1rem center; background-size: 16px; padding-right: 2.5rem;
}
.auth-card select option { background: var(--surface); }
.auth-card input:focus, .auth-card select:focus { border-color: rgba(201,169,97,0.5); box-shadow: 0 0 0 3px rgba(201,169,97,0.1); }
.auth-card label { display: block; font-family: var(--sans); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.08em; color: var(--text-mute); text-transform: uppercase; margin-bottom: 0.4rem; }
.auth-card input[type="radio"], .auth-card input[type="checkbox"] { width: 18px; height: 18px; flex-shrink: 0; margin: 0; padding: 0; background: rgba(255,255,255,0.04); border: 1px solid var(--line-2); display: inline-block; accent-color: var(--gold); cursor: pointer; }
.auth-card input[type="checkbox"] { border-radius: 4px; }
.auth-card input[type="radio"] { border-radius: 50%; }
.auth-card input[type="checkbox"]:focus-visible, .auth-card input[type="radio"]:focus-visible { outline: 2px solid var(--gold); outline-offset: 1px; }

.auth-field { margin-bottom: 1rem; }
.auth-field--tight { margin-bottom: 1.25rem; }
.auth-field--snug { margin-bottom: 0.5rem; }
.auth-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-bottom: 1rem; }
.auth-row--flush { margin-bottom: 0; }
@media (max-width: 480px) { .auth-row { grid-template-columns: 1fr; } }
.auth-optional { font-size: 0.58rem; color: var(--text-faint); font-weight: 400; margin-left: 0.4rem; text-transform: lowercase; letter-spacing: 0; }
.auth-hint { font-size: 0.65rem; color: var(--text-faint); margin-top: 0.25rem; }

/* Séparateurs de section */
.auth-section { font-family: var(--sans); font-size: 0.6rem; font-weight: 700; letter-spacing: 0.15em; color: var(--text-faint); text-transform: uppercase; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid rgba(255,255,255,0.06); }
.auth-section span { font-weight: 400; letter-spacing: 0; text-transform: none; }

/* Type de compte (toggle individual / company) */
.auth-type { margin-bottom: 1.25rem; }
.auth-type__label { font-family: var(--sans); font-size: 0.65rem; font-weight: 700; color: var(--text-mute); letter-spacing: 0.1em; text-transform: uppercase; display: block; margin-bottom: 0.5rem; }
.auth-type__opts { display: flex; gap: 0.5rem; }
/* spécificité (0,2,0) pour battre `.auth-card label` (0,1,1) qui forçait display:block et cassait le centrage du radio + texte */
.auth-type__opts .account-option { flex: 1; display: flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.65rem; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.1); border-radius: var(--r-sm); cursor: pointer; font-family: var(--sans); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-mute); transition: all 0.2s; margin-bottom: 0; }
.auth-type__opts .account-option--active { background: rgba(201,169,97,0.12); border-color: rgba(201,169,97,0.4); color: var(--gold); }

/* Sous-blocs particulier / entreprise */
.auth-subblock { margin-bottom: 1.25rem; padding: 1rem; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); border-radius: var(--r-sm); }
.auth-subblock__title { font-family: var(--sans); font-size: 0.6rem; color: var(--text-faint); letter-spacing: 0.08em; margin-bottom: 0.75rem; text-transform: uppercase; }

/* Encarts (RGPD, note caution) */
.auth-note { display: flex; align-items: flex-start; gap: 0.6rem; background: rgba(201,169,97,0.06); border: 1px solid rgba(201,169,97,0.18); border-radius: var(--r-sm); padding: 0.75rem; margin-bottom: 1.25rem; font-family: var(--sans); font-size: 0.72rem; color: var(--text-mute); line-height: 1.45; }
.auth-note svg { flex-shrink: 0; margin-top: 1px; }
.auth-note strong { color: var(--gold-light); }
.auth-consent { background: rgba(201,169,97,0.05); border: 1px solid rgba(201,169,97,0.1); border-radius: var(--r-sm); padding: 0.75rem; margin-bottom: 1.25rem; }
.auth-consent label { display: flex; align-items: flex-start; gap: 0.6rem; cursor: pointer; text-transform: none; letter-spacing: 0; font-family: var(--sans); font-size: 0.72rem; color: var(--text-mute); font-weight: 400; margin: 0; }
.auth-consent a, .auth-link { color: var(--gold); }

/* Bouton principal */
.auth-submit { width: 100%; background: var(--gold-light); border: 1px solid var(--gold); border-radius: var(--r-pill); color: var(--bg); font-family: var(--sans); font-weight: 500; font-size: 0.85rem; letter-spacing: 0.15em; text-transform: uppercase; padding: 1rem; cursor: pointer; transition: opacity 0.2s; display: block; text-align: center; text-decoration: none; }
.auth-submit:hover { opacity: 0.92; }

/* Liens utilitaires sous la carte */
.auth-divider { display: flex; align-items: center; gap: 1rem; margin: 1.5rem 0; }
.auth-divider::before, .auth-divider::after { content: ""; flex: 1; height: 1px; background: rgba(255,255,255,0.08); }
.auth-divider span { font-size: 0.7rem; color: var(--text-faint); font-family: var(--sans); }
.auth-foot { text-align: center; margin-top: 1.25rem; font-size: 0.8rem; color: var(--text-mute); font-family: var(--sans); }
.auth-foot a { color: var(--gold); font-weight: 600; }
.auth-forgot { text-align: right; margin-bottom: 1.5rem; }
.auth-forgot a { font-size: 0.72rem; color: rgba(201,169,97,0.7); font-family: var(--sans); }
.auth-stripe-error { color: #E0726A; font-family: var(--sans); font-size: 0.78rem; margin: 0.6rem 0 0.2rem; }
.auth-back { text-align: center; margin-top: 1.5rem; }
.auth-back a { font-size: 0.72rem; color: var(--text-faint); font-family: var(--sans); }

/* Messages d'erreur Devise */
.auth-errors { background: rgba(224,72,72,0.08); border: 1px solid rgba(224,72,72,0.35); border-radius: var(--r-sm); padding: 0.85rem 1rem; margin-bottom: 1.25rem; }
.auth-errors__title { font-family: var(--sans); font-size: 0.72rem; font-weight: 600; color: var(--red); margin-bottom: 0.35rem; }
.auth-errors ul { list-style: none; margin: 0; padding: 0; }
.auth-errors li { font-family: var(--sans); font-size: 0.72rem; color: var(--text); line-height: 1.5; }

/* Étape caution : fil d'étapes + encart sécurité */
.auth-steps { display: flex; align-items: center; justify-content: center; gap: 0.85rem; margin-bottom: 1.75rem; }
.auth-step { display: flex; align-items: center; gap: 0.5rem; font-family: var(--sans); font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-faint); }
.auth-step--active { color: var(--gold-light); }
.auth-steps__line { width: 24px; height: 1px; background: rgba(255,255,255,0.12); }
.auth-dot-done { width: 18px; height: 18px; border-radius: 50%; background: rgba(72,187,120,0.18); border: 1px solid rgba(72,187,120,0.5); color: #68d391; display: inline-flex; align-items: center; justify-content: center; }
.auth-dot-active { width: 18px; height: 18px; border-radius: 50%; background: var(--gold-light); color: var(--bg); display: inline-flex; align-items: center; justify-content: center; font-size: 0.62rem; font-weight: 700; }
.auth-dot-todo { width: 18px; height: 18px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.15); display: inline-block; }
.auth-deposit { display: flex; align-items: flex-start; gap: 0.75rem; background: rgba(201,169,97,0.06); border: 1px solid rgba(201,169,97,0.18); border-radius: 10px; padding: 1rem; margin-bottom: 1.5rem; }
.auth-deposit svg { flex-shrink: 0; }
.auth-deposit__amount { font-family: var(--sans); font-size: 0.78rem; font-weight: 600; color: var(--gold-light); margin-bottom: 0.3rem; }
.auth-deposit__text { font-family: var(--sans); font-size: 0.74rem; color: var(--text-mute); line-height: 1.5; }
.auth-secure { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1.5rem; font-family: var(--sans); font-size: 0.68rem; color: var(--text-faint); }
.auth-skip { text-align: center; margin-top: 1.25rem; }
.auth-skip a { color: var(--text-mute); font-size: 0.74rem; font-family: var(--sans); text-decoration: underline; }

/* ===== HOME (page d'accueil publique — hero éditorial) ===== */
.home-hero { position: relative; min-height: calc(100vh - 7rem); display: flex; align-items: center; padding: clamp(2rem, 6vw, 5rem) var(--gutter); overflow: hidden; }
.home-hero__media { position: absolute; inset: 0; z-index: 0; }
.home-hero__img { width: 100%; height: 100%; object-fit: cover; opacity: 0.5; }
.home-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,11,8,0.95) 0%, rgba(14,11,8,0.7) 45%, rgba(14,11,8,0.35) 100%), radial-gradient(900px 600px at 80% 10%, rgba(201,169,97,0.14), transparent 60%); }
.home-hero__inner { position: relative; z-index: 1; max-width: 640px; display: flex; flex-direction: column; gap: 1.6rem; }
.home-hero__title { font-family: var(--serif); font-weight: 300; font-size: clamp(2.4rem, 6vw, 4.4rem); line-height: 1.04; letter-spacing: -0.02em; color: var(--white); font-variation-settings: "opsz" 96, "SOFT" 50, "WONK" 0; }
.home-hero__title em { font-style: italic; color: var(--gold-light); font-variation-settings: "opsz" 96, "SOFT" 65, "WONK" 1; }
.home-hero__lede { font-family: var(--sans); font-weight: 300; font-size: clamp(1rem, 1.6vw, 1.2rem); line-height: 1.6; color: var(--text); max-width: 52ch; }
.home-hero__cta { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 0.5rem; }
.home-btn { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.95rem 1.75rem; font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; border-radius: var(--r-pill); transition: all var(--t); }
.home-btn--gold { background: var(--gold-gradient); color: var(--bg); }
.home-btn--gold:hover { transform: translateY(-1px); box-shadow: 0 14px 30px -10px rgba(201,169,97,0.55); }
.home-btn--ghost { background: rgba(255,255,255,0.04); color: var(--white); border: 1px solid var(--line-2); }
.home-btn--ghost:hover { border-color: var(--gold); color: var(--gold-light); }

/* ============================================================
 * CATALOGUE PUBLIC (R8) — repris de mockups/public/catalogue
 * ============================================================ */
.cat-hero { position: relative; padding: clamp(2rem, 4vw, 3.5rem) var(--gutter) clamp(2.5rem, 4vw, 4rem); text-align: center; overflow: hidden; min-height: clamp(360px, 48vh, 520px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: clamp(1.25rem, 2.5vw, 2rem); margin-top: calc(-1 * clamp(5.5rem, 8vw, 7rem)); padding-top: clamp(7rem, 12vw, 9rem); }
.cat-hero__bg { position: absolute; top: 0; left: 0; right: 0; bottom: clamp(0.75rem, 1.5vw, 1.25rem); z-index: 0; border-radius: 0 0 var(--r-xl) var(--r-xl); overflow: hidden; background-image: url("/assets/brand/hero-foal-42eabc32.webp"); background-size: cover; background-position: center 30%; filter: saturate(0.95) brightness(0.8); }
.cat-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,8,6,0.78) 0%, rgba(10,8,6,0.62) 45%, rgba(10,8,6,0.95) 100%); }
.cat-hero > *:not(.cat-hero__bg) { position: relative; z-index: 2; }
.cat-hero__eyebrow { font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.5em; text-transform: uppercase; color: var(--gold); display: inline-flex; align-items: center; gap: 14px; }
.cat-hero__eyebrow::before, .cat-hero__eyebrow::after { content: ""; width: 32px; height: 1px; background: var(--gold); opacity: 0.6; }
.cat-hero__title { font-family: var(--serif); font-weight: 300; font-size: clamp(2.6rem, 6vw, 5rem); line-height: 0.95; letter-spacing: -0.03em; color: var(--white); margin: 0 auto; max-width: 16ch; font-variation-settings: "opsz" 144, "SOFT" 50, "WONK" 0; }
.cat-hero__title em { font-style: italic; color: var(--gold-light); font-variation-settings: "opsz" 144, "SOFT" 75, "WONK" 1; }
.cat-hero__lead { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: clamp(1.05rem, 1.5vw, 1.25rem); line-height: 1.55; color: var(--text); max-width: 56ch; margin: 0 auto; }
.cat-hero__date { font-family: var(--serif); font-style: italic; font-size: 1.25rem; color: var(--gold-light); }
.cat-hero__live { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.9rem 1.6rem; background: var(--gold-gradient); color: var(--bg); border-radius: var(--r-pill); font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; transition: all var(--t); }
.cat-hero__live:hover { transform: translateY(-1px); box-shadow: 0 14px 30px -10px rgba(201,169,97,0.55); }
.cat-hero__live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--red); animation: navPulse 1.4s infinite; }
.cat-countdown { display: flex; gap: 0.6rem; align-items: flex-end; justify-content: center; flex-wrap: wrap; }
.cat-cd { text-align: center; background: rgba(20,16,12,0.55); border: 1px solid var(--line-2); border-radius: var(--r); padding: 0.6rem 0.9rem; min-width: 64px; backdrop-filter: blur(8px); }
.cat-cd__num { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 1.7rem; line-height: 1; color: var(--gold-light); font-variant-numeric: tabular-nums; }
.cat-cd__lbl { font-family: var(--sans); font-size: 8.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--text-mute); margin-top: 0.35rem; }
.cat-cd__sep { font-family: var(--sans); font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--text-mute); align-self: center; padding-bottom: 0.5rem; }

/* Filtres */
.filter-section { max-width: var(--max); margin: 0 auto; padding: clamp(2rem, 4vw, 3rem) var(--gutter) clamp(1.5rem, 2.5vw, 2rem); }
.filter-selects { display: flex; gap: 0.6rem; align-items: center; justify-content: center; flex-wrap: wrap; }
.filter-select { position: relative; display: inline-flex; }
.filter-select select { appearance: none; -webkit-appearance: none; background: var(--surface); border: 1px solid var(--line-2); border-radius: var(--r-pill); font-family: var(--sans); font-size: 10.5px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--text); padding: 0.7rem 2.4rem 0.7rem 1.15rem; cursor: pointer; transition: all var(--t); }
.filter-select select:hover { color: var(--white); border-color: var(--gold); }
.filter-select select:focus { outline: none; border-color: var(--gold); color: var(--gold-light); }
.filter-select.is-set select { background: rgba(201,169,97,0.14); border-color: var(--gold); color: var(--gold-light); }
.filter-select select option { background: #161210; color: var(--text); text-transform: none; letter-spacing: normal; }
.filter-select::after { content: ""; position: absolute; right: 1rem; top: 50%; width: 7px; height: 7px; border-right: 1.5px solid var(--text-mute); border-bottom: 1.5px solid var(--text-mute); transform: translateY(-65%) rotate(45deg); pointer-events: none; }
.filter-clear { font-family: var(--sans); font-size: 10px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--text-mute); padding: 0.7rem 1rem; border-radius: var(--r-pill); transition: color var(--t); }
.filter-clear:hover { color: var(--gold-light); }

/* Grille + cartes lot */
.mares-grid { max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter) clamp(4rem, 6vw, 5rem); display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.mare { position: relative; display: flex; flex-direction: column; background: var(--surface); border: 1px solid rgba(201,169,97,0.45); border-radius: var(--r-lg); overflow: hidden; transition: all var(--t); }
.mare:hover { border-color: var(--gold); transform: translateY(-4px); box-shadow: 0 24px 48px -24px rgba(0,0,0,0.85), 0 0 0 1px rgba(201,169,97,0.4); }
.mare.is-sold { opacity: 0.62; }
.mare__link { display: flex; flex-direction: column; flex: 1; text-decoration: none; }
.mare__img { aspect-ratio: 4/3; overflow: hidden; position: relative; }
.mare__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.mare:hover .mare__img img { transform: scale(1.06); }
.mare__img-empty { width: 100%; height: 100%; background: linear-gradient(180deg, var(--surface-2), var(--surface-3)); }
.mare__cats { position: absolute; top: 0.85rem; left: 0.85rem; right: 0.85rem; display: flex; gap: 0.4rem; flex-wrap: wrap; align-items: center; justify-content: space-between; z-index: 2; }
.mare__cat { padding: 0.35rem 0.7rem; background: rgba(10,10,10,0.78); backdrop-filter: blur(10px); border: 1px solid var(--line-2); border-radius: var(--r-pill); font-family: var(--sans); font-size: 9px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold-light); font-weight: 500; }
.mare__status { padding: 0.3rem 0.65rem; border-radius: var(--r-pill); font-family: var(--sans); font-size: 8.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 5px; }
.mare__status--live { background: rgba(224,72,72,0.25); color: #ff6b6b; border: 1px solid rgba(224,72,72,0.5); }
.mare__status--live::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #ff6b6b; animation: navPulse 1.4s infinite; }
.mare__status--upcoming { background: rgba(201,169,97,0.18); color: var(--gold-light); border: 1px solid rgba(201,169,97,0.4); }
.mare__status--sold { background: rgba(255,255,255,0.08); color: var(--text-mute); border: 1px solid var(--line-2); }
.mare__media { position: relative; }
.mare__body { padding: 1.1rem 1.25rem 1.25rem; display: flex; flex-direction: column; gap: 0.85rem; flex: 1; }
.mare__name { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 1.3rem; color: var(--white); line-height: 1.15; margin: 0; }
.mare__subtitle { font-family: var(--sans); font-size: 12.5px; line-height: 1.4; color: var(--gold-light); margin: 0.25rem 0 0; }
.mare__ped { display: flex; flex-direction: column; gap: 0.5rem; padding: 0.8rem 0; list-style: none; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.mare__ped-row { display: grid; grid-template-columns: 60px 1fr; gap: 10px; align-items: baseline; }
.mare__ped-lbl { font-family: var(--sans); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--text-mute); font-weight: 600; }
.mare__ped-val { font-family: var(--serif); font-style: italic; font-size: 14px; color: var(--text); line-height: 1.4; }
.mare__blurb { font-family: var(--sans); font-size: 12px; line-height: 1.5; color: var(--text-mute); margin: 0; }
.mare__meta { font-family: var(--sans); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold-light); font-weight: 500; }
.mare__stat { display: flex; align-items: baseline; gap: 10px; margin-top: auto; }
.mare__stat-num { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 1.7rem; line-height: 1; color: var(--gold); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.mare__stat-num--live { color: var(--gold-light); }
.mare__stat-lbl { font-family: var(--serif); font-style: italic; font-size: 10px; letter-spacing: 0.04em; color: var(--text-mute); line-height: 1.4; max-width: 14ch; }
.mare__fav { position: absolute; bottom: 0.85rem; right: 0.85rem; z-index: 3; }
.cat-empty { max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter) clamp(4rem, 6vw, 5rem); text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.cat-empty__title { font-family: var(--serif); font-style: italic; font-size: 1.2rem; color: var(--text); }
.cat-empty__link { font-family: var(--sans); font-size: 10px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold-light); border: 1px solid var(--gold); padding: 0.7rem 1.4rem; border-radius: var(--r-pill); transition: all var(--t); }
.cat-empty__link:hover { background: var(--gold-gradient); color: var(--bg); }
@media (max-width: 1024px) { .mares-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px) { .mares-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .mares-grid { grid-template-columns: 1fr; } }

/* ============================================================
 * FAVORI (R7) — bouton réutilisable carte + fiche
 * ============================================================ */
.fav { display: inline-flex; }
.fav form { margin: 0; }
.fav__btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; cursor: pointer; transition: all var(--t); font-family: var(--sans); font-weight: 500; }
.fav--card .fav__btn { width: 42px; height: 42px; border-radius: 50%; background: rgba(14,11,8,0.78); backdrop-filter: blur(10px); border: 1px solid var(--gold); color: var(--gold-light); padding: 0; }
.fav--card .fav__btn:hover { background: var(--gold-gradient); color: var(--bg); transform: translateY(-2px); }
.fav--card .fav__btn.is-active { background: var(--gold-gradient); color: var(--bg); }
.fav--hero .fav__btn { padding: 0.9rem 1.6rem; background: rgba(201,169,97,0.12); border: 1px solid var(--gold); color: var(--gold-light); border-radius: var(--r-pill); font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; }
.fav--hero .fav__btn:hover { background: var(--gold-gradient); color: var(--bg); transform: translateY(-1px); box-shadow: 0 14px 30px -10px rgba(201,169,97,0.5); }
.fav--hero .fav__btn.is-active { background: var(--gold-gradient); color: var(--bg); }
.fav__btn.is-active .fav__icon { fill: currentColor; }
.fav__label { white-space: nowrap; }

/* ============================================================
 * FICHE POULAIN (R8) — repris de mockups/public/lot_detail
 * ============================================================ */
.lot-hero { max-width: var(--max); margin: 0 auto; padding: clamp(1.5rem, 3vw, 2.5rem) var(--gutter) clamp(2rem, 4vw, 3rem); display: flex; flex-direction: column; align-items: center; gap: clamp(1.25rem, 2.5vw, 2rem); }
.lot-pager { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; max-width: 980px; }
.lot-pager__crumb { font-family: var(--sans); font-size: 10.5px; font-weight: 500; letter-spacing: 0.28em; text-transform: uppercase; color: var(--text-mute); text-align: center; }
.lot-pager__crumb-link { color: var(--text-mute); transition: color var(--t); }
.lot-pager__crumb-link:hover { color: var(--gold-light); }
.lot-pager__btn { display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.6rem 1.05rem; border: 1px solid var(--line-2); border-radius: var(--r-pill); color: var(--text); font-family: var(--sans); font-size: 10px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; transition: all var(--t); }
.lot-pager__btn:hover { border-color: var(--gold); color: var(--gold-light); transform: translateY(-1px); }
.lot-pager__btn--disabled { border-color: transparent; pointer-events: none; visibility: hidden; }
@media (max-width: 600px) { .lot-pager__btn .lbl { display: none; } }
.lot-hero__fav { display: flex; flex-direction: column; align-items: center; gap: 0.6rem; }
.lot-hero__fav-note { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 1rem; line-height: 1.5; color: var(--text-mute); text-align: center; max-width: 48ch; }
.lot-hero__name { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: clamp(2.5rem, 6vw, 5rem); line-height: 0.95; letter-spacing: -0.022em; text-align: center; max-width: 18ch; color: var(--gold-light); font-variation-settings: "opsz" 144, "SOFT" 70, "WONK" 1; }
.lot-hero__tagline { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: clamp(1.1rem, 1.7vw, 1.35rem); line-height: 1.45; color: var(--text); max-width: 56ch; text-align: center; }
.lot-hero__description { max-width: 60ch; text-align: left; color: var(--text); font-family: var(--sans); font-size: 0.95rem; line-height: 1.65; }
.lot-hero__description :is(h1,h2,h3) { font-family: var(--serif); color: var(--gold-light); }
.lot-hero__description a { color: var(--gold-light); text-decoration: underline; }
.lot-hero__description ul, .lot-hero__description ol { padding-left: 1.25rem; }
.lot-hero__pedigree { display: flex; gap: clamp(2rem, 4vw, 3.5rem); flex-wrap: wrap; justify-content: center; border-top: 1px solid var(--line); width: 100%; max-width: 720px; padding-top: 1.5rem; margin: 0; }
.lot-hero__ped-row { display: flex; flex-direction: column; gap: 0.5rem; align-items: center; }
.lot-hero__ped-lbl { font-family: var(--sans); font-size: 10px; font-weight: 500; letter-spacing: 0.32em; text-transform: uppercase; color: var(--text-mute); margin: 0; }
.lot-hero__ped-val { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: clamp(1rem, 1.5vw, 1.2rem); color: var(--white); margin: 0; }
.lot-keystat { display: inline-flex; flex-direction: column; align-items: center; gap: 0.3rem; padding: 1rem 2.25rem; border: 1px solid rgba(201,169,97,0.35); border-radius: var(--r-lg); background: rgba(201,169,97,0.06); }
.lot-keystat__num { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: clamp(2.6rem, 5.5vw, 3.6rem); line-height: 1; color: var(--gold-light); }
.lot-keystat__lbl { font-family: var(--sans); font-size: 10.5px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--text-mute); }

/* Slider média */
.lot-slider { width: 100%; max-width: 980px; position: relative; }
.lot-slider__stage { position: relative; width: 100%; aspect-ratio: 16/9; background: #000; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.lot-slide { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.4s var(--ease); }
.lot-slide.is-active { opacity: 1; pointer-events: auto; }
.lot-slide img, .lot-slide video { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.lot-slide .mux-player, .lot-slide__media { width: 100%; height: 100%; }
.lot-slide__cap { position: absolute; bottom: 0.85rem; left: 50%; transform: translateX(-50%); padding: 0.35rem 0.9rem; background: rgba(14,11,8,0.7); backdrop-filter: blur(8px); border: 1px solid var(--line-2); border-radius: var(--r-pill); font-family: var(--sans); font-size: 9.5px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--white); z-index: 3; }
.lot-slide__empty { font-family: var(--serif); font-style: italic; color: var(--text-mute); }
.lot-slider__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; background: rgba(14,11,8,0.7); backdrop-filter: blur(8px); border: 1px solid var(--gold); color: var(--gold-light); display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 4; transition: all var(--t); }
.lot-slider__nav:hover { background: var(--gold-gradient); color: var(--bg); }
.lot-slider__nav--prev { left: 1rem; } .lot-slider__nav--next { right: 1rem; }
.lot-slider__tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; margin-top: 0.85rem; }
.lot-slider__tab { padding: 0.4rem 1rem; border-radius: var(--r-pill); background: rgba(201,169,97,0.08); border: 1px solid var(--line-2); color: var(--text-mute); font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.08em; cursor: pointer; transition: all var(--t); }
.lot-slider__tab:hover { color: var(--gold-light); border-color: var(--gold); }
.lot-slider__tab.is-active { background: var(--gold-gradient); border-color: var(--gold); color: var(--bg); }

/* Bloc intro (description + chiffre clé) déplacé sous le pédigré — feedback 2026-06-21 */
.lot-section--intro { display: flex; flex-direction: column; align-items: center; gap: clamp(1.25rem, 2.5vw, 2rem); }
.lot-section--intro .lot-hero__description { font-size: 0.875rem; color: var(--text-mute); }

/* Encadré prix (départ avant / final après) */
.lot-pricebox { width: 100%; max-width: 720px; }
.lot-pricebox__card { background: linear-gradient(135deg, rgba(201,169,97,0.1), rgba(201,169,97,0.04)); border: 1px solid rgba(201,169,97,0.3); border-radius: var(--r-lg); padding: clamp(1.5rem, 3vw, 2.25rem); text-align: center; }
.lot-pricebox__lbl { font-family: var(--sans); font-size: 10px; font-weight: 500; letter-spacing: 0.28em; text-transform: uppercase; color: var(--text-mute); margin-bottom: 0.5rem; }
.lot-pricebox__amount { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: clamp(2.4rem, 5vw, 3.4rem); line-height: 1; color: var(--gold-light); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.lot-pricebox__amount--muted { color: var(--text-mute); }
.lot-pricebox__note { font-family: var(--sans); font-size: 0.78rem; color: var(--text-faint); margin-top: 0.85rem; }

/* Sections génériques fiche */
.lot-section { max-width: var(--max); margin: 0 auto; padding: clamp(2rem, 4vw, 3.5rem) var(--gutter); }
.lot-section__head { text-align: center; margin-bottom: clamp(2rem, 3.5vw, 3rem); display: flex; flex-direction: column; gap: 1rem; align-items: center; }
.lot-section__head .kicker { margin: 0 auto; }
.lot-section__head h2 { font-family: var(--serif); font-weight: 300; font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.05; letter-spacing: -0.022em; max-width: 22ch; }
.lot-section__head h2 em { font-style: italic; color: var(--gold-light); }

/* Pédigré : iframe + arbre */
.ped-frame { max-width: 940px; margin: 0 auto; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; background: #fff; box-shadow: 0 20px 50px -30px rgba(0,0,0,0.7); }
.ped-frame iframe { width: 100%; height: 540px; border: 0; display: block; }
.ped-intro { max-width: 62ch; margin: 0 auto clamp(1.5rem, 3vw, 2.25rem); text-align: center; font-family: var(--serif); font-style: italic; font-weight: 300; font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.6; color: var(--text); }
.ped-note { text-align: center; font-family: var(--sans); font-size: 0.72rem; color: var(--text-faint); margin-top: 1rem; }
.ped-tree { display: grid; grid-template-columns: 1.1fr 1fr; gap: 0.5rem; max-width: 720px; margin: 0 auto; }
.ped-col { display: flex; flex-direction: column; gap: 0.5rem; }
.ped-node { flex: 1; background: rgba(201,169,97,0.08); border: 1px solid rgba(201,169,97,0.25); border-radius: var(--r); padding: 0.85rem 1rem; display: flex; flex-direction: column; justify-content: center; }
.ped-node--gp { background: rgba(255,255,255,0.03); border: 1px solid var(--line); border-left: 2px solid rgba(201,169,97,0.25); border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.ped-node__lbl { font-family: var(--sans); font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--text-mute); margin-bottom: 0.25rem; }
.ped-node--gp .ped-node__lbl { color: var(--text-faint); }
.ped-node__name { font-family: var(--serif); font-style: italic; font-size: 1.05rem; color: var(--white); }
.ped-node--gp .ped-node__name { font-size: 0.85rem; font-style: normal; color: var(--text); }
.ped-node__meta { font-family: var(--sans); font-size: 0.66rem; color: var(--text-mute); margin-top: 0.2rem; }
@media (max-width: 540px) { .ped-tree { grid-template-columns: 1fr; } }

/* Vidéos protocolaires */
.protocol { max-width: 980px; margin: 0 auto; display: flex; flex-direction: column; gap: 1rem; }
.protocol__stage { position: relative; width: 100%; aspect-ratio: 16/9; background: #000; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.protocol__stage .mux-player { width: 100%; height: 100%; }
.protocol__standard { width: 100%; height: 100%; }
.protocol__player { width: 100%; height: 100%; object-fit: contain; background: #000; }
.protocol__fallback, .protocol__hint, .protocol__none { font-family: var(--serif); font-style: italic; color: var(--text-mute); text-align: center; padding: 1rem; }
.protocol__fallback { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
/* `display: flex` ci-dessus écraserait l'attribut `hidden` : on le rétablit,
   sinon l'overlay reste visible et bloque le clic sur la vidéo (play). */
.protocol__fallback[hidden] { display: none; }
.lot-vidsel { display: flex; gap: 0.4rem; flex-wrap: wrap; justify-content: center; }
.lot-vid-btn { background: rgba(255,255,255,0.04); border: 1px solid var(--line-2); color: var(--text); font-family: var(--sans); font-size: 10px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; padding: 0.55rem 1.1rem; border-radius: var(--r-pill); cursor: pointer; transition: all var(--t); }
.lot-vid-btn:hover { color: var(--white); border-color: var(--gold); }
.lot-vid-btn.is-current { background: rgba(201,169,97,0.12); border-color: var(--gold); color: var(--gold-light); }
.lot-vid-btn.is-unavailable { opacity: 0.5; }
.lot-vid-btn__na { font-size: 8px; letter-spacing: 0.1em; color: var(--text-faint); }

/* Ambassadeurs */
.amb-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(1rem, 2vw, 1.75rem); max-width: 980px; margin: 0 auto; }
.amb-card { display: flex; gap: 1.25rem; align-items: flex-start; background: var(--surface); border: 1px solid rgba(201,169,97,0.2); border-radius: var(--r-lg); padding: clamp(1.5rem, 2.5vw, 2rem); }
.amb-card__photo { flex-shrink: 0; width: 84px; height: 84px; border-radius: 50%; object-fit: cover; object-position: top center; border: 1px solid rgba(201,169,97,0.4); }
.amb-card__name { font-family: var(--serif); font-style: italic; font-size: 1.2rem; color: var(--white); margin-bottom: 0.15rem; }
.amb-card__role { font-family: var(--sans); font-size: 9.5px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold-light); margin-bottom: 0.85rem; }
.amb-card__quote { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 1rem; line-height: 1.55; color: var(--text); border-left: 2px solid var(--gold); padding-left: 1rem; margin: 0; }
@media (max-width: 820px) { .amb-grid { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .amb-card { flex-direction: column; } }
.amb-grid--single { grid-template-columns: 1fr; max-width: 640px; }

/* Rapport vétérinaire (fiche lot) */
.vet-panel { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; max-width: 640px; margin: 0 auto; background: var(--surface); border: 1px solid rgba(201,169,97,0.2); border-radius: var(--r-lg); padding: clamp(1.25rem, 2.5vw, 1.75rem); }
.vet-panel__info { display: flex; align-items: center; gap: 0.85rem; }
.vet-panel__icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex-shrink: 0; border-radius: var(--r-sm); background: rgba(201,169,97,0.1); border: 1px solid rgba(201,169,97,0.25); color: var(--gold-light); }
.vet-panel__title { font-family: var(--sans); font-size: 0.9rem; color: var(--white); }
.vet-panel__meta { font-family: var(--sans); font-size: 0.72rem; color: var(--text-mute); margin-top: 0.15rem; }
.vet-panel__dl { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.6rem 1.15rem; border: 1px solid var(--line-2); border-radius: var(--r-pill); color: var(--gold-light); font-family: var(--sans); font-size: 0.72rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; transition: all var(--t); }
.vet-panel__dl:hover { border-color: var(--gold); transform: translateY(-1px); }

/* Bandeau bas "back to live" */
.live-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; align-items: center; justify-content: center; gap: 0.6rem; background: linear-gradient(180deg, rgba(14,11,8,0.6), #0E0B08); border-top: 1px solid rgba(201,169,97,0.3); padding: 0.85rem 1rem; backdrop-filter: blur(10px); color: var(--gold-light); }
.live-bar__dot { width: 8px; height: 8px; background: var(--red); border-radius: 50%; animation: navPulse 1.4s infinite; }
.live-bar__txt { font-family: var(--sans); font-size: 0.72rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-light); }

/* ============================================================
   Espace compte acheteur (T012/T013 — profil, préférences, favoris)
   ============================================================ */
.account-wrap { max-width: 900px; margin: 0 auto; padding: 2rem var(--gutter) 4rem; }

/* En-tête profil (sans encadré photo rond — feedback v1) */
.account-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 2.5rem; padding-bottom: 2rem; border-bottom: 1px solid var(--line); }
.account-header__name { font-family: var(--serif); font-size: 1.8rem; color: var(--white); margin-bottom: 0.35rem; }
.account-header__meta { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }
.account-header__email { font-size: 0.82rem; color: var(--text-mute); }
.account-header__flag { font-size: 1rem; }

/* Encart : email à confirmer pour pouvoir enchérir (AC5.5) */
.account-alert { display: flex; align-items: flex-start; gap: 0.9rem; background: rgba(201,169,97,0.08); border: 1px solid rgba(201,169,97,0.28); border-radius: var(--r); padding: 1rem 1.15rem; margin-bottom: 2.5rem; }
.account-alert__icon { flex-shrink: 0; color: var(--gold-light); margin-top: 1px; }
.account-alert__body { flex: 1; min-width: 0; }
.account-alert__title { font-family: var(--sans); font-size: 0.9rem; font-weight: 600; color: var(--white); margin-bottom: 0.2rem; }
.account-alert__text { font-family: var(--sans); font-size: 0.8rem; color: var(--text-mute); line-height: 1.45; }
.account-alert__form { flex-shrink: 0; }
.account-alert__btn { white-space: nowrap; background: var(--gold-light); border: 1px solid var(--gold); border-radius: var(--r-pill); color: var(--bg); font-family: var(--sans); font-weight: 500; font-size: 0.72rem; letter-spacing: 0.04em; padding: 0.55rem 1.1rem; cursor: pointer; transition: opacity 0.2s; }
.account-alert__btn:hover { opacity: 0.92; }
@media (max-width: 560px) {
  .account-alert { flex-wrap: wrap; }
  .account-alert__form { width: 100%; }
  .account-alert__btn { width: 100%; }
}
.account-badge { background: rgba(201,169,97,0.15); border: 1px solid rgba(201,169,97,0.3); color: var(--gold); font-family: var(--sans); font-size: 0.6rem; font-weight: 700; letter-spacing: 0.1em; padding: 0.15rem 0.5rem; border-radius: 3px; }

/* Grille 2 colonnes (profil / préférences) */
.profile-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 1.5rem; align-items: start; }

/* Cartes de section */
.profile-section { background: var(--surface); border: 1px solid var(--line-2); border-radius: var(--r); padding: 1.5rem; margin-bottom: 1.5rem; }
.profile-section__title { font-family: var(--sans); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.12em; color: var(--text-mute); text-transform: uppercase; margin-bottom: 1.25rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--line); }

/* Champs (formulaire) */
.field-label { font-family: var(--sans); font-size: 0.65rem; font-weight: 600; letter-spacing: 0.08em; color: var(--text-mute); text-transform: uppercase; margin-bottom: 0.35rem; display: block; }
.field-label__opt { font-size: 0.6rem; color: var(--text-faint); font-weight: 400; letter-spacing: 0; }
.field-group { margin-bottom: 1rem; }
.profile-input { width: 100%; background: rgba(255,255,255,0.04); border: 1px solid var(--line-2); border-radius: var(--r-sm); padding: 0.7rem 1rem; color: var(--white); font-family: var(--sans); font-size: 0.85rem; outline: none; transition: border-color 0.2s; box-sizing: border-box; }
.profile-input:focus { border-color: rgba(201,169,97,0.5); }
.account-subblock { margin-bottom: 1rem; }
.account-form__actions { display: flex; align-items: center; gap: 1rem; margin-top: 0.5rem; }
.account-cancel { font-family: var(--sans); font-size: 0.72rem; letter-spacing: 0.08em; color: var(--text-mute); }
.account-cancel:hover { color: var(--white); }
.account-link { font-family: var(--sans); font-size: 0.75rem; letter-spacing: 0.06em; color: var(--gold-light); }
.account-link:hover { color: var(--gold); }
.auth-submit--inline { display: inline-flex; width: auto; }

/* Liste lecture seule (show) */
.profile-list { margin: 0; }
.profile-list__row { display: flex; justify-content: space-between; gap: 1rem; padding: 0.6rem 0; border-bottom: 1px solid rgba(255,255,255,0.05); }
.profile-list__row:last-child { border-bottom: none; }
.profile-list dt { font-family: var(--sans); font-size: 0.72rem; color: var(--text-faint); letter-spacing: 0.04em; }
.profile-list dd { font-family: var(--sans); font-size: 0.82rem; color: var(--white); text-align: right; margin: 0; }

/* Préférences SMS : ligne + switch */
.pref-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; cursor: pointer; }
.pref-row--static { cursor: default; }
.pref-row__label { font-size: 0.82rem; color: var(--white); font-weight: 500; margin-bottom: 0.25rem; }
.pref-row__hint { font-size: 0.72rem; color: var(--text-faint); }
.pref-state { font-family: var(--sans); font-size: 0.6rem; font-weight: 700; letter-spacing: 0.1em; padding: 0.2rem 0.5rem; border-radius: 3px; background: rgba(255,255,255,0.06); color: var(--text-mute); flex-shrink: 0; }
.pref-state.is-on { background: rgba(201,169,97,0.18); color: var(--gold-light); }
.pref-note { margin-top: 0.75rem; padding: 0.6rem; background: rgba(201,169,97,0.06); border-radius: var(--r-sm); font-size: 0.68rem; color: var(--text-mute); display: flex; align-items: center; gap: 0.4rem; }
.pref-note--warn { color: var(--gold-light); background: rgba(201,169,97,0.1); }

/* Switch (toggle doré, adossé à une checkbox) */
.switch { position: relative; flex-shrink: 0; display: inline-flex; }
.switch__input { position: absolute; opacity: 0; width: 44px; height: 24px; margin: 0; cursor: pointer; }
.switch__track { width: 44px; height: 24px; background: rgba(255,255,255,0.1); border-radius: var(--r-pill); position: relative; transition: background 0.2s; }
.switch__knob { width: 18px; height: 18px; background: rgba(255,255,255,0.4); border-radius: 50%; position: absolute; top: 3px; left: 3px; transition: all 0.2s; }
.pref-row.is-on .switch__track { background: var(--gold-gradient); }
.pref-row.is-on .switch__knob { background: #fff; left: auto; right: 3px; box-shadow: 0 1px 4px rgba(0,0,0,0.3); }
[data-controller~="toggle-switch"] { display: flex; }

/* ---- Favoris ---- */
.fav-header { margin-bottom: 2rem; }
.fav-header__title { font-family: var(--serif); font-size: 2rem; color: var(--white); margin-bottom: 0.3rem; }
.fav-header__sub { font-size: 0.82rem; color: var(--text-mute); font-family: var(--sans); }
.fav-alert-bar { background: rgba(201,169,97,0.08); border: 1px solid rgba(201,169,97,0.2); border-radius: var(--r); padding: 1.25rem; margin-bottom: 2rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.fav-alert-bar__title { font-family: var(--sans); font-size: 0.75rem; font-weight: 700; color: var(--gold-light); margin-bottom: 0.25rem; display: flex; align-items: center; gap: 0.4rem; }
.fav-alert-bar__text { font-size: 0.78rem; color: var(--text-mute); }

.fav-list { display: flex; flex-direction: column; gap: 0.75rem; }
.fav-item { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 1rem; display: flex; align-items: center; gap: 1.25rem; transition: all 0.2s; }
.fav-item--sold, .fav-item--passed, .fav-item--cancelled { opacity: 0.5; }
.fav-item__main { display: flex; align-items: center; gap: 1.25rem; flex: 1; min-width: 0; }
.fav-item__photo { width: 70px; height: 70px; background: rgba(255,255,255,0.04); border-radius: 10px; flex-shrink: 0; border: 1px solid var(--line); overflow: hidden; }
.fav-item__photo.is-live { border-color: rgba(201,169,97,0.4); }
.fav-item__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fav-item__info { flex: 1; min-width: 0; }
.fav-item__top { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.25rem; flex-wrap: wrap; }
.fav-item__num { font-family: var(--sans); font-size: 0.6rem; color: var(--text-faint); letter-spacing: 0.08em; }
.fav-item__status { font-family: var(--sans); font-size: 0.58rem; font-weight: 700; letter-spacing: 0.08em; padding: 0.15rem 0.5rem; border-radius: 3px; background: rgba(113,128,150,0.15); color: #a0aec0; }
.fav-item__status--active { background: rgba(224,72,72,0.2); color: var(--red); }
.fav-item__status--pending { background: rgba(66,153,225,0.15); color: #63b3ed; }
.fav-item__name { font-family: var(--serif); font-size: 1.1rem; color: var(--white); margin-bottom: 0.1rem; }
.fav-item__parents { font-size: 0.72rem; color: var(--text-mute); }
.fav-item__price { font-family: var(--sans); font-size: 0.85rem; font-weight: 700; color: var(--text-mute); margin-top: 0.35rem; }
.fav-item__price.is-live { color: var(--gold-light); }
.fav-item__actions { display: flex; flex-direction: column; gap: 0.5rem; flex-shrink: 0; align-items: stretch; }
.fav-item__bid { background: var(--gold-gradient); color: var(--bg); font-family: var(--sans); font-weight: 700; font-size: 0.65rem; letter-spacing: 0.08em; padding: 0.4rem 0.75rem; border-radius: 5px; text-align: center; white-space: nowrap; }
.fav-item__remove { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; background: none; border: 1px solid var(--line-2); color: var(--text-faint); font-family: var(--sans); font-size: 0.62rem; letter-spacing: 0.06em; padding: 0.35rem 0.6rem; border-radius: 5px; cursor: pointer; transition: all 0.2s; white-space: nowrap; }
.fav-item__remove:hover { border-color: var(--gold); color: var(--gold-light); }
.fav-item__remove .fav__icon { width: 14px; height: 14px; }
.fav-item__remove form { margin: 0; }

.fav-empty { text-align: center; padding: 3rem 1rem; color: var(--text-mute); }
.fav-empty p { margin-bottom: 1rem; }
.fav-foot { text-align: center; margin-top: 2rem; padding: 1.5rem; border-top: 1px solid var(--line); }

@media (max-width: 768px) {
  .profile-grid { grid-template-columns: 1fr; }
  .fav-item { flex-direction: column; align-items: stretch; }
  .fav-item__actions { flex-direction: row; }
}

/* ===== Section "The rest of the selection" (autres lots) — fiche poulain ===== */
.lot-section--related { border-top: 1px solid var(--line); }
.related__strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(0.85rem, 1.5vw, 1.5rem); }
.rel-card { display: flex; flex-direction: column; background: var(--surface); border: 1px solid rgba(201,169,97,0.45); border-radius: var(--r-lg); overflow: hidden; transition: all var(--t); }
.rel-card:hover { border-color: var(--gold); transform: translateY(-4px); box-shadow: 0 20px 40px -20px rgba(0,0,0,0.7); }
.rel-card__img { aspect-ratio: 4/3; overflow: hidden; position: relative; }
.rel-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.rel-card:hover .rel-card__img img { transform: scale(1.06); }
.rel-card__img-empty { width: 100%; height: 100%; background: var(--surface-2); }
.rel-card__cat { position: absolute; top: 0.85rem; left: 0.85rem; padding: 0.3rem 0.7rem; background: rgba(10,10,10,0.78); border: 1px solid var(--line-2); border-radius: var(--r-pill); font-family: var(--sans); font-size: 9px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold-light); }
.rel-card__body { padding: 1.1rem 1.25rem 1.25rem; display: flex; flex-direction: column; gap: 0.6rem; flex: 1; min-width: 0; }
.rel-card__name { font-family: var(--serif); font-style: italic; font-size: 1.2rem; color: var(--white); }
.rel-card__ped { font-family: var(--sans); font-size: 0.7rem; color: var(--text-mute); }
.rel-card__bid { margin-top: auto; font-family: var(--serif); font-style: italic; font-size: 1.3rem; color: var(--gold); }
.related__more { text-align: center; margin-top: clamp(2rem, 3vw, 2.5rem); }
.btn-ghost-pill { display: inline-flex; align-items: center; gap: 10px; padding: 0.85rem 1.5rem; font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold-light); border: 1px solid var(--line-2); border-radius: var(--r-pill); transition: all var(--t); }
.btn-ghost-pill:hover { border-color: var(--gold); background: rgba(201,169,97,0.08); }
@media (max-width: 1024px) { .related__strip { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .related__strip { grid-template-columns: 1fr; } }

/* QA buyer responsive: long submit labels (e.g. "Confirm and access the auction")
   were clipped on narrow viewports because of uppercase + wide letter-spacing on a
   non-wrapping <input>. Tighten typography and allow wrapping below 480px. */
@media (max-width: 480px) {
  .auth-submit {
    white-space: normal;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}

/* ===== LEGAL PAGES (terms / privacy — contenu rich text Action Text) ===== */
.legal-page { position: relative; z-index: 1; padding: 7rem 1rem 4rem; }
.legal-page__inner { max-width: 760px; margin: 0 auto; }
.legal-page__title { font-family: var(--serif); font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 400; color: var(--white); margin-bottom: 2rem; }
.legal-page__empty { font-family: var(--sans); font-size: 0.9rem; color: var(--text-faint); }
.legal-page__body { font-family: var(--sans); font-size: 0.95rem; line-height: 1.7; color: var(--text); }
.legal-page__body .trix-content > * + * { margin-top: 1rem; }
.legal-page__body h1, .legal-page__body h2, .legal-page__body h3 { font-family: var(--serif); color: var(--white); font-weight: 400; margin-top: 2rem; margin-bottom: 0.75rem; line-height: 1.25; }
.legal-page__body h1 { font-size: 1.6rem; }
.legal-page__body h2 { font-size: 1.3rem; }
.legal-page__body h3 { font-size: 1.1rem; }
.legal-page__body a { color: var(--gold); text-decoration: underline; }
.legal-page__body ul, .legal-page__body ol { padding-left: 1.5rem; }
.legal-page__body li { margin-left: 1em; margin-bottom: 0.35rem; }
.legal-page__body strong { color: var(--white); }
.legal-page__body blockquote { border-left: 3px solid var(--gold-deep); padding-left: 1rem; color: var(--text-mute); }
