/* ==========================================================================
   [r]inascient — finitions esthétiques (aucun texte modifié)
   Chargé après site.css / pages.css
   ========================================================================== */

:root {
  --orange-text: #b04800;      /* orange des petits textes sur fond clair (contraste ≥ 4,5:1) */
  --orange-on-dark: #e8691a;   /* orange des petits textes sur fond sombre */
  --text-soft: #4b4b4b;
  --paper: #fffdfa;
}

/* ---------- 1 · Lisibilité ---------- */
.eyebrow, .step-no, .tag, .mono-line, .mono-caps, .dash-list span, .faq-grid .n,
.questions-list h3, .price .early { color: var(--orange-text) !important; }
.sec .eyebrow { color: var(--orange-text); }
.or { color: var(--orange-text); }
.btn-ghost span, .btn-line span, .choice i { color: var(--orange-on-dark); }
.btn-line span { color: var(--orange-text); }
.hero .eyebrow, .closing .eyebrow, .offer .price .early, .offer .or, .offer-note .or, .offers-sub .or, .hero .or, .closing .or { color: var(--orange-on-dark) !important; }
.offer-note a { color: var(--orange-on-dark); }
.sec p { color: var(--text-soft); }
.sec p b, .sec p .ink, .sec p.strong { color: var(--ink); }
.nav-main a, .nav-login { color: rgba(255,255,255,.92); }

/* ---------- 2 · Finesse éditoriale ---------- */
.sec-white { background-color: var(--paper); }
.sec-cream, .contact {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .18 0 0 0 0 .14 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
h1, h2 { text-wrap: pretty; }
h3 { text-wrap: balance; }
.sec p, .lead { text-wrap: pretty; }

/* ---------- 3 · Détails premium ---------- */
.btn { transition: background-color .3s, color .3s, border-color .3s, transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px -12px rgba(204,85,0,.7); }
.btn:active { transform: translateY(0); box-shadow: none; }
.btn-line:hover, .btn-ghost:hover { box-shadow: 0 10px 22px -12px rgba(204,85,0,.55); }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; box-shadow: 0 0 0 6px rgba(204,85,0,.18); border-radius: 2px; }
.site-header :focus-visible, .closing :focus-visible, .hero :focus-visible, .site-footer :focus-visible { outline-color: #ffb27a; box-shadow: 0 0 0 6px rgba(255,178,122,.2); }

.offer-featured { background: linear-gradient(160deg, rgba(14,52,52,.97), rgba(9,36,36,.97)); box-shadow: 0 0 0 1px rgba(204,85,0,.35), 0 24px 60px -28px rgba(204,85,0,.55); }
.offer { transition: transform .5s cubic-bezier(.22,1,.36,1); }
.offer:hover { transform: translateY(-4px); }

.pole img { transition: transform .8s cubic-bezier(.22,1,.36,1); }
.pole:hover img { transform: scale(1.035); }
.poles-grid::before { transform-origin: top; }
.poles-grid::after { transform-origin: left; }

.site-footer { border-top: 1px solid rgba(204,85,0,.55); position: relative; }
.site-footer::before { content: ''; position: absolute; left: var(--pad); top: -1px; width: clamp(60px, 8vw, 140px); height: 3px; background: var(--orange); }
.closing + .site-footer, main + .site-footer { border-top-color: transparent; }

/* ---------- 4 · Mouvement sobre ---------- */
@media (prefers-reduced-motion: no-preference) {
  .js [data-reveal] { opacity: 0; transform: translateY(16px); transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); transition-delay: calc(var(--i, 0) * 40ms); }
  .js [data-reveal].is-in { opacity: 1; transform: none; }
  .js .poles-grid::before { transform: scaleY(0); transition: transform 1.3s cubic-bezier(.22,1,.36,1) .2s; }
  .js .poles-grid::after { transform: scaleX(0); transition: transform 1.3s cubic-bezier(.22,1,.36,1) .35s; }
  .js .poles-grid.is-in::before { transform: none; }
  .js .poles-grid.is-in::after { transform: none; }
  .js .bar { transform-origin: left; }
  .js .bar[data-reveal] { transform: scaleX(0); opacity: 1; }
  .js .bar[data-reveal].is-in { transform: none; }
}

/* ---------- 6 · Mobile ---------- */
@media (max-width: 860px) {
  .nav-toggle { width: 52px; height: 52px; }
  .nav-main a { display: block; padding: 10px 14px; margin-left: -14px; border-left: 3px solid transparent; border-bottom: 0; }
  .nav-main a[aria-current="page"] { background: rgba(204,85,0,.16); border-left-color: var(--orange); }
  .nav-side { width: 100%; }
  .nav-side .btn { width: 100%; }
  .nav-login { padding: 10px 0; }
  .pole { padding: 14px 14px 18px; background: rgba(255,255,255,.55); border: 1px solid rgba(11,42,42,.12); border-top: 2px solid var(--orange); border-radius: 2px; }
  .poles-grid { gap: 14px; }
}
