/* ============================================================
   Loft page v2 (place_detail_v2.html). Loaded after place.css,
   overrides layout only; the booking form internals (calendar,
   event list, prices) keep their place.css / calendar.css styles.
   ============================================================ */

.pv2, #mobile_order.pv2_bar {--pv2-ink: #1D1D1F; --pv2-muted: #6B7280; --pv2-line: #E6E8EC; --pv2-bg: #F5F6F8; --pv2-red: #EB3752; --pv2-teal: #008489; --pv2-radius: 16px; color: var(--pv2-ink); font-size: 16px; line-height: 1.5;}
.pv2 * {box-sizing: border-box;}
.pv2_wrap {max-width: 1140px; margin: 0 auto; padding: 88px 24px 40px;} /* 64px fixed header + 24 */
.pv2 .pv2_crumbs {margin-bottom: 16px; padding: 0; align-items: center;}
/* the base separator is an absolutely positioned 8px glyph nudged by hand; here it is a normal flex item centred on the text line */
.pv2 .pv2_crumbs .breadcrumbs_sep {position: static; display: inline-flex; align-items: center; height: auto; margin: 0 8px; color: #B0B5BC;}
.pv2 .pv2_crumbs .breadcrumbs_sep_icon {position: static; top: auto; left: auto; font-size: 9px; line-height: 1;}
.pv2 .pv2_crumbs > div {display: inline-flex; align-items: center;}

/* --- head --- */
.pv2_head {margin-bottom: 20px;}
.pv2_h1 {font-size: 30px; line-height: 1.2; font-weight: 700; margin: 0 0 10px; letter-spacing: -0.01em;}
.pv2_head_row {display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;}
.pv2_meta {display: flex; flex-wrap: wrap; align-items: center; gap: 6px 0; font-size: 15px; color: var(--pv2-ink);}
.pv2_meta_item + .pv2_meta_item::before {content: '·'; margin: 0 10px; color: var(--pv2-muted);}
.pv2_meta_id {color: var(--pv2-muted);}
.pv2_rating .icon_star_full {color: #F5A623; font-size: 15px; margin-right: 5px; vertical-align: -1px;}
.pv2_meta_link {color: var(--pv2-ink); text-decoration: underline; text-underline-offset: 3px; margin-left: 6px;}
.pv2_meta_link:hover {color: var(--pv2-teal);}
.pv2 .pv2_share {margin: 0; font-size: 13px;}
.pv2 .pv2_share .place_share_btn {padding: 8px 14px; line-height: 18px; border-radius: 999px; min-height: 36px;}

/* --- gallery --- */
.pv2_gallery {position: relative; margin-bottom: 36px;}
.pv2_gallery_grid {display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 250px 250px; gap: 8px; border-radius: var(--pv2-radius); overflow: hidden;}
.pv2_photo {background: #E9EBEF center / cover no-repeat; cursor: pointer; position: relative; transition: filter .2s;}
.pv2_photo:hover {filter: brightness(.92);}
.pv2_photo_main {grid-row: 1 / 3; grid-column: 1;}
.pv2_gallery_grid .pv2_photo:nth-child(n+6) {display: none;}
.pv2_photo_video .pv2_play {position: absolute; left: 50%; top: 50%; width: 56px; height: 56px; margin: -28px 0 0 -28px; border-radius: 50%; background: rgba(255,255,255,.92) url('/images/video_play.svg') center / 26px no-repeat; box-shadow: 0 4px 16px rgba(0,0,0,.25);}
.pv2_gallery_all {position: absolute; right: 16px; bottom: 16px; z-index: 3; padding: 10px 16px; border: 1px solid var(--pv2-ink); border-radius: 10px; background: #fff; color: var(--pv2-ink); font: 600 14px/1 inherit; font-family: inherit; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.12);}
.pv2_gallery_all:hover {background: var(--pv2-bg);}
.pv2_video {display: none; position: absolute; inset: 0; z-index: 4; background: #000; border-radius: var(--pv2-radius); overflow: hidden;}
.pv2_video.active {display: block;}
.pv2_video iframe, .pv2_video #video {position: absolute; inset: 0; width: 100%; height: 100%;}
.pv2_video_close {position: absolute; right: 12px; top: 12px; z-index: 5; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(255,255,255,.9); color: var(--pv2-ink); font-size: 16px; cursor: pointer;}
.pv2_gallery_dots {display: none;}

/* --- columns --- */
.pv2_cols {display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 48px; align-items: start;}
.pv2 #left_block, .pv2 #right_block {float: none; width: auto; padding: 0; display: block;}
.pv2_main {min-width: 0;}

/* facts */
.pv2_facts {display: grid; grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); gap: 10px; margin-bottom: 14px;}
.pv2_fact {display: flex; flex-direction: column; gap: 2px; padding: 14px; border: 1px solid var(--pv2-line); border-radius: 12px; background: #fff;}
.pv2_fact .icon {font-size: 22px; color: var(--pv2-ink); margin-bottom: 6px; line-height: 1;}
.pv2_fact b {font-size: 17px; line-height: 1.2; font-weight: 700;}
.pv2_fact span {font-size: 13px; color: var(--pv2-muted); line-height: 1.3;}
.pv2_notes {display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 14px; color: var(--pv2-muted); margin-bottom: 8px;}
.pv2_notes .icon {margin-right: 6px; font-size: 16px; vertical-align: -2px;}

/* sections */
.pv2_section {padding: 28px 0; border-top: 1px solid var(--pv2-line);}
.pv2_h2 {font-size: 22px; line-height: 1.25; font-weight: 700; margin: 0 0 16px; padding: 0; cursor: default;}
.pv2_h2_reviews .icon_star_full {color: #F5A623; font-size: 20px; margin-right: 8px; vertical-align: -1px;}
.pv2_h3 {font-size: 15px; font-weight: 700; margin: 18px 0 8px;}
.pv2_h3:first-child {margin-top: 0;}
.pv2_h3 span {color: var(--pv2-muted); font-weight: 400; margin-left: 4px;}
.pv2_desc_short {max-height: 200px; overflow: hidden; position: relative; font-size: 16px; line-height: 1.6; color: #333; transition: max-height .35s ease;}
.pv2_desc_short:not(.expand)::after {content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 60px; background: linear-gradient(rgba(255,255,255,0), #fff);}
.pv2_more {display: inline-block; margin-top: 10px; padding: 10px 0; border: 0; background: none; color: var(--pv2-ink); font: 600 15px/1 inherit; font-family: inherit; text-decoration: underline; text-underline-offset: 4px; cursor: pointer;}
.pv2_more:hover {color: var(--pv2-teal);}
.pv2 #desc_short {font-size: 16px; line-height: 1.6; color: #333; max-height: 200px;}
.pv2 #desc_short.expand {max-height: none;}
.pv2 #desc_expand {display: none; color: var(--pv2-ink); font-size: 15px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; margin-top: 10px; padding: 10px 0; background: none; border: 0; cursor: pointer;}
.pv2 #desc_expand.active {display: inline-block;}

.pv2_list {list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px;}
.pv2_list li {position: relative; padding-left: 26px; font-size: 15px; line-height: 1.45;}
.pv2_list li::before {content: ''; position: absolute; left: 0; top: 6px; width: 16px; height: 9px; border-left: 2px solid var(--pv2-teal); border-bottom: 2px solid var(--pv2-teal); transform: rotate(-45deg) scale(.8);}
.pv2_rules li::before {border-color: var(--pv2-red);}
.pv2_amen {position: relative; max-height: 330px; overflow: hidden; transition: max-height .35s ease;}
.pv2_amen::after {content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 80px; background: linear-gradient(rgba(255,255,255,0), #fff); pointer-events: none;}
.pv2_amen.open {max-height: 4000px;}
.pv2_amen.open::after {display: none;}
.pv2_amen_btn {margin-top: 12px; padding: 12px 20px; border: 1px solid var(--pv2-ink); border-radius: 10px; text-decoration: none;}
.pv2_amen_btn:hover {background: var(--pv2-bg); color: var(--pv2-ink);}

/* reviews */
.pv2_reviews_note {font-size: 13px; color: var(--pv2-muted); margin-bottom: 20px;}
.pv2 .feedback_list {padding: 18px 0; border-top: 1px solid var(--pv2-line);}
.pv2 .feedback_list:first-child {border-top: 0; padding-top: 0;}
.pv2 .feedback_user_name {font-weight: 700; font-size: 15px;}
.pv2 .feedback_date_visited {font-size: 13px; color: var(--pv2-muted); margin: 2px 0 8px;}
.pv2 .feedback_text {font-size: 15px; line-height: 1.55; color: #333;}
.pv2 .feedback_btn {margin-top: 20px !important;}
.pv2 .btn_lazyload {display: inline-flex; align-items: center; width: auto; height: auto; margin: 0; padding: 12px 20px; border: 1px solid var(--pv2-ink); border-radius: 10px; background: #fff; color: var(--pv2-ink); font-size: 15px; font-weight: 600; line-height: 1.2; text-transform: none; cursor: pointer;} /* base style paints white text on a red button; here it is an outlined button, so the text must be dark */
.pv2 .btn_lazyload .icon {font-size: 12px; margin-right: 10px; color: var(--pv2-ink);}
.pv2 .btn_lazyload:hover {background: var(--pv2-bg); color: var(--pv2-ink);}
.pv2 .feedback_short {font-size: 15px; line-height: 1.55; color: #333;}
.pv2 .feedback_short::before {height: 30px !important;}
.pv2 .feedback_expand {display: none; margin-top: 6px; padding: 8px 0; color: var(--pv2-ink); font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; cursor: pointer;}
.pv2 .feedback_expand.active {display: inline-block;}
.pv2 .feedback_expand:hover {color: var(--pv2-teal);}

/* --- booking card --- */
.pv2_side {position: relative;}
.pv2 #order.pv2_card, .pv2 #order {width: 100%; padding: 22px 22px 20px; border: 1px solid var(--pv2-line); border-radius: 20px; background: #fff; box-shadow: 0 10px 30px rgba(17,24,39,.08); margin-bottom: 12px;}
.pv2_card_head {display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 18px;}
.pv2_card_price {display: flex; align-items: baseline; gap: 6px;}
.pv2_card_price b {font-size: 26px; font-weight: 800; line-height: 1.1; letter-spacing: -0.01em;}
.pv2_card_price span {font-size: 15px; color: var(--pv2-muted);}
.pv2_card_badge {flex: 0 0 auto; padding: 5px 10px; border-radius: 999px; background: #E6F6F4; color: #0B7A6B; font-size: 12px; font-weight: 700; line-height: 1; white-space: nowrap;}
.pv2_panel_head, .pv2_panel_close {display: none;}

/* field: event type */
.pv2 .pv2_field {position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 60px; margin: 0; padding: 9px 44px 9px 14px; border: 1px solid #D9DDE3; border-radius: 14px; background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s;}
.pv2 .pv2_field:hover {border-color: var(--pv2-ink);}
.pv2 .pv2_field.input_error {border-color: var(--pv2-red); background: #FFF5F6; animation: pv2_shake .3s;}
.pv2_field_icon {flex: 0 0 38px; display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; background: var(--pv2-bg); color: var(--pv2-ink); font-size: 20px;}
.pv2_field_body {flex: 1; min-width: 0;}
.pv2_label {display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--pv2-muted); margin-bottom: 3px; cursor: pointer;}
.pv2 .pv2_field #event_text {display: block; font-size: 15px; font-weight: 600; color: var(--pv2-ink); line-height: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.pv2 .pv2_field #event_text.placeholder {color: var(--pv2-ink); font-weight: 500;}
.pv2 .pv2_field #event_type_icon {position: absolute; right: 16px; top: 50%; margin-top: -8px; font-size: 16px; color: var(--pv2-muted); transform: rotate(90deg); transition: transform .2s;}
.pv2 .pv2_field #event_type_icon.active {transform: rotate(270deg);}
.pv2 #event_type {display: block; width: 100%; max-height: 0; opacity: 1; overflow: hidden; transition: max-height .3s ease;}
.pv2 .pv2_event_list {display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; max-height: 330px; overflow-y: auto; margin: 0; padding: 10px 2px 2px 0; scrollbar-width: thin;}
.pv2 .pv2_event_list .icon_item.event {position: relative; float: none; display: flex; align-items: center; gap: 10px; width: auto; height: auto; min-height: 52px; margin: 0; padding: 8px 12px; border: 1px solid var(--pv2-line); border-radius: 12px; background: #fff; cursor: pointer; transition: border-color .15s, background .15s;}
.pv2 .pv2_event_list .icon_item.event > i {position: static; display: block; flex: 0 0 auto; font-size: 22px; color: var(--pv2-teal); transform: none;}
.pv2 .pv2_event_list .icon_item.event > span {display: block; padding: 0; height: auto; width: auto; font-size: 13px; font-weight: 600; line-height: 1.25; text-transform: none; color: var(--pv2-ink);}
.pv2 .pv2_event_list .icon_item.event:hover {border-color: var(--pv2-ink); background: var(--pv2-bg);}
.pv2 .pv2_event_list .icon_item.event:hover > i, .pv2 .pv2_event_list .icon_item.event:hover > span {color: var(--pv2-ink); transform: none;}
.pv2 .pv2_event_list .icon_item.event:last-child {margin-bottom: 0;}
.pv2_event_empty {grid-column: 1 / -1; padding: 10px 12px; font-size: 13px; line-height: 1.45; color: var(--pv2-muted); border-radius: 10px; background: var(--pv2-bg);}
.pv2_event_empty a {color: var(--pv2-teal); white-space: nowrap;}

/* field: dates */
.pv2 .pv2_dates {display: flex; align-items: stretch; height: auto; min-height: 60px; margin-top: 10px; border: 1px solid #D9DDE3; border-radius: 14px; background: #fff; overflow: hidden; transition: border-color .15s;}
.pv2 .pv2_dates:hover {border-color: var(--pv2-ink);}
.pv2 .pv2_dates.input_error {border-color: var(--pv2-red); background: #FFF5F6; animation: pv2_shake .3s;}
.pv2 .pv2_dates .select_date {position: relative; float: none; width: 50%; flex: 1 1 50%; height: auto; min-height: 58px; padding: 9px 14px 8px 14px; font-size: 15px; line-height: 1.3; font-weight: 600; color: var(--pv2-ink); cursor: pointer; resize: none;}
.pv2 .pv2_dates .select_date + .select_date {border-left: 1px solid #D9DDE3;}
.pv2 .pv2_dates .select_date::before {display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--pv2-muted); margin-bottom: 3px; line-height: 14px;}
.pv2 .pv2_dates #start_date::before {content: 'Начало';}
.pv2 .pv2_dates #end_date::before {content: 'Окончание';}
.pv2 .pv2_dates .select_date > span {display: inline; padding: 0; line-height: 20px; font-size: 15px; font-weight: 600;}
.pv2 .pv2_dates .select_date .placeholder {font-size: 0; line-height: 20px; color: var(--pv2-ink); font-weight: 500; cursor: pointer;}
.pv2 .pv2_dates .select_date .placeholder::after {content: 'Выбрать'; font-size: 15px;}
.pv2 .pv2_dates .select_date .placeholder:hover {font-size: 0; color: var(--pv2-ink);}
.pv2 .pv2_dates .select_date small {display: inline; padding: 0 0 0 6px; font-size: 15px; font-weight: 600; color: var(--pv2-teal); line-height: 20px;}
.pv2 .pv2_dates .select_date .only_date {padding: 0; line-height: 20px; font-size: 15px;}
.pv2 .pv2_dates .select_end_date {text-align: left; padding-right: 14px;}
.pv2 .pv2_dates .select_date span, .pv2 .pv2_dates .select_date small, .pv2 .pv2_dates .select_end_date span, .pv2 .pv2_dates .select_end_date small {text-align: left; padding-left: 0; padding-right: 0; padding-top: 0;} /* place.css right-aligns and indents the end cell */
.pv2 .pv2_dates .select_date:hover {background: var(--pv2-bg);}

/* picker: calendar + hours */
.pv2_picker {position: relative;}
.pv2 #calendar, .pv2 #time {width: 100%; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .35s ease, opacity .25s ease;}
.pv2 #calendar.active {max-height: 400px; opacity: 1;}
.pv2 #time.active {max-height: 460px; opacity: 1;}
.pv2 .calendar {width: 100%; margin: 12px 0 6px; border-collapse: separate; border-spacing: 2px; text-align: center; user-select: none;}
.pv2 .calendar .month {border: 0;}
.pv2 .calendar .month > th {position: relative; height: 40px; line-height: 40px; font-size: 15px; font-weight: 700; text-transform: none; color: var(--pv2-ink);}
.pv2 .calendar .month > th::first-letter {text-transform: uppercase;}
.pv2 .calendar .prev, .pv2 .calendar .next {position: absolute; top: 2px; width: 36px; height: 36px; padding: 0; line-height: 36px; border-radius: 50%; font-size: 16px; color: var(--pv2-ink); background: var(--pv2-bg); cursor: pointer; transition: background .15s;}
.pv2 .calendar .prev {left: 2px;}
.pv2 .calendar .next {right: 2px;}
.pv2 .calendar .prev:hover, .pv2 .calendar .next:hover {background: #E6E8EC;}
.pv2 .calendar .prev.disable {color: #C4C8CE; background: transparent; cursor: default;}
.pv2 .calendar .days {border: 0;}
.pv2 .calendar .days > th {height: 28px; line-height: 28px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--pv2-muted);}
.pv2 .calendar .days > th.weekend {color: var(--pv2-red);}
.pv2 .calendar .week {border: 0;}
.pv2 .calendar .week > td {position: relative; height: 40px; width: 14.285%; line-height: 40px; border: 0; border-radius: 10px; font-size: 14px; font-weight: 500; color: var(--pv2-ink); cursor: pointer; background: transparent; transition: background .12s, color .12s;}
.pv2 .calendar .week > td:last-child {border: 0;}
.pv2 .calendar .week > td:hover {background: var(--pv2-ink); color: #fff !important;}
.pv2 .calendar .week > td span {display: none;}
.pv2 .calendar .week > td.select, .pv2 .calendar .week > td.select_day {background: var(--pv2-red) !important; color: #fff !important; font-size: 14px; line-height: 40px; font-weight: 700;}
.pv2 .calendar .week > td.prev_month, .pv2 .calendar .week > td.next_month {background: transparent; color: #C4C8CE !important; cursor: default;}
.pv2 .calendar .week > td.prev_month:hover, .pv2 .calendar .week > td.next_month:hover {background: transparent !important; color: #C4C8CE !important;}
.pv2 .calendar .week > td.prev_day {color: #C4C8CE !important; cursor: default; text-decoration: line-through;}
.pv2 .calendar .week > td.prev_day:hover {background: transparent !important; color: #C4C8CE !important;}
.pv2 .calendar .week > td.curr_day {font-weight: 800; color: var(--pv2-red);}
.pv2 .calendar .week > td.curr_day::after {content: ''; position: absolute; left: 50%; bottom: 5px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: currentColor;}
.pv2 #time_title {position: relative; height: 40px; margin: 12px 0 6px; border: 0;}
.pv2 #time_title_text {display: block; width: 100%; line-height: 40px; font-size: 15px; font-weight: 700; text-transform: none; color: var(--pv2-ink);}
.pv2 #time_title i {position: absolute; top: 2px; width: 36px; height: 36px; padding: 0; line-height: 36px; text-align: center; border-radius: 50%; font-size: 16px; color: var(--pv2-ink); background: var(--pv2-bg); cursor: pointer;}
.pv2 #time_title i:first-child {left: 2px;}
.pv2 #time_title i:last-child {right: 2px;}
.pv2 #time_title i.disable {color: #C4C8CE; background: transparent; cursor: default;}
.pv2 #time_body::before {content: 'Время начала, часы'; display: block; padding: 2px 4px 6px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--pv2-muted);}
.pv2 #time.end #time_body::before {content: 'Время окончания, часы';}
.pv2 .time {width: 100%; border-collapse: separate; border-spacing: 4px; text-align: center; font-size: 14px; font-weight: 600;}
.pv2 .time tr, .pv2 .time tr:first-child {border: 0;}
.pv2 .time td, .pv2 .time td:first-child {width: 33.333%; height: 38px; line-height: 38px; border: 1px solid var(--pv2-line); border-radius: 10px; color: var(--pv2-ink); background: #fff; cursor: pointer; transition: background .12s, color .12s, border-color .12s;}
.pv2 .time td:hover {background: var(--pv2-ink); border-color: var(--pv2-ink); color: #fff;}
.pv2 .time td.select {background: var(--pv2-red); border-color: var(--pv2-red); color: #fff; font-size: 14px; line-height: 38px;}
.pv2 .time td.prev {color: #C4C8CE; border-color: #F0F1F3; background: #FAFAFB; text-decoration: line-through; cursor: default;}
.pv2 .time td.prev:hover {background: #FAFAFB; color: #C4C8CE; border-color: #F0F1F3;}

/* guests, contacts */
.pv2 .pv2_guests {position: relative; margin-top: 10px;}
.pv2 .pv2_guests .pv2_label {position: absolute; left: 15px; top: 10px; margin: 0; pointer-events: none;}
.pv2 .guests_input {width: 100%; height: 60px; padding: 20px 14px 0; border: 1px solid #D9DDE3; border-radius: 14px; font-size: 15px; font-weight: 600; color: var(--pv2-ink); outline: none; -moz-appearance: textfield;}
.pv2 .guests_input::-webkit-outer-spin-button, .pv2 .guests_input::-webkit-inner-spin-button {-webkit-appearance: none; margin: 0;}
.pv2 .guests_input::placeholder {color: #9AA0A6; font-weight: 500;}
.pv2 .guests_input:focus {border-color: var(--pv2-ink);}
.pv2_hint {font-size: 12px; line-height: 16px; color: var(--pv2-muted); margin-top: 6px; padding: 0 2px;}
.pv2 .pv2_contacts {display: none;}
.pv2 .mobile_order_input {width: 100%; height: 56px; margin-top: 10px; padding: 0 14px; border: 1px solid #D9DDE3; border-radius: 14px; font-size: 15px; line-height: 54px; background: #fff; color: var(--pv2-ink);}
.pv2 .mobile_order_input::placeholder {color: #9AA0A6;}
.pv2 .mobile_order_input:focus {border-color: var(--pv2-ink); outline: none;}
.pv2 .mobile_order_input.input_error {border-color: var(--pv2-red); background: #FFF5F6;}
.pv2 .modal_block_order_input {position: relative;}
.pv2 .pv2_edit_phone {position: absolute; top: 29px; right: 15px; cursor: pointer; color: #C7CBD1; font-size: 18px;}

/* total */
.pv2 .pv2_prices {width: 100%; margin-top: 0; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .35s ease, opacity .25s ease;}
.pv2 .pv2_prices.active {max-height: 300px; opacity: 1;}
.pv2 .pv2_prices .price_item {display: flex; justify-content: space-between; align-items: baseline; margin: 16px 0 0; padding: 14px 16px 0; font-size: 16px; font-weight: 700; color: var(--pv2-ink); border-top: 1px dashed #D9DDE3;}
.pv2 .pv2_prices .price_item:first-child {margin-top: 16px;}
.pv2 .pv2_prices .price_left, .pv2 .pv2_prices .price_right {float: none; font-size: 18px; font-weight: 800; line-height: 1.2; color: var(--pv2-ink);}
.pv2 .pv2_prices .price_right {text-align: right; font-size: 22px;}
.pv2 .pv2_prices .price_item br {display: none;}
.pv2 .pv2_prices > div:not(.price_item) {padding: 0 16px; margin-top: 4px !important; font-size: 12px !important; line-height: 16px !important; color: var(--pv2-muted) !important;}
.pv2 .pv2_prices > div:not(.price_item):last-child {padding-bottom: 2px;}
.pv2_calc_hint {display: flex; align-items: center; gap: 8px; margin-top: 14px; padding: 10px 12px; border-radius: 10px; background: var(--pv2-bg); font-size: 13px; line-height: 1.4; color: var(--pv2-muted);}
.pv2_calc_hint::before {content: ''; flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--pv2-teal);}
.pv2 #prices.active + .pv2_calc_hint {display: none;}

/* CTA */
.pv2 .pv2_btn, .pv2 .btn_primary.order_btn, .pv2 .btn_primary.order_mobile_btn {width: 100%; height: 56px; margin-top: 14px; border-radius: 14px; background: var(--pv2-red); color: #fff; font-size: 16px; font-weight: 700; line-height: 56px; text-align: center; text-transform: none; letter-spacing: 0; cursor: pointer; box-shadow: 0 6px 16px rgba(235,55,82,.28); transition: background .15s, transform .1s, box-shadow .15s;}
.pv2 .order_btn {display: block;}
.pv2 .order_mobile_btn {display: none;}
.pv2 .pv2_btn:hover {background: #D62E48; box-shadow: 0 8px 20px rgba(235,55,82,.32);}
.pv2 .pv2_btn:active {transform: translateY(1px); box-shadow: 0 3px 10px rgba(235,55,82,.25);}
.pv2_card_note {margin-top: 16px; padding: 12px; border-radius: 12px; background: #FFF1F3; color: var(--pv2-red); font-weight: 600; font-size: 14px; text-align: center;}
.pv2_trust {list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 7px;}
.pv2_trust li {position: relative; padding-left: 24px; font-size: 13px; line-height: 1.4; color: var(--pv2-muted);}
.pv2_trust li::before {content: ''; position: absolute; left: 2px; top: 5px; width: 11px; height: 6px; border-left: 2px solid var(--pv2-teal); border-bottom: 2px solid var(--pv2-teal); transform: rotate(-45deg);}
.pv2 .pv2_counter {margin-top: 14px;}
.pv2 .auth_test .order_complite_note {margin-top: 12px;}
.pv2 .auth_test .modal_input {width: 100%; height: 56px; padding: 0 14px; border: 1px solid #D9DDE3; border-radius: 14px; font-size: 15px;}
.pv2 .auth_test .mobile_confirm_btn {border-radius: 14px !important; height: 56px !important; line-height: 56px !important; font-size: 16px !important; text-transform: none !important; letter-spacing: 0 !important;}
@keyframes pv2_shake {0%, 100% {transform: translateX(0);} 25% {transform: translateX(-4px);} 75% {transform: translateX(4px);}}

/* similar / tags */
.pv2_similar {margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--pv2-line);}
.pv2 .pv2_similar .subtitle_head.similar {border: 0; margin: 0 0 16px;} /* the old heading style drew a second line under the section border */
.pv2 .pv2_similar .subtitle_head {cursor: default;}
.pv2_tags {margin-top: 24px; font-size: 14px; color: var(--pv2-muted);}
.pv2_tags a {color: var(--pv2-teal);}

/* --- mobile bottom bar (replaces inline-styled #mobile_order) --- */
#mobile_order.pv2_bar {display: none; height: auto; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--pv2-line); box-shadow: 0 -6px 20px rgba(0,0,0,.08);}
.pv2_bar_price {display: flex; flex-direction: column; line-height: 1.15;}
.pv2_bar_price b {font-size: 18px; font-weight: 700; color: var(--pv2-ink);}
.pv2_bar_price span {font-size: 12px; color: var(--pv2-muted);}
.pv2_bar_btn {flex: 0 0 auto; min-width: 160px; height: 48px; padding: 0 22px; border: 0; border-radius: 12px; background: var(--pv2-red); color: #fff; font: 700 15px/48px inherit; font-family: inherit; cursor: pointer;}
.pv2_bar_note {font-size: 12px; font-weight: 600; color: var(--pv2-red); text-align: right;}

/* ============================ tablet ============================ */
@media screen and (max-width: 1100px) {
	.pv2_cols {grid-template-columns: minmax(0, 1fr) 340px; gap: 32px;}
	.pv2_gallery_grid {grid-template-rows: 210px 210px;}
}

/* ============================ mobile ============================ */
@media screen and (max-width: 900px) {
	.pv2_wrap {padding: 122px 0 90px;} /* 114px fixed header with search bar */
	.pv2 .pv2_crumbs {padding: 0 16px; margin: 8px 0 10px;}
	.pv2_head {padding: 0 16px; margin-bottom: 14px;}
	.pv2_h1 {font-size: 22px;}
	.pv2_meta {display: block; font-size: 14px; line-height: 1.5;}
	.pv2_meta_item {display: block;}
	.pv2_meta_item + .pv2_meta_item::before {content: none;} /* one fact per line on phones: the «·» separators wrapped onto their own lines */
	.pv2_meta_id {font-size: 13px;}
	.pv2 .pv2_share {width: 100%;}
	.pv2_cols {display: block;}
	.pv2 #left_block.pv2_main {padding: 0 16px;}

	/* gallery: full-width swipe with snap */
	.pv2_gallery {margin: 0 0 20px;}
	.pv2_gallery_grid {display: flex; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 0; border-radius: 0; grid-template-rows: none;}
	.pv2_gallery_grid::-webkit-scrollbar {display: none;}
	.pv2_photo, .pv2_gallery_grid .pv2_photo:nth-child(n+6) {display: block; flex: 0 0 100%; height: 0; padding-bottom: 70%; scroll-snap-align: start; grid-row: auto; grid-column: auto;}
	.pv2_photo:hover {filter: none;}
	.pv2_gallery_all {right: 12px; bottom: 12px; padding: 9px 12px; font-size: 13px;}
	.pv2_video {border-radius: 0;}

	.pv2_facts {grid-template-columns: 1fr 1fr; gap: 8px;}
	.pv2_fact {padding: 12px;}
	.pv2_section {padding: 22px 0;}
	.pv2_h2 {font-size: 19px;}
	.pv2_list {grid-template-columns: 1fr;}

	/* booking panel = existing full-screen #right_block from place.css */
	.pv2 #right_block {padding: 0; overflow-y: auto; background: #fff;}
	.pv2_panel_head {display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 210; height: 56px; padding: 0 12px 0 16px; background: #fff; border-bottom: 1px solid var(--pv2-line); font-size: 16px; font-weight: 700;}
	.pv2_panel_close {display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--pv2-bg); color: var(--pv2-ink); font-size: 14px; cursor: pointer;}
	.pv2 #order, .pv2 #order.pv2_card {border: 0; border-radius: 0; box-shadow: none; padding: 18px 16px calc(24px + env(safe-area-inset-bottom)); margin: 0; min-height: calc(100% - 56px);}
	.pv2_card_price b {font-size: 22px;}
	.pv2 .order_btn {display: none;}
	.pv2 .order_mobile_btn {display: block;}
	.pv2 .pv2_contacts {display: block;}
	/* 16px inputs: iOS zooms the page on focus for anything smaller */
	.pv2 .guests_input, .pv2 .mobile_order_input, .pv2 .auth_test .modal_input {font-size: 16px;}
	.pv2 .pv2_field #event_text, .pv2 .pv2_dates .select_date > span, .pv2 .pv2_dates .select_date .placeholder::after, .pv2 .pv2_dates .select_date small {font-size: 16px;}
	.pv2 .time td {height: 44px; line-height: 44px;}
	.pv2 .calendar .week > td {height: 44px; line-height: 44px;}
	.pv2 .pv2_event_list {max-height: 360px;}
	.pv2 .pv2_btn, .pv2 .btn_primary.order_mobile_btn {position: sticky; bottom: 8px; z-index: 5;}
	.pv2 .pv2_event_list {grid-template-columns: 1fr 1fr;}
	.pv2 .pv2_cols, .pv2_wrap {overflow-x: hidden;}
	.pv2_meta_item {white-space: normal;}

	#mobile_order.pv2_bar {display: flex;}
	.pv2_similar {padding: 24px 0 0; margin-top: 24px;}
	.pv2_similar .pv2_h2 {padding: 0 16px;}
	.pv2_tags {padding: 0 16px;}
}

@media screen and (max-width: 900px) {
	/* one type scale on phones: 13px captions, 15px body, 17–22px headings, weights only 500 and 700 */
	.pv2 .pv2_crumbs, .pv2 .pv2_crumbs .breadcrumbs_link, .pv2 .pv2_crumbs .breadcrumbs_add, .pv2 .pv2_crumbs span {font-size: 13px; font-weight: 500; line-height: 1.4;}
	.pv2 .pv2_crumbs .breadcrumbs_sep_icon {font-size: 8px;}
	.pv2 .pv2_crumbs .breadcrumbs_link {padding: 6px 0;}
	.pv2 .pv2_crumbs .breadcrumbs_sep {margin: 0 7px;}
	.pv2_h1 {font-size: 22px; line-height: 1.25; font-weight: 700; margin-bottom: 8px;}
	.pv2_meta {font-size: 15px; font-weight: 500; line-height: 1.5;}
	.pv2_meta_item {margin-bottom: 2px;}
	.pv2_rating .icon_star_full {font-size: 14px;}
	.pv2_meta_link {font-weight: 500;}
	.pv2_meta_id {font-size: 13px; font-weight: 500;}
	.pv2 .pv2_share {margin-top: 10px;}
	.pv2 .pv2_share .place_share_btn {font-size: 14px; font-weight: 500; line-height: 18px; padding: 7px 14px; min-height: 34px;}
	.pv2_fact b {font-size: 18px; font-weight: 700;}
	.pv2_fact span {font-size: 13px; font-weight: 500;}
	.pv2_notes {font-size: 14px; font-weight: 500;}
	.pv2_h2 {font-size: 20px; font-weight: 700;}
	.pv2_h3 {font-size: 15px; font-weight: 700;}
	.pv2 #desc_short, .pv2_desc_short, .pv2_list li, .pv2 .feedback_text, .pv2 .feedback_short {font-size: 15px; line-height: 1.55;}
	.pv2_more, .pv2 #desc_expand, .pv2 .btn_lazyload {font-size: 15px; font-weight: 700;}

	/* bottom bar: price on one line, a proper button */
	#mobile_order.pv2_bar {padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); gap: 12px;}
	.pv2_bar_price {flex-direction: row; align-items: baseline; gap: 5px; min-width: 0; white-space: nowrap;}
	.pv2_bar_price b {font-size: 19px; font-weight: 700;}
	.pv2_bar_price span {font-size: 14px; font-weight: 500;}
	.pv2_bar_btn {min-width: 0; flex: 0 0 auto; height: 50px; padding: 0 28px; border-radius: 14px; font-size: 16px; font-weight: 700; line-height: 50px; box-shadow: 0 6px 16px rgba(235,55,82,.28);}
	.pv2_bar_btn:active {transform: translateY(1px); box-shadow: 0 3px 10px rgba(235,55,82,.25);}
	.pv2_bar_note {font-size: 13px;}

	/* booking panel: the picked date and time stack, so «16.10.2026 17:00» is never cut; the pickers get room for all rows */
	.pv2 .pv2_dates .select_date {padding: 9px 12px 8px;}
	.pv2 .pv2_dates .select_date > span, .pv2 .pv2_dates .select_date .placeholder::after, .pv2 .pv2_dates .select_date .only_date {font-size: 15px;}
	.pv2 .pv2_dates .select_date small {display: block; padding: 0 !important; margin: 0; font-size: 15px; line-height: 20px; text-align: left !important;}
	.pv2 .pv2_dates .select_date > span {display: block; padding: 0 !important; text-align: left !important;}
	.pv2 .pv2_dates .select_date > span + small {margin-top: 1px;}
	.pv2 #calendar.active {max-height: 560px;}
	.pv2 #time.active {max-height: 700px;}
	.pv2 .pv2_picker {padding-bottom: 4px;}
	.pv2 .pv2_card_price b {font-size: 24px;}
	.pv2 .pv2_card_price span {font-size: 15px; font-weight: 500;}
	.pv2 .pv2_label {font-size: 11px;}
	.pv2 .pv2_field #event_text, .pv2 .pv2_dates .select_date small {font-weight: 700;}
	.pv2_panel_head {font-size: 17px;}
}

@media screen and (max-width: 420px) {
	.pv2_facts {grid-template-columns: 1fr 1fr;}
	.pv2_bar_btn {padding: 0 22px;}
	.pv2_bar_price b {font-size: 18px;}
}
