/* ===========================================================
   Экскурсии — страница экскурсии (mobile-first, modern)
   Префикс .exc_
   =========================================================== */

.exc_page{padding:calc(var(--head-h) + 18px) 0 96px}
@media(min-width:768px){.exc_page{padding:calc(var(--head-h) + 30px) 0 48px}}

/* двухколоночный макет (как у блога/объявлений) */
.exc_wrap{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:34px;align-items:flex-start}
@media(max-width:920px){.exc_wrap{grid-template-columns:1fr;gap:0}}
.exc_main{min-width:0}
.exc_sidebar{min-width:0}
@media(max-width:920px){.exc_sidebar{margin-top:22px}}
/* карточка записи остаётся «липкой» в пределах своей высоты, ссылки идут ниже */
.exc_side_card{margin-bottom:18px}

.exc_crumb{font-size:12px;color:var(--c-muted);margin-bottom:14px;display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.exc_crumb a{color:var(--c-muted)}
.exc_crumb a:hover{color:var(--c-text)}
.exc_crumb span{color:var(--c-dim)}

/* ---- Алерты ---- */
.exc_alert{padding:13px 16px;border-radius:14px;font-size:14px;font-weight:600;margin-bottom:14px;line-height:1.45}
.exc_alert_ok{background:#D1FAE5;border:1.5px solid #6EE7B7;color:#065F46}
.exc_alert_err{background:#FEE2E2;border:1.5px solid #FCA5A5;color:#991B1B}
.exc_alert_info{background:#FEF3C7;border:1.5px solid #FCD34D;color:#78350F}
.exc_alert a{font-weight:800;text-decoration:underline}

/* ---- Hero ---- */
.exc_hero{position:relative;border-radius:20px;overflow:hidden;background:linear-gradient(135deg,#4F46E5,#7C3AED);aspect-ratio:16/10;margin-bottom:18px}
@media(min-width:768px){.exc_hero{aspect-ratio:16/8}}
.exc_hero img{width:100%;height:100%;object-fit:cover}
.exc_hero_ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:72px}
.exc_hero_grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.62) 0%,rgba(0,0,0,.12) 42%,transparent 70%)}
.exc_hero_badges{position:absolute;left:14px;right:14px;bottom:14px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.exc_chip{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.94);color:var(--c-text);font-size:13px;font-weight:800;padding:7px 13px;border-radius:30px;backdrop-filter:blur(6px)}
.exc_chip_price{background:var(--c-accent);color:#fff}
.exc_chip_rating{background:#fff;color:#0F0F0F}
.exc_chip_rating b{color:#F59E0B}

/* ---- Заголовок и мета ---- */
.exc_title{font-size:24px;font-weight:800;line-height:1.18;letter-spacing:-.02em;margin-bottom:12px}
@media(min-width:768px){.exc_title{font-size:32px}}

.exc_meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.exc_meta_item{display:inline-flex;align-items:center;gap:6px;background:var(--c-surface2);color:var(--c-text2);font-size:13px;font-weight:600;padding:7px 12px;border-radius:12px}
.exc_meta_item svg{flex-shrink:0;opacity:.6}

/* ---- Карточка гида ---- */
.exc_guide{display:flex;align-items:center;gap:13px;padding:14px;background:var(--c-white);border:1.5px solid var(--c-surface2);border-radius:16px;margin-bottom:18px;transition:box-shadow var(--trans)}
.exc_guide:hover{box-shadow:0 6px 20px rgba(0,0,0,.06)}
.exc_guide_av{width:52px;height:52px;border-radius:50%;background:var(--c-accent-bg);display:flex;align-items:center;justify-content:center;font-size:24px;overflow:hidden;flex-shrink:0}
.exc_guide_av img{width:100%;height:100%;object-fit:cover}
.exc_guide_info{flex:1;min-width:0}
.exc_guide_label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--c-accent);margin-bottom:1px}
.exc_guide_name{font-size:15px;font-weight:800;color:var(--c-text)}
.exc_guide_sub{font-size:12px;color:var(--c-muted);margin-top:1px}
.exc_guide_arrow{color:var(--c-dim);flex-shrink:0}

/* ---- Секции ---- */
.exc_section{margin-bottom:26px}
.exc_section_h{font-size:19px;font-weight:800;letter-spacing:-.01em;margin-bottom:14px;display:flex;align-items:center;gap:9px}
.exc_desc{font-size:15px;color:var(--c-text2);line-height:1.7;white-space:pre-line}

.exc_card{background:var(--c-white);border:1.5px solid var(--c-surface2);border-radius:16px;padding:16px 18px}

/* Прайс-бокс в описании (дублирует цену, акцент) */
.exc_pricebox{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 20px;border-radius:18px;background:linear-gradient(135deg,#EEF2FF 0%,#F5F3FF 100%);border:1.5px solid #DDD9FB;margin-bottom:22px}
.exc_pricebox_main{display:flex;flex-direction:column;gap:2px}
.exc_pricebox_label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--c-accent)}
.exc_pricebox_val{font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--c-text);line-height:1}
.exc_pricebox_val small{font-size:14px;font-weight:600;color:var(--c-muted)}
.exc_pricebox_facts{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.exc_pricebox .exc_btn{margin-left:auto}
@media(max-width:520px){.exc_pricebox .exc_btn,.exc_pricebox_facts{margin-left:0;width:100%}}

/* Сайдбар-карточка с записью */
.exc_side_card{background:var(--c-white);border:1.5px solid var(--c-surface2);border-radius:18px;padding:18px;box-shadow:0 10px 30px rgba(0,0,0,.06)}
.exc_side_price{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}
.exc_side_price_val{font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--c-text)}
.exc_side_price_per{font-size:13px;color:var(--c-muted)}
.exc_side_rating{font-size:13px;color:#B45309;font-weight:700;margin-bottom:14px}
.exc_side_rating span{color:var(--c-muted);font-weight:500}
.exc_side_h{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--c-muted);margin:6px 0 12px}
.exc_side_sessions{display:flex;flex-direction:column;gap:10px;max-height:none}
.exc_flash{animation:exc_flash_kf 1.1s ease}
@keyframes exc_flash_kf{0%{box-shadow:0 0 0 0 rgba(79,70,229,.45)}60%{box-shadow:0 0 0 6px rgba(79,70,229,0)}100%{box-shadow:0 10px 30px rgba(0,0,0,.06)}}

/* ---- Сеансы ---- */
.exc_sessions{display:flex;flex-direction:column;gap:12px}
.exc_ses{background:var(--c-white);border:1.5px solid var(--c-surface2);border-radius:16px;padding:14px;transition:border-color var(--trans)}
.exc_ses:hover{border-color:#D7D7FB}
.exc_ses_full{opacity:.62}
.exc_ses_top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.exc_date{flex-shrink:0;width:62px;text-align:center;background:var(--c-accent-bg);border-radius:12px;padding:8px 0}
.exc_date_dow{font-size:10px;font-weight:800;color:var(--c-accent);text-transform:uppercase;letter-spacing:.05em}
.exc_date_d{font-size:19px;font-weight:800;color:var(--c-text);line-height:1.05}
.exc_date_t{font-size:12px;font-weight:700;color:var(--c-muted)}
.exc_ses_info{flex:1;min-width:120px}
.exc_ses_when{font-size:15px;font-weight:700;color:var(--c-text)}
.exc_ses_seats{font-size:12.5px;color:var(--c-muted);margin-top:2px}
.exc_ses_seats_low{color:#DC2626;font-weight:700}
.exc_ses_seats_ok{color:#059669;font-weight:700}

.exc_badge{font-size:12px;font-weight:700;padding:8px 14px;border-radius:11px}
.exc_badge_done{background:var(--c-accent-bg);color:var(--c-accent-text)}
.exc_badge_off{background:var(--c-surface2);color:var(--c-muted)}

/* Кнопка-«Записаться» */
.exc_btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:800;font-size:14px;border-radius:12px;padding:11px 20px;transition:transform var(--trans),background var(--trans);text-align:center;line-height:1.2}
.exc_btn:active{transform:scale(.97)}
.exc_btn_primary{background:var(--c-accent);color:#fff}
.exc_btn_primary:hover{background:var(--c-accent-h)}
.exc_btn_go{background:#10B981;color:#fff}
.exc_btn_go:hover{background:#059669}
.exc_btn_ghost{background:var(--c-accent-bg);color:var(--c-accent-text)}
.exc_btn_block{width:100%}

/* details-форма записи */
.exc_book{margin-left:auto}
@media(max-width:520px){.exc_book{margin-left:0;width:100%}.exc_book>summary{width:100%}}
.exc_book>summary{list-style:none;cursor:pointer}
.exc_book>summary::-webkit-details-marker{display:none}
.exc_form{margin-top:13px;display:flex;flex-direction:column;gap:10px;animation:exc_fade .2s ease}
@keyframes exc_fade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.exc_input,.exc_ta{width:100%;padding:12px 14px;border:1.5px solid var(--c-surface2);border-radius:12px;font-size:15px;font-family:inherit;background:var(--c-surface2);color:var(--c-text);outline:none;transition:border-color var(--trans),background var(--trans)}
.exc_input:focus,.exc_ta:focus{border-color:var(--c-accent);background:#fff}
.exc_ta{resize:vertical;min-height:60px}
.exc_field_label{font-size:12px;font-weight:700;color:var(--c-muted);margin-bottom:5px}

.exc_login_cta{margin-left:auto;font-size:13px;font-weight:800;color:var(--c-accent-text);background:var(--c-accent-bg);border-radius:11px;padding:9px 16px}
@media(max-width:520px){.exc_login_cta{margin-left:0;width:100%;text-align:center}}

.exc_empty{padding:22px;background:var(--c-surface2);border-radius:16px;text-align:center;color:var(--c-muted);font-size:14px}

/* ---- Sticky mobile CTA ---- */
.exc_sticky{position:fixed;left:0;right:0;bottom:0;z-index:90;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-top:1px solid rgba(0,0,0,.08);padding:10px 16px;display:flex;align-items:center;gap:14px;box-shadow:0 -4px 18px rgba(0,0,0,.07)}
.exc_sticky_price{font-size:17px;font-weight:800;color:var(--c-text);white-space:nowrap}
.exc_sticky_price small{display:block;font-size:11px;font-weight:600;color:var(--c-muted)}
.exc_sticky .exc_btn{flex:1}
@media(min-width:921px){.exc_sticky{display:none}}

/* ---- Рейтинг сводка + отзывы ---- */
.exc_rate_sum{display:flex;align-items:center;gap:18px;padding:16px 18px;background:var(--c-white);border:1.5px solid var(--c-surface2);border-radius:16px;margin-bottom:16px}
.exc_rate_big{font-size:40px;font-weight:800;line-height:1;letter-spacing:-.02em}
.exc_rate_stars{color:#F59E0B;font-size:16px;letter-spacing:2px}
.exc_rate_count{font-size:13px;color:var(--c-muted);margin-top:3px}

.exc_reviews{display:flex;flex-direction:column;gap:12px}
.exc_rev{padding:14px 16px;background:var(--c-white);border:1.5px solid var(--c-surface2);border-radius:16px}
.exc_rev_head{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.exc_rev_av{width:38px;height:38px;border-radius:50%;background:var(--c-accent-bg);display:flex;align-items:center;justify-content:center;font-size:17px;overflow:hidden;flex-shrink:0}
.exc_rev_av img{width:100%;height:100%;object-fit:cover}
.exc_rev_name{font-size:14px;font-weight:700;color:var(--c-text)}
.exc_rev_date{font-size:11.5px;color:var(--c-muted)}
.exc_rev_stars{margin-left:auto;color:#F59E0B;font-size:14px;letter-spacing:1px;flex-shrink:0}
.exc_rev_text{font-size:14px;color:var(--c-text2);line-height:1.6}

/* Форма отзыва со звёздами */
.exc_revform{padding:16px 18px;background:var(--c-accent-bg);border-radius:16px;margin-bottom:16px}
.exc_revform_h{font-size:15px;font-weight:800;margin-bottom:12px}
.exc_stars_pick{display:inline-flex;flex-direction:row-reverse;gap:4px;margin-bottom:12px}
.exc_stars_pick input{position:absolute;opacity:0;pointer-events:none}
.exc_stars_pick label{font-size:32px;line-height:1;color:#D6D6D8;cursor:pointer;transition:color .1s ease}
.exc_stars_pick label:hover,
.exc_stars_pick label:hover ~ label,
.exc_stars_pick input:checked ~ label{color:#F59E0B}
.exc_revform .exc_ta{background:#fff}

/* ===== Модальная форма записи ===== */
.exc_modal{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:16px}
.exc_modal[hidden]{display:none}
.exc_modal_bg{position:absolute;inset:0;background:rgba(15,15,15,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.exc_modal_card{position:relative;z-index:1;width:100%;max-width:440px;max-height:92vh;overflow:auto;background:var(--c-white);border-radius:20px;padding:24px;box-shadow:0 24px 60px rgba(0,0,0,.32);animation:exc_modal_in .2s ease}
@keyframes exc_modal_in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.exc_modal_close{position:absolute;top:12px;right:14px;width:34px;height:34px;border-radius:50%;background:var(--c-surface2);font-size:22px;line-height:1;color:var(--c-muted);display:flex;align-items:center;justify-content:center;transition:background var(--trans),color var(--trans)}
.exc_modal_close:hover{background:#E5E5E2;color:var(--c-text)}
.exc_modal_h{font-size:20px;font-weight:800;letter-spacing:-.02em;padding-right:30px}
.exc_modal_sub{font-size:13px;color:var(--c-muted);margin:3px 0 18px}
.exc_modal_form{display:flex;flex-direction:column}
.exc_modal_form .exc_field_label{margin-top:12px}
.exc_modal_form .exc_field_label:first-of-type{margin-top:0}
.exc_modal_hint{font-size:12px;color:var(--c-muted);margin-top:5px}
.exc_modal_note{font-size:11.5px;color:var(--c-muted);text-align:center;margin-top:11px;line-height:1.45}
select.exc_input{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:38px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234F46E5' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center}

/* ===== Бейдж гида в профиле ===== */
.gd_badge{display:block;text-decoration:none;margin-top:14px;border-radius:16px;background:linear-gradient(135deg,#4F46E5 0%,#7C3AED 100%);color:#fff;padding:16px;box-shadow:0 8px 22px rgba(79,70,229,.28)}
.gd_badge_top{display:flex;align-items:center;justify-content:center;gap:9px}
.gd_badge_ic{font-size:18px;line-height:1}
.gd_badge_lbl{font-size:15px;font-weight:800;letter-spacing:-.01em}
.gd_badge_rate{display:flex;align-items:center;justify-content:center;gap:11px;margin-top:13px;padding-top:13px;border-top:1px solid rgba(255,255,255,.22)}
.gd_badge_score{font-size:26px;font-weight:800;line-height:1;letter-spacing:-.02em}
.gd_badge_meta{display:flex;flex-direction:column;gap:3px}
.gd_badge_stars{color:#FCD34D;font-size:14px;letter-spacing:2px;line-height:1;white-space:nowrap}
.gd_badge_cnt{font-size:12px;opacity:.85;white-space:nowrap}
.gd_badge_noreviews{text-align:center;font-size:12px;opacity:.88;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.22)}
