/* v0.1.7: compact, mobile-first emergency popup.
 * Elementor manages the popup's own main title and outer padding.
 * Every branded plugin element uses Elementor Global Primary, never Secondary. */
.rve-popup {
    --rve-primary: var(--e-global-color-primary, #365d59);
    --rve-text: var(--e-global-color-text, #343b40);
    --rve-muted: var(--e-global-color-text, #616c72);
    --rve-border: #e5e7e7;
    --rve-soft: #f8f9f9;
    color: var(--rve-text);
    font-family: inherit;
    font-size: 14px;
    line-height: 1.45;
    width: 100%; max-width: 100%; text-align: left;
}
.rve-popup *, .rve-popup *::before, .rve-popup *::after { box-sizing: border-box; }
.rve-popup .rve-intro { color: var(--rve-muted); font-size: 14px; line-height: 1.5; margin: 0 0 13px; }
.rve-popup .rve-picker { margin: 0 0 12px; }
.rve-popup .rve-picker label {
    display: block; font-size: 12px; line-height: 1.3; font-weight: 700;
    margin: 0 0 5px; color: var(--rve-primary);
}
.rve-popup .rve-picker select {
    width: 100%; min-height: 43px; max-width: 100%; padding: 8px 33px 8px 12px;
    border: 1px solid var(--rve-border); border-radius: 7px;
    background-color: #fff; color: var(--rve-text);
    font: inherit; font-size: 14px; line-height: 1.4;
}
.rve-popup .rve-picker select:focus-visible, .rve-popup .rve-button:focus-visible,
.rve-popup .rve-contact-link:focus-visible { outline: 3px solid var(--rve-primary); outline-offset: 2px; }
/* Preserve CSS-first selection for popups with deferred/disabled JS. */
.rve-popup .rve-panel { display: none; margin: 0; }
.rve-popup.rve-popup--chosen .rve-panel.rve-panel--active { display: block; }
.rve-popup.rve-popup--chosen .rve-fallback { display: none; }
@supports selector(:has(*)) {
    .rve-popup:has([data-rve-select] option:not([value=""]):checked) .rve-fallback { display: none; }
}
.rve-popup .rve-button {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 40px; padding: 9px 14px; border-radius: 7px;
    font: inherit; font-size: 13px; line-height: 1.3; font-weight: 700;
    text-decoration: none !important; text-align: center;
    transition: filter .15s ease, background-color .15s ease;
}
/* Eliminate the redundant contact heading and descriptive card. Call first. */
.rve-popup .rve-primary-contact { margin: 0; }
.rve-popup .rve-button--call {
    width: 100%; background: var(--rve-primary); color: #fff !important;
    min-height: 49px; padding: 9px 16px; gap: 6px 14px;
    font-size: 16px; flex-wrap: wrap;
}
.rve-popup .rve-button--call strong { font-weight: 800; white-space: nowrap; }
.rve-popup .rve-button--call:hover { color: #fff !important; filter: brightness(.88); }
.rve-popup .rve-contact-link { display: inline-block; color: var(--rve-primary); font-weight: 700; margin: 7px 0; }
/* Destination is an informational row, not a second primary action. */
.rve-popup .rve-destination-section { margin-top: 15px; }
.rve-popup .rve-guidance {
    color: var(--rve-primary); font-weight: 700; font-size: 13px;
    line-height: 1.4; margin: 0 0 7px;
}
.rve-popup .rve-custom-guidance { font-size: 12px; line-height: 1.4; color: var(--rve-muted); margin: 0 0 7px; }
.rve-popup .rve-destinations {
    display: grid; grid-template-columns: 1fr; gap: 6px;
}
.rve-popup .rve-destination {
    display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
    gap: 8px 12px; background: var(--rve-soft);
    border: 1px solid var(--rve-border); border-left: 3px solid var(--rve-primary);
    border-radius: 7px; padding: 10px 12px;
}
.rve-popup .rve-destination__details { flex: 1 1 185px; min-width: 0; }
.rve-popup .rve-destination__name {
    display: block; color: var(--rve-primary); font-size: 15px; line-height: 1.3;
    font-weight: 700; margin: 0 0 2px;
}
.rve-popup .rve-destination__address {
    display: block; color: var(--rve-muted); font-size: 12px;
    line-height: 1.35; overflow-wrap: anywhere;
}
.rve-popup .rve-button--directions {
    flex: 0 0 auto; padding: 8px 11px; min-height: 37px;
    border: 1px solid var(--rve-border); background: #fff;
    color: var(--rve-primary) !important; white-space: nowrap;
}
.rve-popup .rve-button--directions:hover { background: var(--rve-soft); }
.rve-popup .rve-surcharge {
    border-top: 1px solid var(--rve-border); padding-top: 11px; margin: 13px 0 0;
    color: var(--rve-muted); font-size: 12px; line-height: 1.45;
}
.rve-popup .rve-missing { display: block; color: #992a2a; font-weight: 700; font-size: 13px; }
.rve-popup .rve-setup-alert { background: #fff1df; border: 1px solid #dca963; border-radius: 6px; padding: 9px; }
/* Accessible expandable backup if a browser cannot select the active panel. */
.rve-popup .rve-fallback { border-top: 1px solid var(--rve-border); margin: 12px 0; padding-top: 10px; font-size: 12px; }
.rve-popup .rve-fallback > summary { cursor: pointer; color: var(--rve-primary); text-decoration: underline; }
.rve-popup .rve-fallback__list { margin: 9px 0; }
.rve-popup .rve-fallback__item { margin: 0 0 5px; border: 1px solid var(--rve-border); border-radius: 6px; }
.rve-popup .rve-fallback__item > summary { padding: 7px 10px; cursor: pointer; font-weight: 700; }
.rve-popup .rve-fallback__content { padding: 0 10px 9px; }
.rve-popup .rve-fallback__content .rve-destination { margin-top: 7px; }
@supports (color: color-mix(in srgb, red, white)) {
    .rve-popup {
        --rve-border: color-mix(in srgb, var(--rve-primary) 14%, white);
        --rve-soft: color-mix(in srgb, var(--rve-primary) 3%, white);
    }
}
@media (max-width: 520px) {
    .rve-popup .rve-intro { font-size: 13px; margin-bottom: 11px; }
    .rve-popup .rve-picker { margin-bottom: 10px; }
    .rve-popup .rve-button--call { font-size: 15px; min-height: 46px; }
    .rve-popup .rve-destination-section { margin-top: 12px; }
    .rve-popup .rve-destination { padding: 9px 10px; gap: 8px; }
    .rve-popup .rve-destination__name { font-size: 14px; }
}
@media (max-width: 365px) {
    .rve-popup .rve-button--call { gap: 2px 10px; }
    .rve-popup .rve-destination__details { flex-basis: 100%; }
}
