/* ═══════════════════════════════════════════════════════════════════
   Hero Section - Full Viewport Background
   ═══════════════════════════════════════════════════════════════════ */

.sw-hero {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	display: flex;
	flex-direction: column;
	position: relative;
}

/* NO overlay applied — images are exported with overlay baked in */

/* ─── Decorative Line Overlay ─── */
.sw-hero__lines {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
	overflow: hidden;
}

/* Inner container to align lines with 1240px content */
.sw-hero__lines-inner {
	position: relative;
	max-width: 1240px;
	margin: 0 auto;
	height: 100%;
}

/* Vertical lines */
.sw-hero__line-v {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 1px;
	background: rgba(255, 255, 255, 0.06);
}

.sw-hero__line-v--1 { left: 0; }           /* left content edge */
.sw-hero__line-v--2 { left: 282px; }       /* inner left */
.sw-hero__line-v--3 { right: 284px; }      /* inner right (1240-956=284) */
.sw-hero__line-v--4 { right: 0; }          /* right content edge */

/* Horizontal lines — positioned relative to banner area */
.sw-hero__line-h {
	position: absolute;
	left: 0;
	right: 0;
	height: 1px;
	background: rgba(255, 255, 255, 0.06);
}

/* Aligns with top edge of booking button */
.sw-hero__line-h--top {
	bottom: 122px;
}

/* Aligns with bottom edge of booking button */
.sw-hero__line-h--bottom {
	bottom: 78px;
}

/* All content sits above the lines */
.sw-hero .sw-site-header,
.sw-hero__content,
.sw-hero__banner {
	position: relative;
	z-index: 2;
}


/* ─────────────────────────────────────────────────────────────────
   Hero Content (Centered)
   ───────────────────────────────────────────────────────────────── */

.sw-hero__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 110px;
	padding: 65px 0;
	text-align: center;
	color: #faf8f0;
}

.sw-hero__content-center {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
}

.sw-hero__subtitle {
	font-family: 'Inter', sans-serif;
	font-weight: 400;
	font-size: 14px;
	letter-spacing: 7px;
	text-transform: uppercase;
	color: #faf8f0;
	margin: 0;
	padding: 0;
}

.sw-hero__heading {
	font-family: 'Instrument Serif', serif;
	font-weight: 400;
	font-size: 64px;
	line-height: 0.846;
	color: #faf8f0;
	margin: 0;
	padding: 0;
	max-width: 785px;
}

.sw-hero__heading em {
	font-family: 'Instrument Serif', serif;
	font-style: italic;
	font-weight: 400;
}

.sw-hero__description {
	font-family: 'Inter', sans-serif;
	font-weight: 400;
	font-size: 15px;
	line-height: 1.32;
	color: #faf8f0;
	max-width: 536px;
	margin: 0;
	padding: 0;
	text-align: center;
}


/* ─────────────────────────────────────────────────────────────────
   Hero Banner (Bottom)
   ───────────────────────────────────────────────────────────────── */

.sw-hero__banner {
	padding: 0 0 65px;
}

.sw-hero__banner-inner {
	max-width: 1240px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.sw-hero__banner-text {
	font-family: 'Inter', sans-serif;
	font-weight: 400;
	font-size: 11px;
	letter-spacing: 3.3px;
	text-transform: uppercase;
	color: #faf8f0;
	line-height: 1.3;
	margin: 0;
	padding: 0;
	flex: 0 1 auto;
}

.sw-hero__banner-text--left {
	text-align: left;
	white-space: pre-line;
}

.sw-hero__banner-text--right {
	text-align: right;
	white-space: pre-line;
}

.sw-hero__banner-cta {
	display: inline-flex;
	align-items: center;
	gap: 35px;
	background: #faf8f0;
	padding: 14px 26px;
	border-radius: 79px;
	text-decoration: none;
	transition: opacity 0.3s ease;
	flex-shrink: 0;
}

.sw-hero__banner-cta:hover {
	opacity: 0.9;
}

.sw-hero__banner-cta:active {
	opacity: 0.85;
}

.sw-hero__banner-cta span {
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 11px;
	letter-spacing: 3.3px;
	text-transform: uppercase;
	color: #2b2722;
	white-space: nowrap;
}

.sw-hero__banner-cta img {
	width: 8px;
	height: 8px;
	display: block;
}


/* ═══════════════════════════════════════════════════════════════════
   Responsive Design
   ═══════════════════════════════════════════════════════════════════ */

@media (max-width: 1240px) {
	.sw-hero__banner-inner {
		padding-left: 32px;
		padding-right: 32px;
	}

	.sw-hero__content {
		padding-left: 32px;
		padding-right: 32px;
	}

	.sw-hero__lines {
		display: none;
	}
}

@media (max-width: 960px) {
	/* ─── Full viewport hero on mobile ─── */
	.sw-hero {
		min-height: 70vh;
		min-height: 70dvh;
	}

	/* ─── Hero Content: flex-grow to fill space ─── */
	.sw-hero__content {
		flex: 1 0 0;
		gap: 20px;
		padding: 40px 20px 0;
		justify-content: center;
	}

	.sw-hero__content-center {
		gap: 12px;
	}

	.sw-hero__subtitle {
		font-size: 10px;
		letter-spacing: 4px;
	}

	.sw-hero__heading {
		font-size: 40px;
		line-height: 0.9;
		max-width: 100%;
	}

	.sw-hero__description {
		font-size: 14px;
		line-height: normal;
		max-width: 100%;
	}

	/* ─── Banner: hide side text, full-width CTA ─── */
	.sw-hero__banner-text {
		display: none;
	}

	.sw-hero__banner {
		padding: 0 0 100px;
	}

	.sw-hero__banner-inner {
		padding-left: 20px;
		padding-right: 20px;
		justify-content: center;
	}

	.sw-hero__banner-cta {
		width: 100%;
		justify-content: center;
	}

	/* ─── Mobile decorative lines ─── */
	.sw-hero__lines {
		display: block;
	}

	.sw-hero__lines-inner {
		max-width: none;
		margin: 0;
		padding: 0;
	}

	/* Hide desktop inner lines, show mobile edge lines */
	.sw-hero__line-v--2,
	.sw-hero__line-v--3 {
		display: none;
	}

	.sw-hero__line-v--1 {
		left: 20px;
	}

	.sw-hero__line-v--4 {
		right: 20px;
	}

	/* Hide horizontal lines on mobile */
	.sw-hero__line-h--top,
	.sw-hero__line-h--bottom {
		display: none;
	}
}

