/* Страницы «Атласа»: выезд, маршрут, летопись, формы. Углы прямые, рамки 2px. */

/* ---------- tour header & gallery ---------- */
.tour-top { padding-top: var(--s6); padding-bottom: var(--s5); }
.tour-top h1 { font-size: clamp(48px, 7vw, 120px); max-width: 16ch; margin-bottom: var(--s5); }
.tour-strip { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3) var(--s6); }
.tour-when { display: flex; align-items: baseline; gap: var(--s3); }
.tour-when .num { font-size: clamp(40px, 4vw, 60px); color: var(--accent); }
.tour-when span:not(.num) { color: var(--muted); font: 700 13px/1 var(--mono); text-transform: uppercase; letter-spacing: 0.05em; }
.status { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border: 2px solid var(--ink); font: 700 12px/1 var(--mono); text-transform: uppercase; letter-spacing: 0.05em; }
.status-open { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.status-full { border-color: var(--accent); color: var(--accent-2); }
.status-cancelled { text-decoration: line-through; color: var(--muted); }
.mosaic { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 2px; height: min(64vh, 620px); position: relative; border: 2px solid var(--ink); background: var(--ink); box-shadow: var(--sheet-shadow); }
.mosaic a { display: block; overflow: hidden; background: var(--bg-2); }
.mosaic a:first-child { grid-row: span 2; }
.mosaic img, .mosaic .img-fallback { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease); }
.mosaic a:hover img { transform: scale(1.04); }
.mosaic.count-1 { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.mosaic.count-1 a:first-child { grid-row: auto; }
.mosaic.count-2 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr; }
.mosaic.count-2 a:first-child { grid-row: auto; }
.mosaic.count-3 { grid-template-columns: 2fr 1fr; }
.mosaic.count-4 a:nth-child(2) { grid-row: span 2; }
.mosaic-all { position: absolute; right: var(--s4); bottom: var(--s4); background: var(--surface); color: var(--ink); border-color: var(--ink); }
.mosaic-all:hover { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
@media (max-width: 760px) {
  .tour-top { padding-top: var(--s5); padding-bottom: var(--s5); }
  .tour-top .crumbs { margin-bottom: var(--s4); font-size: 10px; }
  .tour-top h1 { max-width: none; margin-bottom: var(--s5); font-size: clamp(38px, 11.5vw, 48px); line-height: .94; }
  .tour-strip { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--s3) var(--s4); align-items: center; }
  .tour-when { margin: 0; gap: var(--s2); }
  .tour-when .num { font-size: 42px; }
  .tour-strip .status { justify-self: start; min-height: 38px; }
  .tour-strip .lead { grid-column: 1 / -1; width: 100%; max-width: 100%; min-width: 0; margin: var(--s3) 0 0; font-size: 17px; line-height: 1.55; overflow-wrap: anywhere; }
  .mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 1.6fr 1fr; height: 70vh; }
  .mosaic a:first-child { grid-column: 1 / -1; grid-row: auto; }
  .mosaic a:nth-child(n+4) { display: none; }
  .mosaic.count-1 a:first-child, .mosaic.count-2 a:first-child { grid-column: 1 / -1; }
  .mosaic.count-1, .mosaic.count-2 { grid-template-rows: 1fr; height: min(50vh, 420px); }
  .mosaic.count-2 a:nth-child(2) { display: none; }
}

/* ---------- tour body ---------- */
.tour-body { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: var(--s8); padding-top: var(--s7); padding-bottom: var(--s9); align-items: start; }
.block { margin-bottom: var(--s8); }
.block h2 { font-size: clamp(36px, 4vw, 60px); }
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); border: 2px solid var(--ink); background: var(--surface); margin: 0 0 var(--s8); }
.facts div { padding: var(--s4); border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
.facts dt { font: 700 11px/1.3 var(--mono); color: var(--contour); text-transform: uppercase; letter-spacing: 0.05em; }
.facts dd { margin: 8px 0 0; font: 900 24px/1.05 var(--display); letter-spacing: -0.03em; }
.prose { max-width: 66ch; }
.prose p { color: var(--ink-2); }
.prose-lg p { font-size: 19px; }
.prose h2 { font-size: 36px; margin-top: var(--s7); }
.report { border-left: 4px solid var(--accent); padding-left: var(--s5); }
.report p { font-size: clamp(19px, 1.6vw, 22px); line-height: 1.5; color: var(--ink); }
.timeline { list-style: none; margin: 0; padding: 0; }
.timeline li { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: var(--s5); padding: var(--s4) 0; border-bottom: 1px solid var(--line); }
.tl-time { font: 700 16px/1.3 var(--mono); color: var(--accent); white-space: nowrap; }
.tl-text { color: var(--ink-2); }
.tl-day { display: block !important; font: 900 30px/1 var(--display); letter-spacing: -0.04em; padding: var(--s6) 0 var(--s2) !important; border-bottom: 2px solid var(--ink) !important; }
@media (max-width: 560px) { .timeline li { grid-template-columns: 1fr; gap: 4px; } }
.lists { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s7); }
.lists h2 { font-size: 36px; }
@media (max-width: 760px) { .lists { grid-template-columns: 1fr; } }
.checks, .dashes { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--s3); }
.checks li, .dashes li { position: relative; padding-left: 28px; }
.checks li::before { content: ""; position: absolute; left: 0; top: 7px; width: 14px; height: 8px; border-left: 2.5px solid var(--accent); border-bottom: 2.5px solid var(--accent); transform: rotate(-45deg); }
.dashes li::before { content: ""; position: absolute; left: 0; top: 12px; width: 14px; height: 2px; background: var(--ink); }
.date-list { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--ink); }
.date-list a { display: grid; grid-template-columns: 200px minmax(0, 1fr) auto; gap: var(--s5); align-items: baseline; padding: var(--s4) 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.date-list a:hover .dl-title { color: var(--accent-2); }
.dl-date { font: 700 14px/1.3 var(--mono); color: var(--accent); text-transform: uppercase; }
.dl-title { font-weight: 600; display: grid; gap: 2px; }
.dl-title small { font-weight: 400; color: var(--muted); font-size: 15px; }
@media (max-width: 600px) { .date-list a { grid-template-columns: 1fr; gap: 4px; } }
.tour-side { position: sticky; top: 92px; }
@media (max-width: 1080px) { .tour-body { grid-template-columns: 1fr; gap: var(--s6); } .tour-side { position: static; } }
.mobile-bar { display: none; }
@media (max-width: 1080px) {
  .mobile-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); position: fixed; left: 0; right: 0; bottom: 0; z-index: 25; padding: var(--s3) var(--gutter) max(var(--s3), env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--bg) 94%, transparent); backdrop-filter: blur(12px); border-top: 1px solid var(--line); transition: transform 300ms var(--ease); }
  .mobile-bar .price { font-size: 30px; }
  .mobile-bar.is-hidden { transform: translateY(110%); }
}
@media (max-width: 760px) {
  .tour { padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
  .mobile-bar { left: 8px; right: 8px; bottom: max(8px, env(safe-area-inset-bottom)); padding: 6px; border: 2px solid var(--ink); box-shadow: 5px 5px 0 color-mix(in srgb, var(--ink) 28%, transparent); }
  .mobile-bar .mb-info { flex: 1 1 auto; min-width: 0; overflow: hidden; }
  .mobile-bar .mb-info > span { min-width: 0; }
  .mobile-bar .mb-info img { width: 40px; height: 40px; }
  .mobile-bar .price { font-size: 26px; }
  .mobile-bar .muted { font-size: 12px; }
  .mobile-bar .btn { flex: 0 0 auto; min-height: 50px; padding: 0 16px; }
}

/* ---------- booking card & forms ---------- */
.book-card { background: var(--surface); border: 2px solid var(--ink); box-shadow: var(--sheet-shadow); padding: var(--s6) var(--s5); }
.book-card .price { font-size: 52px; display: block; margin-bottom: var(--s2); }
.seat-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); margin-bottom: var(--s5); font-size: 15px; }
.seat-dots { display: inline-grid; grid-auto-flow: column; grid-template-rows: repeat(2, 8px); gap: 3px; }
.seat-dots i { width: 8px; height: 8px; border: 1.5px solid var(--ink); }
.seat-dots i.on { background: var(--accent); border-color: var(--accent); }
.book-form { display: grid; gap: var(--s4); }
.book-form label { display: grid; gap: 6px; font-size: 14px; font-weight: 600; }
.book-form label small { font-weight: 400; color: var(--muted); }
input, select, textarea { font: 400 16px/1.4 var(--text); color: var(--ink); background: var(--bg); border: 2px solid var(--ink); padding: 12px 14px; width: 100%; min-height: 50px; transition: border-color 200ms, box-shadow 200ms; }
input::placeholder, textarea::placeholder { color: var(--muted); }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { outline: none; box-shadow: 4px 4px 0 var(--water); }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); }
.options { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.options legend { font-size: 14px; font-weight: 600; margin-bottom: 8px; padding: 0; }
.option { display: grid !important; grid-template-columns: 20px 1fr auto; align-items: center; gap: 12px !important; padding: 14px; border: 2px solid var(--ink); cursor: pointer; font-weight: 500 !important; transition: border-color 200ms, background-color 200ms; }
.option:has(input:checked) { border-color: var(--ink); background: var(--bg-2); }
.option input { width: 18px; height: 18px; min-height: 0; margin: 0; accent-color: var(--accent); }
.option-price { font: 900 20px/1 var(--display); letter-spacing: -0.03em; text-align: right; white-space: nowrap; display: grid; gap: 2px; }
.option-price small { font: 500 12px/1 var(--text); color: var(--muted); }
.consent { grid-template-columns: 20px 1fr !important; align-items: start; font-weight: 400 !important; color: var(--ink-2); }
.consent input { width: 18px; height: 18px; min-height: 0; margin: 2px 0 0; accent-color: var(--accent); }
.book-total { display: flex; justify-content: space-between; align-items: baseline; margin: 0; padding: var(--s3) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.book-total strong { font: 900 30px/1 var(--display); letter-spacing: -0.04em; }
.book-note { font-size: 14px; color: var(--muted); margin: 0; }
.book-trust { list-style: none; padding: var(--s4) 0 0; margin: var(--s4) 0 0; border-top: 1px solid var(--line-2); display: grid; gap: 8px; color: var(--muted); font-size: 12px; }
.book-trust li { position: relative; padding-left: 22px; }
.book-trust li::before { content: "✓"; position: absolute; left: 0; color: var(--accent); font-weight: 900; }
.book-submit button[aria-busy="true"] { cursor: wait; opacity: .76; }
.book-done { font-size: 19px; font-weight: 600; }
.book-card .btn + .btn { margin-top: var(--s2); }
.form-error { border-left: 4px solid var(--accent); background: var(--bg-2); padding: 12px 14px; font-weight: 600; font-size: 15px; }
.form-ok { border-left: 4px solid var(--ink); background: var(--bg-2); padding: 12px 14px; font-weight: 600; }

/* ---------- route page ---------- */
.route-hero { position: relative; min-height: 82vh; display: flex; align-items: flex-end; color: #fff; isolation: isolate; background: #0e1311; overflow: hidden; }
.route-hero-media { position: absolute; inset: 0; z-index: -2; }
.route-hero-media img, .route-hero-media .img-fallback { width: 100%; height: 100%; object-fit: cover; }
.route-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8, 12, 10, 0.4), rgba(8, 12, 10, 0) 35%, rgba(8, 12, 10, 0.85)); }
.route-hero-text { padding-top: var(--s9); padding-bottom: var(--s7); }
.route-hero h1 { font-size: clamp(56px, 9vw, 156px); margin-bottom: var(--s4); }
.route-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-image: linear-gradient(rgba(255, 255, 255, 0.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.12) 1px, transparent 1px); background-size: 180px 180px; }
.route-profile { margin-top: calc(var(--s7) * -1); position: relative; z-index: 2; }
.route-profile .profile { background: var(--surface); }
.route-hero .crumbs { color: rgba(255, 255, 255, 0.8); }
.route-hero .lead { color: rgba(255, 255, 255, 0.92); }

/* ---------- history ---------- */
.month { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: var(--s7); padding: var(--s7) 0; border-top: 2px solid var(--ink); }
.month-label .label { display: block; margin-bottom: 8px; }
.month-label { position: sticky; top: 92px; align-self: start; margin: 0; font: 900 clamp(44px, 4.6vw, 72px)/0.9 var(--display); letter-spacing: -0.045em; }
.month-label small { display: block; font: 700 12px/1.3 var(--mono); text-transform: uppercase; color: var(--contour); margin-top: 10px; letter-spacing: 0.05em; }
.month .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s6) var(--s5); }
.month .card-media { aspect-ratio: 4 / 3; }
.mini-stats { display: flex; gap: var(--s7); margin: var(--s5) 0 0; }
.mini-stats div { display: flex; flex-direction: column-reverse; }
.mini-stats dt { color: var(--muted); font-size: 15px; }
.mini-stats dd { margin: 0; font: 900 72px/0.85 var(--display); letter-spacing: -0.04em; color: var(--accent); }
@media (max-width: 900px) { .month { grid-template-columns: 1fr; gap: var(--s5); } .month-label { position: static; } }
@media (max-width: 600px) { .month .cards { grid-template-columns: 1fr; } }

/* ---------- misc pages ---------- */
.steps { list-style: none; padding: 0; margin: var(--s6) 0; display: grid; gap: var(--s5); counter-reset: st; }
.steps li { counter-increment: st; display: grid; grid-template-columns: 56px 1fr; gap: 0 var(--s4); }
.steps li::before { content: counter(st, decimal-leading-zero); grid-row: span 2; font: 700 18px/1.2 var(--mono); color: var(--accent); }
.steps strong { font-size: 19px; }
.steps span { color: var(--ink-2); }
.form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: var(--s8); align-items: start; }
.form-layout > aside { position: sticky; top: 92px; }
@media (max-width: 1000px) { .form-layout { grid-template-columns: 1fr; } .form-layout > aside { position: static; } }
.corp-offer .price { font-size: 64px; display: block; margin: var(--s3) 0 var(--s5); }
.corp-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: var(--s6); }
.corp-photos img { aspect-ratio: 1; object-fit: cover; width: 100%; height: auto; }

/* ---------- насыщенные первые экраны внутренних страниц ---------- */
.page-head-showcase { padding: var(--s7) 0; border-bottom: 2px solid var(--ink); }
.page-head-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(480px, 1.08fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.page-head-copy { min-width: 0; }
.page-head-copy .crumbs { margin-bottom: var(--s6); }
.page-head-copy > .label { margin-bottom: var(--s3); }
.page-head-copy h1 { font-size: clamp(58px, 7vw, 112px); max-width: 10ch; }
.page-head-copy .actions { margin-top: var(--s6); }
.route-spotlight { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(230px, .85fr); min-height: 480px; color: var(--ink); background: var(--surface); border: 2px solid var(--ink); box-shadow: var(--sheet-shadow); text-decoration: none; transition: transform 200ms var(--ease), box-shadow 200ms var(--ease); }
.route-spotlight:hover { color: var(--ink); transform: translate(-4px, -4px); box-shadow: 12px 12px 0 var(--ink); }
.route-spotlight-media { position: relative; min-height: 100%; overflow: hidden; border-right: 2px solid var(--ink); }
.route-spotlight-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(145deg, transparent 58%, rgba(19,32,26,.35)); pointer-events: none; }
.route-spotlight-media img, .route-spotlight-media .img-fallback { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease); }
.route-spotlight:hover .route-spotlight-media img { transform: scale(1.035); }
.route-spotlight-body { display: flex; flex-direction: column; align-items: flex-start; padding: var(--s5); }
.route-spotlight-body h2 { font-size: clamp(24px, 2.2vw, 36px); }
.route-spotlight-body > p:not(.label):not(.meta) { color: var(--ink-2); font-size: 15px; }
.route-spotlight-body .meta { margin-top: auto; }
.spotlight-date { color: var(--accent); font-weight: 700; }
.route-spotlight-link { display: flex; justify-content: space-between; width: 100%; margin-top: var(--s5); padding-top: var(--s3); border-top: 2px solid var(--ink); font: 700 12px/1.3 var(--mono); text-transform: uppercase; letter-spacing: .05em; }
.route-spotlight-link i { font-style: normal; transition: transform 180ms var(--ease); }
.route-spotlight:hover .route-spotlight-link i { transform: translateX(5px); }

.corporate-visual { min-width: 0; }
.corporate-visual-media { position: relative; height: clamp(330px, 44vw, 560px); overflow: hidden; border: 2px solid var(--ink); box-shadow: var(--sheet-shadow); }
.corporate-visual-media::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 55%, rgba(8,14,11,.32)); }
.corporate-visual-media img, .corporate-visual-media .img-fallback { width: 100%; height: 100%; object-fit: cover; }
.corporate-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin: -42px var(--s5) 0; position: relative; z-index: 1; background: var(--surface); border: 2px solid var(--ink); box-shadow: 6px 6px 0 var(--ink); }
.corporate-facts div { min-height: 108px; padding: var(--s4); display: flex; flex-direction: column; justify-content: space-between; gap: var(--s2); }
.corporate-facts div + div { border-left: 1px solid var(--line-2); }
.corporate-facts b { font: 900 clamp(20px, 2vw, 30px)/1 var(--display); letter-spacing: -.035em; }
.corporate-facts span { color: var(--muted); font: 600 11px/1.35 var(--mono); text-transform: uppercase; }
#all-routes, #corp-form { scroll-margin-top: 92px; }

@media (max-width: 1040px) {
  .page-head-grid { grid-template-columns: 1fr; }
  .page-head-copy { max-width: 760px; }
  .route-spotlight { min-height: 420px; }
  .corporate-visual { max-width: 820px; }
}
@media (max-width: 640px) {
  .page-head-showcase { padding: var(--s6) 0; }
  .page-head-copy .crumbs { margin-bottom: var(--s5); }
  .page-head-copy h1 { font-size: clamp(48px, 15vw, 72px); }
  .page-head-copy .actions { display: grid; }
  .page-head-copy .btn { width: 100%; }
  .route-spotlight { grid-template-columns: 1fr; min-height: 0; }
  .route-spotlight-media { min-height: 280px; aspect-ratio: 4 / 3; border-right: 0; border-bottom: 2px solid var(--ink); }
  .route-spotlight-body { min-height: 280px; }
  .corporate-facts { grid-template-columns: 1fr; margin: -24px 14px 0; }
  .corporate-facts div { min-height: 82px; display: grid; grid-template-columns: 1fr 1.3fr; align-items: center; }
  .corporate-facts div + div { border-left: 0; border-top: 1px solid var(--line-2); }
}

.tour-profile { margin: calc(var(--s7) * -1) 0 var(--s6); }
.tour-profile .profile { background: var(--surface); }

/* ---------- паспорт маршрута ---------- */
.passport { margin: 0 0 var(--s8); }
.pp-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s5); padding: var(--s5); border-bottom: 2px solid var(--ink); }
.pp-heading { min-width: 0; }
.pp-head .label { display: block; margin-bottom: var(--s3); }
.pp-head h2 { margin: 0; font: 900 clamp(24px, 2.4vw, 34px)/1 var(--display); letter-spacing: -0.03em; }
.pp-head-side { display: flex; align-items: stretch; gap: var(--s5); flex: none; }
.pp-trip { display: grid; align-content: center; gap: 5px; padding-right: var(--s5); border-right: 1px solid var(--line-2); text-transform: uppercase; }
.pp-trip b { font: 900 19px/1 var(--display); }
.pp-trip small { color: var(--accent); font: 700 10px/1.2 var(--mono); }
.pp-diff { display: grid; grid-template-columns: auto auto auto; align-content: center; align-items: center; gap: 5px 10px; font: 700 12px/1 var(--mono); text-transform: uppercase; color: var(--muted); }
.pp-diff b { color: var(--ink); }
.pp-diff small { grid-column: 1 / -1; color: var(--muted); font: 500 10px/1.3 var(--mono); text-transform: none; }
.diff-bars { display: inline-flex; gap: 3px; align-items: flex-end; }
.diff-bars i { width: 8px; background: var(--line-2); }
.diff-bars i:nth-child(1) { height: 10px; } .diff-bars i:nth-child(2) { height: 16px; } .diff-bars i:nth-child(3) { height: 22px; }
.diff-bars.d1 i:nth-child(-n+1), .diff-bars.d2 i:nth-child(-n+2), .diff-bars.d3 i:nth-child(-n+3) { background: var(--accent); }
.pp-stats { display: flex; flex-wrap: wrap; margin: 0; border-bottom: 2px solid var(--ink); }
.pp-stats div { flex: 1 1 200px; display: grid; grid-template-columns: 34px 1fr; gap: 2px 12px; align-items: center; padding: var(--s4) var(--s5); border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
.pp-stats .pi { grid-row: span 2; width: 32px; height: 32px; color: var(--ink); }
.pp-stats dd { margin: 0; font: 900 clamp(20px, 2vw, 28px)/1.05 var(--display); letter-spacing: -0.03em; }
.pp-stats dd.long { font: 700 16px/1.25 var(--text); letter-spacing: -0.01em; }
.pp-stats dt { grid-column: 2; font: 700 11px/1.3 var(--mono); text-transform: uppercase; color: var(--muted); letter-spacing: 0.03em; }
.pp-profile { position: relative; isolation: isolate; overflow: hidden; background: var(--bg); border-bottom: 2px solid var(--ink); padding: var(--s4); }
.pp-profile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--contour); opacity: .07; -webkit-mask: url("/static/img/topo.svg") center / 620px repeat; mask: url("/static/img/topo.svg") center / 620px repeat; }
.pp-profile-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); margin-bottom: var(--s3); }
.pp-profile-head .pp-sub { margin: 0; }
.pp-profile-metrics { display: grid; grid-template-columns: auto auto; gap: 2px 10px; align-items: baseline; text-align: right; }
.pp-profile-metrics b { font: 900 18px/1 var(--display); letter-spacing: -.03em; color: var(--accent); }
.pp-profile-metrics small { font: 700 9px/1.2 var(--mono); color: var(--muted); text-transform: uppercase; }
.profile .t-axis { stroke: var(--ink); stroke-width: 2; }
.profile .t-phase { font: 700 12px var(--mono); fill: var(--ink); letter-spacing: 0.06em; }
.profile .t-grid { stroke: var(--line-2); stroke-width: 1; stroke-dasharray: 2 7; }
.pp-days { padding: var(--s5); }
.pp-sub { font: 700 12px/1 var(--mono); text-transform: uppercase; letter-spacing: 0.06em; color: var(--contour); margin: 0 0 var(--s4); }
.pp-day { margin-bottom: var(--s4); }
.pp-dayname { display: block; font: 900 18px/1 var(--display); margin-bottom: 6px; }
.dayline { display: block; width: 100%; height: auto; overflow: visible; }
.dayline .dl-tick { stroke: var(--line-2); stroke-width: 1; stroke-dasharray: 2 3; }
.dayline .dl-hour { font: 700 12px var(--mono); fill: var(--muted); }
.dayline .dl-label { font: 700 13px var(--text); fill: #fff; pointer-events: none; }
.dayline .dl-seg rect { transition: opacity 200ms; }
.dayline:hover .dl-seg rect { opacity: 0.55; }
.dayline .dl-seg:hover rect { opacity: 1; }
.pp-legend { list-style: none; margin: var(--s3) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font: 700 12px/1 var(--mono); text-transform: uppercase; color: var(--ink-2); }
.pp-legend li { display: inline-flex; align-items: center; gap: 8px; }
.sw { width: 16px; height: 12px; display: inline-block; border: 1.5px solid var(--ink); }
.sw-road { background: #7f8a82; } .sw-ascent { background: #d7261e; } .sw-summit { background: #8f1510; } .sw-descent { background: #e07a5f; }
.sw-food { background: #a0602f; } .sw-water { background: #1f6fb2; } .sw-camp { background: #2f6b3b; }
.route-pass .passport { margin-bottom: var(--s4); }
@media (max-width: 600px) {
  .pp-diff { margin-left: 0; }
  .pp-stats div { flex-basis: 50%; }
  .dayline .dl-label { display: none; }
  .dayline .dl-hour { font-size: 18px; }
  .profile .t-phase { font-size: 20px; }
}

/* ---------- компактное расписание ---------- */
.page-head-tight { padding-bottom: var(--s4); }
.tlist { display: grid; gap: var(--s3); }
.tl-month { font: 900 clamp(26px, 2.6vw, 36px)/1 var(--display); letter-spacing: -0.03em; margin: var(--s5) 0 var(--s2); }
.tl-month:first-child { margin-top: 0; }
.tl-month small { font: 700 13px var(--mono); color: var(--contour); letter-spacing: 0.05em; }
.trow { display: grid; grid-template-columns: 76px 160px minmax(0, 1fr) 130px 140px auto; align-items: center; gap: var(--s4); padding: 10px var(--s4) 10px 10px; background: var(--surface); border: 2px solid var(--ink); text-decoration: none; transition: transform 180ms var(--ease), box-shadow 180ms var(--ease); }
.trow:hover { color: inherit; transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--ink); }
.tr-date { display: grid; justify-items: center; line-height: 1; border-right: 2px dashed var(--line-2); padding-right: var(--s3); }
.tr-date b { font: 900 38px/0.95 var(--display); color: var(--accent); letter-spacing: -0.04em; white-space: nowrap; }
.tr-date b small { font: 900 0.5em var(--display); color: var(--ink-2); text-transform: none; }
.tr-date span { font: 700 13px var(--mono); text-transform: uppercase; margin-top: 4px; }
.tr-date small { font: 500 11px var(--mono); color: var(--muted); text-transform: uppercase; }
.tr-img { width: 160px; height: 104px; overflow: hidden; border: 2px solid var(--ink); }
.tr-img img, .tr-img .img-fallback { width: 100%; height: 100%; object-fit: cover; min-height: 0; padding: 0; font-size: 0; }
.tr-main { display: grid; gap: 4px; min-width: 0; }
.tr-kind { display: inline-flex; align-items: center; gap: 8px; font: 700 11px/1.2 var(--mono); text-transform: uppercase; color: var(--muted); }
.tr-main strong { font: 800 20px/1.15 var(--text); letter-spacing: -0.015em; }
.tr-sub { font-size: 14px; color: var(--ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tr-seats { display: grid; font: 700 13px/1.3 var(--mono); text-transform: uppercase; }
.tr-seats small { font-weight: 500; color: var(--muted); }
.tr-price { font: 900 26px/1 var(--display); letter-spacing: -0.03em; white-space: nowrap; text-align: right; }
.tr-price small { font: 700 11px var(--mono); color: var(--muted); margin-right: 4px; text-transform: uppercase; }
.tr-mdate { display: none; }
.trow-past { background: var(--bg); }
.trow-past .tr-date b { color: var(--ink-2); }
.tr-done { color: var(--forest); }
.trow-past .tr-sub { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
@media (max-width: 1000px) {
  .trow { grid-template-columns: 96px minmax(0, 1fr) auto; grid-template-areas: "img main main" "img seats price" "btn btn btn"; gap: 6px var(--s3); padding: 10px; }
  .tr-img { grid-area: img; width: 96px; height: 96px; align-self: start; }
  .tr-date { display: none; }
  .tr-mdate { display: block; font: 700 12px/1.2 var(--mono); color: var(--accent); text-transform: uppercase; }
  .trow-past .tr-mdate { color: var(--ink-2); }
  .trow-past .tr-btn { display: none; }
  .tr-main { grid-area: main; }
  .tr-sub { white-space: normal; }
  .tr-seats { grid-area: seats; }
  .tr-price { grid-area: price; font-size: 22px; }
  .tr-btn { grid-area: btn; }
}

/* ---------- компактная форма записи ---------- */
.book-card { padding: var(--s5); }
.book-card .price { font-size: 44px; }
.book-form { gap: var(--s3); }
.option { padding: 10px 12px; }
.people { display: flex; flex-wrap: wrap; gap: var(--s3); }
.stepper { display: grid; grid-template-columns: 40px 52px 40px; grid-template-rows: auto 40px; column-gap: 0; }
.stepper .st-label { grid-column: 1 / -1; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.stepper button { border: 2px solid var(--ink); background: var(--surface); color: var(--ink); font: 700 20px/1 var(--text); cursor: pointer; }
.stepper button:hover { background: var(--ink); color: var(--bg); }
.stepper input { min-height: 40px; padding: 0; text-align: center; border-left: 0; border-right: 0; font-weight: 700; -moz-appearance: textfield; }
.stepper input::-webkit-outer-spin-button, .stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.more { border: 2px dashed var(--line-2); padding: 0 12px; }
.more summary { cursor: pointer; padding: 10px 0; font: 700 12px/1.2 var(--mono); text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-2); list-style: none; }
.more summary::-webkit-details-marker { display: none; }
.more summary::before { content: "+ "; color: var(--accent); }
.more[open] summary::before { content: "− "; }
.more[open] { padding-bottom: 12px; }
.more label { margin-bottom: 10px; }
.book-submit { display: grid; gap: 8px; }
.book-total { border: 0; padding: 0; }
@media (max-width: 1080px) { .book-submit { position: sticky; bottom: 0; background: var(--surface); padding: 10px 0; border-top: 2px solid var(--ink); z-index: 2; } }

/* ---------- вид сверху ---------- */
.pp-views { display: grid; border-bottom: 2px solid var(--ink); }
.pp-views.has-map.has-profile { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
.pp-views.has-map:not(.has-profile) .pp-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .38fr); gap: var(--s4) var(--s5); align-items: center; }
.pp-views.has-map:not(.has-profile) .pp-top .pp-sub { grid-column: 1 / -1; }
.pp-views .pp-profile { border-bottom: 0; display: flex; flex-direction: column; justify-content: center; }
.pp-views.has-map.has-profile .pp-profile { border-left: 2px solid var(--ink); }
.pp-profile .pp-sub, .pp-top .pp-sub { display: block; margin: 0 0 8px; }
.pp-top { margin: 0; padding: var(--s3) var(--s4); background: var(--bg); }
.pp-note { font: 500 11px/1.4 var(--mono); color: var(--muted); margin: 8px 0 0; text-transform: uppercase; }
.pp-note b { color: var(--ink); }
.localmap { display: block; width: 100%; height: auto; border: 2px solid var(--ink); }
.localmap .lm-bg { fill: var(--surface); }
.localmap .lm-stream { fill: none; stroke: var(--water); stroke-width: 1; opacity: 0.6; }
.localmap .lm-river { fill: none; stroke: var(--water); stroke-width: 3; }
.localmap .lm-focus { fill: none; stroke: var(--water); stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; }
.localmap .lm-track { fill: none; stroke: var(--contour); stroke-width: 1.6; stroke-dasharray: 5 3; }
.localmap .lm-path { fill: none; stroke: var(--accent); stroke-width: 2.4; stroke-dasharray: 2 4; stroke-linecap: round; }
.localmap .lm-road { fill: none; stroke: var(--ink-2); stroke-width: 2; }
.localmap .lm-trunk-c { fill: none; stroke: var(--ink); stroke-width: 6; }
.localmap .lm-trunk { fill: none; stroke: #f2b544; stroke-width: 3.2; }
.localmap .lm-peak { fill: var(--ink); }
.localmap .lm-peakname { font: 700 12px var(--mono); fill: var(--ink); paint-order: stroke; stroke: var(--surface); stroke-width: 4px; }
.localmap .lm-target { fill: color-mix(in srgb, var(--accent) 16%, transparent); stroke: var(--accent); stroke-width: 2; stroke-dasharray: 4 3; }
.localmap .lm-dot { fill: var(--accent); stroke: #fff; stroke-width: 2.5; }
.localmap .lm-name { font: 800 17px var(--text); fill: var(--ink); paint-order: stroke; stroke: var(--surface); stroke-width: 5px; }
.localmap .lm-small { font: 600 11px var(--mono); fill: var(--ink); }
.localmap .lm-sa { fill: var(--ink); } .localmap .lm-sb { fill: var(--surface); stroke: var(--ink); stroke-width: 1.2; }
.localmap .lm-north { fill: var(--ink); }
.pp-ready { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) auto; gap: var(--s5); align-items: center; padding: var(--s4) var(--s5); border-bottom: 2px solid var(--ink); background: var(--surface); }
.pp-ready .pp-sub { display: block; margin-bottom: var(--s2); }
.pp-ready strong { font-size: 15px; line-height: 1.35; }
.pp-ready ul { display: flex; flex-wrap: wrap; gap: 5px 18px; margin: 0; padding: 0; list-style: none; color: var(--ink-2); font-size: 14px; }
.pp-ready li::before { content: "✓"; margin-right: 6px; color: var(--forest); font-weight: 900; }
@media (max-width: 900px) {
  .pp-head { align-items: flex-start; flex-direction: column; }
  .pp-head-side { width: 100%; justify-content: space-between; }
  .pp-ready { grid-template-columns: 1fr 1fr; }
  .pp-ready .btn { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .pp-views.has-map { grid-template-columns: 1fr; }
  .pp-views.has-map .pp-profile { border-left: 0; border-top: 2px solid var(--ink); }
  .pp-views.has-map:not(.has-profile) .pp-top { display: block; }
  .pp-ready { grid-template-columns: 1fr; }
  .pp-ready .btn { grid-column: auto; width: 100%; }
  .pp-profile-head { display: block; }
  .pp-profile-metrics { justify-content: start; text-align: left; margin-top: var(--s3); }
}

/* ---------- фото в записи и на «Заявка принята» ---------- */
.book-cover { position: relative; margin: calc(var(--s5) * -1) calc(var(--s5) * -1) var(--s4); aspect-ratio: 16 / 10; overflow: hidden; border-bottom: 2px solid var(--ink); background: var(--bg-2); }
.book-cover img, .book-cover .img-fallback { width: 100%; height: 100%; object-fit: cover; }
.book-cover::after, .thanks-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(8, 14, 11, 0.78)); pointer-events: none; }
.book-cover figcaption, .thanks-photo figcaption { position: absolute; left: var(--s4); right: var(--s4); bottom: var(--s3); z-index: 1; display: grid; gap: 2px; color: #fff; }
.book-cover-date { font: 900 34px/0.95 var(--display); letter-spacing: -0.04em; color: #ff6a5f; }
.book-cover-title { font: 800 17px/1.2 var(--text); text-shadow: 0 1px 8px rgba(0, 0, 0, 0.4); }
.thanks-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s8); align-items: center; }
.thanks-photo { position: relative; margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.thanks-photo img, .thanks-photo .img-fallback { width: 100%; height: 100%; object-fit: cover; }
.thanks-photo .book-cover-date { font-size: 52px; }
.thanks-photo .book-cover-title { font-size: 20px; }
.mb-info { display: flex; align-items: center; gap: 10px; }
.mb-info img { width: 48px; height: 48px; object-fit: cover; border: 2px solid var(--ink); }
@media (max-width: 900px) { .thanks-grid { grid-template-columns: 1fr; gap: var(--s6); } .thanks-photo { max-width: 460px; aspect-ratio: 4 / 3; } }

/* подпись автора чужого фото (лицензии CC BY / CC BY-SA требуют указывать автора) */
.photo-credit { position: absolute; right: 8px; top: 8px; z-index: 1; max-width: calc(100% - 16px); padding: 3px 7px; font: 500 11px/1.3 var(--mono); color: #fff; background: rgb(0 0 0 / 0.55); }
.photo-credit-line { margin: 6px 0 0; font: 500 11px/1.3 var(--mono); color: var(--muted); }
