/* GT POI Map — front-end styles. Adapted from the kotor-map-v4 prototype
   (see handover §8). Every rule is scoped under .gt-map-wrap to keep the
   site theme/Elementor CSS from bleeding in or out. */
@import url('https://fonts.googleapis.com/css2?family=Jost:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');

.gt-map-wrap{
	--gt-primary:#0B79AB; --gt-secondary:#78D4F6; --gt-ink:#1C244B;
	--gt-title:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
	--gt-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
	position:relative;width:100%;height:600px;border-radius:16px;overflow:hidden;
	box-shadow:0 2px 22px rgba(28,36,75,.14);
	font-family:var(--gt-body);
	box-sizing:border-box;
}
.gt-map-wrap *,
.gt-map-wrap *::before,
.gt-map-wrap *::after{box-sizing:border-box}

.gt-map-wrap .gt-map-canvas{position:absolute;inset:0;width:100%;height:100%}

/* Neutralise theme / Elementor <button> bleed (uppercase text, forced padding,
   min-width, box-shadow, custom fonts) so panel controls render as designed. */
.gt-map-wrap button{
	font-family:var(--gt-body);text-transform:none !important;letter-spacing:normal;
	min-width:0 !important;margin:0;box-shadow:none !important;text-decoration:none;
	-webkit-appearance:none;appearance:none;line-height:normal;
}

/* Floating panel — light theme (chat style) */
.gt-map-wrap .gt-panel{
	position:absolute;top:16px;right:16px;width:340px;max-width:calc(100% - 32px);
	max-height:calc(100% - 32px);background:#fff;
	border-radius:16px;box-shadow:0 8px 30px rgba(28,36,75,.18);overflow:hidden;
	display:flex;flex-direction:column;color:var(--gt-ink);z-index:5;
	margin:0;
}

/* LIST */
.gt-map-wrap .gt-panel-title{
	font-family:var(--gt-title);font-size:20px;font-weight:600;color:var(--gt-ink);
	padding:16px 16px 10px;letter-spacing:.2px;line-height:1.2;
	border-bottom:1px solid #eef1f6;margin:0;
}
.gt-map-wrap .gt-panel-list{overflow-y:auto;padding:8px}
.gt-map-wrap .gt-panel-list .gt-li{
	display:flex;gap:12px;padding:12px 13px;cursor:pointer;border-radius:12px;margin-bottom:4px;
	transition:background .15s;align-items:flex-start;
}
.gt-map-wrap .gt-panel-list .gt-li:hover{background:#f2f6fa}
.gt-map-wrap .gt-panel-list .gt-thumb{
	flex:0 0 56px;width:56px;height:56px;border-radius:10px;background:#e7edf2 center/cover no-repeat;margin-top:1px
}
.gt-map-wrap .gt-panel-list h4{margin:0 0 2px;font-family:var(--gt-title);font-size:15px;font-weight:600;color:var(--gt-ink);line-height:1.25;letter-spacing:.2px}
.gt-map-wrap .gt-panel-list .gt-note{margin:2px 0 0;font-size:12px;color:#5a6072;line-height:1.4}
.gt-map-wrap .gt-panel-list .gt-rating{display:flex;align-items:center;gap:5px;font-size:12.5px;min-height:16px;color:#5a6072;line-height:1.25}

/* DETAIL */
.gt-map-wrap .gt-panel-detail{display:flex;flex-direction:column;overflow-y:auto;background:#fff}
.gt-map-wrap .gt-detail-top{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px}
.gt-map-wrap .gt-back{
	background:none !important;border:0 !important;color:var(--gt-primary) !important;
	font-size:13px !important;font-weight:600;cursor:pointer;padding:0 !important;
	width:auto !important;height:auto !important;line-height:1.4 !important;
}
.gt-map-wrap .gt-back:hover{text-decoration:underline}
.gt-map-wrap .gt-pager{display:flex;align-items:center;gap:8px}
.gt-map-wrap .gt-pager button{
	background:#eef2f6 !important;border:0 !important;color:var(--gt-ink) !important;
	width:26px !important;height:26px !important;min-width:26px !important;padding:0 !important;
	border-radius:50% !important;font-size:15px !important;line-height:1 !important;cursor:pointer;
	display:flex !important;align-items:center;justify-content:center;flex:0 0 auto;
	transition:background .15s,color .15s;
}
.gt-map-wrap .gt-pager button:hover{background:var(--gt-primary) !important;color:#fff !important}
.gt-map-wrap .gt-pager-label{font-size:12px;color:#8b91a3;min-width:44px;text-align:center}
.gt-map-wrap .gt-detail-photo{width:100%;height:180px;background:#e7edf2 center/cover no-repeat}
.gt-map-wrap .gt-detail-body{padding:14px 16px 18px}
.gt-map-wrap .gt-detail-body h3{margin:0 0 6px;font-family:var(--gt-title);font-size:19px;font-weight:600;color:var(--gt-ink);line-height:1.25;letter-spacing:.2px}
.gt-map-wrap .gt-detail-body .gt-rating{display:flex;align-items:center;gap:6px;font-size:13.5px;margin:0 0 8px;color:#5a6072}
.gt-map-wrap .gt-detail-note{margin:0 0 10px;font-size:13px;color:#3d4256;line-height:1.5}
.gt-map-wrap .gt-detail-hours{font-size:12px;color:#8b91a3;margin:0 0 12px;line-height:1.5}
.gt-map-wrap .gt-detail-hours .gt-open{color:#1f9d57;font-weight:600}
.gt-map-wrap .gt-detail-hours .gt-closed{color:#d9663f;font-weight:600}
.gt-map-wrap .gt-detail-link{display:inline-block;font-size:13px;color:var(--gt-primary);font-weight:600;text-decoration:none}
.gt-map-wrap .gt-detail-link:hover{text-decoration:underline}

/* shared rating bits */
.gt-map-wrap .gt-stars{color:#f5a623;letter-spacing:.5px}
.gt-map-wrap .gt-score{font-weight:700;color:var(--gt-ink)}
.gt-map-wrap .gt-count{color:#8b91a3;font-size:12px}
.gt-map-wrap .gt-sep{color:#8b91a3;font-size:12px}
.gt-map-wrap .gt-cat{color:#8b91a3;font-size:12px}
.gt-map-wrap .gt-skeleton{color:#b8bdca;font-size:12px}

@media (max-width:680px){
	.gt-map-wrap{height:92vh;height:92dvh}   /* just under one mobile viewport (dvh accounts for the address bar) */
	.gt-map-wrap .gt-panel{top:auto;bottom:12px;left:12px;right:12px;width:auto;max-height:50%}
}
