/* =====================================================================
   RAYOR — Couche « Style Suisse » GLOBALE (International Typographic Style)
   Alignée sur home.css : encre/papier + un seul accent rouge, grotesque
   Helvetica, filets 1px, aplats, radius 0, survol par inversion.
   Scopée sous body.page-swiss → couvre le fond, la navbar, le footer, le
   contenu légal (.rl) ET le design-system outils (.rt-*), sans toucher la
   page « info ». Bascule sombre via html.dark. Chargée APRÈS tools.css.
   ===================================================================== */
body.page-swiss{
  --ink:#0a0a0a; --ground:#ffffff; --panel:#ffffff; --accent:#8e0004;
  --line:rgba(10,10,10,.14); --rule:rgba(10,10,10,.92);
  --soft:rgba(10,10,10,.58); --read:rgba(10,10,10,.80);
  --gutter:clamp(18px,5vw,64px);
  --font:"Helvetica Neue",Helvetica,Arial,"Inter","Segoe UI",system-ui,sans-serif;
  --mono:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace;
  background:var(--ground); color:var(--ink);
}
html.dark body.page-swiss{
  --ink:#f4f4f4; --ground:#0b0b0c; --panel:#101013; --accent:#e23b3f;
  --line:rgba(255,255,255,.16); --rule:rgba(255,255,255,.92);
  --soft:rgba(255,255,255,.62); --read:rgba(255,255,255,.78);
  background:var(--ground);
}

/* ---------- NAVBAR (repris de home.css) ---------- */
body.page-swiss .navbar{ background:var(--ground);border-bottom:1px solid var(--rule);backdrop-filter:none;box-shadow:none;font-family:var(--font);padding-inline:var(--gutter); }
body.page-swiss .navbar .nav-links a,
body.page-swiss .navbar .nav-links li > a{ font-family:var(--font);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink); }
body.page-swiss .navbar .nav-links a:hover{ color:var(--accent); }
body.page-swiss .navbar .nav-cta{ background:var(--ink) !important;color:var(--ground) !important;border-radius:0 !important;padding:.62rem 1.15rem !important;font-weight:700 !important;letter-spacing:.05em;text-transform:uppercase;font-size:.78rem;border:1px solid var(--ink);box-shadow:none !important;transition:background .15s,color .15s,border-color .15s; }
body.page-swiss .navbar .nav-cta:hover{ background:var(--accent) !important;border-color:var(--accent);color:#fff !important;transform:none;filter:none; }
body.page-swiss .navbar #theme-toggle{ background:transparent !important;border:1px solid var(--rule) !important;border-radius:0 !important;width:38px !important;height:38px !important;color:var(--ink) !important;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s !important; }
body.page-swiss .navbar #theme-toggle:hover{ background:var(--ink) !important;color:var(--ground) !important;transform:none !important; }
body.page-swiss .navbar #theme-toggle svg{ width:17px;height:17px;display:block; }

/* ---------- FOOTER (repris de home.css) ---------- */
body.page-swiss .footer.site-footer{ background:var(--ground);border-top:1px solid var(--rule);color:var(--ink);font-family:var(--font);box-shadow:none; }
html.dark body.page-swiss .footer.site-footer{ background:#0b0b0c; }
body.page-swiss .footer .foot-col h4{ text-transform:uppercase;letter-spacing:.1em;font-size:.74rem;font-weight:700;color:var(--accent); }
body.page-swiss .footer .foot-col a,
body.page-swiss .footer .foot-brand p{ font-family:var(--font); }
body.page-swiss .footer .foot-col a:hover{ color:var(--accent); }
body.page-swiss .footer .foot-bottom{ border-top:1px solid var(--line); }

/* ===================== CONTENU LÉGAL (.rl) ===================== */
.rl{ color:var(--ink);font-family:var(--font);background:var(--ground); }
.rl *{ box-sizing:border-box; }
.rl-wrap{ max-width:900px;margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) var(--gutter) 5rem; }
.rl-head{ border-bottom:1px solid var(--rule);padding-bottom:2.2rem; }
.rl-kicker{ display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--ink);padding:.4rem .75rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.5rem; }
.rl h1{ font-family:var(--font);font-weight:800;letter-spacing:-.025em;line-height:1.02;font-size:clamp(2.1rem,1.4rem+3vw,3.6rem);color:var(--ink);margin:0; }
.rl-sub{ color:var(--soft);font-size:clamp(1rem,.95rem+.3vw,1.15rem);margin-top:1.1rem;max-width:62ch;line-height:1.55; }
.rl-date{ color:var(--soft);font-size:.78rem;margin-top:1rem;text-transform:uppercase;letter-spacing:.08em; }
.rl-sec{ display:grid;grid-template-columns:230px 1fr;gap:1.6rem 2.4rem;border-top:1px solid var(--line);padding:2.2rem 0; }
.rl-sec:first-of-type{ border-top:0; }
.rl-sec > h2{ font-family:var(--font);font-weight:700;font-size:1.02rem;letter-spacing:-.01em;color:var(--ink);margin:0;line-height:1.3; }
.rl-body{ color:var(--read);font-size:.98rem;line-height:1.72; }
.rl-body p + p{ margin-top:.9rem; }
.rl-body strong{ color:var(--ink);font-weight:700; }
.rl-body ul{ list-style:none;margin:.6rem 0 0;padding:0; }
.rl-body li{ position:relative;padding-left:1.1rem;margin-bottom:.55rem; }
.rl-body li::before{ content:"";position:absolute;left:0;top:.62em;width:.42rem;height:.42rem;background:var(--accent); }
.rl-body .rl-id li{ padding-left:0; }
.rl-body .rl-id li::before{ display:none; }
.rl a{ color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s; }
.rl a:hover{ border-bottom-color:var(--accent); }
.rl-table-wrap{ overflow-x:auto; }
.rl-table{ width:100%;border-collapse:collapse;font-size:.92rem; }
.rl-table th{ text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--rule);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:700;color:var(--ink); }
.rl-table td{ padding:.75rem .9rem;border-bottom:1px solid var(--line);color:var(--read);vertical-align:top; }
.rl-table td.mono{ font-family:var(--mono);color:var(--ink); }
.rl-note{ color:var(--soft);font-size:.82rem;margin-top:.9rem; }
.rl-tag{ display:inline-block;border:1px solid var(--accent);color:var(--accent);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.28rem .55rem;margin-left:.4rem;white-space:nowrap; }
.rl-cta{ border-top:1px solid var(--rule);margin-top:1rem;padding-top:2.6rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem; }
.rl-cta p{ color:var(--soft);font-size:1rem;margin:0; }
.rl-btn{ display:inline-flex;align-items:center;gap:.5rem;background:var(--ink);color:var(--ground) !important;border:1px solid var(--ink);padding:.85rem 1.5rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;transition:background .15s,color .15s,border-color .15s; }
.rl-btn:hover{ background:var(--accent);border-color:var(--accent);color:#fff !important;border-bottom-color:var(--accent); }
@media (max-width:720px){ .rl-sec{ grid-template-columns:1fr;gap:.7rem; } .rl-sec > h2{ font-size:1.05rem; } }

/* ============ DESIGN-SYSTEM OUTILS (.rt-*) EN SUISSE ============ */
/* Surcouche autoritative sur tools.css : aplats, radius 0, encre/rouge. */
body.page-swiss .rayor-tool{ color:var(--ink);font-family:var(--font); }
body.page-swiss .rt-eyebrow{ border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);letter-spacing:.12em; }
body.page-swiss .rt-eyebrow::before{ content:"";width:.5rem;height:.5rem;border-radius:0;background:var(--accent); }
body.page-swiss .rt-head h1{ font-family:var(--font);letter-spacing:-.025em; }
body.page-swiss .rt-head p{ color:var(--soft); }
body.page-swiss .rt-head p a{ color:var(--accent); }
body.page-swiss .rt-card{ background:var(--panel);border:1px solid var(--line);border-radius:0;box-shadow:none;padding:1.6rem; }
body.page-swiss .rt-muted{ color:var(--soft); }

body.page-swiss .rayor-tool label{ color:var(--soft);font-weight:600; }
body.page-swiss .rayor-tool input[type=text],
body.page-swiss .rayor-tool input[type=number],
body.page-swiss .rayor-tool input[type=email],
body.page-swiss .rayor-tool input[type=password],
body.page-swiss .rayor-tool input[type=search],
body.page-swiss .rayor-tool input[type=url],
body.page-swiss .rayor-tool input:not([type]),
body.page-swiss .rayor-tool textarea,
body.page-swiss .rayor-tool select{
  border-radius:0;border:1px solid var(--rule);background:var(--panel);color:var(--ink);
}
body.page-swiss .rayor-tool input:focus,
body.page-swiss .rayor-tool textarea:focus,
body.page-swiss .rayor-tool select:focus{ outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent); }
body.page-swiss .rayor-tool input[type=file]{ border-radius:0;border:1px dashed var(--rule);background:var(--panel);color:var(--soft); }
body.page-swiss .rayor-tool input[type=range]{ accent-color:var(--accent); }

body.page-swiss .rayor-tool button,
body.page-swiss .rt-btn{
  background:var(--ink);color:var(--ground);border:1px solid var(--ink);border-radius:0;box-shadow:none;
  text-transform:uppercase;letter-spacing:.04em;font-weight:700;
  transition:background .15s,color .15s,border-color .15s;
}
body.page-swiss .rayor-tool button:hover,
body.page-swiss .rt-btn:hover{ background:var(--accent);border-color:var(--accent);color:#fff;transform:none;filter:none; }
body.page-swiss .rt-btn-ghost{ background:transparent !important;color:var(--ink) !important;border:1px solid var(--rule) !important; }
body.page-swiss .rt-btn-ghost:hover{ background:var(--ink) !important;color:var(--ground) !important;border-color:var(--ink) !important; }

body.page-swiss .rt-result,
body.page-swiss .rayor-tool pre{ background:var(--panel);color:var(--ink);border:1px solid var(--rule);border-radius:0; }
body.page-swiss .rt-result:empty::before{ color:var(--soft); }
body.page-swiss .rt-drop{ border:2px dashed var(--rule);border-radius:0;background:var(--panel);color:var(--soft); }
body.page-swiss .rt-drop:hover,
body.page-swiss .rt-drop:focus-visible,
body.page-swiss .rt-drop.drag{ border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);transform:none; }
body.page-swiss .rt-drop strong{ color:var(--ink); }
body.page-swiss .rt-drop .hint{ color:var(--soft); }
body.page-swiss .rt-drop .file{ color:var(--accent); }
body.page-swiss .rt-toast{ background:var(--ink);color:var(--ground);border-radius:0;box-shadow:none; }
body.page-swiss .rt-progress{ border-radius:0;background:var(--line); }
body.page-swiss .rt-progress > i{ border-radius:0;background:var(--accent); }
body.page-swiss .rt-table-wrap{ border-radius:0;border:1px solid var(--line);box-shadow:none; }
body.page-swiss .rt-table{ background:var(--panel); }
body.page-swiss .rt-table th{ background:transparent;color:var(--soft);border-bottom:1px solid var(--rule); }
body.page-swiss .rt-table td{ color:var(--read);border-bottom:1px solid var(--line); }
body.page-swiss .rt-glyph{ color:var(--ink);border-radius:0; }
body.page-swiss .rt-glyph:hover{ background:color-mix(in srgb,var(--accent) 14%,transparent);transform:none; }
body.page-swiss .rt-map{ border-radius:0;border:1px solid var(--line); }
body.page-swiss .rt-rsvp-word{ background:#0b0b0c;color:#fff;border-radius:0;border:1px solid var(--rule); }

/* Défauts génériques pages bespoke : titres en grotesque */
body.page-swiss h1, body.page-swiss h2, body.page-swiss h3, body.page-swiss h4{ font-family:var(--font); letter-spacing:-.02em; color:var(--ink); }

/* ---- Newsletter + contact du footer (global) en suisse ---- */
body.page-swiss .foot-newsletter{ border-bottom:1px solid var(--line); }
body.page-swiss .fnl-text h3{ color:var(--ink); font-family:var(--font); }
body.page-swiss .fnl-text p{ color:var(--soft); }
body.page-swiss .fnl-form input[type=email],
body.page-swiss .contact-form input,
body.page-swiss .contact-form textarea{ border:1px solid var(--rule) !important; background:var(--panel) !important; color:var(--ink) !important; border-radius:0 !important; }
body.page-swiss .fnl-form input[type=email]:focus,
body.page-swiss .contact-form input:focus,
body.page-swiss .contact-form textarea:focus{ border-color:var(--accent) !important; box-shadow:none !important; }
body.page-swiss .fnl-form button,
body.page-swiss .contact-form button{ background:var(--ink) !important; color:var(--ground) !important; border:1px solid var(--ink) !important; border-radius:0 !important; text-transform:uppercase; letter-spacing:.04em; box-shadow:none !important; }
body.page-swiss .fnl-form button:hover,
body.page-swiss .contact-form button:hover{ background:var(--accent) !important; border-color:var(--accent) !important; color:#fff !important; filter:none !important; }
body.page-swiss .fnl-status.err{ color:var(--accent); }
