/* =============================================================================
   place.css - страницата на един обект (/hotel/{slug}-{id} и другите видове).

   Стилът е капсулиран под .pv. Всички правила са с ПОНЕ ДВА класа нарочно:
   лейаутът вкарва този файл през @yield('head'), тоест ПРЕДИ main.css, а
   main.css има правила от вида ".content-wrapper h1" (0,1,1). ".pv .pv-h1"
   е (0,2,0) и печели без !important.

   Палитрата е същата като в destination.css - двете страници са една пътека.
   ========================================================================== */

.content-wrapper .pv
{
	--pv-ink: #2A2F38;
	--pv-ink-2: #4A5160;
	--pv-mute: #7A8290;
	--pv-line: #ECEEF2;
	--pv-line-2: #F0F2F5;
	--pv-fill: #F3F4F7;
	--pv-accent: #ff296c;
	--pv-accent-d: #e01f5c;
	--pv-accent-s: #FDEAF1;
	--pv-good: #1FA05C;
	--pv-good-s: #EDF9F2;
	--pv-dark: #232833;

	max-width: 1440px;
	margin: 0 auto;
	padding: 0 24px 180px; /* .footer е с margin-top:-140px - оставяме му въздух */
	text-align: left;      /* .content-wrapper центрира всичко */
	font-family: 'Manrope', 'Roboto', sans-serif;
	color: var(--pv-ink);
	box-sizing: border-box;
}

.content-wrapper .pv *,
.content-wrapper .pv *::before,
.content-wrapper .pv *::after { box-sizing: border-box; }

.content-wrapper .pv a { color: var(--pv-accent); text-decoration: none; }
.content-wrapper .pv a:hover { color: var(--pv-accent-d); }

/* Трохите идват от partials.breadcrumbs заедно с BreadcrumbList schema.
   Разметката се стилизира от main.css - тук само се сверява палитрата. */
.content-wrapper .pv .breadcrumbs { margin: 4px 0 18px; }
.content-wrapper .pv .breadcrumbs li a:hover { color: var(--pv-accent); }

/* --- Шапка ----------------------------------------------------------------- */
.content-wrapper .pv-head
{
	display: flex;
	gap: 24px;
	align-items: flex-start;
	flex-wrap: wrap;
	margin-bottom: 28px;
}

.content-wrapper .pv-shot
{
	position: relative;
	width: 392px;
	height: 220px;
	flex-shrink: 0;
	background: #E9EBEF;
	border-radius: 14px;
	overflow: hidden;
}

.content-wrapper .pv-shot-img
{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Обект без снимка - спокойно поле с вида му, вместо разпънато лого. */
.content-wrapper .pv-shot-ph
{
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 12px;
	text-align: center;
	background: linear-gradient(160deg, #EEF0F4 0%, #E4E7EC 100%);
	color: #9AA1AC;
	font-size: 13px;
	font-weight: 700;
}

/* Зелената значка: "най-ниска цена досега" или "с X% под обичайната". */
.content-wrapper .pv-claim
{
	position: absolute;
	top: 14px;
	left: 14px;
	background: var(--pv-good);
	color: #fff;
	font-size: 12.5px;
	font-weight: 800;
	border-radius: 999px;
	padding: 6px 14px;
	pointer-events: none;
}

.content-wrapper .pv a.pv-shot-more
{
	position: absolute;
	bottom: 12px;
	right: 12px;
	background: rgba(30,34,43,0.78);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	border-radius: 999px;
	padding: 6px 14px;
}

.content-wrapper .pv a.pv-shot-more:hover { background: var(--pv-accent); color: #fff; }

.content-wrapper .pv-head-body
{
	flex: 1;
	min-width: 280px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.content-wrapper .pv-title
{
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.content-wrapper .pv-h1
{
	margin: 0;
	font-size: 27px;
	font-weight: 800;
	letter-spacing: -0.4px;
	line-height: 1.25;
	color: var(--pv-ink);
	text-align: left;
	text-transform: none; /* main.css вдига h1 в главни букви */
}

.content-wrapper .pv-h2
{
	margin: 0 0 16px;
	font-size: 20px;
	font-weight: 800;
	color: var(--pv-ink);
	text-align: left;
	text-transform: none;
}

/* Оценката от Booking. Показва се само когато places.booking_rating е
   попълнена - празна значка е по-лошо от липсваща. */
.content-wrapper .pv-rating
{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--pv-good-s);
	border-radius: 999px;
	padding: 5px 12px 5px 5px;
}

.content-wrapper .pv-rating-n
{
	background: var(--pv-good);
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	border-radius: 999px;
	padding: 3px 9px;
}

.content-wrapper .pv-rating-w { font-size: 12.5px; font-weight: 700; color: #177A46; }

.content-wrapper .pv-where
{
	font-size: 14.5px;
	color: var(--pv-mute);
	font-weight: 600;
	margin-top: -6px;
}

.content-wrapper .pv-stats { display: flex; gap: 10px; flex-wrap: wrap; }

.content-wrapper .pv-stat
{
	background: #fff;
	border: 1px solid var(--pv-line);
	border-radius: 12px;
	padding: 12px 18px;
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.content-wrapper .pv-stat-k { font-size: 12px; color: var(--pv-mute); font-weight: 600; }
.content-wrapper .pv-stat-v { font-size: 20px; font-weight: 800; color: var(--pv-ink); }
.content-wrapper .pv-stat-v.is-accent { color: var(--pv-accent); }
.content-wrapper .pv-stat-v sup { font-size: 0.55em; top: -0.55em; }

.content-wrapper .pv-since { font-size: 13px; color: var(--pv-mute); }

/* --- Галерия ----------------------------------------------------------------
   Разгъва се от връзката върху голямата снимка (:target). Без JavaScript:
   страницата се раздава от кеш и няма собствени скриптове. */
.content-wrapper .pv-shots
{
	display: none;
	background: #fff;
	border: 1px solid var(--pv-line);
	border-radius: 16px;
	padding: 22px 26px;
	margin-bottom: 24px;
	scroll-margin-top: 120px;
}

.content-wrapper .pv-shots:target { display: block; }

.content-wrapper .pv-shots-head
{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 14px;
}

.content-wrapper .pv a.pv-shots-close { font-size: 13px; font-weight: 700; }

.content-wrapper .pv-shots-grid
{
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 10px;
}

.content-wrapper .pv a.pv-shots-a
{
	display: block;
	height: 110px;
	border-radius: 10px;
	overflow: hidden;
	background: #E9EBEF;
}

.content-wrapper .pv-shots-a img { width: 100%; height: 100%; object-fit: cover; display: block; }
.content-wrapper .pv a.pv-shots-a:hover { box-shadow: 0 4px 14px rgba(255,41,108,0.18); }

/* --- Решетката --------------------------------------------------------------- */
.content-wrapper .pv-grid
{
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 28px;
	align-items: start;
}

.content-wrapper .pv-col
{
	display: flex;
	flex-direction: column;
	gap: 24px;
	min-width: 0;
}

.content-wrapper .pv-aside
{
	position: sticky;
	top: 24px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* --- Бяла карта -------------------------------------------------------------- */
.content-wrapper .pv-box
{
	background: #fff;
	border: 1px solid var(--pv-line);
	border-radius: 16px;
	padding: 24px 26px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.content-wrapper .pv-box.is-flush { padding: 0; gap: 0; overflow: hidden; }

.content-wrapper .pv-box-h
{
	margin: 0;
	font-size: 18px;
	font-weight: 800;
	color: var(--pv-ink);
	text-align: left;
	text-transform: none;
}

.content-wrapper .pv-box-t
{
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	color: var(--pv-mute);
	text-transform: uppercase;
	text-align: left;
	margin: 0;
}

.content-wrapper .pv-box-p
{
	margin: 0;
	font-size: 13.5px;
	color: var(--pv-ink-2);
	line-height: 1.5;
}

.content-wrapper .pv-box-top
{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.content-wrapper .pv-box-note { font-size: 13px; color: var(--pv-mute); }

.content-wrapper .pv-fine
{
	margin: 2px 0 0;
	font-size: 12.5px;
	color: var(--pv-mute);
	line-height: 1.5;
}

.content-wrapper .pv-empty
{
	margin: 0;
	font-size: 14px;
	color: var(--pv-ink-2);
	line-height: 1.6;
}

/* --- Активни оферти ---------------------------------------------------------- */
.content-wrapper .pv-offers { display: flex; flex-direction: column; }

.content-wrapper .pv-offer
{
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 14px 0;
	border-bottom: 1px solid var(--pv-line-2);
}

.content-wrapper .pv-offer:last-child { border-bottom: none; padding-bottom: 0; }

.content-wrapper .pv-offer-main { flex: 1; min-width: 0; }

.content-wrapper .pv a.pv-offer-a
{
	font-size: 14.5px;
	font-weight: 700;
	color: var(--pv-ink);
	line-height: 1.4;
}

.content-wrapper .pv a.pv-offer-a:hover { color: var(--pv-accent); }

.content-wrapper .pv-offer-meta { font-size: 12.5px; color: var(--pv-mute); margin-top: 3px; }

.content-wrapper .pv-offer-old { font-size: 13px; color: #9AA1AC; flex-shrink: 0; }

.content-wrapper .pv a.pv-offer-p
{
	flex-shrink: 0;
	background: var(--pv-accent-s);
	color: var(--pv-accent);
	font-size: 14px;
	font-weight: 800;
	border-radius: 999px;
	padding: 9px 18px;
	white-space: nowrap;
}

.content-wrapper .pv a.pv-offer-p:hover { background: var(--pv-accent); color: #fff; }
.content-wrapper .pv-offer-p sup { font-size: 0.6em; top: -0.5em; }

/* --- Ценова история ----------------------------------------------------------- */
.content-wrapper .pv-verdict
{
	margin: 0;
	font-size: 14px;
	color: #3A4150;
	background: var(--pv-good-s);
	border-radius: 10px;
	padding: 12px 16px;
	line-height: 1.5;
}

.content-wrapper .pv-verdict strong { color: var(--pv-good); }

.content-wrapper .pv-chart
{
	display: flex;
	align-items: flex-end;
	gap: 8px;
	height: 170px;
	margin-top: 6px;
}

.content-wrapper .pv-bar-col
{
	flex: 1;
	min-width: 0;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
}

.content-wrapper .pv-bar-v { font-size: 11px; font-weight: 700; color: var(--pv-ink-2); }

.content-wrapper .pv-bar
{
	width: 100%;
	border-radius: 6px 6px 0 0;
	background: #F5B8CC;
}

.content-wrapper .pv-bar.is-now { background: var(--pv-accent); }
.content-wrapper .pv-bar.is-none { background: var(--pv-line); }

.content-wrapper .pv-bar-m
{
	font-size: 10.5px;
	color: #9AA1AC;
	font-weight: 600;
	white-space: nowrap;
}

/* --- Удобства ------------------------------------------------------------------ */
.content-wrapper .pv-amen
{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px 24px;
}

.content-wrapper .pv-amen-g { display: flex; flex-direction: column; gap: 8px; }

.content-wrapper .pv-amen-k
{
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	color: var(--pv-mute);
	text-transform: uppercase;
}

.content-wrapper .pv-tags { display: flex; flex-wrap: wrap; gap: 6px; }

.content-wrapper .pv-tag
{
	font-size: 12.5px;
	font-weight: 600;
	color: var(--pv-ink-2);
	background: var(--pv-fill);
	border-radius: 999px;
	padding: 5px 12px;
}

/* --- Карта ---------------------------------------------------------------------- */
.content-wrapper .pv-map-head { padding: 22px 26px 14px; display: flex; flex-direction: column; gap: 4px; }
.content-wrapper .pv-map { width: 100%; height: 300px; border: none; display: block; }

/* --- Наблизо ---------------------------------------------------------------------- */
.content-wrapper .pv-near-grid
{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}

.content-wrapper .pv a.pv-near-a
{
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--pv-line);
	border-radius: 12px;
	overflow: hidden;
	color: var(--pv-ink);
}

.content-wrapper .pv a.pv-near-a:hover
{
	border-color: var(--pv-accent);
	box-shadow: 0 4px 14px rgba(255,41,108,0.10);
	color: var(--pv-ink);
}

.content-wrapper .pv-near-media
{
	position: relative;
	height: 120px;
	flex-shrink: 0;
	background: #E9EBEF;
}

.content-wrapper .pv-near-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.content-wrapper .pv-near-ph
{
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(160deg, #EEF0F4 0%, #E4E7EC 100%);
	color: #9AA1AC;
	font-size: 12.5px;
	font-weight: 700;
}

.content-wrapper .pv-near-body { display: flex; flex-direction: column; gap: 4px; padding: 12px 16px; }

.content-wrapper .pv-near-n { font-size: 14px; font-weight: 700; line-height: 1.35; }
.content-wrapper .pv-near-m { font-size: 12.5px; color: var(--pv-mute); }

/* --- Най-добра оферта (страничната колона) ------------------------------------------ */
.content-wrapper .pv-price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }

.content-wrapper .pv-price-v { font-size: 34px; font-weight: 800; color: var(--pv-accent); line-height: 1.1; }
.content-wrapper .pv-price-v sup { font-size: 0.5em; top: -0.6em; }
.content-wrapper .pv-price-n { font-size: 13.5px; color: var(--pv-mute); }

.content-wrapper .pv a.pv-cta
{
	display: block;
	text-align: center;
	background: var(--pv-accent);
	color: #fff;
	font-size: 16px;
	font-weight: 800;
	border-radius: 999px;
	padding: 14px;
}

.content-wrapper .pv a.pv-cta:hover { background: var(--pv-accent-d); color: #fff; }

.content-wrapper .pv a.pv-cta.is-quiet
{
	background: #fff;
	border: 1px solid var(--pv-line);
	color: var(--pv-ink-2);
	font-size: 14px;
	padding: 12px;
}

.content-wrapper .pv a.pv-cta.is-quiet:hover { border-color: var(--pv-accent); color: var(--pv-accent); }

.content-wrapper .pv-rows
{
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 8px 14px;
	font-size: 13.5px;
	border-top: 1px solid var(--pv-line-2);
	padding-top: 14px;
}

.content-wrapper .pv-rows span { color: var(--pv-mute); }
.content-wrapper .pv-rows strong { font-weight: 700; text-align: right; }
.content-wrapper .pv-rows strong.is-good { color: var(--pv-good); }

/* --- Booking ------------------------------------------------------------------------- */
.content-wrapper .pv-bk-head
{
	background: #003580;
	color: #fff;
	padding: 14px 24px;
	font-size: 14px;
	font-weight: 700;
}

.content-wrapper .pv-bk-head strong { font-weight: 800; }
.content-wrapper .pv-bk-head span { color: #6BB9F0; font-weight: 800; }

.content-wrapper .pv-bk
{
	padding: 18px 24px 22px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.content-wrapper .pv-bk-q { font-size: 13.5px; color: var(--pv-ink-2); font-weight: 600; }

.content-wrapper .pv-bk-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.content-wrapper .pv-bk-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }

.content-wrapper .pv-bk label { display: flex; flex-direction: column; gap: 5px; }
.content-wrapper .pv-bk label span { font-size: 12px; font-weight: 700; color: var(--pv-mute); }

.content-wrapper .pv-bk input,
.content-wrapper .pv-bk select
{
	border: 1px solid #DDE1E8;
	border-radius: 10px;
	padding: 9px 10px;
	font-size: 13.5px;
	font-family: inherit;
	color: var(--pv-ink);
	background: #fff;
	width: 100%;
	min-width: 0;
}

.content-wrapper .pv-bk-btn
{
	background: #0071C2;
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 12px;
	font-size: 14.5px;
	font-weight: 800;
	font-family: inherit;
	cursor: pointer;
}

.content-wrapper .pv-bk-btn:hover { background: #003580; }

.content-wrapper .pv-bk-fine { font-size: 12px; color: #9AA1AC; text-align: center; }

/* --- Абонамент -------------------------------------------------------------------------- */
.content-wrapper .pv-sub
{
	display: flex;
	background: var(--pv-fill);
	border-radius: 999px;
	padding: 4px;
}

.content-wrapper .pv-sub-input
{
	flex: 1;
	min-width: 0;
	border: none;
	outline: none;
	background: transparent;
	padding: 8px 14px;
	font-size: 13.5px;
	font-family: inherit;
	color: var(--pv-ink);
}

.content-wrapper .pv-sub-btn
{
	background: var(--pv-dark);
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 8px 18px;
	font-size: 13px;
	font-weight: 700;
	font-family: inherit;
	cursor: pointer;
}

.content-wrapper .pv-sub-btn:hover { background: var(--pv-accent); }

/* --- Други места в града ------------------------------------------------------------------ */
.content-wrapper .pv-others { display: flex; flex-direction: column; }

.content-wrapper .pv a.pv-other
{
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px solid var(--pv-line-2);
	color: var(--pv-ink);
}

.content-wrapper .pv a.pv-other:last-child { border-bottom: none; }
.content-wrapper .pv a.pv-other:hover .pv-other-n { color: var(--pv-accent); }

.content-wrapper .pv-other-media
{
	width: 56px;
	height: 42px;
	flex-shrink: 0;
	background: #E9EBEF;
	border-radius: 8px;
	overflow: hidden;
}

.content-wrapper .pv-other-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.content-wrapper .pv-other-body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.content-wrapper .pv-other-n { font-size: 13.5px; font-weight: 700; }
.content-wrapper .pv-other-m { font-size: 12px; color: var(--pv-mute); font-weight: 600; }

.content-wrapper .pv a.pv-all { font-size: 13px; font-weight: 700; margin-top: 2px; }

/* --- Адаптив -------------------------------------------------------------------------------- */
@media (max-width: 1080px)
{
	.content-wrapper .pv-grid { grid-template-columns: minmax(0, 1fr); }
	.content-wrapper .pv-aside { position: static; }
	.content-wrapper .pv-shots-grid { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 720px)
{
	.content-wrapper .pv { padding: 0 14px 180px; }
	.content-wrapper .pv-shot { width: 100%; height: 200px; }
	.content-wrapper .pv-h1 { font-size: 23px; }
	.content-wrapper .pv-box { padding: 20px 18px; }
	.content-wrapper .pv-amen { grid-template-columns: 1fr; }
	.content-wrapper .pv-near-grid { grid-template-columns: 1fr 1fr; }
	.content-wrapper .pv-shots-grid { grid-template-columns: repeat(3, 1fr); }
	.content-wrapper .pv-shots-a { height: 88px; }
	.content-wrapper .pv-chart { gap: 4px; height: 150px; }
	.content-wrapper .pv-bar-m { font-size: 9px; writing-mode: vertical-rl; }

	.content-wrapper .pv-offer { flex-wrap: wrap; gap: 10px; }
	.content-wrapper .pv-offer-main { flex-basis: 100%; }
}

/* --- Вписване в лейаута -----------------------------------------------------
   .mainmenu-wrapper носи декоративен зимен фон (winter-min.jpg, 410px) - той
   е за началната страница и зад шапката на морски хотел се вижда планина под
   сняг. Този файл се зарежда само на страницата на обект, затова фонът тук се
   маха, а височината се смъква до 300px: .content-wrapper е издърпан с
   top:-170px, тоест шапката застава на 25px под менюто, както в макета.
   Селекторът започва с body, защото файлът влиза ПРЕДИ main.css. */
body .mainmenu-wrapper
{
	background: #F6F7F9;
	height: 300px;
}
