.yb-single {
	--yb-ink: #101c32;
	--yb-gold: #cda96b;
	--yb-line: rgba(16, 28, 50, .13);
	--yb-surface: #f6f4ef;
}

.yb-single-hero {
	position: relative;
	min-height: clamp(340px, 52vw, 680px);
	display: flex;
	align-items: flex-end;
	background: var(--yb-ink) center/cover no-repeat;
	overflow: hidden;
}

.yb-single-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(6, 15, 30, .08) 20%, rgba(6, 15, 30, .88) 100%);
}

.yb-single-hero__inner,
.yb-single__container {
	width: min(1240px, calc(100% - 40px));
	margin-inline: auto;
}

.yb-single-hero__inner {
	position: relative;
	z-index: 1;
	padding: clamp(70px, 10vw, 130px) 0 clamp(48px, 7vw, 90px);
	color: #fff;
}

.yb-single-hero__type,
.yb-single-booking__header > span {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .18em;
	color: var(--yb-gold);
}

.yb-single-hero h1 {
	max-width: 900px;
	margin: 10px 0 12px;
	font-size: clamp(40px, 6.5vw, 86px);
	font-weight: 500;
	line-height: 1.02;
}

.yb-single-hero p { margin: 0; font-size: 16px; opacity: .82; }
.yb-single__container { padding: clamp(48px, 7vw, 96px) 0; }

.yb-single__overview {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(320px, .75fr);
	gap: clamp(32px, 5vw, 72px);
	align-items: start;
}

.yb-single-gallery {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.yb-single-gallery__item {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--yb-surface);
}

.yb-single-gallery__item.is-featured { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
.yb-single-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
.yb-single-gallery__placeholder { min-height: 420px; grid-column: 1 / -1; background: var(--yb-surface); }

.yb-single-summary {
	position: sticky;
	top: 105px;
	padding: clamp(28px, 4vw, 48px);
	border: 1px solid var(--yb-line);
	background: #fff;
}

.yb-single-summary__badge {
	display: inline-flex;
	padding: 6px 10px;
	margin-bottom: 18px;
	background: var(--yb-ink);
	color: #fff;
	font-size: 11px;
	letter-spacing: .08em;
}

.yb-single-summary__heading { display: flex; align-items: flex-start; gap: 13px; margin: 0 0 20px; }
.yb-single-summary__heading h2 { margin: 0; font-size: clamp(28px, 3vw, 42px); font-weight: 500; line-height: 1.15; }
.yb-single-summary__icon { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; color: var(--yb-gold); border: 1px solid var(--yb-line); border-radius: 50%; }
.yb-single-summary__icon svg { display: block; max-width: 28px; max-height: 28px; }
.yb-single-summary__excerpt { color: #5d6572; line-height: 1.75; }
.yb-single-summary__price { display: flex; flex-direction: column; padding: 22px 0; margin: 22px 0 0; border-top: 1px solid var(--yb-line); }
.yb-single-summary__price small { margin-bottom: 4px; color: #727986; }
.yb-single-summary__price strong { color: var(--yb-gold); font-size: 26px; }

.yb-single-facts { margin: 0; }
.yb-single-facts > div { display: grid; grid-template-columns: minmax(95px, .8fr) 1.4fr; gap: 16px; padding: 13px 0; border-top: 1px solid var(--yb-line); }
.yb-single-facts dt { color: #777e89; }
.yb-single-facts dd { margin: 0; text-align: right; font-weight: 600; }

.yb-single-section { padding-top: clamp(48px, 7vw, 88px); }
.yb-single-section > h2,
.yb-single-booking__header h2 { margin: 0 0 28px; font-size: clamp(28px, 4vw, 50px); font-weight: 500; }
.yb-single-description__content { max-width: 900px; font-size: 17px; line-height: 1.85; }
.yb-single-description__content > :first-child { margin-top: 0; }

.yb-single-details__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.yb-single-details__card { padding: 28px; background: var(--yb-surface); color: var(--yb-ink)}
.yb-single-details__card h3 { margin: 0 0 18px; font-size: 20px; }
.yb-single-details__card ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.yb-single-details__card li { position: relative; padding-left: 20px; }
.yb-single-details__card li::before { content: ''; position: absolute; left: 0; top: .65em; width: 7px; height: 7px; border-radius: 50%; background: var(--yb-gold); }
.yb-single-booking__header { margin-bottom: 32px; }

@media (max-width: 900px) {
	.yb-single__overview { grid-template-columns: 1fr; }
	.yb-single-summary { position: static; }
}

@media (max-width: 600px) {
	.yb-single-hero__inner,
	.yb-single__container { width: min(100% - 28px, 1240px); }
	.yb-single-hero { min-height: 380px; }
	.yb-single-gallery { gap: 8px; }
	.yb-single-gallery__placeholder { min-height: 300px; }
	.yb-single-summary { padding: 24px 20px; }
	.yb-single-details__grid { grid-template-columns: 1fr; }
	.yb-single-details__card { padding: 22px 20px; }
}
