/* =========================================================
   HEADER INSTITUCIONAL COEPRISO
========================================================= */
/* Wrapper general */

.barra-principal-wrapper {
    width: 100%;
    background: var(--coepriso-blanco);
    box-shadow: 0 4px 18px rgba(59, 6, 23, .08);
    position: sticky;
    top: 0;
    z-index: 140;
}

/* Header superior */

.barra-principal {
    background: var(--coepriso-blanco);
    border-top: 8px solid var(--coepriso-guinda);
}

.barra-principal .contenedor {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 28px;
}

.barra-principal .fila {
    min-height: var(--header-alto);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

/* Logo */

.logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    flex-shrink: 0;
}

.logo img {
    display: block;
    max-height: 58px;
    width: auto;
}

/* Navegación */

.nav {
    display: flex;
    align-items: center;
    margin-left: auto;
}

.nav ul,
#menu-principal {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

#menu-principal li {
    margin: 0;
    padding: 0;
}

#menu-principal a {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;

    padding: 12px 15px;
    border-radius: var(--radius-sm);

    color: var(--coepriso-texto);
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;

    transition:
        color .22s ease,
        background-color .22s ease,
        box-shadow .22s ease,
        transform .22s ease;
}

#menu-principal a i {
    color: currentColor;
    font-size: 14px;
}

/* Subrayado activo tipo landing */

#menu-principal a::after {
    content: "";
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 5px;
    height: 3px;
    border-radius: 999px;
    background: var(--coepriso-guinda);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .22s ease;
}

#menu-principal a:hover,
#menu-principal a:focus {
    color: var(--coepriso-guinda);
    background: rgba(141, 21, 59, .06);
    outline: none;
}

#menu-principal a:hover::after,
#menu-principal a:focus::after,
#menu-principal a.active::after,
#menu-principal a[aria-current="page"]::after {
    transform: scaleX(1);
}

#menu-principal a.active,
#menu-principal a[aria-current="page"] {
    color: var(--coepriso-guinda);
}

/* Botón destacado: Atención ciudadana */

#menu-principal .nav-destacado a,
#menu-principal .btn-atencion {
    color: var(--coepriso-blanco);
    background: linear-gradient(
        180deg,
        var(--coepriso-guinda),
        var(--coepriso-guinda-700)
    );
    box-shadow: 0 8px 20px rgba(141, 21, 59, .22);
}

#menu-principal .nav-destacado a::after,
#menu-principal .btn-atencion::after {
    display: none;
}

#menu-principal .nav-destacado a:hover,
#menu-principal .nav-destacado a:focus,
#menu-principal .btn-atencion:hover,
#menu-principal .btn-atencion:focus {
    color: var(--coepriso-blanco);
    background: linear-gradient(
        180deg,
        var(--coepriso-guinda-700),
        var(--coepriso-guinda-900)
    );
    transform: translateY(-1px);
}

/* Botón hamburguesa */

.btn-menu {
    display: none;
    align-items: center;
    justify-content: center;

    width: 44px;
    height: 44px;
    border: 0;
    border-radius: var(--radius-sm);

    color: var(--coepriso-guinda);
    background: rgba(141, 21, 59, .08);
    cursor: pointer;

    transition:
        background-color .22s ease,
        color .22s ease,
        transform .22s ease;
}

.btn-menu svg {
    width: 26px;
    height: 26px;
    fill: currentColor;
}

.btn-menu:hover,
.btn-menu:focus {
    color: var(--coepriso-blanco);
    background: var(--coepriso-guinda);
    outline: none;
}

.btn-menu[aria-expanded="true"] {
    color: var(--coepriso-blanco);
    background: var(--coepriso-guinda);
}

/* Franja institucional */

.franja-patron,
.franja-institucional {
    background:
        linear-gradient(
            90deg,
            var(--coepriso-guinda-900),
            #520A22 48%,
            var(--coepriso-guinda-900)
        );
    color: var(--coepriso-blanco);
    text-align: center;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -.02em;
    padding: 18px 24px;
}

.franja-patron .contenedor,
.franja-institucional .contenedor {
    max-width: 1320px;
    margin: 0 auto;
}

/* Línea verde inferior */

.franja-verde {
    height: 20px;
    background: linear-gradient(
        90deg,
        var(--coepriso-verde-700),
        var(--coepriso-verde),
        var(--coepriso-verde-700)
    );
}

/* Accesibilidad */

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 992px) {

    body.menu-open::before {
        content: "";
        position: fixed;
        inset: 0;
        background: rgba(32, 6, 14, .42);
        backdrop-filter: blur(2px);
        z-index: 110;
        pointer-events: none;
    }

    .barra-principal .fila {
        min-height: 74px;
    }

    .logo img {
        max-height: 48px;
    }

    .btn-menu {
        display: inline-flex;
    }

    .nav {
        position: static;
    }

    #menu-principal {
        position: fixed;
        top: 86px;
        left: 50%;
        right: auto;
        z-index: 120;

        width: calc(100vw - 24px);
        max-width: 560px;
        min-width: 0;
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 4px;

        padding: 12px;
        border-radius: var(--radius-sm);

        background:
            linear-gradient(
                180deg,
                rgba(255, 255, 255, .98),
                rgba(255, 255, 255, .95)
            );
        backdrop-filter: blur(6px);
        box-shadow:
            0 18px 40px rgba(59, 6, 23, .18),
            0 2px 0 rgba(141, 21, 59, .10) inset;
        border: 1px solid rgba(141, 21, 59, .10);
        transform: translate(-50%, -8px);
        opacity: 0;
        pointer-events: none;
        transition: opacity .22s ease, transform .22s ease;
    }

    #menu-principal.is-open {
        display: flex;
        transform: translate(-50%, 0);
        opacity: 1;
        pointer-events: auto;
    }

    #menu-principal a {
        width: 100%;
        justify-content: flex-start;
        padding: 14px 16px;
        border-radius: var(--radius-sm);
    }

    #menu-principal a::after {
        left: 16px;
        right: auto;
        width: 42px;
    }

    .franja-patron,
    .franja-institucional {
        font-size: 18px;
        padding: 14px 20px;
    }

    .franja-verde {
        height: 14px;
    }
}

@media (max-width: 576px) {

    .barra-principal {
        border-top-width: 6px;
    }

    .barra-principal .contenedor {
        padding: 0 16px;
    }

    .barra-principal .fila {
        min-height: 68px;
        gap: 14px;
    }

    .logo img {
        max-height: 42px;
        max-width: 220px;
    }

    #menu-principal {
        top: 78px;
        width: calc(100vw - 20px);
    }

    .franja-patron,
    .franja-institucional {
        font-size: 15px;
        font-weight: 800;
        padding: 12px 16px;
    }

    .franja-verde {
        height: 10px;
    }
}
/* =========================================================
   COEPRISO 
   ========================================================= */

/* =========================================================
   Encabezado de página
   ========================================================= */

.coe-page-head {
    position: relative;
    padding: 2rem;
    background:
        radial-gradient(circle at top right, rgba(199, 154, 69, .14), transparent 34%),
        linear-gradient(135deg, var(--coepriso-gray-200), var(--coepriso-gray-50));
    border: 1px solid rgba(230, 213, 188, .85);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-coepriso-lg);
    overflow: hidden;
    margin-top: 1rem;
}

.coe-kicker, .coe-section-kicker {
  color: var(--coepriso-verde);
  font-family: var(--font-base);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .28em;
  line-height: 1.4;
  text-transform: uppercase;
}

.coe-page-title,
.coe-section-title {
  color: var(--coepriso-guinda);
  font-family: var(--font-titulo);
  font-size: clamp(1.72rem, 3vw, 2.45rem);
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -.035em;
  margin-top: 0;
}

.coe-page-title {
    font-size: clamp(2rem, 4vw, 3.35rem);
}

.coe-section-title {
    font-size: clamp(1.55rem, 2.6vw, 2.25rem);
}

.coe-page-text {
    max-width: 760px;
    color: var(--coepriso-gray-700);
    font-size: 1.05rem;
    line-height: 1.65;
}

.coe-response-card {
    background: var(--coepriso-naranja-50);
    border: 1px solid var(--coepriso-naranja-100);
    border-radius: var(--radius-sm);
}

.coe-response-card__title {
    color: var(--coepriso-naranja);
    font-weight: 800;
}

.coe-response-card__text {
    color: var(--coepriso-gray-700);
    font-size: .92rem;
    line-height: 1.55;
}

/* =========================================================
   Paneles
   ========================================================= */

.coe-panel {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(81, 78, 74, 0.9);
    border-radius: var(--radius-md);
    background:
        radial-gradient(
            circle at 88% 12%,
            rgba(13, 90, 58, .08),
            transparent 32%
        ),
        radial-gradient(
            circle at 18% 90%,
            rgba(242, 90, 29, .08),
            transparent 26%
        ),
        rgba(255, 255, 255, .94);
    box-shadow: var(--shadow-coepriso);
}

.coe-panel--guinda {
    border-color: rgba(234, 185, 202, .78);
    background:
        radial-gradient(
            circle at 88% 10%,
            rgba(141, 21, 59, .14),
            transparent 34%
        ),
        radial-gradient(
            circle at 10% 92%,
            rgba(199, 154, 69, .10),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            rgba(255, 255, 255, .96),
            rgba(251, 243, 246, .88)
        );
}

.coe-panel--verde {
    border-color: rgba(172, 216, 198, .78);
    background:
        radial-gradient(
            circle at 90% 12%,
            rgba(13, 90, 58, .15),
            transparent 35%
        ),
        radial-gradient(
            circle at 12% 88%,
            rgba(199, 154, 69, .09),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            rgba(255, 255, 255, .96),
            rgba(239, 248, 244, .88)
        );
}

.coe-panel--azul {
    border-color: rgba(183, 211, 231, .82);
    background:
        radial-gradient(
            circle at 88% 14%,
            rgba(29, 53, 84, .15),
            transparent 35%
        ),
        radial-gradient(
            circle at 14% 90%,
            rgba(127, 174, 208, .11),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            rgba(255, 255, 255, .96),
            rgba(238, 244, 250, .90)
        );
}

.coe-panel--naranja {
    border-color: rgba(255, 184, 148, .80);
    background:
        radial-gradient(
            circle at 88% 12%,
            rgba(242, 90, 29, .16),
            transparent 34%
        ),
        radial-gradient(
            circle at 12% 90%,
            rgba(199, 154, 69, .12),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            rgba(255, 255, 255, .96),
            rgba(255, 243, 236, .90)
        );
}

.coe-panel--dorado {
    border-color: rgba(241, 226, 194, .90);
    background:
        radial-gradient(
            circle at 86% 12%,
            rgba(199, 154, 69, .17),
            transparent 34%
        ),
        radial-gradient(
            circle at 14% 90%,
            rgba(141, 21, 59, .08),
            transparent 28%
        ),
        linear-gradient(
            145deg,
            rgba(255, 255, 255, .96),
            rgba(251, 247, 238, .92)
        );
}

.coe-panel--crema {
    border-color: rgba(230, 213, 188, .92);
    background:
        radial-gradient(
            circle at 88% 12%,
            rgba(199, 154, 69, .10),
            transparent 34%
        ),
        radial-gradient(
            circle at 12% 88%,
            rgba(13, 90, 58, .07),
            transparent 28%
        ),
        linear-gradient(
            145deg,
            rgba(255, 253, 248, .96),
            rgba(248, 242, 232, .90)
        );
}

.coe-panel--institucional {
    border-color: rgba(230, 213, 188, .88);
    background:
        radial-gradient(
            circle at 92% 10%,
            rgba(141, 21, 59, .13),
            transparent 31%
        ),
        radial-gradient(
            circle at 8% 92%,
            rgba(13, 90, 58, .12),
            transparent 29%
        ),
        radial-gradient(
            circle at 50% 110%,
            rgba(199, 154, 69, .10),
            transparent 34%
        ),
        rgba(255, 255, 255, .93);
}

.coe-panel--contraste {
    border-color: rgba(183, 211, 231, .82);
    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(29, 53, 84, .17),
            transparent 34%
        ),
        radial-gradient(
            circle at 10% 90%,
            rgba(242, 90, 29, .15),
            transparent 31%
        ),
        linear-gradient(
            135deg,
            rgba(255, 255, 255, .95),
            rgba(248, 242, 232, .84)
        );
}

.coe-panel--glass {
    border-color: rgba(255, 255, 255, .58);
    background:
        radial-gradient(
            circle at 88% 12%,
            rgba(141, 21, 59, .12),
            transparent 34%
        ),
        radial-gradient(
            circle at 12% 90%,
            rgba(13, 90, 58, .11),
            transparent 30%
        ),
        rgba(255, 255, 255, .72);
    box-shadow:
        var(--shadow-coepriso),
        inset 0 1px 0 rgba(255, 255, 255, .72);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.coe-panel--glass-dark {
    color: var(--coepriso-blanco);
    border-color: rgba(255, 255, 255, .16);
    background:
        radial-gradient(
            circle at 88% 12%,
            rgba(242, 90, 29, .16),
            transparent 34%
        ),
        radial-gradient(
            circle at 12% 90%,
            rgba(199, 154, 69, .14),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            rgba(29, 53, 84, .90),
            rgba(13, 28, 48, .86)
        );
    box-shadow:
        var(--shadow-coepriso-lg),
        inset 0 1px 0 rgba(255, 255, 255, .10);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.coe-panel--transparent {
    border-color: rgba(230, 213, 188, .65);
    background:
        radial-gradient(
            circle at 88% 12%,
            rgba(13, 90, 58, .10),
            transparent 34%
        ),
        radial-gradient(
            circle at 12% 90%,
            rgba(242, 90, 29, .09),
            transparent 30%
        ),
        rgba(255, 255, 255, .52);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.coe-panel--soft {
    border-color: rgba(230, 213, 188, .74);
    background:
        radial-gradient(
            circle at 88% 12%,
            rgba(141, 21, 59, .07),
            transparent 34%
        ),
        radial-gradient(
            circle at 12% 90%,
            rgba(13, 90, 58, .07),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            rgba(255, 255, 255, .92),
            rgba(248, 242, 232, .72)
        );
    box-shadow: var(--shadow-coepriso-sm);
}

/* =========================================================
   Formulario genérico .coe-
   ========================================================= */

.coe-form {
    width: 100%;
}

.coe-field {
    position: relative;
}

.coe-label {
    display: inline-block;
    margin-bottom: .45rem;
    color: var(--coepriso-gray-900);
    font-size: .92rem;
    font-weight: 700;
    line-height: 1.25;
}

.coe-label--required::after {
    content: " *";
    color: var(--coepriso-guinda);
    font-weight: 800;
}

.coe-help {
    display: block;
    margin-top: .42rem;
    color: var(--coepriso-gray-500);
    font-size: .82rem;
    line-height: 1.4;
}

.coe-error {
    display: block;
    margin-top: .42rem;
    color: #B42318;
    font-size: .82rem;
    font-weight: 600;
    line-height: 1.4;
}

.coe-control,
.coe-form input[type="text"],
.coe-form input[type="email"],
.coe-form input[type="tel"],
.coe-form input[type="number"],
.coe-form input[type="password"],
.coe-form input[type="search"],
.coe-form input[type="url"],
.coe-form input[type="date"],
.coe-form input[type="time"],
.coe-form input[type="datetime-local"],
.coe-form select,
.coe-form textarea {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: .78rem .95rem;
    color: var(--coepriso-gray-900);
    background-color: var(--coepriso-blanco);
    border: 1px solid var(--coepriso-gray-200);
    border-radius: var(--radius-md);
    font-family: var(--font-base);
    font-size: .94rem;
    font-weight: 400;
    line-height: 1.45;
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background-color .18s ease,
        color .18s ease;
}

.coe-control::placeholder,
.coe-form input::placeholder,
.coe-form textarea::placeholder {
    color: var(--coepriso-gray-500);
    opacity: .82;
}

.coe-control:hover,
.coe-form input:hover,
.coe-form select:hover,
.coe-form textarea:hover {
    border-color: var(--coepriso-arena);
}

.coe-control:focus,
.coe-form input:focus,
.coe-form select:focus,
.coe-form textarea:focus {
    outline: none;
    border-color: var(--coepriso-guinda);
    box-shadow: var(--focus-ring);
}

.coe-control:disabled,
.coe-form input:disabled,
.coe-form select:disabled,
.coe-form textarea:disabled,
.coe-control[readonly],
.coe-form input[readonly],
.coe-form textarea[readonly] {
    color: var(--coepriso-gray-500);
    background-color: var(--coepriso-gray-100);
    border-color: var(--coepriso-gray-200);
    cursor: not-allowed;
}

.coe-form textarea,
textarea.coe-control {
    min-height: 150px;
    resize: vertical;
}

/* Estados */
.coe-control.is-invalid,
.coe-form .is-invalid {
    border-color: #D92D20;
}

.coe-control.is-invalid:focus,
.coe-form .is-invalid:focus {
    box-shadow: 0 0 0 4px rgba(217, 45, 32, .16);
}

.coe-control.is-valid,
.coe-form .is-valid {
    border-color: var(--coepriso-verde);
}

.coe-control.is-valid:focus,
.coe-form .is-valid:focus {
    box-shadow: 0 0 0 4px rgba(13, 90, 58, .16);
}

/* Select nativo */
.coe-form select,
select.coe-control {
    appearance: none;
    padding-right: 2.65rem;
    background-image:
        linear-gradient(45deg, transparent 50%, var(--coepriso-gray-700) 50%),
        linear-gradient(135deg, var(--coepriso-gray-700) 50%, transparent 50%);
    background-position:
        calc(100% - 18px) 50%,
        calc(100% - 12px) 50%;
    background-size:
        6px 6px,
        6px 6px;
    background-repeat: no-repeat;
}

.coe-form select:focus,
select.coe-control:focus {
    background-image:
        linear-gradient(45deg, transparent 50%, var(--coepriso-guinda) 50%),
        linear-gradient(135deg, var(--coepriso-guinda) 50%, transparent 50%);
}

/* Date */
.coe-form input[type="date"],
input[type="date"].coe-control {
    min-height: 48px;
}

.coe-form input[type="date"]::-webkit-calendar-picker-indicator,
input[type="date"].coe-control::-webkit-calendar-picker-indicator {
    cursor: pointer;
    opacity: .72;
}

.coe-form input[type="date"]:focus::-webkit-calendar-picker-indicator,
input[type="date"].coe-control:focus::-webkit-calendar-picker-indicator {
    opacity: 1;
}

/* Checkbox y radio */
.coe-check,
.coe-radio {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    color: var(--coepriso-gray-800);
    font-size: .92rem;
    line-height: 1.45;
}

.coe-check input[type="checkbox"],
.coe-radio input[type="radio"] {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    margin-top: .12rem;
    accent-color: var(--coepriso-guinda);
    cursor: pointer;
}

.coe-check label,
.coe-radio label {
    margin: 0;
    cursor: pointer;
}

.coe-check input:disabled,
.coe-radio input:disabled,
.coe-check input:disabled + label,
.coe-radio input:disabled + label {
    color: var(--coepriso-gray-500);
    cursor: not-allowed;
}

.coe-check--inline,
.coe-radio--inline {
    display: inline-flex;
    margin-right: 1.1rem;
}

/* Input group */
.coe-input-group,
.coe-form .input-group {
    display: flex;
    align-items: stretch;
    width: 100%;
}

.coe-input-group > .coe-control,
.coe-form .input-group > .coe-control,
.coe-form .input-group > .form-control {
    flex: 1 1 auto;
    min-width: 0;
}

.coe-input-group-text,
.coe-form .input-group-text {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: .78rem .9rem;
    color: var(--coepriso-gray-700);
    background-color: var(--coepriso-crema);
    border: 1px solid var(--coepriso-gray-200);
    font-family: var(--font-base);
    font-size: .9rem;
    line-height: 1.45;
}

.coe-input-group > :first-child,
.coe-form .input-group > :first-child {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.coe-input-group > :last-child,
.coe-form .input-group > :last-child {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.coe-input-group > :not(:first-child),
.coe-form .input-group > :not(:first-child) {
    margin-left: -1px;
}

.coe-input-group > .coe-control:focus,
.coe-form .input-group > .coe-control:focus,
.coe-form .input-group > .form-control:focus {
    position: relative;
    z-index: 2;
}

/* Select2 */
.coe-form .select2-container {
    width: 100% !important;
    font-family: var(--font-base);
}

.coe-form .select2-container--default .select2-selection--single {
    min-height: 48px;
    background-color: var(--coepriso-blanco);
    border: 1px solid var(--coepriso-gray-200);
    border-radius: var(--radius-md);
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background-color .18s ease;
}

.coe-form .select2-container--default .select2-selection--single:hover {
    border-color: var(--coepriso-arena);
}

.coe-form .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-left: .95rem;
    padding-right: 2.65rem;
    color: var(--coepriso-gray-900);
    font-size: .94rem;
    line-height: 46px;
}

.coe-form .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--coepriso-gray-500);
    opacity: .82;
}

.coe-form .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 46px;
    right: .65rem;
}

.coe-form .select2-container--default.select2-container--focus .select2-selection--single,
.coe-form .select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--coepriso-guinda);
    box-shadow: var(--focus-ring);
}

.coe-form .select2-container--default .select2-selection--multiple {
    min-height: 48px;
    padding: .25rem .35rem;
    background-color: var(--coepriso-blanco);
    border: 1px solid var(--coepriso-gray-200);
    border-radius: var(--radius-md);
}

.coe-form .select2-container--default.select2-container--focus .select2-selection--multiple {
    border-color: var(--coepriso-guinda);
    box-shadow: var(--focus-ring);
}

.coe-form .select2-container--default .select2-selection--multiple .select2-selection__choice {
    margin-top: .32rem;
    border: 1px solid var(--coepriso-guinda-100);
    border-radius: var(--radius-pill);
    background-color: var(--coepriso-guinda-50);
    color: var(--coepriso-guinda);
    font-size: .82rem;
}

.coe-form .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    margin-right: .35rem;
    color: var(--coepriso-guinda);
}

.select2-dropdown {
    border-color: var(--coepriso-gray-200);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-coepriso-md);
    font-family: var(--font-base);
}

.select2-search--dropdown {
    padding: .65rem;
}

.select2-search--dropdown .select2-search__field {
    min-height: 42px;
    padding: .55rem .75rem;
    border: 1px solid var(--coepriso-gray-200);
    border-radius: var(--radius-sm);
    font-family: var(--font-base);
    outline: none;
}

.select2-search--dropdown .select2-search__field:focus {
    border-color: var(--coepriso-guinda);
    box-shadow: var(--focus-ring);
}

.select2-results__option {
    padding: .65rem .85rem;
    font-size: .92rem;
}

.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable,
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: var(--coepriso-guinda);
    color: var(--coepriso-blanco);
}

.select2-container--default .select2-results__option--selected {
    background-color: var(--coepriso-guinda-50);
    color: var(--coepriso-guinda);
}

/* Nota dentro de formulario */
.coe-form-note {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    color: var(--coepriso-gray-700);
    font-size: .84rem;
    line-height: 1.4;
}

.coe-form-note--info {
    color: var(--coepriso-naranja-700);
}

.coe-form-note--success {
    color: var(--coepriso-verde);
}

.coe-form-note__icon {
    flex: 0 0 auto;
    color: currentColor;
}

/* Ayuda debajo del botón */
.coe-submit-help {
    color: var(--coepriso-verde);
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.45;
}

/* =========================================================
   Botones
   ========================================================= */

.coe-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 46px;
    padding: .72rem 1.25rem;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    font-family: var(--font-base);
    font-size: .94rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;
    transition:
        background-color .18s ease,
        color .18s ease,
        border-color .18s ease,
        box-shadow .18s ease,
        transform .18s ease,
        opacity .18s ease;
}

.coe-btn:hover {
    transform: translateY(-1px);
}

.coe-btn:active {
    transform: translateY(0);
}

.coe-btn:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.coe-btn i,
.coe-btn svg {
    flex: 0 0 auto;
}

.coe-btn--primary {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-guinda);
    border-color: var(--coepriso-guinda);
}

.coe-btn--primary:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-guinda-700);
    border-color: var(--coepriso-guinda-700);
}

.coe-btn--outline {
    color: var(--coepriso-guinda);
    background-color: transparent;
    border-color: var(--coepriso-guinda-200);
}

.coe-btn--outline:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-guinda);
    border-color: var(--coepriso-guinda);
}

.coe-btn--soft {
    color: var(--coepriso-guinda);
    background-color: var(--coepriso-guinda-50);
    border-color: var(--coepriso-guinda-100);
}

.coe-btn--soft:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-guinda);
    border-color: var(--coepriso-guinda);
}

.coe-btn--success {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-verde);
    border-color: var(--coepriso-verde);
}

.coe-btn--success:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-verde-700);
    border-color: var(--coepriso-verde-700);
}

.coe-btn--success:focus-visible {
    box-shadow: 0 0 0 4px rgba(13, 90, 58, .20);
}

.coe-btn--success-outline {
    color: var(--coepriso-verde);
    background-color: transparent;
    border-color: var(--coepriso-verde-200);
}

.coe-btn--success-outline:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-verde);
    border-color: var(--coepriso-verde);
}

.coe-btn--success-outline:focus-visible {
    box-shadow: 0 0 0 4px rgba(13, 90, 58, .20);
}

.coe-btn--success-soft {
    color: var(--coepriso-verde-700);
    background-color: var(--coepriso-verde-50);
    border-color: var(--coepriso-verde-100);
}

.coe-btn--success-soft:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-verde);
    border-color: var(--coepriso-verde);
}

.coe-btn--success-soft:focus-visible {
    box-shadow: 0 0 0 4px rgba(13, 90, 58, .20);
}

.coe-btn--info {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-azul);
    border-color: var(--coepriso-azul);
}

.coe-btn--info:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-azul-700);
    border-color: var(--coepriso-azul-700);
}

.coe-btn--info:focus-visible {
    box-shadow: 0 0 0 4px rgba(29, 53, 84, .20);
}

.coe-btn--info-outline {
    color: var(--coepriso-azul);
    background-color: transparent;
    border-color: var(--coepriso-azul-200);
}

.coe-btn--info-outline:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-azul);
    border-color: var(--coepriso-azul);
}

.coe-btn--info-outline:focus-visible {
    box-shadow: 0 0 0 4px rgba(29, 53, 84, .20);
}

.coe-btn--info-soft {
    color: var(--coepriso-azul-700);
    background-color: var(--coepriso-azul-50);
    border-color: var(--coepriso-azul-100);
}

.coe-btn--info-soft:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-azul);
    border-color: var(--coepriso-azul);
}

.coe-btn--info-soft:focus-visible {
    box-shadow: 0 0 0 4px rgba(29, 53, 84, .20);
}

.coe-btn--warning {
    color: var(--coepriso-guinda-900);
    background-color: var(--coepriso-dorado);
    border-color: var(--coepriso-dorado);
}

.coe-btn--warning:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-dorado-700);
    border-color: var(--coepriso-dorado-700);
}

.coe-btn--warning:focus-visible {
    box-shadow: 0 0 0 4px rgba(199, 154, 69, .25);
}

.coe-btn--warning-outline {
    color: var(--coepriso-dorado-700);
    background-color: transparent;
    border-color: var(--coepriso-dorado);
}

.coe-btn--warning-outline:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-dorado-700);
    border-color: var(--coepriso-dorado-700);
}

.coe-btn--warning-outline:focus-visible {
    box-shadow: 0 0 0 4px rgba(199, 154, 69, .25);
}

.coe-btn--warning-soft {
    color: var(--coepriso-dorado-700);
    background-color: var(--coepriso-dorado-50);
    border-color: var(--coepriso-dorado-100);
}

.coe-btn--warning-soft:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-dorado-700);
    border-color: var(--coepriso-dorado-700);
}

.coe-btn--warning-soft:focus-visible {
    box-shadow: 0 0 0 4px rgba(199, 154, 69, .25);
}

.coe-btn--danger {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-naranja);
    border-color: var(--coepriso-naranja);
}

.coe-btn--danger:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-naranja-700);
    border-color: var(--coepriso-naranja-700);
}

.coe-btn--danger:focus-visible {
    box-shadow: 0 0 0 4px rgba(242, 90, 29, .22);
}

.coe-btn--danger-outline {
    color: var(--coepriso-naranja-700);
    background-color: transparent;
    border-color: var(--coepriso-naranja-200);
}

.coe-btn--danger-outline:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-naranja);
    border-color: var(--coepriso-naranja);
}

.coe-btn--danger-outline:focus-visible {
    box-shadow: 0 0 0 4px rgba(242, 90, 29, .22);
}

.coe-btn--danger-soft {
    color: var(--coepriso-naranja-700);
    background-color: var(--coepriso-naranja-50);
    border-color: var(--coepriso-naranja-100);
}

.coe-btn--danger-soft:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-naranja);
    border-color: var(--coepriso-naranja);
}

.coe-btn--danger-soft:focus-visible {
    box-shadow: 0 0 0 4px rgba(242, 90, 29, .22);
}

.coe-btn--pdf {
    color: var(--coepriso-blanco);
    background-color: #B42318;
    border-color: #B42318;
}

.coe-btn--pdf:hover {
    color: var(--coepriso-blanco);
    background-color: #912018;
    border-color: #912018;
}

.coe-btn--pdf:focus-visible {
    box-shadow: 0 0 0 4px rgba(180, 35, 24, .20);
}

.coe-btn--pdf-outline {
    color: #B42318;
    background-color: transparent;
    border-color: #FECDCA;
}

.coe-btn--pdf-outline:hover {
    color: var(--coepriso-blanco);
    background-color: #B42318;
    border-color: #B42318;
}

.coe-btn--pdf-outline:focus-visible {
    box-shadow: 0 0 0 4px rgba(180, 35, 24, .20);
}

.coe-btn--pdf-soft {
    color: #912018;
    background-color: #FEF3F2;
    border-color: #FEE4E2;
}

.coe-btn--pdf-soft:hover {
    color: var(--coepriso-blanco);
    background-color: #B42318;
    border-color: #B42318;
}

.coe-btn--pdf-soft:focus-visible {
    box-shadow: 0 0 0 4px rgba(180, 35, 24, .20);
}

.coe-btn--neutral {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-gray-700);
    border-color: var(--coepriso-gray-700);
}

.coe-btn--neutral:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-gray-900);
    border-color: var(--coepriso-gray-900);
}

.coe-btn--neutral:focus-visible {
    box-shadow: 0 0 0 4px rgba(71, 84, 103, .20);
}

.coe-btn--neutral-outline {
    color: var(--coepriso-gray-700);
    background-color: transparent;
    border-color: var(--coepriso-gray-200);
}

.coe-btn--neutral-outline:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-gray-700);
    border-color: var(--coepriso-gray-700);
}

.coe-btn--neutral-outline:focus-visible {
    box-shadow: 0 0 0 4px rgba(71, 84, 103, .20);
}

.coe-btn--neutral-soft {
    color: var(--coepriso-gray-700);
    background-color: var(--coepriso-gray-100);
    border-color: var(--coepriso-gray-200);
}

.coe-btn--neutral-soft:hover {
    color: var(--coepriso-blanco);
    background-color: var(--coepriso-gray-700);
    border-color: var(--coepriso-gray-700);
}

.coe-btn--neutral-soft:focus-visible {
    box-shadow: 0 0 0 4px rgba(71, 84, 103, .20);
}

.coe-btn--sm {
    min-height: 38px;
    padding: .55rem .9rem;
    font-size: .84rem;
}

.coe-btn--lg {
    min-height: 54px;
    padding: .9rem 1.55rem;
    font-size: 1rem;
}

.coe-btn--icon {
    width: 46px;
    min-width: 46px;
    padding-inline: 0;
}

.coe-btn--icon.coe-btn--sm {
    width: 38px;
    min-width: 38px;
}

.coe-btn--icon.coe-btn--lg {
    width: 54px;
    min-width: 54px;
}

.coe-btn--block {
    display: flex;
    width: 100%;
}

.coe-btn:disabled,
.coe-btn.is-disabled,
.coe-btn[aria-disabled="true"] {
    color: var(--coepriso-gray-500);
    background-color: var(--coepriso-gray-100);
    border-color: var(--coepriso-gray-200);
    cursor: not-allowed;
    pointer-events: none;
    opacity: .72;
    box-shadow: none;
    transform: none;
}

.coe-btn.is-loading {
    position: relative;
    cursor: wait;
    pointer-events: none;
}

.coe-btn.is-loading::before {
    width: 1rem;
    height: 1rem;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    content: "";
    animation: coe-btn-spin .7s linear infinite;
}

@keyframes coe-btn-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .coe-btn {
        transition: none;
    }

    .coe-btn:hover,
    .coe-btn:active {
        transform: none;
    }

    .coe-btn.is-loading::before {
        animation-duration: 1.4s;
    }
}

.coe-section-right::after {
    content: "";
    position: absolute;
    right: -44px;
    bottom: -60px;
    width: 230px;
    height: 230px;
    opacity: .08;
    background: linear-gradient(45deg, transparent 46%, var(--coepriso-azul) 47%, var(--coepriso-azul) 53%, transparent 54%), linear-gradient(-45deg, transparent 46%, var(--coepriso-naranja) 47%, var(--coepriso-naranja) 53%, transparent 54%);
    background-size: 46px 46px;
    pointer-events: none;
}

.coe-section-left::before {
    content: "";
    position: absolute;
    left: -44px;
    top: -60px;
    width: 230px;
    height: 230px;
    opacity: .08;
    background: linear-gradient(45deg, transparent 46%, var(--coepriso-azul) 47%, var(--coepriso-azul) 53%, transparent 54%), linear-gradient(-45deg, transparent 46%, var(--coepriso-naranja) 47%, var(--coepriso-naranja) 53%, transparent 54%);
    background-size: 46px 46px;
    pointer-events: none;
}
.coe-section-right-top::after {
    content: "";
    position: absolute;
    right: -44px;
    top: -60px;
    width: 230px;
    height: 230px;
    opacity: .08;
    background:
        linear-gradient(
            45deg,
            transparent 46%,
            var(--coepriso-azul) 47%,
            var(--coepriso-azul) 53%,
            transparent 54%
        ),
        linear-gradient(
            -45deg,
            transparent 46%,
            var(--coepriso-naranja) 47%,
            var(--coepriso-naranja) 53%,
            transparent 54%
        );
    background-size: 46px 46px;
    pointer-events: none;
}

.coe-section-left-bottom::before {
    content: "";
    position: absolute;
    left: -44px;
    bottom: -60px;
    width: 230px;
    height: 230px;
    opacity: .08;
    background:
        linear-gradient(
            45deg,
            transparent 46%,
            var(--coepriso-azul) 47%,
            var(--coepriso-azul) 53%,
            transparent 54%
        ),
        linear-gradient(
            -45deg,
            transparent 46%,
            var(--coepriso-naranja) 47%,
            var(--coepriso-naranja) 53%,
            transparent 54%
        );
    background-size: 46px 46px;
    pointer-events: none;
}

body.menu-open {
    overflow: hidden;
}

/* =========================================================
   Colores de texto
   ========================================================= */

.tx-guinda {
    color: var(--coepriso-guinda) !important;
}

.tx-guinda-50 {
    color: var(--coepriso-guinda-50) !important;
}

.tx-guinda-100 {
    color: var(--coepriso-guinda-100) !important;
}

.tx-guinda-200 {
    color: var(--coepriso-guinda-200) !important;
}

.tx-guinda-300 {
    color: var(--coepriso-guinda-300) !important;
}

.tx-guinda-500 {
    color: var(--coepriso-guinda-500) !important;
}

.tx-guinda-700 {
    color: var(--coepriso-guinda-700) !important;
}

.tx-guinda-900 {
    color: var(--coepriso-guinda-900) !important;
}

.tx-verde {
    color: var(--coepriso-verde) !important;
}

.tx-verde-50 {
    color: var(--coepriso-verde-50) !important;
}

.tx-verde-100 {
    color: var(--coepriso-verde-100) !important;
}

.tx-verde-200 {
    color: var(--coepriso-verde-200) !important;
}

.tx-verde-700 {
    color: var(--coepriso-verde-700) !important;
}

.tx-verde-900 {
    color: var(--coepriso-verde-900) !important;
}

.tx-crema {
    color: var(--coepriso-crema) !important;
}

.tx-crema-2 {
    color: var(--coepriso-crema-2) !important;
}

.tx-crema-3 {
    color: var(--coepriso-crema-3) !important;
}

.tx-arena {
    color: var(--coepriso-arena) !important;
}

.tx-dorado {
    color: var(--coepriso-dorado) !important;
}

.tx-dorado-50 {
    color: var(--coepriso-dorado-50) !important;
}

.tx-dorado-100 {
    color: var(--coepriso-dorado-100) !important;
}

.tx-dorado-700 {
    color: var(--coepriso-dorado-700) !important;
}

.tx-texto {
    color: var(--coepriso-texto) !important;
}

.tx-blanco {
    color: var(--coepriso-blanco) !important;
}

.tx-gray-50 {
    color: var(--coepriso-gray-50) !important;
}

.tx-gray-100 {
    color: var(--coepriso-gray-100) !important;
}

.tx-gray-200 {
    color: var(--coepriso-gray-200) !important;
}

.tx-gray-500 {
    color: var(--coepriso-gray-500) !important;
}

.tx-gray-700 {
    color: var(--coepriso-gray-700) !important;
}

.tx-gray-800 {
    color: var(--coepriso-gray-800) !important;
}

.tx-gray-900 {
    color: var(--coepriso-gray-900) !important;
}

.tx-azul {
    color: var(--coepriso-azul) !important;
}

.tx-azul-50 {
    color: var(--coepriso-azul-50) !important;
}

.tx-azul-100 {
    color: var(--coepriso-azul-100) !important;
}

.tx-azul-200 {
    color: var(--coepriso-azul-200) !important;
}

.tx-azul-300 {
    color: var(--coepriso-azul-300) !important;
}

.tx-azul-500 {
    color: var(--coepriso-azul-500) !important;
}

.tx-azul-700 {
    color: var(--coepriso-azul-700) !important;
}

.tx-azul-900 {
    color: var(--coepriso-azul-900) !important;
}

.tx-naranja {
    color: var(--coepriso-naranja) !important;
}

.tx-naranja-50 {
    color: var(--coepriso-naranja-50) !important;
}

.tx-naranja-100 {
    color: var(--coepriso-naranja-100) !important;
}

.tx-naranja-200 {
    color: var(--coepriso-naranja-200) !important;
}

.tx-naranja-300 {
    color: var(--coepriso-naranja-300) !important;
}

.tx-naranja-500 {
    color: var(--coepriso-naranja-500) !important;
}

.tx-naranja-700 {
    color: var(--coepriso-naranja-700) !important;
}

.tx-naranja-900 {
    color: var(--coepriso-naranja-900) !important;
}

.tx-current {
    color: currentColor !important;
}

.tx-inherit {
    color: inherit !important;
}

.tx-transparent {
    color: transparent !important;
}
/* =========================================================
   Redondedo de bordes
   ========================================================= */
.rounded-none {
    border-radius: 0 !important;
}
.rounded-sm {
    border-radius: var(--radius-sm) !important;
}
.rounded-md {
    border-radius: var(--radius-md) !important;
}
.rounded-lg {
    border-radius: var(--radius-lg) !important;
}
.rounded-xl {
    border-radius: var(--radius-xl) !important;
}
/* =========================================================
   Sombra
   ========================================================= */
.shadow-none {
    box-shadow: none !important;
}
.shadow-sm {
    box-shadow: var(--shadow-coepriso-sm) !important;
}
.shadow-md {
    box-shadow: var(--shadow-coepriso-md) !important;
}
.shadow-lg {
    box-shadow: var(--shadow-coepriso-lg) !important;
}
.shadow-xl {
    box-shadow: var(--shadow-coepriso-xl) !important;
}
