.glami-public-grid,
.glami-lifestyle,
.glami-location,
.glami-project-gallery,
.glami-faq,
.glami-project-cta,
.glami-availability-grid,
.glami-form-placeholder {
	--glami-cream: var(--glami-ivory, #f8f3e8);
	--glami-terracotta: var(--glami-gold, #c9a45d);
	--glami-sage: var(--glami-taupe, #b9a58f);
	--glami-brown: var(--glami-charcoal, #2d2520);
	--glami-white: #fffdfa;
	color: var(--glami-brown);
}

.glami-public-grid {
	display: grid;
	gap: clamp(16px, 2.5vw, 28px);
}

.glami-public-grid--three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.glami-highlight-card,
.glami-lifestyle__item,
.glami-availability-card {
	min-width: 0;
	padding: clamp(20px, 3vw, 30px);
	background: var(--glami-white);
	border: 1px solid rgba(61, 49, 43, 0.12);
	border-radius: 18px;
	box-shadow: 0 12px 32px rgba(61, 49, 43, 0.07);
}

.glami-highlight-card__number {
	display: inline-grid;
	inline-size: 36px;
	block-size: 36px;
	place-items: center;
	margin-block-end: 18px;
	background: rgba(201, 164, 93, 0.18);
	border-radius: 50%;
	color: var(--glami-walnut, #6b4a35);
	font-weight: 800;
}

.glami-highlight-card h3,
.glami-lifestyle h2,
.glami-location h2,
.glami-location h3,
.glami-availability-card h3,
.glami-project-cta h2,
.glami-form-placeholder h2 {
	margin-block-start: 0;
	color: var(--glami-brown);
	line-height: 1.18;
}

.glami-highlight-card p,
.glami-lifestyle p,
.glami-location p,
.glami-availability-note,
.glami-project-cta p,
.glami-form-placeholder p {
	line-height: 1.75;
}

.glami-eyebrow {
	display: inline-block;
	margin-block-end: 10px;
	color: var(--glami-walnut, #6b4a35);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.glami-lifestyle {
	display: grid;
	gap: clamp(24px, 4vw, 48px);
}

.glami-lifestyle__copy {
	max-inline-size: 760px;
}

.glami-lifestyle__copy h2 {
	font-size: clamp(2rem, 4vw, 3.25rem);
}

.glami-lifestyle__item {
	display: grid;
	gap: 8px;
	border-block-start: 4px solid var(--glami-sage);
}

.glami-lifestyle__item strong {
	font-size: 1.12rem;
}

.glami-lifestyle__item span {
	line-height: 1.65;
}

.glami-project-gallery {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	grid-auto-rows: clamp(130px, 16vw, 230px);
	gap: clamp(10px, 1.5vw, 18px);
}

.glami-project-gallery figure {
	grid-column: span 4;
	margin: 0;
	overflow: hidden;
	background: var(--glami-cream);
	border-radius: 16px;
}

.glami-project-gallery figure:first-child,
.glami-project-gallery figure:nth-child(5n) {
	grid-column: span 8;
}

.glami-project-gallery img {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	transition: transform 240ms ease;
}

.glami-project-gallery figure:hover img {
	transform: scale(1.025);
}

.glami-location {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(260px, 0.9fr);
	gap: clamp(24px, 5vw, 64px);
	align-items: start;
}

.glami-location h2 {
	font-size: clamp(2rem, 4vw, 3.25rem);
}

.glami-location__amenities {
	padding: clamp(22px, 4vw, 36px);
	background: var(--glami-white);
	border: 1px solid rgba(61, 49, 43, 0.12);
	border-radius: 18px;
}

.glami-location__amenities ul {
	margin: 0;
	padding-inline-start: 1.2rem;
}

.glami-location__amenities li + li {
	margin-block-start: 10px;
}

.glami-faq {
	display: grid;
	gap: 12px;
}

.glami-faq details {
	background: var(--glami-white);
	border: 1px solid rgba(61, 49, 43, 0.14);
	border-radius: 14px;
}

.glami-faq summary {
	position: relative;
	min-block-size: 52px;
	padding: 17px 52px 17px 20px;
	cursor: pointer;
	font-weight: 750;
	line-height: 1.45;
	list-style: none;
}

.glami-faq summary::-webkit-details-marker {
	display: none;
}

.glami-faq summary::after {
	position: absolute;
	inset-block-start: 50%;
	inset-inline-end: 20px;
	content: "+";
	color: var(--glami-terracotta);
	font-size: 1.45rem;
	transform: translateY(-50%);
}

.glami-faq details[open] summary::after {
	content: "−";
}

.glami-faq details > div {
	padding: 0 20px 18px;
}

.glami-faq details p {
	margin: 0;
	line-height: 1.7;
}

.glami-faq summary:focus-visible,
.glami-public-button:focus-visible,
.glami-availability-card a:focus-visible {
	outline: 3px solid var(--glami-walnut, #6b4a35);
	outline-offset: 3px;
}

.glami-project-cta,
.glami-form-placeholder {
	padding: clamp(28px, 6vw, 72px);
	background: var(--glami-white);
	border: 1px solid rgba(61, 49, 43, 0.12);
	border-radius: clamp(18px, 3vw, 30px);
	box-shadow: 0 16px 45px rgba(61, 49, 43, 0.08);
}

.glami-project-cta {
	background: linear-gradient(135deg, var(--glami-brown), var(--glami-walnut, #6b4a35));
	color: #fff;
	text-align: center;
}

.glami-project-cta h2,
.glami-project-cta .glami-eyebrow {
	color: #fff;
}

.glami-project-cta p {
	max-inline-size: 680px;
	margin-inline: auto;
}

.glami-public-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	justify-content: center;
	margin-block-start: 24px;
}

.glami-public-button {
	display: inline-flex;
	min-block-size: 48px;
	align-items: center;
	justify-content: center;
	padding: 11px 20px;
	background: var(--glami-terracotta);
	border: 2px solid var(--glami-terracotta);
	border-radius: 999px;
	color: var(--glami-brown);
	font-weight: 750;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.glami-public-button:hover {
	background: var(--glami-walnut, #6b4a35);
	border-color: var(--glami-walnut, #6b4a35);
	color: #fff;
	transform: translateY(-1px);
}

.glami-public-button--secondary {
	background: transparent;
	color: var(--glami-walnut, #6b4a35);
}

.glami-public-button--whatsapp {
	background: #25d366;
	border-color: #25d366;
	color: #153c24;
}

.glami-public-button--whatsapp:hover {
	background: #1fbd59;
	border-color: #1fbd59;
	color: #102e1b;
}

.glami-availability-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 16px;
}

.glami-availability-card {
	display: grid;
	gap: 6px;
}

.glami-availability-card h3 {
	margin-block-end: 12px;
}

.glami-availability-card strong {
	color: var(--glami-walnut, #6b4a35);
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1;
}

.glami-availability-card a {
	margin-block-start: 14px;
	color: var(--glami-walnut, #6b4a35);
	font-weight: 750;
}

.glami-availability-note {
	margin-block-start: 14px;
	font-size: 0.9rem;
}

.glami-form-placeholder {
	max-inline-size: 820px;
	margin-inline: auto;
	text-align: center;
}

.glami-form-placeholder.glami-hubspot-form-section {
	max-inline-size: 960px;
}

.glami-hubspot-form-frame {
	min-block-size: 480px;
	margin-block-start: clamp(24px, 4vw, 36px);
	text-align: start;
}

.glami-hubspot-form-frame iframe {
	display: block;
	inline-size: 100% !important;
	max-inline-size: 100%;
}

.glami-hubspot-form-section .glami-public-note {
	margin-block-start: 20px;
}

.glami-form-placeholder h2 {
	font-size: clamp(1.9rem, 4vw, 3rem);
}

.glami-public-note {
	display: inline-block;
	padding: 12px 14px;
	background: #fff8db;
	border: 1px solid #eadb91;
	border-radius: 10px;
	color: #594c18;
	font-size: 0.9rem;
	line-height: 1.5;
}

.glami-whatsapp-sticky {
	position: fixed;
	z-index: 999;
	inset-inline: 14px;
	inset-block-end: 14px;
	display: none;
	box-shadow: 0 10px 30px rgba(18, 75, 40, 0.25);
}

@media (max-width: 900px) {
	.glami-public-grid--three,
	.glami-location {
		grid-template-columns: 1fr;
	}

	.glami-project-gallery figure,
	.glami-project-gallery figure:first-child,
	.glami-project-gallery figure:nth-child(5n) {
		grid-column: span 6;
	}
}

@media (max-width: 600px) {
	.glami-hubspot-form-frame {
		min-block-size: 640px;
	}

	.glami-project-gallery {
		grid-template-columns: 1fr;
		grid-auto-rows: 220px;
	}

	.glami-project-gallery figure,
	.glami-project-gallery figure:first-child,
	.glami-project-gallery figure:nth-child(5n) {
		grid-column: auto;
	}

	.glami-public-actions,
	.glami-public-actions .glami-public-button {
		inline-size: 100%;
	}

	.glami-whatsapp-sticky {
		display: inline-flex;
	}

	body:has(.glami-whatsapp-sticky) {
		padding-block-end: 72px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.glami-project-gallery img,
	.glami-public-button {
		transition: none;
	}
}
