/*
 * Follower Map – functional styles only.
 * Typography, colors, inputs and buttons come from the active theme.
 */

/* Form */
.flmap-form [hidden] { display: none !important; }
.flmap-form .flmap-label { display: block; }
.flmap-form .flmap-consent-label { display: inline; }
.flmap-form input[type="email"],
.flmap-form input[type="text"],
.flmap-form input[type="tel"],
.flmap-form input[type="number"],
.flmap-form input[type="date"],
.flmap-form input[type="time"],
.flmap-form input[type="datetime-local"],
.flmap-form select,
.flmap-form textarea { max-width: 100%; box-sizing: border-box; }
.flmap-form textarea { width: 100%; }
.flmap-form fieldset.flmap-choices { border: 0; margin: 0 0 1em; padding: 0; min-width: 0; }
.flmap-form fieldset.flmap-choices legend { padding: 0; }
.flmap-form .flmap-choice { display: block; cursor: pointer; }
.flmap-form .flmap-choices.is-invalid legend { color: #cf222e; }

/* Column breaks (Form Builder) */
.flmap-form .flmap-columns { display: grid; grid-template-columns: repeat(var(--flmap-cols, 2), minmax(0, 1fr)); gap: 0 1.5em; align-items: start; }
.flmap-form .flmap-column { min-width: 0; }
@media (max-width: 700px) {
	.flmap-form .flmap-columns { grid-template-columns: minmax(0, 1fr); }
}

/* Admin preview */
.flmap-form--preview .flmap-button { cursor: not-allowed; }
.flmap-form .flmap-help { display: block; opacity: .8; }
.flmap-form.is-busy { opacity: .7; }
.flmap-form .flmap-message:empty { display: none; }
.flmap-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* Map */
.flmap-map { width: 100%; min-height: 200px; position: relative; z-index: 0; }
.flmap-map .leaflet-popup-content { line-height: 1.4; }
.flmap-dot span { display: block; width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 2px rgba(0,0,0,.5); box-sizing: border-box; }
.flmap-market-icon { background: none; border: 0; }
.flmap-market-icon span { display: block; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.45); color: #fff; font: bold 12px/1 sans-serif; text-align: center; box-sizing: border-box; }
.flmap-market-emerging span { font-size: 13px; }

/* Report under the map */
.flmap-report { margin-top: 1em; }
.flmap-report .flmap-places,
.flmap-report .flmap-zones { font-size: .92em; }
.flmap-report .flmap-list-label { font-style: italic; }
.flmap-report .flmap-zones ul { margin-top: .25em; }
.flmap-market-list > li,
.flmap-emerging-list > li { margin-bottom: .6em; }
