/* ==========================================================
   360 Properties – frontend styles
   Brand tokens: change colours/fonts here and everything updates.
   ========================================================== */

:root {
	--p360-navy: #1F3A7A;
	--p360-red: #D72638;
	--p360-price: #D0283A;
	--p360-text: #1B1B1B;
	--p360-muted: #5F6368;
	--p360-border: #D9DCE1;
	--p360-line: #E6E8EC;
	--p360-bg-soft: #E9EDF3;
	--p360-radius: 8px;
	--p360-font: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

/* ---------- Card grid: 3 desktop / 2 tablet / 1 mobile ---------- */

.p360-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	font-family: var(--p360-font);
}

@media (max-width: 1024px) {
	.p360-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	.p360-cards { grid-template-columns: 1fr; }
}

/* ---------- Card ---------- */

.p360-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--p360-border);
	border-radius: var(--p360-radius);
	overflow: hidden;
	font-family: var(--p360-font);
	transition: box-shadow .2s ease, transform .2s ease;
}

.p360-card:hover {
	box-shadow: 0 10px 24px rgba(31, 58, 122, .12);
	transform: translateY(-2px);
}

.p360-card:focus-within {
	outline: 2px solid var(--p360-navy);
	outline-offset: 2px;
}

/* Image */
.p360-card .p360-card__media {
	position: relative;
	aspect-ratio: 1.92 / 1;
	background: var(--p360-bg-soft);
	overflow: hidden;
}

.p360-card .p360-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.p360-card:hover .p360-card__img { transform: scale(1.04); }

.p360-card .p360-card__img--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #A9B1BD;
}

.p360-card.is-sold .p360-card__img { filter: grayscale(.6); }

/* "View Details" pill */
.p360-card .p360-card__view {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	padding: 5px 14px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .92);
	color: var(--p360-navy);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
	transition: background .2s, color .2s;
}

.p360-card .p360-card__view:hover {
	background: var(--p360-navy);
	color: #fff;
}

/* Sold / Reserved tag */
.p360-card .p360-card__status {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	padding: 4px 10px;
	border-radius: 4px;
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.p360-card .p360-card__status--sold { background: var(--p360-red); }
.p360-card .p360-card__status--reserved { background: #E0A100; }

/* Body */
.p360-card .p360-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 14px 12px 16px;
}

.p360-card .p360-card__title {
	margin: 0;
	padding: 0;
	font-family: var(--p360-font);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--p360-text);
}

.p360-card .p360-card__link,
.p360-card .p360-card__link:hover,
.p360-card .p360-card__link:focus {
	color: inherit;
	text-decoration: none;
	outline: none;
}

/* Whole card clickable */
.p360-card .p360-card__link::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

.p360-card .p360-card__location {
	margin: 4px 0 0;
	font-size: 15px;
	line-height: 1.4;
	color: var(--p360-muted);
}

.p360-card .p360-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 6px 10px;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid var(--p360-line);
	font-size: 11.5px;
	line-height: 1.4;
}

.p360-card .p360-card__specs { color: var(--p360-muted); }

.p360-card .p360-card__approval {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--p360-navy);
	font-weight: 500;
}

.p360-card .p360-card__approval svg {
	flex: none;
	width: 18px;
	height: 18px;
}

.p360-card .p360-card__price {
	margin: auto 0 0;
	padding: 14px 0 0 8px;
	font-family: var(--p360-font);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--p360-price);
}

.p360-empty-msg {
	padding: 24px;
	text-align: center;
	color: var(--p360-muted);
	font-family: var(--p360-font);
}

/* Theme override: never underline links inside cards (Astra/block styles add underlines). */
.p360-card a,
.p360-card a:hover,
.p360-card a:focus,
.p360-card a:visited {
	text-decoration: none !important;
	box-shadow: none !important;
}

/* ==========================================================
   Phase 5 – Listing page
   ========================================================== */

:root {
	--p360-heading-font: 'Chakra Petch', var(--p360-font);
	--p360-chip-border: #C9CED8;
	--p360-wrap: 1200px;
}

/* Make Astra's content area full-width and white on our page */
body.p360-listing-page,
body.p360-listing-page .site-content { background: #fff; }

body.p360-listing-page .site-content > .ast-container {
	display: block;
	max-width: none;
	padding: 0;
}

.p360-page {
	width: 100%;
	font-family: var(--p360-font);
	color: var(--p360-text);
}

.p360-wrap {
	box-sizing: border-box;
	max-width: var(--p360-wrap);
	margin: 0 auto;
	padding: 0 20px;
}

/* Breadcrumb */
.p360-breadcrumb {
	padding: 22px 0 14px;
	border-bottom: 1px solid var(--p360-line);
	font-family: var(--p360-font);
	font-size: 13px;
}
.p360-breadcrumb a { color: var(--p360-muted); text-decoration: none !important; }
.p360-breadcrumb a:hover { color: var(--p360-navy); }
.p360-breadcrumb__sep { margin: 0 8px; color: var(--p360-muted); }
.p360-breadcrumb [aria-current] { font-weight: 600; color: var(--p360-text); }

/* Filter bar */
.p360-filters {
	margin: 0;
	padding: 18px 0;
	border-bottom: 1px solid var(--p360-line);
	font-family: var(--p360-font);
}
.p360-filters__inner {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
}
.p360-filters__rows { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.p360-filters__row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }

.p360-page .p360-chip {
	display: inline-flex;
	align-items: center;
	height: 32px;
	padding: 0 20px;
	border: 1px solid var(--p360-chip-border);
	border-radius: 999px;
	background: #fff;
	color: var(--p360-navy);
	font-size: 12.5px;
	text-decoration: none !important;
	white-space: nowrap;
}
.p360-page .p360-chip.is-active { background: var(--p360-navy); border-color: var(--p360-navy); color: #fff; }

.p360-pill-select { position: relative; display: inline-block; flex: none; margin: 0; }
.p360-page .p360-pill-select select {
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
	height: 32px;
	min-width: 150px;
	margin: 0;
	padding: 0 36px 0 18px;
	border: 1px solid var(--p360-chip-border);
	border-radius: 999px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%231F3A7A' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center / 10px 6px;
	box-shadow: none;
	color: var(--p360-navy);
	font-family: var(--p360-font);
	font-size: 12.5px;
	line-height: 30px;
	cursor: pointer;
}
.p360-page .p360-pill-select select:focus { outline: 2px solid var(--p360-navy); outline-offset: 2px; }

/* Buttons */
.p360-page .p360-btn-outline,
.p360-page .p360-btn-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--p360-red);
	background: #fff;
	color: var(--p360-red);
	font-family: var(--p360-font);
	cursor: pointer;
	box-shadow: none;
	transition: background .2s, color .2s;
}
.p360-page .p360-btn-outline { height: 38px; padding: 0 30px; border-radius: 8px; font-size: 13px; font-weight: 600; }
.p360-page .p360-btn-pill { height: 34px; padding: 0 30px; border-radius: 999px; font-size: 12.5px; font-weight: 500; }
.p360-page .p360-btn-outline:hover,
.p360-page .p360-btn-pill:hover,
.p360-page .p360-btn-outline:focus-visible,
.p360-page .p360-btn-pill:focus-visible { background: var(--p360-red); color: #fff; }

/* Sections */
.p360-section { padding: 30px 0 12px; }

.p360-page .p360-heading {
	margin: 0 0 22px;
	font-family: var(--p360-heading-font);
	font-size: clamp(28px, 3.4vw, 40px);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: .01em;
	color: var(--p360-red);
}

.p360-divider { margin: 26px 0 0; border: 0; border-top: 1px solid var(--p360-chip-border); }
.p360-loadmore { display: flex; justify-content: center; margin: 28px 0 8px; }
.p360-page-content { padding-top: 30px; padding-bottom: 30px; }

/* Tablet & mobile: filter pills scroll sideways, Apply goes full width */
@media (max-width: 900px) {
	.p360-filters__inner { flex-direction: column; align-items: stretch; }
	.p360-filters__rows { gap: 10px; }
	.p360-filters__row {
		flex-wrap: nowrap;
		overflow-x: auto;
		padding-bottom: 4px;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.p360-filters__row::-webkit-scrollbar { display: none; }
	.p360-page .p360-pill-select select { min-width: 140px; }
	.p360-page .p360-filters__apply { width: 100%; }
}

/* ==========================================================
   Phase 6 – Property detail page
   ========================================================== */

/* Full-width white page like the listing page */
body.p360-single-page,
body.p360-single-page .site-content { background: #fff; }

body.p360-single-page .site-content > .ast-container {
	display: block;
	max-width: none;
	padding: 0;
}

.p360-detail { padding-bottom: 40px; font-family: var(--p360-font); }

/* Title block */
.p360-detail__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	padding-top: 26px;
	padding-bottom: 22px;
}

.p360-page .p360-detail__title {
	margin: 0 0 6px;
	font-family: var(--p360-font);
	font-size: clamp(20px, 2.2vw, 26px);
	font-weight: 600;
	line-height: 1.25;
	color: var(--p360-text);
}

.p360-detail__location { margin: 0 0 8px; font-size: 15px; color: #333; }

.p360-detail__price {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	font-family: var(--p360-heading-font);
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 700;
	line-height: 1.2;
	color: var(--p360-price);
}

.p360-detail__price .p360-detail__status { position: static; font-family: var(--p360-font); }
.p360-detail__price-full { margin: 2px 0 0; font-size: 13px; color: var(--p360-muted); }

.p360-detail__actions { display: flex; flex-direction: column; gap: 10px; flex: none; }

/* Buttons */
.p360-page .p360-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 150px;
	height: 38px;
	padding: 0 20px;
	border: 1.5px solid transparent;
	border-radius: 6px;
	font-family: var(--p360-font);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none !important;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .12);
	transition: filter .2s, background .2s, color .2s;
}
.p360-page .p360-btn .p360-icon { width: 16px; height: 16px; }
.p360-page .p360-btn--red { background: var(--p360-red); color: #fff; }
.p360-page .p360-btn--navy { background: var(--p360-navy); color: #fff; }
.p360-page .p360-btn--red:hover,
.p360-page .p360-btn--navy:hover { filter: brightness(1.12); color: #fff; }
.p360-page .p360-btn--outline-navy { background: #fff; border-color: var(--p360-navy); color: var(--p360-navy); box-shadow: none; }
.p360-page .p360-btn--outline-navy:hover { background: var(--p360-navy); color: #fff; }

/* Gallery: big photo + 2×2 thumbnails (fixed height so photos never get huge) */
.p360-gallery {
	display: grid;
	grid-template-columns: minmax(0, 2.75fr) minmax(0, 1fr);
	grid-template-rows: 100%;
	gap: 12px;
	height: clamp(240px, 30vw, 420px);
}
.p360-gallery--single { grid-template-columns: 1fr; }

.p360-gallery a {
	position: relative;
	display: block;
	min-height: 0;
	overflow: hidden;
	border-radius: 10px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
}
.p360-gallery img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
	transition: transform .4s ease;
}
.p360-gallery a:hover img { transform: scale(1.03); }

.p360-gallery__main { height: 100%; }

.p360-gallery__thumbs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 10px;
	height: 100%;
	min-height: 0;
}
.p360-gallery__more {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(15, 30, 70, .55);
	color: #fff;
	font-size: 22px;
	font-weight: 600;
}

/* Lightbox */
.p360-lightbox {
	width: min(96vw, 1200px);
	max-width: none;
	max-height: 94vh;
	padding: 0;
	border: 0;
	background: transparent;
	overflow: visible;
}
.p360-lightbox::backdrop { background: rgba(10, 16, 30, .88); }
.p360-lightbox img { display: block; max-width: 100%; max-height: 86vh; margin: 0 auto; border-radius: 8px; }
.p360-lightbox button {
	position: absolute;
	z-index: 2;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: var(--p360-navy);
	font-size: 28px;
	line-height: 44px;
	cursor: pointer;
}
.p360-lightbox__close { top: -52px; right: 0; }
.p360-lightbox__prev { top: 50%; left: 8px; transform: translateY(-50%); }
.p360-lightbox__next { top: 50%; right: 8px; transform: translateY(-50%); }
.p360-lightbox__count { display: block; margin-top: 10px; text-align: center; color: #fff; font-size: 13px; }

/* Description + info cards (narrower column, like the Figma) */
.p360-detail__info { padding-top: 36px; }

.p360-detail__desc { margin-bottom: 26px; font-size: 15px; line-height: 1.7; color: #333; }
.p360-detail__desc p:last-child { margin-bottom: 0; }

.p360-info-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	align-items: stretch;
	margin-bottom: 16px;
}

.p360-info-card {
	overflow: hidden;
	border: 1.5px solid var(--p360-navy);
	border-radius: 10px;
	background: #fff;
}

.p360-page .p360-info-card__title {
	margin: 0;
	padding: 12px 24px;
	background: var(--p360-navy);
	color: #fff;
	font-family: var(--p360-font);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
}

.p360-info-card__rows { margin: 0; }
.p360-info-card__row {
	display: grid;
	grid-template-columns: 42% 58%;
	gap: 10px;
	padding: 10px 24px;
	font-size: 13px;
}
.p360-info-card__row:nth-child(even) { background: #F3F5F9; }
.p360-info-card__row dt { margin: 0; color: #333; font-weight: 400; }
.p360-info-card__row dd { margin: 0; color: var(--p360-text); font-weight: 500; }

/* Nearby icons */
.p360-nearby__list {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 20px 24px 14px;
	list-style: none;
}
.p360-nearby__item { display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 0; text-align: center; }
.p360-nearby__icon { position: relative; display: inline-flex; align-items: center; justify-content: center; height: 46px; color: #D8C7CB; }
.p360-nearby__icon .p360-icon { width: 42px; height: 42px; }
.p360-nearby__item.is-yes .p360-nearby__icon { color: var(--p360-red); }
.p360-nearby__tick { position: absolute; right: -6px; bottom: -4px; color: #22A447; background: #fff; border-radius: 50%; line-height: 0; }
.p360-nearby__tick .p360-icon { width: 16px; height: 16px; }
.p360-nearby__label { font-size: 12px; color: #333; }
.p360-nearby__item:not(.is-yes) .p360-nearby__label { color: #9aa0a6; }

/* Documents */
.p360-docs { padding: 14px 24px 20px; border-top: 1px solid var(--p360-line); }
.p360-page .p360-docs__title { margin: 0 0 10px; font-family: var(--p360-font); font-size: 15px; font-weight: 600; color: var(--p360-navy); }
.p360-docs__list { display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 0 0 14px; padding: 0; list-style: none; }
.p360-docs__list li { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; }
.p360-docs__list .p360-icon { width: 16px; height: 16px; color: #22A447; }

/* Video */
.p360-yt-line { display: flex; align-items: center; gap: 10px; margin: -10px 0 18px; font-size: 14px; }
.p360-yt-line a { color: var(--p360-text); text-decoration: none !important; }
.p360-yt-line a:hover { color: var(--p360-red); }
.p360-yt-logo { width: 28px; height: 20px; flex: none; }

.p360-video {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	max-width: 900px;
	border-radius: 10px;
	background: #000;
}
.p360-video img { width: 100%; height: 100%; object-fit: cover; display: block; }
.p360-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.p360-page .p360-video__play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.p360-video__play svg { width: 72px; height: 72px; transition: transform .2s; }
.p360-video__play:hover svg { transform: scale(1.08); }

/* Sticky Call / WhatsApp bar on phones */
.p360-mobile-bar { display: none; }

@media (max-width: 900px) {
	.p360-detail__head { flex-direction: column; }
	.p360-detail__actions { flex-direction: row; flex-wrap: wrap; }

	.p360-gallery { grid-template-columns: 1fr; grid-template-rows: auto; height: auto; }
	.p360-gallery__main { height: auto; aspect-ratio: 16 / 10; }
	.p360-gallery__thumbs { grid-template-columns: repeat(4, 1fr); grid-template-rows: auto; height: auto; }
	.p360-gallery__thumb { aspect-ratio: 1 / 1; }

	.p360-info-grid { grid-template-columns: 1fr; }
	.p360-nearby__list { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 18px; }
}

@media (max-width: 640px) {
	.p360-detail__actions { display: none; } /* replaced by the sticky bar */

	.p360-mobile-bar {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 999;
		display: flex;
		gap: 10px;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
		background: #fff;
		box-shadow: 0 -4px 14px rgba(0, 0, 0, .12);
	}
	.p360-mobile-bar .p360-btn { flex: 1; min-width: 0; }
	body.p360-single-page { padding-bottom: 70px; }

	.p360-info-card__row { padding: 10px 16px; }
	.p360-page .p360-info-card__title { padding: 12px 16px; }
}

/* ==========================================================
   v1.5 – Filters, Load More, gallery tiles like the Figma
   ========================================================== */

.p360-page [hidden] { display: none !important; }

.p360-results .p360-cards { transition: opacity .2s; }
.p360-results.is-loading .p360-cards { opacity: .45; pointer-events: none; }

.p360-results__count { margin: -12px 0 18px; font-size: 14px; color: var(--p360-muted); }

.p360-results__empty {
	padding: 40px 20px;
	border: 1px dashed var(--p360-chip-border);
	border-radius: 10px;
	text-align: center;
	color: var(--p360-muted);
}
.p360-results__empty p { margin: 0 0 14px; font-size: 15px; }
.p360-page .p360-results__empty .p360-btn-pill { text-decoration: none !important; }

.p360-page .p360-btn-pill:disabled,
.p360-page .p360-btn-outline:disabled { opacity: .6; cursor: wait; }

/* Gallery: rounder corners, white-framed small tiles (Figma) */
.p360-gallery a { border-radius: 14px; }
.p360-gallery__thumb {
	border: 4px solid #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .18) !important;
}

/* ==========================================================
   v1.6 – Home "Featured Properties" + gallery tile counts
   ========================================================== */

.p360-featured { padding: 40px 0 30px; background: #fff; }
.p360-featured__filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: -6px 0 22px; }
.p360-page .p360-featured__filters .p360-chip { height: 30px; padding: 0 18px; cursor: pointer; font-family: var(--p360-font); }
.p360-page .p360-featured__filters .p360-chip:not(.is-active) { background: #fff; color: var(--p360-navy); }
.p360-page .p360-featured__filters .p360-pill-select select { height: 30px; min-width: 140px; font-size: 12px; }
.p360-featured .p360-cards { transition: opacity .2s; }
.p360-featured.is-loading .p360-cards { opacity: .45; pointer-events: none; }
.p360-page .p360-featured__see-all { text-decoration: none !important; }

@media (max-width: 640px) {
	.p360-featured__filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
	.p360-featured__filters::-webkit-scrollbar { display: none; }
}

/* Gallery adapts to 1–4 small photos */
.p360-gallery__thumbs--1 { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.p360-gallery__thumbs--2 { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; }
.p360-gallery__thumbs--3 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }
.p360-gallery__thumbs--3 .p360-gallery__thumb:first-child { grid-column: 1 / -1; }

@media (max-width: 900px) {
	.p360-gallery__thumbs[class*="p360-gallery__thumbs--"] { grid-template-columns: repeat(4, 1fr); grid-template-rows: auto; }
	.p360-gallery__thumbs--3 .p360-gallery__thumb:first-child { grid-column: auto; }
}

/* ==========================================================
   v1.8 – Maps
   ========================================================== */

.p360-map {
	position: relative;
	z-index: 0;
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--p360-border);
	border-radius: 10px;
	background: var(--p360-bg-soft);
}
.p360-map--single { height: 380px; }
.p360-map--explorer { height: 460px; }

.p360-map-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.p360-map-head .p360-heading { margin: 0; }

.p360-pin { background: none; border: 0; }
.p360-pin svg { display: block; filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .35)); }

/* Popup mini card */
.p360-popup .leaflet-popup-content-wrapper { padding: 0; overflow: hidden; border-radius: 10px; }
.p360-popup .leaflet-popup-content { width: 230px !important; margin: 0; }
.p360-pop { display: block; color: var(--p360-text) !important; text-decoration: none !important; font-family: var(--p360-font); }
.p360-pop img { display: block; width: 100%; height: 110px; object-fit: cover; }
.p360-pop__body { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px 12px; }
.p360-pop__body strong { font-size: 14px; }
.p360-pop__body span { font-size: 12px; color: var(--p360-muted); }
.p360-pop__body em { font-style: normal; font-weight: 700; font-size: 15px; color: var(--p360-price); }
.p360-pop__body .p360-pop__link { margin-top: 4px; color: var(--p360-navy); font-weight: 500; }

/* Explorer section */
.p360-map-explorer { padding: 40px 0; background: #fff; }
.p360-page .p360-heading--caps { text-transform: uppercase; }

.p360-map-search {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
	align-items: end;
	gap: 12px;
	margin: 0 0 10px;
}
.p360-field { display: flex; flex-direction: column; gap: 5px; margin: 0; font-family: var(--p360-font); }
.p360-field > span { font-size: 12px; color: #333; }
.p360-page .p360-field select,
.p360-page .p360-field input {
	box-sizing: border-box;
	width: 100%;
	height: 36px;
	margin: 0;
	padding: 0 12px;
	border: 1px solid #E1E4EA;
	border-radius: 6px;
	background-color: #F4F6F9;
	box-shadow: none;
	color: var(--p360-text);
	font-family: var(--p360-font);
	font-size: 13px;
}
.p360-page .p360-field select {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 32px;
	background: #F4F6F9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23555' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center / 10px 6px;
}
.p360-page .p360-field input:focus,
.p360-page .p360-field select:focus { outline: 2px solid var(--p360-navy); outline-offset: 1px; background-color: #fff; }

.p360-page .p360-map-search__btn { height: 36px; min-width: 110px; cursor: pointer; }
.p360-page .p360-map-search__btn .p360-icon { width: 16px; height: 16px; }

.p360-map-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; margin: 0 0 12px; min-height: 28px; }
.p360-page .p360-near-me {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: var(--p360-navy);
	font-family: var(--p360-font);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
}
.p360-page .p360-near-me:hover { text-decoration: underline; background: none; color: var(--p360-navy); }
.p360-near-me .p360-icon { width: 16px; height: 16px; }
.p360-map-status { font-size: 13px; color: var(--p360-muted); }

@media (max-width: 1024px) {
	.p360-map-search { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.p360-page .p360-map-search__btn { grid-column: span 3; }
}
@media (max-width: 640px) {
	.p360-map-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.p360-page .p360-map-search__btn { grid-column: span 2; }
	.p360-map--explorer { height: 360px; }
	.p360-map--single { height: 300px; }
}

/* v1.8.1 – stop theme link/button styles leaking into the map */
.p360-map a,
.p360-map a:hover,
.p360-map a:focus {
	text-decoration: none !important;
	box-shadow: none !important;
}
.p360-map .leaflet-control-zoom a {
	width: 34px;
	height: 34px;
	line-height: 32px;
	font-family: Arial, sans-serif;
	font-size: 20px;
	font-weight: 400;
	color: var(--p360-navy);
}
.p360-map .leaflet-control-attribution a { color: #0078a8; }
.p360-map img.leaflet-tile { max-width: none !important; }

/* v1.9 – remove the extra top gap under the new header on our pages */
body.p360-chrome .p360-breadcrumb { padding-top: 26px; }

/* ==========================================================
   v1.10 – Results chips + Filter toggle (Figma results page)
   ========================================================== */

.p360-filters__summary { display: none; align-items: center; justify-content: space-between; gap: 16px; }
.p360-filters.has-chips .p360-filters__summary { display: flex; }
.p360-filters.has-chips:not(.is-collapsed) .p360-filters__summary { margin-bottom: 16px; }
.p360-filters.is-collapsed .p360-filters__inner { display: none; }

.p360-fchips { display: flex; flex-wrap: wrap; gap: 10px 18px; }
.p360-page .p360-fchip {
	display: inline-flex;
	align-items: center;
	gap: 26px;
	height: 30px;
	padding: 0 12px 0 18px;
	border-radius: 999px;
	background: #DDE3EE;
	color: var(--p360-navy);
	font-size: 12.5px;
	text-decoration: none !important;
	transition: background .2s;
}
.p360-page .p360-fchip:hover { background: #cfd7e6; }
.p360-fchip__x { font-size: 16px; line-height: 1; color: var(--p360-text); }

.p360-page .p360-filter-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: none;
	height: 32px;
	padding: 0 18px;
	border: 1.5px solid var(--p360-red);
	border-radius: 999px;
	background: #fff;
	box-shadow: none;
	color: var(--p360-red);
	font-family: var(--p360-font);
	font-size: 12.5px;
	cursor: pointer;
}
.p360-page .p360-filter-toggle:hover { background: var(--p360-red); color: #fff; }
.p360-filter-toggle .p360-icon { width: 16px; height: 16px; }

@media (max-width: 640px) {
	.p360-filters__summary { align-items: flex-start; }
	.p360-fchips { gap: 8px; }
	.p360-page .p360-fchip { gap: 14px; }
}

/* ==========================================================
   v1.10 – Home banner (hero)
   ========================================================== */

.p360-hero {
	position: relative;
	display: flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 540px;
	padding: 140px 20px 80px;
	background:
		linear-gradient(rgba(8, 12, 18, .62), rgba(8, 12, 18, .62)),
		var(--p360-hero-bg, linear-gradient(135deg, #22301f, #0d1510)) center / cover no-repeat;
	text-align: center;
	font-family: var(--p360-font);
}
.p360-hero__inner { width: 100%; max-width: 900px; margin: 0 auto; }

.p360-page .p360-hero__title {
	margin: 0 0 8px;
	color: #fff;
	font-family: var(--p360-heading-font);
	font-size: clamp(28px, 4.2vw, 52px);
	font-weight: 700;
	line-height: 1.1;
}
.p360-hero__sub { margin: 0 0 26px; color: rgba(255, 255, 255, .92); font-size: 15px; }

.p360-hero__box {
	overflow: hidden;
	border: 3px solid #DCE1EC;
	border-radius: 10px;
	background: #fff;
	text-align: left;
}
.p360-hero__q, .p360-hero__selects label { display: block; margin: 0; }
.p360-page .p360-hero__q input {
	box-sizing: border-box;
	width: 100%;
	height: 56px;
	margin: 0;
	padding: 0 22px;
	border: 0;
	border-bottom: 1px solid #E1E4EA;
	border-radius: 0;
	background: #fff;
	box-shadow: none;
	color: var(--p360-red);
	font-family: var(--p360-font);
	font-size: 17px;
}
.p360-page .p360-hero__q input::placeholder { color: var(--p360-red); opacity: 1; }
.p360-page .p360-hero__q input:focus { outline: 2px solid var(--p360-navy); outline-offset: -2px; }

.p360-hero__selects { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.p360-page .p360-hero__selects select {
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
	width: 100%;
	height: 54px;
	margin: 0;
	padding: 0 46px 0 22px;
	border: 0;
	border-right: 1px solid #E1E4EA;
	border-radius: 0;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 8'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%231F3A7A' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 20px center / 14px 8px;
	box-shadow: none;
	color: var(--p360-navy);
	font-family: var(--p360-font);
	font-size: 14px;
	cursor: pointer;
}
.p360-hero__selects label:last-child select { border-right: 0; }
.p360-page .p360-hero__selects select:focus { outline: 2px solid var(--p360-navy); outline-offset: -2px; }

.p360-page .p360-hero__btn {
	height: 40px;
	margin-top: 22px;
	padding: 0 32px;
	border: 0;
	border-radius: 4px;
	background: var(--p360-red);
	box-shadow: 0 4px 12px rgba(215, 38, 56, .35);
	color: #fff;
	font-family: var(--p360-font);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: filter .2s;
}
.p360-page .p360-hero__btn:hover { filter: brightness(1.1); background: var(--p360-red); color: #fff; }

@media (max-width: 700px) {
	.p360-hero { min-height: 0; padding: 120px 16px 56px; }
	.p360-hero__selects { grid-template-columns: 1fr; }
	.p360-page .p360-hero__selects select { border-right: 0; border-bottom: 1px solid #E1E4EA; }
	.p360-hero__selects label:last-child select { border-bottom: 0; }
	.p360-page .p360-hero__btn { width: 100%; }
}

/* ---------- Home Page template: full width ---------- */
body.p360-home-page,
body.p360-home-page .site-content { background: #fff; }
body.p360-home-page .site-content > .ast-container { display: block; max-width: none; padding: 0; }
.p360-home { width: 100%; }
.p360-home > p:empty { display: none; }

/* ==========================================================
   v1.11 – Home sections
   ========================================================== */

/* Explore South Tamil Nadu */
.p360-explore { padding: 56px 0 44px; background: #fff; }
.p360-explore__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }

.p360-page .p360-dcard {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 18px;
	background: linear-gradient(135deg, #2a4a94, #16295e);
	box-shadow: 0 10px 24px rgba(0, 0, 0, .18);
	color: #fff !important;
	text-decoration: none !important;
}
.p360-dcard__img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
	transition: transform .5s ease;
}
.p360-dcard:hover .p360-dcard__img { transform: scale(1.05); }
.p360-dcard::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 38%, rgba(0, 0, 0, .55) 68%, rgba(0, 0, 0, .95) 100%);
}
.p360-dcard__text {
	position: absolute;
	right: 16px;
	bottom: 36px;
	left: 16px;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
}
.p360-dcard__name { font-size: clamp(20px, 2vw, 30px); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.p360-dcard__count { font-size: clamp(15px, 1.4vw, 21px); font-weight: 300; opacity: .95; }

/* What Are You Looking For? */
.p360-types { padding: 50px 0 56px; background: #F7F8FA; }
.p360-types__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 36px; }

.p360-page .p360-tcard {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	box-sizing: border-box;
	height: 178px;
	padding: 24px 24px 0;
	overflow: hidden;
	border: 2px solid #C9CFDE;
	border-radius: 18px;
	background: transparent;
	color: var(--p360-text) !important;
	text-decoration: none !important;
	transition: border-color .2s, background .2s, transform .2s;
}
.p360-page .p360-tcard:hover { border-color: var(--p360-navy); background: #fff; transform: translateY(-3px); }
.p360-tcard__label { font-size: 19px; line-height: 1.3; }
.p360-tcard__icon { display: block; width: 100px; height: 100px; margin-bottom: -4px; color: var(--p360-navy); }

/* Why Choose Us */
.p360-why { padding: 40px 0 60px; background: #213C7A; }
.p360-page.p360-why .p360-heading { color: #fff; }
.p360-why__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 80px; }

.p360-why__card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 380px;
	padding: 60px 36px;
	border-radius: 14px;
	background: rgba(255, 255, 255, .08);
	text-align: center;
	box-sizing: border-box;
}
.p360-why__border {
	position: absolute;
	inset: 0;
	width: calc(100% - 2px);
	height: calc(100% - 2px);
	overflow: visible;
	pointer-events: none;
}
.p360-why__border rect {
	width: calc(100% - 2px);
	height: calc(100% - 2px);
	fill: none;
	stroke: #fff;
	stroke-width: 2;
	stroke-dasharray: 50 50;
}
.p360-why__icon { width: 76px; height: 76px; margin-bottom: 14px; }
.p360-page .p360-why__title { margin: 0 0 14px; color: #fff; font-family: var(--p360-font); font-size: 24px; font-weight: 600; line-height: 1.3; }
.p360-why__text { max-width: 330px; margin: 0; color: rgba(255, 255, 255, .85); font-size: 16px; line-height: 1.75; }

@media (max-width: 1100px) {
	.p360-types__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
	.p360-why__grid { gap: 24px; }
	.p360-why__card { min-height: 320px; padding: 48px 24px; }
}
@media (max-width: 760px) {
	.p360-explore__grid { grid-template-columns: 1fr; gap: 18px; }
	.p360-page .p360-dcard { aspect-ratio: 16 / 10; }
	.p360-types__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.p360-page .p360-tcard { height: 140px; padding: 18px 18px 0; }
	.p360-tcard__label { font-size: 16px; }
	.p360-tcard__icon { width: 72px; height: 72px; }
	.p360-why__grid { grid-template-columns: 1fr; }
	.p360-why__card { min-height: 0; padding: 40px 24px; }
}

/* Brighter banner photo (lighter dark layer) */
.p360-hero {
	padding-top: 96px;
	background:
		linear-gradient(rgba(8, 12, 18, .32), rgba(8, 12, 18, .48)),
		var(--p360-hero-bg, linear-gradient(135deg, #3a5a3a, #1a2a1c)) center / cover no-repeat;
}
.p360-page .p360-hero__title,
.p360-hero__sub { text-shadow: 0 2px 12px rgba(0, 0, 0, .45); }
@media (max-width: 700px) { .p360-hero { padding-top: 80px; } }

/* ==========================================================
   v1.12 – Property Guides, Why hover, lighter banner
   ========================================================== */

.p360-guides { padding: 48px 0 56px; background: #fff; }
.p360-guides__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }

.p360-page .p360-guide {
	display: flex;
	flex-direction: column;
	width: 100%;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 2px solid var(--p360-red);
	border-radius: 16px;
	background: #fff;
	box-shadow: none;
	color: var(--p360-text);
	font-family: var(--p360-font);
	text-align: center;
	cursor: pointer;
	transition: transform .2s, box-shadow .2s;
}
.p360-page .p360-guide:hover,
.p360-page .p360-guide:focus-visible { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(215, 38, 56, .18); background: #fff; color: var(--p360-text); }

.p360-guide__media {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 150px;
	overflow: hidden;
	background: var(--p360-red);
}
.p360-guide__media img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }
.p360-guide__ph { width: 52px; height: 52px; color: rgba(255, 255, 255, .35); }
.p360-guide__q { display: block; padding: 24px 16px; font-size: 17px; line-height: 1.4; }

.p360-guide-modal {
	width: min(92vw, 640px);
	max-height: 86vh;
	padding: 0;
	overflow: auto;
	border: 0;
	border-radius: 16px;
	font-family: var(--p360-font);
}
.p360-guide-modal::backdrop { background: rgba(10, 16, 30, .7); }
.p360-guide-modal__body { padding: 0 0 26px; }
.p360-guide-modal .p360-guide-modal__title {
	margin: 0 0 18px;
	padding: 26px 64px 22px 28px;
	background: var(--p360-red);
	color: #fff;
	font-family: var(--p360-heading-font);
	font-size: 24px;
	line-height: 1.25;
}
.p360-guide-modal__text { padding: 0 28px; color: #333; font-size: 15px; line-height: 1.75; }
.p360-guide-modal__text p { margin: 0 0 12px; }
.p360-guide-modal .p360-guide-modal__close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: var(--p360-red);
	font-size: 26px;
	line-height: 38px;
	cursor: pointer;
}

@media (max-width: 760px) {
	.p360-guides__grid { grid-template-columns: 1fr; }
	.p360-guide__media { height: 120px; }
}

/* Why Choose Us – dashes join into one solid outline on hover */
.p360-why__card { transition: background .3s ease, transform .3s ease; }
.p360-why__border rect { transition: stroke-dasharray .45s ease, stroke .3s ease; }
.p360-why__card:hover { background: rgba(255, 255, 255, .12); transform: translateY(-4px); }
.p360-why__card:hover .p360-why__border rect { stroke: #3D8BEF; stroke-dasharray: 2000 0; }

/* Banner: even lighter dark layer so the photo is clearly visible */
.p360-hero {
	background:
		linear-gradient(rgba(8, 12, 18, .14), rgba(8, 12, 18, .3)),
		var(--p360-hero-bg, linear-gradient(135deg, #3a5a3a, #1a2a1c)) center / cover no-repeat;
}
.p360-page .p360-hero__title,
.p360-hero__sub { text-shadow: 0 2px 16px rgba(0, 0, 0, .6); }

/* ==========================================================
   v1.13 – About Us & Contact Us
   ========================================================== */

/* Page banner */
.p360-pbanner {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 340px;
	padding: 90px 0 60px;
	background:
		linear-gradient(90deg, rgba(20, 36, 80, .85) 0%, rgba(20, 36, 80, .45) 60%, rgba(20, 36, 80, .25) 100%),
		var(--p360-pbanner-bg, linear-gradient(135deg, #2a4a94, #16295e)) center / cover no-repeat;
	color: #fff;
	box-sizing: border-box;
}
.p360-pbanner .p360-wrap { width: 100%; }
.p360-pbanner__crumb { display: flex; gap: 10px; margin-bottom: 14px; font-size: 14px; color: rgba(255, 255, 255, .85); }
.p360-pbanner__crumb a { color: #fff !important; text-decoration: none !important; }
.p360-pbanner__crumb [aria-current] { font-weight: 600; }
.p360-page .p360-pbanner__title {
	margin: 0 0 10px;
	color: #fff;
	font-family: var(--p360-heading-font);
	font-size: clamp(34px, 5vw, 64px);
	font-weight: 700;
	line-height: 1.05;
}
.p360-pbanner__sub { max-width: 560px; margin: 0; color: rgba(255, 255, 255, .9); font-size: 17px; line-height: 1.6; }

.p360-eyebrow {
	display: inline-block;
	margin-bottom: 8px;
	color: var(--p360-navy);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
}

/* Our Story */
.p360-story { padding: 80px 0; background: #fff; }
.p360-story__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: center; gap: 64px; }
.p360-story__media {
	position: relative;
	aspect-ratio: 4 / 3.4;
	overflow: visible;
	border-radius: 18px;
	background: linear-gradient(135deg, #2a4a94, #16295e);
	box-shadow: 18px 18px 0 var(--p360-red);
}
.p360-story__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 18px; display: block; }
.p360-story__ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: rgba(255, 255, 255, .35); }
.p360-story__ph .p360-icon { width: 90px; height: 90px; }
.p360-story__badge {
	position: absolute;
	bottom: 22px;
	left: -18px;
	padding: 10px 18px;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 8px 22px rgba(0, 0, 0, .15);
	color: var(--p360-navy);
	font-size: 14px;
	font-weight: 600;
}
.p360-story__copy { color: #444; font-size: 16px; line-height: 1.8; }
.p360-story__copy p { margin: 0 0 14px; }

.p360-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 26px 0 0; padding: 0; list-style: none; }
.p360-stats__item { margin: 0; padding: 18px 14px; border: 1px solid #E3E7EF; border-radius: 12px; background: #F7F8FA; text-align: center; }
.p360-stats__num { display: block; color: var(--p360-red); font-family: var(--p360-heading-font); font-size: 34px; font-weight: 700; line-height: 1.1; }
.p360-stats__label { display: block; margin-top: 4px; color: #555; font-size: 13px; }

/* Vision & Mission */
.p360-vm { padding: 70px 0 80px; background: #F7F8FA; }
.p360-page .p360-vm__heading { text-align: center; margin-bottom: 36px; }
.p360-vm__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.p360-vm__card {
	position: relative;
	padding: 40px 36px;
	overflow: hidden;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(31, 58, 122, .08);
	transition: transform .3s ease, box-shadow .3s ease;
}
.p360-vm__card::after {
	content: '';
	position: absolute;
	top: -60px;
	right: -60px;
	width: 160px;
	height: 160px;
	border-radius: 50%;
	background: rgba(215, 38, 56, .08);
}
.p360-vm__card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(31, 58, 122, .15); }
.p360-vm__card--navy { background: var(--p360-navy); color: #fff; }
.p360-vm__card--navy::after { background: rgba(255, 255, 255, .08); }
.p360-vm__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	margin-bottom: 18px;
	border-radius: 14px;
	background: var(--p360-red);
	color: #fff;
}
.p360-vm__icon svg { width: 30px; height: 30px; }
.p360-page .p360-vm__title { margin: 0 0 10px; font-family: var(--p360-font); font-size: 22px; font-weight: 600; color: inherit; }
.p360-vm__card:not(.p360-vm__card--navy) .p360-vm__title { color: var(--p360-navy); }
.p360-vm__text { position: relative; z-index: 1; margin: 0; font-size: 16px; line-height: 1.75; opacity: .9; }

/* Contact */
.p360-contact { padding: 80px 0; background: #fff; }
.p360-contact__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: start; gap: 56px; }
.p360-contact__intro { margin: -10px 0 24px; color: #555; font-size: 16px; line-height: 1.7; }

.p360-cinfo { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.p360-cinfo__item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin: 0;
	padding: 18px 20px;
	border: 1px solid #E3E7EF;
	border-radius: 14px;
	background: #fff;
	transition: border-color .2s, box-shadow .2s, transform .2s;
}
.p360-cinfo__item:hover { border-color: var(--p360-navy); box-shadow: 0 8px 22px rgba(31, 58, 122, .1); transform: translateX(4px); }
.p360-cinfo__icon {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 12px;
	background: #FDECEE;
	color: var(--p360-red);
}
.p360-cinfo__icon .p360-icon { width: 20px; height: 20px; }
.p360-cinfo__body { display: flex; flex-direction: column; gap: 3px; font-size: 15px; line-height: 1.6; color: #444; }
.p360-cinfo__body strong { color: var(--p360-navy); font-size: 14px; }
.p360-cinfo__body a { color: var(--p360-text) !important; text-decoration: none !important; }
.p360-cinfo__body a:hover { color: var(--p360-red) !important; }
.p360-cinfo__body .p360-cinfo__link { color: var(--p360-red) !important; font-weight: 500; }

.p360-contact__form .p360-enquiry__card { box-shadow: 0 16px 40px rgba(31, 58, 122, .12); }

.p360-contact-map { line-height: 0; }
.p360-contact-map iframe { display: block; width: 100%; height: 440px; border: 0; filter: saturate(.9); }

@media (max-width: 900px) {
	.p360-pbanner { min-height: 260px; padding: 70px 0 44px; }
	.p360-story, .p360-contact { padding: 56px 0; }
	.p360-story__grid, .p360-contact__grid, .p360-vm__grid { grid-template-columns: 1fr; gap: 36px; }
	.p360-story__media { box-shadow: 10px 10px 0 var(--p360-red); }
	.p360-story__badge { left: 12px; }
	.p360-contact-map iframe { height: 320px; }
}
@media (max-width: 520px) {
	.p360-stats { grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
	.p360-stats__num { font-size: 26px; }
	.p360-vm__card { padding: 30px 22px; }
}
