/* Páginas legales (privacidad.html, terminos.html). Mismos colores y fuentes del catálogo. Las animaciones se apagan si el dispositivo pide reducir movimiento. */
body{margin:0}
a{color:#B4141C}a:hover{color:#951017}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes travel{0%{left:0;opacity:0}8%{opacity:1}92%{opacity:1}100%{left:calc(100% - 14px);opacity:0}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes open{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes float{50%{transform:translateY(-8px)}}
@keyframes tick{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
.in{animation:rise .7s cubic-bezier(.16,1,.3,1) both}
.rv{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 45%}
.lift{transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s}
.lift:hover{transform:translateY(-4px);box-shadow:0 18px 36px -22px rgba(20,22,30,.45)}
.acc{transition:background .15s}
.acc:hover{background:#F5F6F8}
.acc svg{transition:transform .25s cubic-bezier(.16,1,.3,1)}
.acc[aria-expanded="true"] svg{transform:rotate(180deg)}
.body{animation:open .3s cubic-bezier(.16,1,.3,1) both}
.btn{transition:background .15s,transform .15s}
.btn:hover{background:#951017}
.btn:active{transform:scale(.97)}
:focus-visible{outline:3px solid #B4141C;outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@keyframes fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(180,20,28,.45)}100%{box-shadow:0 0 0 14px rgba(180,20,28,0)}}
.stepbtn{transition:background .2s,color .2s}
[hidden]{display:none!important}
.stepbtn{background:#F5F6F8;color:#1C1C1E}
.stepbtn[aria-pressed="true"]{background:var(--red);color:#FFFFFF}
