/* ======================================================================
   RODYAM — Noir premium affiné · lisibilité · responsive · performance
   Base conservée : identité noire, violet signature, accents rhodium.
   Cette feuille légère se charge en dernier et évite toute refonte lourde.
   ====================================================================== */
:root{
  --rdy-black-0:#020205;
  --rdy-black-1:#05050a;
  --rdy-black-2:#090910;
  --rdy-black-3:#0e0d17;
  --rdy-panel:#0b0a12;
  --rdy-panel-raised:#12101b;
  --rdy-panel-soft:#171321;
  --rdy-rhodium:#d9dce4;
  --rdy-rhodium-muted:#8f94a0;
  --rdy-violet:#a855f7;
  --rdy-violet-soft:#c887ff;
  --rdy-text:#faf9fd;
  --rdy-text-soft:#d6d2de;
  --rdy-text-muted:#aaa4b6;
  --rdy-line:rgba(230,232,239,.14);
  --rdy-line-strong:rgba(230,232,239,.23);
  --rdy-purple-line:rgba(184,112,255,.24);
  --rdy-section-gap:clamp(14px,1.45vw,24px);
  --rdy-edge:clamp(12px,2vw,30px);
}

html,html body{
  background-color:var(--rdy-black-0)!important;
  color:var(--rdy-text)!important;
}
html body{
  background-image:
    radial-gradient(ellipse 72% 34% at 10% 3%,rgba(132,63,226,.13),transparent 68%),
    radial-gradient(ellipse 60% 28% at 92% 24%,rgba(220,222,230,.055),transparent 72%),
    linear-gradient(180deg,#020205 0%,#06050b 33%,#030307 70%,#020205 100%)!important;
  background-attachment:fixed,fixed,fixed!important;
}
html body::before{
  opacity:.72!important;
  background-image:
    radial-gradient(ellipse 70% 28% at 50% 0%,rgba(168,85,247,.09),transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.012),rgba(0,0,0,.10) 60%,rgba(0,0,0,.18))!important;
}
html body::after{
  opacity:.46!important;
  background-image:
    linear-gradient(90deg,rgba(0,0,0,.12),transparent 14%,transparent 86%,rgba(0,0,0,.12)),
    repeating-linear-gradient(90deg,rgba(255,255,255,.009) 0 1px,transparent 1px 7px)!important;
}

/* Cadence générale : l'espace noir devient une respiration maîtrisée. */
html #root{padding:var(--rdy-section-gap) 0 1px!important}
html main.rdy-shell{
  width:100%!important;
  max-width:none!important;
  padding-inline:var(--rdy-edge)!important;
}
html .rdy-page{
  display:flex!important;
  flex-direction:column!important;
  gap:var(--rdy-section-gap)!important;
}

/* Encadrements complets : les sections sont contenues, pas seulement séparées. */
html .rdy-page > .rdy-hero,
html .rdy-page > .rdy-section,
html .rdy-page > .rdy-tech-marquee-section,
html #root > .rdy-section,
html #root > .rdy-tech-marquee-section,
html #root > .rdy-newsletter-link{
  position:relative!important;
  overflow:hidden!important;
  border:1px solid var(--rdy-line)!important;
  background:
    radial-gradient(ellipse 50% 70% at 8% 8%,rgba(151,77,243,.055),transparent 72%),
    linear-gradient(145deg,rgba(17,15,25,.92),rgba(6,6,11,.96) 58%,rgba(4,4,8,.98))!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.035),
    0 16px 46px rgba(0,0,0,.25)!important;
}
html .rdy-page > .rdy-section::before,
html .rdy-page > .rdy-tech-marquee-section::before,
html #root > .rdy-section::before,
html #root > .rdy-tech-marquee-section::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-top:1px solid rgba(216,219,228,.06);
  background:linear-gradient(90deg,rgba(168,85,247,.05),transparent 18%,transparent 82%,rgba(216,219,228,.025));
  z-index:0;
}
html .rdy-page > .rdy-section > *,
html .rdy-page > .rdy-tech-marquee-section > *,
html #root > .rdy-section > *,
html #root > .rdy-tech-marquee-section > *{position:relative;z-index:1}
html .rdy-page > .rdy-section:nth-of-type(even){
  background:
    radial-gradient(ellipse 55% 80% at 92% 12%,rgba(207,211,222,.038),transparent 74%),
    linear-gradient(145deg,rgba(12,11,19,.97),rgba(5,5,10,.99) 64%,rgba(3,3,7,.99))!important;
}

/* Hero : profondeur conservée, texte mieux protégé et cadre plus net. */
html .rdy-hero-cinema{
  border-color:rgba(224,226,234,.18)!important;
  box-shadow:0 22px 58px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.045)!important;
}
html .rdy-hero-cinema-overlay{
  background:linear-gradient(90deg,rgba(3,3,7,.94) 0%,rgba(4,4,9,.81) 41%,rgba(5,4,9,.34) 72%,rgba(2,2,5,.56) 100%)!important;
}
html .rdy-hero-stats{
  background:linear-gradient(145deg,rgba(15,13,23,.86),rgba(5,5,10,.90))!important;
  border:1px solid rgba(224,226,234,.17)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.035)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* Hiérarchie typographique et largeur de lecture. */
html .rdy-h1,html .rdy-h2,
html .rdy-sec-head h2,
html .rdy-reviews-head h2,
html .rdy-talents-copy h1,
html .rdy-contact-audit-form-title{
  color:var(--rdy-text)!important;
  text-wrap:balance;
}
html .rdy-lead,html .rdy-sec-desc,
html .rdy-reviews-head p,html .rdy-card-desc,
html .rdy-step-desc,html .rdy-post-excerpt,
html .rdy-tool-cat-desc,html .rdy-faq-a,
html .rdy-talents-copy p,html .rdy-contact-audit-lead{
  color:var(--rdy-text-soft)!important;
  line-height:1.68!important;
}
html .rdy-sec-head p,
html .rdy-reviews-head p{max-width:880px!important}
html .rdy-eyebrow,
html .rdy-method-kicker{
  color:#e4c6ff!important;
  border-color:rgba(186,116,250,.30)!important;
  background:linear-gradient(90deg,rgba(83,38,125,.22),rgba(22,17,31,.62))!important;
}

/* Cartes : contraste sans flou coûteux ni empilement d'effets. */
html .rdy-card,
html .rdy-price,
html .rdy-post,
html .rdy-tool-cat,
html .rdy-tool-item,
html .rdy-faq-item,
html .rdy-addon,
html .rdy-contact-audit-card,
html .rdy-contact-audit-form,
html .rdy-contact-item,
html .rdy-filter,
html .rdy-pill,
html .rdy-segment-card,
html .rdy-value,
html .rdy-rep-feat,
html .rdy-rep-meter,
html .rdy-portfolio-item,
html .rdy-service,
html .rdy-method-card,
html .rdy-method-diff-card,
html .rdy-review-card,
html .rdy-talents-summary-card,
html .rdy-talents-role,
html .rdy-talents-pill,
html .rdy-talents-form{
  background:linear-gradient(150deg,rgba(24,20,33,.92),rgba(8,8,14,.97) 64%,rgba(5,5,9,.99))!important;
  border:1px solid rgba(224,226,234,.15)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.032),0 11px 30px rgba(0,0,0,.19)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
html .rdy-review-card{
  background:
    radial-gradient(ellipse 70% 48% at 0% 0%,rgba(168,85,247,.075),transparent 72%),
    linear-gradient(150deg,rgba(27,21,38,.95),rgba(8,7,13,.98) 68%)!important;
}
html .rdy-review-quote{color:#e9e5ef!important;line-height:1.72!important}
html .rdy-review-meta{border-top-color:rgba(224,226,234,.13)!important}
html .rdy-review-note{color:var(--rdy-text-muted)!important}

@media (hover:hover) and (pointer:fine){
  html .rdy-card:hover,
  html .rdy-price:hover,
  html .rdy-post:hover,
  html .rdy-service:hover,
  html .rdy-method-card:hover,
  html .rdy-review-card:hover,
  html .rdy-talents-role:hover{
    transform:translateY(-3px)!important;
    border-color:rgba(192,125,250,.36)!important;
    box-shadow:inset 0 1px rgba(255,255,255,.05),0 18px 42px rgba(0,0,0,.27),0 0 28px rgba(168,85,247,.055)!important;
  }
}

/* Médias et formulaires. */
html .rdy-section-image,
html .rdy-service-img-wrap,
html .rdy-expertise-visual,
html .rdy-method-image,
html .rdy-segments-video-card,
html .rdy-tools-hero-image,
html .rdy-contact-audit-image,
html .rdy-talents-visual-cinematic,
html .rdy-pf-frame{
  border:1px solid rgba(224,226,234,.17)!important;
  background:#08080e!important;
  box-shadow:0 15px 38px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.035)!important;
}
html input,html textarea,html select,
html .rdy-input,html .rdy-textarea,html .rdy-select{
  background:#090910!important;
  border:1px solid rgba(224,226,234,.16)!important;
  color:var(--rdy-text)!important;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.30)!important;
}
html input::placeholder,html textarea::placeholder{color:#827c8e!important}
html input:focus,html textarea:focus,html select:focus,
html .rdy-input:focus,html .rdy-textarea:focus,html .rdy-select:focus{
  border-color:rgba(188,116,249,.58)!important;
  box-shadow:0 0 0 3px rgba(168,85,247,.12)!important;
  outline:none!important;
}
html :focus-visible{outline:2px solid var(--rdy-violet-soft)!important;outline-offset:3px!important}

/* Boutons : couleur plus franche et texte plus lisible. */
html .rdy-btn-primary{
  background:linear-gradient(135deg,#aa58f8 0%,#7430d5 100%)!important;
  box-shadow:0 10px 28px rgba(133,54,215,.28),inset 0 1px rgba(255,255,255,.20)!important;
}
html .rdy-btn-ghost{
  background:rgba(255,255,255,.025)!important;
  border-color:rgba(224,226,234,.18)!important;
}

/* Marquee, newsletter et footer : limites plus claires. */
html .rdy-tech-marquee-section,
html .rdy-newsletter-link,
html .rdy-footer{
  border-color:rgba(224,226,234,.14)!important;
}
html .rdy-footer{
  background:linear-gradient(180deg,rgba(9,8,14,.98),rgba(2,2,5,.99))!important;
  border-top:1px solid rgba(224,226,234,.13)!important;
}

/* Rendu hors écran : baisse le coût sans modifier le contenu. */
@supports (content-visibility:auto){
  html .rdy-page > .rdy-section,
  html .rdy-page > .rdy-tech-marquee-section,
  html #root > .rdy-section,
  html #root > .rdy-newsletter-link,
  html #root > .rdy-footer{
    content-visibility:auto;
    contain-intrinsic-size:720px;
  }
}

/* Tablette */
@media (max-width:1100px){
  :root{--rdy-edge:18px;--rdy-section-gap:16px}
  html .rdy-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html .rdy-hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html .rdy-h1{font-size:clamp(42px,6.5vw,66px)!important}
}

/* Mobile : une seule colonne, vidéo neutralisée par le script léger, effets réduits. */
@media (max-width:760px){
  :root{--rdy-edge:10px;--rdy-section-gap:10px}
  html body{
    background-attachment:scroll,scroll,scroll!important;
    background-image:
      radial-gradient(ellipse 100% 24% at 50% 0%,rgba(132,63,226,.11),transparent 72%),
      linear-gradient(180deg,#020205 0%,#06050b 42%,#020205 100%)!important;
  }
  html body::before{opacity:.38!important}
  html body::after{display:none!important}
  html .rdy-ambient-beams,
  html .rdy-ambient-sheen{display:none!important}
  html .rdy-ambient-orbs span{animation:none!important;filter:blur(55px)!important;opacity:.20!important}
  html main.rdy-shell{padding-inline:var(--rdy-edge)!important}
  html .rdy-page > .rdy-hero,
  html .rdy-page > .rdy-section,
  html .rdy-page > .rdy-tech-marquee-section,
  html #root > .rdy-section,
  html #root > .rdy-tech-marquee-section,
  html #root > .rdy-newsletter-link{
    box-shadow:inset 0 1px rgba(255,255,255,.025)!important;
  }
  html .rdy-section{padding-left:18px!important;padding-right:18px!important}
  html .rdy-h1{font-size:clamp(35px,10.5vw,48px)!important;line-height:1.04!important;letter-spacing:-.035em!important}
  html .rdy-h2,html .rdy-sec-head h2,html .rdy-reviews-head h2{font-size:clamp(30px,8.5vw,42px)!important;line-height:1.08!important}
  html .rdy-lead,html .rdy-sec-desc,html .rdy-reviews-head p{font-size:15px!important;line-height:1.62!important}
  html .rdy-grid,
  html .rdy-grid-2,
  html .rdy-grid-3,
  html .rdy-hero-stats,
  html .rdy-contact-grid,
  html .rdy-talents-grid,
  html .rdy-footer-grid{
    grid-template-columns:1fr!important;
  }
  html .rdy-hero-stats{gap:0!important}
  html .rdy-hero-cta{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  html .rdy-hero-cta .rdy-btn{width:100%!important}
  html .rdy-review-track{gap:12px!important}
  html .rdy-review-card{min-width:min(88vw,360px)!important}
  html .rdy-card,
  html .rdy-price,
  html .rdy-post,
  html .rdy-review-card,
  html .rdy-contact-audit-form,
  html .rdy-talents-form{
    box-shadow:inset 0 1px rgba(255,255,255,.025),0 7px 18px rgba(0,0,0,.16)!important;
  }
  html .rdy-tech-marquee-track{animation-duration:34s!important}
  html video.rdy-hero-cinema-video{object-position:center!important}
}

@media (max-width:420px){
  html .rdy-section{padding-left:14px!important;padding-right:14px!important}
  html .rdy-btn{padding-inline:15px!important}
  html .rdy-review-card{min-width:calc(100vw - 46px)!important}
}

@media (prefers-reduced-motion:reduce){
  html *,html *::before,html *::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
