/* ==========================================================================
   The Capital — Hotel Locations
   [tc_hotel_locations] shortcode component.
   Desktop: dropdown + two-column panel (info | map).
   Mobile:  stacked (info above map).
   ========================================================================== */

/* ------------------------------------------------------------------
   Variables
   ------------------------------------------------------------------ */
.tc-hotel-locations {
	--hl-gold:       #EBA318;
	--hl-text:       #fff;
	--hl-text-muted: rgba(255, 255, 255, 0.69);
	--hl-border:     rgba(255, 255, 255, 0.25);
	--hl-map-height: 490px;
	min-height: var(--hl-map-height);
	padding-left: 20px;
	padding-right: 20px;
	font-family: 'DM Sans', sans-serif;
	color: var(--hl-text);
	width: 100%;
	margin-bottom: 135px;
	position: relative;
}

.tc-locations-container {
	background: #000 !important;
	overflow: hidden !important;
	background-image: url(/wp-content/themes/the-capital/assets/img/hotel-intro-bg.svg) !important;
	background-size: cover !important;
	background-repeat: no-repeat !important;
	background-position: center top !important;
}

/* ------------------------------------------------------------------
   Eyebrow label
   ------------------------------------------------------------------ */
.tc-hotel-locations__eyebrow {
	font-size: 12px;
	letter-spacing: 2px;
	line-height: 25px;
	text-transform: uppercase;
	color: var(--hl-text-muted);
	margin: 0 0 15px;
}

/* ------------------------------------------------------------------
   Dropdown header
   ------------------------------------------------------------------ */
.tc-hotel-locations__header {
	margin-bottom: 40px;
}

.tc-hotel-locations__select-wrap {
	position: relative;
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: 520px;
	border-top: 1px solid var(--hl-border);
	border-bottom: 1px solid var(--hl-border);
	padding-bottom: 14px;
	padding-top: 14px;

	@media (max-width: 1200px) {
		max-width: none;
	}
}

/* Bed icon */
.tc-hl-icon--bed {
	flex-shrink: 0;
	color: var(--hl-text);
	opacity: 0.9;
	width: 20px;
	height: auto;
}

.tc-hotel-locations__select {
	appearance: none;
	-webkit-appearance: none;
	background: transparent;
	border: none;
	outline: none;
	color: var(--hl-text);
	font-family: 'DM Sans', sans-serif;
	font-size: 17px;
	line-height: 25px;
	font-weight: 400;
	padding: 0 32px 0 0;
	width: 100%;
	cursor: pointer;
}

.tc-hotel-locations__select option {
	background: #111;
	color: #fff;
	font-size: 15px;
}

.tc-hotel-locations__arrow {
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	color: var(--hl-text);
	flex-shrink: 0;
}

/* ------------------------------------------------------------------
   Panels wrapper
   ------------------------------------------------------------------ */
.tc-hotel-locations__panels {
	/* position: relative; */
}

/* ------------------------------------------------------------------
   Individual panel
   ------------------------------------------------------------------ */
.tc-hotel-locations__panel {
	display: none;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	align-items: stretch;
}

.tc-hotel-locations__panel.is-active {
	display: grid;
}

/* ------------------------------------------------------------------
   Info column
   ------------------------------------------------------------------ */
.tc-hotel-locations__info {
	display: flex;
	flex-direction: column;
	gap: 50px;
	padding: 40px 56px 40px 0;
	padding-top: 0;
    height: min-content;
	padding-bottom: 0;
}

/* City + hotel name heading */
.tc-hotel-locations__heading {
	display: flex;
	flex-direction: column;
	gap: 25px;
}

.tc-hotel-locations__city {
	font-size: 15px;
	line-height: 27px;
	font-weight: 600;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--hl-gold);
}

.tc-hotel-locations__name,
.tc-hotel-locations__name .elementor-heading-title {
	font-family: 'Gilda Display', serif;
	font-size: 46px !important;
	font-weight: 400;
	color: var(--hl-text);
	line-height: 52px !important;
	margin: 0;
}

/* ------------------------------------------------------------------
   Find Us variant — section title + eyebrow override
   ------------------------------------------------------------------ */

/* Tighten the gap between eyebrow and title in the find-us variant */
.tc-hotel-locations--single {
	margin-bottom: 0;
	min-height: 1px;
}

.tc-hotel-locations--single .tc-hotel-locations__heading {
	gap: 25px;
}

.tc-hotel-locations--single .tc-hotel-locations__map iframe {
	max-height: 380px;
}

.tc-hotel-locations--single .tc-hotel-locations__map {
	min-height: 1px;
}

/* "Easy to find us" section title */
.tc-find-us__title {
	font-family: 'Gilda Display', serif;
	font-size: 56px;
	font-weight: 400;
	line-height: 1.1;
	color: var( --hl-text, #fff );
	margin: 0;
}

@media ( max-width: 1024px ) {
	.tc-find-us__title {
		font-size: 44px;
	}
}

@media ( max-width: 767px ) {
	.tc-find-us__title {
		font-size: 36px;
	}

	.tc-hotel-locations--single .tc-hotel-locations__map {
		min-height: 400px;
	}
}

/* ------------------------------------------------------------------
   Contact details — icon + value rows
   ------------------------------------------------------------------ */
.tc-hotel-locations__details {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.tc-hotel-locations__detail {
	display: flex;
	align-items: center;
	gap: 14px;
}

/* All custom SVG icons */
.tc-hl-icon {
	flex-shrink: 0;
	margin-top: 2px; /* optical alignment with text */
	color: var(--hl-text);
}

.tc-hotel-locations__value {
	font-size: 16px;
	line-height: 27px;
	font-weight: 400;
	color: var(--hl-text);
	font-style: normal; /* reset <address> */
}

.tc-hotel-locations__link {
	text-decoration: none;
	transition: color 0.2s ease;
	border-color: var(--hl-gold);
}

.tc-hotel-locations__link:hover {
	color: var(--hl-gold);
}

/* ------------------------------------------------------------------
   Get Directions button
   ------------------------------------------------------------------ */
.tc-hotel-locations__directions {
	display: inline-block;
	padding: 13px 24px;
	border: 1px solid var(--hl-gold);
	color: var(--hl-text);
	font-family: 'DM Sans', sans-serif;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	text-decoration: none;
	width: fit-content;
	margin-top: 15px;
	transition: background-color 0.25s ease,
	            color 0.25s ease,
	            border-color 0.25s ease,
	            box-shadow 0.25s ease;
}

.tc-hotel-locations__directions:hover {
	background: var(--hl-gold);
	border-color: var(--hl-gold);
	color: var(--tc-black);
}

/* ------------------------------------------------------------------
   Map column
   ------------------------------------------------------------------ */
.tc-hotel-locations__map {
	min-height: var(--hl-map-height);
    position: absolute;
    top: 0;
    width: 50%;
    right: 20px;
    height: 100%;
	overflow: hidden;
    border-radius: 8px;

	@media (max-width: 1400px) {
		right: 0;
	}

	@media (max-width: 1200px) {
		position: relative;
		width: auto;
	}

	@media (max-width: 768px) {
		right: 0;
	}
}

.tc-hotel-locations__map iframe {
	display: block;
	width: 100%;
	height: 100%;
	max-height: var(--hl-map-height);
	border: none;
    width: -webkit-fill-available !important;
	overflow: hidden;
	border-radius: 8px;
}

.gm-ui-hover-effect {
	width: 38px !important;
    height: 28px !important;
}

.gm-ui-hover-effect > span {
	margin: 5px !important;
}

/* ------------------------------------------------------------------
   Responsive — tablet
   ------------------------------------------------------------------ */
@media (max-width: 1024px) {
	.tc-hotel-locations__panel.is-active {
		grid-template-columns: 1fr 1.2fr;
	}

	.tc-hotel-locations__info {
		padding: 32px 40px 32px 0;
		padding-top: 0;
		gap: 24px;
	}

	.tc-hotel-locations__name {
		font-size: 30px;
	}
}

/* ------------------------------------------------------------------
   Responsive — mobile
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
	.tc-hotel-locations {
		margin-bottom: 70px;
	}

	.tc-locations-container {
		background-size: contain !important;
	}

	.tc-hotel-locations__header {
		margin-bottom: 28px;
	}

	.tc-hotel-locations__select-wrap {
		max-width: 100%;
	}

	.tc-hotel-locations__select {
		font-size: 16px;
	}

	.tc-hotel-locations__panel.is-active {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.tc-hotel-locations__info {
		padding: 0 0 32px 0;
		padding-top: 0;
		border-right: none;
		border-bottom: 1px solid var(--hl-border);
		gap: 22px;
		padding-bottom: 30px;
	}

	.tc-hotel-locations__name {
		font-size: 26px;
	}

	.tc-hotel-locations__map {
		min-height: 300px;
		margin-top: 32px;
	}

	.tc-hotel-locations__map iframe {
		min-height: 300px;
	}
}
