/* Diseño principal: tipografías (@font-face), variables, reset, tipografía, colores y rejilla base. */
@font-face {
            font-family: 'Montserrat';
            font-style: normal;
            font-weight: 400 700;
            font-display: swap;
            src: url('/fonts/montserrat-latin-ext.woff2') format('woff2');
            unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
        }
@font-face {
            font-family: 'Montserrat';
            font-style: normal;
            font-weight: 400 700;
            font-display: swap;
            src: url('/fonts/montserrat-latin.woff2') format('woff2');
            unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
        }
@font-face {
            font-family: 'Outfit';
            font-style: normal;
            font-weight: 300 500;
            font-display: swap;
            src: url('/fonts/outfit-latin-ext.woff2') format('woff2');
            unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
        }
@font-face {
            font-family: 'Outfit';
            font-style: normal;
            font-weight: 300 500;
            font-display: swap;
            src: url('/fonts/outfit-latin.woff2') format('woff2');
            unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
        }
:root {
            --primary-color: #0d5a8c;
            --primary-light: #45c4e5;
            --primary-dark: #0d4d73;
            --secondary-color: #299dd8;
            --accent-color: #87d4fb;
            --text-main: #313131;
            --text-muted: #666666;
            --bg-light: #f8fbfe;
            --white: #ffffff;
            --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.05);
            --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
            --shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.1);
            --radius-sm: 8px;
            --radius-md: 12px;
            --radius-lg: 20px;
        }
* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
html,
        body {
            font-family: 'Outfit', sans-serif;
            color: var(--text-main);
            line-height: 1.6;
            background-color: var(--bg-light);
            overflow-x: hidden;
            width: 100%;
        }
h1,
        h2,
        h3,
        h4,
        .logo {
            font-family: 'Montserrat', sans-serif;
            font-weight: 700;
        }
.container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 20px;
        }
.row {
            display: flex;
            flex-wrap: wrap;
            margin: 0 -15px;
        }
.col {
            padding: 0 15px;
            flex: 1;
        }
.four {
            flex: 0 0 33.333%;
        }
.six {
            flex: 0 0 50%;
        }
.eight {
            flex: 0 0 66.666%;
        }
.twelve {
            flex: 0 0 100%;
        }
.section-padding {
            padding: 6rem 0;
        }
