/* ========================================
   01. THEME TOKENS
   ======================================== */
:root {
    --spb-bg: #0a0e14;
    --spb-surface: #121924;
    --spb-surface-2: #1a2330;
    --spb-surface-3: #223041;
    --spb-border: rgb(151 184 255 / 12%);
    --spb-border-strong: rgb(151 184 255 / 20%);
    --spb-text: #f5f7fb;
    --spb-text-soft: rgb(245 247 251 / 72%);
    --spb-text-muted: rgb(245 247 251 / 52%);
    --spb-accent: #6fb6ff;
    --spb-accent-2: #9ad0ff;
    --spb-accent-dark: #1d3147;
    --spb-shadow: 0 18px 40px rgb(0 0 0 / 26%);
    --spb-shadow-soft: 0 10px 28px rgb(0 0 0 / 18%);
    --spb-radius-sm: 0.9rem;
    --spb-radius-md: 1.2rem;
    --spb-radius-lg: 1.6rem;
    --spb-container-max: 1280px;
    --spb-gutter: 15px;

    /* Theme palette */
    --spb-page-glow: rgb(111 182 255 / 10%);
    --spb-page-bg-start: #0d1013;
    --spb-page-bg-mid: #0a0d10;
    --spb-page-bg-end: #080b0d;
    --spb-white: #ffffff;
    --spb-black-soft: #111111;
    --spb-success-accent: #6ec3a9;
    --spb-warm-accent: #d9b36f;

    /* Shared lines and fills */
    --spb-line-soft: rgb(111 182 255 / 10%);
    --spb-line-mid: rgb(111 182 255 / 14%);
    --spb-line-strong: rgb(111 182 255 / 18%);
    --spb-line-active: rgb(111 182 255 / 22%);
    --spb-line-glow: rgb(111 182 255 / 42%);
    --spb-fill-soft: rgb(111 182 255 / 8%);
    --spb-fill-mid: rgb(111 182 255 / 10%);
    --spb-fill-strong: rgb(111 182 255 / 18%);

    /* Quote */
    --spb-quote-bg: linear-gradient(180deg, rgb(255 255 255 / 4%) 0%, rgb(255 255 255 / 2%) 100%);
    --spb-quote-border: var(--spb-accent);
    --spb-quote-mark: var(--spb-accent);
    --spb-quote-text: var(--spb-text-soft);

    /* CTA */
    --spb-cta-line-top: var(--spb-line-strong);
    --spb-cta-line-bottom: var(--spb-line-soft);
    --spb-cta-glow: var(--spb-fill-soft);
    --spb-cta-rule-glow: var(--spb-line-glow);
    --spb-cta-title: var(--spb-white);
    --spb-cta-copy: var(--spb-text-soft);
    --spb-cta-button-border: #4b8fe8;
    --spb-cta-button-bg: linear-gradient(180deg, #3277d3 0%, #2259ad 100%);
    --spb-cta-button-hover-bg: linear-gradient(180deg, #3b88ee 0%, #2966c0 100%);
    --spb-cta-button-hover-border: #74acff;
    --spb-cta-button-text: var(--spb-white);

    /* FAQ */
    --spb-faq-border: var(--spb-line-soft);
    --spb-faq-border-left: var(--spb-line-active);
    --spb-faq-border-hover: var(--spb-line-active);
    --spb-faq-bg: rgb(255 255 255 / 2%);
    --spb-faq-title: var(--spb-white);
    --spb-faq-question: var(--spb-white);
    --spb-faq-answer-border: var(--spb-line-soft);
    --spb-faq-answer-text: var(--spb-text-soft);
    --spb-faq-icon: var(--spb-success-accent);

    /* Related links */
    --spb-related-card-border: var(--spb-line-mid);
    --spb-related-card-bg: linear-gradient(180deg, rgb(20 24 29 / 96%) 0%, rgb(14 18 23 / 98%) 100%);
    --spb-related-card-shadow: 0 14px 30px rgb(0 0 0 / 14%);
    --spb-related-icon-bg: var(--spb-fill-mid);
    --spb-related-title: var(--spb-white);
    --spb-related-text: rgb(237 243 248 / 76%);
    --spb-related-btn-border: rgb(111 182 255 / 24%);
    --spb-related-btn-bg: var(--spb-fill-mid);
    --spb-related-btn-hover-bg: var(--spb-fill-strong);
    --spb-related-btn-hover-border: rgb(111 182 255 / 38%);
    --spb-related-btn-text: var(--spb-white);

    /* Footer */
    --spb-footer-glow: rgb(111 182 255 / 8%);
    --spb-footer-bg-start: #11161a;
    --spb-footer-bg-end: #0c1014;
    --spb-footer-rule-glow: rgb(111 182 255 / 28%);
    --spb-footer-title: var(--spb-white);
    --spb-footer-divider: var(--spb-line-soft);
    --spb-footer-legal-divider: rgb(111 182 255 / 12%);
    --spb-footer-bullet-start: var(--spb-accent);
    --spb-footer-bullet-end: #4f8fc8;
}

/* ========================================
   02. BASE / RESET
   ======================================== */
html {
    box-sizing: border-box;
    scroll-behavior: smooth;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

html,
body {
    margin: 0;
    padding: 0;
}

:target {
    scroll-margin-top: calc(var(--site-sticky-offset, 0px) + 16px);
}

body {
    background: linear-gradient(180deg, rgb(10 14 20 / 65%) 0%, rgb(10 14 20) 100%), url(/content/images/fondo/fondo04.webp), linear-gradient(180deg, var(--spb-page-bg-start) 0%, var(--spb-page-bg-mid) 26%, var(--spb-page-bg-end) 100%);
    background-position: center top, center top, center top;
    background-size: auto, cover, auto;
    color: var(--spb-text);
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    line-height: 1.6;
}

.site-main,
footer {
    --spb-accent: #6fb6ff;
    --spb-accent-2: #9ad0ff;
    --spb-accent-dark: #1d3147;
    --spb-border: rgb(111 182 255 / 14%);
    --spb-border-strong: rgb(111 182 255 / 24%);
    --spb-text: #f4f5f2;
    --spb-text-soft: rgb(244 245 242 / 74%);
    --spb-text-muted: rgb(244 245 242 / 52%);
}

img {
    max-width: 100%;
    height: auto;
}

a {
    color: var(--spb-accent);
    text-decoration: none;
}

a:hover {
    color: var(--spb-accent-2);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;
    margin-bottom: 0.6rem;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    line-height: 1.1;
}

h1 { font-size: clamp(1.9rem, 2.4vw, 3rem); }
h2 { font-size: clamp(1.3rem, 1.8vw, 1.95rem); }
h3 { font-size: clamp(1.15rem, 1.45vw, 1.7rem); }
h4 { font-size: clamp(1.08rem, 1.15vw, 1.35rem); }
h5 { font-size: clamp(0.98rem, 1vw, 1.15rem); }
h6 { font-size: 0.92rem; }

p {
    margin-top: 0;
    margin-bottom: 0.85rem;
}

.hr_w80,
.hr_w60,
.hr_t40_b40_w80 {
    height: 0;
    border: 0;
    border-top: 1px dashed #7b7b7b;
    margin-left: auto;
    margin-right: auto;
    opacity: 1;
}

/* ========================================
   03. HEADER / MENU
   ======================================== */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    backdrop-filter: blur(18px);
    background: linear-gradient(180deg, rgb(10 16 24 / 92%) 0%, rgb(13 21 31 / 88%) 100%);
    border-bottom: 1px solid var(--spb-border);
    box-shadow: 0 10px 34px rgb(0 0 0 / 24%);
}

.menuSTD {
    position: relative;
    min-height: 4rem;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

.img-logo {
    display: block;
    width: auto;
    height: 3rem;
}

.mobile-topbar {
    display: none;
}

.menu_top,
.submenu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.menu_top[hidden],
#siteSubmenu[hidden] {
    display: none !important;
}

.menu-toggle,
.submenu-toggle,
#colorModeToggle,
#colorModeToggleDesktop,
#colorModeToggleDesktopOuter {
    border: 0;
    outline: 0;
    font: inherit;
}

#colorModeToggle,
#colorModeToggleDesktop,
#colorModeToggleDesktopOuter,
#M_COLOR_MODE {
    display: none !important;
}

#colorModeToggle,
#colorModeToggleDesktop,
#colorModeToggleDesktopOuter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    padding: 0.55rem 0.9rem;
    border: 1px solid var(--spb-border-strong);
    border-radius: 999px;
    background: rgb(255 255 255 / 4%);
    color: var(--spb-text);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

#colorModeToggle:hover,
#colorModeToggleDesktop:hover,
#colorModeToggleDesktopOuter:hover {
    background: rgb(255 255 255 / 8%);
    border-color: rgb(143 195 255 / 32%);
    color: #fff;
}

#colorModeToggleDesktopOuter,
#M_COLOR_MODE {
    display: none;
}

/* ========================================
   04. HEADER / MENU DESKTOP
   ======================================== */
@media (min-width: 992px) {
    .menuSTD {
        display: flex;
        align-items: center;
    }

    #siteSubmenu {
        display: none !important;
    }

    .menu_top {
        display: flex;
        align-items: center;
        gap: 0.35rem;
        width: 100%;
        padding-left: 4.9rem;
    }

    #M_LOGO {
        position: absolute;
        left: 15px;
        top: 50%;
        z-index: 3;
        transform: translateY(-43%);
    }

    #M_LOGO a {
        display: inline-flex;
        align-items: center;
    }

    .menu_top > li.b_right {
        position: relative;
        flex: 1 1 0;
        min-width: 0;
    }

    .menu_top > li.b_right > a {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        align-content: center;
        min-height: 3.5rem;
        padding: 0.7rem 0.8rem;
        border: 1px solid transparent;
        border-radius: 1rem;
        color: var(--spb-text);
        font-size: 0.9rem;
        font-weight: 700;
        line-height: 1.15;
        text-align: center;
        white-space: nowrap;
        transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
    }

    .menu_top > li.b_right > a:hover,
    .menu_top > li.b_right:hover > a,
    .menu_top > li.current > a {
        background: linear-gradient(180deg, rgb(255 255 255 / 8%) 0%, rgb(255 255 255 / 4%) 100%);
        border-color: var(--spb-border);
        color: #fff;
        transform: translateY(-1px);
    }

    .menu-sub {
        width: 100%;
        margin-top: 0.16rem;
        color: var(--spb-text-muted);
        font-size: 0.64rem;
        font-weight: 600;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .has-submenu > a {
        column-gap: 0.35rem;
    }

    .submenu-toggle {
        display: none !important;
    }

    .submenu-toggle::before {
        display: none !important;
        content: none !important;
    }

    .menu_top > li.has-submenu {
        padding-bottom: 0.4rem;
        margin-bottom: -0.4rem;
    }

    .has-submenu > .submenu {
        display: none;
        position: absolute;
        top: calc(100% - 0.1rem);
        left: 50%;
        min-width: 300px;
        padding: 0.55rem;
        border: 1px solid var(--spb-border);
        border-radius: 1.25rem;
        background: linear-gradient(180deg, rgb(17 26 36 / 98%) 0%, rgb(11 17 24 / 99%) 100%);
        box-shadow: var(--spb-shadow);
        transform: translateX(-50%);
    }

    .has-submenu:hover > .submenu {
        display: block;
    }

    .submenu li + li {
        margin-top: 0.25rem;
    }

    .submenu a {
        display: block;
        padding: 0.78rem 0.95rem;
        border-radius: 0.95rem;
        color: var(--spb-text-soft);
        font-size: 0.93rem;
        line-height: 1.35;
        transition: background 0.18s ease, color 0.18s ease;
    }

    .submenu a:hover {
        background: rgb(255 255 255 / 6%);
        color: #fff;
    }

    #colorModeToggle {
        display: none;
    }

    #colorModeToggleDesktopOuter {
        display: inline-flex;
        position: absolute;
        top: 50%;
        right: 15px;
        transform: translateY(-50%);
    }
}

/* ========================================
   05. HEADER / MENU MOBILE
   ======================================== */
@media (max-width: 991.98px) {
    .menuSTD {
        min-height: auto;
        padding-top: 0.45rem;
        padding-bottom: 0.45rem;
    }

    .mobile-topbar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.85rem;
        min-height: 2.5rem;
    }

    .mobile-brand {
        display: inline-flex;
        align-items: center;
        align-self: center;
    }

    .mobile-topbar-actions {
        display: flex;
        align-items: center;
        gap: 0.65rem;
    }

    .menu-toggle {
        display: inline-flex;
        align-items: center;
        gap: 0.7rem;
        min-height: 2.55rem;
        padding: 0.48rem 0.82rem;
        border: 1px solid var(--spb-border-strong);
        border-radius: 999px;
        background: rgb(255 255 255 / 5%);
        color: #fff;
        cursor: pointer;
    }

    .menu-toggle-label {
        font-size: 0.82rem;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .menu-toggle-icon {
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        gap: 0.23rem;
    }

    .menu-toggle-icon span {
        display: block;
        width: 1.18rem;
        height: 2px;
        border-radius: 999px;
        background: currentColor;
    }

    .menu_top {
        display: flex;
        flex-direction: column;
        gap: 0;
        position: absolute;
        top: calc(100% + 0.4rem);
        left: 13px;
        right: 13px;
        padding: 0.4rem;
        border: 1px solid var(--spb-border);
        border-radius: 1.35rem;
        background: linear-gradient(180deg, rgb(17 26 36 / 99%) 0%, rgb(11 17 24 / 99%) 100%);
        box-shadow: var(--spb-shadow);
        z-index: 1002;
    }

    .menu_top[hidden] {
        display: none;
    }

    .menu_top > li {
        position: relative;
    }

    .menu_top > li > a,
    #siteSubmenu button,
    #siteSubmenu a {
        display: block;
        width: 100%;
        padding: 0.82rem 3rem 0.82rem 0.95rem;
        border-radius: 1rem;
        color: #fff;
        font-size: 0.98rem;
        font-weight: 700;
        line-height: 1.2;
        text-align: left;
        background: transparent;
    }

    .menu_top > li + li,
    #siteSubmenu > li + li {
        margin-top: 0.15rem;
    }

    .menu_top > li > a:hover,
    #siteSubmenu button:hover,
    #siteSubmenu a:hover {
        background: rgb(255 255 255 / 5%);
        color: #fff;
    }

    .menu_top > li > a .menu-sub {
        display: block;
        margin-top: 0.16rem;
        color: var(--spb-text-muted);
        font-size: 0.66rem;
        font-weight: 600;
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    .submenu-toggle {
        display: block;
        position: absolute;
        top: 0.28rem;
        right: 0.3rem;
        width: 3rem;
        height: calc(100% - 0.56rem);
        border-radius: 0.9rem;
        background: transparent;
        color: transparent;
        cursor: pointer;
        z-index: 2;
    }

    .submenu-toggle[aria-expanded="true"] {
        background: rgb(255 255 255 / 5%);
    }

    .submenu-toggle::before {
        display: none;
        content: none;
    }

    .submenu {
        display: none;
    }

    #M_LOGO,
    #M_COLOR_MODE,
    #colorModeToggleDesktop,
    #colorModeToggleDesktopOuter {
        display: none !important;
    }

    #siteSubmenu {
        display: flex;
        flex-direction: column;
        padding: 0.4rem;
    }

    #siteSubmenu[hidden] {
        display: none;
    }

    #siteSubmenu button {
        border: 0;
        background: transparent;
        cursor: pointer;
    }

    #siteSubmenu button::before {
        content: "\2039";
        display: inline-block;
        margin-right: 0.45rem;
        color: var(--spb-accent);
        font-size: 1.15em;
        line-height: 1;
        vertical-align: -0.02em;
    }

    #siteSubmenu li[data-mobile-parent] a {
        background: rgb(255 255 255 / 6%);
    }
}

/* ========================================
   06. BREADCRUMBS + PAGE TITLES
   ======================================== */
.bc_wrap {
    margin: 0.55rem 0 0rem;
}

.bc_list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.28rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bc_item,
.bc_sep {
    margin: 0;
    padding: 0;
    list-style: none;
}

.bc_link,
.bc_text {
    color: rgb(237 243 248 / 88%);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.35;
}

.bc_link:hover {
    color: var(--spb-accent-2);
}

.bc_sep {
    color: var(--spb-accent);
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1;
    opacity: 1;
}

.bc_home {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.82rem;
    height: 1.82rem;
    border-radius: 999px;
    background: rgb(255 255 255 / 5%);
    color: var(--spb-accent);
    font-size: 1.14rem;
    line-height: 1;
}

.bc_current .bc_text,
.bc_current .bc_link,
.bc_link[aria-current="page"],
.bc_current strong.bc_text {
    color: #9ecbff;
    font-weight: 700;
    text-decoration: none;
}

#pageTitle {
    margin-bottom: 0.35rem;
    font-size: clamp(1.9rem, 2.8vw, 3.25rem);
    line-height: 1.05;
    text-wrap: balance;
    margin-top: 0px;
}

#pageSubtitle {
    margin-bottom: 0;
    color: var(--spb-text-soft);
    font-size: clamp(1.02rem, 1.35vw, 1.45rem);
    line-height: 1.45;
    font-weight: 500;
    text-wrap: balance;
}

/* ========================================
   07. LANDING QUOTE
   ======================================== */
.landing-main-ad-quote {
    margin-top: 0.85rem;
    margin-right: 0;
    margin-left: 0;
}

.landing-main-ad-quote > .landing-quote.col-12 {
    padding-right: 0;
    padding-left: 0;
}

.landing-quote {
    position: relative;
    margin: 0;
    padding: 1rem;
    border-left: 4px solid var(--spb-quote-border);
    border-radius: 1rem;
    background: var(--spb-quote-bg);
    color: var(--spb-quote-text);
}

.landing-quote::before {
    content: "\201C";
    position: absolute;
    left: 1rem;
    top: 0.45rem;
    color: var(--spb-quote-mark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.3rem;
    font-weight: 700;
    line-height: 1;
}

.landing-quote-text {
    margin: 0;
    padding-left: 3.35rem;
    text-align: left;
    font-style: italic;
    font-size: 1rem;
    line-height: 1.55;
}

.landing-quote-text p {
    margin: 0;
}

.landing-quote-text p:last-child {
    margin-bottom: 0;
}

/* ========================================
   08. CTA_01
   ======================================== */
.cta-wrapper {
    background: linear-gradient(180deg, #103529ab, transparent);
    border-bottom: 1px solid var(--spb-cta-line-bottom);
    text-align: center;
    padding: 1.5rem 0;
    position: relative;
}

.cta-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: min(100%, 520px);
    height: 1px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, rgb(111 182 255 / 0%) 0%, var(--spb-cta-rule-glow) 50%, rgb(111 182 255 / 0%) 100%);
}

.cta-card h2 {
    margin-bottom: 0.35rem;
    color: var(--spb-cta-title);
    font-size: clamp(1.5rem, 2vw, 2.4rem);
    line-height: 1.04;
    text-shadow: 0 8px 22px rgb(0 0 0 / 18%);
}

.cta-card p {
    margin: 0.5rem auto;
    color: var(--spb-cta-copy);
    font-size: 1rem;
    line-height: 1.65;
}

.cta-card .row {
    justify-content: center;
    margin-top: 0.45rem;
}

.cta-card .btn.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 3rem;
    width: auto;
    min-width: min(100%, 19rem);
    padding: 0.82rem 1.35rem;
    border: 1px solid var(--spb-cta-button-border);
    border-radius: 999px;
    background: var(--spb-cta-button-bg);
    color: var(--spb-cta-button-text);
    font-size: 0.98rem;
    font-weight: 800;
    text-decoration: none;
    box-shadow: none;
    transition: transform 0.18s ease, background 0.18s ease, border-color 0.18s ease;
}

.cta-card .btn.btn-primary:hover {
    color: var(--spb-cta-button-text);
    transform: translateY(-1px);
    background: var(--spb-cta-button-hover-bg);
    border-color: var(--spb-cta-button-hover-border);
}

/* ========================================
   09. FAQ
   ======================================== */
.faq-section {
    background: linear-gradient(178deg, #000000bf, transparent);
    padding: 1rem 0;
    border-bottom: 1px solid var(--spb-cta-line-bottom);
}

.faq-container {
    padding: 0.2rem 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.faq-title {
    margin: 0 0 1rem;
    color: #ffffff;
    font-size: clamp(1.45rem, 1.9vw, 2rem);
    line-height: 1.08;
    text-align: center;
    letter-spacing: 0.01em;
}

.FAQ {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    width: 85%;
}

.dl.FAQ {
    max-width: 48rem;
    margin: 0 auto;
}

.faq-item {
    overflow: hidden;
    border: 1px solid var(--spb-faq-border);
    border-left: 3px solid var(--spb-faq-border-left);
    border-radius: 1rem;
    background: var(--spb-faq-bg);
    box-shadow: none;
    transition: border-color 0.18s ease, background 0.18s ease;
}

.faq-item summary {
    list-style: none;
    cursor: pointer;
}

.faq-item summary::-webkit-details-marker {
    display: none;
}

.faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.9rem;
    padding: 0.95rem 1rem;
    color: var(--spb-faq-question);
}

.faq-item summary:hover + div,
.faq-item summary:hover .faq-question,
.faq-item[open] {
    border-color: var(--spb-faq-border-hover);
}

.faq-question-text {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.45;
}

.faq-icon {
    flex: 0 0 auto;
    color: var(--spb-faq-icon);
    font-size: 0.92rem;
    transition: transform 0.18s ease;
}

.faq-item[open] .faq-icon {
    transform: rotate(180deg);
}

.faq-answer {
    padding: 0.05rem 1rem 0.95rem;
    border-top: 1px solid var(--spb-faq-answer-border);
    color: var(--spb-faq-answer-text);
    font-size: 0.95rem;
    line-height: 1.68;
}

.faq-answer p:last-child {
    margin-bottom: 0;
}

/* ========================================
   10. RELATED LINKS
   ======================================== */
.related-services {
    background: linear-gradient(179deg, #354d797a, transparent);
    padding: 1rem 0;
    border-bottom: 1px solid var(--spb-cta-line-bottom);
}

.related-services-container {
    background: transparent;
    box-shadow: none;
}

.related-services-title {
    margin: 0 0 0.2rem;
    color: var(--spb-related-title);
    font-size: clamp(1.35rem, 1.8vw, 1.95rem);
    line-height: 1.08;
    text-align: center;
}

.related-services-subtitle {
    margin: 0 auto 0.75rem;
    max-width: 52ch;
    color: var(--spb-text-soft);
    text-align: center;
    line-height: 1.5;
}

.related-services .row {
    margin-right: calc(var(--spb-gutter) * -1);
    margin-left: calc(var(--spb-gutter) * -1);
}

.service-card {
    height: 100%;
    border: 1px solid var(--spb-related-card-border);
    border-radius: 1.25rem;
    background: var(--spb-related-card-bg);
    box-shadow: var(--spb-related-card-shadow);
    transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.service-card .card-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    padding: 0.75rem 0.75rem 0.7rem;
    text-align: center;
}

.service-card-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    margin-bottom: 0.3rem;
}

.service-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.9rem;
    height: 1.9rem;
    border-radius: 999px;
    background: var(--spb-related-icon-bg);
    color: var(--spb-accent);
    font-size: 0.86rem;
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 6%);
}

.service-card-icon::before,
.service-card-icon > i,
.service-card-icon.fas,
.service-card-icon.fa,
.service-card-icon.fa-solid {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.service-card-title {
    margin: 0;
    color: var(--spb-related-title);
    font-size: 1rem;
    line-height: 1.2;
}

.service-card-title a,
.service-card-header > a,
.service-card .service-card-title-link {
    color: var(--spb-related-title);
    text-decoration: none;
}

.service-card-title a:hover,
.service-card-header > a:hover,
.service-card .service-card-title-link:hover {
    color: var(--spb-accent-2);
}

.service-card-text {
    margin: 0 0 0.45rem;
    color: var(--spb-related-text);
    font-size: 0.89rem;
    line-height: 1.52;
    flex: 1 1 auto;
    width: 100%;
    max-width: none;
}

.service-card .btn.btn-outline-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    min-height: 2.15rem;
    padding: 0.45rem 0.9rem;
    border: 1px solid var(--spb-related-btn-border);
    border-radius: 0.7rem;
    background: var(--spb-related-btn-bg);
    color: var(--spb-related-btn-text);
    font-size: 0.86rem;
    font-weight: 700;
    text-decoration: none;
    transition: color 0.18s ease, transform 0.18s ease, opacity 0.18s ease, background 0.18s ease, border-color 0.18s ease;
    opacity: 1;
}

.service-card .btn.btn-outline-primary:hover {
    color: var(--spb-related-btn-text);
    transform: translateY(-1px);
    background: var(--spb-related-btn-hover-bg);
    border-color: var(--spb-related-btn-hover-border);
}

.service-card .btn.btn-outline-primary::after {
    content: none;
}

.related-services .col-4:nth-child(1) .service-card-icon {
    color: #7fc0ff;
}

.related-services .col-4:nth-child(2) .service-card-icon {
    color: var(--spb-success-accent);
}

.related-services .col-4:nth-child(3) .service-card-icon {
    color: var(--spb-warm-accent);
}

/* ========================================
   11. FOOTER
   ======================================== */

footer {
    position: relative;
    padding: 1.85rem 0 0;
    border-top: 1px solid var(--spb-border);
    background:
        radial-gradient(circle at top, var(--spb-footer-glow) 0%, rgb(111 182 255 / 0%) 28%),
        linear-gradient(180deg, var(--spb-footer-bg-start) 0%, var(--spb-footer-bg-end) 100%);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 2%);
}

footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: min(92%, 1240px);
    height: 2px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, rgb(111 182 255 / 0%) 0%, var(--spb-footer-rule-glow) 50%, rgb(111 182 255 / 0%) 100%);
}

footer .title {
    margin: 0 0 0.85rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid var(--spb-footer-divider);
    color: var(--spb-footer-title);
    font-size: clamp(1.2rem, 1.5vw, 1.65rem);
    line-height: 1.08;
    text-wrap: balance;
}

footer .address,
footer p,
footer li,
footer span {
    color: var(--spb-text-soft);
}

footer .address {
    font-size: 0.96rem;
    line-height: 1.62;
}

footer .address p {
    margin-bottom: 0.58rem;
}

footer .b {
    color: var(--spb-footer-title);
    font-weight: 700 !important;
}

footer .ftr-link,
footer .legal a,
footer .ftr_srvc_bullets a {
    color: var(--spb-accent);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.18s ease, opacity 0.18s ease;
}

footer .ftr-link:hover,
footer .legal a:hover,
footer .ftr_srvc_bullets a:hover {
    color: var(--spb-accent-2);
}

footer .text-justify {
    margin-top: 0.75rem;
    max-width: 60ch;
    color: var(--spb-text-soft);
    line-height: 1.62;
}

footer .ftr_srvc_bullets {
    margin: 0;
    padding-left: 0;
    list-style: none;
}

footer .ftr_srvc_bullets li {
    position: static;
    margin-bottom: 0.7rem;
    padding-left: 0;
}

footer .ftr_srvc_bullets li::before {
    content: "";
    position: static;
    display: inline-block;
    margin-right: 0.5rem;
    width: 0.34rem;
    height: 0.34rem;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--spb-footer-bullet-start) 0%, var(--spb-footer-bullet-end) 100%);
    box-shadow: none;
    vertical-align: middle;
}

footer .rowLegal {
    position: relative;
    margin-top: 1.15rem;
    padding-top: 0.9rem;
    padding-bottom: 1rem;
}

footer .rowLegal::before {
    content: "";
    position: absolute;
    top: 0;
    left: 15px;
    right: 15px;
    border-top: 1px solid var(--spb-footer-legal-divider);
}

footer .legal,
footer .txt_bt {
    color: var(--spb-text-muted);
    font-size: 0.84rem;
    line-height: 1.5;
}

footer .txt_bt {
    text-align: right;
}

/* ========================================
   12. BANNER PRINCIPAL
   ======================================== */
.banner-principal {
    margin: 1rem 0 0.5rem;
}

.banner-principal-box {
    position: relative;
    overflow: hidden;
    min-height: 14.25rem;
    border-radius: 0;
    background-color: transparent;
    box-shadow: none;
}

.banner-principal-box::before {
    content: none;
}

.banner-principal-media {
    position: absolute;
    inset: 0;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 20%, #000 80%, transparent 100%);
}

.banner-principal-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center -3%;
    filter: saturate(1) brightness(0.5);
    transform: scale(1.3);
}

.banner-principal-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 14.25rem;
    margin: 0 auto;
    padding: 1rem 1rem;
    text-align: center;
}

.banner-principal-box:not(:has(> .banner-principal-media)),
.banner-principal-box:not(:has(> .banner-principal-media)) .banner-principal-content {
    min-height: auto;
}

.banner-principal-title {
    margin: 0;
    color: var(--spb-white);
    font-size: clamp(1.6rem, 2vw, 2.05rem);
    line-height: 1.03;
    text-shadow: 0 12px 34px rgb(0 0 0 / 38%);
}

.banner-principal-subtitle {
    margin: 0.55rem auto 0;
    color: rgb(244 245 242 / 92%);
    font-size: clamp(0.88rem, 0.9vw, 1rem);
    line-height: 1.32;
    text-shadow: 0 10px 26px rgb(0 0 0 / 32%);
}

.banner-principal-quote {
    position: relative;
    width: 100%;
    max-width: 36rem;
    margin: 0.75rem auto 0;
    padding: 0;
    border: 0;
}

.banner-principal-quote-text {
    position: relative;
    padding: 0.72rem 1rem 0.72rem 1.25rem;
    border: 1px solid rgb(111 182 255 / 18%);
    border-left: 4px solid var(--spb-accent);
    border-radius: 0.9rem;
    background:
        linear-gradient(180deg, rgb(16 22 31 / 58%) 0%, rgb(11 16 23 / 52%) 100%);
    color: rgb(244 245 242 / 90%);
    font-size: 0.9rem;
    font-style: italic;
    line-height: 1.38;
    text-align: center;
    box-shadow:
        0 10px 26px rgb(0 0 0 / 14%),
        inset 0 1px 0 rgb(255 255 255 / 6%);
    backdrop-filter: blur(8px);
}

.banner-principal-quote-text::before {
    content: "\201C";
    position: absolute;
    top: 50%;
    left: 0.45rem;
    transform: translateY(-52%);
    color: rgb(111 182 255 / 75%);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
    line-height: 1;
    font-style: normal;
    text-shadow: 0 4px 12px rgb(0 0 0 / 22%);
}

.banner-principal-quote-text p {
    margin: 0;
}

.banner-principal-actions {
    margin-top: 0.8rem;
}

.banner-principal-actions .btn.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    min-width: 13rem;
    padding: 0.82rem 1.5rem;
    border: 1px solid #4b8fe8;
    border-radius: 999px;
    background: linear-gradient(180deg, #3277d3 0%, #2259ad 100%);
    color: var(--spb-white);
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 12px 24px rgb(20 70 140 / 26%);
}

.banner-principal-actions .btn.btn-primary:hover {
    color: var(--spb-white);
    border-color: #74acff;
    background: linear-gradient(180deg, #3b88ee 0%, #2966c0 100%);
}

/* ========================================
   13. PLANES DESTACADOS 01
   ======================================== */
.planes-destacados {
    padding: 1rem 0;
    background: linear-gradient(179deg, #003a63b5, transparent);
    border-bottom: 1px solid var(--spb-cta-line-bottom);
}

.planes-destacados-title {
    margin: 0 0 0.35rem;
    color: var(--spb-white);
    font-size: clamp(1.3rem, 1.8vw, 1.95rem);
    line-height: 1.08;
    text-align: center;
    text-wrap: balance;
}

.planes-destacados-subtitle {
    max-width: 42rem;
    margin: 0 auto 0.8rem;
    color: var(--spb-text-soft);
    font-size: 0.9rem;
    line-height: 1.45;
    text-align: center;
    text-wrap: balance;
}

.planes-destacados-grid {
    row-gap: 1rem;
}

.plan-destacado-card {
    position: relative;
    display: flex;
    overflow: hidden;
    height: 100%;
    border: 1px solid var(--spb-related-card-border);
    border-radius: 1.2rem;
    background: linear-gradient(180deg, rgb(20 24 29 / 96%) 0%, rgb(14 18 23 / 98%) 100%);
    box-shadow: var(--spb-related-card-shadow);
}

.plan-destacado-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 8%;
    right: 8%;
    height: 1px;
    z-index: 2;
    background: linear-gradient(90deg,
        rgb(111 182 255 / 0%) 0%,
        rgb(111 182 255 / 55%) 18%,
        rgb(146 204 255 / 82%) 50%,
        rgb(111 182 255 / 55%) 82%,
        rgb(111 182 255 / 0%) 100%);
    box-shadow:
        0 0 12px rgb(111 182 255 / 26%),
        0 0 24px rgb(111 182 255 / 14%);
    pointer-events: none;
}

.plan-destacado-media {
    position: absolute;
    inset: 0;
}

.plan-destacado-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: saturate(0.88) brightness(0.74);
    transform: scale(1.0);
}

.plan-destacado-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgb(0 0 0) 0%, rgb(0 0 0 / 50%) 50%, rgb(0 0 0) 100%);
}

.plan-destacado-card--icon .plan-destacado-overlay {
    background:
        radial-gradient(circle at top, rgb(111 182 255 / 10%) 0%, rgb(111 182 255 / 0%) 52%),
        linear-gradient(180deg, rgb(24 31 41 / 96%) 0%, rgb(15 20 27 / 98%) 100%);
}

.plan-destacado-body {
    position: relative;
    z-index: 1;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 0.95rem;
    text-align: center;
}

.plan-destacado-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin: 0 auto 0.85rem;
    border-radius: 999px;
    background: rgb(111 182 255 / 10%);
    color: var(--spb-white);
    font-size: 1.7rem;
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 8%);
}

.plan-destacado-card--icon .plan-destacado-body {
    justify-content: center;
}

.plan-destacado-title {
    margin: 0;
    color: var(--spb-white);
    font-size: clamp(0.98rem, 1.05vw, 1.32rem);
    line-height: 1.08;
    text-wrap: balance;
    text-shadow: 0 8px 24px rgb(0 0 0 / 34%);
}

.plan-destacado-text {
    margin: 0.55rem 0 0;
    color: rgb(244 245 242 / 88%);
    font-size: 0.86rem;
    line-height: 1.36;
    text-shadow: 0 6px 18px rgb(0 0 0 / 26%);
}

.plan-destacado-actions {
    margin-top: 0.7rem;
}

.plan-destacado-actions .btn.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.7rem;
    padding: 0.68rem 1.1rem;
    border: 1px solid var(--spb-line-active);
    border-radius: 999px;
    background: linear-gradient(180deg, rgb(32 45 63 / 96%) 0%, rgb(22 31 44 / 100%) 100%);
    color: var(--spb-white);
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 12px 24px rgb(0 0 0 / 22%);
}

.plan-destacado-actions .btn.btn-primary:hover {
    color: var(--spb-white);
    border-color: var(--spb-border-strong);
    filter: brightness(1.05);
}

[data-block="planes-destacados-01"] .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-card,
.planes-destacados .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-card {
    border-color: rgb(111 182 255 / 42%);
    box-shadow: 0 18px 38px rgb(0 0 0 / 24%);
}

[data-block="planes-destacados-01"] .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-card::before,
.planes-destacados .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-card::before {
    left: 5%;
    right: 5%;
    background: linear-gradient(90deg,
        rgb(111 182 255 / 0%) 0%,
        rgb(111 182 255 / 72%) 16%,
        rgb(162 214 255 / 96%) 50%,
        rgb(111 182 255 / 72%) 84%,
        rgb(111 182 255 / 0%) 100%);
    box-shadow:
        0 0 14px rgb(111 182 255 / 34%),
        0 0 30px rgb(111 182 255 / 22%);
}

[data-block="planes-destacados-01"] .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-title,
.planes-destacados .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-title {
    font-size: clamp(1.06rem, 1.2vw, 1.55rem);
}

[data-block="planes-destacados-01"] .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-actions .btn.btn-primary,
.planes-destacados .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-actions .btn.btn-primary {
    border-color: #4b8fe8;
    background: linear-gradient(180deg, #3277d3 0%, #2259ad 100%);
    box-shadow: 0 14px 28px rgb(20 70 140 / 28%);
}

[data-block="planes-destacados-01"] .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-actions .btn.btn-primary:hover,
.planes-destacados .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-actions .btn.btn-primary:hover {
    border-color: #74acff;
    background: linear-gradient(180deg, #3b88ee 0%, #2966c0 100%);
}

@media (min-width: 993px) {
    [data-block="planes-destacados-01"] .planes-destacados-grid,
    .planes-destacados .planes-destacados-grid {
        align-items: stretch;
        position: relative;
        padding-top: 0.35rem;
    }

    [data-block="planes-destacados-01"] .planes-destacados-grid > .col-4,
    .planes-destacados .planes-destacados-grid > .col-4 {
        transition: transform 0.22s ease, opacity 0.22s ease;
    }

    [data-block="planes-destacados-01"] .planes-destacados-grid > .col-4:nth-child(1),
    [data-block="planes-destacados-01"] .planes-destacados-grid > .col-4:nth-child(3),
    .planes-destacados .planes-destacados-grid > .col-4:nth-child(1),
    .planes-destacados .planes-destacados-grid > .col-4:nth-child(3) {
        margin-top: 1.35rem;
    }

    [data-block="planes-destacados-01"] .planes-destacados-grid > .col-4:nth-child(2),
    .planes-destacados .planes-destacados-grid > .col-4:nth-child(2) {
        transform: scale(1.04);
    }

    [data-block="planes-destacados-01"] .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-card,
    .planes-destacados .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-card {
        box-shadow: 0 22px 48px rgb(0 0 0 / 26%);
    }

    [data-block="planes-destacados-01"] .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-title,
    .planes-destacados .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-title {
        font-size: clamp(1.1rem, 1.35vw, 1.8rem);
    }

    [data-block="planes-destacados-01"] .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-actions .btn.btn-primary,
    .planes-destacados .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-actions .btn.btn-primary {
        min-width: 15.5rem;
        min-height: 3.1rem;
        padding: 0.86rem 1.65rem;
        font-size: 1.02rem;
        border-color: #4b8fe8;
        background: linear-gradient(180deg, #3277d3 0%, #2259ad 100%);
        box-shadow: 0 14px 28px rgb(20 70 140 / 28%);
    }

    [data-block="planes-destacados-01"] .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-actions .btn.btn-primary:hover,
    .planes-destacados .planes-destacados-grid > .col-4:nth-child(2) .plan-destacado-actions .btn.btn-primary:hover {
        border-color: #74acff;
        background: linear-gradient(180deg, #3b88ee 0%, #2966c0 100%);
    }
}

/* ========================================
   14. ABOUT LINKS
   ======================================== */
.about-links-wrapper {
    position: relative;
    padding: 1.2rem 0 1.35rem;
    border-bottom: 1px solid var(--spb-cta-line-bottom);
        background: radial-gradient(circle at center, rgb(111 182 255 / 9%) 0%, rgb(111 182 255 / 0%) 32%), linear-gradient(180deg, rgb(0 0 0 / 67%) 0%, rgb(18 9 20 / 41%) 58%, rgb(0 0 0 / 0%) 100%);
}

.about-links-intro {
    max-width: 58rem;
    margin: 0 auto 1.2rem;
    text-align: center;
}

.about-links-intro h2 {
    margin: 0 0 0.45rem;
    color: var(--spb-white);
    line-height: 1.05;
}

.about-links-intro p {
    margin: 0;
    color: rgb(238 243 250 / 78%);
    font-size: 0.98rem;
    line-height: 1.62;
}

.about-links-grid {
    row-gap: 1rem;
}

.about-links-card {
    position: relative;
    overflow: hidden;
    height: 100%;
    min-height: 16.2rem;
    border-radius: 1.1rem;
    background-color: #151b26;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    box-shadow: 0 16px 34px rgb(0 0 0 / 24%);
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.about-links-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 10%;
    right: 10%;
    height: 1px;
    z-index: 2;
    background: linear-gradient(90deg, rgb(111 182 255 / 0%) 0%, rgb(210 226 255 / 84%) 50%, rgb(111 182 255 / 0%) 100%);
    box-shadow: 0 0 14px rgb(111 182 255 / 18%);
}

.about-links-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background:#000000e0;
    pointer-events: none;
}

.about-links-card:hover {
    transform: translateY(-3px);
    border-color: rgb(198 221 255 / 26%);
    box-shadow: 0 22px 42px rgb(0 0 0 / 28%);
}

.about-links-card__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 3.35rem 1.2rem 1.15rem;
    text-align: center;
}

.about-links-card__eyebrow {
    display: inline-flex;
    position: absolute;
    top: 1rem;
    left: 50%;
    align-self: center;
    margin-bottom: 0;
    padding: 0.35rem 0.68rem;
    border: 1px solid rgb(255 255 255 / 14%);
    border-radius: 999px;
    background: rgb(255 255 255 / 8%);
    color: rgb(240 245 255 / 88%);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    transform: translateX(-50%);
    text-transform: uppercase;
    backdrop-filter: blur(8px);
}

.about-links-card h3 {
    margin: 0 auto 0.55rem;
    color: var(--spb-white);
    line-height: 1.02;
    text-shadow: 0 8px 24px rgb(0 0 0 / 42%);
}

.about-links-card p {
    max-width: 30rem;
    margin: 0;
    color: rgb(247 247 247 / 90%);
    line-height: 1.52;
    text-shadow: 0 6px 18px rgb(0 0 0 / 34%);
}

.about-links-card__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    margin-top: 1rem;
}

.about-links-card__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: min(100%, 16rem);
    min-height: 2.5rem;
    padding: 0.68rem 1rem;
    border: 1px solid rgb(255 255 255 / 22%);
    border-radius: 0.55rem;
    background: linear-gradient(180deg, rgb(54 58 72 / 72%) 0%, rgb(34 39 50 / 82%) 100%);
    color: var(--spb-white);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    box-shadow:
        inset 0 1px 0 rgb(255 255 255 / 8%),
        0 10px 24px rgb(0 0 0 / 16%);
    backdrop-filter: blur(6px);
    transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.about-links-card__link span {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.about-links-card__link span::after {
    content: "\203A";
    font-size: 1.1em;
    line-height: 1;
}

.about-links-card__link:hover {
    color: var(--spb-white);
    transform: translateY(-1px);
    border-color: rgb(255 255 255 / 36%);
    background: linear-gradient(180deg, rgb(71 76 92 / 78%) 0%, rgb(42 47 61 / 86%) 100%);
    box-shadow: 0 14px 28px rgb(0 0 0 / 20%);
}

.about-links-card--music {
    background-image:
        linear-gradient(180deg, rgb(108 34 108 / 18%) 0%, rgb(20 14 35 / 44%) 100%),
        url(/content/images/conciertos/concierto_05.webp);
}

.about-links-card--music .about-links-card__eyebrow {
    background: rgb(206 126 255 / 12%);
    border-color: rgb(223 161 255 / 20%);
}

.about-links-card--tech {
    background-image:
        linear-gradient(180deg, rgb(36 44 66 / 18%) 0%, rgb(15 17 23 / 50%) 100%),
        url(/content/images/conciertos/IMG_20260301_131752-819x614.webp);
}

.about-links-card--tech::before {
    background: linear-gradient(90deg, rgb(111 182 255 / 0%) 0%, rgb(205 222 255 / 76%) 50%, rgb(111 182 255 / 0%) 100%);
    box-shadow: 0 0 14px rgb(111 182 255 / 18%);
}

.about-links-card--tech .about-links-card__eyebrow {
    background: rgb(111 182 255 / 10%);
    border-color: rgb(171 210 255 / 18%);
    color: rgb(230 242 255 / 92%);
}

.about-links-card--tech .about-links-card__link:hover {
    border-color: rgb(198 220 255 / 34%);
    background: linear-gradient(180deg, rgb(66 72 88 / 80%) 0%, rgb(40 46 58 / 88%) 100%);
}

/* ========================================
   15. CATALOG COMPLETE
   ======================================== */
.catalog-complete-block {
    padding: 1rem 0;
    background: linear-gradient(180deg, rgb(0 43 121 / 47%) 0%, rgb(10 21 34 / 13%) 100%);
}

.catalog-complete-block__heading {
    text-align: center;
}

.catalog-complete-block__heading h2 {
    margin: 0 0 0.3rem;
    color: #f5f7fb;
    font-size: clamp(1.3rem, 1.8vw, 1.95rem);
    line-height: 1.08;
}

.catalog-complete-block__heading p {
    margin: 0;
    color: rgb(232 238 247 / 78%);
    font-size: 0.92rem;
    line-height: 1.45;
    margin-bottom: 0.75rem;
}

.catalog-complete-block__filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.55rem;
    margin-bottom: 1.15rem;
}

.catalog-complete-block__filter {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.55rem;
    padding: 0.68rem 1rem;
    border: 1px solid rgb(111 182 255 / 16%);
    border-radius: 999px;
    background: linear-gradient(180deg, rgb(14 22 31 / 94%) 0%, rgb(9 14 20 / 98%) 100%);
    color: #f5f7fb;
    font-size: 0.88rem;
    font-weight: 700;
    text-align: center;
    box-shadow: none;
    outline: none;
    transition: border-color 0.18s ease, background 0.18s ease;
}

.catalog-complete-block__filter:hover {
    border-color: rgb(111 182 255 / 36%);
    background: linear-gradient(180deg, rgb(20 31 44 / 96%) 0%, rgb(12 19 28 / 100%) 100%);
}

.catalog-complete-block__filter.is-active {
    border-color: rgb(111 182 255 / 38%);
    background: linear-gradient(180deg, rgb(24 35 49 / 94%) 0%, rgb(16 24 34 / 98%) 100%);
    color: #f5f7fb;
}

.catalog-complete-block__grid {
    row-gap: 0.95rem;
}

.catalog-complete-block__grid.row{
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.95rem;
    margin-left: 0;
    margin-right: 0;
}

.catalog-complete-block__grid > .catalog-complete-block__item{
    max-width: none;
    width: auto;
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 0;
    flex: unset;
}
/* 5 columnas -> equivalente a col-X */
@media (max-width: 1199px){
    .catalog-complete-block__grid.row{
        grid-template-columns: repeat(4, minmax(0, 1fr)); /* col-X */
    }
}

/* 4 columnas -> equivalente a col-3 */
@media (max-width: 1000px){
    .catalog-complete-block__grid.row{
        grid-template-columns: repeat(3, minmax(0, 1fr)); /* col-4 */
    }
}

/* 3 columnas -> 2 columnas */
@media (max-width: 768px){
    .catalog-complete-block__grid.row{
        grid-template-columns: repeat(2, minmax(0, 1fr)); /* col-6 */
    }
}

/* 2 columnas -> 1 columna */
@media (max-width: 500px){
    .catalog-complete-block__grid.row{
        grid-template-columns: 1fr; /* col-12 */
    }
}

.catalog-complete-block__card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border: 1px solid rgb(111 182 255 / 18%);
    border-radius: 1.1rem;
    background: linear-gradient(180deg, rgb(17 22 29 / 96%) 0%, rgb(12 16 22 / 98%) 100%);
    box-shadow: 0 18px 36px rgb(0 0 0 / 18%);
}

.catalog-complete-block__media {
    position: relative;
    aspect-ratio: 1.25 / 0.7;
    overflow: hidden;
    background: rgb(255 255 255 / 4%);
}

.catalog-complete-block__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.9) saturate(0.96);
}

@media (max-width: 768px){
    .catalog-complete-block__media{
        max-height: 10rem;
        overflow: hidden;
    }

    .catalog-complete-block__media img{
        width: 100%;
        height: 100%;
        object-fit: contain;
        background: #0b1018;
        display: block;
    }
}

.catalog-complete-block__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 1rem 1rem 1.05rem;
    background: linear-gradient(180deg, rgb(17 22 29 / 98%) 0%, rgb(12 16 22 / 100%) 100%);
}

.catalog-complete-block__kicker {
    margin: 0 0 0.45rem;
    color: rgb(173 188 210 / 76%);
    font-size: 0.74rem;
    font-weight: 700;
    text-transform: uppercase;
}

.catalog-complete-block__kicker--overlay {
    position: absolute;
    left: 0.3rem;
    bottom: 0.3rem;
    z-index: 1;
    margin: 0;
    padding: 0.38rem 0.58rem;
    border: 1px solid rgb(111 182 255 / 16%);
    border-radius: 999px;
    background: rgb(10 16 24 / 82%);
    color: #f5f7fb;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.catalog-complete-block__title {
    margin: 0;
    color: #f5f7fb;
    font-size: 1.25rem;
    line-height: 1.08;
    text-align: center;
}

.catalog-complete-block__headline {
    margin: 0.55rem 0 0;
    color: #f5f7fb;
    font-size: 0.94rem;
    font-weight: 700;
    line-height: 1.45;
    text-align: start;
}

.catalog-complete-block__description {
    margin: 0.6rem 0 0;
    color: rgb(232 238 247 / 78%);
    font-size: 0.88rem;
    line-height: 1.55;
    text-align: start;
}

.catalog-complete-block__actions {
    display: flex;
    gap: 0.5rem;
    margin-top: auto;
    padding-top: 0.9rem;
}

.catalog-complete-block__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.35rem;
    padding: 0.62rem 0.95rem;
    border-radius: 999px;
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
    flex: 1 1 0;
}

.catalog-complete-block__action--budget {
    flex: 1 1 auto;
    border: 1px solid #4b8fe8;
    background: linear-gradient(180deg, #3277d3 0%, #2259ad 100%);
    color: #f5f7fb;
    box-shadow: 0 10px 20px rgb(20 70 140 / 20%);
}

.catalog-complete-block__action--budget:hover {
    border-color: #74acff;
    background: linear-gradient(180deg, #3b88ee 0%, #2966c0 100%);
    color: #f5f7fb;
}

.catalog-complete-block__action--info {
    border: 1px solid rgb(111 182 255 / 18%);
    background: rgb(255 255 255 / 2%);
    color: #f5f7fb;
}

.catalog-complete-block__action--info:hover {
    border-color: rgb(111 182 255 / 34%);
    background: rgb(111 182 255 / 8%);
    color: #f5f7fb;
}

.catalog-complete-block__item.is-hidden {
    display: none;
}

.catalog-complete-block__item {
    margin-bottom: 0.95rem;
}

@media (max-width: 1199px) {
    .catalog-complete-block__kicker {
        font-size: 0.65rem;
    }
}

/* ========================================
   16. RESPONSIVE CONTENT OVERRIDES
   ======================================== */
@media (max-width: 992px) {
    .planes-destacados-grid > .col-4:nth-child(2) {
        order: -1;
    }

    .about-links-intro {
        margin-bottom: 0.8rem;
    }

    .about-links-intro h2 {
        font-size: clamp(1.3rem, 6vw, 1.8rem);
    }

    .about-links-card__content {
        padding: 3.7rem 1rem 1rem;
    }

    .about-links-card {
        min-height: 15rem;
    }

    .about-links-card__eyebrow {
        top: 0.85rem;
        font-size: 0.64rem;
    }

    .about-links-card h3 {
        max-width: 13.5ch;
        font-size: clamp(1.3rem, 5.5vw, 1.75rem);
    }

    .about-links-card p {
        font-size: 0.92rem;
        line-height: 1.46;
    }

    .about-links-card__actions {
        gap: 0.55rem;
    }

    .about-links-card__link {
        width: 100%;
        max-width: 18rem;
        font-size: 0.9rem;
    }

    .cta-card h2,
    .faq-title,
    .related-services-title {
        font-size: clamp(1.2rem, 6vw, 1.5rem);
    }

    .cta-card p,
    .faq-answer,
    .related-services-subtitle,
    .service-card-text {
        font-size: 0.92rem;
        line-height: 1.58;
    }

    .cta-card .btn.btn-primary,
    .service-card .btn.btn-outline-primary {
        width: 100%;
    }

    .related-services .row > .col-4 {
        margin-bottom: 1rem;
    }

    .service-card .card-body {
        padding: 0.68rem 0.1rem 0.12rem;
    }

    .service-card-title {
        font-size: 0.94rem;
    }

    .banner-principal-box,
    .banner-principal-content {
        min-height: 12.5rem;
    }

    .banner-principal-box:not(:has(> .banner-principal-media)),
    .banner-principal-box:not(:has(> .banner-principal-media)) .banner-principal-content {
        min-height: auto;
    }

    footer {
        padding-top: 1.35rem;
    }

    footer .title {
        text-align: center;
    }

    footer .address,
    footer .text-justify {
        text-align: center;
        margin-left: auto;
        margin-right: auto;
    }

    footer .ftr_srvc_bullets {
        max-width: 18rem;
        margin-right: auto;
        margin-left: auto;
    }

    footer .row > .col-6 {
        margin-bottom: 0;
    }

    footer .rowLegal {
        margin-top: 0.9rem;
        row-gap: 0.35rem;
    }

    footer .legal,
    footer .txt_bt {
        text-align: center;
    }

    .bc_wrap {
        margin-top: 0.35rem;
        margin-bottom: 0.55rem;
    }

    .bc_list {
        gap: 0.2rem;
    }

    .bc_link,
    .bc_text {
        font-size: 0.76rem;
    }

    .bc_home {
        width: 1.6rem;
        height: 1.6rem;
        font-size: 0.98rem;
    }

    #pageTitle {
        font-size: clamp(1.4rem, 7vw, 1.9rem);
        margin-bottom: 0.25rem;
    }

    #pageSubtitle {
        font-size: clamp(0.92rem, 4vw, 1.05rem);
        line-height: 1.38;
    }

    .landing-quote {
        padding: 0.85rem 0.9rem;
    }

    .landing-quote::before {
        left: 0.72rem;
        top: 0.38rem;
        font-size: 2.55rem;
    }

    .landing-quote-text {
        padding-left: 2.25rem;
        font-size: 0.94rem;
        line-height: 1.5;
    }

    .banner-principal {
        margin-top: 0.7rem;
    }

    .banner-principal-box,
    .banner-principal-content {
        min-height: 11.25rem;
    }

    .banner-principal-box:not(:has(> .banner-principal-media)),
    .banner-principal-box:not(:has(> .banner-principal-media)) .banner-principal-content {
        min-height: auto;
    }

    .banner-principal-content {
        padding: 0.85rem 0.85rem;
    }

    .banner-principal-title {
        font-size: clamp(1.05rem, 6vw, 1.6rem);
    }

    .banner-principal-subtitle {
        font-size: 0.8rem;
        line-height: 1.3;
    }

    .banner-principal-quote {
        max-width: 100%;
        margin-top: 0.55rem;
    }

    .banner-principal-quote-text {
        padding: 0.6rem 0.8rem 0.6rem 1rem;
        font-size: 0.8rem;
        line-height: 1.28;
    }

    .banner-principal-quote-text::before {
        left: 0.34rem;
        font-size: 1.55rem;
    }

    .banner-principal-actions .btn.btn-primary,
    .plan-destacado-actions .btn.btn-primary {
        width: 100%;
    }

    .planes-destacados-subtitle,
    .plan-destacado-text {
        font-size: 0.85rem;
        line-height: 1.42;
    }

    .plan-destacado-body {
        padding: 0.85rem;
    }

    .plan-destacado-card--icon .plan-destacado-body {
        position: relative;
        padding: 1rem 0.85rem 0.85rem;
    }

    .plan-destacado-card--icon .plan-destacado-icon {
        position: absolute;
        top: 0.5rem;
        left: 0.5rem;
        width: 2.15rem;
        height: 2.15rem;
        margin: 0;
        border: 1px solid rgb(111 182 255 / 12%);
        background: rgb(111 182 255 / 6%);
        color: rgb(245 247 251 / 78%);
        font-size: 1rem;
        box-shadow: none;
        opacity: 0.82;
    }

    h1 { font-size: clamp(1.4rem, 7vw, 1.9rem); }
    h2 { font-size: clamp(1.2rem, 6vw, 1.5rem); }
    h3 { font-size: clamp(1.05rem, 5vw, 1.22rem); }
    h4 { font-size: clamp(0.98rem, 4.2vw, 1.08rem); }
    h5 { font-size: 0.94rem; }
    h6 { font-size: 0.88rem; }

    .img-logo {
        height: 3rem;
    }
}

@media (max-width: 575.98px) {
    .about-links-wrapper {
        padding: 1rem 0 1.15rem;
    }

    .about-links-card {
        min-height: 14.25rem;
        border-radius: 0.95rem;
    }

    .about-links-card__content {
        padding: 3.45rem 0.85rem 1rem;
    }

    .about-links-card__eyebrow {
        top: 0.8rem;
        max-width: calc(100% - 1.6rem);
        padding: 0.32rem 0.58rem;
        font-size: 0.6rem;
    }

    .about-links-card h3 {
        max-width: 14ch;
        font-size: clamp(1.15rem, 7vw, 1.45rem);
    }

    .about-links-card p {
        max-width: 26rem;
        font-size: 0.88rem;
    }

    .about-links-card__link {
        min-height: 2.35rem;
        padding: 0.62rem 0.8rem;
        font-size: 0.86rem;
    }

    .plan-destacado-card--icon .plan-destacado-body {
        padding: 0.95rem 0.8rem 0.8rem;
    }

    .plan-destacado-card--icon .plan-destacado-icon {
        top: 0.65rem;
        right: 0.65rem;
        width: 1.85rem;
        height: 1.85rem;
        font-size: 0.86rem;
        opacity: 0.72;
    }
}

/* Checklist */
.list-group-checked{
    margin-bottom: 0;
}

.checklist-wrapper{
    background: linear-gradient(180deg, #000000ab, transparent);
    border-bottom: 1px solid var(--spb-cta-line-bottom);
    text-align: center;
    padding: 1rem 0;
    position: relative;
}

/* La lista no usa bullets nativos */
.checklist-wrapper .list-group{
    list-style: none;
    padding-left: 0;
    margin: 1rem 0 0;
}

/* Cada item será la referencia del check */
.checklist-wrapper .list-group-item{
    position: relative;
    padding: 0 0 0 1.6rem;
    margin: 0.6rem 0;
    border: 0;
    background: transparent;
}

/* Quitamos márgenes raros del p */
.checklist-wrapper .list-group-item p{
    margin: 0;
}

/* Check decorativo */
.checklist-wrapper .list-group-item::before{
    content: "✓";
    position: absolute;
    left: 0;
    top: 0.15rem;
    color: #9ad0ff;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
}

.checklist-wrapper h2{
    text-align: center;
}

.checklist-wrapper .list-group{
    max-width: 62rem;
    margin: 1rem auto 0;
    text-align: left;
}

/* ========================================
   17. CONTACT FORM
   ======================================== */
.form-wrapper{
    background: linear-gradient();
}
#formulario {
    position: relative;
    overflow: hidden;
    width: min(100%, 42rem);
    margin: 2.6rem auto 2.2rem;
    padding: clamp(1.45rem, 2vw, 2rem);
    border: 1px solid rgb(111 182 255 / 16%);
    border-radius: 1.45rem;
    background:radial-gradient(circle at top right, rgb(0 0 0 / 78%) 0%, rgb(51 68 85 / 0%) 34%), linear-gradient(180deg, rgb(14 14 14 / 96%) 0%, rgb(21 29 41 / 98%) 100%);
    box-shadow:
        0 22px 44px rgb(0 0 0 / 28%),
        inset 0 1px 0 rgb(255 255 255 / 5%);
}

#formulario::before {
    content: "";
    position: absolute;
    top: 0;
    left: 8%;
    right: 8%;
    height: 1px;
    background: linear-gradient(90deg, rgb(111 182 255 / 0%) 0%, rgb(143 201 255 / 72%) 50%, rgb(111 182 255 / 0%) 100%);
    box-shadow: 0 0 18px rgb(111 182 255 / 24%);
}

#formulario h2 {
    margin-bottom: 1.35rem;
    color: var(--spb-white);
    font-size: clamp(1.85rem, 2.6vw, 2.55rem);
    line-height: 1.02;
    letter-spacing: 0.01em;
    text-wrap: balance;
}

#formulario .form-group {
    margin-bottom: 0.9rem;
}

#formulario .contact-form {
    position: relative;
    z-index: 1;
    margin: 0;
}

#contactForm .form-control {
    min-height: 3.55rem;
    width: 100%;
    padding: 0.95rem 1.1rem;
    border: 1px solid rgb(111 182 255 / 20%);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgb(39 53 73 / 92%) 0%, rgb(33 45 61 / 96%) 100%);
    color: rgb(248 251 255 / 96%);
    font-size: 1rem;
    line-height: 1.45;
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 4%);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

#contactForm .form-control::placeholder {
    color: rgb(218 229 244 / 64%);
    opacity: 1;
}

#contactForm textarea.form-control {
    min-height: 9.8rem;
    resize: vertical;
}

#contactForm .form-control:hover {
    border-color: rgb(111 182 255 / 30%);
}

#contactForm .form-control:focus {
    outline: none;
    border-color: rgb(143 201 255 / 70%);
    background: linear-gradient(180deg, rgb(44 60 82 / 96%) 0%, rgb(36 49 67 / 100%) 100%);
    box-shadow:
        0 0 0 4px rgb(111 182 255 / 12%),
        0 16px 28px rgb(0 0 0 / 20%);
    transform: translateY(-1px);
}

#contactForm .form-control.is-valid,
#contactForm .is-valid.form-control {
    border-color: rgb(110 195 169 / 62%);
    box-shadow: 0 0 0 3px rgb(110 195 169 / 10%);
}

#contactForm .form-control.is-invalid,
#contactForm .is-invalid.form-control {
    border-color: rgb(255 126 126 / 78%) !important;
    background: linear-gradient(180deg, rgb(67 42 49 / 96%) 0%, rgb(52 31 37 / 100%) 100%);
    box-shadow: 0 0 0 4px rgb(255 126 126 / 12%) !important;
}

#contactForm .error-message,
#contactForm .invalid-feedback {
    display: none;
    margin-top: 0.55rem;
    padding: 0.72rem 0.88rem;
    border: 1px solid rgb(255 126 126 / 26%);
    border-radius: 0.9rem;
    background: linear-gradient(180deg, rgb(76 35 44 / 92%) 0%, rgb(59 27 35 / 98%) 100%);
    color: rgb(255 219 219 / 96%);
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.45;
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 4%);
}

#contactForm .error-message.visible,
#contactForm .invalid-feedback.visible {
    display: block;
}

#contactForm .form-submit-alert {
    display: none;
    margin-bottom: 1rem;
    padding: 0.95rem 1rem;
    border: 1px solid transparent;
    border-radius: 1rem;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.5;
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 4%);
}

#contactForm .form-submit-alert.is-success {
    border-color: rgb(110 195 169 / 30%);
    background: linear-gradient(180deg, rgb(25 62 55 / 92%) 0%, rgb(18 48 42 / 98%) 100%);
    color: rgb(220 255 245 / 95%);
}

#contactForm .form-submit-alert.is-error {
    border-color: rgb(255 126 126 / 28%);
    background: linear-gradient(180deg, rgb(77 36 45 / 92%) 0%, rgb(60 27 35 / 98%) 100%);
    color: rgb(255 223 223 / 96%);
}

#contactForm .row.mt-2.mb-2 {
    align-items: end;
    margin-top: 0.35rem !important;
}

#contactForm .form-check {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-height: 4rem;
    padding: 0.95rem 1rem;
    border: 1px solid rgb(111 182 255 / 18%);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgb(27 37 51 / 92%) 0%, rgb(20 28 39 / 98%) 100%);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 4%);
    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

#contactForm .form-check.is-valid {
    border-color: rgb(110 195 169 / 35%);
    box-shadow: 0 0 0 3px rgb(110 195 169 / 10%);
}

#contactForm .form-check.is-invalid {
    border-color: rgb(255 126 126 / 42%);
    background: linear-gradient(180deg, rgb(63 37 45 / 90%) 0%, rgb(46 28 35 / 98%) 100%);
    box-shadow: 0 0 0 4px rgb(255 126 126 / 10%);
}

#contactForm .form-check-input {
    flex: 0 0 auto;
    width: 1.08rem;
    height: 1.08rem;
    margin-top: 0.16rem;
    accent-color: #7dbfff;
    cursor: pointer;
}

#contactForm .form-check-label {
    color: rgb(241 246 252 / 88%);
    font-size: 0.98rem;
    line-height: 1.55;
    cursor: pointer;
}

#contactForm .form-check-label a {
    color: #8dcbff;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgb(141 203 255 / 34%);
    transition: color 0.18s ease, border-color 0.18s ease;
}

#contactForm .form-check-label a:hover {
    color: #c4e5ff;
    border-color: rgb(196 229 255 / 62%);
}

#contactForm button.btn,
#contactForm .btn,
#contactForm button.btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 3.85rem;
    padding: 0.92rem 1.2rem;
    border: 1px solid #4f97f1;
    border-radius: 1rem;
    background: linear-gradient(180deg, #3b84e4 0%, #2767bf 100%);
    color: #ffffff;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 0.01em;
    text-align: center;
    box-shadow: 0 16px 30px rgb(18 72 148 / 30%);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, filter 0.18s ease;
}

#contactForm button.btn:hover,
#contactForm .btn:hover,
#contactForm button.btn-secondary:hover {
    color: #ffffff;
    border-color: #7dbfff;
    box-shadow: 0 18px 34px rgb(18 72 148 / 34%);
    filter: brightness(1.06);
    transform: translateY(-1px);
}

#contactForm button.btn:disabled,
#contactForm .btn:disabled,
#contactForm button.btn-secondary:disabled,
#contactForm button.btn.is-loading,
#contactForm .btn.is-loading,
#contactForm button.btn-secondary.is-loading {
    cursor: wait;
    border-color: rgb(130 159 198 / 40%);
    background: linear-gradient(180deg, rgb(85 113 151 / 94%) 0%, rgb(62 86 118 / 98%) 100%);
    box-shadow: none;
    filter: saturate(0.75);
    transform: none;
}

@media (min-width: 768px) {
    #contactForm .col-8.mt-2.mb-2 {
        display: flex;
        align-items: stretch;
    }

    #contactForm .col-4.mt-2 {
        display: flex;
        align-items: stretch;
    }
}

@media (max-width: 767.98px) {
    #formulario {
        width: calc(100% - 1.2rem);
        margin: 1.8rem auto;
        padding: 1.2rem;
        border-radius: 1.2rem;
    }

    #formulario h2 {
        margin-bottom: 1rem;
        font-size: clamp(1.65rem, 7vw, 2.1rem);
    }

    #contactForm .form-control {
        min-height: 3.3rem;
        padding: 0.88rem 0.95rem;
    }

    #contactForm .row.mt-2.mb-2 {
        row-gap: 0.8rem;
    }

    #contactForm .col-8.mt-2.mb-2,
    #contactForm .col-4.mt-2 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    #contactForm .form-check {
        min-height: auto;
        padding: 0.9rem;
    }

    #contactForm button.btn,
    #contactForm .btn,
    #contactForm button.btn-secondary {
        min-height: 3.5rem;
        font-size: 1rem;
    }
}