/* Bellavista Cazare — stil public */
:root {
	--bvc-accent: #b08d57;
	--bvc-ink: #1f1d1a;
	--bvc-muted: #6f6a63;
	--bvc-line: #e7e2da;
	--bvc-soft: #f7f4ef;
	--bvc-bg: #fff;
	--bvc-busy: #f3dede;
	--bvc-busy-ink: #a35a5a;
	--bvc-radius: 14px;
}

.bvc-list-wrap, .bvc-booking, .bvc-details, .bvc-single { color: var(--bvc-ink); box-sizing: border-box; }
.bvc-list-wrap *, .bvc-booking *, .bvc-details * { box-sizing: border-box; }
.bvc-hidden { display: none !important; }
[hidden] { display: none !important; }

/* ---------- Butoane ---------- */
.bvc-btn, .bvc-booking .bvc-submit {
	display: inline-flex; align-items: center; justify-content: center; gap: .4em;
	background: var(--bvc-ink); color: #fff !important; border: 0; border-radius: 999px;
	padding: .85em 1.6em; font-weight: 600; letter-spacing: .02em; line-height: 1.1;
	text-decoration: none !important; cursor: pointer; transition: background .2s, transform .2s, opacity .2s;
	font-size: 15px; text-transform: none;
}
.bvc-btn:hover, .bvc-booking .bvc-submit:hover:not(:disabled) { background: var(--bvc-accent); transform: translateY(-1px); }
.bvc-booking .bvc-submit { width: 100%; padding: 1.05em 1.6em; font-size: 16px; margin-top: 4px; }
.bvc-booking .bvc-submit:disabled { opacity: .35; cursor: not-allowed; }
.bvc-booking .bvc-submit.is-loading { opacity: .6; pointer-events: none; }

/* ---------- Căutare ---------- */
.bvc-search {
	display: grid; grid-template-columns: minmax(220px, 2fr) minmax(76px, 1fr) minmax(76px, 1fr) auto; gap: 14px; align-items: end;
	background: var(--bvc-bg); border: 1px solid var(--bvc-line); border-radius: var(--bvc-radius);
	padding: 18px 20px; margin: 0 0 18px; box-shadow: 0 10px 30px rgba(31, 29, 26, .06);
}
.bvc-field label { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--bvc-muted); margin: 0 0 6px; font-weight: 600; }
.bvc-field select, .bvc-field input[type="text"] { min-width: 0;
	width: 100%; height: 48px; border: 1px solid var(--bvc-line); border-radius: 10px; padding: 0 14px;
	background: #fff; color: var(--bvc-ink); font-size: 15px; margin: 0; box-shadow: none;
}
.bvc-field select:focus, .bvc-field input:focus { outline: 2px solid var(--bvc-accent); outline-offset: 1px; border-color: transparent; }
.bvc-search-range { cursor: pointer; }
.bvc-search .bvc-btn { height: 48px; white-space: nowrap; }
.bvc-search-sum { color: var(--bvc-muted); margin: 0 0 22px; font-size: 15px; }
.bvc-shake { animation: bvcShake .4s; border-color: var(--bvc-busy-ink) !important; }
@keyframes bvcShake { 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }

/* ---------- Grilă camere ---------- */
/* Numărul de coloane = maxim „coloane”, dar cardurile nu scad sub ~290px (containere înguste => mai puține coloane). */
.bvc-grid { --bvc-cols: 3; --bvc-gap: 28px; display: grid; gap: var(--bvc-gap);
	grid-template-columns: repeat(auto-fill, minmax(max(290px, calc((100% - (var(--bvc-cols) - 1) * var(--bvc-gap)) / var(--bvc-cols))), 1fr)); }
.bvc-cols-1 { --bvc-cols: 1; } .bvc-cols-2 { --bvc-cols: 2; } .bvc-cols-4 { --bvc-cols: 4; }
.bvc-foot .bvc-btn { white-space: nowrap; }
.bvc-card {
	background: var(--bvc-bg); border: 1px solid var(--bvc-line); border-radius: var(--bvc-radius);
	overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .25s, transform .25s;
}
.bvc-card:hover { box-shadow: 0 18px 40px rgba(31, 29, 26, .10); transform: translateY(-2px); }
.bvc-card.is-off { opacity: .6; }
.bvc-card.is-off:hover { transform: none; }

.bvc-slider { position: relative; aspect-ratio: 4 / 3; background: var(--bvc-soft); }
.bvc-track { display: flex; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.bvc-track::-webkit-scrollbar { display: none; }
.bvc-slide { flex: 0 0 100%; height: 100%; margin: 0; scroll-snap-align: start; }
.bvc-slide a { display: block; height: 100%; cursor: zoom-in; }
.bvc-slide img, .bvc-noimg img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; display: block; border-radius: 0; margin: 0; }
.bvc-noimg { height: 100%; }
.bvc-nav {
	position: absolute; top: 50%; transform: translateY(-50%); width: 38px; height: 38px; border-radius: 50%;
	border: 0; background: rgba(255, 255, 255, .92); color: var(--bvc-ink); font-size: 24px; line-height: 1;
	display: flex; align-items: center; justify-content: center; cursor: pointer; opacity: 0; transition: opacity .2s;
	padding: 0 0 3px; box-shadow: 0 2px 10px rgba(0, 0, 0, .15);
}
.bvc-prev { left: 10px; } .bvc-next { right: 10px; }
.bvc-slider:hover .bvc-nav, .bvc-nav:focus-visible { opacity: 1; }
.bvc-dots { position: absolute; bottom: 10px; left: 0; right: 0; display: flex; justify-content: center; gap: 6px; pointer-events: none; }
.bvc-dots span { width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, .55); transition: all .2s; }
.bvc-dots span.on { background: #fff; width: 16px; border-radius: 3px; }
.bvc-count { position: absolute; right: 10px; bottom: 8px; font-size: 11px; color: #fff; background: rgba(0, 0, 0, .45); padding: 2px 8px; border-radius: 999px; }
.bvc-badge { position: absolute; top: 12px; left: 12px; font-size: 12px; font-weight: 700; padding: 5px 11px; border-radius: 999px; letter-spacing: .03em; }
.bvc-ok { background: #e7f3ea; color: #2f6b3f; }
.bvc-no { background: var(--bvc-busy); color: var(--bvc-busy-ink); }

.bvc-body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.bvc-title { margin: 0; font-size: 21px; line-height: 1.25; }
.bvc-title a { color: inherit; text-decoration: none; }
.bvc-title a:hover { color: var(--bvc-accent); }
.bvc-excerpt { color: var(--bvc-muted); font-size: 14.5px; line-height: 1.55; }
.bvc-facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 14px; color: var(--bvc-muted); }
.bvc-facts li { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.bvc-ico { width: 17px; height: 17px; color: var(--bvc-accent); flex: none; }
.bvc-amen { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.bvc-amen li { margin: 0; font-size: 13px; padding: 5px 11px; border-radius: 999px; background: var(--bvc-soft); color: var(--bvc-ink); }
.bvc-foot { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--bvc-line); display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.bvc-price { font-size: 20px; font-weight: 700; color: var(--bvc-ink); }
.bvc-price del { opacity: .5; font-weight: 400; font-size: .8em; }
.bvc-price ins { text-decoration: none; }
.bvc-from, .bvc-per { font-size: 13px; font-weight: 400; color: var(--bvc-muted); }
.bvc-empty { padding: 30px; text-align: center; background: var(--bvc-soft); border-radius: var(--bvc-radius); }

/* ---------- Detalii pe pagina camerei ---------- */
.bvc-details { margin: 14px 0 22px; display: grid; gap: 14px; }

/* ---------- Formular rezervare ---------- */
.bvc-booking {
	background: var(--bvc-bg); border: 1px solid var(--bvc-line); border-radius: var(--bvc-radius);
	padding: 22px; margin: 10px 0 24px; box-shadow: 0 14px 36px rgba(31, 29, 26, .07); max-width: 760px;
}
.bvc-booking.is-loading .bvc-calendar { opacity: .4; pointer-events: none; }
.bvc-form { margin: 0; }

.bvc-calendar { display: flex; justify-content: center; transition: opacity .2s; }
.bvc-calendar .bvc-range { display: none; }
.bvc-calendar .flatpickr-calendar.inline { box-shadow: none; border: 0; width: 100% !important; max-width: 100%; top: 0; }
.bvc-calendar .flatpickr-calendar .flatpickr-innerContainer, .bvc-calendar .flatpickr-calendar .flatpickr-rContainer { width: 100%; }
.bvc-calendar .flatpickr-months, .bvc-calendar .flatpickr-weekdays { width: 100%; }
.bvc-calendar .flatpickr-days { width: 100% !important; border: 0; }
.bvc-calendar .dayContainer { width: 100%; min-width: 0; max-width: none; padding: 0 4px; justify-content: flex-start; }
.bvc-calendar .flatpickr-weekdaycontainer { padding: 0 4px; }

.bvc-calendar .flatpickr-month { height: 44px; }
.bvc-calendar .flatpickr-current-month { font-size: 16px; padding-top: 10px; }
.bvc-calendar .flatpickr-current-month .flatpickr-monthDropdown-months { font-weight: 600; }
.bvc-calendar .flatpickr-months .flatpickr-prev-month, .bvc-calendar .flatpickr-months .flatpickr-next-month { top: 4px; }
.bvc-calendar .flatpickr-months .flatpickr-prev-month:hover svg, .bvc-calendar .flatpickr-months .flatpickr-next-month:hover svg { fill: var(--bvc-accent); }
.bvc-calendar .flatpickr-day.bvc-booked, .bvc-calendar .flatpickr-day.bvc-booked.flatpickr-disabled {
	background: var(--bvc-busy); color: var(--bvc-busy-ink); text-decoration: line-through; border-color: transparent;
}
.bvc-calendar .flatpickr-day.bvc-booked:not(.flatpickr-disabled) { text-decoration: none; background: linear-gradient(135deg, #fff 50%, var(--bvc-busy) 50%); color: var(--bvc-ink); }
.bvc-calendar .flatpickr-day.bvc-short:not(.flatpickr-disabled) { color: #b9b3aa; }
.bvc-calendar .flatpickr-day.selected, .bvc-calendar .flatpickr-day.startRange, .bvc-calendar .flatpickr-day.endRange,
.bvc-calendar .flatpickr-day.selected:hover, .bvc-calendar .flatpickr-day.startRange:hover, .bvc-calendar .flatpickr-day.endRange:hover {
	background: var(--bvc-ink); border-color: var(--bvc-ink); color: #fff; text-decoration: none;
}
.bvc-calendar .flatpickr-day.inRange, .bvc-calendar .flatpickr-day.inRange:hover {
	background: color-mix(in srgb, var(--bvc-accent) 22%, #fff); border-color: transparent; box-shadow: none; color: var(--bvc-ink);
}
.bvc-calendar .flatpickr-day.today { border-color: var(--bvc-accent); }
.bvc-calendar .flatpickr-day:hover:not(.flatpickr-disabled):not(.selected) { background: var(--bvc-soft); border-color: var(--bvc-line); }
.bvc-calendar .flatpickr-day.flatpickr-disabled:not(.bvc-booked) { color: #cfcac2; }
.bvc-calendar .flatpickr-day.prevMonthDay, .bvc-calendar .flatpickr-day.nextMonthDay { visibility: hidden; }
.bvc-calendar .flatpickr-months .flatpickr-month { color: var(--bvc-ink); fill: var(--bvc-ink); }
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) { box-shadow: none; }

.bvc-legend { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; font-size: 12.5px; color: var(--bvc-muted); margin: 8px 0 18px; }
.bvc-legend span { display: inline-flex; align-items: center; gap: 6px; }
.bvc-legend i { width: 14px; height: 14px; border-radius: 4px; display: inline-block; border: 1px solid var(--bvc-line); }
.bvc-l-free { background: #fff; } .bvc-l-busy { background: var(--bvc-busy); border-color: transparent !important; } .bvc-l-sel { background: var(--bvc-ink); border-color: transparent !important; }

.bvc-guests { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 12px; margin: 0 0 16px; padding-top: 16px; border-top: 1px solid var(--bvc-line); }

.bvc-quote { background: var(--bvc-soft); border-radius: 12px; padding: 14px 16px; margin: 0 0 14px; transition: opacity .2s; }
.bvc-quote.is-loading { opacity: .5; }
.bvc-q-row { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; font-size: 14.5px; }
.bvc-q-total { border-top: 1px solid var(--bvc-line); margin-top: 6px; padding-top: 10px; font-size: 17px; }
.bvc-q-total strong { font-size: 20px; }
.bvc-q-tax { display: block; text-align: right; color: var(--bvc-muted); font-size: 12px; }
.bvc-msg { border-radius: 10px; padding: 11px 14px; font-size: 14px; margin: 0 0 14px; }
.bvc-err { background: var(--bvc-busy); color: #7d3535; }
.bvc-policy { font-size: 13px; color: var(--bvc-muted); margin-top: 10px; border-top: 1px dashed var(--bvc-line); padding-top: 10px; }
.bvc-policy p { margin: 0 0 6px; }

/* ---------- Lightbox ---------- */
.bvc-lb { position: fixed; inset: 0; background: rgba(15, 14, 12, .94); z-index: 999999; display: none; align-items: center; justify-content: center; }
.bvc-lb.on { display: flex; }
.bvc-lb img { max-width: 92vw; max-height: 86vh; object-fit: contain; border-radius: 6px; box-shadow: 0 20px 60px rgba(0, 0, 0, .5); }
.bvc-lb button { position: absolute; background: rgba(255, 255, 255, .1); color: #fff; border: 0; width: 50px; height: 50px; border-radius: 50%; font-size: 32px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0 0 4px; }
.bvc-lb button:hover { background: rgba(255, 255, 255, .22); }
.bvc-lb-x { top: 18px; right: 18px; }
.bvc-lb-p { left: 18px; top: 50%; transform: translateY(-50%); }
.bvc-lb-n { right: 18px; top: 50%; transform: translateY(-50%); }
.bvc-lb-c { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); color: #fff; font-size: 13px; opacity: .8; }
html.bvc-noscroll { overflow: hidden; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.bvc-search { grid-template-columns: 1fr 1fr; }
	.bvc-search .bvc-field-dates { grid-column: 1 / -1; }
	.bvc-search .bvc-btn { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
	.bvc-grid { grid-template-columns: 1fr; --bvc-gap: 20px; }
	.bvc-search { grid-template-columns: 1fr 1fr; padding: 14px; }
	.bvc-booking { padding: 16px; border-radius: 12px; }
	.bvc-nav { opacity: 1; width: 34px; height: 34px; }
	.bvc-calendar .flatpickr-day { height: 40px; line-height: 38px; }
}

/* Ziua plecării poate cădea pe o noapte ocupată — o afișăm ca selecție. */
.bvc-calendar .flatpickr-day.bvc-booked.endRange, .bvc-calendar .flatpickr-day.bvc-booked.startRange,
.bvc-calendar .flatpickr-day.bvc-booked.selected { background: var(--bvc-ink); color: #fff; text-decoration: none; border-color: var(--bvc-ink); }
.bvc-booking .bvc-reset, .bvc-booking .bvc-reset:hover, .bvc-booking .bvc-reset:focus { background: transparent !important; color: var(--bvc-muted) !important; border: 0 !important; box-shadow: none !important; padding: 4px !important; }


/* ================= Sosire / Plecare (stil Booking) ================= */
.bvc-dates { display: grid; grid-template-columns: 1fr 1fr; border: 2px solid var(--bvc-ink); border-radius: 12px; overflow: hidden; background: #fff; }
.bvc-date {
	box-sizing: border-box; cursor: pointer; display: flex; align-items: flex-start; gap: 10px; user-select: none;
	padding: 12px 14px; min-width: 0; background: #fff; color: var(--bvc-ink); transition: background .15s, box-shadow .15s; position: relative;
}
.bvc-date + .bvc-date { border-left: 1px solid var(--bvc-line); }
.bvc-date:hover { background: var(--bvc-soft); }
.bvc-date:focus-visible { outline: 2px solid var(--bvc-accent); outline-offset: -3px; }
.bvc-date.is-active { box-shadow: inset 0 -3px 0 var(--bvc-accent); background: color-mix(in srgb, var(--bvc-accent) 7%, #fff); }
.bvc-date .bvc-ico { width: 20px; height: 20px; margin-top: 2px; color: var(--bvc-accent); }
.bvc-date-txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.bvc-date-txt small { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--bvc-muted); font-weight: 700; }
.bvc-date-txt strong { font-size: 15.5px; font-weight: 700; margin: 3px 0 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #9a948b; }
.bvc-date.is-set .bvc-date-txt strong { color: var(--bvc-ink); }
.bvc-date-txt em { font-style: normal; font-size: 12px; color: var(--bvc-muted); }

.bvc-status { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 12px 2px 6px; min-height: 26px; }
.bvc-booking .bvc-tip { font-size: 14px; color: var(--bvc-muted); margin: 0; }
.bvc-booking .bvc-tip.is-nights { color: var(--bvc-ink); font-weight: 700; background: var(--bvc-soft); padding: 4px 12px; border-radius: 999px; font-size: 13.5px; }
.bvc-booking .bvc-reset, .bvc-booking .bvc-reset:hover, .bvc-booking .bvc-reset:focus {
	cursor: pointer; font-size: 13px; white-space: nowrap; flex-shrink: 0; color: var(--bvc-muted); text-decoration: underline; text-underline-offset: 3px;
}
.bvc-booking .bvc-reset:hover { color: var(--bvc-ink); }

/* Zile: bandă continuă ca la Booking, preț sub dată */
.bvc-calendar .flatpickr-day {
	max-width: none; flex: 0 0 14.2857%; height: 50px; line-height: 1; margin: 2px 0; border-radius: 8px; font-size: 14.5px;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; box-shadow: none !important; border: 1px solid transparent;
}
.bvc-calendar .bvc-dp { font-size: 10.5px; color: #3d7a4d; font-weight: 600; line-height: 1; letter-spacing: -.01em; }
.bvc-calendar .flatpickr-day.inRange { border-radius: 0; }
.bvc-calendar .flatpickr-day.startRange { border-radius: 8px 0 0 8px; }
.bvc-calendar .flatpickr-day.endRange { border-radius: 0 8px 8px 0; }
.bvc-calendar .flatpickr-day.startRange.endRange, .bvc-calendar .flatpickr-day.selected:not(.startRange):not(.endRange) { border-radius: 8px; }
.bvc-calendar .flatpickr-day.selected .bvc-dp, .bvc-calendar .flatpickr-day.startRange .bvc-dp, .bvc-calendar .flatpickr-day.endRange .bvc-dp { color: rgba(255,255,255,.85); }
.bvc-calendar .flatpickr-day.bvc-booked { text-decoration: line-through; }
.bvc-legend .bvc-l-note { color: #3d7a4d; font-weight: 600; }

@media (max-width: 420px) {
	.bvc-date { padding: 10px; gap: 6px; }
	.bvc-date .bvc-ico { display: none; }
	.bvc-date-txt strong { font-size: 14px; }
	.bvc-date-txt em { font-size: 11px; }
	.bvc-calendar .flatpickr-day { height: 46px; font-size: 14px; }
	.bvc-calendar .bvc-dp { font-size: 9.5px; }
}

/* Căutare: Sosire / Plecare */
.bvc-search .bvc-field-dates { position: relative; }
.bvc-search .bvc-sdates { border-width: 1px; border-color: var(--bvc-line); border-radius: 10px; }
.bvc-search .bvc-sdates .bvc-date { padding: 9px 12px; }
.bvc-search .bvc-sdates .bvc-date-txt strong { font-size: 15px; margin: 2px 0 1px; }
.bvc-search .bvc-search-range { position: absolute; left: 0; bottom: 0; width: 1px; height: 1px; opacity: 0; pointer-events: none; border: 0; padding: 0; }
.bvc-search { grid-template-columns: minmax(300px, 2.4fr) minmax(76px, 1fr) minmax(76px, 1fr) auto; }
.bvc-search .bvc-btn { height: auto; min-height: 48px; align-self: stretch; }
.bvc-search .bvc-field select { height: 100%; min-height: 48px; }
.bvc-search .bvc-field:not(.bvc-field-dates) { display: flex; flex-direction: column; }
.bvc-search .bvc-field:not(.bvc-field-dates) select { flex: 1; }
.flatpickr-calendar .flatpickr-day.selected, .flatpickr-calendar .flatpickr-day.startRange, .flatpickr-calendar .flatpickr-day.endRange { background: var(--bvc-ink); border-color: var(--bvc-ink); }
.flatpickr-calendar .flatpickr-day.inRange { background: color-mix(in srgb, var(--bvc-accent) 22%, #fff); border-color: transparent; box-shadow: -5px 0 0 color-mix(in srgb, var(--bvc-accent) 22%, #fff), 5px 0 0 color-mix(in srgb, var(--bvc-accent) 22%, #fff); }
.flatpickr-calendar .flatpickr-day.startRange + .endRange:not(:nth-child(7n+1)), .flatpickr-calendar .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)) { box-shadow: -10px 0 0 var(--bvc-ink); }
@media (max-width: 1024px) { .bvc-search { grid-template-columns: 1fr 1fr; } .bvc-search .bvc-field select { height: 48px; flex: none; } }

/* Căutare: rânduri flexibile, se adaptează la lățimea coloanei */
.bvc-search { display: flex; flex-wrap: wrap; align-items: flex-end; }
.bvc-search .bvc-field-dates { flex: 3 1 320px; }
.bvc-search .bvc-field:not(.bvc-field-dates) { flex: 1 1 80px; }
.bvc-search .bvc-btn { flex: 1 1 200px; border-radius: 10px; min-height: 52px; align-self: flex-end; }
.bvc-search .bvc-field:not(.bvc-field-dates) select { height: 52px; flex: none; }
.bvc-search .bvc-sdates .bvc-date { min-height: 52px; }

/* Lățime mai mare decât containerul temei (shortcode: latime="1200", latime="0" = lățimea temei) */
.bvc-list-wrap.bvc-wide {
	--bvc-w: min(var(--bvc-max, 1200px), calc(100vw - 32px));
	width: var(--bvc-w) !important; max-width: none !important;
	margin-left: calc((100% - var(--bvc-w)) / 2) !important; margin-right: calc((100% - var(--bvc-w)) / 2) !important;
}
.bvc-wide .bvc-search { padding: 22px 24px; }

.bvc-list-wrap, .bvc-booking, .bvc-search, .bvc-card, .bvc-date-txt { text-align: left; }
.bvc-list-wrap.bvc-wide { box-sizing: border-box; }

/* Pagina camerei */
.bvc-room-page div.product { max-width: 1200px; margin-left: auto !important; margin-right: auto !important; }
.bvc-room-page .bvc-booking { max-width: none; }
.bvc-q-note { background: #fff7e6; color: #7a5200; border-radius: 8px; padding: 8px 10px; font-size: 13px; margin: 0 0 8px; }

/* ================= Calendare separate Sosire / Plecare ================= */
.bvc-pop-input { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none; border: 0 !important; padding: 0 !important; margin: 0 !important; left: 0; bottom: 0; }
.bvc-date { position: relative; }
.flatpickr-calendar.bvc-cal-pop { border-radius: 14px; box-shadow: 0 18px 50px rgba(31, 29, 26, .22); border: 1px solid var(--bvc-line); padding: 6px 8px 10px; width: auto !important; font-family: inherit; }
.flatpickr-calendar.bvc-cal-pop::before, .flatpickr-calendar.bvc-cal-pop::after { display: none; }
.bvc-pop-head { font-weight: 700; font-size: 14px; color: var(--bvc-ink); padding: 8px 8px 4px; text-align: left; }
.bvc-cal-pop .flatpickr-months { padding-top: 2px; }
.bvc-cal-pop .flatpickr-current-month { font-size: 15px; }
.bvc-cal-pop .flatpickr-current-month .cur-month { font-weight: 700; }
.bvc-cal-pop .dayContainer { width: 308px; min-width: 308px; max-width: 308px; }
.bvc-cal-pop .flatpickr-days { width: auto !important; }
.bvc-cal-pop .flatpickr-day {
	max-width: none; width: 44px; flex: 0 0 44px; height: 46px; line-height: 1; margin: 1px 0; border-radius: 8px;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; font-size: 14px; box-shadow: none !important; border: 1px solid transparent;
}
.bvc-cal-pop .flatpickr-day.prevMonthDay, .bvc-cal-pop .flatpickr-day.nextMonthDay { visibility: hidden; }
.bvc-cal-pop .flatpickr-day:hover:not(.flatpickr-disabled) { background: var(--bvc-soft); border-color: var(--bvc-line); }
.bvc-cal-pop .flatpickr-day.flatpickr-disabled { color: #cfcac2; }
.bvc-cal-pop .flatpickr-day.bvc-booked { background: var(--bvc-busy); color: var(--bvc-busy-ink); text-decoration: line-through; }
.bvc-cal-pop .flatpickr-day.bvc-short { color: #cfcac2; }
.bvc-cal-pop .flatpickr-day.selected { background: transparent; color: inherit; border-color: transparent; }
.bvc-cal-pop .flatpickr-day.bvc-r { background: color-mix(in srgb, var(--bvc-accent) 22%, #fff); border-radius: 0; color: var(--bvc-ink); }
.bvc-cal-pop .flatpickr-day.bvc-s, .bvc-cal-pop .flatpickr-day.bvc-e,
.bvc-cal-pop .flatpickr-day.bvc-s:hover, .bvc-cal-pop .flatpickr-day.bvc-e:hover { background: var(--bvc-ink); color: #fff; border-color: var(--bvc-ink); text-decoration: none; }
.bvc-cal-pop .flatpickr-day.bvc-s .bvc-dp, .bvc-cal-pop .flatpickr-day.bvc-e .bvc-dp { color: rgba(255,255,255,.85); }
.bvc-cal-pop .flatpickr-day.today { border-color: var(--bvc-accent); }
.bvc-cal-pop .bvc-dp { font-size: 10px; color: #3d7a4d; font-weight: 600; line-height: 1; }
.bvc-pop-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; justify-content: center; font-size: 12px; color: var(--bvc-muted); padding: 8px 6px 0; border-top: 1px solid var(--bvc-line); margin-top: 6px; }
.bvc-pop-legend span { display: inline-flex; align-items: center; gap: 5px; }
.bvc-pop-legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; border: 1px solid var(--bvc-line); }
.bvc-pop-legend .bvc-l-note { color: #3d7a4d; font-weight: 600; }
@media (max-width: 420px) {
	.bvc-cal-pop .dayContainer { width: 287px; min-width: 287px; max-width: 287px; }
	.bvc-cal-pop .flatpickr-day { width: 41px; flex-basis: 41px; height: 44px; }
}

@media (max-width: 600px) {
	.flatpickr-calendar.bvc-cal-pop { left: 10px !important; right: 10px !important; width: auto !important; max-width: calc(100vw - 20px); }
	.bvc-cal-pop .flatpickr-innerContainer, .bvc-cal-pop .flatpickr-rContainer, .bvc-cal-pop .flatpickr-weekdays, .bvc-cal-pop .flatpickr-days { width: 100% !important; }
	.bvc-cal-pop .dayContainer { width: 100% !important; min-width: 0 !important; max-width: none !important; }
	.bvc-cal-pop .flatpickr-day { width: auto; flex: 0 0 14.2857%; max-width: none; }
}

/* Alte camere sugerate */
.bvc-alts { margin: 0 0 14px; }
.bvc-alts-title { font-weight: 700; font-size: 14px; margin: 0 0 8px; color: var(--bvc-ink); }
.bvc-alts-none { font-size: 14px; color: var(--bvc-muted); margin: 0; }
.bvc-alt { display: flex; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--bvc-line); border-radius: 12px; margin: 0 0 8px; text-decoration: none !important; color: var(--bvc-ink) !important; background: #fff; transition: border-color .15s, box-shadow .15s; }
.bvc-alt:hover { border-color: var(--bvc-accent); box-shadow: 0 6px 18px rgba(31,29,26,.08); }
.bvc-alt-img { width: 64px; height: 52px; border-radius: 8px; overflow: hidden; background: var(--bvc-soft); flex: none; }
.bvc-alt-img img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; margin: 0; }
.bvc-alt-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bvc-alt-txt strong { font-size: 14.5px; line-height: 1.25; }
.bvc-alt-txt small, .bvc-alt-price small { font-size: 12px; color: var(--bvc-muted); }
.bvc-alt-price { text-align: right; display: flex; flex-direction: column; gap: 2px; flex: none; }
.bvc-alt-price strong { font-size: 15px; }

/* Toate pozele din card la același format landscape (4:3), și cele verticale */
.bvc-slider { aspect-ratio: auto !important; height: 0 !important; padding-top: 75% !important; overflow: hidden; min-height: 0; }
.bvc-slider > .bvc-track, .bvc-slider > .bvc-noimg { position: absolute !important; inset: 0; height: 100% !important; }
.bvc-slide, .bvc-slide a { height: 100% !important; overflow: hidden; }
.bvc-slide img { position: static; width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important; object-fit: cover !important; object-position: center; }

/* Spațiu sub listă, umbră pe carduri, animație la intrare */
.bvc-list-wrap { margin-bottom: 70px !important; }
.bvc-card { box-shadow: 0 8px 26px rgba(31, 29, 26, .09); border-color: rgba(31, 29, 26, .06); }
.bvc-card:hover { box-shadow: 0 20px 44px rgba(31, 29, 26, .16); transform: translateY(-4px); }
.bvc-card.is-off:hover { transform: none; box-shadow: 0 8px 26px rgba(31, 29, 26, .09); }

@keyframes bvcIn { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
.bvc-search, .bvc-search-sum, .bvc-empty, .bvc-booking, .bvc-details { animation: bvcIn .6s cubic-bezier(.2, .7, .2, 1) both; }
.bvc-search-sum { animation-delay: .08s; }
.bvc-grid .bvc-card { animation: bvcIn .7s cubic-bezier(.2, .7, .2, 1) both; animation-delay: .15s; }
.bvc-grid .bvc-card:nth-child(2) { animation-delay: .27s; }
.bvc-grid .bvc-card:nth-child(3) { animation-delay: .39s; }
.bvc-grid .bvc-card:nth-child(4) { animation-delay: .51s; }
.bvc-grid .bvc-card:nth-child(5) { animation-delay: .63s; }
.bvc-grid .bvc-card:nth-child(n+6) { animation-delay: .75s; }
.bvc-booking { animation-delay: .1s; }
.bvc-alt { animation: bvcIn .45s ease both; }
.bvc-card .bvc-slide img { transition: transform .6s ease; }
.bvc-card:hover .bvc-slide img { transform: scale(1.04); }
@media (prefers-reduced-motion: reduce) {
	.bvc-search, .bvc-search-sum, .bvc-empty, .bvc-booking, .bvc-details, .bvc-grid .bvc-card, .bvc-alt { animation: none !important; }
	.bvc-card:hover, .bvc-card:hover .bvc-slide img { transform: none; }
}

/* Animație mai lentă */
.bvc-search, .bvc-search-sum, .bvc-empty, .bvc-booking, .bvc-details { animation-duration: 1.1s; }
.bvc-search-sum { animation-delay: .2s; }
.bvc-grid .bvc-card { animation-duration: 1.3s; animation-delay: .35s; }
.bvc-grid .bvc-card:nth-child(2) { animation-delay: .6s; }
.bvc-grid .bvc-card:nth-child(3) { animation-delay: .85s; }
.bvc-grid .bvc-card:nth-child(4) { animation-delay: 1.1s; }
.bvc-grid .bvc-card:nth-child(5) { animation-delay: 1.35s; }
.bvc-grid .bvc-card:nth-child(n+6) { animation-delay: 1.6s; }
.bvc-booking { animation-delay: .25s; }
.bvc-alt { animation-duration: .8s; }

/* Adulți / copii / camere: cifre mai mari, mai ușor de citit */
.bvc-search .bvc-field select, .bvc-guests .bvc-field select { font-size: 19px !important; font-weight: 700; color: var(--bvc-ink); padding-left: 16px; }
.bvc-search .bvc-field label, .bvc-guests .bvc-field label { font-size: 13px; }
.bvc-guests .bvc-field select { height: 54px; }

/* ================= Recomandare / combinații (stil Booking) ================= */
.bvc-reco { display: grid; grid-template-columns: 1fr 280px; background: #fff; border: 1px solid var(--bvc-line); border-radius: var(--bvc-radius); box-shadow: 0 10px 30px rgba(31,29,26,.08); margin: 0 0 30px; overflow: hidden; animation: bvcIn 1.1s cubic-bezier(.2,.7,.2,1) both; animation-delay: .2s; }
.bvc-reco h3 { margin: 0 0 6px; font-size: 20px; }
.bvc-reco-main { padding: 20px 22px; }
.bvc-reco-line { display: flex; gap: 14px; align-items: center; padding: 14px 0; border-top: 1px solid var(--bvc-line); }
.bvc-reco-line:first-of-type { border-top: 0; }
.bvc-reco-img { width: 84px !important; height: 64px !important; object-fit: cover; border-radius: 8px; flex: none; margin: 0 !important; }
.bvc-reco-txt { flex: 1; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bvc-reco-name { font-weight: 700; font-size: 16px; color: var(--bvc-ink) !important; text-decoration: underline; text-underline-offset: 3px; }
.bvc-reco-g { font-size: 13.5px; color: var(--bvc-muted); }
.bvc-reco-lp { font-weight: 600; white-space: nowrap; }
.bvc-reco-side { background: var(--bvc-soft); padding: 20px 22px; display: flex; flex-direction: column; gap: 6px; justify-content: flex-start; }
.bvc-reco-meta { font-size: 13px; color: var(--bvc-muted); }
.bvc-reco-total { font-size: 28px; line-height: 1.1; }
.bvc-reco-side .bvc-btn { margin-top: auto; width: 100%; border-radius: 10px; min-height: 50px; }
.bvc-reco-none { display: block; padding: 20px 22px; }
.bvc-reco-none p { margin: 0; color: var(--bvc-muted); }
.bvc-sec-title { font-size: 19px; margin: 6px 0 16px; }

.bvc-foot-sel { flex-direction: column; align-items: stretch; }
.bvc-foot-row { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.bvc-pick { display: flex; flex-direction: column; gap: 4px; flex: 1; margin: 0; }
.bvc-pick span { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--bvc-muted); font-weight: 700; }
.bvc-pick select { height: 46px; border: 1px solid var(--bvc-line); border-radius: 10px; padding: 0 12px; font-size: 17px; font-weight: 700; background: #fff; color: var(--bvc-ink); width: 100%; }
.bvc-btn-ghost { background: #fff !important; color: var(--bvc-ink) !important; border: 1px solid var(--bvc-ink) !important; min-height: 46px; border-radius: 10px; }
.bvc-btn-ghost:hover { background: var(--bvc-ink) !important; color: #fff !important; }
.bvc-left { color: #b3261e; font-weight: 700; font-size: 13px; margin: 0 0 6px; width: 100%; }
.bvc-combo-hint { font-size: 12.5px; color: #8a5a00; background: #fff7e6; border-radius: 8px; padding: 6px 8px; margin: 6px 0 0; }
.bvc-price-off { font-size: 14px; color: var(--bvc-muted); font-weight: 600; }
.bvc-card.is-picked { outline: 2px solid var(--bvc-accent); outline-offset: -2px; }

.bvc-selbar { position: sticky; bottom: 12px; z-index: 50; margin-top: 22px; }
.bvc-selbar-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--bvc-ink); color: #fff; border-radius: 14px; padding: 12px 14px 12px 20px; box-shadow: 0 14px 40px rgba(0,0,0,.25); }
.bvc-selbar-txt { display: flex; flex-direction: column; gap: 2px; }
.bvc-selbar-txt strong { font-size: 20px; color: #fff; }
.bvc-selbar-txt span { font-size: 13px; color: rgba(255,255,255,.8); }
.bvc-selbar.is-err .bvc-selbar-txt span { color: #ffd6d2; font-size: 14px; }
.bvc-selbar .bvc-btn { background: var(--bvc-accent) !important; border-radius: 10px; min-height: 48px; flex: none; }
.bvc-selbar .bvc-btn:disabled { opacity: .45; cursor: not-allowed; }

.bvc-alt-combo { display: inline-block; margin-top: 4px; font-weight: 700; font-size: 14px; color: var(--bvc-ink) !important; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 780px) {
	.bvc-reco { grid-template-columns: 1fr; }
	.bvc-reco-side .bvc-btn { margin-top: 8px; }
	.bvc-selbar-in { flex-direction: column; align-items: stretch; text-align: center; }
}
.bvc-search .bvc-field:not(.bvc-field-dates) { flex: 1 1 74px; }

/* ================= Tabel disponibilitate (stil Booking) ================= */
.bvc-avail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 270px; align-items: stretch; border: 1px solid var(--bvc-line); border-radius: var(--bvc-radius); overflow: visible; background: #fff; box-shadow: 0 10px 30px rgba(31,29,26,.08); animation: bvcIn 1.1s cubic-bezier(.2,.7,.2,1) both; animation-delay: .2s; }
.bvc-avail-tablewrap { min-width: 0; }
.bvc-avail-table { width: 100%; border-collapse: collapse; margin: 0; table-layout: fixed; }
.bvc-avail-table th, .bvc-sum-head { background: var(--bvc-ink); color: #fff; text-align: left; font-size: 14px; font-weight: 700; padding: 14px 14px; border: 0; height: 56px; box-sizing: border-box; vertical-align: middle; }
.bvc-avail-table thead th:first-child { border-top-left-radius: var(--bvc-radius); }
.bvc-sum-head { border-top-right-radius: var(--bvc-radius); }
.bvc-avail-table th:nth-child(1) { width: 42%; } .bvc-avail-table th:nth-child(2) { width: 18%; } .bvc-avail-table th:nth-child(3) { width: 20%; } .bvc-avail-table th:nth-child(4) { width: 20%; }
.bvc-avail-table td { border: 0; border-bottom: 1px solid var(--bvc-line); border-right: 1px solid var(--bvc-line); padding: 16px 14px; vertical-align: top; background: #fff; transition: background .2s; }
.bvc-avail-table tr.is-picked td { background: color-mix(in srgb, var(--bvc-accent) 8%, #fff); }
.bvc-c-room .bvc-slider-sm { border-radius: 10px; overflow: hidden; margin: 0 0 12px; }
.bvc-slider-sm .bvc-nav { width: 30px; height: 30px; font-size: 20px; }
.bvc-room-name { display: block; font-size: 17px; font-weight: 700; color: var(--bvc-ink) !important; text-decoration: underline; text-underline-offset: 3px; line-height: 1.3; margin: 0 0 6px; }
.bvc-c-room .bvc-left { margin: 0 0 8px; }
.bvc-c-room .bvc-facts { margin: 0 0 10px; flex-direction: column; gap: 4px; }
.bvc-c-room .bvc-amen li { font-size: 12px; padding: 4px 9px; }
.bvc-ppl { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1px; margin: 0 0 8px; color: var(--bvc-ink); }
.bvc-ppl svg { display: block; fill: currentColor; }
.bvc-ppl-a svg { width: 18px; height: 18px; }
.bvc-ppl-c svg { width: 13px; height: 13px; }
.bvc-ppl-plus { font-size: 13px; margin: 0 3px; color: var(--bvc-muted); }
.bvc-c-guests small, .bvc-c-price small { display: block; font-size: 12.5px; color: var(--bvc-muted); line-height: 1.4; }
.bvc-c-price strong { display: block; font-size: 20px; line-height: 1.2; margin: 0 0 4px; }
.bvc-c-sel select { width: 100%; max-width: 170px; height: 44px; border: 1px solid #b9b3aa; border-radius: 8px; padding: 0 10px; font-size: 15px; font-weight: 700; background: #fff; color: var(--bvc-ink); }
.bvc-avail-sum { display: flex; flex-direction: column; min-width: 0; }
.bvc-sum-box { position: sticky; top: 90px; margin: 0; padding: 18px; display: flex; flex-direction: column; gap: 6px; background: #fff; border-radius: 0; }
.bvc-sum-for { margin: 0; font-size: 13px; color: var(--bvc-muted); }
.bvc-sum-total { font-size: 28px; line-height: 1.15; color: var(--bvc-ink); min-height: 4px; }
.bvc-sum-info { font-size: 13.5px; color: var(--bvc-muted); line-height: 1.45; }
.bvc-sum-box.is-err .bvc-sum-info { color: #b3261e; font-weight: 600; }
.bvc-sum-box .bvc-btn { width: 100%; min-height: 50px; border-radius: 10px; margin-top: 8px; font-size: 16px; }
.bvc-sum-box .bvc-btn:disabled { opacity: .4; cursor: not-allowed; transform: none; }
.bvc-sum-note { font-size: 12px; color: var(--bvc-muted); text-align: center; }
.bvc-sum-box[hidden] { display: flex !important; }

@media (max-width: 900px) {
	.bvc-avail-grid { grid-template-columns: 1fr; border: 0; box-shadow: none; background: transparent; }
	.bvc-sum-head { display: none; }
	.bvc-avail-table, .bvc-avail-table tbody, .bvc-avail-table tr, .bvc-avail-table td { display: block; width: 100% !important; }
	.bvc-avail-table thead { display: none; }
	.bvc-avail-table tr { background: #fff; border: 1px solid var(--bvc-line); border-radius: var(--bvc-radius); overflow: hidden; margin: 0 0 16px; box-shadow: 0 8px 22px rgba(31,29,26,.07); }
	.bvc-avail-table td { border-right: 0; padding: 12px 16px; }
	.bvc-avail-table td:not(.bvc-c-room)::before { content: attr(data-label); display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--bvc-muted); font-weight: 700; margin: 0 0 6px; }
	.bvc-avail-table td:last-child { border-bottom: 0; }
	.bvc-c-sel select { max-width: none; }
	.bvc-sum-box { position: sticky; bottom: 10px; top: auto; z-index: 40; border: 1px solid var(--bvc-line); border-radius: 14px; box-shadow: 0 14px 40px rgba(0,0,0,.18); }
	.bvc-avail-sum { position: sticky; bottom: 10px; }
}
@media (max-width: 900px) {
	.bvc-sum-box { display: grid !important; grid-template-columns: 1fr auto; align-items: center; gap: 2px 12px; padding: 12px 14px; }
	.bvc-sum-for, .bvc-sum-note { display: none; }
	.bvc-sum-total { font-size: 22px; grid-column: 1; }
	.bvc-sum-info { grid-column: 1; font-size: 12.5px; }
	.bvc-sum-box .bvc-btn { grid-column: 2; grid-row: 1 / span 2; width: auto; margin: 0; padding: 0 22px; min-height: 48px; }
	.bvc-sum-box.is-err .bvc-sum-info { grid-column: 1 / -1; }
}

.bvc-avail-table th, .bvc-sum-head { line-height: 1.3 !important; vertical-align: middle; margin: 0 !important; }
.bvc-sum-head { padding: 0 !important; border: 0 !important; box-sizing: border-box; }
.bvc-avail-table thead tr { height: 56px; }

/* Telefon: bara fixă jos cu totalul și „Rezervați” */
.bvc-mdock { display: none; }
@media (max-width: 900px) {
	.bvc-avail-sum { display: none; }
	.bvc-mdock { display: block; position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 99990; transform: translateY(140%); transition: transform .35s cubic-bezier(.2,.7,.2,1); pointer-events: none; }
	.bvc-mdock.on { transform: none; pointer-events: auto; }
	.bvc-mdock .bvc-sum-box { position: static; margin: 0; border: 1px solid var(--bvc-line); border-radius: 14px; box-shadow: 0 -4px 30px rgba(0,0,0,.22); background: #fff; }
	html.bvc-mdock-on body { padding-bottom: 96px; }
	.bvc-mdock .bvc-sum-box .bvc-btn:disabled { opacity: .5; }
}
@keyframes bvcPulse { 0% { transform: scale(1); } 40% { transform: scale(1.035); box-shadow: 0 0 0 6px color-mix(in srgb, var(--bvc-accent) 35%, transparent); } 100% { transform: scale(1); } }
.bvc-sum-box.bvc-pulse { animation: bvcPulse .7s ease; }
@media (prefers-reduced-motion: reduce) { .bvc-sum-box.bvc-pulse { animation: none; } .bvc-mdock { transition: none; } }
