.jm-map-react-list{font-family:Arial,Helvetica,sans-serif;margin:0;padding:0}
.jm-map-item{border:1px solid #e1e1e1;padding:12px;margin:8px 0;border-radius:4px;background:#fff}
.jm-map-item h3{margin:0 0 6px 0;font-size:1.1em}
.jm-map-item p{margin:4px 0}
.jm-map-desc{margin-top:8px;color:#333}

.jm-map-map{width:100%;height:320px;margin:12px 0;border:1px solid #e6e6e6}

/* Two-column layout: sidebar + main map area */
.jm-map-react-wrapper{display:flex;flex-direction:column;gap:16px;padding:10px;box-sizing:border-box;max-width:100vw;overflow-x:hidden}
.jm-map-sidebar{width:300px;flex:0 0 300px;background:#fafafa;padding:12px;border:1px solid #eee;border-radius:4px;overflow-y:auto;box-sizing:border-box}
.jm-map-main{flex:1 1 auto;min-width:0;box-sizing:border-box;overflow-x:hidden}
.jm-map-cats{max-height:320px;overflow:auto;padding-right:6px}
.jm-map-items-list{font-size:0.9em}
.jm-map-items-list > div{transition:all 0.2s ease}
.jm-map-items-list > div:hover{box-shadow:0 2px 4px rgba(0,0,0,0.1)}

/* Ensure app uses full width */
.jm-map-react-wrapper{width:100%}

/* Responsive: on small screens place filters on top and allow collapsing */
@media (max-width: 800px) {
	.jm-map-react-wrapper { display: flex !important; flex-direction: column !important; gap: 12px !important; }
	.jm-map-sidebar { width: 100% !important; flex: 0 0 auto !important; display: block !important; order: 0 !important; }
	.jm-map-main { width: 100% !important; order: 1 !important; }
	/* Ensure map wrapper and list stay after sidebar */
	.jm-map-map-wrapper { order: 1 !important; }
	.jm-map-items-list { order: 2 !important; }
}

/* Map wrapper + loading overlay */
.jm-map-map-wrapper{position:relative;box-sizing:border-box;max-width:100%;overflow:hidden}
.jm-map-map{width:100%;height:100%;min-height:320px;margin:0;border:1px solid #e6e6e6;box-sizing:border-box;max-width:100%;transition:height 300ms ease}
.jm-map-map-loading{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(255,255,255,0.7);z-index:30}
.jm-map-spinner{width:40px;height:40px;border-radius:50%;border:4px solid rgba(0,0,0,0.1);border-top-color:#333;animation:jm-map-spin 1s linear infinite}
@keyframes jm-map-spin{to{transform:rotate(360deg)}}

/* Popups max width */
.gm-style .gm-style-iw{max-width:300px !important}

/* List item layout under map */
.jm-map-items-list .jm-map-item{display:flex;gap:12px;align-items:flex-start;padding:8px;background:#fff;border-radius:4px;border:1px solid #eee;margin-bottom:8px;min-width:0}
.jm-map-items-list .jm-map-item img{width:80px;height:80px;object-fit:cover;border-radius:4px;max-width:100%;height:auto}
.jm-map-items-list .jm-map-item > *{min-width:0}
.jm-map-items-list .jm-map-item .jm-map-item-title{font-weight:600;margin-bottom:6px}
.jm-map-items-list .jm-map-item .jm-map-item-desc{color:#444;font-size:0.95em;margin-bottom:8px}
.jm-map-items-list .jm-map-item .jm-map-item-actions button{background:#4285F4;color:#fff;border:none;padding:6px 10px;border-radius:4px;cursor:pointer}

/* Read more button styling provided by user */
.more-link{
	-webkit-appearance: none;
	cursor: pointer;
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	vertical-align: top;
	font-size: var(--theme-font-button_font-size);
	line-height: var(--theme-font-button_line-height);
	font-weight: var(--theme-font-button_font-weight);
	-webkit-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
	border-radius: 30px;
	text-transform: var(--theme-font-button_text-transform);
	letter-spacing: var(--theme-font-button_letter-spacing);
	white-space: nowrap;
	height: auto;
	max-width: 100%;
	color: var(--theme-color-inverse_link);
	border-color: var(--theme-color-text_link);
	background-color: var(--theme-color-text_link);
	padding: 16px 60px 18px;
	border-width: 0 !important;
}

/* Actions column that holds the Read more button */
.jm-map-actions{display:flex;align-items:center}

/* Term badge style used in single post template */
.jm-map-term {
	border-radius: 15px;
	background-color: var(--theme-color-text_link2);
	color: var(--theme-color-inverse_link);
	text-transform: uppercase;
	padding: 6px 17px;
	-webkit-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
	font-size: 11px;
	line-height: 14px;
	letter-spacing: 0.8px;
}

/* Override rules that hide select elements from some themes/plugins and style them */
.jm-map-cats select,
.jm-map-inline-select,
.jm-map-dropdown-inline select,
.jm-map-topbar-right select {
	visibility: visible !important;
	display: block !important;
	opacity: 1 !important;
	pointer-events: auto !important;
	background-color: #fff !important;
	border: none !important;
	height: 35px;
	border-radius: 35px;
	padding: 0 20px;
	box-sizing: border-box;
}

/* Ensure topbar is full width and main content sits below */
.jm-map-topbar{display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; width: 100%; box-sizing: border-box}
.jm-map-main{width:100%}
.jm-map-topbar-left{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.jm-map-topbar-right{display:flex;gap:8px;align-items:center}
.jm-map-dropdown-inline{display:flex;flex-direction:column;width:auto;min-width:0;flex:0 0 auto}
.jm-map-inline-select{width:auto;min-width:max(200px, max-content);padding:8px 18px;white-space:nowrap}

/* Custom dropdown styles for Venue */
.jm-map-custom-select{position:relative;display:inline-flex;flex:0 0 auto;width:auto}
.jm-map-custom-select-button{appearance:none;-webkit-appearance:none;border:none;padding:10px 22px;border-radius:35px;cursor:pointer;min-width:auto;text-align:left;width:auto;box-sizing:border-box;height:35px;line-height:19px;display:flex;align-items:center;white-space:nowrap}
.jm-map-custom-select-list{position:absolute;left:0;top:calc(100% + 6px);background:#fff;box-shadow:0 6px 18px rgba(0,0,0,0.12);border-radius:6px;list-style:none;margin:0;padding:8px 0;z-index:1000;min-width:100%;width:fit-content;max-width:calc(100vw - 32px);max-height:260px;overflow:auto;box-sizing:border-box}
.jm-map-custom-select-item{display: flex;padding:8px 14px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;align-items:center;gap:6px;min-width:0;font-size:14px}
.jm-map-item-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.jm-map-custom-select-item:hover{background:rgba(0,0,0,0.04)}
.jm-map-check{display:inline-block;width:16px;text-align:center;font-weight:bold;margin-right:6px;opacity:1}
.jm-map-check-muted{opacity:0.35}

.jm-map-selected-tags{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px 0}
.jm-map-tag-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:16px;font-size:13px;line-height:1;color:#fff}
.jm-map-tag-close{background:rgba(255,255,255,0.2);border:none;color:#fff;border-radius:50%;width:18px;height:18px;line-height:18px;cursor:pointer;padding:0;font-size:12px;display:inline-flex;align-items:center;justify-content:center}
.jm-map-tag-close:hover{background:rgba(255,255,255,0.35)}

/* Search input styling */
.jm-map-topbar-right input[type="search"]{box-sizing: border-box;margin-right: 8px;background: #c376cc;color: #fff;height: 35px;padding: 5px 20px;border-radius: 35px;border: none}
.jm-map-topbar-right input[type="search"]::placeholder{color:#fff;opacity:1}

/* Toggle button styling */
.jm-map-toggle{background: #f5ee40;padding: 8px 10px;cursor: pointer;display: inline-flex;align-items: center;justify-content: center;width: 60px;border-radius: 50px;border: none}
.jm-map-toggle svg{display:block;fill:var(--theme-color-text)}

/* Card grid for list view */
.jm-map-list-wrapper{position:relative}
.jm-map-list-loading{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(255,255,255,0.7);z-index:30}
.jm-map-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:10px}
.jm-map-card{background:#fff;border:1px solid #eee;border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.jm-map-card{background:#fff;border:1px solid #eee;border-radius:0;overflow:visible;display:flex;flex-direction:column;box-shadow:0 8px 18px rgba(0,0,0,0.06);position:relative}
.jm-map-card-image{position:static;height:180px;background:#eaeaea;overflow:hidden;border-radius:0}
.jm-map-card-image img{width:100%;height:100%;object-fit:cover;display:block}
/* Placeholder when no featured image available - fills the image area */
.jm-map-card-placeholder{width:100%;height:100%;background:#f5f5f5;display:block}
.jm-map-card-date-badge{position: absolute; left: -10px; top: 20px; background: #ebaa55; padding: 6px 10px; border-radius: 0; text-align: center; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); z-index: 20; width: auto; height: 50px; box-sizing: border-box; font-family: var(--theme-font-h1_font-family); font-size:14px; color: var(--theme-color-text); display:flex; align-items:center; justify-content:flex-start;}
.jm-map-card-date-badge::after{content:""; position:absolute; left:0; bottom:-10px; width:0; height:0; border-top:10px solid #d49744; border-left:10px solid transparent}
.jm-map-card-date-day{font-size:14px;font-weight:800;line-height:1}
.jm-map-card-date-month{font-size:12px;margin-top:2px}
.jm-map-card-body{background:#fff;padding:18px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;margin-top:0}
.jm-map-card-address{color:#666;font-size:0.9em;margin-bottom:8px}
.jm-map-card-title{font-weight:700;margin-bottom:8px;cursor:pointer;font-size:1.05rem;color:var(--theme-color-text);font-family:var(--theme-font-h1_font-family)}
.jm-map-card-desc{color:#444;font-size:0.95em}

/* Card link styling: make whole card content clickable without default link styles */
.jm-map-card-link{color:inherit;text-decoration:none;display:block}
.jm-map-card-link:focus{outline:2px solid rgba(0,0,0,0.12);outline-offset:2px}

@media (max-width: 1100px) {
	.jm-map-cards{grid-template-columns:repeat(3,1fr)}
}
@media (max-width: 800px) {
	.jm-map-cards{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 480px) {
	.jm-map-cards{grid-template-columns:repeat(1,1fr)}
	.jm-map-topbar{padding:0 6px}
	.jm-map-dropdown-inline{min-width:120px}
}

/* Mobile: split topbar into two rows: first row = search + toggle, second row = filters (max 2 per row) */
@media (max-width: 800px) {
	.jm-map-topbar { flex-direction: column; align-items: stretch; gap: 8px; }

	/* First row: search input and toggle button aligned horizontally */
	.jm-map-topbar-right { order: 0; display: flex; gap: 8px; align-items: center; justify-content: flex-end; width: 100%; }
	.jm-map-topbar-right input[type="search"] { flex: 1; margin-right: 8px; }

	/* Second row: filters as a grid with up to 2 columns */
	.jm-map-topbar-left { order: 1; display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; width: 100%; }
	.jm-map-dropdown-inline { min-width: 0; }
	.jm-map-inline-select { width: 100%; }

	/* Ensure toggle retains its fixed width on mobile */
	.jm-map-toggle { width: 60px; }
}


