:root {
    --nc-bg: #f4f7fb;
    --nc-surface: rgba(255, 255, 255, 0.82);
    --nc-surface-strong: #ffffff;
    --nc-text: #0f172a;
    --nc-muted: #475569;
    --nc-line: rgba(15, 23, 42, 0.08);
    --nc-brand: #0f766e;
    --nc-brand-2: #14b8a6;
    --nc-accent: #f59e0b;
    --nc-shadow: 0 24px 70px rgba(15, 23, 42, 0.12);
    --nc-radius: 28px;
}

body.nuevo-supermodern {
    font-family: "Manrope", "Segoe UI", sans-serif;
    color: var(--nc-text);
    background:
        radial-gradient(circle at top left, rgba(20, 184, 166, 0.16), transparent 30%),
        radial-gradient(circle at top right, rgba(245, 158, 11, 0.12), transparent 24%),
        linear-gradient(180deg, #f8fbff 0%, #eef4f8 52%, #f7fafc 100%);
    overflow-x: hidden;
}

body.nuevo-supermodern::before,
body.nuevo-supermodern::after {
    content: "";
    position: fixed;
    inset: auto;
    z-index: -1;
    width: 30rem;
    height: 30rem;
    border-radius: 999px;
    filter: blur(80px);
    opacity: 0.45;
    pointer-events: none;
}

body.nuevo-supermodern::before {
    top: -8rem;
    left: -8rem;
    background: rgba(20, 184, 166, 0.22);
}

body.nuevo-supermodern::after {
    right: -10rem;
    bottom: 10rem;
    background: rgba(14, 165, 233, 0.18);
}

body.nuevo-supermodern h1,
body.nuevo-supermodern h2,
body.nuevo-supermodern h3,
body.nuevo-supermodern h4,
body.nuevo-supermodern h5,
body.nuevo-supermodern .fw-800 {
    font-family: "Space Grotesk", "Segoe UI", sans-serif;
    letter-spacing: -0.03em;
}

body.nuevo-supermodern p,
body.nuevo-supermodern li,
body.nuevo-supermodern a,
body.nuevo-supermodern span {
    color: inherit;
}

body.nuevo-supermodern .container {
    max-width: 1180px;
}

body.nuevo-supermodern .header {
    position: sticky;
    top: 0;
    z-index: 1050 !important;
    transition: transform 200ms ease, background-color 200ms ease;
}

body.nuevo-supermodern .header .bg-light,
body.nuevo-supermodern .header .bg-white {
    background: rgba(255, 255, 255, 0.72) !important;
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.55);
    box-shadow: 0 12px 35px rgba(15, 23, 42, 0.07);
}

body.nuevo-supermodern.nuevo-scrolled .header .bg-light,
body.nuevo-supermodern.nuevo-scrolled .header .bg-white {
    background: rgba(255, 255, 255, 0.9) !important;
}

body.nuevo-supermodern .header img {
    transition: transform 220ms ease;
}

body.nuevo-supermodern .header a:hover img {
    transform: scale(1.03);
}

body.nuevo-supermodern .header .nav-link,
body.nuevo-supermodern .header .dropdown-toggle,
body.nuevo-supermodern .header .btn-clean {
    color: var(--nc-text) !important;
    font-weight: 700;
}

body.nuevo-supermodern .header .btn,
body.nuevo-supermodern .btn {
    border-radius: 999px;
    padding: 0.9rem 1.35rem;
    border: 0;
    box-shadow: 0 16px 40px rgba(15, 118, 110, 0.18);
    transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

body.nuevo-supermodern .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 22px 48px rgba(15, 118, 110, 0.2);
}

body.nuevo-supermodern .btn-primary,
body.nuevo-supermodern .btn-gradient-primary {
    background: linear-gradient(135deg, var(--nc-brand), var(--nc-brand-2)) !important;
}

body.nuevo-supermodern .btn-secondary {
    background: linear-gradient(135deg, #1e293b, #334155) !important;
    color: #fff !important;
}

body.nuevo-supermodern .hero-image {
    position: relative;
    min-height: clamp(560px, 84vh, 860px);
    margin: 1.5rem auto 0 !important;
    width: min(1280px, calc(100% - clamp(48px, 6vw, 96px)));
    max-width: calc(100% - clamp(48px, 6vw, 96px));
    border-radius: 36px;
    overflow: hidden;
    box-shadow: var(--nc-shadow);
}

body.nuevo-supermodern .position-relative.block > section:first-child,
body.nuevo-supermodern .position-relative.block > section > .hero-image {
    display: flex;
    justify-content: center !important;
}

body.nuevo-supermodern .position-relative.block > section > .hero-image {
    flex: 0 1 auto;
    width: min(1280px, calc(100% - 72px)) !important;
    max-width: calc(100% - 72px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.nuevo-supermodern .hero-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(110deg, rgba(15, 23, 42, 0.72) 18%, rgba(15, 23, 42, 0.18) 58%, rgba(15, 23, 42, 0.08) 100%),
        linear-gradient(180deg, rgba(15, 118, 110, 0.12), rgba(15, 23, 42, 0.22));
    pointer-events: none;
}

body.nuevo-supermodern .hero-image__bg,
body.nuevo-supermodern .hero-image__bg picture,
body.nuevo-supermodern .hero-image__bg img {
    height: 100%;
}

body.nuevo-supermodern .hero-image__bg img {
    object-fit: cover;
    transform: scale(1.04);
    filter: saturate(1.08) contrast(1.02);
}

body.nuevo-supermodern .hero-image__main {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center !important;
    padding-block: 3rem;
}

body.nuevo-supermodern .hero-image__main > div {
    max-width: 700px;
    padding: clamp(1.5rem, 2vw, 2rem);
    border-radius: var(--nc-radius);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.06));
    border: 1px solid rgba(255, 255, 255, 0.22);
    backdrop-filter: blur(12px);
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.2);
    color: #fff;
    text-align: center;
}

body.nuevo-supermodern .hero-image__main h1,
body.nuevo-supermodern .hero-image__main p {
    color: #fff;
}

body.nuevo-supermodern .hero-image__main h1 {
    font-size: clamp(2.6rem, 6vw, 5rem);
    line-height: 0.95;
    margin-bottom: 1rem;
}

body.nuevo-supermodern .hero-image__main p {
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    line-height: 1.7;
    opacity: 0.94;
    max-width: 54ch;
    margin-inline: auto;
}

body.nuevo-supermodern .position-relative.block > section {
    position: relative;
    display: block !important;
    width: 100%;
}

body.nuevo-supermodern .position-relative.block > section.py-4.container,
body.nuevo-supermodern .position-relative.block > section.py-4.container.max-w-screen-md,
body.nuevo-supermodern .position-relative.block > section.py-4,
body.nuevo-supermodern .position-relative.block > section.bg-secondary {
    display: block !important;
}

body.nuevo-supermodern .py-4.container,
body.nuevo-supermodern .py-4.container.max-w-screen-md,
body.nuevo-supermodern .py-4 {
    padding-top: clamp(2.2rem, 4vw, 4.5rem) !important;
    padding-bottom: clamp(2.2rem, 4vw, 4.5rem) !important;
}

body.nuevo-supermodern .content,
body.nuevo-supermodern .py-4.container.max-w-screen-md,
body.nuevo-supermodern .bg-soft-primary .container,
body.nuevo-supermodern .bg-secondary .container {
    position: relative;
    z-index: 1;
}

body.nuevo-supermodern .content,
body.nuevo-supermodern .py-4.container.max-w-screen-md,
body.nuevo-supermodern .accordion,
body.nuevo-supermodern .card,
body.nuevo-supermodern .map-card,
body.nuevo-supermodern .contact-card {
    background: var(--nc-surface);
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: var(--nc-radius);
    box-shadow: var(--nc-shadow);
    backdrop-filter: blur(16px);
}

body.nuevo-supermodern .py-4.container.max-w-screen-md {
    padding-inline: clamp(1.25rem, 2vw, 2rem);
}

body.nuevo-supermodern .content {
    gap: 2rem;
    padding: clamp(1.25rem, 2vw, 2rem);
    align-items: center;
    justify-content: center;
}

body.nuevo-supermodern .content-image picture,
body.nuevo-supermodern .content-image img,
body.nuevo-supermodern .card figure,
body.nuevo-supermodern .card img,
body.nuevo-supermodern .leaf,
body.nuevo-supermodern .ratio {
    border-radius: 22px;
}

body.nuevo-supermodern .content-text h2,
body.nuevo-supermodern .py-4.container h2,
body.nuevo-supermodern .py-4.container .h4 {
    font-size: clamp(1.7rem, 2.5vw, 2.5rem);
    margin-bottom: 1rem;
}

body.nuevo-supermodern .content-text p,
body.nuevo-supermodern .py-4.container p,
body.nuevo-supermodern .py-4.container li {
    color: var(--nc-muted);
    line-height: 1.8;
}

body.nuevo-supermodern .content-image,
body.nuevo-supermodern .content-text {
    margin-inline: auto;
}

body.nuevo-supermodern .content-image .ratio,
body.nuevo-supermodern .content-image picture,
body.nuevo-supermodern .content-image img {
    margin-inline: auto;
}

body.nuevo-supermodern .content-text ul,
body.nuevo-supermodern .py-4.container ul {
    padding-left: 1.2rem;
}

body.nuevo-supermodern .content-text li,
body.nuevo-supermodern .py-4.container li {
    margin-bottom: 0.65rem;
}

body.nuevo-supermodern .bg-soft-primary,
body.nuevo-supermodern .bg-secondary {
    background: transparent !important;
}

body.nuevo-supermodern .bg-soft-primary > .container,
body.nuevo-supermodern .bg-secondary > .container,
body.nuevo-supermodern .bg-secondary .container {
    padding: clamp(1.25rem, 2vw, 2rem);
    border-radius: 32px;
    background: linear-gradient(135deg, rgba(15, 118, 110, 0.95), rgba(8, 47, 73, 0.92));
    color: #fff;
    box-shadow: 0 24px 70px rgba(8, 47, 73, 0.22);
}

body.nuevo-supermodern .bg-soft-primary h1,
body.nuevo-supermodern .bg-soft-primary h2,
body.nuevo-supermodern .bg-soft-primary h3,
body.nuevo-supermodern .bg-soft-primary p,
body.nuevo-supermodern .bg-soft-primary li,
body.nuevo-supermodern .bg-soft-primary a,
body.nuevo-supermodern .bg-secondary h1,
body.nuevo-supermodern .bg-secondary h2,
body.nuevo-supermodern .bg-secondary h3,
body.nuevo-supermodern .bg-secondary p,
body.nuevo-supermodern .bg-secondary li,
body.nuevo-supermodern .bg-secondary a {
    color: #fff !important;
}

body.nuevo-supermodern .card {
    overflow: hidden;
    transition: transform 220ms ease, box-shadow 220ms ease;
}

body.nuevo-supermodern .card:hover {
    transform: translateY(-6px);
    box-shadow: 0 30px 75px rgba(15, 23, 42, 0.18);
}

body.nuevo-supermodern .card .card-body {
    padding: 1.15rem;
}

body.nuevo-supermodern .row.gy-3,
body.nuevo-supermodern .js-ajax-pagination {
    justify-content: center;
    margin-left: 0;
    margin-right: 0;
}

body.nuevo-supermodern .row.gy-3 > [class*="col-"],
body.nuevo-supermodern .js-ajax-pagination > [class*="col-"] {
    display: flex;
}

body.nuevo-supermodern .row.gy-3 > [class*="col-"] .card,
body.nuevo-supermodern .js-ajax-pagination > [class*="col-"] .card {
    width: 100%;
}

body.nuevo-supermodern .card .card-title,
body.nuevo-supermodern .card h5 {
    color: var(--nc-text);
    font-family: "Space Grotesk", "Segoe UI", sans-serif;
}

body.nuevo-supermodern .card a {
    color: var(--nc-brand);
    font-weight: 800;
    text-decoration: none;
}

body.nuevo-supermodern .app-footer {
    margin-top: 4rem;
    margin-bottom: 2rem;
    padding: 2.25rem;
    border-radius: 32px;
    background: linear-gradient(135deg, #0f172a, #111827 50%, #0f766e 180%);
    color: rgba(255, 255, 255, 0.9);
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.22);
}

body.nuevo-supermodern .app-footer .border-top {
    border-color: rgba(255, 255, 255, 0.12) !important;
}

body.nuevo-supermodern .app-footer h5,
body.nuevo-supermodern .app-footer li,
body.nuevo-supermodern .app-footer p,
body.nuevo-supermodern .app-footer a {
    color: rgba(255, 255, 255, 0.9) !important;
}

body.nuevo-supermodern .app-footer a:hover {
    color: #fff !important;
    text-decoration: underline;
}

body.nuevo-supermodern [data-nc-reveal] {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 700ms ease, transform 700ms ease;
}

body.nuevo-supermodern [data-nc-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 991.98px) {
    body.nuevo-supermodern .hero-image {
        width: calc(100% - 24px);
        max-width: calc(100% - 24px);
        margin-top: 1rem;
        border-radius: 26px;
    }

    body.nuevo-supermodern .position-relative.block > section > .hero-image {
        width: calc(100% - 24px) !important;
        max-width: calc(100% - 24px) !important;
    }

    body.nuevo-supermodern .hero-image__main > div {
        max-width: 100%;
    }

    body.nuevo-supermodern .content {
        padding: 1rem;
    }

    body.nuevo-supermodern .app-footer {
        padding: 1.5rem;
        border-radius: 24px;
    }

    body.nuevo-supermodern .row.gy-3,
    body.nuevo-supermodern .js-ajax-pagination {
        width: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body.nuevo-supermodern .row.gy-3 > [class*="col-"],
    body.nuevo-supermodern .js-ajax-pagination > [class*="col-"] {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
        margin-left: auto;
        margin-right: auto;
        justify-content: center;
    }

    body.nuevo-supermodern .row.gy-3 > [class*="col-"] .card,
    body.nuevo-supermodern .js-ajax-pagination > [class*="col-"] .card {
        width: min(100%, 420px);
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 767.98px) {
    body.nuevo-supermodern .position-relative.block > section.py-4.container,
    body.nuevo-supermodern .position-relative.block > section.py-4.container.max-w-screen-md,
    body.nuevo-supermodern .position-relative.block > section.py-4 {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
    }

    body.nuevo-supermodern .position-relative.block > section.py-4.container > h2,
    body.nuevo-supermodern .position-relative.block > section.py-4.container > .h4,
    body.nuevo-supermodern .position-relative.block > section.py-4.container > div,
    body.nuevo-supermodern .position-relative.block > section.py-4.container.max-w-screen-md > h2,
    body.nuevo-supermodern .position-relative.block > section.py-4.container.max-w-screen-md > .h4,
    body.nuevo-supermodern .position-relative.block > section.py-4.container.max-w-screen-md > div,
    body.nuevo-supermodern .position-relative.block > section.py-4 > h2,
    body.nuevo-supermodern .position-relative.block > section.py-4 > .h4,
    body.nuevo-supermodern .position-relative.block > section.py-4 > div {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 auto !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body.nuevo-supermodern .row.gy-3,
    body.nuevo-supermodern .js-ajax-pagination {
        display: grid !important;
        grid-template-columns: 1fr !important;
        justify-items: center !important;
        align-items: start !important;
        gap: 1rem !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        overflow-x: clip;
    }

    body.nuevo-supermodern .row.gy-3 > [class*="col-"],
    body.nuevo-supermodern .js-ajax-pagination > [class*="col-"] {
        display: block !important;
        flex: none !important;
        width: 100% !important;
        max-width: 420px !important;
        min-width: 0 !important;
        padding: 0 !important;
        margin: 0 auto !important;
    }

    body.nuevo-supermodern .row.gy-3 > [class*="col-"] .card,
    body.nuevo-supermodern .js-ajax-pagination > [class*="col-"] .card {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.nuevo-supermodern *,
    body.nuevo-supermodern *::before,
    body.nuevo-supermodern *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}
