/**
 * Nelios Offers — single offer styles.
 * Mirrors the "Offer Page" Figma design. Colours are exposed as custom
 * properties so a site can rebrand via its child theme, e.g.:
 *   .nelios-offer { --nelios-offer-accent: #b08d57; }
 */

/*
 * Per-site theming: override --nelios-offer-accent in your child theme's
 * stylesheet (it loads after this file, so it wins), e.g.
 *   :root { --nelios-offer-accent: #AD986E; }  // lindoshotels gold
 * The hover shade is derived automatically, so setting the accent is enough.
 */
:root {
	--nelios-offer-heading: #212121;
	--nelios-offer-text: #513e2c;
	--nelios-offer-panel: #f7f8f9;
	--nelios-offer-accent: #527480;
	--nelios-offer-accent-hover: color-mix(in srgb, var(--nelios-offer-accent) 82%, #000);
	--nelios-offer-heading-font: "Playfair Display", Georgia, "Times New Roman", serif;
	--nelios-offer-body-font: "Open Sans", "Helvetica Neue", Arial, sans-serif;
}

.nelios-offer {
	box-sizing: border-box;
	width: 100%;
	max-width: 1512px;
	margin: 0 auto;
	padding: 110px 106px;
}

.nelios-offer *,
.nelios-offer *::before,
.nelios-offer *::after {
	box-sizing: border-box;
}

/* Hero banner (full-bleed) — matches the theme's page-title header ---------- */
.nelios-offer-hero {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 387px;
	padding: 48px 20px;
	background-color: var(--nelios-offer-accent, #527480);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	color: #fff;
	text-align: center;
}

.nelios-offer-hero__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	max-width: 800px;
	margin: 0 auto;
}

/*
 * Offer titles are full sentences (unlike short page titles), so scale the
 * theme's title-area heading down on smaller screens so it fits the title area
 * instead of overflowing behind the header. Scoped: this file loads only on
 * offer views.
 */
@media (max-width: 1024px) {
	.eltd-page-title {
		font-size: 40px !important;
		line-height: 1.15 !important;
	}
}

@media (max-width: 680px) {
	.eltd-page-title {
		font-size: 28px !important;
	}
}

.nelios-offer-hero__title {
	margin: 0;
	font-family: var(--nelios-offer-heading-font);
	font-weight: 400;
	font-size: clamp(34px, 6vw, 60px);
	line-height: 1.1;
	color: #fff;
}

.nelios-offer-hero__subtitle {
	margin: 0;
	font-family: var(--nelios-offer-body-font);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: #fff;
}

.nelios-offer-hero__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 8px;
	padding: 17px 56px;
	border: 1px solid #fff;
	background: transparent;
	color: #fff;
	font-family: var(--nelios-offer-body-font);
	font-size: 11px;
	font-weight: 600;
	line-height: 22px;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.nelios-offer-hero__button:hover,
.nelios-offer-hero__button:focus {
	background: #fff;
	color: var(--nelios-offer-accent, #527480);
}

/* Hero photo -------------------------------------------------------------- */
.nelios-offer__photo {
	width: 100%;
	aspect-ratio: 912 / 568;
	margin-bottom: 120px;
	overflow: hidden;
}

.nelios-offer__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Two-column intro -------------------------------------------------------- */
.nelios-offer__intro {
	display: flex;
	align-items: flex-start;
	gap: 136px;
}

.nelios-offer__details {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 48px;
	padding: 48px 0;
}

.nelios-offer__terms {
	flex: 0 0 536px;
	width: 536px;
	display: flex;
	flex-direction: column;
	gap: 48px;
	padding: 48px;
	background: var(--nelios-offer-panel);
}

/* Typography -------------------------------------------------------------- */
.nelios-offer__heading {
	margin: 0;
	font-family: var(--nelios-offer-heading-font);
	font-weight: 400;
	font-size: 35px;
	line-height: 1.37;
	color: var(--nelios-offer-heading);
}

.nelios-offer__body,
.nelios-offer__terms-body {
	font-family: var(--nelios-offer-body-font);
	font-size: 14px;
	line-height: 1.8;
	color: var(--nelios-offer-text);
}

.nelios-offer__body p {
	margin: 0 0 1em;
}

.nelios-offer__body p:last-child {
	margin-bottom: 0;
}

.nelios-offer__terms-body ul {
	margin: 0;
	padding-left: 21px;
	list-style: disc;
}

.nelios-offer__terms-body li {
	margin-bottom: 8px;
}

.nelios-offer__terms-body li:last-child {
	margin-bottom: 0;
}

/* Booking button ---------------------------------------------------------- */
.nelios-offer__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	padding: 17px 56px;
	border: 1px solid transparent;
	background: var(--nelios-offer-accent);
	color: #fff;
	font-family: var(--nelios-offer-body-font);
	font-size: 11px;
	font-weight: 600;
	line-height: 22px;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.nelios-offer__button:hover,
.nelios-offer__button:focus {
	background: var(--nelios-offer-accent-hover);
	color: #fff;
}

/* ========================================================================= */
/* Offers archive (list) — alternating image/text rows                        */
/* ========================================================================= */
.nelios-offer-hero__subtitle--soft {
	letter-spacing: 1px;
	text-transform: none;
	font-weight: 400;
	font-size: 14px;
	opacity: 0.92;
}

.nelios-offers-list {
	box-sizing: border-box;
	width: 100%;
	max-width: 1512px;
	margin: 0 auto;
	padding: clamp(56px, 8vw, 110px) 106px;
	display: flex;
	flex-direction: column;
	gap: clamp(64px, 8vw, 120px);
}

.nelios-offers-list *,
.nelios-offers-list *::before,
.nelios-offers-list *::after {
	box-sizing: border-box;
}

.nelios-offers-list__item {
	display: flex;
	align-items: center;
	gap: 80px;
}

.nelios-offers-list__item:nth-child(even) {
	flex-direction: row-reverse;
}

/* Media with an offset decorative frame ----------------------------------- */
.nelios-offers-list__media {
	position: relative;
	flex: 1 1 58%;
	max-width: 58%;
	display: block;
	text-decoration: none;
}

.nelios-offers-list__media img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.nelios-offers-list__media::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	border: 1px solid var(--nelios-offer-accent, #527480);
	transform: translate(-24px, 24px);
}

.nelios-offers-list__item:nth-child(even) .nelios-offers-list__media::before {
	transform: translate(24px, 24px);
}

/* Content ----------------------------------------------------------------- */
.nelios-offers-list__content {
	flex: 1 1 42%;
	max-width: 42%;
}

.nelios-offers-list__title {
	margin: 0;
	font-family: var(--nelios-offer-heading-font);
	font-weight: 400;
	font-size: 30px;
	line-height: 1.3;
	color: var(--nelios-offer-heading);
}

.nelios-offers-list__title a {
	color: inherit;
	text-decoration: none;
}

.nelios-offers-list__title a:hover {
	color: var(--nelios-offer-accent);
}

.nelios-offers-list__subtitle {
	margin: 8px 0 0;
	font-family: var(--nelios-offer-heading-font);
	font-size: 20px;
	line-height: 1.3;
	color: var(--nelios-offer-accent);
}

.nelios-offers-list__period {
	margin: 16px 0 0;
	font-family: var(--nelios-offer-body-font);
	font-size: 12px;
	line-height: 1.6;
	color: var(--nelios-offer-text);
}

.nelios-offers-list__period-label {
	color: var(--nelios-offer-accent);
	margin-right: 4px;
}

.nelios-offers-list__excerpt {
	margin: 24px 0 0;
	font-family: var(--nelios-offer-body-font);
	font-size: 14px;
	line-height: 1.8;
	color: var(--nelios-offer-text);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.nelios-offers-list__excerpt p {
	margin: 0;
}

.nelios-offers-list__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 32px;
	padding: 17px 44px;
	border: 1px solid #d9d9d9;
	background: transparent;
	color: var(--nelios-offer-heading);
	font-family: var(--nelios-offer-body-font);
	font-size: 11px;
	font-weight: 600;
	line-height: 22px;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.nelios-offers-list__button:hover,
.nelios-offers-list__button:focus {
	border-color: var(--nelios-offer-accent);
	color: var(--nelios-offer-accent);
}

.nelios-offers-list__empty {
	font-family: var(--nelios-offer-body-font);
	color: var(--nelios-offer-text);
	text-align: center;
}

@media (max-width: 1200px) {
	.nelios-offers-list {
		padding: 64px 40px;
		gap: 72px;
	}

	.nelios-offers-list__item {
		gap: 48px;
	}
}

@media (max-width: 900px) {
	.nelios-offers-list {
		padding: 40px 20px;
		gap: 56px;
	}

	.nelios-offers-list__item,
	.nelios-offers-list__item:nth-child(even) {
		flex-direction: column;
		gap: 32px;
	}

	.nelios-offers-list__media,
	.nelios-offers-list__content {
		flex-basis: auto;
		max-width: 100%;
		width: 100%;
	}

	.nelios-offers-list__media::before,
	.nelios-offers-list__item:nth-child(even) .nelios-offers-list__media::before {
		transform: translate(-12px, 12px);
	}
}

/* ========================================================================= */
/* "Other Offers" carousel (single page)                                      */
/* ========================================================================= */
.nelios-offers-related {
	box-sizing: border-box;
	width: 100%;
	max-width: 1512px;
	margin: 0 auto;
	padding: clamp(48px, 8vw, 100px) 106px;
	display: flex;
	align-items: center;
	gap: 64px;
}

.nelios-offers-related *,
.nelios-offers-related *::before,
.nelios-offers-related *::after {
	box-sizing: border-box;
}

.nelios-offers-related__intro {
	flex: 0 0 30%;
	max-width: 30%;
}

.nelios-offers-related__heading {
	margin: 0;
	font-family: var(--nelios-offer-heading-font);
	font-weight: 400;
	font-size: clamp(30px, 4vw, 40px);
	line-height: 1.2;
	color: var(--nelios-offer-heading);
}

.nelios-offers-related__subtitle {
	margin: 8px 0 0;
	font-family: var(--nelios-offer-heading-font);
	font-size: 20px;
	line-height: 1.3;
	color: var(--nelios-offer-accent);
}

.nelios-offers-related__period {
	margin: 20px 0 0;
	font-family: var(--nelios-offer-body-font);
	font-size: 12px;
	line-height: 1.6;
	color: var(--nelios-offer-text);
}

.nelios-offers-related__subtitle:empty,
.nelios-offers-related__period:empty {
	display: none;
}

.nelios-offers-related__lead {
	margin: 24px 0 0;
	font-family: var(--nelios-offer-body-font);
	font-size: 14px;
	line-height: 1.8;
	color: var(--nelios-offer-text);
}

.nelios-offers-related__viewall {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 32px;
	padding: 17px 44px;
	border: 1px solid #d9d9d9;
	background: transparent;
	color: var(--nelios-offer-heading);
	font-family: var(--nelios-offer-body-font);
	font-size: 11px;
	font-weight: 600;
	line-height: 22px;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.nelios-offers-related__viewall:hover,
.nelios-offers-related__viewall:focus {
	border-color: var(--nelios-offer-accent);
	color: var(--nelios-offer-accent);
}

/* Carousel column --------------------------------------------------------- */
.nelios-offers-related__carousel {
	flex: 1 1 auto;
	min-width: 0;
}

.nelios-offers-related__track {
	position: relative;
	display: flex;
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.nelios-offers-related__track::-webkit-scrollbar {
	display: none;
}

.nelios-offers-related__card {
	position: relative;
	flex: 0 0 calc(50% - 30px);
	scroll-snap-align: start;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	display: block;
	text-decoration: none;
}

.nelios-offers-related__card img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.nelios-offers-related__card:hover img {
	transform: scale(1.05);
}

.nelios-offers-related__card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0) 55%);
}

.nelios-offers-related__card-body {
	position: absolute;
	inset: auto 0 0 0;
	z-index: 1;
	padding: 28px 24px;
	color: #fff;
}

.nelios-offers-related__card-title {
	margin: 0;
	font-family: var(--nelios-offer-heading-font);
	font-weight: 400;
	font-size: 22px;
	line-height: 1.25;
	color: #fff;
}

/* Controls ---------------------------------------------------------------- */
.nelios-offers-related__controls {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 32px;
}

.nelios-offers-related__arrow {
	width: 44px;
	height: 44px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: transparent;
	color: var(--nelios-offer-heading);
	cursor: pointer;
	transition: color 0.2s ease, opacity 0.2s ease;
}

.nelios-offers-related__arrow:hover:not(:disabled),
.nelios-offers-related__arrow:focus-visible:not(:disabled) {
	color: var(--nelios-offer-accent);
}

.nelios-offers-related__arrow:disabled {
	opacity: 0.35;
	cursor: default;
}

.nelios-offers-related__counter {
	font-family: var(--nelios-offer-body-font);
	font-size: 13px;
	letter-spacing: 1px;
	color: var(--nelios-offer-text);
}

@media (max-width: 1200px) {
	.nelios-offers-related {
		padding: 64px 40px;
		gap: 40px;
	}
}

@media (max-width: 900px) {
	.nelios-offers-related {
		flex-direction: column;
		align-items: stretch;
		padding: 40px 20px;
		gap: 32px;
	}

	.nelios-offers-related__intro {
		flex-basis: auto;
		max-width: 100%;
	}

	.nelios-offers-related__card {
		flex-basis: 82%;
	}

	.nelios-offers-related__controls {
		justify-content: space-between;
	}
}

/* Responsive (single offer) ----------------------------------------------- */
@media (max-width: 1200px) {
	.nelios-offer {
		padding: 64px 40px;
	}

	.nelios-offer__photo {
		margin-bottom: 64px;
	}

	.nelios-offer__intro {
		gap: 48px;
	}

	.nelios-offer__terms {
		flex-basis: 420px;
		width: 420px;
	}
}

@media (max-width: 900px) {
	.nelios-offer-hero {
		min-height: 300px;
	}

	.nelios-offer {
		padding: 40px 20px;
	}

	.nelios-offer__intro {
		flex-direction: column;
	}

	.nelios-offer__details {
		padding: 0;
		gap: 24px;
	}

	.nelios-offer__terms {
		flex-basis: auto;
		width: 100%;
		padding: 32px 24px;
		gap: 32px;
	}

	.nelios-offer__heading {
		font-size: 28px;
	}
}
