/* ==========================================================================
   Surya-Ansh Landing — the plugin's ONLY stylesheet.

   Every class starts with "sa-" and every block carries the .sa-root class,
   so nothing here can leak into (or be broken by) the theme or Elementor.

   Contents
   01 Tokens & reset            08 Dinner on the Dunes
   02 Layout helpers            09 Icon boxes (Stay. Dine. Experience.)
   03 Buttons                   10 Image cards
   04 Top bar & header          11 Call-to-action banner
   05 Hero                      12 Footer
   06 Contact Form 7 fields     13 Enquiry popup
   07 Tents & Suites cards      14 Elementor / landing-page overrides
                                15 Responsive
   ========================================================================== */


/* 01 ── Tokens & reset ─────────────────────────────────────────────────── */

.sa-root {
	--sa-teal: #0f3d3b;
	--sa-teal-dark: #0a2c2a;
	--sa-gold: #b5854b;
	--sa-gold-dark: #9c6f38;
	--sa-gold-light: #f6ead8;
	--sa-cream: #fbf7f1;
	--sa-text: #3e3a36;
	--sa-muted: #6f6760;
	--sa-heading: #1d2b2a;
	--sa-brown: #2d2420;
	--sa-serif: "Libre Caslon Text", Georgia, serif;
	--sa-sans: "Jost", "Segoe UI", sans-serif;
	/* Warm gradients shown until a real photo is chosen in the widget */
	--sa-grad-sunset: linear-gradient(160deg, #f6b25c 0%, #e2753a 35%, #8a3d22 70%, #3b1f16 100%);
	--sa-grad-night: linear-gradient(160deg, #3a3f5c 0%, #6b4a5a 40%, #c0663a 75%, #2a1a14 100%);
	--sa-grad-interior: linear-gradient(160deg, #f6e7cf 0%, #e6c79b 45%, #b98a5a 100%);

	font-family: var(--sa-sans);
	font-size: 15px;
	line-height: 1.6;
	color: var(--sa-text);
	text-align: left;
	-webkit-font-smoothing: antialiased;
}

.sa-root,
.sa-root *,
.sa-root *::before,
.sa-root *::after {
	box-sizing: border-box;
}

.sa-root h1,
.sa-root h2,
.sa-root h3,
.sa-root h4 {
	font-family: var(--sa-serif);
	font-weight: 400;
	line-height: 1.2;
	color: var(--sa-heading);
	margin: 0;
	padding: 0;
	letter-spacing: normal;
	text-transform: none;
}

.sa-root p,
.sa-root ul,
.sa-root li {
	margin: 0;
	padding: 0;
}

.sa-root ul {
	list-style: none;
}

.sa-root a {
	color: inherit;
	text-decoration: none;
	background: none;
	border: 0;
}

.sa-root img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* Icons: sized with font-size (or width) by the parent, coloured with colour. */
.sa-root .sa-icon {
	display: inline-block;
	width: 1em;
	height: 1em;
	fill: currentColor;
	flex: 0 0 auto;
	vertical-align: middle;
}

.sa-root i.sa-icon {
	font-style: normal;
	line-height: 1;
}


/* 02 ── Layout helpers ─────────────────────────────────────────────────── */

.sa-root .sa-container {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.sa-root .sa-eyebrow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--sa-gold);
}

.sa-root .sa-eyebrow::before,
.sa-root .sa-eyebrow::after {
	content: "";
	width: 60px;
	height: 1px;
	background: var(--sa-gold);
}

.sa-root .sa-eyebrow--left {
	justify-content: flex-start;
}

.sa-root .sa-eyebrow--left::before,
.sa-root .sa-eyebrow--left::after {
	width: 30px;
}

.sa-root .sa-title {
	text-align: center;
	font-size: clamp(28px, 4vw, 40px);
	margin-bottom: 12px;
}

.sa-root .sa-sub {
	text-align: center;
	color: var(--sa-muted);
	max-width: 760px;
	margin: 0 auto 30px;
}

.sa-root .sa-grid {
	display: grid;
	gap: 16px;
}

.sa-root .sa-grid--2 { grid-template-columns: repeat(2, 1fr); }
.sa-root .sa-grid--3 { grid-template-columns: repeat(3, 1fr); }
.sa-root .sa-grid--4 { grid-template-columns: repeat(4, 1fr); }

.sa-root .sa-trust {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 12px;
	font-size: 12.5px;
	color: var(--sa-muted);
}

.sa-root .sa-trust i {
	width: 1px;
	background: #cfc6ba;
}

.sa-root .sa-form-notice,
.sa-root .sa-popup-note {
	padding: 12px 14px;
	border: 1px dashed var(--sa-gold);
	border-radius: 4px;
	background: var(--sa-gold-light);
	color: var(--sa-text);
	font-size: 13px;
}

.sa-root .sa-popup-note {
	margin: 10px 0;
}


/* 03 ── Buttons ────────────────────────────────────────────────────────── */

.sa-root .sa-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 28px;
	border: 1px solid transparent;
	border-radius: 3px;
	box-shadow: none;
	font-family: var(--sa-sans);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .25s, color .25s, border-color .25s;
}

.sa-root .sa-btn .sa-icon {
	width: 14px;
	height: 14px;
}

.sa-root .sa-btn--gold { background: var(--sa-gold); color: #fff; }
.sa-root .sa-btn--gold:hover,
.sa-root .sa-btn--gold:focus { background: var(--sa-gold-dark); color: #fff; }

.sa-root .sa-btn--teal { background: var(--sa-teal); color: #fff; }
.sa-root .sa-btn--teal:hover,
.sa-root .sa-btn--teal:focus { background: var(--sa-teal-dark); color: #fff; }

.sa-root .sa-btn--terra { background: #d96b45; color: #fff; }
.sa-root .sa-btn--terra:hover,
.sa-root .sa-btn--terra:focus { background: #c15a37; color: #fff; }

.sa-root .sa-btn--outline { border-color: #fff; background: transparent; color: #fff; }
.sa-root .sa-btn--outline:hover,
.sa-root .sa-btn--outline:focus { background: #fff; color: var(--sa-teal); }

.sa-root .sa-btn--whatsapp {
	width: 100%;
	margin-top: 2px;
	padding: 13px 16px;
	border-radius: 4px;
	background: #1fb855;
	color: #fff;
	font-size: 14px;
	letter-spacing: 0;
	text-transform: none;
}

.sa-root .sa-btn--whatsapp:hover,
.sa-root .sa-btn--whatsapp:focus { background: #17a24a; color: #fff; }

.sa-root .sa-btn--whatsapp::before {
	content: "";
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	background: #fff;
	-webkit-mask: var(--sa-ico-whatsapp) center / contain no-repeat;
	mask: var(--sa-ico-whatsapp) center / contain no-repeat;
}

.sa-root .wpcf7-form[data-status="submitting"] .sa-btn--whatsapp,
.sa-root .wpcf7-form.submitting .sa-btn--whatsapp {
	opacity: .65;
	pointer-events: none;
}


/* 04 ── Top bar & header ───────────────────────────────────────────────── */

.sa-topbar {
	background: var(--sa-teal);
	color: #e7efee;
	font-size: 12.5px;
}

.sa-root .sa-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-top: 8px;
	padding-bottom: 8px;
}

.sa-root .sa-topbar__info {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 60px;
}

.sa-root .sa-topbar__item {
	display: flex;
	align-items: center;
	gap: 8px;
}

.sa-root .sa-topbar a:hover { color: var(--sa-gold); }

.sa-root .sa-topbar .sa-icon { width: 14px; height: 14px; }

.sa-root .sa-social {
	display: flex;
	gap: 12px;
}

.sa-root .sa-social a { opacity: .9; }
.sa-root .sa-social a:hover { opacity: 1; color: var(--sa-gold); }
.sa-root .sa-social .sa-icon { width: 14px; height: 14px; }

.sa-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, .05);
}

.sa-root .sa-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-top: 14px;
	padding-bottom: 14px;
}

.sa-root .sa-header__cta {
	padding: 14px 28px;
	font-size: 14px;
	letter-spacing: 0;
	text-transform: none;
}

.sa-root .sa-logo {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	line-height: 1;
	color: var(--sa-gold);
}

.sa-root .sa-logo__mark { width: 34px; height: 34px; margin-bottom: 4px; fill: none; }

.sa-root .sa-logo__name {
	font-family: var(--sa-serif);
	font-size: 22px;
	letter-spacing: .06em;
}

.sa-root .sa-logo__tag {
	margin-top: 4px;
	font-size: 8.5px;
	letter-spacing: .2em;
}

.sa-root .sa-logo__img {
	width: auto;
	max-height: 60px;
}


/* 05 ── Hero ───────────────────────────────────────────────────────────── */

.sa-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 560px;
	color: #fff;
	background-color: #8a3d22;
	background-size: cover;
	background-position: center;
}

/* Dark overlay (strength is a widget control) */
.sa-hero::before,
.sa-cta::before,
.sa-modal__head::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.sa-hero::before {
	background: linear-gradient(90deg, rgba(25, 14, 8, .82) 0%, rgba(25, 14, 8, .55) 45%, rgba(25, 14, 8, 0) 75%);
}

.sa-root .sa-hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 390px;
	align-items: center;
	gap: 50px;
	padding-top: 50px;
	padding-bottom: 50px;
}

.sa-hero--no-form .sa-hero__inner {
	grid-template-columns: minmax(0, 1fr);
}

.sa-root .sa-hero__content { max-width: 540px; }

.sa-root .sa-hero__title {
	margin-bottom: 12px;
	color: #fff;
	font-size: clamp(34px, 5vw, 54px);
	line-height: 1.08;
}

.sa-root .sa-hero__tagline {
	margin-bottom: 26px;
	font-family: var(--sa-serif);
	font-size: clamp(18px, 2.2vw, 24px);
	color: #fff;
}

.sa-root .sa-hero__subtitle {
	margin-bottom: 10px;
	color: #fff;
	font-size: 18px;
}

.sa-root .sa-hero__text,
.sa-root .sa-hero__text p {
	font-size: 14px;
	color: #f1e8dd;
}

.sa-root .sa-hero__text p { margin-bottom: 12px; }

.sa-root .sa-hero__features {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	margin: 24px 0 32px;
	font-size: 14px;
}

.sa-root .sa-hero__feature {
	display: flex;
	align-items: center;
	gap: 8px;
}

.sa-root .sa-hero__feature .sa-icon {
	width: 26px;
	height: 26px;
	font-size: 26px;
	color: #d9a560;
}

.sa-root .sa-sep {
	width: 1px;
	height: 20px;
	background: rgba(255, 255, 255, .6);
}

.sa-root .sa-hero__cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px 30px;
}

.sa-root .sa-hero__cta .sa-btn { padding: 18px 30px; }

.sa-root .sa-call {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: #fff;
}

.sa-root .sa-call .sa-icon { width: 28px; height: 28px; font-size: 28px; }

.sa-root .sa-call__label { display: block; font-size: 13px; }

.sa-root .sa-call__number { display: block; font-size: 20px; font-weight: 600; }

.sa-root .sa-call:hover { color: #fff; opacity: .9; }

/* Quote card */
.sa-root .sa-quote {
	padding: 22px 20px 18px;
	border-radius: 6px;
	background: var(--sa-cream);
	box-shadow: 0 18px 50px rgba(0, 0, 0, .35);
	color: var(--sa-text);
}

.sa-root .sa-quote__title {
	margin-bottom: 2px;
	color: var(--sa-teal);
	font-size: 22px;
}

.sa-root .sa-quote__sub {
	margin-bottom: 14px;
	font-size: 13.5px;
	color: var(--sa-muted);
}


/* 06 ── Contact Form 7 fields ──────────────────────────────────────────── */

.sa-root {
	--sa-ico-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7z'/%3E%3C/svg%3E");
	--sa-ico-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E");
	--sa-ico-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");
	--sa-ico-whatsapp: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z'/%3E%3C/svg%3E");
}

.sa-root .wpcf7 { margin: 0; }
.sa-root .wpcf7 form { margin: 0; }
.sa-root .hidden-fields-container { display: none; }
.sa-root .wpcf7-spinner { display: none; }
.sa-root .wpcf7-form-control-wrap { display: block; }

.sa-root .sa-field {
	position: relative;
	display: block;
	margin: 0 0 10px;
	padding: 9px 14px;
	border: 1px solid #ece4d8;
	border-radius: 5px;
	background: #fff;
	transition: border-color .2s, box-shadow .2s;
}

.sa-root .sa-field:focus-within {
	border-color: var(--sa-gold);
	box-shadow: 0 0 0 3px rgba(181, 133, 75, .15);
}

.sa-root .sa-field:has(.wpcf7-not-valid) {
	border-color: #d0463b;
	box-shadow: 0 0 0 3px rgba(208, 70, 59, .12);
}

.sa-root .sa-field label {
	display: block;
	margin: 0;
	padding: 0;
	font-family: var(--sa-sans);
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	color: var(--sa-heading);
}

.sa-root .sa-opt { font-weight: 400; color: var(--sa-muted); }

.sa-root .sa-field input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.sa-root .sa-field select,
.sa-root .sa-field textarea {
	display: block;
	width: 100%;
	min-height: 21px;
	margin: 0;
	padding: 2px 0 0;
	border: 0;
	border-radius: 0;
	outline: 0;
	box-shadow: none;
	background: transparent;
	font-family: var(--sa-sans);
	font-size: 13px;
	line-height: 1.5;
	color: var(--sa-text);
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.sa-root .sa-field input::placeholder,
.sa-root .sa-field textarea::placeholder { color: #a39b92; opacity: 1; }

.sa-root .sa-field textarea { resize: none; }

/* Fields with a leading icon */
.sa-root .sa-field--user,
.sa-root .sa-field--phone,
.sa-root .sa-field--calendar {
	display: flex;
	align-items: center;
	gap: 12px;
}

.sa-root .sa-field--user::before,
.sa-root .sa-field--phone::before,
.sa-root .sa-field--calendar::before {
	content: "";
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	background: #6b6560;
	-webkit-mask: var(--sa-ico-user) center / contain no-repeat;
	mask: var(--sa-ico-user) center / contain no-repeat;
}

.sa-root .sa-field--phone::before {
	-webkit-mask-image: var(--sa-ico-phone);
	mask-image: var(--sa-ico-phone);
}

.sa-root .sa-field--calendar::before {
	-webkit-mask-image: var(--sa-ico-calendar);
	mask-image: var(--sa-ico-calendar);
}

.sa-root .sa-grow { flex: 1; min-width: 0; }

/* Drop-down arrow */
.sa-root .sa-field--select { padding-right: 28px; }

.sa-root .sa-field--select::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 12px;
	width: 7px;
	height: 7px;
	border-right: 1.6px solid #3e3a36;
	border-bottom: 1.6px solid #3e3a36;
	transform: translateY(-70%) rotate(45deg);
	pointer-events: none;
}

.sa-root .sa-field-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

/* Add-on chips (Contact Form 7 checkboxes) */
.sa-root .sa-chips { margin: 2px 0 14px; }

.sa-root .sa-chips__legend {
	display: block;
	margin-bottom: 8px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--sa-heading);
}

.sa-root .sa-chips .wpcf7-list-item {
	display: inline-block;
	margin: 0 6px 8px 0;
}

.sa-root .sa-chips .wpcf7-list-item label {
	position: relative;
	display: inline-block;
	margin: 0;
	cursor: pointer;
}

.sa-root .sa-chips .wpcf7-list-item input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.sa-root .sa-chips .wpcf7-list-item-label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	border: 1px solid #dcc9ab;
	border-radius: 999px;
	background: #fff;
	font-size: 13px;
	color: var(--sa-text);
	transition: background-color .2s, border-color .2s, color .2s;
}

.sa-root .sa-chips .wpcf7-list-item:hover .wpcf7-list-item-label { border-color: var(--sa-gold); }

.sa-root .sa-chips .wpcf7-list-item input:checked + .wpcf7-list-item-label {
	border-color: var(--sa-gold);
	background: var(--sa-gold);
	color: #fff;
}

.sa-root .sa-chips .wpcf7-list-item input:checked + .wpcf7-list-item-label::before {
	content: "\2713";
	font-size: 11px;
}

.sa-root .sa-chips .wpcf7-list-item input:focus-visible + .wpcf7-list-item-label {
	outline: 2px solid var(--sa-teal);
	outline-offset: 2px;
}

/* Validation + result messages */
.sa-root .wpcf7-not-valid-tip {
	display: block;
	margin-top: 4px;
	font-size: 12px;
	line-height: 1.3;
	color: #b73a30;
}

.sa-root .wpcf7 form .wpcf7-response-output {
	margin: 12px 0 0;
	padding: 10px 12px;
	border: 1px solid #cfc6ba;
	border-radius: 4px;
	background: #fff;
	font-size: 13px;
	line-height: 1.4;
	color: var(--sa-text);
}

.sa-root .wpcf7 form.sent .wpcf7-response-output {
	border-color: #1fb855;
	background: #eafaf0;
	color: #116a34;
}

.sa-root .wpcf7 form.invalid .wpcf7-response-output,
.sa-root .wpcf7 form.unaccepted .wpcf7-response-output,
.sa-root .wpcf7 form.failed .wpcf7-response-output,
.sa-root .wpcf7 form.aborted .wpcf7-response-output,
.sa-root .wpcf7 form.spam .wpcf7-response-output {
	border-color: #d0463b;
	background: #fdf0ef;
	color: #8f2a22;
}

.sa-root .wpcf7 form.init .wpcf7-response-output,
.sa-root .wpcf7 form.resetting .wpcf7-response-output,
.sa-root .wpcf7 form .wpcf7-response-output:empty { display: none; }


/* 07 ── Tents & Suites cards ───────────────────────────────────────────── */

.sa-section {
	padding: 30px 0 40px;
	background: var(--sa-cream);
}

.sa-root .sa-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 4px;
	background: #fff;
	box-shadow: 0 4px 18px rgba(0, 0, 0, .06);
}

.sa-root .sa-card__photo {
	height: 150px;
	background-color: #c98a50;
	background-size: cover;
	background-position: center;
}

.sa-root .sa-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 16px 18px 18px;
}

.sa-root .sa-card__title { margin-bottom: 8px; font-size: 18px; }

.sa-root .sa-card__text { font-size: 13.5px; color: var(--sa-muted); }

.sa-root .sa-note {
	position: relative;
	margin-top: 14px;
	padding: 10px 14px 10px 30px;
	border-radius: 3px;
	background: var(--sa-gold-light);
	font-size: 13px;
	color: var(--sa-text);
}

.sa-root .sa-note::before {
	content: "\2726";
	position: absolute;
	top: 10px;
	left: 12px;
	font-size: 10px;
	color: var(--sa-gold);
}

.sa-root .sa-card__actions {
	margin-top: auto;
	padding-top: 16px;
}

.sa-root .sa-price {
	margin-bottom: 10px;
	padding: 11px 14px;
	border-radius: 3px;
	background: var(--sa-gold-light);
	text-align: center;
	font-size: 14px;
	font-weight: 500;
	color: var(--sa-gold-dark);
}

.sa-root .sa-card__actions .sa-btn {
	width: 100%;
	padding: 13px 16px;
	font-size: 14px;
	letter-spacing: 0;
	text-transform: none;
}


/* 08 ── Dinner on the Dunes ────────────────────────────────────────────── */

.sa-root .sa-dinner__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: start;
	gap: 28px;
}

.sa-root .sa-dinner__inner--reverse .sa-gallery { order: -1; }

.sa-root .sa-dinner__title {
	margin-bottom: 16px;
	font-size: clamp(28px, 3.6vw, 38px);
}

.sa-root .sa-dinner__text {
	margin-bottom: 6px;
	font-size: 14.5px;
	color: var(--sa-muted);
}

.sa-root .sa-dinner__lead { margin: 4px 0; font-size: 17px; }

.sa-root .sa-checklist { margin: 10px 0 14px; }

.sa-root .sa-checklist li {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 6px;
	font-size: 14.5px;
}

.sa-root .sa-checklist li::before {
	content: "";
	flex: 0 0 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--sa-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center / 12px no-repeat;
}

.sa-root .sa-dinner__content .sa-btn { margin-top: 10px; }

.sa-root .sa-gallery {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.sa-root .sa-gallery__photo {
	height: 140px;
	border-radius: 4px;
	background-color: #c98a50;
	background-size: cover;
	background-position: center;
	box-shadow: 0 4px 18px rgba(0, 0, 0, .08);
}

.sa-root .sa-gallery__photo--big {
	grid-column: 1 / -1;
	height: 250px;
}


/* 09 ── Icon boxes (Stay. Dine. Experience.) ───────────────────────────── */

.sa-root .sa-feature {
	padding: 22px 18px;
	border: 1px solid #f0e9df;
	border-radius: 4px;
	background: #fff;
	text-align: center;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .04);
}

.sa-root .sa-feature__icon {
	display: block;
	margin: 0 auto 10px;
	font-size: 46px;
	line-height: 1;
	color: var(--sa-gold);
}

.sa-root .sa-feature__icon .sa-icon { width: 1em; height: 1em; }

.sa-root .sa-feature__title { margin-bottom: 6px; font-size: 16px; }

.sa-root .sa-feature__text { font-size: 13px; color: var(--sa-muted); }


/* 10 ── Image cards (Why stay / Perfect choice) ────────────────────────── */

.sa-subsection { padding: 24px 0 14px; }

.sa-root .sa-subsection .sa-eyebrow { margin-bottom: 16px; }

.sa-root .sa-imgcard {
	overflow: hidden;
	border-radius: 4px;
	background: #fff;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .06);
}

.sa-root .sa-imgcard__photo {
	height: 110px;
	background-color: #c98a50;
	background-size: cover;
	background-position: center;
}

.sa-root .sa-imgcard__body { padding: 12px 14px 16px; }

.sa-root .sa-imgcard__title { margin-bottom: 6px; font-size: 15.5px; }

.sa-root .sa-imgcard__text { font-size: 13px; color: var(--sa-muted); }

.sa-root .sa-imgcard--center .sa-imgcard__body { text-align: center; }


/* 11 ── Call-to-action banner ──────────────────────────────────────────── */

.sa-cta {
	position: relative;
	padding: 24px 0 36px;
	color: #fff;
	text-align: center;
	background-color: #2a1a14;
	background-size: cover;
	background-position: center;
}

.sa-cta::before { background: rgba(10, 20, 30, .62); }

.sa-root .sa-cta__inner { position: relative; z-index: 1; }

.sa-root .sa-cta__title {
	margin-bottom: 8px;
	color: #fff;
	font-size: clamp(22px, 3vw, 30px);
}

.sa-root .sa-cta__text { font-size: 15px; color: #ede6dc; }

.sa-root .sa-cta__accent {
	margin: 14px 0 6px;
	font-family: var(--sa-serif);
	font-size: clamp(24px, 3.4vw, 36px);
	color: #d9a560;
}

.sa-root .sa-cta__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 18px;
}

.sa-root .sa-cta .sa-call .sa-icon { width: 22px; height: 22px; font-size: 22px; }
.sa-root .sa-cta .sa-call__number { font-size: 17px; }


/* 12 ── Footer ─────────────────────────────────────────────────────────── */

.sa-footer {
	background: var(--sa-brown);
	color: #d8cfc6;
}

.sa-root .sa-footer__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding-top: 36px;
	padding-bottom: 36px;
}

.sa-root .sa-footer__contact {
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 14px;
}

.sa-root .sa-footer__contact li {
	display: flex;
	align-items: center;
	gap: 10px;
}

.sa-root .sa-footer__contact .sa-icon { width: 16px; height: 16px; color: #fff; }

.sa-root .sa-footer__contact a:hover { color: var(--sa-gold); }

.sa-copyright {
	padding: 16px 20px;
	border-top: 1px solid rgba(255, 255, 255, .1);
	background: var(--sa-brown);
	text-align: center;
	font-size: 12.5px;
	color: #bdb2a7;
}

.sa-root.sa-copyright { text-align: center; }

.sa-root .sa-copyright a { text-decoration: underline; }


/* 13 ── Enquiry popup ──────────────────────────────────────────────────── */

body.sa-modal-open { overflow: hidden; }

.sa-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(14, 24, 23, .62);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	opacity: 0;
	visibility: hidden;
	transition: opacity .35s ease, visibility 0s linear .35s;
}

.sa-modal.is-open {
	opacity: 1;
	visibility: visible;
	transition: opacity .35s ease, visibility 0s;
}

.sa-root .sa-modal__dialog {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 580px;
	max-height: calc(100vh - 40px);
	max-height: calc(100dvh - 40px);
	overflow: hidden;
	border-radius: 10px;
	background: var(--sa-cream);
	box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
	outline: 0;
	opacity: 0;
	transform: translateY(36px) scale(.95);
	transition: transform .45s cubic-bezier(.22, 1, .36, 1), opacity .35s ease;
}

.sa-modal.is-open .sa-modal__dialog {
	opacity: 1;
	transform: none;
}

.sa-root .sa-modal__head {
	position: relative;
	flex: 0 0 auto;
	padding: 28px 64px 22px 30px;
	color: #fff;
	background-color: #0f3d3b;
	background-size: cover;
	background-position: center;
}

.sa-modal__head::before {
	background: var(--sa-head-tint, #0f3d3b);
	-webkit-mask-image: linear-gradient(115deg, rgba(0, 0, 0, .95), rgba(0, 0, 0, .55));
	mask-image: linear-gradient(115deg, rgba(0, 0, 0, .95), rgba(0, 0, 0, .55));
}

.sa-root .sa-modal__head > * { position: relative; z-index: 1; }

.sa-root .sa-modal__kicker {
	display: block;
	margin-bottom: 8px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: #e8c58f;
}

.sa-root .sa-modal__title {
	margin-bottom: 6px;
	color: #fff;
	font-size: clamp(24px, 3.4vw, 30px);
}

.sa-root .sa-modal__sub {
	max-width: 420px;
	font-size: 14px;
	color: #e6ece9;
}

.sa-root .sa-modal__close {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .45);
	border-radius: 50%;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	cursor: pointer;
	transition: background-color .3s, color .3s, transform .3s;
}

.sa-root .sa-modal__close:hover {
	background: #fff;
	color: var(--sa-teal);
	transform: rotate(90deg);
}

.sa-root .sa-modal__close:focus-visible { outline: 2px solid #e8c58f; outline-offset: 2px; }

.sa-root .sa-modal__close .sa-icon { width: 18px; height: 18px; }

.sa-root .sa-modal__body {
	padding: 22px 30px 26px;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.sa-root .sa-modal .sa-field-row { gap: 12px; }
.sa-root .sa-modal .sa-field { margin-bottom: 12px; }
.sa-root .sa-modal .sa-field-row .sa-field { margin-bottom: 12px; }

/* Fields rise in one after another */
@keyframes sa-rise {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: none; }
}

.sa-modal.is-open .wpcf7-form > * { animation: sa-rise .5s cubic-bezier(.22, 1, .36, 1) both; }
.sa-modal.is-open .wpcf7-form > :nth-child(2) { animation-delay: .12s; }
.sa-modal.is-open .wpcf7-form > :nth-child(3) { animation-delay: .16s; }
.sa-modal.is-open .wpcf7-form > :nth-child(4) { animation-delay: .20s; }
.sa-modal.is-open .wpcf7-form > :nth-child(5) { animation-delay: .24s; }
.sa-modal.is-open .wpcf7-form > :nth-child(6) { animation-delay: .28s; }
.sa-modal.is-open .wpcf7-form > :nth-child(7) { animation-delay: .32s; }
.sa-modal.is-open .wpcf7-form > :nth-child(8) { animation-delay: .36s; }
.sa-modal.is-open .wpcf7-form > :nth-child(9) { animation-delay: .40s; }
.sa-modal.is-open .wpcf7-form > :nth-child(10) { animation-delay: .44s; }
.sa-modal.is-open .wpcf7-form > :nth-child(n+11) { animation-delay: .48s; }


/* 14 ── Elementor / landing-page overrides ─────────────────────────────── */

/* Landing template: no theme spacing around the page. */
body.sa-landing {
	margin: 0;
	background: #fff;
}

body.sa-landing .sa-main { display: block; }

body.admin-bar .sa-header { top: 32px; }

/* Let the sections run edge to edge inside whatever Elementor container holds them. */
.sa-landing .elementor-widget:not(:last-child) { margin-block-end: 0; }
.sa-landing .elementor-widget-container { margin: 0; padding: 0; }
.sa-landing .elementor-section.elementor-section-boxed > .elementor-container { max-width: none; }
.sa-landing .elementor-column-gap-default > .elementor-column > .elementor-element-populated,
.sa-landing .elementor-column-gap-narrow > .elementor-column > .elementor-element-populated,
.sa-landing .elementor-column-gap-extended > .elementor-column > .elementor-element-populated,
.sa-landing .elementor-column-gap-wide > .elementor-column > .elementor-element-populated,
.sa-landing .elementor-column-gap-wider > .elementor-column > .elementor-element-populated { padding: 0; }

.sa-landing .e-con {
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--content-width: 100%;
	--container-max-width: 100%;
}

.sa-landing .e-con > .elementor-widget,
.sa-landing .e-con > .e-con-inner > .elementor-widget {
	width: 100%;
	max-width: 100%;
}


/* 15 ── Responsive ─────────────────────────────────────────────────────── */

@media (max-width: 1000px) {
	.sa-root .sa-hero__inner { grid-template-columns: 1fr; gap: 32px; }
	.sa-root .sa-quote { max-width: 460px; }
}

@media (max-width: 960px) {
	.sa-root .sa-grid--4 { grid-template-columns: repeat(2, 1fr); }
	.sa-root .sa-dinner__inner { grid-template-columns: 1fr; }
	.sa-root .sa-topbar__info { gap: 6px 20px; }
}

@media (max-width: 782px) {
	body.admin-bar .sa-header { top: 46px; }
}

@media (max-width: 700px) {
	.sa-root .sa-grid--3,
	.sa-root .sa-grid--2 { grid-template-columns: 1fr; }

	.sa-root .sa-topbar__inner { flex-direction: column; align-items: flex-start; }
	.sa-root .sa-topbar__info { flex-direction: column; gap: 4px; }

	.sa-hero::before { background: rgba(25, 14, 8, .72); }
	.sa-root .sa-sep { display: none; }

	.sa-root .sa-header__cta { padding: 12px 18px; font-size: 13px; }
	.sa-root .sa-footer__inner { flex-direction: column; text-align: center; }
	.sa-root .sa-footer__contact li { justify-content: center; }
}

@media (max-width: 600px) {
	body.admin-bar .sa-header { top: 0; }
}

@media (max-width: 560px) {
	.sa-modal { align-items: flex-end; padding: 0; }

	.sa-root .sa-modal__dialog {
		max-width: none;
		max-height: 94vh;
		max-height: 94dvh;
		border-radius: 16px 16px 0 0;
		transform: translateY(100%);
	}

	.sa-root .sa-modal__head { padding: 22px 60px 18px 20px; }
	.sa-root .sa-modal__body { padding: 18px 20px 22px; }
}

@media (max-width: 480px) {
	.sa-root .sa-grid--4 { grid-template-columns: 1fr; }
	.sa-root .sa-gallery__photo--big { height: 200px; }
	.sa-root .sa-hero__cta { gap: 16px; }
}

@media (prefers-reduced-motion: reduce) {
	.sa-modal,
	.sa-root .sa-modal__dialog { transition-duration: .01s; }
	.sa-modal.is-open .wpcf7-form > * { animation: none; }
	.sa-root .sa-modal__close:hover { transform: none; }
}
