/*
 * Roxty Framework — Base CSS
 * Reset minimal + CSS Custom Properties base
 * Las variables de color/tipografía se imprimen inline desde theme-modes.php
 *
 * Objetivo: < 3kb minificado
 */

/* ── RESET MINIMAL ─────────────────────────────────────────────────────── */

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    tab-size: 4;
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Herencia de fuente en elementos que no la heredan por defecto */
button, input, optgroup, select, textarea {
    font-family: inherit;
    font-size: 100%;
    line-height: 1.15;
}

/* Imágenes y media responsive */
img, video, svg, canvas, audio, iframe, embed, object {
    display: block;
    max-width: 100%;
    height: auto;
}

/* Links */
a {
    color: inherit;
    text-decoration: none;
}

/* Listas */
ul, ol {
    list-style: none;
}

/* Tablas */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* Botones — solo cursor global; borde/fondo lo define cada componente */
button {
    cursor: pointer;
}

/* Inputs — NO reset global: rompería formularios de Elementor / CF7 / WC.
   El reset de borde/fondo se aplica solo dentro de componentes .rxty-* */
.rxty-input,
.rxty-textarea {
    border: none;
    outline: none;
    background: none;
}

/* Hidden accesible */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* ── VARIABLES ADICIONALES ─────────────────────────────────────────────── */
/* Las variables de color/modo (--rxty-bg, --rxty-surface, --rxty-accent,   */
/* --rxty-text) las inyecta SIEMPRE roxty_print_css_variables_inline() vía  */
/* PHP en wp_head (prioridad 2, imprime antes que este stylesheet), según   */
/* el modo activo (dark/warm/clean). NO redeclararlas aquí: este archivo es */
/* un <link> externo que se imprime DESPUÉS del bloque inline — cualquier   */
/* valor puesto aquí gana la cascada por orden de aparición y anula         */
/* silenciosamente el modo elegido en Apariencia → Roxty Framework (bug     */
/* real detectado 2026-07-13: el sitio quedaba en negro aunque el modo      */
/* activo fuera "Clean"). Solo van aquí fallbacks de layout/tipografía que  */
/* son iguales en los tres modos.                                          */

:root {
    --rxty-font-main: 'Roboto', sans-serif;
    --rxty-container: 1200px;
    --rxty-gap: 1.5rem;
    --rxty-radius: 6px;
    --rxty-transition: 0.3s ease;
}
