/* Déco de Noël - pied de page animé or / nuit + neige (01/11/2026, inspiré du footer Ternois Fitness) */
footer.dn-ft{position:relative;z-index:2;overflow:hidden;isolation:isolate;margin:70px 0 0;padding:58px 0 clamp(70px,9vw,130px);color:var(--muted,rgba(247,240,227,.7));font-family:var(--sans,system-ui,sans-serif);font-size:15px;text-align:left;
background:radial-gradient(110% 80% at 10% 0%,rgba(228,194,115,.16) 0%,transparent 58%),radial-gradient(80% 70% at 92% 6%,rgba(196,30,58,.13) 0%,transparent 55%),linear-gradient(180deg,#0b1626 0%,var(--bg,#08111d) 55%,#050a12 100%);
border-top:1px solid rgba(228,194,115,.22)}
/* ligne dorée qui court en haut */
footer.dn-ft::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:4;background:linear-gradient(90deg,transparent,var(--gold-2,#c99a3e),var(--gold,#e4c273),#fff8e6,var(--gold,#e4c273),transparent);background-size:50% 100%;background-repeat:no-repeat;animation:dnLine 6s linear infinite;box-shadow:0 0 14px rgba(228,194,115,.7)}
@keyframes dnLine{0%{background-position:-50% 0}100%{background-position:150% 0}}
/* guirlande lumineuse */
.dn-ft .dn-lights{position:absolute;left:0;right:0;top:0;height:34px;z-index:3;pointer-events:none;display:flex;justify-content:space-around;padding:0 2%}
.dn-ft .dn-lights::before{content:"";position:absolute;left:0;right:0;top:-14px;height:30px;border-bottom:1px solid rgba(228,194,115,.28);border-radius:0 0 50% 50%/0 0 100% 100%}
.dn-ft .dn-bulb{position:relative;top:13px;width:7px;height:10px;border-radius:50% 50% 50% 50%/40% 40% 60% 60%;background:#fff1c9;box-shadow:0 0 10px 2px rgba(255,236,180,.75);animation:dnTwinkle 2.4s ease-in-out infinite}
.dn-ft .dn-bulb:nth-child(3n+1){background:var(--gold,#e4c273);box-shadow:0 0 10px 2px rgba(228,194,115,.8);animation-delay:-.8s}
.dn-ft .dn-bulb:nth-child(4n+2){background:#e0405a;box-shadow:0 0 10px 2px rgba(196,30,58,.75);animation-delay:-1.6s}
.dn-ft .dn-bulb:nth-child(odd){top:15px}
@keyframes dnTwinkle{0%,100%{opacity:1;filter:brightness(1.1)}50%{opacity:.35;filter:brightness(.7)}}
/* neige (canvas) : derrière les textes */
.dn-ft canvas.dn-snow{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
/* scène : halos, faisceau, grand mot en filigrane */
.dn-ft .dn-stage{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;display:flex;align-items:flex-end;justify-content:center;
-webkit-mask:linear-gradient(180deg,transparent 0,#000 30%,#000 100%);mask:linear-gradient(180deg,transparent 0,#000 30%,#000 100%)}
.dn-ft .dn-stage::after{content:"";position:absolute;left:50%;bottom:-30%;width:min(1100px,120%);aspect-ratio:3/1;transform:translateX(-50%);border-radius:50%;z-index:-3;background:radial-gradient(closest-side,rgba(228,194,115,.32),rgba(201,154,62,.12) 55%,transparent 100%);filter:blur(10px);animation:dnAura 7s ease-in-out infinite}
@keyframes dnAura{0%,100%{opacity:.55}50%{opacity:.95}}
.dn-ft .dn-orb{position:absolute;left:0;z-index:-2;width:300px;height:300px;border-radius:50%;filter:blur(48px);opacity:.2;will-change:transform}
.dn-ft .dn-o1{top:8%;background:var(--gold,#e4c273);animation:dnCrossA 13s ease-in-out infinite alternate}
.dn-ft .dn-o2{top:12%;background:#f7e7c1;animation:dnCrossB 15s ease-in-out infinite alternate}
.dn-ft .dn-o3{top:35%;width:220px;height:220px;background:#c41e3a;opacity:.16;animation:dnCrossC 11s ease-in-out infinite alternate}
@keyframes dnCrossA{0%{transform:translate(-15vw,30px) scale(.9)}50%{transform:translate(35vw,-40px) scale(1.15)}100%{transform:translate(85vw,40px) scale(.95)}}
@keyframes dnCrossB{0%{transform:translate(85vw,-30px) scale(1.1)}50%{transform:translate(35vw,50px) scale(.9)}100%{transform:translate(-15vw,-20px) scale(1.1)}}
@keyframes dnCrossC{0%{transform:translate(5vw,40px) scale(.8)}100%{transform:translate(75vw,-30px) scale(1.25)}}
.dn-ft .dn-beam{position:absolute;left:0;top:-20%;bottom:-20%;width:20%;z-index:-1;opacity:.22;background:linear-gradient(90deg,transparent,rgba(228,194,115,.45) 35%,rgba(255,248,230,.6) 50%,rgba(228,194,115,.45) 65%,transparent);will-change:transform;animation:dnBeam 9s ease-in-out infinite alternate}
@keyframes dnBeam{0%{transform:translateX(-30%) skewX(-24deg)}100%{transform:translateX(480%) skewX(-24deg)}}
.dn-ft .dn-word{position:relative;z-index:0;margin:0;padding:0 2vw 2px;text-align:center;font-family:var(--serif,Georgia,serif);font-weight:700;font-size:clamp(42px,10.4vw,158px);line-height:.95;letter-spacing:-.01em;white-space:nowrap;user-select:none;opacity:.16;transform:translateY(10%);
background:linear-gradient(90deg,var(--gold-2,#c99a3e) 0%,var(--gold,#e4c273) 30%,#fff8e6 45%,#fff8e6 50%,var(--gold,#e4c273) 65%,var(--gold-2,#c99a3e) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:1px rgba(255,240,200,.35);animation:dnWord 10s linear infinite}
@keyframes dnWord{0%{background-position:120% 0}100%{background-position:-120% 0}}
/* contenu */
.dn-ft .dn-in{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:0 24px}
.dn-ft .dn-top{display:grid;grid-template-columns:1.25fr 1.45fr 1fr;gap:36px}
.dn-ft .dn-logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink,#f7f0e3);font-family:var(--serif,Georgia,serif);font-size:26px;font-weight:600;line-height:1.1}
.dn-ft .dn-logo b{font-style:italic;font-weight:600;color:var(--gold,#e4c273);text-shadow:0 0 14px rgba(228,194,115,.45)}
.dn-ft .dn-star{display:inline-block;color:var(--gold,#e4c273);font-size:20px;animation:dnSpin 8s linear infinite;text-shadow:0 0 12px rgba(228,194,115,.9)}
@keyframes dnSpin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.2)}100%{transform:rotate(360deg) scale(1)}}
.dn-ft .dn-brand p{margin:14px 0 0;font-size:14px;line-height:1.6;max-width:340px;color:var(--muted,rgba(247,240,227,.7))}
.dn-ft .dn-brand p a{color:var(--ink,#f7f0e3);text-underline-offset:3px;text-decoration-color:rgba(228,194,115,.6)}
.dn-ft .dn-tag{display:inline-block;margin-top:14px;padding:4px 12px;border:1px solid rgba(228,194,115,.7);border-radius:99px;color:var(--gold,#e4c273);font-weight:700;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;animation:dnTag 3.4s ease-in-out infinite}
@keyframes dnTag{0%,100%{box-shadow:0 0 0 rgba(228,194,115,0)}50%{box-shadow:0 0 14px rgba(228,194,115,.5),inset 0 0 8px rgba(228,194,115,.2);color:#fff8e6}}
.dn-ft .dn-guide{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:11px 20px;border-radius:999px;font-weight:700;font-size:14.5px;text-decoration:none;color:#1a1206!important;background:linear-gradient(135deg,#f0d48d,var(--gold,#e4c273) 45%,var(--gold-2,#c99a3e));box-shadow:0 6px 22px rgba(228,194,115,.35),0 0 0 1px rgba(255,240,200,.4) inset;transition:transform .25s,box-shadow .25s}
.dn-ft .dn-guide::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);transform:skewX(-20deg);animation:dnShine 3.6s ease-in-out infinite}
@keyframes dnShine{0%,55%{left:-60%}100%{left:130%}}
.dn-ft .dn-guide:hover,.dn-ft .dn-guide:focus-visible{transform:translateY(-2px) scale(1.03);box-shadow:0 10px 30px rgba(228,194,115,.5)}
.dn-ft .dn-guide:focus-visible{outline:2px solid #fff8e6;outline-offset:3px}
footer.dn-ft h2.dn-h{margin:4px 0 16px;font-family:var(--sans,system-ui,sans-serif);font-size:12px;line-height:1;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--gold,#e4c273)}
.dn-ft ul{list-style:none;margin:0;padding:0}
.dn-ft li{margin:0 0 3px;display:flex;align-items:center}
.dn-ft .dn-pages ul{display:grid;grid-template-columns:1fr 1fr;column-gap:22px}
.dn-ft li>a,.dn-ft .dn-btn{position:relative;color:var(--ink,#f7f0e3);text-decoration:none;font-size:14px;display:inline-flex;align-items:center;min-height:34px;transition:color .25s,transform .25s,text-shadow .25s}
.dn-ft li>a::after,.dn-ft .dn-btn::after{content:"";position:absolute;left:0;bottom:6px;height:1px;width:100%;background:linear-gradient(90deg,var(--gold,#e4c273),#fff8e6);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.dn-ft li>a:hover::after,.dn-ft li>a:focus-visible::after,.dn-ft .dn-btn:hover::after,.dn-ft .dn-btn:focus-visible::after{transform:scaleX(1)}
.dn-ft li>a:hover,.dn-ft li>a:focus-visible,.dn-ft .dn-btn:hover,.dn-ft .dn-btn:focus-visible{color:#fff8e6;text-shadow:0 0 10px rgba(228,194,115,.85);transform:translateX(4px)}
.dn-ft li>a:focus-visible,.dn-ft .dn-btn:focus-visible{outline:2px solid var(--gold,#e4c273);outline-offset:3px;border-radius:4px}
.dn-ft .dn-pages li>a::before{content:"❄";margin-right:8px;font-size:11px;color:var(--gold,#e4c273);opacity:.75;transition:transform .5s}
.dn-ft .dn-pages li>a:hover::before{transform:rotate(180deg) scale(1.3)}
.dn-ft .dn-pages li>a.dn-bf::before{content:"★";color:#e0405a}
.dn-ft .dn-ico{display:inline-flex;width:18px;height:18px;margin-right:9px;color:var(--gold,#e4c273);flex:none}
.dn-ft .dn-ico svg{width:100%;height:100%;fill:currentColor}
.dn-ft a:hover .dn-ico,.dn-ft .dn-btn:hover .dn-ico{animation:dnBounce .6s cubic-bezier(.3,1.6,.5,1)}
@keyframes dnBounce{0%{transform:none}35%{transform:translateY(-6px) scale(1.15)}65%{transform:translateY(1px)}100%{transform:none}}
.dn-ft .dn-btn{background:none;border:0;padding:0;font:inherit;font-size:14px;cursor:pointer;text-align:left}
.dn-ft .dn-chev{display:inline-block;margin-left:6px;color:var(--gold,#e4c273);transition:transform .3s}
.dn-ft .dn-btn[aria-expanded="true"] .dn-chev{transform:rotate(180deg)}
.dn-ft .dn-sister{margin-top:6px}
.dn-ft .dn-sister>a{padding:0 14px;border:1px solid rgba(228,194,115,.45);border-radius:999px;background:rgba(255,255,255,.04);min-height:36px}
.dn-ft .dn-sister>a::after{display:none}
.dn-ft .dn-sister>a:hover{border-color:var(--gold,#e4c273);background:rgba(228,194,115,.12)}
.dn-ft .dn-sister-label{display:block;margin:12px 0 4px;font-size:12px;color:var(--faint,rgba(247,240,227,.5))}
/* notes Amazon / photos */
.dn-ft .dn-notes{margin:34px 0 0;padding:16px 20px;border:1px solid rgba(228,194,115,.18);border-radius:16px;background:rgba(8,17,29,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.dn-ft .dn-notes p{margin:0 0 6px;font-size:12.5px;line-height:1.55;color:var(--faint,rgba(247,240,227,.5))}
.dn-ft .dn-notes p:last-child{margin:0}
.dn-ft .dn-notes p.disclosure{font-size:13.5px;color:rgba(247,240,227,.82)}
.dn-ft .dn-notes p.disclosure::before{content:"✦ ";color:var(--gold,#e4c273)}
/* mentions légales (bloc repliable) */
.dn-ft details.dn-legal{margin:16px 0 0;max-width:none;text-align:left;border:1px solid rgba(228,194,115,.22);border-radius:16px;background:rgba(8,17,29,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);scroll-margin-top:20px}
.dn-ft details.dn-legal>summary{cursor:pointer;padding:13px 18px;font-size:13.5px;color:var(--muted,rgba(247,240,227,.7));font-weight:500;list-style:none;display:flex;align-items:center;gap:8px}
.dn-ft details.dn-legal>summary::-webkit-details-marker{display:none}
.dn-ft details.dn-legal>summary::before{content:"▸";color:var(--gold,#e4c273);transition:transform .3s}
.dn-ft details.dn-legal[open]>summary::before{transform:rotate(90deg)}
.dn-ft details.dn-legal>summary:hover{color:var(--ink,#f7f0e3)}
.dn-ft details.dn-legal>summary:focus-visible{outline:2px solid var(--gold,#e4c273);outline-offset:2px;border-radius:12px}
.dn-ft details.dn-legal[open] .legal-body{animation:dnOpen .45s ease}
@keyframes dnOpen{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.dn-ft .legal-body a{color:var(--ink,#f7f0e3);text-decoration-color:rgba(228,194,115,.6)}
/* bas de page */
.dn-ft .dn-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 24px;margin:22px 0 0;padding-top:16px;border-top:1px solid rgba(228,194,115,.14)}
.dn-ft .dn-bottom p{margin:0;font-size:12px;line-height:1.55;color:var(--faint,rgba(247,240,227,.5))}
.dn-ft .dn-bottom a{color:var(--faint,rgba(247,240,227,.5));text-underline-offset:3px}
.dn-ft .dn-bottom a:hover{color:var(--ink,#f7f0e3)}
.dn-ft p.cc-manage{display:none}
/* apparition en cascade */
.dn-js .dn-ft .dn-top>div{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.dn-js .dn-ft.dn-in-view .dn-top>div{opacity:1;transform:none}
.dn-js .dn-ft.dn-in-view .dn-top>div:nth-child(2){transition-delay:.12s}
.dn-js .dn-ft.dn-in-view .dn-top>div:nth-child(3){transition-delay:.24s}
/* tablettes / mobiles */
@media(max-width:900px){.dn-ft .dn-top{grid-template-columns:1fr 1fr}.dn-ft .dn-brand{grid-column:1/-1}.dn-ft .dn-brand p{max-width:560px}}
@media(max-width:600px){footer.dn-ft{margin-top:50px;padding:52px 0 calc(84px + env(safe-area-inset-bottom))}
.dn-ft .dn-in{padding:0 18px}.dn-ft .dn-top{grid-template-columns:1fr;gap:28px}
.dn-ft .dn-pages ul{column-gap:12px}.dn-ft li>a,.dn-ft .dn-btn{min-height:40px}
.dn-ft .dn-orb{width:170px;height:170px;filter:blur(30px)}
.dn-ft .dn-word{white-space:normal;font-size:clamp(56px,17vw,104px);line-height:1;word-spacing:100vw;opacity:.13;padding:0 4vw calc(70px + env(safe-area-inset-bottom));transform:none}
.dn-ft .dn-bottom{flex-direction:column}
.dn-ft .dn-lights .dn-bulb:nth-child(n+15){display:none}}
@media(min-width:601px) and (max-width:899px){footer.dn-ft{padding-bottom:calc(84px + env(safe-area-inset-bottom))}}
/* « réduire les animations » : version calme */
@media(prefers-reduced-motion:reduce){footer.dn-ft::before,.dn-ft .dn-tag,.dn-ft .dn-star,.dn-ft .dn-bulb,.dn-ft .dn-guide::after,.dn-ft .dn-stage::after,.dn-ft .dn-o2,.dn-ft .dn-o3,.dn-ft .dn-beam{animation:none}
.dn-ft .dn-guide::after,.dn-ft .dn-o2,.dn-ft .dn-o3,.dn-ft .dn-beam{display:none}
.dn-ft .dn-o1{animation-duration:30s}.dn-ft .dn-word{animation:dnWord 30s linear infinite}
.dn-js .dn-ft .dn-top>div{opacity:1;transform:none;transition:none}
.dn-ft li>a,.dn-ft .dn-btn,.dn-ft .dn-guide{transition:none}}

/* ===== 02/11/2026 : mobile allégé ===== */
/* Mentions légales : plus de bouton en double, le bloc ne s'affiche qu'une fois ouvert via « Mentions légales » (colonne Infos) */
.dn-js .dn-ft details.dn-legal:not([open]){display:none}
/* À lire aussi : 4 liens, en 2 x 2 sur mobile */
@media (max-width:640px){
  .home-reads{padding-top:28px}
  .home-reads-list{grid-template-columns:1fr 1fr;gap:10px}
  .home-reads-list a{padding:12px 13px;font-size:14.5px}
  .home-reads-list small{font-size:12.5px}
}
/* Carrousel des styles de sapin (activé par dn-footer.js) */
.dn-car{position:relative}
.dn-car .ideas-grid.dn-car-track{display:flex;grid-template-columns:none;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;align-items:flex-start;padding:2px 2px 6px;outline:none}
.dn-car .ideas-grid.dn-car-track::-webkit-scrollbar{display:none}
.dn-car .ideas-grid.dn-car-track:focus-visible{outline:2px solid var(--gold,#e4c273);outline-offset:4px;border-radius:18px}
.dn-car .dn-car-track>.idea{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
@media (min-width:900px){.dn-car .dn-car-track>.idea{flex-basis:calc(50% - 8px)}}
.dn-car-nav{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px}
.dn-car .ideas-grid.dn-car-track{transition:height .3s ease}
.dn-car-btn{flex:0 0 auto;width:42px;height:42px;border-radius:50%;border:1px solid rgba(228,194,115,.45);background:rgba(8,17,29,.6);color:var(--gold,#e4c273);font-size:20px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s,opacity .2s}
.dn-car-btn:hover{background:rgba(228,194,115,.16)}
.dn-car-btn:focus-visible,.dn-car-dot:focus-visible{outline:2px solid var(--gold,#e4c273);outline-offset:2px}
.dn-car-btn[disabled]{opacity:.35;cursor:default}
.dn-car-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:0;min-width:0}
.dn-car-dot{width:20px;height:28px;padding:0;border:0;background:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.dn-car-dot::before{content:"";width:8px;height:8px;border-radius:50%;background:rgba(247,240,227,.3);transition:background .2s,transform .2s}
.dn-car-dot[aria-current="true"]::before{background:var(--gold,#e4c273);transform:scale(1.35)}
.dn-car-count{margin:6px 0 0;text-align:center;font-size:12.5px;color:var(--muted,rgba(247,240,227,.7))}
.dn-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (prefers-reduced-motion:reduce){.dn-car .ideas-grid.dn-car-track{scroll-behavior:auto;transition:none}.dn-car-dot::before{transition:none}}
