/* RV Storage Canada – directory listing cards, badges and correction form (v20261010). Extends site.css. */

/* Directory notes and filter */
.listing-legend { background: #fff; border: 1px solid var(--border); border-left: 4px solid #27ae60; border-radius: var(--radius); padding: 14px 18px; margin: 0 0 12px; font-size: .92rem; color: var(--mid); line-height: 1.6; }
.listing-legend strong { color: var(--ink); }
.listing-filter { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-size: .92rem; font-weight: 600; color: var(--ink); cursor: pointer; width: fit-content; }
.listing-filter input { width: 18px; height: 18px; accent-color: var(--red); }
.listings.only-checked .listing:not(.is-checked) { display: none; }
.listings.only-checked .city-heading.no-checked { display: none; }

/* Cards */
.listing-badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 8px; }
.badge { display: inline-flex; align-items: center; font-size: .72rem; font-weight: 600; letter-spacing: .02em; padding: 3px 10px; border-radius: 999px; border: 1px solid transparent; line-height: 1.4; }
.badge-ok { background: #eafaf1; color: #1e6e3f; border-color: #bfe5cd; }
.badge-warn { background: #fff6e5; color: #8a5a00; border-color: #f1d9a6; }
.badge-pending { background: var(--bg); color: var(--mid); border-color: var(--border); }
.listing-summary { font-size: .95rem; color: var(--ink); line-height: 1.55; margin: 0 0 4px; }
.listing-summary b { font-weight: 600; }
.listing-note { font-size: .9rem; color: var(--mid); line-height: 1.55; margin: 6px 0 0; }
.listing.is-pending { padding: 12px 18px; background: #fcfcfd; }
.listing.is-pending .listing-name { font-size: 1.04rem; }
.listing.is-pending .listing-location { margin-bottom: 4px; }
.listing.is-pending .listing-summary { color: var(--mid); font-size: .9rem; }
.listing[id] { scroll-margin-top: 100px; }
.listing-quick-contact { display: flex; flex-wrap: wrap; gap: .1rem 1.1rem; margin-top: 4px; }
.listing-quick-contact a { display: inline-flex; align-items: center; min-height: 40px; font-weight: 600; font-size: .92rem; }

.listing-details { margin: 4px 0 0; }
.listing-details summary { cursor: pointer; font-weight: 600; font-size: .92rem; color: var(--red); min-height: 40px; display: flex; align-items: center; list-style: none; }
.listing-details summary::-webkit-details-marker { display: none; }
.listing-details summary::before { content: '＋'; margin-right: .5rem; }
.listing-details[open] summary::before { content: '−'; }
.listing-facts { display: grid; grid-template-columns: minmax(130px, 190px) minmax(0, 1fr); margin: 6px 0 4px; font-size: .92rem; border-top: 1px solid var(--border); }
.listing-facts dt, .listing-facts dd { padding: .6rem .5rem; border-bottom: 1px solid var(--border); margin: 0; overflow-wrap: anywhere; }
.listing-facts dt { font-weight: 600; color: var(--ink); }
.listing-facts dd { line-height: 1.55; color: #2b303b; }
.listing-facts .tbc { color: var(--mid); font-style: italic; }
.listing-feedback-actions { display: flex; flex-wrap: wrap; gap: .1rem 1.1rem; margin-top: 4px; }
.listing-feedback-actions a { display: inline-flex; align-items: center; min-height: 38px; font-size: .85rem; color: var(--mid); text-decoration: underline; }
.listing-feedback-actions a:hover { color: var(--red); }

@media (max-width: 520px) {
  .listing-facts { grid-template-columns: 1fr; }
  .listing-facts dt { padding-bottom: .1rem; border-bottom: 0; }
  .listing-facts dd { padding-top: .1rem; }
}

/* Correction form (listing-feedback.php) – extends .form-card / .form-group from site.css */
.fb-context { background: var(--bg); border: 1px solid var(--border); border-radius: 12px; padding: 12px 16px; margin: 0 0 18px; }
.fb-context strong { font-family: var(--font-head); font-size: 1.1rem; display: block; }
.fb-context span { color: var(--mid); font-size: .88rem; }
.form-group textarea, .form-group select, .form-group input[type="text"], .form-group input[type="email"], .form-group input[type="url"] { max-width: 100%; }
.form-group small { display: block; color: var(--mid); font-size: .82rem; margin-top: 5px; line-height: 1.45; }
.fb-fieldset { border: 1px solid var(--border); border-radius: 12px; padding: 16px 18px; margin: 0 0 18px; }
.fb-fieldset legend { font-family: var(--font-head); font-weight: 700; padding: 0 8px; }
.fb-fieldset > p { color: var(--mid); font-size: .9rem; margin: 0 0 12px; }
.fb-consent { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; font-size: .92rem; line-height: 1.55; cursor: pointer; }
.fb-consent input { width: 18px; height: 18px; margin-top: 3px; flex-shrink: 0; accent-color: var(--red); }
.fb-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.fb-success { background: #eafaf1; border: 1.5px solid #27ae60; color: #1e6e3f; border-radius: 12px; padding: 16px 20px; margin: 0 0 18px; }
.fb-success p { margin: 6px 0 0; color: #1e6e3f; }
.fb-errors { background: #fdf0f0; border: 1.5px solid var(--red); color: var(--red-dark); border-radius: 12px; padding: 14px 20px; margin: 0 0 18px; }
.fb-errors ul { margin: 6px 0 0 20px; }

/* Checkbox groups on the correction form */
.fb-checks { border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px 16px; margin: 0 0 18px; min-width: 0; }
.fb-checks legend { font-family: var(--font-head); font-weight: 600; font-size: .98rem; padding: 0 8px; }
.fb-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 18px; }
.form-group label.fb-check, .fb-check { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; font-size: .94rem; line-height: 1.45; padding: 7px 0; cursor: pointer; margin: 0; }
.fb-check input { width: 18px; height: 18px; margin-top: 2px; flex-shrink: 0; accent-color: var(--red); }
@media (max-width: 560px) { .fb-check-grid { grid-template-columns: 1fr; } }
