/* Charcoal and glacier: one public-site palette, after all page styles. */
body.editorial[class], body.editorial[class] :is(.page-head,.site-footer,.map-wrap),
body.editorial[class] #na-karte .map-wrap {
  --bg:#181a1d; --bg-2:#1e2125; --surface:#262b30;
  --ink:#f2eee7; --ink-2:#d1ced0; --muted:#acaebb;
  --accent:#a9d9e8; --accent-2:#c8ebf4; --action:#a9d9e8;
  --on-accent:#14252b; --on-action:#14252b;
  --line:#3b4249; --line-2:#68747e; --contour:#acaebb;
  --water:#74b8c8; --forest:#93ae82;
  --sheet-shadow:0 12px 36px rgba(0,0,0,.15);
  color:var(--ink); color-scheme:dark;
}
body.editorial[class] { background:#181a1d; }
body.editorial[class] :is(.page-head,.tour-top,.section-alt,.chronicle-hero) { background:#1e2125; }
body.editorial[class] .site-header,
body.editorial[class] .site-header.is-solid { background:rgba(24,26,29,.96); color:#f2eee7; border-color:#3b4249; box-shadow:none; }
body.editorial.home .site-header:not(.is-solid) { background:rgba(24,26,29,.65); }
body.editorial[class] .header-call { background:transparent; color:#f2eee7; border-color:#68747e; }
body.editorial[class] .btn-accent,
body.editorial[class] .mobile-dock .mobile-dock-main {
  background:linear-gradient(115deg,#a9d9e8,#a9d9e8); color:#14252b; border-color:#bee6f1;
  box-shadow:0 5px 20px rgba(169,217,232,.12),inset 0 1px 0 rgba(255,255,255,.2);
}
body.editorial[class] .btn-accent:hover,
body.editorial[class] .mobile-dock .mobile-dock-main:hover { background:#c8ebf4; color:#14252b; box-shadow:none; }
body.editorial[class] .btn-line { background:transparent; color:#f2eee7; border-color:#68747e; }
body.editorial[class] :focus-visible { outline:2px solid #a9d9e8; outline-offset:4px; }
body.editorial[class] :is(.schedule-filters select,.schedule-filters option,input,select,textarea,.option) { background:#262b30; color:#f2eee7; border-color:#68747e; }
body.editorial[class] :is(input,textarea)::placeholder { color:#acaebb; }
body.editorial[class] :is(.schedule-filters label,.filter-reset,.crumbs,.night-eyebrow,.tl-month,.tl-month small) { color:#acaebb; }
body.editorial[class] :is(.schedule-event,.book-card,.quote,.facts div,.lists > div,.journey-nav a,.rituals li,.featured-body) { background:#262b30; color:#f2eee7; border-color:#3b4249; }
body.editorial[class] .schedule-event:not(.schedule-event-past) { border-top-color:#a9d9e8; }
body.editorial[class] :is(.event-date b,.tl-time,.trust-no,.legend-date .num,.night-intro h1 em) { color:#a9d9e8; }
body.editorial[class] :is(.event-status,.schedule-section-title span,.status-open) { color:#c8ebf4; background:#293b43; border-color:#68747e; }
body.editorial[class] :is(.event-facts,.event-seats,.event-description p,.night-intro .lead) { color:#d1ced0; }
body.editorial[class] .schedule-event-past .event-status { background:transparent; color:#acaebb; }
body.editorial[class] .night-tabs a:first-child { color:#a9d9e8; border-color:#a9d9e8; }
body.editorial[class] :is(.night-tabs,.schedule-help,.event-booking,.timeline li,.journey-nav a) { border-color:#3b4249; }
body.editorial[class] .journey-nav a:last-child { color:#14252b; background:#a9d9e8; border-color:#a9d9e8; }
body.editorial[class] .book-card { border-top-color:#a9d9e8; }
body.editorial[class] :is(.mobile-bar,.mobile-dock,.burger-panel) { background:#1e2125f5; color:#f2eee7; border-color:#3b4249; }
body.editorial[class] .mobile-dock a { color:#f2eee7; }
body.editorial[class] .site-footer { background:#121416; color:#d1ced0; }
body.editorial[class] :is(.footer-h,.footer-phone) { color:#f2eee7; }
body.editorial[class] .site-footer a:hover { color:#a9d9e8; }
body.editorial[class] .hero::before { background:linear-gradient(180deg,rgba(14,17,20,.18),transparent 25%,rgba(14,17,20,.84)),linear-gradient(90deg,rgba(14,17,20,.5),transparent 85%); }
body.editorial[class] .night-landscape::after { background:linear-gradient(0deg,rgba(14,17,20,.8),transparent 65%),linear-gradient(90deg,rgba(14,17,20,.5),transparent); }
body.editorial[class] .legend-card { background:rgba(30,33,37,.8); border-color:rgba(169,217,232,.35); box-shadow:none; }
body.editorial[class] .hero .label,
body.editorial[class] :is(.hero-sub,.hero-advice,.night-landscape figcaption) { color:#eeeaf2; }
body.editorial[class] .legend-stamp { color:#a9d9e8; border-color:#a89158; }
body.editorial[class] .expedition-journal { background:#121416; color:#f2eee7; }
body.editorial[class] :is(.expedition-journal .label,.expedition-journal .arrow-link,.expedition-memory-caption > span,.expedition-trip-copy .label,.tile-text .label) { color:#a9d9e8; }
body.editorial[class] .expedition-trip-arrow { background:#a9d9e8; color:#14252b; }
body.editorial[class] .expedition-trip::after { background:linear-gradient(180deg,rgba(14,17,20,.2),transparent 30%,rgba(14,17,20,.9)); }
body.editorial[class] .expedition-trip-date { background:rgba(30,33,37,.8); }
body.editorial[class] #na-karte { background:#1e2125; }
body.editorial[class] .map-wrap,body.editorial[class] #na-karte .map-wrap { background:#1e2125; }
body.editorial[class] :is(.chip,#na-karte .chip) { background:#262b30; color:#f2eee7; border-color:#68747e; }
body.editorial[class] :is(.chip.is-on,#na-karte .chip.is-on) { background:#a9d9e8; color:#14252b; border-color:#a9d9e8; }
body.editorial[class] .lightbox { background:#181a1df5; color:#f2eee7; }
body.editorial[class] :is(.lb-close,.lb-nav) { background:#262b30; color:#f2eee7; border-color:#68747e; }
body.editorial[class] .profile [stroke="#d7261e"] { stroke:#a9d9e8; }
body.editorial[class] .profile [fill="#d7261e"],body.editorial[class] .profile .t-alt { fill:#a9d9e8; }

/* Shared details, including route passports and booking/gallery states. */
body.editorial[class] .burger-panel { --ink:#f2eee7; --muted:#acaebb; }
body.editorial[class] :is(.journey-card,.journey-image,.expedition-trip,.lb-frame,.tiles) { background-color:var(--surface); border-color:var(--line); }
body.editorial[class] :is(.journey-date,.lb-count) { background:rgba(30,33,37,.85); color:var(--ink); }
body.editorial[class] .journey-bottom { border-color:var(--line); }
body.editorial[class] .journey-arrow { background:var(--accent); color:var(--on-accent); }
body.editorial[class] :is(.chronicle-cover-copy span,.book-cover-date,.schedule-help .label) { color:var(--accent); }
body.editorial[class] :is(input,select,textarea):focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(169,217,232,.18); }
body.editorial[class] :is(input,select,textarea) { accent-color:var(--accent); }
body.editorial[class] :is(.lb-close,.lb-nav):hover { background:var(--accent); color:var(--on-accent); }
body.editorial[class] .lightbox::backdrop { background:rgba(24,26,29,.78); }
body.editorial[class] .lb-meta { color:var(--ink); background:linear-gradient(transparent,rgba(14,17,20,.9)); }
body.editorial[class] .profile .t-cap { fill:var(--ink); }
body.editorial[class] .profile .t-y { fill:var(--muted); stroke:var(--bg); }
body.editorial[class] svg [fill="#d7261e"] { fill:var(--accent); }
body.editorial[class] svg [stroke="#d7261e"] { stroke:var(--accent); }
body.editorial[class] .hero h1 .line:nth-child(2) > span { color:var(--ink); }
body.editorial[class] .hero .label::before { background:var(--accent); box-shadow:0 0 12px rgba(169,217,232,.45); }
body.editorial[class] .route-hero::after { background:linear-gradient(0deg,rgba(14,17,20,.85),rgba(14,17,20,.08) 68%); }
body.editorial[class] ::selection { background:#a9d9e8; color:#14252b; }

/* Saffron marks dates and supporting information; rose is reserved for actions. */
body.editorial[class] :is(.event-date b,.tl-time,.trust-no,.legend-date .num,.book-cover-date,.chronicle-cover-copy span) { color:#a9d9e8; }

/* Quiet hierarchy: photography and headings lead; clay identifies actions. */
body.editorial.schedule-page[class] .night-intro h1 em { color:var(--ink); }
body.editorial[class] :is(.event-date b,.legend-date .num,.book-cover-date) { color:var(--ink); }
body.editorial[class] :is(.event-status,.schedule-section-title span,.status-open) { color:var(--ink-2); background:var(--bg-2); border-color:var(--line); }
body.editorial[class] :is(.expedition-journal .label,.expedition-journal .arrow-link,.expedition-memory-caption > span,.expedition-trip-copy .label,.tile-text .label,.chronicle-cover-copy span) { color:#ddd9d2; }
body.editorial[class] .schedule-event:not(.schedule-event-past) { border-top-color:var(--line); }
body.editorial[class] .legend-card { border-color:rgba(242,238,231,.18); }
body.editorial[class] .book-card { border-top-color:var(--line); }
body.editorial[class] .night-landscape::after { background:linear-gradient(0deg,rgba(14,17,20,.55),transparent 65%),linear-gradient(90deg,rgba(14,17,20,.65),transparent 80%); }

/* A light cartographic sheet separates terrain from the dark interface. */
body.editorial[class] :is(.map-sheet,.localmap) {
  --bg:#e9edf1; --bg-2:#dce3e9; --surface:#e9edf1;
  --ink:#243044; --ink-2:#3f4f63; --muted:#546375;
  --contour:#748394; --water:#327a9b; --forest:#51745c;
  --accent:#286b83; --line:#c4ced8; --line-2:#a7b5c3;
  background:var(--surface); color:var(--ink); color-scheme:light;
}
body.editorial[class] .map-sheet .note { border-top:1px solid var(--line); color:var(--muted); }
body.editorial[class] .atlas-map .m-grid { opacity:.3; }
body.editorial[class] .localmap { border-color:var(--line); }

.catalog-offer { display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap:clamp(24px,5vw,72px); }
.catalog-offer > div { min-width:0; }
.catalog-offer h2 { font-size:clamp(26px,3vw,42px); margin-bottom:20px; }
.catalog-offer h3 { margin-top:24px; }
.catalog-prices { padding:0; list-style:none; }
.catalog-prices li { display:flex; justify-content:space-between; gap:16px; padding:16px 0; border-bottom:1px solid var(--line); }
.catalog-prices small,.catalog-price small { display:block; color:var(--muted); font-size:14px; font-weight:400; }
.catalog-price { font-size:26px; font-weight:700; margin:12px 0; }
@media(max-width:760px) { .catalog-offer { grid-template-columns:1fr; } }

#tour-offer { scroll-margin-top:100px; }

/* Legacy light sheet backgrounds must not sit behind dark-theme text. */
body.editorial[class] .passport { background:var(--surface); color:var(--ink); border:1px solid var(--line); }
body.editorial[class] .passport :is(.pp-head,.pp-stats,.pp-days) { background:var(--surface); color:var(--ink); border-color:var(--line); }
body.editorial[class] .passport :is(.pp-stats > div,.pp-top,.pp-profile,.pp-prep) { border-color:var(--line); }
body.editorial[class] .sw-ascent { background:var(--accent); }
body.editorial[class] .dayline .dl-seg:has(rect[fill="#d7261e"]) .dl-label { fill:var(--on-accent); }

/* Native page transitions preserve links, forms, history and scroll behaviour. */
@view-transition { navigation:auto; }
@media(prefers-reduced-motion:no-preference) {
  ::view-transition-old(root) { animation:glacier-out 140ms ease both; }
  ::view-transition-new(root) { animation:glacier-in 220ms ease both; }
  body.editorial[class] :is(.option,.btn,.chip,.journey-nav a) { transition:background-color 180ms,border-color 180ms,box-shadow 180ms,transform 180ms; }
  body.editorial[class] .option:has(input:checked) { background:color-mix(in srgb,var(--accent) 12%,var(--surface)); border-color:var(--accent); }
  body.editorial[class] .lightbox[open] .lb-frame { animation:glacier-photo 240ms cubic-bezier(.2,.7,.3,1) both; }
  body.editorial[class] .atlas-map .m-pin:focus .m-name { fill:var(--accent); }
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  body.editorial[class] :is(.card-media,.journey-image,.mosaic a) img { transition:transform 450ms cubic-bezier(.2,.7,.3,1); }
  body.editorial[class] :is(.card:hover .card-media,.journey-card:hover .journey-image,.mosaic a:hover) img { transform:scale(1.025); }
}
@keyframes glacier-out { to { opacity:0; } }
@keyframes glacier-in { from { opacity:0; } to { opacity:1; } }
@keyframes glacier-photo { from { opacity:0; transform:translateY(8px) scale(.985); } to { opacity:1; transform:none; } }
body.editorial[class] :is(.schedule-event,.card,.passport).reveal { opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce) {
  ::view-transition-old(root),::view-transition-new(root) { animation:none; }
  body.editorial[class] *,body.editorial[class] *::before,body.editorial[class] *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
@media(prefers-reduced-motion:reduce) {
  body.editorial[class] :is(.reveal,.hero .label,.hero-sub,.hero-advice,.hero .actions,.legend-card,.hero h1 .line > span) { opacity:1 !important; transform:none !important; }
}

/* One shape and spacing scale for all text actions. */
body.editorial[class] { --control-radius:12px; }
body.editorial[class] :is(.btn,.header-call,.chip,.journey-nav a,.mosaic-all,.mobile-dock a,.chronicle-years a) {
  border-radius:var(--control-radius);
  min-height:44px;
  padding:12px 18px;
  line-height:1.25;
}
body.editorial[class] .btn { min-height:48px; padding:13px 22px; white-space:normal; text-align:center; }
body.editorial[class] .btn-small { min-height:44px; padding:11px 16px; }
body.editorial[class] :is(input:not([type=radio]):not([type=checkbox]),select,textarea,.option) { border-radius:var(--control-radius); }
body.editorial[class] :is(.lb-close,.lb-nav) { border-radius:50%; }
body.editorial.home[class] .hero .btn { border-radius:var(--control-radius); min-height:48px; padding:13px 22px; }

/* Put the first real offer ahead of decorative schedule content. */
body.editorial.schedule-page[class] .page-head { padding-block:24px 16px; }
body.editorial.schedule-page[class] .night-intro { display:block; min-height:0; padding:0; }
body.editorial.schedule-page[class] .night-intro-copy { padding:0; position:static; }
body.editorial.schedule-page[class] .night-intro h1 { font-size:clamp(30px,4vw,48px); margin:10px 0; }
body.editorial.schedule-page[class] .night-intro .lead { font-size:16px; margin:0; }
.schedule-filter-panel { margin-top:12px; }
.schedule-filter-panel summary,.archive-month summary { cursor:pointer; padding:14px 0; font-weight:600; }
.archive-month { border-bottom:1px solid var(--line); padding-bottom:10px; }
.archive-month .schedule-events { margin-bottom:16px; }
.event-tariffs { padding:0; list-style:none; font-size:12px; margin:8px 0; }
.event-tariffs li { margin-bottom:8px; }
.event-tariffs small { display:block; color:var(--muted); }
.interest-card { max-width:720px; }
#interest { scroll-margin-top:100px; }
body.editorial[class] [data-included-transfer][hidden] { display:none; }
@media(max-width:760px) {
  body.editorial.schedule-page[class] .night-eyebrow { display:none; }
  body.editorial.schedule-page[class] .night-tabs { margin-top:16px; }
  body.editorial.schedule-page[class] .schedule-event { gap:12px; padding:16px; }
  body.editorial.schedule-page[class] .event-photo { height:76px; }
  body.editorial.schedule-page[class] .event-description h3 { font-size:19px; margin:8px 0; }
  body.editorial.schedule-page[class] .event-description p { display:none; }
  .event-tariffs { grid-column:1/-1; }
}
body.editorial[class] .interest-card h2 { font-size:clamp(26px,3vw,38px); line-height:1.15; margin-bottom:16px; }
.interest-card form { display:grid; gap:18px; margin-top:24px; }
.interest-card label:not(.hp) { display:grid; gap:8px; }
.interest-card label.consent { grid-template-columns:20px minmax(0,1fr); align-items:start; font-size:13px; }
.interest-card .consent input { width:18px; height:18px; margin-top:3px; }
.interest-card .btn { justify-self:start; }
@media(max-width:760px) {
 body.editorial.schedule-page[class] .night-tabs { margin-top:8px; }
 body.editorial.schedule-page[class] .schedule-filter-panel summary { padding-block:8px; font-size:14px; }
 body.editorial.schedule-page[class] #departures { padding-top:12px; }
 body.editorial.schedule-page[class] .schedule-section-title { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); }
 body.editorial.schedule-page[class] .schedule-events .tl-month { padding:4px 0; margin:0; }
}


/* Shared route cards: identical geometry for upcoming and past dates. */
body.schedule-page :is(.departure-group,.archive-route) { min-width:0; border:1px solid var(--line); border-radius:20px; overflow:hidden; background:var(--surface); padding:0; margin:0; }
.schedule-archive,.schedule-events { display:grid; gap:24px; }
.route-group-head { display:flex; gap:24px; padding:24px; align-items:center; }
.route-group-photo { width:180px; height:132px; flex-shrink:0; border-radius:14px; overflow:hidden; background:var(--bg); }
.route-group-photo img { width:100%; height:100%; object-fit:cover; }
.route-group-copy { min-width:0; }
body.editorial.schedule-page .route-group-copy h3 { font:600 clamp(21px,2.2vw,30px)/1.15 var(--text); letter-spacing:-.035em; margin:8px 0 10px; }
.route-group-copy a { color:var(--ink); text-decoration:none; }
.route-group-kicker,.departure-label { color:var(--accent); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.route-group-level,.route-group-copy p { font-size:13px; color:var(--muted); margin:8px 0 0; }
.departure-dates { padding:18px 24px 8px; border-top:1px solid var(--line); }
.departure-label { margin-bottom:6px; color:var(--muted); }
.departure-row { display:grid; grid-template-columns:66px minmax(0,1fr) 210px; gap:18px; padding:18px 0; align-items:center; color:var(--ink); }
.departure-row + .departure-row { border-top:1px solid var(--line); }
.departure-calendar { display:grid; text-align:center; background:color-mix(in srgb,var(--accent) 8%,var(--surface)); border:1px solid var(--line); border-radius:12px; padding:9px 4px; }
.departure-calendar b { font-size:27px; font-weight:600; line-height:1.1; }
.departure-calendar span { font-size:12px; }
.departure-calendar small { font-size:10px; color:var(--muted); margin-top:3px; }
.departure-info a { display:block; color:var(--ink); font-size:15px; text-decoration:none; margin:5px 0; }
.departure-info a:hover,.route-group-copy a:hover { text-decoration:underline; text-underline-offset:4px; }
.departure-weekday,.departure-info small,.departure-offer small { font-size:12px; color:var(--muted); }
.departure-info small { display:block; }
.departure-offer { display:grid; gap:4px; }
.departure-offer strong { font-size:23px; font-weight:600; letter-spacing:-.03em; }
body.editorial.schedule-page .departure-offer .btn { min-height:44px; font-size:12px; padding:12px 14px; margin-top:6px; border-radius:12px; }
.departure-tariffs { grid-column:2/-1; font-size:12px; color:var(--muted); }
body.schedule-page .departure-tariffs summary { padding:0; cursor:pointer; font-size:12px; font-weight:400; }
.departure-more { border-top:1px solid var(--line); }
body.schedule-page .departure-more > summary { padding:16px 0; cursor:pointer; color:var(--accent); font-size:13px; font-weight:500; }
.route-group-footer { display:flex; flex-wrap:wrap; gap:8px 20px; justify-content:space-between; padding:16px 24px; border-top:1px solid var(--line); font-size:12px; color:var(--muted); }
.route-group-footer a { color:var(--accent); text-decoration:none; }
.schedule-group-note { color:var(--muted); font-size:13px; }
@media(max-width:760px) {
 .route-group-head { padding:18px; gap:14px; align-items:flex-start; }
 .route-group-photo { width:96px; height:108px; border-radius:12px; }
 body.editorial.schedule-page .route-group-copy h3 { font-size:21px; }
 .route-group-copy p { display:none; }
 .route-group-kicker { font-size:10px; letter-spacing:.04em; }
 .departure-dates { padding:14px 18px 4px; }
 .departure-row { grid-template-columns:56px minmax(0,1fr); gap:10px 14px; padding:16px 0; }
 .departure-offer { grid-column:1/-1; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:2px 10px; }
 .departure-offer strong { font-size:21px; }
 .departure-offer small { grid-column:1; }
 body.editorial.schedule-page .departure-offer .btn { grid-column:2; grid-row:1/3; margin:0; max-width:190px; }
 .archive-route .departure-offer .btn { grid-column:1/-1; }
 .departure-tariffs { grid-column:1/-1; }
 .route-group-footer { padding:14px 18px; }
}

#trip-photos, #trip-report, #zapis, #pay-box, #oplata, .book-aside { scroll-margin-top:90px; }

body.editorial[class] .brand img { width:56px; height:34px; border-radius:0; object-fit:contain; }

/* Warm dotted directions remain distinct from the blue rivers. */
body.editorial[class] .atlas-map .m-ray { stroke:#a84224 !important; stroke-width:2.5; stroke-dasharray:2 2 !important; stroke-linecap:round; marker-end:none; opacity:.7; }
body.editorial[class] .atlas-map .m-ray.is-active { stroke:#8e321b !important; stroke-width:4; opacity:1; }
body.editorial[class] .rc { border:1px solid var(--line); border-radius:18px; overflow:hidden; }
body.editorial[class] .rc-main { padding:16px; gap:14px; color:var(--ink); text-decoration:none; }
body.editorial[class] .rc-main img, body.editorial[class] .rc-noimg { border:0; border-radius:12px; }
.rc-card-action { grid-column:2; color:var(--accent); font-size:12px; }
body.editorial[class] .rc:has(.rc-main:hover) { border-color:var(--accent); }
body.editorial[class] .atlas-map .m-ray { opacity:0; stroke-dashoffset:0; }
body.editorial[class] .atlas-map .m-ray.is-active { opacity:1; animation:none; }
body.editorial[class] .rcards { grid-auto-rows:max-content; }
body.editorial[class] .rc-num { left:22px; top:22px; border:0; border-radius:6px; }

/* Booking cover shares the card's exact edges at every viewport width. */
body.editorial.tour-page .book-card { --book-padding:24px; padding:var(--book-padding); }
@media (min-width: 1081px) {
  body.editorial.tour-page .tour-side {
    position: sticky;
    top: 92px;
    align-self: start;
    max-height: calc(100dvh - 104px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    padding-right: 4px;
  }
}
body.editorial.tour-page .book-cover {
  display:block; width:calc(100% + 2 * var(--book-padding)); max-width:none;
  margin:calc(-1 * var(--book-padding)) calc(-1 * var(--book-padding)) 24px;
  height:auto; max-height:none; aspect-ratio:16 / 10;
  border:0; border-radius:21px 21px 0 0;
}
body.editorial.tour-page .book-cover img { display:block; width:100%; height:100%; max-width:none; object-fit:cover; border-radius:0; }
body.editorial.tour-page .book-cover::after { background:linear-gradient(180deg,transparent 25%,rgba(10,14,18,.88)); }
body.editorial.tour-page .book-cover figcaption { left:24px; right:24px; bottom:20px; gap:6px; }
body.editorial.tour-page .book-cover-title { font-size:clamp(17px,1.5vw,21px); line-height:1.2; }
body.editorial.tour-page .seat-row { gap:10px; }
.seat-status-dot { flex:0 0 8px; width:8px; height:8px; border-radius:50%; background:var(--accent); }
body.editorial.home .legend-preview { grid-column:1 / -1; display:flex; align-items:center; gap:14px; margin:6px 0; min-width:0; }
body.editorial.home .legend-thumb { display:block; flex:0 0 88px; width:88px; height:72px; object-fit:cover; border-radius:12px; }
body.editorial.home .legend-preview .legend-title { flex:1; min-width:0; overflow-wrap:normal; word-break:normal; }
@media(max-width:420px) {
  body.editorial.tour-page .book-card { --book-padding:18px; }
  body.editorial.tour-page .book-cover figcaption { left:18px; right:18px; }
}
@media(max-width:600px) {
  body.editorial.home .legend-card { grid-template-columns:minmax(0,1fr); }
  body.editorial.home .legend-date { flex-wrap:wrap; gap:8px 14px; }
  body.editorial.home .legend-preview { gap:12px; }
  body.editorial.home .legend-thumb { flex-basis:72px; width:72px; height:64px; }
  body.editorial.home .legend-preview .legend-title { font-size:20px; line-height:1.25; }
}
@media(max-width:360px) {
  body.editorial.home .legend-thumb { flex-basis:56px; width:56px; height:56px; }
  body.editorial.home .legend-preview { gap:10px; }
}

/* Narrow-screen layouts: give labels and long route names their own space. */
@media(max-width:600px) {
  body.editorial .book-form .row2 { grid-template-columns:minmax(0,1fr); }
  body.editorial .book-form :is(label,fieldset,input,select,textarea) { min-width:0; }
}
@media(max-width:420px) {
  body.schedule-page .route-group-head { flex-direction:column; align-items:stretch; }
  body.schedule-page .route-group-photo { width:100%; height:auto; aspect-ratio:16 / 9; }
  body.schedule-page .route-group-copy { width:100%; }
  body.schedule-page .departure-offer { grid-template-columns:minmax(0,1fr); }
  body.editorial.schedule-page .departure-offer .btn { grid-column:1; grid-row:auto; max-width:none; width:100%; margin-top:8px; }
  body.editorial .book-form .option { grid-template-columns:20px minmax(0,1fr); }
  body.editorial .book-form .option-price { grid-column:2; text-align:left; }
  body.editorial.home .expedition-journal-grid { grid-template-columns:minmax(0,1fr); }
  body.editorial.home .expedition-memory:nth-child(n) { padding-top:0; }
  body.editorial.home .expedition-memory:nth-child(n) img { height:auto; aspect-ratio:4 / 3; object-fit:cover; }
}

/* ---------- Language Switcher (RU | EN) ---------- */
.lang-switch {
  display:inline-flex; align-items:center; gap:2px; padding:3px;
  border:1px solid var(--line-2); border-radius:999px;
  background:rgba(30,33,37,.75); margin-left:auto; flex-shrink:0;
}
.nav + .lang-switch { margin-left:0; }
.lang-switch a {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:32px; min-height:28px; padding:2px 8px; border-radius:999px;
  font:700 11px/1 var(--mono); letter-spacing:.05em; text-decoration:none;
  color:var(--muted); transition:background-color 150ms, color 150ms;
}
.lang-switch a:hover { color:var(--ink); }
.lang-switch a.is-active {
  background:var(--accent); color:var(--on-accent);
}
@media(max-width:1180px) {
  .header-row .lang-switch { margin-left:auto; }
  .header-row .header-call { margin-left:0; }
  .header-burger-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    padding:10px;
    background:var(--bg-2);
    border:1px solid var(--line-2);
    border-radius:12px;
    cursor:pointer;
    color:var(--ink);
    margin-left:8px;
    transition:background-color 150ms, border-color 150ms;
  }
  .header-burger-btn span {
    display:block;
    width:20px;
    height:2px;
    background:currentColor;
    border-radius:2px;
  }
}
@media(min-width:1181px) {
  .header-burger-btn { display:none; }
}

/* ---------- Native Modal Drawer for Mobile / Tablet Navigation ---------- */
.site-drawer {
  position:fixed;
  inset:0 auto 0 0;
  width:min(340px, 86dvw);
  height:100dvh;
  max-height:100dvh;
  margin:0;
  padding:0;
  background:rgba(20,23,27,0.97);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
  border:0;
  border-right:1px solid rgba(255,255,255,0.12);
  color:var(--ink);
  box-shadow:16px 0 40px rgba(0,0,0,0.55);
  display:grid;
  grid-template-rows:auto 1fr auto;
  overflow:hidden;
  transform:translateX(-100%);
  transition:transform 280ms cubic-bezier(0.2, 0.8, 0.3, 1), overlay 280ms allow-discrete, display 280ms allow-discrete;
}
.site-drawer[open] {
  transform:translateX(0);
}
.site-drawer::backdrop {
  background:rgba(0,0,0,0.65);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  opacity:0;
  transition:opacity 280ms ease, overlay 280ms allow-discrete, display 280ms allow-discrete;
}
.site-drawer[open]::backdrop {
  opacity:1;
}
@starting-style {
  .site-drawer[open] {
    transform:translateX(-100%);
  }
  .site-drawer[open]::backdrop {
    opacity:0;
  }
}
.drawer-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px 16px;
  border-bottom:1px solid var(--line);
}
.drawer-header .brand {
  gap:8px;
}
.drawer-header .brand img {
  width:42px;
  height:26px;
}
.drawer-header .brand span {
  font-size:15px;
}
.drawer-close {
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--bg-2);
  border:1px solid var(--line-2);
  border-radius:50%;
  color:var(--ink);
  font-size:16px;
  cursor:pointer;
  transition:background-color 150ms, color 150ms;
}
.drawer-close:hover {
  background:var(--accent);
  color:var(--on-accent);
}
.drawer-nav {
  display:flex;
  flex-direction:column;
  overflow-y:auto;
  padding:10px 12px;
  gap:2px;
  overscroll-behavior:contain;
}
.drawer-link {
  display:flex;
  flex-direction:column;
  padding:10px 14px;
  border-radius:12px;
  text-decoration:none;
  color:var(--ink);
  transition:background-color 150ms, color 150ms;
}
.drawer-link span {
  font-size:15px;
  font-weight:600;
  line-height:1.25;
}
.drawer-link small {
  font-size:12px;
  color:var(--muted);
  margin-top:2px;
}
.drawer-link:hover,
.drawer-link.is-active {
  background:color-mix(in srgb,var(--accent) 14%,var(--surface));
  color:var(--accent);
}
.drawer-footer {
  padding:14px 16px calc(14px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);
  display:grid;
  gap:10px;
  background:rgba(16,18,22,0.92);
}
.drawer-messengers {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  font-size:13px;
}
.drawer-messengers a {
  color:var(--muted);
  text-decoration:none;
}
.drawer-messengers a:hover {
  color:var(--accent);
}

/* ---------- App-like Bottom Navigation Dock on Mobile/Tablet ---------- */
@media(max-width:1180px) {
  body.editorial[class] {
    padding-bottom:calc(74px + env(safe-area-inset-bottom)) !important;
  }
  body.editorial.tour-page[class] {
    padding-bottom:calc(76px + env(safe-area-inset-bottom)) !important;
  }
  body.editorial[class] .mobile-dock,
  body.editorial.home[class] .mobile-dock,
  body.editorial.schedule-page[class] .mobile-dock {
    position:fixed; left:0; right:0; bottom:0; z-index:45;
    inset:auto 0 0 0;
    display:flex !important; align-items:stretch; justify-content:space-around;
    gap:4px; padding:6px 8px calc(6px + env(safe-area-inset-bottom));
    background:rgba(20,23,26,.96); border:0; border-top:1px solid var(--line);
    border-radius:0; box-shadow:0 -8px 28px rgba(0,0,0,.38);
    backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
    overflow:hidden;
  }
  body.editorial[class] .mobile-dock a,
  body.editorial[class] .mobile-dock-btn {
    flex:1 1 0; min-width:0; min-height:50px;
    padding:5px 4px; border:0; background:transparent; border-radius:10px;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:4px; color:var(--muted); text-decoration:none;
    font:600 11px/1.1 var(--text); text-transform:none; letter-spacing:0;
    cursor:pointer; transition:color 140ms ease, background-color 140ms ease;
  }
  body.editorial[class] .mobile-dock a svg,
  body.editorial[class] .mobile-dock-btn svg {
    width:20px; height:20px; flex-shrink:0; opacity:.88;
  }
  body.editorial[class] .mobile-dock a[aria-current="page"] {
    background:color-mix(in srgb,var(--accent) 16%,var(--surface));
    color:var(--accent);
  }
  body.editorial[class] .mobile-dock a[aria-current="page"] svg {
    opacity:1;
  }

  /* Dedicated Tour Page Action Bar (clean single bottom bar) */
  body.editorial.tour-page[class] .mobile-dock {
    display:none !important;
  }
  body.editorial.tour-page[class] .mobile-bar {
    position:fixed !important;
    bottom:0 !important;
    left:0 !important;
    right:0 !important;
    z-index:90 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:14px !important;
    padding:10px 18px calc(10px + env(safe-area-inset-bottom)) !important;
    background:rgba(18,22,26,.95) !important;
    backdrop-filter:blur(20px) !important;
    -webkit-backdrop-filter:blur(20px) !important;
    border-radius:0 !important;
    border:0 !important;
    border-top:1px solid rgba(255,255,255,.14) !important;
    box-shadow:0 -8px 24px rgba(0,0,0,.4) !important;
    transition:transform 260ms cubic-bezier(.2,.8,.3,1), opacity 260ms ease !important;
  }
  body.editorial.tour-page[class] .mobile-bar .price {
    font-family:var(--display); font-size:20px; font-weight:700; color:var(--accent); line-height:1.15;
  }
  body.editorial.tour-page[class] .mobile-bar .btn {
    min-height:46px; font-size:14px; font-weight:600; border-radius:12px; padding:10px 22px;
  }
  body.editorial.tour-page[class] .mobile-bar.is-hidden {
    opacity:0; pointer-events:none; transform:translateY(120%);
  }
}

/* ---------- Mobile Horizontal Swipe Gallery (Carousel) ---------- */
@media(max-width:760px) {
  body.editorial.tour-page[class] .mosaic {
    display:flex !important;
    flex-direction:row !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    gap:12px !important;
    height:min(52dvh, 360px) !important;
    padding:0 16px !important;
    margin:0 -16px !important;
    scrollbar-width:none !important;
    border-radius:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  body.editorial.tour-page[class] .mosaic::-webkit-scrollbar {
    display:none !important;
  }
  body.editorial.tour-page[class] .mosaic a {
    flex:0 0 86% !important;
    width:86% !important;
    height:100% !important;
    scroll-snap-align:center;
    border-radius:20px !important;
    overflow:hidden !important;
    display:block !important;
    box-shadow:0 8px 24px rgba(0,0,0,.35) !important;
  }
  body.editorial.tour-page[class] .mosaic a img {
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
  }
  .mosaic-badge {
    position:absolute;
    left:28px;
    bottom:14px;
    z-index:3;
    padding:4px 10px;
    border-radius:999px;
    background:rgba(18,22,26,.8);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    color:#fff;
    font:600 12px/1 var(--mono);
    border:1px solid rgba(255,255,255,.18);
    box-shadow:0 2px 8px rgba(0,0,0,.3);
  }
  .mosaic-all {
    position:absolute !important;
    right:28px !important;
    bottom:14px !important;
    z-index:3;
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    background:rgba(18,22,26,.85) !important;
    color:#fff !important;
    border:1px solid rgba(255,255,255,.2) !important;
    box-shadow:0 2px 8px rgba(0,0,0,.3);
    font-size:12px !important;
    padding:6px 12px !important;
    min-height:36px !important;
  }
}
@media(min-width:761px) {
  .mosaic-badge { display:none; }
}
@media(max-width:1000px) {
  body.editorial[class] .form-layout { grid-template-columns:minmax(0,1fr); }
  body.editorial[class] .form-layout > * { min-width:0; }
}
@media(max-width:420px) {
  body.editorial[class] .corporate-head h1 { font-size:clamp(32px, 9.5vw, 42px); }
  body.editorial[class] .corp-offer .price { font-size:clamp(34px, 10vw, 48px); white-space:normal; }
  body.editorial[class] .mobile-dock { padding-inline:4px; gap:1px; }
  body.editorial[class] .mobile-dock a { min-width:40px; padding:4px 4px; font-size:9.5px; gap:3px; }
  body.editorial[class] .mobile-dock a svg { width:17px; height:17px; }
}

/* ---------- Separate Adult & Child Ticket Category Cards ---------- */
.people-categories {
  display:grid; gap:10px;
}
.people-head {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px;
}
.people-legend {
  font:700 11px/1.2 var(--mono); text-transform:uppercase; letter-spacing:.06em; color:var(--muted);
}
.people-presets {
  display:flex; flex-wrap:wrap; gap:6px;
}
.cat-chip {
  appearance:none; border:1px solid var(--line-2); border-radius:999px;
  background:var(--bg-2); color:var(--ink-2);
  padding:5px 10px; font:600 11px/1.1 var(--text); cursor:pointer;
  transition:border-color 150ms, background-color 150ms, color 150ms;
}
.cat-chip:hover, .cat-chip.is-active {
  border-color:var(--accent);
  background:color-mix(in srgb,var(--accent) 16%,var(--surface));
  color:var(--accent);
}
body.editorial[class] .book-form .people {
  display:grid; grid-template-columns:1fr; gap:10px;
}
.cat-card {
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px;
  padding:12px 14px; border:1px solid var(--line); border-radius:14px;
  background:var(--bg-2); transition:border-color 160ms, background-color 160ms, box-shadow 160ms;
}
.cat-card.is-selected {
  border-color:var(--accent);
  background:color-mix(in srgb,var(--accent) 10%,var(--surface));
  box-shadow:inset 0 0 0 1px rgba(169,217,232,.22);
}
.cat-card-info {
  display:grid; gap:3px; min-width:0; cursor:pointer;
}
.cat-badge {
  display:inline-flex; align-items:center; width:fit-content;
  padding:3px 8px; border-radius:6px;
  background:rgba(169,217,232,.14); color:var(--accent);
  font:700 10px/1.1 var(--mono); text-transform:uppercase; letter-spacing:.05em;
}
.cat-badge-child {
  background:rgba(147,174,130,.2); color:#b8d8a6;
}
.cat-price {
  font:700 18px/1.15 var(--display); color:var(--ink); letter-spacing:-.02em;
}
.cat-sub {
  font-size:12px; color:var(--muted); line-height:1.25;
}
.cat-card .stepper {
  border:1px solid var(--line-2); border-radius:12px; background:var(--surface);
  padding:2px; display:inline-grid; grid-template-columns:44px 44px 44px; grid-template-rows:44px; align-items:center;
}
.cat-card .stepper .st-label {
  display:none !important;
}
.cat-card .stepper button {
  width:44px; height:44px; min-height:44px; border:0; background:transparent; color:var(--ink);
  font:700 20px/1 var(--mono); cursor:pointer; border-radius:10px; padding:0;
  display:flex; align-items:center; justify-content:center;
  transition:background-color 140ms ease, color 140ms ease;
}
.cat-card .stepper button:hover {
  background:color-mix(in srgb,var(--accent) 18%,var(--surface)); color:var(--accent);
}
.cat-card .stepper input {
  width:44px; height:44px; min-height:44px; border:0; background:transparent; color:var(--ink);
  text-align:center; font:700 16px/1 var(--mono); padding:0;
}
.book-total small {
  display:block; font:400 12px/1.3 var(--text); color:var(--muted); margin-top:2px;
}
@media(max-width:380px) {
  .cat-card { grid-template-columns:1fr; gap:10px; }
  .cat-card .stepper { justify-self:start; }
}

/* ---------- Sberbank QR Payment & Telegram Group Card on Thanks Page ---------- */
.booking-summary-card,
.tg-group-card,
.pay-card,
.oferta-box {
  margin:22px 0; padding:22px; border:1px solid var(--line);
  border-radius:18px; background:var(--surface);
}
.booking-summary-head {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px;
  margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid var(--line);
}
.booking-opt-pill {
  padding:4px 10px; border-radius:999px; background:var(--bg-2); border:1px solid var(--line-2);
  font:600 12px/1.2 var(--text); color:var(--accent);
}
.booking-summary-items {
  display:grid; gap:8px; font-size:15px;
}
.booking-summary-items > div {
  display:flex; justify-content:space-between; align-items:baseline; gap:12px;
}
.booking-summary-total {
  margin-top:6px; padding-top:10px; border-top:1px solid var(--line);
  font-size:18px;
}
.booking-summary-total strong {
  color:var(--accent); font-size:22px;
}
.tg-group-card {
  border-color:var(--accent);
  background:linear-gradient(135deg, color-mix(in srgb,var(--accent) 14%,var(--surface)), var(--surface));
  display:grid; gap:16px;
}
.tg-group-card h2, .pay-card-head h2 {
  font-size:clamp(22px,2.5vw,30px); margin:6px 0 8px;
}
.tg-group-card p { margin:0; color:var(--ink-2); font-size:15px; }
.pay-card-head {
  display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:16px;
  margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid var(--line);
}
.pay-amount-badge {
  padding:10px 16px; border-radius:14px; background:var(--bg-2); border:1px solid var(--line-2);
  text-align:right; flex-shrink:0;
}
.pay-amount-badge span { display:block; font:600 11px/1.2 var(--mono); text-transform:uppercase; color:var(--muted); }
.pay-amount-badge strong { font:800 24px/1.15 var(--display); color:var(--accent); }
.pay-card-body {
  display:grid; grid-template-columns:260px minmax(0,1fr); gap:24px; align-items:start;
}
.pay-qr-col {
  display:grid; gap:10px; justify-items:center; text-align:center;
}
.pay-qr-box {
  width:240px; height:240px; padding:12px; border-radius:16px;
  background:#fff; border:1px solid var(--line); box-sizing:border-box;
  display:flex; align-items:center; justify-content:center;
}
.pay-qr-box svg { width:100%; height:100%; max-width:100%; max-height:100%; aspect-ratio:1/1; display:block; }
.pay-qr-box-sm { width:200px; height:200px; margin-top:10px; }
.pay-qr-caption { font-size:12px; color:var(--muted); line-height:1.35; }
.pay-deposit-details { font-size:13px; color:var(--accent); cursor:pointer; }
.pay-req-list {
  margin:0; display:grid; gap:10px;
}
.pay-req-list > div {
  padding:10px 12px; border-radius:12px; background:var(--bg-2); border:1px solid var(--line);
  display:grid; gap:4px;
}
.pay-req-list dt {
  font:600 11px/1.2 var(--mono); text-transform:uppercase; letter-spacing:.04em; color:var(--muted);
}
.pay-req-list dd {
  margin:0; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px;
  font-size:14px; color:var(--ink); word-break:break-word;
}
.pay-req-list code {
  font:600 13px/1.3 var(--mono); color:var(--accent-2);
}
.copy-btn {
  appearance:none; border:1px solid var(--line-2); border-radius:8px;
  background:var(--surface); color:var(--ink-2);
  padding:4px 10px; font:600 11px/1.2 var(--mono); cursor:pointer;
}
.copy-btn:hover, .copy-btn.is-copied {
  border-color:var(--accent); color:var(--accent);
}
.pay-actions {
  display:flex; flex-wrap:wrap; gap:10px; margin-top:16px;
}
.pay-qr-btns, .instant-qr-actions {
  display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin-top:4px;
}
.pay-qr-btns .copy-btn, .instant-qr-actions .copy-btn {
  text-decoration:none; display:inline-flex; align-items:center;
}
.instant-pay-box {
  margin-top:8px; border:1px solid var(--line-2); border-radius:14px;
  background:var(--bg-2); padding:10px 14px;
}
.instant-pay-box summary {
  cursor:pointer; font:600 13px/1.3 var(--text); color:var(--accent);
}
.instant-pay-body {
  display:grid; gap:12px; margin-top:12px; padding-top:12px; border-top:1px solid var(--line);
}
.instant-qr-wrap {
  display:grid; justify-items:center; gap:8px;
}
.instant-qr-wrap .pay-qr-box-sm {
  margin-top:0;
}
.instant-req {
  display:grid; gap:8px; font-size:13px;
}
.instant-req > div {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px;
  padding:8px 10px; border-radius:10px; background:var(--surface); border:1px solid var(--line);
}
.instant-req small {
  display:block; width:100%; font:600 10px/1.1 var(--mono); text-transform:uppercase; color:var(--muted);
}
.instant-req code {
  font:600 12px/1.2 var(--mono); color:var(--accent-2);
}
.instant-pay-note {
  margin:0; font-size:12px; color:var(--muted); line-height:1.35;
}
.pay-method-highlight {
  display:grid !important; gap:8px !important; padding:14px 16px !important; border-radius:14px !important;
  background:rgba(169,217,232,.08) !important; border:1px solid rgba(169,217,232,.35) !important;
}
.pay-method-badge {
  display:inline-block; align-self:start; font:700 10px/1.2 var(--mono); text-transform:uppercase; letter-spacing:.05em;
  padding:3px 8px; border-radius:6px; background:#2f7a4a; color:#fff;
}
.pay-phone-row {
  display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;
}
.pay-phone-row code {
  font:700 18px/1.2 var(--mono) !important; color:#a9d9e8 !important;
}
.copy-btn-accent {
  background:var(--accent) !important; color:#0e1114 !important; border-color:var(--accent) !important;
  font-weight:700 !important; padding:6px 12px !important;
}
.copy-btn-accent:hover { filter:brightness(1.1); }
.pay-recipient-note {
  font-size:13px; color:var(--ink-2); margin:0; line-height:1.4;
}
.trust-link-btn {
  appearance:none; border:0; background:none; padding:0; font:inherit;
  color:var(--accent); text-decoration:underline; text-underline-offset:3px; cursor:pointer;
}
.is-invalid-field {
  border-color:#e56b55 !important;
  box-shadow:0 0 0 2px rgba(229,107,85,.28) !important;
}
@media(max-width:760px) {
  .pay-card-body { grid-template-columns:1fr; }
  .pay-qr-col { justify-self:center; }
  .booking-summary-card, .tg-group-card, .pay-card, .oferta-box { padding:16px; }
}

/* ---------- Индикатор прогресса чтения страницы ---------- */
.scroll-progress-bar {
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:linear-gradient(90deg, var(--accent), #76d0e8);
  z-index:1000; transition:width 60ms linear; pointer-events:none;
}

/* ---------- Карточки выбора вариантов бронирования (Modern Card Guidance) ---------- */
.options { display:grid; gap:8px; margin:12px 0; border:0; padding:0; }
.options .option {
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 14px; border-radius:12px; border:1.5px solid var(--line);
  background:var(--bg-2); cursor:pointer;
  transition:border-color 160ms ease, background 160ms ease, transform 160ms ease;
}
.options .option:hover {
  border-color:var(--line-2); transform:translateY(-1px);
}
.options .option:has(input:checked) {
  border-color:var(--accent);
  background:color-mix(in srgb, var(--accent) 12%, var(--bg-2));
  box-shadow:0 0 0 1px var(--accent);
}

/* ---------- Таймлайн программы выезда «День за шагом» ---------- */
body.editorial.tour-page .timeline {
  list-style:none; padding:0 0 0 22px; margin:18px 0;
  position:relative; border-left:2px solid var(--line);
}
body.editorial.tour-page .timeline li {
  position:relative; padding-bottom:18px; line-height:1.45;
}
body.editorial.tour-page .timeline li:last-child {
  padding-bottom:0;
}
body.editorial.tour-page .timeline li:not(.tl-day)::before {
  content:""; position:absolute; left:-28px; top:6px;
  width:10px; height:10px; border-radius:50%;
  background:var(--accent); border:2px solid var(--bg);
  box-shadow:0 0 8px rgba(169,217,232,.4);
}
body.editorial.tour-page .timeline .tl-day {
  margin:18px 0 12px -22px; padding:4px 12px;
  font:700 12px/1.2 var(--mono); text-transform:uppercase; letter-spacing:.06em;
  background:var(--surface); border:1px solid var(--line); border-radius:999px;
  display:inline-block; color:var(--accent);
}
body.editorial.tour-page .timeline .tl-time {
  font:700 13px/1.2 var(--mono); color:var(--accent);
  margin-right:8px; display:inline-block;
}

/* ---------- Списки «Входит» и «Взять с собой» ---------- */
body.editorial .lists ul.checks li {
  position:relative; padding-left:24px; list-style:none; margin-bottom:8px;
}
body.editorial .lists ul.checks li::before {
  content:"✓"; position:absolute; left:0; top:0;
  color:#38bdf8; font-weight:800; font-size:14px;
}
body.editorial .lists ul.dashes li {
  position:relative; padding-left:24px; list-style:none; margin-bottom:8px;
}
body.editorial .lists ul.dashes li::before {
  content:"•"; position:absolute; left:4px; top:-2px;
  color:var(--accent); font-size:18px;
}

/* ---------- Личный кабинет участника и Памятка выезда (/my, /b/{token}) ---------- */
.nav-my-link {
  font-weight:700 !important; color:var(--accent) !important;
}
.drawer-link-my {
  background:rgba(169,217,232,.08) !important; border:1px solid rgba(169,217,232,.25) !important;
  border-radius:14px !important; margin-bottom:6px !important;
}
.drawer-link-my span { color:var(--accent) !important; font-weight:800 !important; }

/* Памятка выезда (/b/{token}) */
.booking-view { padding-top:24px; padding-bottom:80px; }
.bv-head { margin-bottom:24px; }
.bv-meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.bv-badge { font:700 11px/1.2 var(--mono); text-transform:uppercase; letter-spacing:.06em; padding:3px 9px; border-radius:6px; background:var(--accent); color:#0c1014; }
.bv-countdown { font:700 12px/1.2 var(--mono); color:var(--accent); }
.bv-head h1 { font-size:clamp(26px, 3.5vw, 42px); margin:0 0 6px; letter-spacing:-.02em; }
.bv-date { font-size:16px; color:var(--muted); margin:0; }

.bv-grid { display:grid; grid-template-columns:minmax(0, 1fr) 340px; gap:24px; align-items:start; }
.bv-main { display:grid; gap:20px; }
.bv-side { display:grid; gap:20px; position:sticky; top:92px; }

/* Карточка статуса */
.bv-status-card { display:flex; gap:18px; align-items:flex-start; padding:20px 24px; border-radius:18px; }
.bv-status-icon { flex:0 0 36px; width:36px; height:36px; border-radius:50%; display:grid; place-items:center; font-weight:900; font-size:18px; }
.bv-status-paid { background:rgba(47,122,74,.12); border-color:#2f7a4a; }
.bv-status-paid .bv-status-icon { background:#2f7a4a; color:#fff; }
.bv-status-confirmed { background:rgba(217,119,6,.12); border-color:#d97706; }
.bv-status-confirmed .bv-status-icon { background:#d97706; color:#fff; }
.bv-status-new { background:rgba(169,217,232,.1); border-color:var(--accent); }
.bv-status-new .bv-status-icon { background:var(--accent); color:#0c1014; }
.bv-status-waitlist { background:rgba(156,163,175,.1); border-color:#9ca3af; }
.bv-status-waitlist .bv-status-icon { background:#9ca3af; color:#fff; }
.bv-status-label { font:700 11px/1.2 var(--mono); text-transform:uppercase; letter-spacing:.05em; display:block; margin-bottom:4px; opacity:.85; }
.bv-status-info h3 { margin:0 0 6px; font-size:18px; line-height:1.3; }

/* Telegram-чат карточка */
.bv-tg-card { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; background:color-mix(in srgb, #0088cc 10%, var(--surface)); border-color:rgba(0,136,204,.3); }
.bv-tg-content { flex:1 1 280px; }
.bv-tg-content h2 { margin:0 0 6px; font-size:20px; }
.bv-tg-content p { margin:0; font-size:14px; color:var(--muted); }

/* Сбор и гиды */
.bv-gather-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:14px; }
.bv-gather-grid small { display:block; font:600 11px/1.2 var(--mono); text-transform:uppercase; color:var(--muted); margin-bottom:2px; }
.bv-gather-grid strong { font-size:15px; color:var(--ink); }
.bv-gather-actions { margin-top:16px; padding-top:14px; border-top:1px solid var(--line); }

/* Интерактивный чек-лист снаряжения */
.bv-gear-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:12px; }
.bv-gear-head h2 { margin:0 0 4px; font-size:20px; }
.bv-gear-counter { font:700 13px/1.2 var(--mono); padding:4px 10px; border-radius:999px; background:var(--surface); border:1px solid var(--line); color:var(--accent); }
.bv-gear-list { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.bv-gear-item { display:flex; align-items:center; gap:12px; padding:10px 14px; border-radius:10px; border:1px solid var(--line); background:var(--bg-2); cursor:pointer; font-size:14px; transition:border-color 140ms ease, background 140ms ease; }
.bv-gear-item:hover { border-color:var(--line-2); }
.bv-gear-item:has(input:checked) { border-color:rgba(47,122,74,.4); background:rgba(47,122,74,.08); text-decoration:line-through; opacity:.75; }
.bv-gear-item input { width:18px; height:18px; accent-color:#2f7a4a; flex-shrink:0; }
.bv-gear-done-msg { margin:14px 0 0; padding:10px 14px; border-radius:10px; background:rgba(47,122,74,.15); color:#2f7a4a; font-weight:700; text-align:center; }

/* Правая колонка памятки */
.bv-pay-box h3, .bv-club-box h3 { margin:0 0 10px; font-size:18px; }
.bv-pay-ok { text-align:center; padding:14px 0; }
.bv-check-circle { display:inline-grid; place-items:center; width:44px; height:44px; border-radius:50%; background:#2f7a4a; color:#fff; font-size:22px; font-weight:900; margin-bottom:8px; }
.bv-pay-sum { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:10px; }
.bv-pay-sum strong { font:800 24px/1 var(--display); color:var(--accent); }
.bv-pay-receipt { margin-top:14px; }

/* Кабинет «Мои выезды» (/my) */
.participant-page { padding-top:24px; padding-bottom:80px; }
.part-head { margin-bottom:32px; }
.part-welcome { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:20px; }
.part-welcome h1 { font-size:clamp(28px, 4vw, 42px); margin:0 0 4px; letter-spacing:-.02em; }
.part-logout { color:var(--muted); text-decoration:underline; font-size:13px; }

/* Клубная карта */
.part-tier-card {
  padding:24px 28px; border-radius:22px;
  background:linear-gradient(135deg, rgba(38,43,48,.95), rgba(20,24,28,.95));
  border:1px solid rgba(169,217,232,.3); box-shadow:0 12px 40px rgba(0,0,0,.28);
  position:relative; overflow:hidden;
}
.part-tier-card::before {
  content:""; position:absolute; right:-40px; top:-40px; width:160px; height:160px;
  border-radius:50%; background:radial-gradient(circle, rgba(169,217,232,.18), transparent 70%);
  pointer-events:none;
}
.part-tier-meta { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.part-tier-pill { font:800 11px/1.2 var(--mono); text-transform:uppercase; letter-spacing:.06em; padding:3px 10px; border-radius:999px; background:var(--accent); color:#0e1215; }
.part-tier-count { font:600 13px/1.2 var(--mono); color:var(--muted); }
.part-tier-title { font-size:clamp(22px, 2.5vw, 32px); margin:0 0 6px; letter-spacing:-.02em; color:#fff; }
.part-tier-desc { margin:0; font-size:15px; color:var(--ink-2); max-width:600px; line-height:1.45; }

.part-section { margin-bottom:36px; }
.part-section h2 { font-size:22px; margin:0 0 16px; letter-spacing:-.01em; }
.part-trips-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:20px; }
.part-trip-card { display:flex; flex-direction:column; border-radius:18px; overflow:hidden; padding:0; }
.part-trip-cover { position:relative; aspect-ratio:16/9; width:100%; overflow:hidden; background:#1b1f24; }
.part-trip-cover img { width:100%; height:100%; object-fit:cover; display:block; }
.part-trip-status { position:absolute; top:12px; right:12px; font:700 11px/1.2 var(--mono); text-transform:uppercase; padding:3px 8px; border-radius:6px; background:rgba(0,0,0,.75); color:#fff; backdrop-filter:blur(8px); }
.part-trip-badge-done { position:absolute; bottom:12px; right:12px; font:700 11px/1.2 var(--mono); text-transform:uppercase; padding:3px 8px; border-radius:6px; background:#2f7a4a; color:#fff; }
.part-trip-body { padding:18px 20px; display:flex; flex-direction:column; flex:1; }
.part-trip-date { font:700 12px/1.2 var(--mono); color:var(--accent); margin-bottom:4px; display:block; }
.part-trip-body h3 { font-size:18px; margin:0 0 6px; line-height:1.3; }
.part-trip-body h3 a { text-decoration:none; color:inherit; }
.part-trip-body h3 a:hover { color:var(--accent); }
.part-trip-actions { margin-top:auto; padding-top:14px; display:flex; gap:8px; flex-wrap:wrap; }

/* Страница входа без пароля (/my login) */
.participant-login-page { min-height:65vh; display:grid; place-items:center; padding:40px 16px 80px; }
.part-login-card { max-width:440px; width:100%; padding:32px 28px; text-align:center; border-radius:24px; }
.part-login-icon { font-size:42px; margin-bottom:12px; }
.part-login-card h1 { font-size:28px; margin:0 0 8px; letter-spacing:-.02em; }
.part-login-card p { font-size:14px; line-height:1.45; margin:0 0 20px; }
.part-login-form { display:grid; gap:16px; text-align:left; margin-bottom:20px; }
.part-login-form label span { display:block; font:600 12px/1.2 var(--mono); text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin-bottom:6px; }
.part-login-footer { padding-top:16px; border-top:1px solid var(--line); }

@media (max-width: 860px) {
  .bv-grid { grid-template-columns:1fr; }
  .bv-side { position:static; }
  .bv-gather-grid { grid-template-columns:1fr; }
}



