/* ===== CUADRO MÉDICO AXA SALUD ===== */
/* Formulario usa clases Gravity Forms RACC (gravity_racc-style.css) */

.cnt-cuadro-medico-wrapper {
    font-family: 'Open Sans', Helvetica Neue, Helvetica, Arial, sans-serif;
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--break, 1em) 0;
    font-size: var(--font-base16, 1rem);
    color: var(--color-base, #1A1A1A);
    line-height: var(--font-height-body, 1.5);
}

/* ===== TOGGLE ASEGURADO ===== */
.cnt-cm-insurance-toggle {
    margin-bottom: calc(var(--break, 1em) * 1.5);
    text-align: center;
}
.cnt-cm-insurance-toggle .gfield_label {
    display: block;
    font-size: var(--font-base, 1.063rem);
    font-weight: var(--font-bold, 700);
    margin-bottom: calc(var(--break, 1em) * 0.75);
    max-width: 100% !important;
    margin-inline: 0 !important;
}
.cnt-cm-toggle-buttons {
    display: flex;
    gap: calc(var(--break, 1em) * 0.75);
    justify-content: center;
    flex-wrap: wrap;
}
.cnt-cm-toggle-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: calc(var(--break, 1em) * 0.75) calc(var(--break, 1em) * 1.5);
    border: 2px solid var(--color-apollo, #DEE3E9);
    border-radius: var(--radius, 6px);
    background: var(--color-contrast, #fff);
    cursor: pointer;
    font-size: var(--font-base16, 1rem);
    font-weight: var(--font-semibold, 600);
    font-family: inherit;
    color: var(--color-shadow, #57595D);
    transition: all 0.2s ease;
    min-width: 200px;
    justify-content: center;
}
.cnt-cm-toggle-btn:hover {
    border-color: var(--color-racc-golden, #F3C500);
    color: var(--color-base, #1A1A1A);
}
.cnt-cm-toggle-btn.active {
    border-color: var(--color-racc, #FFCF00);
    background: var(--color-racc-corn, #FFF5CA);
    color: var(--color-base, #1A1A1A);
    box-shadow: 0 0 0 2px rgba(255, 207, 0, 0.2);
}
.cnt-cm-toggle-btn.active svg {
    color: var(--color-racc-citronite, #D2AB00);
}
.cnt-cm-insurance-hint {
    font-size: var(--font-small, 0.875rem);
    color: var(--color-granite, #71757A);
    margin-top: calc(var(--break, 1em) * 0.5);
    font-style: italic;
}

/* ===== REQUIRED / OPTIONAL INDICATORS ===== */
.cnt-cm-required {
    color: var(--color-error, #B3261E);
    font-weight: var(--font-bold, 700);
}
.cnt-cm-optional-tag {
    font-size: 0.75rem;
    font-weight: var(--font-regular, 400);
    color: var(--color-moon, #92979E);
    display: inline-block;
    margin-left: 4px;
}
.cnt-cm-optional-label {
    font-size: var(--font-small, 0.875rem);
    color: var(--color-granite, #71757A);
    margin: 0 0 calc(var(--break, 1em) * 0.75);
    font-weight: var(--font-regular, 400);
}
.cnt-cm-label-required {
    position: relative;
}

/* ===== VALIDATION ERROR ===== */
.cnt-cm-field-error {
    animation: cnt-cm-shake 0.4s ease;
}
@keyframes cnt-cm-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-6px); }
    75% { transform: translateX(6px); }
}
.cnt-cm-validation-alert {
    background: var(--color-error, #B3261E);
    color: #fff;
    font-size: var(--font-small, 0.875rem);
    padding: 6px 14px;
    border-radius: var(--radius-small, 4px);
    margin-top: 8px;
    display: inline-block;
}

/* ===== DIVIDER ===== */
.cnt-cm-divider {
    border: none;
    border-top: 1px solid var(--color-solitude, #E8ECF0);
    margin: calc(var(--break, 1em) * 1) 0 calc(var(--break, 1em) * 1.25);
}

/* ===== MODALIDAD SECTION ===== */
.cnt-cm-modalidad-section {
    margin-bottom: calc(var(--break, 1em) * 0.5);
}

/* ===== FILTROS CONTAINER ===== */
.cnt-cm-filters {
    background: var(--color-contrast, #fff);
    padding: calc(var(--break, 1em) * 2);
    border: 1px solid var(--color-apollo, #DEE3E9);
    border-radius: var(--radius, 6px);
    margin-bottom: 0;
}
.cnt-cm-filters-section {
    margin-bottom: 0;
}

/* ===== GRID LAYOUT (override GF defaults for our grid) ===== */
.cnt-cm-filters-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--break, 1em) calc(var(--break, 1em) * 1.5);
}
.cnt-cm-filters[data-cols="2"] .cnt-cm-filters-grid {
    grid-template-columns: repeat(2, 1fr);
}
.cnt-cm-filters .gfield {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    float: none !important;
    display: block !important;
}
.cnt-cm-filters .gfield .ginput_container {
    width: 100%;
    max-width: 100% !important;
    line-height: normal !important;
}
.cnt-cm-filters .gfield .gfield_label {
    max-width: 100% !important;
    margin-inline: 0 !important;
}
.cnt-cm-filters .gfield input,
.cnt-cm-filters .gfield select {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    height: 40px !important;
    max-height: 40px !important;
    padding: 0 var(--break, 1em) !important;
    font-size: var(--font-base, 1.063rem) !important;
    line-height: 1 !important;
    border: 1px solid var(--color-fog, #AAB1B8) !important;
    border-radius: var(--radius, 4px) !important;
    background-color: var(--color-contrast, #fff) !important;
    color: var(--color-base, #1A1A1A) !important;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.cnt-cm-filters .gfield select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2371757A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right var(--break, 1em) center !important;
    background-size: 12px !important;
    padding-right: calc(var(--break, 1em) * 2.5) !important;
}
.cnt-cm-filters .gfield input:focus,
.cnt-cm-filters .gfield select:focus {
    outline: none !important;
    border-color: var(--color-racc-golden, #F3C500) !important;
    box-shadow: 0 0 0 2px rgba(255, 207, 0, 0.15) !important;
}

/* ===== FILTROS EXTRA ===== */
.cnt-cm-extra-filters {
    background: var(--color-smoke, #FAFBFC);
    padding: var(--break, 1em);
    border-radius: var(--radius, 4px);
    margin-top: calc(var(--break, 1em) * 1.25);
    border: 1px solid var(--color-solitude, #E8ECF0);
}
.cnt-cm-extra-filters-toggle {
    background: none;
    border: none;
    color: var(--color-base, #1A1A1A);
    font-size: var(--font-base16, 1rem);
    font-weight: var(--font-semibold, 600);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    margin-bottom: var(--break, 1em);
    font-family: inherit;
}
.cnt-cm-extra-filters-toggle:hover {
    color: var(--color-racc-citronite, #D2AB00);
}
.cnt-cm-extra-filters-toggle svg {
    transition: transform 0.2s ease;
}
.cnt-cm-extra-filters-toggle.active svg {
    transform: rotate(180deg);
}
.cnt-cm-extra-filters-content {
    display: none;
}
.cnt-cm-extra-filters-content.active {
    display: block;
}

/* ===== AUTOCOMPLETE ===== */
.cnt-cm-autocomplete-wrap {
    position: relative;
    width: 100%;
}
.cnt-cm-suggestions {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 100;
    background: var(--color-contrast, #fff);
    border: 1px solid var(--color-fog, #AAB1B8);
    border-top: none;
    border-radius: 0 0 var(--radius, 4px) var(--radius, 4px);
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 220px;
    overflow-y: auto;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.cnt-cm-suggestion-item {
    padding: calc(var(--break, 1em) * 0.6) var(--break, 1em);
    font-size: var(--font-base16, 1rem);
    color: var(--color-base, #1A1A1A);
    cursor: pointer;
    transition: background 0.1s ease;
}
.cnt-cm-suggestion-item:hover,
.cnt-cm-suggestion-item.active {
    background-color: var(--color-racc-lemonade, #FFE98A);
    color: var(--color-base, #1A1A1A);
}

/* ===== BOTONES ===== */
.cnt-cm-actions {
    display: flex;
    gap: calc(var(--break, 1em) * 0.75);
    margin-top: calc(var(--break, 1em) * 1.25);
    margin-bottom: calc(var(--break, 1em) * 2);
    flex-wrap: wrap;
    border: none;
    padding: 0;
}
.cnt-cm-btn {
    padding: var(--break-rem, 1rem) calc(var(--break-rem, 1rem) * 2);
    border: 2px solid transparent;
    border-radius: var(--radius, 4px) !important;
    font-size: var(--font-base, 1.063rem);
    font-weight: var(--font-bold, 700);
    font-family: inherit;
    cursor: pointer;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 150px;
    justify-content: center;
    line-height: 1;
    letter-spacing: 0;
    text-transform: initial;
    box-shadow: none !important;
}
.cnt-cm-btn-primary {
    background: var(--color-racc, #FFCF00) !important;
    color: var(--color-base, #1A1A1A) !important;
    border-color: var(--color-racc, #FFCF00) !important;
}
.cnt-cm-btn-primary:hover,
.cnt-cm-btn-primary:focus-visible {
    background: var(--color-racc-citronite, #D2AB00) !important;
    border-color: var(--color-racc-citronite, #D2AB00) !important;
}
.cnt-cm-btn-secondary {
    background: transparent !important;
    color: var(--color-base, #1A1A1A) !important;
    font-weight: var(--font-semibold, 600);
    border-color: var(--color-racc-golden, #F3C500) !important;
}
.cnt-cm-btn-secondary:hover,
.cnt-cm-btn-secondary:focus-visible {
    background: var(--color-racc-corn, #FFF5CA) !important;
}

/* ===== RESULTADOS ===== */
.cnt-cm-results {
    background: var(--color-contrast, #fff);
    border-radius: var(--radius, 6px);
    border: 1px solid var(--color-apollo, #DEE3E9);
    overflow: hidden;
}
.cnt-cm-results-header {
    background: var(--color-smoke, #FAFBFC);
    padding: calc(var(--break, 1em) * 1) calc(var(--break, 1em) * 1.5);
    border-bottom: 1px solid var(--color-solitude, #E8ECF0);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.cnt-cm-results-count {
    font-size: var(--font-small, 0.875rem);
    color: var(--color-granite, #71757A);
}
.cnt-cm-results-count strong {
    color: var(--color-base, #1A1A1A);
    font-size: var(--font-base16, 1rem);
    font-weight: var(--font-bold, 700);
}
.cnt-cm-results-list {
    padding: 0;
    margin: 0;
    list-style: none;
}

/* ===== TARJETA RESULTADO ===== */
.cnt-cm-result-card {
    padding: calc(var(--break, 1em) * 1.25) calc(var(--break, 1em) * 1.5);
    border-bottom: 1px solid var(--color-solitude, #E8ECF0);
    transition: background 0.15s ease;
}
.cnt-cm-result-card:hover {
    background: var(--color-smoke, #FAFBFC);
}
.cnt-cm-result-card:last-child {
    border-bottom: none;
}
.cnt-cm-result-top {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.cnt-cm-result-icon {
    width: 40px;
    height: 40px;
    min-width: 40px;
    background: var(--color-racc-corn, #FFF5CA);
    border-radius: var(--radius, 6px);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-racc-citronite, #D2AB00);
    margin-top: 2px;
}
.cnt-cm-result-main {
    flex: 1;
    min-width: 0;
}
.cnt-cm-result-title {
    font-size: var(--font-base, 1.063rem);
    font-weight: var(--font-bold, 700);
    color: var(--color-base, #1A1A1A);
    margin: 0;
    line-height: var(--font-height-heading, 1.3);
}
.cnt-cm-result-subtitle {
    font-size: var(--font-small, 0.875rem);
    color: var(--color-shadow, #57595D);
    margin: 2px 0 0;
}
.cnt-cm-result-location {
    font-size: var(--font-small, 0.875rem);
    color: var(--color-granite, #71757A);
    margin: 4px 0 0;
}
.cnt-cm-result-badge {
    background: var(--color-racc-corn, #FFF5CA);
    border: 1.5px solid var(--color-racc, #FFCF00);
    color: var(--color-base, #1A1A1A);
    padding: 4px 12px;
    border-radius: var(--radius-small, 4px);
    font-size: var(--font-small, 0.813rem);
    font-weight: var(--font-semibold, 600);
    white-space: nowrap;
    flex-shrink: 0;
    line-height: 1.3;
    align-self: flex-start;
}
.cnt-cm-result-details {
    display: flex;
    flex-wrap: wrap;
    gap: 4px calc(var(--break, 1em) * 1.5);
    margin-top: 10px;
    padding-left: 52px;
}
.cnt-cm-result-detail {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}
.cnt-cm-result-detail svg {
    flex-shrink: 0;
    color: var(--color-fog, #AAB1B8);
    margin-top: 1px;
}
.cnt-cm-result-detail div {
    display: flex;
    flex-direction: column;
}
.cnt-cm-detail-label {
    font-size: 0.75rem;
    font-weight: var(--font-semibold, 600);
    color: var(--color-moon, #92979E);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    line-height: 1.2;
}
.cnt-cm-detail-value {
    font-size: var(--font-small, 0.875rem);
    color: var(--color-base, #1A1A1A);
    line-height: 1.4;
}

/* ===== PAGINACIÓN ===== */
.cnt-cm-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    padding: var(--break, 1em) calc(var(--break, 1em) * 1.5);
    background: var(--color-smoke, #FAFBFC);
    border-top: 1px solid var(--color-solitude, #E8ECF0);
}
.cnt-cm-page-btn {
    width: 34px;
    height: 34px;
    border: 1px solid var(--color-apollo, #DEE3E9);
    background: var(--color-contrast, #fff);
    border-radius: var(--radius-small, 4px);
    cursor: pointer;
    font-size: var(--font-small, 0.875rem);
    font-weight: var(--font-semibold, 600);
    color: var(--color-granite, #71757A);
    transition: all 0.15s ease;
    font-family: inherit;
    line-height: 1;
}
.cnt-cm-page-btn:hover {
    border-color: var(--color-racc-golden, #F3C500);
    color: var(--color-base, #1A1A1A);
}
.cnt-cm-page-btn.active {
    background: var(--color-racc, #FFCF00);
    border-color: var(--color-racc, #FFCF00);
    color: var(--color-base, #1A1A1A);
}
.cnt-cm-page-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ===== ESTADOS ===== */
.cnt-cm-loading {
    display: none;
    text-align: center;
    padding: calc(var(--break, 1em) * 3) calc(var(--break, 1em) * 2);
}
.cnt-cm-loading.active {
    display: block;
}
.cnt-cm-loading p {
    font-size: var(--font-small, 0.875rem);
    color: var(--color-granite, #71757A);
}
.cnt-cm-spinner {
    width: 36px;
    height: 36px;
    border: 3px solid var(--color-solitude, #E8ECF0);
    border-top-color: var(--color-racc, #FFCF00);
    border-radius: 50%;
    animation: cnt-cm-spin 0.7s linear infinite;
    margin: 0 auto 12px;
}
@keyframes cnt-cm-spin {
    to { transform: rotate(360deg); }
}
.cnt-cm-no-results {
    text-align: center;
    padding: calc(var(--break, 1em) * 3) calc(var(--break, 1em) * 2);
    color: var(--color-granite, #71757A);
}
.cnt-cm-no-results svg {
    width: 40px;
    height: 40px;
    color: var(--color-apollo, #DEE3E9);
    margin-bottom: 10px;
}
.cnt-cm-no-results h3 {
    font-size: var(--font-base16, 1rem);
    font-weight: var(--font-semibold, 600);
    color: var(--color-shadow, #57595D);
    margin: 0 0 4px;
}
.cnt-cm-no-results p {
    font-size: var(--font-small, 0.875rem);
    margin: 0;
}
.cnt-cm-initial {
    text-align: center;
    padding: calc(var(--break, 1em) * 3) calc(var(--break, 1em) * 2);
    color: var(--color-granite, #71757A);
}
.cnt-cm-initial svg {
    color: var(--color-apollo, #DEE3E9);
}
.cnt-cm-initial h3 {
    font-size: var(--font-base16, 1rem);
    font-weight: var(--font-semibold, 600);
    color: var(--color-shadow, #57595D);
    margin: 14px 0 4px;
}
.cnt-cm-initial p {
    font-size: var(--font-small, 0.875rem);
    margin: 0;
}

/* ===== ADMIN PANEL ===== */
.cnt-cm-admin-panel {
    background: var(--color-racc-corn, #FFF5CA);
    border: 1px solid var(--color-racc, #FFCF00);
    border-radius: var(--radius, 6px);
    padding: var(--break, 1em);
    margin-bottom: calc(var(--break, 1em) * 1.5);
}
.cnt-cm-admin-panel h4 {
    margin: 0 0 calc(var(--break, 1em) / 1.25);
    font-size: var(--font-base, 1.063rem);
    font-weight: var(--font-semibold, 600);
    color: var(--color-base, #1A1A1A);
}

/* ===== ADMIN STATUS MESSAGES ===== */
.cnt-cm-status-success {
    color: var(--color-success, #00C04D);
    background: #e6f9ed;
    padding: var(--break, 1em);
    border-radius: var(--radius, 4px);
    font-size: var(--font-small, 0.875rem);
}
.cnt-cm-status-error {
    color: var(--color-error, #B3261E);
    background: #fce8e7;
    padding: var(--break, 1em);
    border-radius: var(--radius, 4px);
    font-size: var(--font-small, 0.875rem);
}
.cnt-cm-status-loading {
    color: var(--color-racc-citronite, #D2AB00);
    font-size: var(--font-small, 0.875rem);
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
    .cnt-cm-filters {
        padding: var(--break, 1em);
    }
    .cnt-cm-filters-grid {
        grid-template-columns: 1fr;
    }
    .cnt-cm-actions {
        flex-direction: column;
    }
    .cnt-cm-btn {
        width: 100%;
    }
    .cnt-cm-result-top {
        flex-wrap: wrap;
    }
    .cnt-cm-result-details {
        padding-left: 0;
        flex-direction: column;
    }
    .cnt-cm-toggle-buttons {
        flex-direction: column;
        align-items: stretch;
    }
    .cnt-cm-toggle-btn {
        min-width: 0;
    }
    .cnt-cm-map-container #cnt-cm-map {
        height: 280px !important;
    }
}

/* ===== MAP ===== */
.cnt-cm-map-container {
    margin-bottom: calc(var(--break, 1em) * 1.25);
    border: 1px solid var(--color-apollo, #DEE3E9);
    border-radius: var(--radius, 6px);
    overflow: hidden;
}
.cnt-cm-map-container .leaflet-container {
    font-family: inherit;
}

/* ===== CLICKABLE LINKS IN RESULTS ===== */
.cnt-cm-detail-link {
    font-size: var(--font-small, 0.875rem);
    color: var(--color-racc-citronite, #D2AB00);
    text-decoration: none;
    transition: color 0.15s ease;
    line-height: 1.4;
}
.cnt-cm-detail-link:hover {
    color: var(--color-base, #1A1A1A);
    text-decoration: underline;
}
.cnt-cm-phone-link {
    font-weight: var(--font-semibold, 600);
}
.cnt-cm-address-link {
    word-break: break-word;
}
