/* Feuille des pages legacy conservées : pages légales et Qiss Private Events.
   La homepage a sa propre feuille autonome (home.css). */

/* Base */
:root {
  --brand: #B516C1;          /* variante AA (4.5:1 sur blanc) du brand webapp #D31AE0 */
  --brand-hover: #9C13A6;
  --brand-light: #FAE4FB;    /* webapp brand.light */
  --brand-border: #EB98F1;   /* webapp brand.border */
  --bg: #ffffff;
  --fg: #111827;
  --muted: #6b7280;
  --border: #f3f4f6;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html, body { margin: 0; padding: 0; }
body { font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Noto Sans, Ubuntu, Cantarell, Helvetica Neue, Arial, "Apple Color Emoji", "Segoe UI Emoji"; color: var(--fg); background: var(--bg); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--brand); color: #fff; }

/* Layout helpers */
.container { max-width: 1120px; margin-left: auto; margin-right: auto; padding-left: 16px; padding-right: 16px; }
.text-center { text-align: center; }
.muted { color: var(--muted); }
.logo { height: 38px; width: auto; }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; border-radius: 9999px; font-weight: 600; transition: all .2s ease; border: 1px solid transparent; min-height: 44px; -webkit-tap-highlight-color: transparent; }
.btn-ghost { background: rgba(17, 24, 39, 0.08); color: #111827; padding: 10px 20px; border: 1px solid rgba(17, 24, 39, 0.2); backdrop-filter: saturate(140%) blur(6px); }
.btn-ghost:hover { background: rgba(17, 24, 39, 0.14); }

/* Footer */
.footer { background: #fff; border-top: 1px solid var(--border); padding: 48px 0; }
.footer-links { display: flex; gap: 24px; justify-content: center; margin-bottom: 16px; flex-wrap: wrap; font-size: 14px; }
.copy { color: var(--muted); font-size: 14px; margin: 0; padding-top: 16px; border-top: 1px solid var(--border); }

/* Accessibility focus */
:focus-visible { outline: 3px solid rgba(239,68,68,.6); outline-offset: 2px; }

/* Reduce motion */
@media (prefers-reduced-motion: reduce) { .btn { transition: none; } }

/* Legal pages */
.legal-page { min-height: 100vh; display: flex; flex-direction: column; }
.legal-header { padding: 32px 0; text-align: center; display: flex; justify-content: center; }
.legal-content { flex: 1; padding: 48px 16px; max-width: 800px; margin: 0 auto; }
.legal-content h1 { font-size: 36px; margin: 0 0 32px; }
.legal-content h2 { font-size: 22px; margin: 32px 0 16px; color: var(--brand); }
.legal-content h3 { font-size: 18px; margin: 24px 0 12px; }
.legal-content h4 { font-size: 16px; margin: 20px 0 10px; }
.legal-content p { line-height: 1.7; color: #374151; margin: 0 0 16px; }
.legal-content ul { margin: 0 0 16px; padding-left: 24px; }
.legal-content li { line-height: 1.7; color: #374151; margin-bottom: 8px; }
@media (min-width: 640px) { .legal-content h1 { font-size: 48px; } }
.legal-footer { padding: 32px 0; text-align: center; }

/* Private events page */
.pe-page { background: #f7f7f8; color: #111113; overflow-x: hidden; }
.pe-header { position: absolute; top: 0; left: 0; right: 0; z-index: 10; }
.pe-header-row { display: flex; align-items: center; justify-content: space-between; padding-top: 20px; padding-bottom: 20px; }
.pe-nav { display: flex; align-items: center; gap: 10px; color: #fff; font-size: 14px; font-weight: 700; }
.pe-nav-link { display: none; color: rgba(255,255,255,.78); padding: 10px 14px; border-radius: 999px; }
.pe-nav-link:hover { color: #fff; background: rgba(255,255,255,.1); }
@media (min-width: 640px) { .pe-nav-link { display: inline-flex; } }
.pe-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; border-radius: 999px; padding: 12px 22px; font-weight: 850; border: 1px solid transparent; transition: transform .2s ease, background .2s ease, border-color .2s ease; }
.pe-btn:hover { transform: translateY(-1px); }
.pe-btn-light { background: #fff; color: #111113; box-shadow: 0 18px 40px rgba(0,0,0,.2); }
.pe-btn-light:hover { background: #fff1fe; }
.pe-btn-ghost { color: #fff; background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.24); backdrop-filter: blur(10px); }
.pe-btn-ghost:hover { background: rgba(255,255,255,.16); }
.pe-hero { position: relative; isolation: isolate; min-height: 88svh; overflow: hidden; background: #09090b; color: #fff; }
.pe-hero-bg { position: absolute; inset: 0; z-index: -2; background-image: url('/banner.webp'); background-size: cover; background-position: center; }
.pe-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(circle at 74% 20%, rgba(211,26,224,.42), transparent 34%), linear-gradient(110deg, rgba(9,9,11,.96), rgba(9,9,11,.76) 50%, rgba(24,24,27,.36)); }
.pe-hero-grid { min-height: 88svh; display: grid; grid-template-columns: 1fr; gap: 40px; align-items: center; padding-top: 112px; padding-bottom: 64px; }
@media (min-width: 980px) { .pe-hero-grid { grid-template-columns: 1.05fr .95fr; padding-top: 128px; } }
.pe-hero-copy { max-width: 760px; }
.pe-eyebrow, .pe-kicker { margin: 0; color: #f5d0fe; font-size: 13px; font-weight: 900; text-transform: uppercase; letter-spacing: .18em; }
.pe-hero h1 { margin: 22px 0 0; font-size: clamp(36px, 5.4vw, 64px); line-height: 1.03; letter-spacing: 0; font-weight: 950; max-width: 860px; }
.pe-lead { margin: 24px 0 0; max-width: 720px; color: rgba(255,255,255,.78); font-size: clamp(18px, 2vw, 22px); line-height: 1.55; }
.pe-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.pe-dashboard { width: 100%; max-width: 520px; margin: 0 auto; border: 1px solid rgba(255,255,255,.2); border-radius: 32px; background: rgba(9,9,11,.78); padding: 16px; box-shadow: 0 28px 70px rgba(0,0,0,.46); backdrop-filter: blur(18px); }
.pe-dashboard-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; border: 1px solid rgba(255,255,255,.1); border-radius: 24px 24px 0 0; background: #18181b; padding: 18px; }
.pe-dashboard-head span { display: block; color: #f5d0fe; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .18em; }
.pe-dashboard-head strong { display: block; margin-top: 6px; font-size: 22px; }
.pe-dashboard-head em { font-style: normal; border-radius: 999px; background: rgba(52,211,153,.16); color: #a7f3d0; padding: 7px 12px; font-size: 12px; font-weight: 900; }
.pe-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 8px 0; }
.pe-kpis div, .pe-mini-grid div { border: 1px solid rgba(255,255,255,.1); border-radius: 18px; background: rgba(255,255,255,.06); padding: 14px; }
.pe-kpis strong { display: block; font-size: 28px; }
.pe-kpis span, .pe-kpis small, .pe-alert span, .pe-mini-grid span { display: block; color: rgba(255,255,255,.66); font-size: 12px; line-height: 1.45; }
.pe-kpis small { margin-top: 8px; color: #fde68a; }
.pe-alert { border: 1px solid rgba(240,171,252,.28); border-radius: 22px; background: rgba(217,70,239,.12); padding: 18px; }
.pe-alert strong { display: block; margin-bottom: 6px; }
.pe-mini-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.pe-mini-grid strong { display: block; margin-bottom: 6px; }
.pe-section h2, .pe-tv h2, .pe-final h2 { margin: 8px 0 0; font-size: clamp(30px, 4vw, 56px); line-height: 1.02; letter-spacing: 0; font-weight: 950; }
.pe-section .pe-kicker, .pe-flow .pe-kicker { color: #c026d3; }
.pe-section { padding: 80px 0; }
.pe-section-title { max-width: 760px; margin: 0 auto; text-align: center; }
.pe-section-title p:last-child, .pe-flow p, .pe-tv p, .pe-final p { color: #5f6368; font-size: 18px; line-height: 1.7; }
.pe-feature-grid { display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: 48px; }
@media (min-width: 720px) { .pe-feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .pe-feature-grid { grid-template-columns: repeat(3, 1fr); } }
.pe-feature-grid article, .pe-tv-cards article { border: 1px solid #e5e7eb; border-radius: 22px; background: #fff; padding: 26px; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.pe-icon { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; height: 46px; border-radius: 16px; background: #fae4fb; color: #a21caf; padding: 0 10px; font-weight: 950; }
.pe-feature-grid h3, .pe-tv-cards h3 { margin: 20px 0 10px; font-size: 20px; }
.pe-feature-note { display: inline-flex; margin: -1px 0 12px; border-radius: 999px; background: #f7e8f8; color: #86198f; padding: 5px 9px; font-size: 10px; font-weight: 900; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase; }
.pe-feature-grid p, .pe-tv-cards p { margin: 0; color: #62666d; line-height: 1.65; }
.pe-tv { background: #09090b; color: #fff; padding: 80px 0; }
.pe-tv-grid { display: grid; gap: 44px; align-items: center; }
@media (min-width: 980px) { .pe-tv-grid { grid-template-columns: .9fr 1.1fr; } }
.pe-tv p { color: rgba(255,255,255,.7); }
.pe-tv .pe-kicker { color: #fde68a; }
.pe-pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.pe-pills span { border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: rgba(255,255,255,.1); color: rgba(255,255,255,.86); padding: 9px 14px; font-size: 14px; font-weight: 850; }
.pe-tv-cards { display: grid; gap: 16px; }
@media (min-width: 720px) { .pe-tv-cards { grid-template-columns: repeat(2, 1fr); } .pe-tv-cards article:last-child { grid-column: 1 / -1; } }
.pe-tv-cards article { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.16); color: #fff; box-shadow: none; }
.pe-tv-cards article:first-child { background: #fff; color: #111113; }
.pe-tv-cards article:first-child p { color: #62666d; }
.pe-compare { background: #fff; }
.pe-table { margin-top: 48px; border: 1px solid #e5e7eb; border-radius: 26px; overflow: hidden; background: #fff; }
.pe-table > div { display: grid; grid-template-columns: 1fr; }
@media (min-width: 800px) { .pe-table > div { grid-template-columns: 1fr 1fr; } }
.pe-table-head { background: #111113; color: #fff; font-size: 13px; text-transform: uppercase; letter-spacing: .14em; }
.pe-table strong, .pe-table span { padding: 18px 20px; line-height: 1.6; }
.pe-table span { border-top: 1px solid #e5e7eb; color: #5f6368; }
.pe-table span:nth-child(even) { color: #111113; font-weight: 750; }
@media (min-width: 800px) { .pe-table strong:first-child, .pe-table span:first-child { border-right: 1px solid #e5e7eb; } }
.pe-flow { display: grid; gap: 42px; }
@media (min-width: 980px) { .pe-flow { grid-template-columns: .9fr 1.1fr; align-items: start; } }
.pe-flow ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; counter-reset: pe-step; }
.pe-flow li { counter-increment: pe-step; display: flex; gap: 16px; align-items: center; border: 1px solid #e5e7eb; border-radius: 18px; background: #fff; padding: 18px; color: #25272b; font-weight: 850; line-height: 1.45; }
.pe-flow li::before { content: counter(pe-step); flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; background: #111113; color: #fff; font-weight: 950; }
.pe-final { position: relative; isolation: isolate; overflow: hidden; background: #09090b; color: #fff; padding: 96px 0; }
.pe-final-bg { position: absolute; inset: 0; z-index: -2; background-image: url('/banner.webp'); background-size: cover; background-position: center; opacity: .36; }
.pe-final::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(9,9,11,.98), rgba(9,9,11,.86), rgba(9,9,11,.58)); }
.pe-final .container { max-width: 900px; }
.pe-final p { max-width: 720px; color: rgba(255,255,255,.76); }
@media (max-width: 520px) {
  .pe-hero { min-height: auto; }
  .pe-hero-grid { min-height: auto; padding-top: 104px; }
  .pe-actions .pe-btn { width: 100%; }
  .pe-kpis, .pe-mini-grid { grid-template-columns: 1fr; }
}
