/* Visual polish overrides: coastal & elegant theme, typography, buttons, mobile responsiveness */

:root {
	--coastal-teal: #1F5E77;
	--coastal-teal-dark: #163F51;
	--coastal-sand: #F6F1E7;
	--coastal-sand-deep: #EDE3D0;
	--coastal-gold: #C9A66B;
	--coastal-ink: #2E2B26;
}

/* ---- Base palette & body ---- */
body {
	background-color: #FFFDFA;
	color: var(--coastal-ink);
}

body,
.elementor-widget-text-editor,
.elementor-button,
input,
textarea,
label {
	font-family: 'Mulish', 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
}

/* ---- Headings: elegant serif ---- */
.elementor-heading-title {
	font-family: 'Playfair Display', Georgia, 'Times New Roman', serif !important;
	letter-spacing: 1.5px !important;
	color: var(--coastal-ink) !important;
}

h1.elementor-heading-title {
	line-height: 1.25 !important;
	font-weight: 600 !important;
}

h3.elementor-heading-title {
	font-family: 'Mulish', 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
	letter-spacing: 0.5px !important;
	font-weight: 400 !important;
	color: #4A463F !important;
}

/* ---- Section rhythm: alternating warm sand backgrounds ---- */
.elementor-element-3159736 > .elementor-background-overlay {
	background-color: var(--coastal-sand) !important;
}

.elementor-element-68e8576e > .elementor-background-overlay {
	background-color: var(--coastal-sand-deep) !important;
}

/* ---- Dividers: warm gold accent ---- */
.elementor-divider-separator {
	--divider-color: var(--coastal-gold) !important;
	--divider-border-width: 2px !important;
}

/* ---- Body copy ---- */
.elementor-widget-text-editor p {
	line-height: 1.7;
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 767px) {
	.elementor-heading-title {
		letter-spacing: 1px !important;
	}
	h1.elementor-heading-title {
		font-size: 1.6em !important;
	}
	h2.elementor-heading-title {
		font-size: 1.3em !important;
	}
	h3.elementor-heading-title {
		font-size: 1em !important;
	}
}

/* ---- Buttons ---- */
.elementor-button {
	border-radius: 6px !important;
	box-shadow: 0 2px 10px rgba(31, 94, 119, .25) !important;
	transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease !important;
	letter-spacing: 0.5px;
}

.elementor-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(31, 94, 119, .35) !important;
}

.elementor-element-e1dec13 .elementor-button {
	background-color: var(--coastal-teal) !important;
}

.elementor-element-e1dec13 .elementor-button:hover {
	background-color: var(--coastal-teal-dark) !important;
}

/* ---- Nearby cards: responsive grid + polish ---- */
.elementor-element-fe06671 .elementor-widget-image img {
	border-radius: 10px;
	transition: transform .25s ease;
}

.elementor-element-fe06671 .elementor-widget-image img:hover {
	transform: scale(1.03);
}

.elementor-element-fe06671 .elementor-column {
	background-color: #fff;
	border-radius: 12px;
	box-shadow: 0 4px 16px rgba(46, 43, 38, .08);
	overflow: hidden;
}

.elementor-element-fe06671 > .elementor-container {
	row-gap: 24px;
}

@media (max-width: 1024px) {
	.elementor-element-fe06671 .elementor-col-25 {
		width: 50%;
	}
}

@media (max-width: 600px) {
	.elementor-element-fe06671 .elementor-col-25 {
		width: 100%;
	}
}

/* ---- Section spacing polish on mobile ---- */
@media (max-width: 767px) {
	.elementor-section {
		padding-top: 1.5em;
		padding-bottom: 1.5em;
	}
}
