/* BWS · Descente légère pour /links · Iris DA · charte v6 (Paper #FAF8F4 · Ink #231F20 · Deep Royal #0F2A44 · Gold #D4B36C)
   Greffe : <link rel="stylesheet" href="/_caracal_assets/links/descente-links.css"> après le <style> de la page.
   Fond de secours = dégradé Deep Royal (aucune image requise pour lire). */
:root{--dl-p:0;--dl-royal:#0F2A44;--dl-paper:#FAF8F4;--dl-ink:#231F20;--dl-gold:#D4B36C}
html{background:#0F2A44}
body{background:linear-gradient(180deg,#0B1C30 0%,#0F2A44 45%,#12314F 70%,#173a2c 100%) #0F2A44 fixed!important;position:relative}
/* Couche fixe injectée par le JS : 3 plans (ciel, nuages, pelouse). Sans JS : rien, le dégradé suffit. */
.dl-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:#0F2A44}
.dl-bg i{position:absolute;inset:-4% 0;background:center/cover no-repeat;opacity:0;transition:opacity .6s;will-change:opacity,transform}
.dl-bg .dl-ciel{background-image:url('descente/dl-ciel.webp'),linear-gradient(180deg,#081627,#0F2A44);opacity:calc(1 - var(--dl-p)*1.6);transform:translateY(calc(var(--dl-p)*-6%))}
.dl-bg .dl-nuages{opacity:calc(1 - (var(--dl-p) - .45)*(var(--dl-p) - .45)*12);transform:translateY(calc((.45 - var(--dl-p))*14%)) scale(1.06)}
.dl-bg .dl-pelouse{opacity:calc((var(--dl-p) - .55)*2.4);transform:translateY(calc((1 - var(--dl-p))*5%))}
.dl-bg .dl-nuages.dl-ok{background-image:url('descente/dl-nuages.webp')}
.dl-bg .dl-pelouse.dl-ok{background-image:url('descente/dl-pelouse.webp')}
.dl-bg .dl-pelouse:not(.dl-ok){background:radial-gradient(120% 70% at 50% 110%,#1f4a2e 0%,rgba(15,42,68,0) 70%)}
/* voile permanent : garantit le contraste du texte quel que soit le plan */
.dl-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,33,57,.35),rgba(11,33,57,.15) 45%,rgba(11,33,57,.4))}
/* lisibilité : cartes plus opaques que l'original */
a.l,.soc a,.ag a{background:rgba(11,33,57,.74)!important;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.feat{background:linear-gradient(120deg,rgba(60,48,24,.82),rgba(11,33,57,.82))!important}
h2{text-shadow:0 1px 6px rgba(0,0,0,.6)}
footer{color:#C9CED6!important;text-shadow:0 1px 4px rgba(0,0,0,.7)}
footer a{color:#C9CED6!important}
.contact{color:var(--dl-ink)!important}
/* micro-animations (actives seulement si le JS a posé html.dl-on) */
.dl-on .dl-r{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1)}
.dl-on .dl-r.dl-in{opacity:1;transform:none}
.cta,.contact,.lang button[aria-pressed="true"]{position:relative;overflow:hidden}
.cta::after,.contact::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(250,248,244,.55),transparent);transform:skewX(-18deg);pointer-events:none;opacity:0}
.dl-on .dl-in .cta::after,.dl-on .contact.dl-in::after{animation:dl-sheen 1.4s .5s ease-out 1}
.chc:hover .cta::after,.contact:hover::after,.chc:focus-visible .cta::after,.contact:focus-visible::after{animation:dl-sheen 1.1s ease-out 1}
@keyframes dl-sheen{0%{left:-60%;opacity:1}100%{left:130%;opacity:1}}
/* logos de l'Alliance : monochrome Paper #FAF8F4 sur pastille Deep Royal identique, filet or #C9A45C.
   Couleurs d'origine : au survol (souris) ou un court instant à l'apparition (téléphone).
   Chaque .logo porte --logo-m (PNG mono) et --logo-c (logo couleur) ; le JS les pose si absents. */
.logo{position:relative;background:#0F2A44 var(--logo-m) center/86% no-repeat!important;border:1px solid #C9A45C!important;box-shadow:0 4px 12px -4px rgba(0,0,0,.5)!important;overflow:hidden}
.logo::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--logo-c) center/cover no-repeat;opacity:0;transition:opacity .45s ease}
@media (hover:hover){.ag a:hover .logo::after,.ag a:focus-visible .logo::after,.feat:hover .logo::after,.feat:focus-visible .logo::after,a.l:hover .logo::after,a.l:focus-visible .logo::after{opacity:1}
 .ag a:hover .logo,.feat:hover .logo,a.l:hover .logo{box-shadow:0 0 0 3px rgba(201,164,92,.18),0 0 20px rgba(212,179,108,.4)!important}}
@media (hover:none){.dl-on .dl-in .logo::after,.dl-on .dl-in.logo::after{animation:dl-flash 1.8s .35s ease 1}}
@keyframes dl-flash{0%,100%{opacity:0}25%,60%{opacity:1}}
/* moins d'animations : fond fixe sur le ciel, aucune transition */
@media (prefers-reduced-motion:reduce){
 .dl-bg i{transition:none!important;transform:none!important}
 .dl-on .dl-r{opacity:1!important;transform:none!important;transition:none!important}
 .cta::after,.contact::after{display:none}
 .logo::after{animation:none!important;transition:none!important}
}
