:root {
    --progreso-ink: #080D17;
    --progreso-navy: #080D17;
    --progreso-blue: #284D69;
    --progreso-blue-soft: #628DA6;
    --progreso-gold: #D5A55B;
    --progreso-gold-bright: #F1C974;
    --progreso-gold-soft: #F2DE9E;
    --progreso-bronze: #9B6125;
    --progreso-white: #FFFFFF;
    --progreso-warm-white: #F8F6F1;
    --progreso-text: #111827;
    --progreso-muted: #636258;
    --progreso-border: #CDB88E;
    --progreso-v-depth: 58px;
    --progreso-v-line: 5px;
    --progreso-body-font: "Segoe UI", Arial, sans-serif;
    --progreso-body-size: 15px;
    --progreso-body-weight: 300;
    --progreso-body-leading: 1.5;
    --progreso-body-spacing: 0;
}

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

html {
    width: 100%;
    overflow-x: hidden;
    scroll-behavior: smooth;
}

body {
    width: 100%;
    min-width: 0;
    margin: 0;
    overflow-x: hidden;
    background: rgba(255, 255, 255, .86);
    color: var(--progreso-text);
    font-family: var(--progreso-body-font);
    font-weight: var(--progreso-body-weight);
}

/* Una sola escala para todo el texto de lectura de la página y el footer. */
:where(.firma-page, .progreso-footer) :where(p, li, dd),
.progreso-footer__bottom {
    font-family: var(--progreso-body-font) !important;
    font-size: var(--progreso-body-size) !important;
    font-weight: var(--progreso-body-weight) !important;
    line-height: var(--progreso-body-leading) !important;
    letter-spacing: var(--progreso-body-spacing) !important;
    font-synthesis: none;
}

a {
    color: inherit;
    text-decoration: none;
}

img,
svg,
video,
iframe {
    max-width: 100%;
}

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

.skip-link {
    position: fixed;
    top: 10px;
    left: 10px;
    z-index: 999;
    padding: 11px 15px;
    border-radius: 8px;
    background: var(--progreso-white);
    color: var(--progreso-ink);
    transform: translateY(-160%);
    transition: transform .2s ease;
}

.skip-link:focus {
    transform: translateY(0);
}

.progreso-header {
    position: relative;
    z-index: 50;
    width: 100%;
    min-height: 145px;
    border-bottom: 1px solid rgba(241, 201, 116, .22);
    background: rgba(8, 13, 23, .96);
    box-shadow: 0 16px 36px rgba(0, 0, 0, .18);
}

.progreso-header__gold-line {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--progreso-gold-bright) 18%, var(--progreso-gold) 82%, transparent);
}

.progreso-header__inner {
    width: min(1460px, calc(100% - 48px));
    min-height: 145px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 245px minmax(0, 1fr) 150px;
    align-items: center;
    gap: 24px;
}

.progreso-brand {
    position: relative;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.progreso-brand__plate {
    position: absolute;
    top: 10px;
    left: 0;
    z-index: 4;
    width: 225px;
    height: 225px;
    padding: 0;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: transparent;
    clip-path: circle(41.9% at 50% 47.4%);
    filter: none;
}

.progreso-brand__plate img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    border-radius: 0;
    clip-path: none;
    transform: none;
}

.progreso-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(8px, .65vw, 10px);
    min-width: 0;
}

.progreso-nav a {
    position: relative;
    min-height: 50px;
    padding: 0 clamp(7px, .55vw, 10px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 0;
    background: rgba(255, 255, 255, .10);
    color: var(--progreso-white);
    font-size: clamp(14px, .9vw, 16px);
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    transition: background .22s ease, border-color .22s ease, color .22s ease;
}

.progreso-nav a::after {
    display: none;
}

.progreso-nav a:hover,
.progreso-nav a:focus-visible {
    background: var(--progreso-gold);
    color: var(--progreso-ink);
}

.progreso-nav a.active {
    background: transparent;
    color: var(--progreso-gold-bright);
}

.progreso-nav__group {
    position: relative;
}

@media (min-width: 1041px) {
    .progreso-nav > a,
    .progreso-nav > .progreso-nav__group {
        flex: 1 1 auto;
        min-width: 0;
    }

    .progreso-nav > .progreso-nav__group > a {
        width: 100%;
    }
}

.progreso-nav__group > a {
    display: inline-flex;
    align-items: center;
}

.progreso-nav__group > a.active {
    background: var(--progreso-gold);
    color: var(--progreso-ink);
}

.progreso-nav__submenu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 90;
    min-width: 330px;
    padding: 10px 0;
    border-top: 3px solid var(--progreso-gold);
    background: var(--progreso-ink);
    box-shadow: 0 20px 38px rgba(0, 0, 0, .34);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-4px);
    transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
}

.progreso-nav__submenu a {
    width: 100%;
    padding: 14px 28px;
    display: block;
    background: transparent;
    color: var(--progreso-white);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.15;
    text-align: left;
}

.progreso-nav__submenu a:hover,
.progreso-nav__submenu a:focus-visible,
.progreso-nav__submenu a.active {
    background: var(--progreso-gold);
    color: var(--progreso-ink);
}

.progreso-nav__group:hover > .progreso-nav__submenu,
.progreso-nav__group:focus-within > .progreso-nav__submenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.progreso-header__cta {
    width: 150px;
    min-width: 150px;
    min-height: 50px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--progreso-gold-bright);
    border-radius: 0;
    background: var(--progreso-gold-bright);
    color: var(--progreso-ink);
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    letter-spacing: .025em;
    transition: background .22s ease, color .22s ease, transform .22s ease;
}

.progreso-header__cta:hover,
.progreso-header__cta:focus-visible {
    border-color: var(--progreso-gold);
    background: var(--progreso-gold);
    color: var(--progreso-ink);
    transform: translateY(-2px);
}

.progreso-menu-toggle {
    display: none;
}

.progreso-hero {
    position: relative;
    min-height: 720px;
    height: calc(100vh - 145px);
    overflow: hidden;
    background: var(--progreso-white);
    color: var(--progreso-ink);
}

.progreso-hero__slide {
    position: absolute;
    inset: 0;
    visibility: hidden;
    opacity: 0;
    background: var(--hero-image) center / cover no-repeat;
    transition: opacity .7s ease, visibility .7s ease;
}

.progreso-hero__slide::before {
    content: "";
    position: absolute;
    inset: -1%;
    background: inherit;
    transform: scale(1.055);
    transition: transform 7s ease;
}

.progreso-hero__slide.is-active {
    visibility: visible;
    opacity: 1;
}

.progreso-hero__slide.is-active::before {
    transform: scale(1.01);
}

.progreso-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgba(255, 255, 255, .96) 0%, rgba(255, 255, 255, .82) 38%, rgba(255, 255, 255, .08) 72%, rgba(255, 255, 255, .02) 100%);
}

.progreso-hero__content {
    position: relative;
    z-index: 2;
    width: min(1460px, calc(100% - 128px));
    height: 100%;
    margin: 0 auto;
    padding: 82px 0 116px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.progreso-hero__content > span {
    margin-left: clamp(300px, 23vw, 380px);
    color: var(--progreso-bronze);
    font-size: 14px;
    font-weight: 900;
    letter-spacing: .22em;
}

/* En la portada, el logotipo invade visualmente el inicio del carrusel.
   Desplazamos el bloque completo hacia abajo y alejamos el antetítulo
   del área ocupada por el logotipo, sin alterar las demás páginas. */
@media (min-width: 1101px) {
    .home-hero .progreso-hero__content {
        padding-top: 136px;
        padding-bottom: 62px;
    }

    .home-hero .progreso-hero__content > span {
        margin-left: clamp(370px, 27vw, 450px);
    }
}

.progreso-hero h1,
.progreso-hero h2 {
    max-width: 920px;
    margin: 28px 0 0;
    color: var(--progreso-ink);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(58px, 6.3vw, 96px);
    font-weight: 700;
    line-height: .98;
    text-wrap: balance;
}

.progreso-hero__line {
    width: 94px;
    height: 4px;
    margin: 30px 0;
    border-radius: 5px;
    background: var(--progreso-gold-bright);
}

.progreso-hero p {
    max-width: 780px;
    margin: 0;
    color: var(--progreso-muted);
    font-size: 20px;
    line-height: 1.65;
}

.progreso-hero__cta {
    min-height: 56px;
    margin-top: 32px;
    padding: 0 27px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border: 1px solid var(--progreso-gold);
    border-radius: 12px;
    background: var(--progreso-gold);
    color: var(--progreso-ink);
    font-size: 13px;
    font-weight: 900;
    transition: background .22s ease, transform .22s ease;
}

.progreso-hero__cta:hover,
.progreso-hero__cta:focus-visible {
    background: var(--progreso-bronze);
    color: var(--progreso-white);
    transform: translateY(-2px);
}

.progreso-hero__arrow {
    position: absolute;
    top: 52%;
    z-index: 6;
    width: 54px;
    height: 54px;
    border: 1px solid rgba(8, 13, 23, .42);
    border-radius: 50%;
    background: rgba(255, 255, 255, .72);
    color: var(--progreso-ink);
    font: 400 42px/1 Georgia, serif;
    cursor: pointer;
    transition: background .22s ease, color .22s ease, border-color .22s ease;
}

.progreso-hero__arrow:hover,
.progreso-hero__arrow:focus-visible {
    border-color: var(--progreso-gold-bright);
    background: var(--progreso-gold-bright);
    color: var(--progreso-ink);
}

.progreso-hero__arrow--previous { left: 28px; }
.progreso-hero__arrow--next { right: 28px; }

.progreso-hero__dots {
    position: absolute;
    left: 50%;
    bottom: 36px;
    z-index: 6;
    display: flex;
    gap: 10px;
    transform: translateX(-50%);
}

.progreso-hero__dots button {
    width: 11px;
    height: 11px;
    padding: 0;
    border: 1px solid var(--progreso-ink);
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
}

.progreso-hero__dots button.is-active {
    width: 34px;
    border-color: var(--progreso-gold-bright);
    border-radius: 8px;
    background: var(--progreso-gold-bright);
}

@media (max-width: 1240px) {
    .progreso-header__inner {
        width: min(1180px, calc(100% - 32px));
        grid-template-columns: 205px minmax(0, 1fr) 150px;
        gap: 15px;
    }

    .progreso-nav {
        gap: 7px;
    }

    .progreso-nav a {
        padding-inline: 7px;
        font-size: 13px;
    }
}

@media (max-width: 1040px) {
    .progreso-header {
        min-height: 86px;
    }

    .progreso-header__inner {
        min-height: 86px;
        grid-template-columns: 112px 1fr auto;
    }

    .progreso-brand__plate {
        top: 8px;
        width: 145px;
        height: 145px;
        padding: 0;
        clip-path: none;
        filter: none;
    }

    .progreso-brand__plate img {
        width: 100%;
        height: 100%;
    }

    .progreso-menu-toggle {
        justify-self: end;
        width: 48px;
        height: 48px;
        padding: 0;
        display: grid;
        place-content: center;
        gap: 5px;
        border: 1px solid rgba(241, 201, 116, .38);
        border-radius: 12px;
        background: rgba(20, 50, 75, .55);
        cursor: pointer;
    }

    .progreso-menu-toggle span:not(.sr-only) {
        width: 22px;
        height: 2px;
        display: block;
        background: var(--progreso-white);
        transition: transform .22s ease, opacity .22s ease;
    }

    .progreso-menu-toggle[aria-expanded="true"] span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .progreso-menu-toggle[aria-expanded="true"] span:nth-child(2) {
        opacity: 0;
    }

    .progreso-menu-toggle[aria-expanded="true"] span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .progreso-nav {
        position: absolute;
        top: 188px;
        left: 16px;
        right: 16px;
        padding: 18px;
        display: none;
        align-items: stretch;
        flex-direction: column;
        gap: 0;
        border: 1px solid rgba(241, 201, 116, .28);
        border-radius: 14px;
        background: rgba(8, 13, 23, .98);
        box-shadow: 0 24px 50px rgba(0, 0, 0, .36);
    }

    .progreso-nav.is-open {
        display: flex;
    }

    .progreso-nav a {
        width: calc(100% - 24px);
        align-self: center;
        margin-bottom: 6px;
        padding: 11px 13px;
        font-size: 17px;
    }

    .progreso-nav__group {
        width: 100%;
    }

    .progreso-nav__group > a {
        display: flex;
    }

    .progreso-nav__submenu {
        position: static;
        width: calc(100% - 24px);
        min-width: 0;
        margin: -6px auto 8px;
        padding: 6px 0;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
        box-shadow: none;
    }

    .progreso-nav__submenu a {
        width: 100%;
        margin: 0;
        padding: 11px 16px;
        font-size: 15px;
    }

    .progreso-nav a:last-child {
        margin-bottom: 0;
    }

    .progreso-nav a::after {
        left: 12px;
        bottom: 8px;
        transform: none;
    }

    .progreso-nav a:hover::after,
    .progreso-nav a:focus-visible::after,
    .progreso-nav a.active::after {
        width: 42px;
    }

    .progreso-header__cta {
        display: none;
    }

    .progreso-menu-toggle {
        grid-column: 3;
        grid-row: 1;
    }

    .progreso-hero {
        height: calc(100vh - 86px);
        min-height: 690px;
    }

    .progreso-hero__content {
        width: min(100% - 56px, 920px);
    }

    .progreso-hero__content > span {
        margin-left: 150px;
    }
}

@media (max-width: 760px) {
    :root { --progreso-v-depth: 38px; }
    .progreso-header__inner {
        width: calc(100% - 24px);
        grid-template-columns: 82px 1fr auto;
        gap: 9px;
    }

    .progreso-brand__plate {
        top: 8px;
        width: 128px;
        height: 128px;
        padding: 0;
    }

    .progreso-brand__plate img {
        width: 100%;
        height: 100%;
    }

    .progreso-nav {
        top: 139px;
    }

    .progreso-menu-toggle {
        width: 42px;
        height: 42px;
    }

    .progreso-hero {
        min-height: 720px;
        height: calc(100svh - 86px);
    }

    .progreso-hero__overlay {
        background: linear-gradient(180deg, rgba(255, 255, 255, .38), rgba(255, 255, 255, .7) 44%, rgba(255, 255, 255, .95) 82%);
    }

    .progreso-hero__content {
        width: calc(100% - 30px);
        padding: 128px 0 100px;
        align-items: center;
        justify-content: flex-start;
        text-align: center;
    }

    .progreso-hero__content > span {
        margin-left: 0;
        font-size: 11px;
        line-height: 1.5;
    }

    .progreso-hero h1,
    .progreso-hero h2 {
        margin-top: 20px;
        font-size: clamp(42px, 12vw, 58px);
    }

    .progreso-hero__line {
        margin: 22px auto;
    }

    .progreso-hero p {
        font-size: 16px;
        line-height: 1.55;
    }

    .progreso-hero__cta {
        width: 100%;
        margin-top: 26px;
    }

    .progreso-hero__arrow {
        top: auto;
        bottom: 24px;
        width: 43px;
        height: 43px;
        font-size: 34px;
    }

    .progreso-hero__dots {
        bottom: 39px;
    }

    .progreso-hero__arrow--previous { left: 10px; }
    .progreso-hero__arrow--next { right: 10px; }
}
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }

    .progreso-hero__slide,
    .progreso-hero__slide::before {
        transition: none !important;
    }
}

.progreso-footer { position: relative; padding: 84px 0 0; overflow: hidden; background: var(--footer-bg, var(--progreso-white)); color: var(--footer-text, var(--progreso-ink)); }
.progreso-footer__edge { position: absolute; top: -2px; left: 0; width: 100%; height: var(--progreso-v-depth); background: var(--progreso-gold); clip-path: polygon(0 0, 50% 100%, 100% 0); }
.progreso-footer__edge::before { content: ''; position: absolute; top: -2px; left: 0; width: 100%; height: calc(var(--progreso-v-depth) - var(--progreso-v-line) + 2px); background: var(--progreso-ink); clip-path: polygon(0 0, 50% 100%, 100% 0); }
.progreso-footer__inner { width: min(1540px, calc(100% - 80px)); margin: 0 auto; display: grid; grid-template-columns: minmax(250px, 320px) minmax(190px, .9fr) minmax(210px, 1fr) minmax(280px, 1.15fr); gap: clamp(30px, 3vw, 52px); align-items: start; }
.progreso-footer__inner > div:not(.progreso-footer__brand) { padding-top: 20px; }
.progreso-footer h2 { margin: 0 0 18px; color: var(--progreso-ink); font-size: 19px; font-weight: 600; line-height: 1.1; text-transform: uppercase; letter-spacing: .01em; white-space: nowrap; }
.progreso-footer ul { margin: 0; padding: 0; display: grid; gap: 10px; list-style: none; }
.progreso-footer li { position: relative; margin: 0; padding-left: 24px; font-size: 15px; font-weight: 300; line-height: 1.35; }
.progreso-footer li::before { content: ''; position: absolute; top: .64em; left: 0; width: 7px; height: 7px; background: var(--progreso-ink); }
.progreso-footer a { transition: color .2s ease; }
.progreso-footer li a, .progreso-footer__data dd, .progreso-footer__data dd a, .progreso-footer__bottom, .progreso-footer__bottom a { font-size: 15px !important; font-weight: 300 !important; }
.progreso-footer a:hover, .progreso-footer a:focus-visible { color: var(--progreso-bronze); }
.progreso-footer__brand img { width: min(100%, 300px); height: auto; display: block; object-fit: contain; }
.progreso-footer__data dl, .progreso-footer__data dd { margin: 0; }
.progreso-footer__data dl > div { margin-bottom: 18px; }
.progreso-footer__data dt { margin-bottom: 10px; color: var(--progreso-ink); font-size: 19px; font-weight: 600; line-height: 1.1; text-transform: uppercase; letter-spacing: .01em; }
.progreso-footer__data dd { position: relative; padding-left: 30px; color: var(--progreso-ink); font-size: 15px; font-weight: 300; line-height: 1.4; overflow-wrap: anywhere; }
.progreso-footer__data dd::before { content: ''; position: absolute; top: .65em; left: 7px; width: 7px; height: 7px; background: var(--progreso-ink); }
.progreso-footer__social { margin-top: 22px; }
.progreso-footer__social h3 { margin: 0 0 20px; color: var(--progreso-ink); font-size: 19px; font-weight: 600; line-height: 1.1; text-transform: uppercase; }
.progreso-footer__social-links { display: flex; gap: 16px; }
.progreso-footer__social-links a { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; color: #fff; font: 800 24px/1 Arial, sans-serif; }
.progreso-footer__social-links a:hover, .progreso-footer__social-links a:focus-visible { color: #fff; transform: translateY(-2px); }
.progreso-footer__social-links .is-facebook { background: #1877f2; }
.progreso-footer__social-links .is-whatsapp { background: #25d366; font-size: 16px; }
.progreso-footer__bottom { width: min(1540px, calc(100% - 80px)); margin: 36px auto 0; padding: 18px 0; display: flex; justify-content: space-between; gap: 32px; border-top: 1px solid rgba(155,97,37,.25); color: var(--progreso-ink); font-size: 14px; }

/* Tema alternado del footer: se define explícitamente desde cada página. */
.progreso-footer--navy {
    --footer-bg: var(--progreso-ink);
    --footer-text: var(--progreso-white);
    background-color: var(--progreso-ink) !important;
    color: var(--progreso-white) !important;
}
.progreso-footer--navy .progreso-footer__edge::before {
    background: var(--progreso-white);
}
.progreso-footer--navy h2,
.progreso-footer--navy .progreso-footer__data dt,
.progreso-footer--navy .progreso-footer__social h3 {
    color: var(--progreso-white);
}
.progreso-footer--navy li a,
.progreso-footer--navy .progreso-footer__data dd,
.progreso-footer--navy .progreso-footer__data dd a,
.progreso-footer--navy .progreso-footer__bottom,
.progreso-footer--navy .progreso-footer__bottom a {
    color: rgba(255, 255, 255, .84);
}
.progreso-footer--navy li::before,
.progreso-footer--navy .progreso-footer__data dd::before {
    background: var(--progreso-gold);
}
.progreso-footer--navy a:hover,
.progreso-footer--navy a:focus-visible {
    color: var(--progreso-gold-bright);
}
.progreso-footer--navy .progreso-footer__bottom {
    border-top-color: rgba(213, 165, 91, .42);
}

/* Contacto flotante: réplica funcional del componente de la plantilla PROCONCILIA. */
.progreso-floating-contact{position:fixed;right:13px;bottom:15px;z-index:9997;display:grid;gap:9px;margin:0;padding:0}
.progreso-float-action{position:relative;box-sizing:border-box;display:grid;width:60px;height:60px;padding:0;place-items:center;border:0;border-radius:50%;color:#fff!important;text-decoration:none!important;box-shadow:0 9px 24px rgba(18,24,37,.27);cursor:pointer;transform:translateZ(0);transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}
.progreso-float-action svg{display:block;width:31px;height:31px;overflow:visible;fill:currentColor;stroke:none}
.progreso-float-whatsapp{background:#25d366}
.progreso-float-whatsapp::after{content:"";position:absolute;top:2px;right:2px;box-sizing:border-box;width:12px;height:12px;border:0;border-radius:50%;background:#f00;z-index:2;pointer-events:none}
.progreso-float-call{background:#ef9e0f;animation:progreso-call-pulse 1.5s ease-out infinite}
.progreso-float-call::before{content:"";position:absolute;inset:-2px;border:2px solid rgba(239,158,15,.55);border-radius:50%;animation:progreso-call-ring 1.5s ease-out infinite;pointer-events:none}
.progreso-float-call svg{width:28px;height:28px}
.progreso-float-label{position:absolute;top:50%;right:calc(100% + 12px);box-sizing:border-box;min-width:max-content;padding:10px 13px;border:1px solid #d8dbe2;background:#fff;color:#282e3f;font-size:12px!important;font-weight:700;line-height:1.2!important;text-transform:uppercase;white-space:nowrap;box-shadow:0 8px 22px rgba(18,24,37,.16);opacity:0;transform:translate(8px,-50%);visibility:hidden;transition:opacity .2s ease,transform .2s ease,visibility .2s ease}
.progreso-float-label::after{content:"";position:absolute;top:50%;right:-6px;width:10px;height:10px;border-top:1px solid #d8dbe2;border-right:1px solid #d8dbe2;background:#fff;transform:translateY(-50%) rotate(45deg)}
.progreso-float-whatsapp .progreso-float-label{opacity:1;transform:translate(0,-50%);visibility:visible}
.progreso-float-action:hover,.progreso-float-action:focus-visible{filter:brightness(1.05);box-shadow:0 12px 28px rgba(18,24,37,.34);transform:translateY(-3px) scale(1.04);outline:3px solid rgba(239,158,15,.34);outline-offset:3px}
.progreso-float-whatsapp:hover,.progreso-float-whatsapp:focus-visible,.progreso-floating-contact.is-whatsapp-open .progreso-float-whatsapp{outline:0;box-shadow:0 10px 26px rgba(18,24,37,.3)}
.progreso-float-action:hover .progreso-float-label,.progreso-float-action:focus-visible .progreso-float-label{opacity:1;transform:translate(0,-50%);visibility:visible}
.progreso-float-close-icon{display:none!important}
.progreso-floating-contact.is-whatsapp-open .progreso-float-open-icon{display:none!important}
.progreso-floating-contact.is-whatsapp-open .progreso-float-close-icon{display:block!important;width:34px;height:34px}
.progreso-floating-contact.is-whatsapp-open .progreso-float-close-icon path{fill:none!important;stroke:#fff!important;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.progreso-floating-contact.is-whatsapp-open .progreso-float-whatsapp .progreso-float-label{display:none!important}
.progreso-whatsapp-popup{position:absolute;right:0;bottom:141px;box-sizing:border-box;width:min(360px,calc(100vw - 26px));overflow:hidden;border-radius:20px;background:#fff;color:#282e3f;box-shadow:0 18px 48px rgba(18,24,37,.3);isolation:isolate;opacity:0;pointer-events:none;transform:translateY(14px) scale(.96);transform-origin:bottom right;visibility:hidden;transition:opacity .28s ease,transform .28s ease,visibility .28s ease}
.progreso-floating-contact.is-whatsapp-open .progreso-whatsapp-popup{opacity:1;pointer-events:auto;transform:translateY(0) scale(1);visibility:visible}
.progreso-whatsapp-popup__head{position:relative;display:grid;min-height:88px;box-sizing:border-box;padding:15px 48px 14px 18px;border-radius:20px 20px 0 0;grid-template-columns:46px minmax(0,1fr);gap:14px;align-items:center;background:#25bd4b;color:#fff}
.progreso-whatsapp-popup__mark{display:block;width:44px;height:44px;fill:#fff}
.progreso-whatsapp-popup__head strong{display:block;color:#fff;font-size:20px;line-height:1.08;text-transform:uppercase}
.progreso-whatsapp-popup__head span{display:block;margin-top:5px;color:#fff;font-size:12px;line-height:1.3}
.progreso-whatsapp-popup__close{position:absolute;top:11px;right:12px;width:34px;height:34px;padding:0;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:transparent;color:#fff;font:300 24px/1 Arial;cursor:pointer}
.progreso-whatsapp-popup__body{padding:16px 14px 15px;border-radius:0 0 20px 20px;background:#fff}
.progreso-whatsapp-status{display:flex;gap:8px;align-items:center;margin:0 0 14px;font-size:12px;line-height:1.4;color:#6b7280}
.progreso-whatsapp-status>.progreso-whatsapp-status__dot{width:9px;height:9px;border-radius:50%;background:#25bd4b;box-shadow:0 0 0 5px rgba(37,211,102,.13);flex:none}
.progreso-whatsapp-channel{position:relative;display:grid;grid-template-columns:62px minmax(0,1fr) 28px;gap:12px;align-items:center;min-height:92px;padding:12px 13px 12px 16px;border:1px solid #d9dde5;border-left:4px solid #25d366;border-radius:15px;background:#f2f4f7;color:#282e3f!important;text-decoration:none!important;box-shadow:0 8px 24px rgba(18,24,37,.08);transition:transform .2s ease,box-shadow .2s ease}
.progreso-whatsapp-channel:hover,.progreso-whatsapp-channel:focus-visible{transform:translateY(-2px);box-shadow:0 12px 28px rgba(18,24,37,.14);outline:0}
.progreso-whatsapp-channel__brand img{display:block;width:58px;height:58px;border:4px solid #fff;border-radius:50%;object-fit:cover;box-shadow:0 6px 16px rgba(18,24,37,.2)}
.progreso-whatsapp-channel__copy strong{display:block;font-size:14px;line-height:1.25;text-transform:uppercase}
.progreso-whatsapp-channel__copy small{display:block;margin-top:4px;font-size:12px;color:#6b7280}
.progreso-whatsapp-channel>svg{width:28px;height:28px;fill:#25bd4b}
.progreso-whatsapp-note{margin:14px 0 0;font-size:11px;line-height:1.45;color:#727783}
@media (min-width:721px){
    .progreso-whatsapp-popup{height:295px}
    .progreso-whatsapp-popup__head{height:88px}
    .progreso-whatsapp-popup__body{height:207px;box-sizing:border-box}
}
@keyframes progreso-call-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes progreso-call-ring{0%{opacity:.72;transform:scale(.94)}100%{opacity:0;transform:scale(1.28)}}

@media (max-width:720px){
    .progreso-float-action svg{width:29px;height:29px}
    .progreso-float-label{display:none}
    .progreso-float-whatsapp .progreso-float-label{display:block;padding:9px 11px;font-size:11px!important}
    .progreso-whatsapp-popup{bottom:132px;width:min(360px,calc(100vw - 18px));max-height:calc(100vh - 150px);overflow-x:hidden;overflow-y:auto}
    .progreso-whatsapp-popup__head{min-height:88px;padding:16px 48px 15px 18px;grid-template-columns:43px minmax(0,1fr);gap:12px}
    .progreso-whatsapp-popup__mark{width:42px;height:42px}
    .progreso-whatsapp-popup__head strong{font-size:20px;line-height:1.05}
    .progreso-whatsapp-popup__head span{margin-top:5px;font-size:13px;line-height:1.25}
    .progreso-whatsapp-popup__close{top:12px;right:12px;width:34px;height:34px;font-size:25px}
    .progreso-whatsapp-popup__body{padding:15px}
    .progreso-whatsapp-status{gap:8px;margin-bottom:15px;font-size:14px;line-height:1.3}
    .progreso-whatsapp-status>.progreso-whatsapp-status__dot{width:10px;height:10px;box-shadow:0 0 0 5px rgba(37,211,102,.13)}
    .progreso-whatsapp-channel{grid-template-columns:60px minmax(0,1fr) 28px;gap:10px;min-height:104px;padding:13px 12px 13px 17px}
    .progreso-whatsapp-channel__brand img{width:60px;height:60px}
    .progreso-whatsapp-channel__copy strong{font-size:14px}
    .progreso-whatsapp-channel__copy small{font-size:13px}
    .progreso-whatsapp-channel>svg{width:28px;height:28px}
    .progreso-whatsapp-note{margin-top:15px;font-size:12px;line-height:1.45}
}

@media (max-width: 1040px) {
    .progreso-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px 48px; }
    .progreso-footer__inner > div:not(.progreso-footer__brand) { padding-top: 0; }
    .progreso-footer__brand img { width: min(100%, 280px); }
    .progreso-footer h2 { white-space: normal; }
}

@media (max-width: 620px) {
    .progreso-footer { padding-top: 72px; }
    .progreso-footer__inner, .progreso-footer__bottom { width: calc(100% - 32px); }
    .progreso-footer__inner { grid-template-columns: 1fr; gap: 32px; }
    .progreso-footer__brand img { width: min(100%, 220px); margin: 0 auto; }
    .progreso-footer h2 { margin-bottom: 14px; }
    .progreso-footer ul { gap: 8px; }
    .progreso-footer__data dl > div { margin-bottom: 18px; }
    .progreso-footer__social { margin-top: 18px; }
    .progreso-footer__social h3 { margin-bottom: 14px; }
    .progreso-footer__bottom { margin-top: 32px; padding: 16px 0 22px; flex-direction: column; gap: 8px; }
}
