.rvfp-explorer {
    --rvfp-ink: var(--wp--preset--color--teal, #425b63);
    --rvfp-paper: var(--wp--preset--color--cream, #fef3de);
    --rvfp-accent: var(--wp--preset--color--green, #5b7755);
    color: var(--rvfp-ink); background: var(--rvfp-paper);
    padding-block: clamp(24px, 4vw, 56px);
}
.rvfp-explorer *, .rvfp-explorer *::before, .rvfp-explorer *::after { box-sizing: border-box; }
.rvfp-explorer [hidden] { display: none !important; }
.rvfp-heading { margin: 0 0 24px; font-size: 1.64em; }
.rvfp-toolbar-wrapper { max-width: min( calc( 100svw - 60px ) , 1400px ); margin: auto; }
.rvfp-toolbar { display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: 20px; margin-bottom: 24px; }
.rvfp-explorer button, .rvfp-explorer input, .rvfp-explorer select { font: inherit; }
.rvfp-explorer button { cursor: pointer; }
.rvfp-tabs { display: flex; }
.rvfp-tabs button { min-width: 112px; min-height: 44px; padding: 10px 20px; border: 1px solid var(--rvfp-ink); border-radius: 0; color: var(--rvfp-ink); background: transparent; text-transform: uppercase; font-size: 12px; }
.rvfp-tabs button[aria-selected="true"] { background: var(--rvfp-ink); color: var(--rvfp-paper); }
.rvfp-tabs button + button { border-left: none; } 
.rvfp-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; }
.rvfp-filters label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; }
.rvfp-filters input, .rvfp-filters select { width: 145px; min-height: 44px; padding: 8px; border: 1px solid var(--rvfp-ink); color: inherit; background: transparent; border-radius: 0; }
.rvfp-reset { min-height: 44px; border: 0; background: transparent; color: inherit; text-decoration: underline; }
.rvfp-results-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 12px; }
.rvfp-results { margin: 0; font-size: 14px; padding-left: var(--auto-pad); }
.rvfp-scroll-controls { display: flex; gap: 4px; }
.rvfp-scroll-controls button { width: 44px; height: 44px; background: transparent; color: var(--rvfp-ink); border: 1px solid currentColor; }
.rvfp-scroll-controls button:disabled { opacity: .35; cursor: default; }
.rvfp-cards { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 26%); gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding: clamp(18px, 3vw, 36px); padding-left: var(--auto-pad); background: var(--rvfp-ink); scrollbar-color: var(--rvfp-paper) var(--rvfp-ink); }
.rvfp-card { display: flex; flex-direction: column; align-items: stretch; text-align: center; padding: 20px; background: #fff; color: var(--rvfp-ink); scroll-snap-align: start; min-width: 0; }
.rvfp-image { display: flex; align-items: center; justify-content: center; height: 280px; background: #fff; padding: 0; text-decoration: none; }
.rvfp-image img { width: 100%; height: 100%; object-fit: contain; }
.rvfp-placeholder { color: var(--rvfp-ink); font-size: 14px; }
.rvfp-card h3 { font-family: var(--wp--preset--font-family--freight-neo-pro, inherit); font-weight: 500; font-size: 1.64em; line-height: 1.2; margin: 12px 0 10px; }
.rvfp-specs, .rvfp-description, .rvfp-note { font-size: 1em; line-height: 1.5; margin: 0 0 12px; }
.rvfp-note { font-size: 1.2em; font-weight: 700; color: var(--rvfp-accent); }
.rvfp-card-bottom { margin-top: auto; padding-top: 16px; }
.rvfp-availability { color: var(--rvfp-accent); font-size: 14px; margin: 0 0 5px; }
.rvfp-price { color: var(--rvfp-accent); font-size: 1.2em; font-weight: 700; margin: 0; }
.rvfp-price-basis { font-size: 11px; margin: 4px 0 12px; }
.rvfp-card .rvfp-inquiry { font-size: 12px; }
.rvfp-map-link { display: inline-block; padding-block: 12px; font-size: 13px; }
.rvfp-disclaimer, .rvfp-map-note, .rvfp-map-fallback { font-size: 13px; line-height: 1.5; margin: 16px auto; max-width: min( calc( 100svw - 40px ) , 1400px ); }
.rvfp-empty, .rvfp-no-results { padding: 32px; background: var(--rvfp-ink); color: var(--rvfp-paper); }
.rvfp-map { display: block; width: 100%; height: min(780px, 85svh); min-height: 480px; border: 0; }
.rvfp-dialog { position: fixed; width: min(1000px, 94vw); max-height: 92svh; padding: 28px; border: 0; color: var(--rvfp-ink); background: var(--rvfp-paper); }
.rvfp-dialog::backdrop { background: #000b; }
.rvfp-dialog img { display: block; max-width: 100%; max-height: 72svh; object-fit: contain; margin: auto; }
.rvfp-dialog h3 { margin: 0 44px 20px 0; }
.rvfp-dialog-close { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; font-size: 30px !important; border: 0; background: transparent; color: inherit; }
.rvfp-explorer :is(a, button, input, select, [tabindex]):focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.rvfp-explorer .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.rvfp-editor-preview { pointer-events: none; }
.rvfp-editor-preview .rvfp-map { height: 440px; }
@media (max-width: 767px) {
    .rvfp-cards { grid-auto-columns: 86%; gap: 14px; padding: 18px; }
    .rvfp-filters { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
    .rvfp-filters input, .rvfp-filters select { width: 100%; min-width: 0; }
    .rvfp-image { height: 300px; }
    .rvfp-toolbar-wrapper { max-width: 1400px; }
}

/* Details dialog and touch-friendly, edge-to-edge mobile rail. */
.rvfp-plan-details { display: flex; flex-direction: column; flex: 1; }
.rvfp-details-button { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: 12px 18px; border: 1px solid var(--rvfp-ink); background: var(--rvfp-ink); color: var(--rvfp-paper); text-decoration: none; }
.rvfp-details-button { margin-top: 16px; }
.rvfp-dialog-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-top: 20px; }
.rvfp-download { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 0; border: 0; background: transparent; color: var(--rvfp-ink); text-decoration: none; text-underline-offset: 4px; font-size: 14px; }
.rvfp-download:hover, .rvfp-download:focus-visible { text-decoration: underline; }
.rvfp-tour { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: 12px 24px; background: var(--rvfp-ink); color: var(--rvfp-paper); text-decoration: none; }
.rvfp-dialog { width: min(1120px, 94vw); padding: 60px 28px 28px; overscroll-behavior: contain; }
.rvfp-dialog-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.rvfp-dialog-visual { background: white; padding: 12px; }
.rvfp-dialog-details { min-width: 0; }
.rvfp-dialog h3 { font-size: clamp(24px, 3vw, 36px); }
.rvfp-dialog-close { position: sticky; display: block; padding: 0px; margin: -52px -20px 8px auto; top: -1em; z-index: 1; background: #fff; border: 1px solid #0001; line-height: 0px !important; }
body:has(.rvfp-dialog[open]) { overflow: hidden; }
@media (max-width: 767px) {
    .rvfp-explorer { width: var(--rvfp-viewport, 100%); max-width: none !important; margin-left: calc((100% - var(--rvfp-viewport, 100%)) / 2) !important; margin-right: calc((100% - var(--rvfp-viewport, 100%)) / 2) !important; padding-inline: 0; }
    .rvfp-heading, .rvfp-toolbar, .rvfp-results-bar, .rvfp-disclaimer, .rvfp-map-note, .rvfp-map-fallback { margin-inline: 20px; }
    .rvfp-toolbar { align-items: stretch; }
    .rvfp-tabs { width: 100%; }
    .rvfp-tabs button { flex: 1; }
    .rvfp-filters { min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rvfp-filters label { min-width: 0; }
    .rvfp-filters input, .rvfp-filters select { font-size: 16px; }
    .rvfp-cards { grid-auto-columns: 86%; padding: 20px; scroll-padding-inline: 20px; overscroll-behavior-x: contain; }
    .rvfp-dialog { width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; padding: 60px 20px max(24px, env(safe-area-inset-bottom)); }
    .rvfp-dialog-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .rvfp-dialog img { max-height: 55svh; }
    .rvfp-dialog .rvfp-disclaimer { margin-inline: 0; }
    .rvfp-download { width: 100%; }
}

.rvfp-cards { position: relative; }

.rvfp-disclosure { margin-top: 24px; border-top: 1px solid currentColor; padding-top: 8px; }
.rvfp-disclosure summary { cursor: pointer; padding-block: 12px; min-height: 44px; font-size: 14px; }
.rvfp-disclosure summary:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.rvfp-price--unknown { color: var(--rvfp-ink); font-size: 1em; font-weight: 400; }
.rvfp-explorer .rvfp-details-button { font-family: var(--wp--preset--font-family--pt-sans, "PT Sans", sans-serif); font-size: .875rem; font-weight: 500; font-style: normal; letter-spacing: .1em; text-transform: uppercase; }

/* Filter disclosures and removable selections. */
.rvfp-filters { position: relative; align-items: start; gap: 8px; max-width: 100%; }
.rvfp-filter { position: relative; }
.rvfp-filter summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 10px 16px; cursor: pointer; list-style: none; font: 14px var(--wp--preset--font-family--pt-sans, sans-serif); }
.rvfp-filter summary::-webkit-details-marker { display: none; }
.rvfp-filter summary::after { content: ''; width: 7px; height: 7px; border-right: 1.5px solid; border-bottom: 1.5px solid; transform: rotate(45deg); }
.rvfp-filter[open] summary::after { transform: rotate(225deg); }
.rvfp-filter.has-selection summary { color: var(--rvfp-accent); box-shadow: inset 0 -2px currentColor; }
.rvfp-filter summary:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.rvfp-filter-popover { position: absolute; z-index: 5; top: 100%; right: 0; width: 280px; max-width: calc(100vw - 40px); max-height: 60svh; overflow: auto; padding: 16px; background: var(--rvfp-paper); border: 1px solid #425b6333; box-shadow: 0 8px 24px #0002; }
.rvfp-filter-popover label { margin-bottom: 8px; }
.rvfp-filter-popover input { width: 100%; font-size: 16px; }
.rvfp-filter-popover .rvfp-choice { flex-direction: row; align-items: center; gap: 10px; min-height: 24px; font-size: 14px; cursor: pointer; }
.rvfp-filter-popover input[type="checkbox"] { width: 18px; height: 18px; min-height: 18px; flex: 0 0 18px; accent-color: var(--rvfp-accent); }
.rvfp-filter-help, .rvfp-price-error { font-size: 12px; line-height: 1.5; }
.rvfp-price-error { color: #9a2929; }
.rvfp-filter-clear { min-height: 44px; border: 0; background: transparent; color: inherit; text-decoration: underline; }
.rvfp-active-filters { flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rvfp-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.rvfp-filters .rvfp-tag { min-height: 44px; border: 0; padding: 8px 12px; background: var(--rvfp-ink); color: var(--rvfp-paper); font-size: 13px; }
@media (max-width: 767px) {
    .rvfp-filter { position: static; min-width: 0; }
    .rvfp-filter summary { padding-inline: 8px; }
    .rvfp-filter-popover { left: 0; right: 0; top: auto; width: 100%; max-width: 100%; }
    .rvfp-active-filters { grid-column: 1 / -1; }
}

/* Keep filter controls anchored while active selections wrap below them. */
.rvfp-toolbar { align-items: flex-start; }
.rvfp-filters { flex: 1 1 480px; min-width: 0; justify-content: flex-end; }
.rvfp-active-filters { min-width: 0; justify-content: flex-end; }
.rvfp-tags { min-width: 0; justify-content: flex-end; }
.rvfp-tag { max-width: 100%; overflow-wrap: anywhere; }
@media (max-width: 767px) {
    .rvfp-filters { flex-basis: 100%; }
    .rvfp-active-filters, .rvfp-tags { justify-content: flex-start; }
}

/* Three-view navigation remains usable on narrow screens. */
.rvfp-tabs { flex-wrap:wrap; gap:0; }
.rvfp-tabs button { white-space:normal; }
.rvfp-panel[hidden] { display:none !important; }
