/* ---- Location map + list layout ---- */

/* Avada's column wrappers are often flex containers, and/or apply a
   max-width to text content for readability. Since our shortcodes are
   meant to fill whatever column they're placed in, force full width on
   the elements each shortcode outputs directly, so Avada's defaults
   can't shrink or cap them. (Note: .lcm-list-col / .lcm-map-col are
   intentionally excluded here - those are the internal 1/3 + 2/3 split
   used only by the combined [lcm_locations_map] shortcode, and need to
   keep their flex-basis sizing rather than each stretching to 100%.) */
.lcm-wrapper,
.lcm-search-field,
.lcm-province-field,
.lcm-list-field,
.lcm-location-list,
#lcm-map {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	float: none !important;
}

.lcm-search-input,
.lcm-province-select {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

.lcm-wrapper {
	display: flex;
	gap: 24px;
	align-items: flex-start;
}

.lcm-list-col {
	flex: 1 1 33.333%;
	max-width: 33.333%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
}

.lcm-map-col {
	flex: 1 1 66.666%;
	max-width: 66.666%;
	box-sizing: border-box;
}

#lcm-map {
	border-radius: 6px;
	z-index: 1;
}

.lcm-search {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 12px;
	width: 100%;
}

.lcm-search input,
.lcm-search select {
	width: 100%;
	box-sizing: border-box;
	padding: 8px 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 14px;
}

/* Standalone shortcodes: [lcm_search], [lcm_province_filter], [lcm_location_list]
   used on their own (not inside the combined [lcm_locations_map] wrapper). */
.lcm-search-field,
.lcm-province-field {
	margin-bottom: 12px;
}

.lcm-search-input,
.lcm-province-select {
	padding: 8px 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 14px;
}

.lcm-list-field {
	width: 100%;
}

.lcm-location-list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 600px;
	overflow-y: auto;
	border: 1px solid #e2e2e2;
	border-radius: 6px;
}

.lcm-location-item {
	padding: 10px 12px;
	border-bottom: 1px solid #eee;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	transition: background-color 0.15s ease;
}

.lcm-location-item:last-child {
	border-bottom: none;
}

.lcm-location-item:hover {
	background-color: #f5f7fa;
}

.lcm-location-item.is-active {
	background-color: #e8f0fe;
}

.lcm-loc-name {
	font-weight: 600;
	font-size: 14px;
}

.lcm-loc-meta {
	font-size: 12px;
	color: #666;
}

.lcm-no-results {
	padding: 12px;
	color: #666;
	font-style: italic;
}

/* Responsive: stack on smaller screens */
@media (max-width: 782px) {
	.lcm-wrapper {
		flex-direction: column;
	}
	.lcm-list-col,
	.lcm-map-col {
		max-width: 100%;
		flex-basis: auto;
		width: 100%;
	}
	.lcm-location-list {
		max-height: 300px;
	}
}

/* ---- Submission form ---- */
.lcm-submit-wrapper {
	max-width: 100%;
}

.lcm-submit-form p {
	margin-bottom: 14px;
}

.lcm-submit-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 4px;
	font-size: 14px;
}

.lcm-submit-form input[type="text"],
.lcm-submit-form input[type="url"],
.lcm-submit-form select,
.lcm-submit-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 8px 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 14px;
}

#lcm-submit-map {
	width: 100%;
	border-radius: 6px;
	margin-bottom: 14px;
	z-index: 1;
}

.lcm-form-map-label {
	font-size: 13px;
	color: #666;
}

.lcm-hp-field {
	position: absolute;
	left: -9999px;
	top: -9999px;
}

.lcm-submit-btn {
	background: #2271b1;
	color: #fff;
	border: none;
	padding: 10px 22px;
	border-radius: 4px;
	font-size: 14px;
	cursor: pointer;
}

.lcm-submit-btn:hover {
	background: #135e96;
}

.lcm-submit-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.lcm-form-message.is-success {
	color: #1a7f37;
	font-weight: 600;
}

.lcm-form-message.is-error {
	color: #d63638;
	font-weight: 600;
}
