/*! * Kimerkia * Copyright 2026 * Created by JM */
:root {

    --ds-green-200: #E9F700;
    --ds-green-200-rgb: 233, 247, 0;
    --ds-green-400: #75E058;
    --ds-green-400-rgb: 117, 224, 88;
    --ds-green-600: #00BE83;
    --ds-green-600-rgb: 0, 190, 131;

    --ds-blue-200: #009793;
    --ds-blue-200-rgb: 0, 151, 147;
    --ds-blue-400: #006F82;
    --ds-blue-400-rgb: 0, 111, 130;
    --ds-blue-600: #2F4858;
    --ds-blue-600-rgb: 47, 72, 88;

    --ds-white: #fff;
    --ds-white-rgb: 255, 255, 255;
    --ds-light: var(--ds-white);
    --ds-light-rgb: var(--ds-white-rgb);

    --ds-obsidian: #252627;
    --ds-obsidian-rgb: 37, 38, 39;
    --ds-dark: var(--ds-obsidian);
    --ds-dark-rgb: var(--ds-obsidian-rgb);
    --ds-black: #000;
    --ds-black-rgb: 0, 0, 0;

    --ds-star: var(--ds-blue-200);
    --ds-star-rgb: var(--ds-blue-200-rgb);
    --ds-alt: var(--ds-green-200);
    --ds-alt-rgb: var(--ds-green-200-rgb);

    --ds-color-theme: "Light";
    --ds-theme-value: 0;
    --ds-font: "Poppins";
}


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

body,
html {
    width: 100%
}

body {
    margin: 0;
    font-family: var(--ds-font);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--ds-font);
    background-color: var(--ds-light);
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
    overflow-x: hidden
}

/** * ------- * COLORS & BACKGROUNDS * ------- */
.ds-turquo-200 {
    color: var(--ds-turquo-200) !important
}

.ds-turquo-200-bg {
    background-color: var(--ds-turquo-200) !important
}

.ds-turquo-400 {
    color: var(--ds-turquo-400) !important
}

.ds-turquo-400-bg {
    background-color: var(--ds-turquo-400) !important
}

.ds-blue-200 {
    color: var(--ds-blue-200) !important
}

.ds-blue-200-bg {
    background-color: var(--ds-blue-200) !important
}

.ds-blue-400 {
    color: var(--ds-blue-400) !important
}

.ds-blue-400-bg {
    background-color: var(--ds-blue-400) !important
}

.ds-blue-700 {
    color: var(--ds-blue-700) !important
}

.ds-blue-700-bg {
    background-color: var(--ds-blue-700) !important
}

.ds-danger {
    color: var(--ds-danger-200) !important
}

.ds-danger-bg {
    background-color: var(--ds-danger-200) !important
}

.ds-success {
    color: var(--ds-success-200) !important
}

.ds-success-bg {
    background-color: var(--ds-success-200) !important
}

.ds-warning {
    color: var(--ds-warning-200) !important
}

.ds-warning-bg {
    background-color: var(--ds-warning-200) !important
}

.ds-info {
    color: var(--ds-info-200) !important
}

.ds-info-bg {
    background-color: var(--ds-info-200) !important
}

.ds-star {
    color: var(--ds-star) !important
}

.ds-star-bg {
    background-color: var(--ds-star) !important
}

.ds-alt {
    color: var(--ds-alt) !important
}

.ds-alt-bg {
    background-color: var(--ds-alt) !important
}

.ds-white {
    color: var(--ds-white) !important
}

.ds-white-bg {
    background-color: var(--ds-white) !important
}

.ds-light {
    color: var(--ds-light) !important
}

.ds-light-bg {
    background-color: var(--ds-light) !important
}

.ds-black {
    color: var(--ds-black) !important
}

.ds-black-bg {
    background-color: var(--ds-black) !important
}

.ds-dark {
    color: var(--ds-dark) !important
}

.ds-dark-bg {
    background-color: var(--ds-dark) !important
}

.ds-obsidian {
    color: var(--ds-obsidian) !important
}

.ds-obsidian-bg {
    background-color: var(--ds-obsidian) !important
}

/** * ------- * TEXT * ------- */
.ds-h1,
.ds-h2,
.ds-h3,
.ds-h4,
.ds-h5,
.ds-link,
.ds-text,
a,
button,
h1,
h2,
h3,
h4,
h5,
h6,
p,
span {
    margin: 0;
    padding: 0;
    font-family: var(--ds-font);
    color: var(--ds-dark);
    text-decoration: none;
    font-weight: 400
}

.ds-h1 {
    font-size: 2.125rem !important
}

.ds-h2 {
    font-size: 1.875rem !important
}

.ds-h3 {
    font-size: 1.5rem !important
}

.ds-h4 {
    font-size: 1.25rem !important
}

.ds-h5 {
    font-size: 1.125rem !important
}

.ds-h6 {
    font-size: 1rem !important
}

.ds-link,
.ds-text {
    font-family: var(--ds-font);
    font-size: 1.125rem;
    color: var(--ds-dark);
    text-decoration: none
}

.ds-link:focus,
.ds-link:hover {
    color: inherit
}

.ds-text {
    font-family: var(--ds-font);
    font-weight: 500
}

.ds-text-small {
    font-size: .925rem !important
}

.ds-bold-100 {
    font-weight: 100 !important
}

.ds-bold-200 {
    font-weight: 200 !important
}

.ds-bold-300 {
    font-weight: 300 !important
}

.ds-bold-400 {
    font-weight: 400 !important
}

.ds-bold-500 {
    font-weight: 500 !important
}

.ds-bold-600 {
    font-weight: 600 !important
}

.ds-bold-700 {
    font-weight: 700 !important
}

.ds-bold-800 {
    font-weight: 800 !important
}

.ds-bold-900 {
    font-weight: 900 !important
}

.ds-font {
    font-family: var(--ds-font) !important
}

.ds-uppercase {
    text-transform: uppercase
}

.ds-text-start {
    text-align: start !important
}

.ds-text-center {
    text-align: center !important
}

.ds-text-justify {
    text-align: justify !important
}

@media (min-width:576px) and (max-width:1199.98px) {
    .ds-h1 {
        font-size: 2.125rem
    }

    .ds-h2 {
        font-size: 1.5rem
    }

    .ds-h3 {
        font-size: 1.25rem
    }

    .ds-h4 {
        font-size: 1.125rem
    }

    .ds-h5 {
        font-size: 1rem
    }
}

@media (max-width:575.98px) {
    .ds-h1 {
        font-size: 1.5rem
    }

    .ds-h2 {
        font-size: 1.25rem
    }

    .ds-h3 {
        font-size: 1.125rem
    }
}

/** * ------- * ICONOS * ------- */
.ds-icono {
    width: 48px;
    height: 48px;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    align-content: center;
    font-size: 2.425rem;
    overflow: hidden;
    position: relative;
    color: var(--ds-dark)
}

.ds-icono.ds-st {
    width: 40px;
    height: 40px;
    font-size: 1rem !important
}

.ds-icono.ds-xxs {
    width: 16px;
    height: 16px;
    font-size: .825rem
}

.ds-icono.ds-xs {
    width: 32px;
    height: 32px;
    font-size: 1.475rem
}

.ds-icono.ds-sm {
    width: 40px;
    height: 40px;
    font-size: 1.975rem
}

.ds-icono.ds-md {
    width: 64px;
    height: 64px;
    font-size: 3.275rem
}

.ds-icono.ds-lg {
    width: 96px;
    height: 96px;
    font-size: 4.725rem
}

.ds-icono.ds-xl {
    width: 192px;
    height: 192px;
    font-size: 10.225rem
}

.ds-icono.ds-xxl {
    width: 256px;
    height: 256px;
    font-size: 14.225rem
}

.ds-icono img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.ds-icono.ds-circle {
    border-radius: 50% !important
}

.ds-icono i {
    color: inherit
}

.ds-icono.ds-ring {
    box-shadow: 0 0 0 3px
}

@media (max-width:575.98px) {
    .ds-icono.ds-xl {
        width: 96px;
        height: 96px;
        font-size: 4.725rem
    }

    .ds-icono.ds-xxl {
        width: 192px;
        height: 192px;
        font-size: 10.225rem
    }
}

/** * ------- * LISTAS * ------- */
.ds-lista-items {
    list-style: none;
    display: flex;
    flex-direction: row;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
    overflow: visible
}

.ds-lista-items .ds-item {
    position: relative
}

.ds-lista-items .ds-link {
    font-family: var(--ds-font);
    align-items: center
}

.ds-lista-items .ds-link {
    text-decoration: none;
    color: rgba(var(--ds-dark-rgb), .8);
    display: inline-flex;
    font-size: 1.15rem;
    margin: 0;
    padding: 3px 18px;
    font-weight: 600;
    text-transform: uppercase
}

/** * ------- * ANIMATIONS * ------- */
.fade-in-top {
    -webkit-animation: fade-in-top .6s cubic-bezier(.39, .575, .565, 1) both;
    animation: fade-in-top .6s cubic-bezier(.39, .575, .565, 1) both
}

@-webkit-keyframes fade-in-top {
    0% {
        -webkit-transform: translateY(-50px);
        transform: translateY(-50px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1
    }
}

@keyframes fade-in-top {
    0% {
        -webkit-transform: translateY(-50px);
        transform: translateY(-50px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1
    }
}

.fade-in-bottom {
    -webkit-animation: fade-in-bottom .6s cubic-bezier(.39, .575, .565, 1) both;
    animation: fade-in-bottom .6s cubic-bezier(.39, .575, .565, 1) both
}

@-webkit-keyframes fade-in-bottom {
    0% {
        -webkit-transform: translateY(50px);
        transform: translateY(50px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1
    }
}

@keyframes fade-in-bottom {
    0% {
        -webkit-transform: translateY(50px);
        transform: translateY(50px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1
    }
}

.fade-in-left {
    -webkit-animation: fade-in-left .6s cubic-bezier(.39, .575, .565, 1) both;
    animation: fade-in-left .6s cubic-bezier(.39, .575, .565, 1) both
}

@-webkit-keyframes fade-in-left {
    0% {
        -webkit-transform: translateX(-50px);
        transform: translateX(-50px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1
    }
}

@keyframes fade-in-left {
    0% {
        -webkit-transform: translateX(-50px);
        transform: translateX(-50px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1
    }
}

.fade-in-right {
    -webkit-animation: fade-in-right .6s cubic-bezier(.39, .575, .565, 1) both;
    animation: fade-in-right .6s cubic-bezier(.39, .575, .565, 1) both
}

@-webkit-keyframes fade-in-right {
    0% {
        -webkit-transform: translateX(50px);
        transform: translateX(50px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1
    }
}

@keyframes fade-in-right {
    0% {
        -webkit-transform: translateX(50px);
        transform: translateX(50px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1
    }
}

.fade-in-fwd {
    -webkit-animation: fade-in-fwd .6s cubic-bezier(.39, .575, .565, 1) both;
    animation: fade-in-fwd .6s cubic-bezier(.39, .575, .565, 1) both
}

@-webkit-keyframes fade-in-fwd {
    0% {
        -webkit-transform: translateZ(-80px);
        transform: translateZ(-80px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
        opacity: 1
    }
}

@keyframes fade-in-fwd {
    0% {
        -webkit-transform: translateZ(-80px);
        transform: translateZ(-80px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
        opacity: 1
    }
}

.fade-out-top {
    -webkit-animation: fade-out-top .7s cubic-bezier(.25, .46, .45, .94) both;
    animation: fade-out-top .7s cubic-bezier(.25, .46, .45, .94) both
}

@-webkit-keyframes fade-out-top {
    0% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1
    }

    100% {
        -webkit-transform: translateY(-50px);
        transform: translateY(-50px);
        opacity: 0
    }
}

@keyframes fade-out-top {
    0% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1
    }

    100% {
        -webkit-transform: translateY(-50px);
        transform: translateY(-50px);
        opacity: 0
    }
}

.fade-out-bottom {
    -webkit-animation: fade-out-bottom .7s cubic-bezier(.25, .46, .45, .94) both;
    animation: fade-out-bottom .7s cubic-bezier(.25, .46, .45, .94) both
}

@-webkit-keyframes fade-out-bottom {
    0% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1
    }

    100% {
        -webkit-transform: translateY(50px);
        transform: translateY(50px);
        opacity: 0
    }
}

@keyframes fade-out-bottom {
    0% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1
    }

    100% {
        -webkit-transform: translateY(50px);
        transform: translateY(50px);
        opacity: 0
    }
}

.fade-out-left {
    -webkit-animation: fade-out-left .7s cubic-bezier(.25, .46, .45, .94) both;
    animation: fade-out-left .7s cubic-bezier(.25, .46, .45, .94) both
}

@-webkit-keyframes fade-out-left {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1
    }

    100% {
        -webkit-transform: translateX(-50px);
        transform: translateX(-50px);
        opacity: 0
    }
}

@keyframes fade-out-left {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1
    }

    100% {
        -webkit-transform: translateX(-50px);
        transform: translateX(-50px);
        opacity: 0
    }
}

.fade-out-right {
    -webkit-animation: fade-out-right .7s cubic-bezier(.25, .46, .45, .94) both;
    animation: fade-out-right .7s cubic-bezier(.25, .46, .45, .94) both
}

@-webkit-keyframes fade-out-right {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1
    }

    100% {
        -webkit-transform: translateX(50px);
        transform: translateX(50px);
        opacity: 0
    }
}

@keyframes fade-out-right {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1
    }

    100% {
        -webkit-transform: translateX(50px);
        transform: translateX(50px);
        opacity: 0
    }
}

.fade-out-fwd {
    -webkit-animation: fade-out-fwd .7s cubic-bezier(.25, .46, .45, .94) both;
    animation: fade-out-fwd .7s cubic-bezier(.25, .46, .45, .94) both
}

@-webkit-keyframes fade-out-fwd {
    0% {
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
        opacity: 1
    }

    100% {
        -webkit-transform: translateZ(80px);
        transform: translateZ(80px);
        opacity: 0
    }
}

@keyframes fade-out-fwd {
    0% {
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
        opacity: 1
    }

    100% {
        -webkit-transform: translateZ(80px);
        transform: translateZ(80px);
        opacity: 0
    }
}

.ds-animation-spin {
    -webkit-animation-name: fa-spin;
    animation-name: fa-spin;
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear
}

.ds-float-animation {
    animation: ds-float-animation 6s ease-in-out infinite
}

@-webkit-keyframes ds-float-animation {
    0% {
        transform: translatey(0)
    }

    50% {
        transform: translatey(-20px)
    }

    100% {
        transform: translatey(0)
    }
}

@keyframes ds-float-animation {
    0% {
        transform: translatey(0)
    }

    50% {
        transform: translatey(-20px)
    }

    100% {
        transform: translatey(0)
    }
}

.ds-pulse-animation {
    -webkit-animation-name: ds-pulse-frames;
    animation-name: ds-pulse-frames
}

@-webkit-keyframes ds-pulse-frames {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }

    50% {
        -webkit-transform: scale3d(1.05, 1.05, 1.05);
        transform: scale3d(1.05, 1.05, 1.05)
    }

    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
}

@keyframes ds-pulse-frames {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }

    50% {
        -webkit-transform: scale3d(1.05, 1.05, 1.05);
        transform: scale3d(1.05, 1.05, 1.05)
    }

    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
}

.ds-flash-animation {
    -webkit-animation-name: flash;
    animation-name: flash
}

@-webkit-keyframes flash {

    50%,
    from,
    to {
        opacity: 1
    }

    25%,
    75% {
        opacity: 0
    }
}

@keyframes flash {

    50%,
    from,
    to {
        opacity: 1
    }

    25%,
    75% {
        opacity: 0
    }
}

.ds-time {
    animation-duration: 1s !important
}

.ds-time-infinite {
    animation-iteration-count: infinite !important
}

.ds-time-xxs {
    animation-duration: 150ms !important
}

.ds-time-xs {
    animation-duration: .3s !important
}

.ds-time-sm {
    animation-duration: .6s !important
}

.ds-time-md {
    animation-duration: .9s !important
}

.ds-time-lg {
    animation-duration: 1.2s !important
}

.ds-time-xl {
    animation-duration: 3s !important
}

.ds-time-xxl {
    animation-duration: 5s !important
}

.ds-delay-time {
    animation-delay: 1s !important
}

.ds-delay-time-xxs {
    animation-delay: 150ms !important
}

.ds-delay-time-xs {
    animation-delay: .3s !important
}

.ds-delay-time-sm {
    animation-delay: .6s !important
}

.ds-delay-time-md {
    animation-delay: .9s !important
}

.ds-delay-time-lg {
    animation-delay: 1.2s !important
}

.ds-delay-time-xl {
    animation-delay: 3s !important
}

.ds-delay-time-xxl {
    animation-delay: 5s !important
}


/** * ------- * TEXT GRADIENT * ------- */
.kpa-text-gradient {
    background: linear-gradient(var(--ds-turquo-200), var(--ds-blue-200));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-fill-color: transparent
}

.kpa-dark-gradient {
    background: linear-gradient(90deg, var(--ds-dark), var(--ds-dark), var(--ds-blue-400), var(--ds-dark));
    background-size: 200% 100%;
    background-position: 125% 0;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-fill-color: transparent
}

/**
 * ----------------------------------------
 * APP COMPONENTS
 * ----------------------------------------
*/

/** * ------- * UTILS * ------- */
.ds-d-block {
    display: block !important
}

.ds-d-inline-block {
    display: inline-block !important
}

.ds-d-flex {
    display: flex !important
}

.ds-d-none,
.ds-hidden {
    display: none !important
}

.ds-align-items-start {
    align-items: flex-start !important
}

.ds-align-items-center {
    align-items: center !important
}

.ds-align-items-end {
    align-items: flex-end !important
}

.ds-justify-content-start {
    justify-content: flex-start !important
}

.ds-justify-content-center {
    justify-content: center !important
}

.ds-justify-content-end {
    justify-content: flex-end !important
}

.ds-flex-row {
    flex-direction: row !important
}

.ds-flex-column {
    flex-direction: column !important
}

.ds-flex-wrap {
    flex-wrap: wrap !important
}

.ds-flex-center {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important
}

.ds-flex-inline {
    display: flex !important;
    align-items: center !important
}

.ds-gap-xxs {
    gap: .25rem !important
}

.ds-gap-xs {
    gap: .5rem !important
}

.ds-gap-sm {
    gap: .75rem !important
}

.ds-gap-md {
    gap: 1rem !important
}

.ds-gap-lg {
    gap: 1.25rem !important
}

.ds-gap-xl {
    gap: 1.5rem !important
}

.ds-gap-xxl {
    gap: 2rem !important
}

.ds-ms-auto {
    margin-left: auto !important
}

.ds-me-auto {
    margin-right: auto !important
}

.ds-mt-auto {
    margin-top: auto !important
}

.ds-mb-auto {
    margin-bottom: auto !important
}

.ds-m-1 {
    margin: .25rem !important
}

.ds-m-2 {
    margin: .5rem !important
}

.ds-m-3 {
    margin: 1rem !important
}

.ds-m-4 {
    margin: 1.5rem !important
}

.ds-m-5 {
    margin: 3rem !important
}

.ds-mx-auto {
    margin: 0 auto !important
}

.ds-mx-0 {
    margin-left: 0 !important;
    margin-right: 0 !important
}

.ds-mx-1 {
    margin-left: .25rem !important;
    margin-right: .25rem !important
}

.ds-mx-2 {
    margin-left: .5rem !important;
    margin-right: .5rem !important
}

.ds-mx-3 {
    margin-left: 1rem !important;
    margin-right: 1rem !important
}

.ds-mx-4 {
    margin-left: 1.5rem !important;
    margin-right: 1.5rem !important
}

.ds-mx-5 {
    margin-left: 3rem !important;
    margin-right: 3rem !important
}

.ds-my-auto {
    margin: auto 0 !important
}

.ds-my-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important
}

.ds-my-1 {
    margin-top: .25rem !important;
    margin-bottom: .25rem !important
}

.ds-my-2 {
    margin-top: .5rem !important;
    margin-bottom: .5rem !important
}

.ds-my-3 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important
}

.ds-my-4 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important
}

.ds-my-5 {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important
}

.ds-mt-1 {
    margin-top: .25rem !important
}

.ds-mt-2 {
    margin-top: .5rem !important
}

.ds-mt-3 {
    margin-top: 1rem !important
}

.ds-mt-4 {
    margin-top: 1.5rem !important
}

.ds-mt-5 {
    margin-top: 3rem !important
}

.ds-mb-1 {
    margin-bottom: .25rem !important
}

.ds-mb-2 {
    margin-bottom: .5rem !important
}

.ds-mb-3 {
    margin-bottom: 1rem !important
}

.ds-mb-4 {
    margin-bottom: 1.5rem !important
}

.ds-mb-5 {
    margin-bottom: 3rem !important
}

.ds-ms-1 {
    margin-left: .25rem !important
}

.ds-ms-2 {
    margin-left: .5rem !important
}

.ds-ms-3 {
    margin-left: 1rem !important
}

.ds-ms-4 {
    margin-left: 1.5rem !important
}

.ds-ms-5 {
    margin-left: 3rem !important
}

.ds-me-1 {
    margin-right: .25rem !important
}

.ds-me-2 {
    margin-right: .5rem !important
}

.ds-me-3 {
    margin-right: 1rem !important
}

.ds-me-4 {
    margin-right: 1.5rem !important
}

.ds-me-5 {
    margin-right: 3rem !important
}

.ds-ps-auto {
    padding-left: auto !important
}

.ds-pe-auto {
    padding-right: auto !important
}

.ds-pt-auto {
    padding-top: auto !important
}

.ds-pb-auto {
    padding-bottom: auto !important
}

.ds-p-1 {
    padding: .25rem !important
}

.ds-p-2 {
    padding: .5rem !important
}

.ds-p-3 {
    padding: 1rem !important
}

.ds-p-4 {
    padding: 1.5rem !important
}

.ds-p-5 {
    padding: 3rem !important
}

.ds-px-0 {
    padding-left: 0 !important;
    padding-right: 0 !important
}

.ds-px-1 {
    padding-left: .25rem !important;
    padding-right: .25rem !important
}

.ds-px-2 {
    padding-left: .5rem !important;
    padding-right: .5rem !important
}

.ds-px-3 {
    padding-left: 1rem !important;
    padding-right: 1rem !important
}

.ds-px-4 {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important
}

.ds-px-5 {
    padding-left: 3rem !important;
    padding-right: 3rem !important
}

.ds-py-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important
}

.ds-py-1 {
    padding-top: .25rem !important;
    padding-bottom: .25rem !important
}

.ds-py-2 {
    padding-top: .5rem !important;
    padding-bottom: .5rem !important
}

.ds-py-3 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important
}

.ds-py-4 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important
}

.ds-py-5 {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important
}

.ds-pt-1 {
    padding-top: .25rem !important
}

.ds-pt-2 {
    padding-top: .5rem !important
}

.ds-pt-3 {
    padding-top: 1rem !important
}

.ds-pt-4 {
    padding-top: 1.5rem !important
}

.ds-pt-5 {
    padding-top: 3rem !important
}

.ds-pb-1 {
    padding-bottom: .25rem !important
}

.ds-pb-2 {
    padding-bottom: .5rem !important
}

.ds-pb-3 {
    padding-bottom: 1rem !important
}

.ds-pb-4 {
    padding-bottom: 1.5rem !important
}

.ds-pb-5 {
    padding-bottom: 3rem !important
}

.ds-ps-1 {
    padding-left: .25rem !important
}

.ds-ps-2 {
    padding-left: .5rem !important
}

.ds-ps-3 {
    padding-left: 1rem !important
}

.ds-ps-4 {
    padding-left: 1.5rem !important
}

.ds-ps-5 {
    padding-left: 3rem !important
}

.ds-pe-1 {
    padding-right: .25rem !important
}

.ds-pe-2 {
    padding-right: .5rem !important
}

.ds-pe-3 {
    padding-right: 1rem !important
}

.ds-pe-4 {
    padding-right: 1.5rem !important
}

.ds-pe-5 {
    padding-right: 3rem !important
}

.ds-g-0 {
    gap: 0 !important
}

.ds-g-1 {
    gap: .25rem !important
}

.ds-g-2 {
    gap: .5rem !important
}

.ds-g-3 {
    gap: 1rem !important
}

.ds-g-4 {
    gap: 1.5rem !important
}

.ds-g-5 {
    gap: 3rem !important
}

.ds-p-0 {
    padding: 0 !important
}

.ds-m-0 {
    margin: 0 !important
}

.ds-pt-0 {
    padding-top: 0 !important
}

.ds-pb-0 {
    padding-bottom: 0 !important
}

.ds-ps-0 {
    padding-left: 0 !important
}

.ds-pe-0 {
    padding-right: 0 !important
}

.ds-mt-0 {
    margin-top: 0 !important
}

.ds-mb-0 {
    margin-bottom: 0 !important
}

.ds-ms-0 {
    margin-left: 0 !important
}

.ds-me-0 {
    margin-right: 0 !important
}

/** * ------- * FORMS * ------- */
.ds-form-app {
    position: relative;
    z-index: 0
}

.ds-form-panel {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem
}

.ds-form-panel .ds-form-group {
    width: 100%
}

.ds-form-group {
    position: relative;
    display: flex;
    flex-direction: column;
    z-index: 0;
    margin-bottom: 1.5rem
}

.ds-flex-group {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem
}

.ds-flex-group .ds-form-group {
    width: 100%;
    margin-bottom: 0
}

.ds-form-label {
    width: 100%;
    font-family: var(--ds-font);
    font-size: .9rem;
    font-weight: 400;
    display: flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
    margin-bottom: .5rem;
    color: var(--ds-dark)
}

.ds-input-box {
    width: 100%;
    position: relative;
    z-index: 0
}

.ds-input-app {
    width: 100%;
    height: 40px;
    border: 1px rgba(var(--ds-dark-rgb), .35) solid;
    padding: 0 12px;
    position: relative;
    z-index: 0;
    font-size: 1rem;
    transition: all .225s ease;
    border-radius: 2px;
    font-family: var(--ds-font);
    font-weight: 500;
    color: var(--ds-dark)
}

textarea.ds-input-app {
    resize: none;
    height: auto;
    padding: 7px 14px
}

.ds-input-app:focus {
    outline: 0;
    box-shadow: 0 0 0 3px rgba(var(--ds-alt-rgb), .225);
    border-color: rgba(var(--ds-alt-rgb), .5)
}

.kpa-button-clear {
    width: auto;
    height: auto;
    background: 0 0 !important;
    border: 0;
    display: flex;
    align-items: center;
    text-decoration: none;
    cursor: pointer
}

.ds-input-disabled {
    opacity: .4;
    cursor: not-allowed;
    position: relative;
    z-index: 0
}

.ds-input-disabled * {
    pointer-events: none;
    user-select: none
}

.ds-input-disabled.ds-disabled-animation {
    overflow: hidden;
    border-radius: 4px
}

.ds-input-disabled.ds-disabled-animation::before {
    content: '';
    width: 128px;
    height: 100%;
    top: 0;
    left: 0;
    background-image: linear-gradient(90deg, transparent, var(--ds-light), var(--ds-light), transparent);
    position: absolute;
    z-index: 1;
    animation: ds-disabled-animation 1s ease infinite
}

@keyframes ds-disabled-animation {
    to {
        left: 100%
    }
}

.ds-counter-input {
    position: absolute;
    bottom: 0;
    right: 0;
    font-size: 10px;
    font-weight: 600;
    color: rgba(var(--ds-dark-rgb), .7);
    padding: 4px
}

.ds-counter-input+input {
    padding-right: 21px
}

.ds-button-app {
    width: auto;
    min-width: 200px;
    height: 40px;
    position: relative;
    z-index: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: linear-gradient(45deg, var(--ds-blue-700), var(--ds-turquo-200));
    color: var(--ds-white);
    font-family: var(--ds-font);
    font-size: .9rem;
    font-weight: 500;
    border: 0;
    outline: 0;
    border-radius: 4px;
    cursor: pointer
}

.ds-button-app:focus {
    outline: 0;
    box-shadow: 0 0 0 4px rgba(var(--ds-turquo-200-rgb), .3)
}

.ds-dark-button {
    width: auto;
    min-width: 200px;
    height: 40px;
    position: relative;
    z-index: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--ds-dark);
    color: var(--ds-light);
    font-family: var(--ds-font);
    font-size: .9rem;
    font-weight: 500;
    border: 0;
    outline: 0;
    border-radius: 4px;
    cursor: pointer
}

.ds-square-button {
    width: 40px;
    height: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: rgba(var(--ds-alt-rgb), .0925);
    border: 0;
    border-radius: 4px;
    cursor: pointer;
    color: var(--ds-alt);
    transition: all .2s ease
}

.ds-square-button:focus {
    outline: 0;
    box-shadow: 0 0 0 2px rgba(var(--ds-alt-rgb), .25)
}

.ds-light-image {
    filter: invert(var(--ds-theme-value)) grayscale(var(--ds-theme-value))
}

/** * ------- * ALERTS * ------- */
.ds-alert-container {
    position: fixed;
    bottom: 0;
    right: 0;
    z-index: 8020
}

.ds-alert-app {
    --kpa-min-height: 96px;
    width: 520px;
    min-height: var(--kpa-min-height);
    border-radius: 8px;
    margin: 16px;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    background-color: rgba(var(--ds-light-rgb), .7);
    backdrop-filter: blur(2rem);
    -webkit-backdrop-filter: blur(2rem);
    box-shadow: 0 0 1rem rgba(0, 0, 0, .1);
    border-radius: 3px;
    overflow: hidden
}

.ds-alert-icono {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center
}

.ds-alert-icono .ds-icono {
    width: 40px;
    height: 40px;
    font-size: 1.25rem;
    color: var(--ds-danger-200) !important
}

.ds-body-alert {
    width: 0;
    flex: 1;
    display: flex;
    align-items: center
}

.ds-body-alert>code {
    font-family: var(--ds-font);
    font-size: .9rem;
    line-height: 1.2rem
}

.ds-footer-alert {
    width: auto;
    display: flex;
    margin-left: auto;
    min-height: var(--kpa-min-height);
    align-items: flex-start
}

.ds-close-alert {
    background-color: var(--ds-danger-200);
    width: auto;
    height: auto;
    cursor: pointer;
    border: 0;
    border-radius: 4px;
    color: var(--ds-white);
    font-weight: 600;
    text-transform: uppercase;
    font-family: var(--ds-font);
    font-size: .8rem
}

.ds-timer-alert {
    width: 0%;
    height: 1px;
    background-color: var(--ds-danger-200);
    position: absolute;
    bottom: 0;
    left: 0;
    animation: ds-timer-alert 5s linear
}

@keyframes ds-timer-alert {
    to {
        width: 100%
    }
}

.ds-alert-app.ds-alert-success .ds-alert-icono .ds-icono {
    color: var(--ds-success-200) !important
}

.ds-alert-app.ds-alert-success .ds-timer-alert {
    background-color: var(--ds-success-200) !important
}

.ds-alert-app.ds-alert-success .ds-close-alert {
    background-color: var(--ds-success-200) !important
}

.ds-alert-app.ds-alert-warning .ds-alert-icono .ds-icono {
    color: var(--ds-warning-200) !important
}

.ds-alert-app.ds-alert-warning .ds-timer-alert {
    background-color: var(--ds-warning-200) !important
}

.ds-alert-app.ds-alert-warning .ds-close-alert {
    background-color: var(--ds-warning-200) !important
}

.ds-alert-app.ds-alert-info .ds-alert-icono .ds-icono {
    color: var(--ds-info-200) !important
}

.ds-alert-app.ds-alert-info .ds-timer-alert {
    background-color: var(--ds-info-200) !important
}

.ds-alert-app.ds-alert-info .ds-close-alert {
    background-color: var(--ds-info-200) !important
}

@media (max-width: 575.98px) {
    .ds-alert-app {
        width: 300px
    }

    .ds-body-alert {
        font-size: .7rem
    }

    .ds-alert-app .ds-close-alert,
    .ds-alert-app .ds-close-alert .ds-icono {
        width: 32px;
        height: 32px
    }

    .ds-footer-alert {
        padding-right: 6px
    }

    .ds-alert-icono {
        width: 32px;
        height: 32px
    }

    .ds-alert-icono .ds-icono {
        width: 100%;
        height: 100%;
        font-size: .9rem
    }
}

/** * ------- * MODAL * ------- */
.ds-modal-app {
    width: 100%;
    height: 100%;
    inset: 0;
    margin: auto;
    position: fixed;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    z-index: 5020;
    --offset-margin-y: 80px
}

.ds-modal-app:not(.ds-active) {
    display: none !important
}

.ds-modal-dialog {
    max-width: 1200px;
    min-width: 900px;
    height: auto;
    position: relative;
    background-color: var(--ds-light);
    border-radius: 4px;
    top: 80px;
    margin: 0 auto;
    overflow: hidden;
    z-index: 5020
}

.ds-modal-app.ds-modal-center .ds-modal-dialog {
    top: 0;
    margin: auto
}

.ds-modal-app.ds-modal-ajust .ds-modal-dialog {
    margin-top: var(--offset-margin-y);
    margin-bottom: var(--offset-margin-y)
}

.ds-modal-title {
    width: 100%;
    min-height: 90px;
    padding: 1rem;
    position: relative
}

.ds-modal-close {
    --smclos: 56px;
    width: var(--smclos);
    height: var(--smclos);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    border: 0;
    cursor: pointer;
    position: relative;
    color: var(--ds-dark);
    font-size: 1.2rem;
    background-color: var(--ds-light);
    z-index: 1;
    border-radius: inherit;
    margin-left: auto
}

.ds-title-modal {
    font-size: 1.725rem !important;
    text-transform: uppercase;
    font-weight: 600;
    width: 100%;
    color: var(--ds-star);
    padding-right: 40px
}

.ds-modal-body {
    width: 100%;
    position: relative;
    z-index: 0
}

.ds-modal-footer {
    width: 100%;
    min-height: 80px;
    position: relative;
    z-index: 0;
    display: flex;
    align-items: center;
    padding: 1rem
}

.ds-modal-backdrop {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 5020;
    background-color: rgba(var(--ds-black-solid-rgb), .825)
}

.ds-modal-backdrop::before {
    content: '';
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0
}

.ds-modal-overflow {
    overflow: hidden !important
}

/** * ------- * LOADING * ------- */
.ds-loading-text {
    width: 100%;
    height: 48px;
    position: relative;
    z-index: 0;
    display: flex;
    align-items: center;
    gap: .5rem;
    border-radius: 8px;
    padding: 0 1rem;
    cursor: pointer;
    overflow: hidden;
    font-weight: 600;
    text-transform: uppercase;
    font-size: .8rem;
    overflow: hidden;
    user-select: none !important
}

.ds-loading-text::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(90deg, transparent, var(--ds-light), transparent);
    animation: ds-loading-text 1.2s linear infinite
}

.ds-loading-text>.ds-icono {
    color: var(--ds-alt);
    width: 16px;
    height: 16px;
    font-size: .8rem
}

.ds-loading-text~* {
    display: none
}

@keyframes ds-loading-text {
    to {
        left: 100%
    }
}

.ds-loading-box {
    width: 100%;
    min-height: 400px;
    position: relative;
    z-index: 0;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center
}

.ds-loading-box~* {
    display: none !important
}

[data-role=ds-input-loading] {
    position: relative !important;
    z-index: 0 !important
}

.ds-loading-input {
    width: 100%;
    height: 48px;
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: .5rem;
    box-shadow: 0 1px 4px rgba(var(--ds-black-solid-rgb), .2);
    border-radius: 8px;
    padding: 0 1rem;
    background-color: rgba(var(--ds-light-rgb), .4);
    backdrop-filter: blur(1rem);
    -webkit-backdrop-filter: blur(1rem);
    cursor: pointer;
    background-image: linear-gradient(45deg, rgba(var(--ds-alt-rgb), .0725), transparent);
    overflow: hidden
}

.ds-loading-input>.ds-icono {
    color: var(--ds-alt);
    width: 16px;
    height: 16px;
    font-size: .8rem
}

.ds-loading-input~* {
    display: none
}

.ds-text-loading {
    font-size: .8rem;
    font-weight: 600;
    background: linear-gradient(90deg, var(--ds-dark), var(--ds-dark), var(--ds-blue-400), var(--ds-dark));
    background-size: 200% 100%;
    background-position: -12.5% 0;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-fill-color: transparent;
    animation: reveal-blue 2s ease-in-out infinite;
    animation-fill-mode: forwards;
    animation-direction: alternate-reverse;
    text-transform: uppercase;
    user-select: none
}

/**
 * ----------------------------------------
 * INDEX PAGE STYLES
 * ----------------------------------------
*/
/*! * Kimerkia * Copyright 2026 * Created by JM */
:root {
    --flw-topbar-height: 128px;
    --flw-margin-site: 80px;
}

/** * ------- * TOPBARSITE * ------- */
.flw-topbar-navigation {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    z-index: 4020;
    padding: 0 var(--flw-margin-site);
    padding-top: 40px
}

.flw-topbar-site {
    width: 1200px;
    height: 56px;
    background: var(--ds-black);
    padding: 14px 30px;
    padding: 0 30px;
    border-radius: 50px;
    box-shadow: inset 0 0 0 1px rgba(var(--ds-white-rgb), .2)
}

.flw-topbar-inner {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center
}

.flw-topbar-logo {
    width: 200px;
    height: 100%;
    display: flex;
    align-items: center;
    font-weight: 600
}

.flw-topbar-logo .ds-icono[data-role=flw-logo-circle] {
    width: 56px;
    height: 100%;
    overflow: hidden
}

.flw-topbar-logo .ds-icono[data-role=flw-logo-circle] img {
    position: absolute;
    width: 64px;
    height: auto;
    object-fit: contain;
    top: 4px
}

.flw-topbar-logo .ds-icono[data-role=flw-logo-text] {
    width: 96px;
    height: 100%;
    overflow: hidden
}

.flw-topbar-logo .ds-icono[data-role=flw-logo-text] img {
    position: absolute;
    width: 96px;
    height: auto;
    object-fit: contain;
    top: -36px
}

.flw-topbar-menu {
    display: flex;
    gap: 40px;
    list-style: none;
    font-size: 15px
}

.flw-topbar-menu .ds-link {
    cursor: pointer;
    color: var(--ds-white);
    padding: 0;
    font-size: .9rem;
    font-weight: 500
}

.flw-toggle-links {
    width: 48px;
    height: 48px;
    border: 0;
    outline: 0;
    background-color: transparent;
    cursor: pointer
}

.flw-toggle-links .ds-icono {
    width: 100%;
    height: 100%;
    font-size: 1rem;
    color: var(--ds-white)
}

.flw-topbar-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    background-color: rgba(var(--ds-black-rgb), .3);
    width: 100%;
    height: 100%; 
    z-index: 4;
}

@media (max-width: 1439.98px) {
    .flw-topbar-site {
        width: 100%
    }
}

@media (min-width: 1200px) {
    .flw-toggle-links {
        display: none
    }
}

@media (max-width: 1199.98px) {
    .flw-topbar-site {
        width: 100%
    }

    .flw-topbar-menu {
        position: fixed;
        width: calc(100% - 3rem);
        top: calc((var(--flw-topbar-height)) + 2rem);
        left: 0;
        right: 0;
        background-color: var(--ds-black);
        margin: 0 auto;
        flex-direction: column;
        border-radius: 12px;
        box-shadow: inset 0 0 0 1px rgba(var(--ds-white-rgb), .3);
    }

    .flw-topbar-menu:not(.flw-active){
        display: none
    }
    
    .flw-topbar-menu .ds-link {
        padding: 0 1.5rem;
        height: 48px;
        align-items: center;
        display: flex;
        font-size: 1rem;
    }
}

@media (max-width:1024px) {
    :root {
        --flw-margin-site: 40px;
        --flw-topbar-height: 96px
    }
}

@media (max-width:480px) {
    :root {
        --flw-margin-site: 20px;
        --flw-topbar-height: 80px
    }

    .flw-topbar-site {
        padding: 0 .25rem
    }
}
/** * ------- * INICIO SECTION * ------- */
.flw-hero-section {
    width: 100%;
    min-height: 900px;
    padding: 40px 80px;
    padding-top: var(--flw-topbar-height);
    position: relative;
    z-index: 1;
    --flw-url-image: url('../IMAGENES/Fiesta.jpg');
    overflow: hidden
}

.flw-hero-section::before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-image: linear-gradient(rgba(var(--ds-green-600-rgb), .6), rgba(var(--ds-blue-400-rgb), .8), rgba(var(--ds-black-rgb), .9)), var(--flw-url-image);
    background-size: cover;
    background-position: center;
    z-index: -1
}

.flw-hero-content {
    max-width: 1200px;
    margin: 80px auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 60px
}

.flw-hero-text {
    max-width: 520px
}

.flw-hero-text h1 {
    font-size: 48px;
    line-height: 1.2;
    margin-bottom: 20px;
    color: var(--ds-white)
}

.flw-hero-text span {
    font-weight: 300;
    color: var(--ds-white)
}

.flw-hero-text strong {
    font-size: 56px;
    color: var(--ds-white)
}

.flw-hero-text p {
    color: #cfcfcf;
    font-size: 18px;
    margin-bottom: 30px;
    line-height: 1.5;
    color: var(--ds-white)
}

.flw-app-stores {
    display: flex;
    gap: 20px
}

.flw-badge-store {
    display: block;
    cursor: pointer;
    transition: .2s
}

.flw-badge-store [data-role=flw-badge-google] {
    width: 192px
}

.flw-badge-store [data-role=flw-badge-store] {
    width: 170px
}

.flw-hero-image {
    position: relative;
    z-index: 1
}

.flw-hero-image .flw-mac-preview {
    width: 500px;
    max-width: 100%
}

.flw-image-relative[data-role=flw-mac-preview] {
    display: block;
    position: relative;
    z-index: 1
}

.flw-image-relative[data-role=flw-mac-preview]::before {
    content: '';
    width: calc(100% - 32px);
    height: 264px;
    position: absolute;
    top: 16px;
    left: 16px;
    background-image: url('../IMAGENES/Inicio.png');
    background-size: cover;
    background-repeat: no-repeat;
    z-index: 2
}

.flw-macbook-preview {
    position: absolute;
    width: 280px;
    bottom: 0;
    left: 0;
    z-index: 1;
    display: block
}

.flw-macbook-preview::before {
    content: '';
    width: calc(100% - 72px);
    height: 128px;
    position: absolute;
    top: 12px;
    left: 35px;
    background-image: url('../IMAGENES/Inicio.png');
    background-size: cover;
    background-repeat: no-repeat;
    z-index: 2
}

.flw-macbook-preview img {
    width: 100%
}

.flw-ipad-preview {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 128px;
    z-index: 1
}

.flw-ipad-preview img {
    width: 100%
}

.flw-ipad-preview::before {
    content: '';
    width: calc(100% - 16px);
    height: calc(100% - 54px);
    position: absolute;
    top: 20px;
    left: 8px;
    background-image: url('../IMAGENES/CrearEvento.png');
    background-size: cover;
    background-repeat: no-repeat;
    z-index: 2
}

.flw-iphone-preview {
    position: absolute;
    bottom: 0;
    right: 96px;
    width: 56px;
    z-index: 2
}

.flw-iphone-preview img {
    width: 100%
}

.flw-iphone-preview::before {
    content: '';
    width: calc(100% - 1px);
    height: calc(100% - 9px);
    position: absolute;
    top: 0;
    left: 0;
    background-image: url('../IMAGENES/Login.png');
    background-size: cover;
    background-repeat: no-repeat;
    border-radius: 10px;
    z-index: -1
}

.fwl-particles-ground {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: -1;
    transform: rotate(45deg);
    transform-origin: bottom left
}

.fwl-particles-ground span {
    --flw-size-particle: 120px;
    position: absolute;
    bottom: -10px;
    width: var(--flw-size-particle);
    height: var(--flw-size-particle);
    background: var(--ds-star);
    border-radius: 50%;
    opacity: 0;
    animation: flw-float-up linear infinite
}

.fwl-particles-ground span:nth-child(even) {
    background-color: var(--ds-green-200)
}

.fwl-particles-ground span:nth-child(1) {
    left: 5%;
    animation-duration: 8s;
    animation-delay: 0s
}

.fwl-particles-ground span:nth-child(2) {
    left: 15%;
    animation-duration: 10s;
    animation-delay: 1s
}

.fwl-particles-ground span:nth-child(3) {
    left: 25%;
    animation-duration: 7s;
    animation-delay: 2s
}

.fwl-particles-ground span:nth-child(4) {
    left: 35%;
    animation-duration: 9s;
    animation-delay: 1.5s
}

.fwl-particles-ground span:nth-child(5) {
    left: 45%;
    animation-duration: 11s;
    animation-delay: 3s
}

.fwl-particles-ground span:nth-child(6) {
    left: 55%;
    animation-duration: 8s;
    animation-delay: 2s
}

.fwl-particles-ground span:nth-child(7) {
    left: 65%;
    animation-duration: 12s;
    animation-delay: 1s
}

.fwl-particles-ground span:nth-child(8) {
    left: 75%;
    animation-duration: 9s;
    animation-delay: 2.5s
}

.fwl-particles-ground span:nth-child(9) {
    left: 85%;
    animation-duration: 10s;
    animation-delay: .5s
}

.fwl-particles-ground span:nth-child(10) {
    left: 95%;
    animation-duration: 7s;
    animation-delay: 3s
}

@keyframes flw-float-up {
    0% {
        transform: translateY(0) scale(0);
        opacity: 0
    }

    20% {
        opacity: 1
    }

    100% {
        transform: translateY(-110vh) scale(1);
        opacity: 0
    }
}


@media (max-width: 1279.98px) {
    .flw-image-relative[data-role=flw-mac-preview]::before {
        height: 62%
    }

    .flw-ipad-preview::before {
        height: 75%
    }
}

@media (max-width: 991.98px) {
    .flw-image-relative[data-role=flw-mac-preview]::before {
        height: 60%
    }
}

@media (max-width:1024px) {
    .flw-hero-section {
        padding: 40px;
        padding-top: var(--flw-topbar-height)
    }

    .flw-hero-content {
        gap: 40px
    }

    .flwhero-text h1 {
        font-size: 40px
    }

    .flw-hero-text strong {
        font-size: 48px
    }

    .flwhero-image .flw-mac-preview img {
        width: 420px
    }
}

@media (max-width:768px) {
    .flw-topbar-menu {
        gap: 20px;
        font-size: 14px
    }

    .flw-hero-content {
        flex-direction: column;
        text-align: center;
        margin-top: 60px
    }

    .flw-hero-text {
        max-width: 100%
    }

    .flw-hero-text h1 {
        font-size: 34px
    }

    .flw-hero-text strong {
        font-size: 40px
    }

    .flw-app-stores {
        justify-content: center;
        flex-wrap: wrap
    }

    .flw-hero-image {
        margin-top: 30px
    }

    .flw-hero-image .flw-mac-preview {
        width: 320px
    }
}

@media (max-width:480px) {
    .flw-hero-section {
        padding: 30px 20px;
        padding-top: var(--flw-topbar-height)
    }

    .flw-hero-text h1 {
        font-size: 28px
    }

    .flw-hero-text strong {
        font-size: 32px
    }

    .flw-hero-text p {
        font-size: 16px
    }

    .flw-hero-image {
        width: 260px
    }

    .flw-badge-store [data-role=flw-badge-google],
    .flw-badge-store [data-role=flw-badge-store] {
        width: 200px
    }
}


/** * ------- * EVENTOS SECTION * ------- */
.flw-tipo-eventos {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 1;
    padding-top: 4rem;
    background-color: var(--ds-black);
}


.flw-header-slider {
    width: 100%;
    display: flex;
    flex-direction: column;
    line-height: 1.3;
    width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    padding: 1.5rem 0;
    gap: 2rem;
}

.flw-header-slider h1 {
    color: var(--ds-white);
    font-size: 56px;
    font-weight: 600;
    font-family: var(--ds-font);
}

.flw-header-slider h1 small {
    width: 720px;
    display: block;
    font-size: 18px;
    font-weight: 300;
    color: var(--ds-white);
    line-height: 2;
    position: relative;
    z-index: 1;
}

.flw-header-slider h1 span {
    color: var(--ds-alt);
    font-weight: 600;
    position: relative;
    z-index: 1;
}

.flw-card-evento {
    width: 100%;
    height: 600px;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.flw-card-evento h1 {
    color: var(--ds-white);
    font-weight: 600;
    font-size: 36px;
    margin-top: auto;
    width: 100%;
    margin-bottom: 3rem;
    padding-left: 3rem;
    display: flex;
    flex-direction: column;
}

.flw-card-evento h1 small {
    font-size: 11px;
    letter-spacing: 4px;
    color: var(--ds-alt);
    text-transform: uppercase;
}

.flw-card-preview {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}

.flw-card-preview::before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    margin: auto;
    z-index: -2;
    background-image: linear-gradient(rgba(var(--ds-black-rgb), .4), var(--ds-black));
}

.flw-card-preview img {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -3;
}

.flw-slider-box {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 0;
    overflow: hidden;
}

.flw-slider-box::before {
    content: '';
    width: 100%;
    height: 2rem;
    background-color: var(--ds-obsidian);
    position: absolute;
    inset: 0;
    top: -2rem;
    margin: auto;
    transform: scale(14);
    z-index: -1;
    filter: blur(.8rem);
}

.flw-eventos-slider {
    width: 1200px;
    overflow: hidden;
    padding-top: 4rem;
    position: relative;
    z-index: 1;
    padding-bottom: 9rem;
}

.flw-slider-box .glide__slide {
    transition: all .3s ease;
}

.flw-slider-box .glide__slide:not(.glide__slide--active) {
    transform: scale(.85) translateY(-8px);
}

/** * ------- * ROLES SECTION * ------- */
.flw-roles-section {
    width: 100%;
    padding: 4rem 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 1;
    overflow: hidden;
    background-color: var(--ds-black);
}

.flw-roles-header {
    width: 1200px;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    line-height: 1.3;
    margin-bottom: 4rem;
    gap: 2rem;
    min-height: 200px;
}

.flw-roles-header small {
    display: block;
    font-size: 18px;
    font-weight: 400;
    color: var(--ds-white);
    width: 720px;
    line-height: 2;
}

.flw-roles-header h1 {
    font-size: 56px;
    font-weight: 700;
    color: var(--ds-white);
}

.flw-roles-container {
    width: 1200px;
    display: flex;
    align-items: center;
    gap: 2rem;
    position: relative;
    z-index: 1;
}

.flw-roles-container::before {
    content: '';
    width: 40px;
    height: 40px;
    background-color: var(--ds-star);
    position: absolute;
    inset: 0;
    margin: auto;
    top: -50%;
    z-index: -1;
    transform: scale(12);
    border-radius: 50%;
    filter: blur(1rem);
}


.flw-role-item {
    width: 368px;
    height: 840px;
    display: flex;
    flex-direction: column;
    border-radius: 2rem;
    padding: 3rem;
    box-shadow: 0 0 0 1px var(--ds-star);
    background-color: rgba(var(--ds-black-rgb), .4);
}

.flw-top-role {
    width: 100%;
    padding: 2rem 0;
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.flw-top-role .ds-icono {
    width: 80px;
    height: 80px;
    font-size: 2rem;
    align-items: flex-start;
}

.flw-crown {
    background: -webkit-linear-gradient(#ff8000, #fff200);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.flw-task {
    background: -webkit-linear-gradient(#00b4d8, #caf0f8);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.flw-users {
    background: -webkit-linear-gradient(var(--ds-green-600), var(--ds-green-200));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.flw-top-role h1,
.flw-top-role h2 {
    color: var(--ds-white);
}

.flw-top-role h1 {
    font-size: 28px;
    font-weight: 600;
    color: var(--ds-alt);
    margin-bottom: .25rem;
}

.flw-top-role h2 {
    font-size: 14px;
    color: rgba(var(--ds-white-rgb), .6);
}

.flw-bottom-role {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.flw-bottom-role p {
    font-size: 18px;
    color: var(--ds-white);
    text-align: start;
    font-weight: 300;
}

.flw-detalles-role {
    flex-direction: column;
    gap: 1.5rem;
    margin-top: 4rem;
}

.flw-detalles-role .ds-link {
    padding: 0;
    color: var(--ds-white);
    font-size: 18px;
    gap: .5rem;
    text-transform: none;
    font-weight: 400;
    align-items: first baseline;
}

.flw-detalles-role .ds-link i {
    color: var(--ds-green-200);
}


.flw-roles-section .fwl-particles-ground {
    left: unset;
    right: 0;
    transform: rotate(-45deg);
    transform-origin: top right;
}

/** * ------- * FUNCIONES SECTION * ------- */
.flw-section-funciones {
    width: 100%;
    min-height: 100vh;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 9rem 0;
}

.flw-section-funciones::before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    margin: auto;
    background-image: linear-gradient(var(--ds-black), rgba(var(--ds-black-rgb), .75), var(--ds-black)), url('../IMAGENES/Funciones.jpg');
    z-index: -1;
}

.flw-funciones-header {
    width: 1200px;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    line-height: 1.3;
    margin-bottom: 4rem;
    min-height: 200px;
}

.flw-funciones-header small {
    display: block;
    font-size: 18px;
    font-weight: 400;
    color: var(--ds-white);
    width: 720px;
    line-height: 2;
}

.flw-funciones-header h1 {
    font-size: 56px;
    font-weight: 700;
    color: var(--ds-white);
}

.flw-funciones-container {
    width: 1200px;
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.flw-funciones-item {
    width: 100%;
    flex: 0 0 calc(calc(100% / 3) - calc(2rem / 3));
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2rem;
    box-shadow: inset 0 0 0 1px var(--ds-star);
    background-color: rgba(var(--ds-black-rgb), .6);
    backdrop-filter: blur(4px);
    border-radius: 12px;
}

.flw-funciones-item .ds-icono {
    width: 56px;
    height: 56px;
    color: var(--ds-alt);
    font-size: 1.2rem;
}

.flw-funciones-item h1 {
    font-size: 21px;
    color: var(--ds-white);
    font-weight: 600;
    margin-bottom: 1rem;
    line-height: 1.3;
}

.flw-funciones-item p {
    font-size: 16px;
    color: var(--ds-white);
    font-weight: 400;
}


/** * ------- * ABOUT SECTION * ------- */
.flw-about-section {
    width: 100%;
    min-height: 100vh;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 9rem 0;
}

.flw-about-section::before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    margin: auto;
    background-image: linear-gradient(var(--ds-black), rgba(var(--ds-black-rgb), .8), var(--ds-black)), url('../IMAGENES/laptop-evento.jpg');
    z-index: -1;
}

.flw-header-about {
    width: 1200px;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    line-height: 1.3;
    margin-bottom: 4rem;
    min-height: 200px;
}

.flw-header-about small {
    display: block;
    font-size: 18px;
    font-weight: 400;
    color: var(--ds-white);
    width: 720px;
    line-height: 2;
}

.flw-header-about h1 {
    font-size: 56px;
    font-weight: 700;
    color: var(--ds-white);
}


.flw-about-container {
    width: 1200px;
    display: flex;
    gap: 4rem;
    flex-wrap: wrap;
}

.flw-about-item {
    width: 100%;
    flex: 0 0 calc(calc(100% / 3) - calc(8rem / 3));
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2rem;
    background-color: var(--ds-star);
    position: relative;
    z-index: 0;
    border-radius: 12px;
}

.flw-about-item .ds-icono {
    width: 96px;
    height: 96px;
    color: rgba(var(--ds-white-rgb), .3);
    font-size: 4rem;
    font-weight: 600;
}

.flw-about-item h1 {
    font-size: 21px;
    color: var(--ds-white);
    font-weight: 600;
    margin-bottom: 1rem;
    line-height: 1.3;
}

.flw-about-item p {
    font-size: 16px;
    color: var(--ds-white);
    font-weight: 400;
}

.flw-about-item i {
    font-size: 2rem;
    position: absolute;
    top: 0;
    right: 0;
    margin: 2rem;
    color: rgba(var(--ds-white-rgb), .2);
}

/** * ------- * FOOTER SECTION * ------- */
.flw-footer-page {
    width: 100%;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 9rem;
}

.flw-footer-page::before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    margin: auto;
    z-index: -1;
    background-image: linear-gradient(var(--ds-black), rgba(var(--ds-black-rgb), .8), var(--ds-black)), url('../IMAGENES/fiesta-luces.jpg');
    background-size: cover;
    background-position: center;
}

.flw-footer-container {
    width: 1200px;
    display: flex;
    flex-wrap: nowrap;
    gap: 9rem;
}

.flw-footer-item {
    width: 100%;
    min-height: 720px;
}

.flw-about-footer {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.flw-about-footer h1,
.flw-about-footer p {
    color: var(--ds-white);
}

.flw-about-footer h1 {
    font-size: 56px;
    font-weight: 600;
    margin-bottom: 1.5rem;
}

.flw-about-footer p {
    font-size: 18px;
    font-weight: 400;
}

.flw-badges-container {
    display: flex;
    gap: 20px;
    margin-top: 3rem;
}

.flw-badge-footer {
    display: block;
    cursor: pointer;
    transition: .2s
}

.flw-badge-footer [data-role=flw-badge-google] {
    width: 192px
}

.flw-badge-footer [data-role=flw-badge-store] {
    width: 170px
}

.flw-hero-footer {
    position: relative;
    z-index: 1;
    margin-bottom: 3rem
}

.flw-hero-footer .flw-mac-preview {
    width: 480px;
    max-width: 100%
}

.flw-hero-footer .flw-image-relative[data-role=flw-mac-preview] {
    display: block;
    position: relative;
    z-index: 1;
    width: 448px;
}

.flw-hero-footer .flw-image-relative[data-role=flw-mac-preview]::before {
    content: '';
    width: calc(100% - 32px);
    height: 240px;
    position: absolute;
    top: 16px;
    left: 16px;
    background-image: url('../IMAGENES/Inicio.png');
    background-size: cover;
    background-repeat: no-repeat;
    z-index: 2
}

.flw-hero-footer .flw-macbook-preview {
    position: absolute;
    width: 280px;
    bottom: 0;
    left: 0;
    z-index: 1;
    display: block
}

.flw-hero-footer .flw-macbook-preview::before {
    content: '';
    width: calc(100% - 72px);
    height: 128px;
    position: absolute;
    top: 12px;
    left: 35px;
    background-image: url('../IMAGENES/Inicio.png');
    background-size: cover;
    background-repeat: no-repeat;
    z-index: 2
}

.flw-hero-footer .flw-macbook-preview img {
    width: 100%
}

.flw-hero-footer .flw-ipad-preview {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 128px;
    z-index: 1
}

.flw-hero-footer .flw-ipad-preview img {
    width: 100%
}

.flw-hero-footer .flw-ipad-preview::before {
    content: '';
    width: calc(100% - 16px);
    height: calc(100% - 54px);
    position: absolute;
    top: 20px;
    left: 8px;
    background-image: url('../IMAGENES/CrearEvento.png');
    background-size: cover;
    background-repeat: no-repeat;
    z-index: 2
}

.flw-hero-footer .flw-iphone-preview {
    position: absolute;
    bottom: 0;
    right: 96px;
    width: 56px;
    z-index: 2
}

.flw-hero-footer .flw-iphone-preview img {
    width: 100%
}

.flw-hero-footer .flw-iphone-preview::before {
    content: '';
    width: calc(100% - 1px);
    height: calc(100% - 9px);
    position: absolute;
    top: 0;
    left: 0;
    background-image: url('../IMAGENES/Login.png');
    background-size: cover;
    background-repeat: no-repeat;
    border-radius: 10px;
    z-index: -1
}

.flw-footer-devices h1 {
    color: var(--ds-white);
    font-size: 21px;
    font-weight: 600;
    margin-bottom: 1.5rem;
}

.flw-redes-footer {
    gap: 1rem;
}

.flw-redes-footer .ds-link {
    width: 48px;
    height: 48px;
    padding: 0;
    background-color: rgba(var(--ds-white-rgb), .1);
    border-radius: 9px;
}

.flw-redes-footer .ds-link .ds-icono {
    width: 100%;
    height: 100%;
    color: var(--ds-white);
    font-size: 1rem;
}

.flw-footer-adicional {
    width: 100%;
    display: flex;
    flex-wrap: nowrap;
    margin-top: 3rem;
}

.flw-footer-adicional .flw-footer-links {
    width: 100%;
}

.flw-footer-links h1 {
    font-size: 21px;
    font-weight: 600;
    color: var(--ds-white);
}

.flw-footer-links .ds-link {
    color: var(--ds-white);
    font-size: 16px;
    padding: 0;
    text-transform: none;
    font-weight: 400;
}

.flw-footer-kimerkia {
    width: 100%;
    min-height: 104px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    padding: 1.5rem;
}

.flw-footer-kimerkia .ds-link {
    font-size: 14px;
    color: var(--ds-white);
}

/* ============================================================
   RESPONSIVE STYLES - EventFlow
   Breakpoints: 1200px | 1024px | 768px | 480px | 360px
   ============================================================ */

/* ---- Utilidad global: limitar anchos fijos ---- */
.flw-header-slider,
.flw-eventos-slider,
.flw-funciones-header,
.flw-funciones-container,
.flw-roles-header,
.flw-roles-container,
.flw-header-about,
.flw-about-container,
.flw-footer-container {
    max-width: 1200px;
    width: 100%;
    padding-left: 80px;
    padding-right: 80px;
    box-sizing: border-box;
}

/* Sobreescribir anchos fijos 1200px */
.flw-header-slider {
    width: 100%;
}

.flw-eventos-slider {
    width: 100%;
}

.flw-funciones-header {
    width: 100%;
}

.flw-funciones-container {
    width: 100%;
}

.flw-roles-header {
    width: 100%;
}

.flw-roles-container {
    width: 100%;
}

.flw-header-about {
    width: 100%;
}

.flw-about-container {
    width: 100%;
}

.flw-footer-container {
    width: 100%;
}

/* ---- small con width fijo ---- */
.flw-header-slider h1 small,
.flw-funciones-header small,
.flw-roles-header small,
.flw-header-about small {
    width: 100%;
    max-width: 720px;
}

/* ============================================================
   TABLET GRANDE / LAPTOP PEQUEÑO  ≤ 1199px
   ============================================================ */
@media (max-width: 1199.98px) {

    .flw-header-slider,
    .flw-eventos-slider,
    .flw-funciones-header,
    .flw-funciones-container,
    .flw-roles-header,
    .flw-roles-container,
    .flw-header-about,
    .flw-about-container,
    .flw-footer-container {
        padding-left: 40px;
        padding-right: 40px;
    }

    /* Roles: 3 cards en una fila más compacta */
    .flw-roles-container {
        flex-wrap: wrap;
        justify-content: center;
        gap: 1.5rem;
    }

    .flw-role-item {
        width: calc(50% - 0.75rem);
        height: auto;
        min-height: 640px;
    }

    /* Footer */
    .flw-footer-container {
        gap: 4rem;
    }

    .flw-about-footer h1 {
        font-size: 40px;
    }

    /* Funciones: 2 columnas */
    .flw-funciones-item {
        flex: 0 0 calc(50% - 0.5rem);
        aspect-ratio: auto;
        min-height: 240px;
    }

    /* About: 3 columnas mantener pero reducir gap */
    .flw-about-container {
        gap: 2rem;
    }

    .flw-about-item {
        flex: 0 0 calc(calc(100% / 3) - calc(4rem / 3));
        aspect-ratio: auto;
        min-height: 260px;
    }
    
        .flw-hero-footer .flw-image-relative[data-role=flw-mac-preview]::before {
            width: calc(100% - 2rem);
        }
}

/* ============================================================
   TABLET  ≤ 1024px
   ============================================================ */
@media (max-width: 1024px) {

    /* Roles: 2 columnas */
    .flw-role-item {
        width: calc(50% - 0.75rem);
        height: auto;
        min-height: 560px;
        padding: 2rem;
    }

    /* Footer: stack */
    .flw-footer-container {
        flex-direction: column;
        gap: 3rem;
    }

    .flw-footer-item {
        min-height: auto;
    }

    .flw-footer-devices {
        order: -1;
    }

    .flw-about-footer h1 {
        font-size: 34px;
    }
}

/* ============================================================
   TABLET PEQUEÑO / MÓVIL GRANDE  ≤ 768px
   ============================================================ */
@media (max-width: 768px) {

    .flw-header-slider,
    .flw-eventos-slider,
    .flw-funciones-header,
    .flw-funciones-container,
    .flw-roles-header,
    .flw-roles-container,
    .flw-header-about,
    .flw-about-container,
    .flw-footer-container {
        padding-left: 24px;
        padding-right: 24px;
    }

    /* Encabezados de sección */
    .flw-header-slider h1,
    .flw-funciones-header h1,
    .flw-roles-header h1,
    .flw-header-about h1 {
        font-size: 36px;
    }

    .flw-header-slider h1 small,
    .flw-funciones-header small,
    .flw-roles-header small,
    .flw-header-about small {
        font-size: 16px;
        line-height: 1.8;
    }

    /* Eventos slider */
    .flw-card-evento {
        height: 420px;
    }

    /* Roles: 1 columna */
    .flw-roles-container {
        flex-direction: column;
    }

    .flw-role-item {
        width: 100%;
        min-height: auto;
    }

    /* Funciones: 1 columna */
    .flw-funciones-item {
        flex: 0 0 100%;
        min-height: 200px;
        aspect-ratio: auto;
    }

    /* About: 1 columna */
    .flw-about-item {
        flex: 0 0 100%;
        aspect-ratio: auto;
        min-height: 200px;
    }

    .flw-about-container {
        gap: 1.5rem;
    }

    /* Footer */
    .flw-footer-container {
        flex-direction: column;
        gap: 2rem;
    }

    .flw-about-footer h1 {
        font-size: 28px;
        margin-bottom: 1rem;
    }

    .flw-about-footer p {
        font-size: 16px;
    }

    .flw-badges-container {
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 2rem;
    }

    .flw-footer-adicional {
        flex-wrap: wrap;
        gap: 2rem;
        margin-top: 2rem;
    }

    /* Hero footer devices */
    .flw-hero-footer .flw-mac-preview {
        width: 320px;
    }

    .flw-hero-footer .flw-image-relative[data-role=flw-mac-preview]{
        width: 320px;
    }
    
    .flw-hero-footer .flw-image-relative[data-role=flw-mac-preview]::before{
        height: 160px;
    }

    /* Section paddings */
    .flw-section-funciones,
    .flw-about-section {
        padding: 5rem 0;
    }

    .flw-roles-section {
        padding: 3rem 0;
    }

    .flw-footer-page {
        padding-top: 5rem;
    }
}

/* ============================================================
   MÓVIL  ≤ 480px
   ============================================================ */
@media (max-width: 480px) {

    .flw-header-slider,
    .flw-eventos-slider,
    .flw-funciones-header,
    .flw-funciones-container,
    .flw-roles-header,
    .flw-roles-container,
    .flw-header-about,
    .flw-about-container,
    .flw-footer-container {
        padding-left: 16px;
        padding-right: 16px;
    }

    /* Encabezados */
    .flw-header-slider h1,
    .flw-funciones-header h1,
    .flw-roles-header h1,
    .flw-header-about h1 {
        font-size: 28px;
    }

    /* Cards eventos */
    .flw-card-evento {
        height: 340px;
    }

    .flw-card-evento h1 {
        font-size: 26px;
        padding-left: 1.5rem;
        margin-bottom: 2rem;
    }

    /* Roles */
    .flw-role-item {
        padding: 1.5rem;
        border-radius: 1rem;
    }

    .flw-top-role h1 {
        font-size: 22px;
    }

    /* Funciones */
    .flw-funciones-item {
        padding: 1.5rem;
    }

    .flw-funciones-item h1 {
        font-size: 18px;
    }

    /* About steps */
    .flw-about-item {
        padding: 1.5rem;
    }

    .flw-about-item h1 {
        font-size: 18px;
    }

    /* Footer */
    .flw-about-footer h1 {
        font-size: 24px;
    }

    .flw-badge-footer [data-role=flw-badge-google],
    .flw-badge-footer [data-role=flw-badge-store] {
        width: 140px;
    }

    .flw-hero-footer .flw-mac-preview {
        width: 260px;
    }
    
    .flw-hero-footer .flw-image-relative[data-role=flw-mac-preview] {
        width: 260px;
    }

    
    .flw-hero-footer .flw-image-relative[data-role=flw-mac-preview]::before {
        width: calc(100% - 12px);
        left: 4px;
        height: 88px;
        top: 8px;
    }

    .flw-hero-footer .flw-macbook-preview {
        width: 180px;
    }

    .flw-hero-footer .flw-ipad-preview {
        width: 90px;
    }
    
    .flw-hero-footer .flw-ipad-preview::before{
        width: calc(100% - .75rem);
        left: .25rem;
        top: .5rem;
        height: 112px;
    }

    .flw-hero-footer .flw-iphone-preview {
        width: 40px;
        right: 70px;
    }

    /* Section paddings */
    .flw-section-funciones,
    .flw-about-section {
        padding: 4rem 0;
    }

    .flw-footer-adicional {
        flex-direction: column;
        gap: 1.5rem;
    }

    .flw-footer-links {
        flex-direction: column;
        gap: .5rem;
    }

    .flw-footer-links h1 {
        font-size: 16px;
    }

    .flw-footer-links .ds-link {
        font-size: 14px;
    }
    
    .flw-hero-footer .flw-image-relative[data-role=flw-mac-preview]{
        width: 180px;
    }
    
    .flw-hero-footer .flw-macbook-preview::before{
        width: calc(100% - 48px);
        left: 24px;
        height: 72px;
    }
}

/* ============================================================
   MÓVIL PEQUEÑO  ≤ 360px
   ============================================================ */
@media (max-width: 360px) {

    .flw-header-slider h1,
    .flw-funciones-header h1,
    .flw-roles-header h1,
    .flw-header-about h1 {
        font-size: 24px;
    }

    .flw-card-evento {
        height: 280px;
    }

    .flw-card-evento h1 {
        font-size: 22px;
    }

    .flw-role-item {
        padding: 1.25rem;
    }

    .flw-about-footer h1 {
        font-size: 20px;
    }
}