/* base.css — reset y utilidades estructurales compartidas. Sin decisiones visuales:
   cada sitio define su look en style.css. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
body{margin:0;min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,picture,svg,video{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:inherit}
h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{margin:0}
:where(ul[role=list],ol[role=list]){list-style:none;padding:0}
table{border-collapse:collapse;width:100%}
address{font-style:normal}
summary{cursor:pointer}
:focus-visible{outline:3px solid currentColor;outline-offset:3px}
:focus:not(:focus-visible){outline:none}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:1rem;top:-4rem;z-index:1000;padding:.6rem 1rem;background:#000;color:#fff;text-decoration:none;font-weight:600;border-radius:4px}
.skip-link:focus{top:1rem}
/* honeypot: fuera de pantalla, no display:none (los bots lo detectan) */
.hp-field{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
/* estado de formularios */
[data-form-status]{margin-top:.75rem}
[data-form-status]:empty{display:none}
.field-error{font-size:.9em;margin-top:.3rem}
/* selector de idioma accesible (estructura, no estilo) */
.lang-switch{position:relative}
.lang-switch ul{list-style:none;margin:0;padding:0}
.lang-switch[data-open="false"] ul{display:none}
/* util */
.visually-hidden-until-focus:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media print{.no-print,.skip-link,nav.site-nav,.lang-switch,.mobile-bar,.wa-float{display:none!important}a[href]::after{content:""}}
/* palabras largas (ruso, alemán) nunca desbordan en móvil: se hereda a todo el documento */
body{overflow-wrap:break-word}
h1,h2,h3,h4{hyphens:auto}
