.wtm-form{
	display:grid;
	gap:12px;
	max-width:640px;
	position:relative;
}

.wtm-form label{
	display:grid;
	gap:6px;
}

.wtm-form button[disabled]{
	opacity:.7;
	cursor:not-allowed;
}

.wtm-form.is-loading::after{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(255,255,255,.55);
	pointer-events:none;
}

.wtm-success{
	padding:12px;
	background:#e7f7e9;
	border:1px solid #77b67e;
	margin-bottom:12px;
}

.wtm-map-wrap #wtm-map{
	width:100%;
	height:500px;
	background:#f4f4f4;
}

/* =========================
   Popup card
   ========================= */

.wtm-popup-card{
	width:320px;
	max-width:320px;
	margin:0;
	overflow:hidden;
	border-radius:18px;
	background:#ffffff;
	box-shadow:0 12px 30px rgba(0,0,0,.18);
}

.wtm-popup-media{
	position:relative;
	width:100%;
	height:180px;
	overflow:hidden;
	background:#ead9e1;
	border-top-left-radius:18px;
	border-top-right-radius:18px;
	border-bottom-left-radius:0;
	border-bottom-right-radius:0;
}

.wtm-popup-media img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center center;
}

/* Keep orientation classes from JS, but use one consistent frame */
.wtm-popup-media.is-landscape,
.wtm-popup-media.is-portrait,
.wtm-popup-media.is-square{
	height:180px;
	padding:0;
	background:#ead9e1;
}

.wtm-popup-media.is-landscape img,
.wtm-popup-media.is-portrait img,
.wtm-popup-media.is-square img{
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center center;
}

.wtm-popup-bar{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	padding:14px 16px;
	margin-top:0;
	border-top:0;
	background:#015D73;
	color:#ffffff;
}

.wtm-popup-title{
	margin:0;
	font-size:18px;
	line-height:1.2;
	font-weight:600;
	color:#ffffff;
	flex:1 1 auto;
	min-width:0;
}

.wtm-popup-body{
	display:grid;
	gap:12px;
	padding:16px;
	background:#ffffff;
}

.wtm-popup-row{
	display:flex;
	align-items:flex-start;
	gap:10px;
	font-size:14px;
	line-height:1.45;
	color:#4b5563;
}

.wtm-popup-icon{
	flex:0 0 auto;
	font-size:14px;
	line-height:1.4;
	opacity:.85;
}

.wtm-popup-text{
	flex:1 1 auto;
	min-width:0;
}

.wtm-popup-copy{
	margin:0;
	padding-top:14px;
	font-size:14px;
	line-height:1.5;
	color:#374151;
	border-top:1px solid #ece7eb;
}

.wtm-popup-btn{
	flex:0 0 auto;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:38px;
	padding:8px 14px;
	border-radius:999px;
	background:rgba(255,255,255,.18);
	color:#ffffff;
	text-decoration:none;
	font-size:13px;
	font-weight:600;
	line-height:1;
	white-space:nowrap;
	transition:background-color .2s ease, transform .2s ease;
}

.wtm-popup-btn:hover{
	background:rgba(255,255,255,.28);
	color:#ffffff;
	transform:translateY(-1px);
}

.wtm-popup-btn:focus{
	outline:2px solid rgba(255,255,255,.65);
	outline-offset:2px;
}

/* =========================
   Google Maps InfoWindow shell
   ========================= */

.gm-style .gm-style-iw-c{
	padding:0 !important;
	border-radius:18px !important;
	max-width:none !important;
	overflow:visible !important;
	box-shadow:0 12px 30px rgba(0,0,0,.18) !important;
}

.gm-style .gm-style-iw-d{
	overflow:hidden !important;
	padding:0 !important;
	margin:0 !important;
	max-height:none !important;
}

.gm-style .gm-style-iw-d .wtm-popup-card{
	width:320px;
	max-width:320px;
}

.gm-style .gm-style-iw-tc::after{
	background:#ffffff !important;
}

.gm-style .gm-style-iw-d > div{
	max-width:none !important;
}

/* Close button wrapper */
.gm-style .gm-style-iw-chr{
	position:absolute !important;
	top:10px !important;
	right:10px !important;
	width:34px !important;
	height:34px !important;
	padding:0 !important;
	margin:0 !important;
	z-index:10 !important;
	background:transparent !important;
	display:block !important;
}

/* The actual button */
.gm-style .gm-style-iw-chr button{
	position:absolute !important;
	inset:0 !important;
	width:34px !important;
	height:34px !important;
	padding:0 !important;
	margin:0 !important;
	border:0 !important;
	border-radius:999px !important;
	background:rgba(255,255,255,.92) !important;
	box-shadow:0 4px 12px rgba(0,0,0,.18) !important;
	min-width:34px !important;
	min-height:34px !important;
	display:block !important;
	font-size:0 !important;
	line-height:0 !important;
}

/* Hide Google's inner icon pieces */
.gm-style .gm-style-iw-chr button span,
.gm-style .gm-style-iw-chr button img,
.gm-style .gm-style-iw-chr button svg{
	opacity:0 !important;
	display:none !important;
}

/* Draw one clean X */
.gm-style .gm-style-iw-chr button::before{
	content:"×";
	position:absolute;
	inset:0;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:20px;
	line-height:1;
	font-weight:400;
	color:#374151;
}

.gm-style .gm-style-iw-chr button:hover{
	background:#ffffff !important;
}

/* Hide duplicate buttons if Google injects extras */
.gm-style .gm-style-iw-chr button + button{
	display:none !important;
}

/* =========================
   Small screens
   ========================= */

@media (max-width:640px){
	.wtm-map-wrap #wtm-map{
		height:420px;
	}

	.wtm-popup-card{
		width:min(280px, calc(100vw - 56px));
		max-width:min(280px, calc(100vw - 56px));
	}

	.gm-style .gm-style-iw-d .wtm-popup-card{
		width:min(280px, calc(100vw - 56px));
		max-width:min(280px, calc(100vw - 56px));
	}

	.wtm-popup-media,
	.wtm-popup-media.is-landscape,
	.wtm-popup-media.is-portrait,
	.wtm-popup-media.is-square{
		height:150px;
		padding:0;
	}

	.wtm-popup-bar{
		padding:12px 14px;
	}

	.wtm-popup-title{
		font-size:16px;
	}

	.wtm-popup-body{
		padding:14px;
	}
}