/* Route composition follows the supplied 05-route.html, with shared site typography. */
.single-marshrut{--pad:clamp(20px,4vw,64px)}
.single-marshrut .site-header{position:sticky;top:0;height:80px;z-index:50;background:rgba(241,238,230,.94);color:var(--ink);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.single-marshrut .site-header .wrap,.route-page .wrap{max-width:1440px}
.single-marshrut .site-header .brand-name,.single-marshrut .site-header .desktop-nav,.single-marshrut .site-header .menu-toggle{color:var(--ink)}
.single-marshrut .site-header .header-actions .button{color:var(--ink);border-color:#10141880}
.single-marshrut .site-header .header-actions .button:hover{background:var(--ink);color:var(--paper)}
.single-marshrut .mobile-nav{top:80px;color:var(--ink);background:var(--paper)}
.single-marshrut .desktop-nav a[aria-current]{border-bottom:2px solid var(--accent)}
.route-page{--route-line:rgba(16,20,24,.15);--route-line-light:rgba(241,238,230,.17);font-size:16px;line-height:1.55}
.route-page .eyebrow{font:600 11px/1.3 var(--text);letter-spacing:.16em;margin:0;color:#10141880}
.route-page h1{font-size:var(--page-title-size);line-height:1.12;letter-spacing:-.01em;margin:12px 0 16px;overflow-wrap:break-word}
.route-page h2{font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.12;letter-spacing:-.01em}
.route-page h3{font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.25}
.route-icon{width:16px;height:16px;flex:none;vertical-align:middle}
.route-page .route-button{position:relative;overflow:hidden;isolation:isolate;height:54px;min-height:54px;gap:13px;padding:0 28px;border:1px solid #1014188c;font:500 .93rem/1 var(--text);background:transparent;color:var(--ink)}
.route-page .route-button>*{position:relative;z-index:1}
.route-page .route-button::before{content:'';position:absolute;inset:-1px;border-radius:inherit;background:var(--ink);transform:translateY(103%);transition:transform .45s var(--ease)}
.route-page .route-button:hover{color:var(--paper)}
.route-page .route-button:hover::before{transform:translateY(0)}
.route-page .route-button-accent::before{background:var(--accent)}
.route-page .route-button-ghost{border-style:dashed}
.route-page .route-button-small{height:44px;min-height:44px;padding:0 20px;font-size:13px;gap:10px}
.route-hero{padding:clamp(22px,5vh,52px) 0 clamp(28px,5vh,52px)}
.route-breadcrumbs{font:500 12px/1.5 var(--mono);color:#1014188c;margin:0 0 clamp(18px,3vh,26px)}
.route-hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(26px,4vw,60px);align-items:start}
.route-hero-copy{min-width:0}
.route-page .lead{font-size:clamp(1rem,1.25vw,1.15rem);line-height:1.62;max-width:56ch;margin:0}
.route-summary{display:flex;flex-wrap:wrap;gap:12px 28px;padding:15px 0;margin-top:24px;border-block:1px solid var(--route-line);font:500 .78rem/1.5 var(--mono);color:#101418a6}
.route-summary b{display:inline-block;font:500 1.02rem/1.35 var(--mono);color:var(--accent);margin-right:7px}
.route-endpoints{margin-top:18px;font:500 .78rem/1.7 var(--mono);color:#10141880}
.route-page .route-controls{display:flex;flex-direction:column;gap:14px;margin:26px 0 0;padding:0;border:0;align-items:stretch}
.route-control-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.route-control-row>.eyebrow{flex:none}
.route-segment{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border:1px solid var(--route-line);border-radius:99px;background:#ffffff59}
.route-segment button{padding:8px 15px;border:0;border-radius:99px;background:transparent;font:500 12px/1.2 var(--text);color:#10141899;white-space:nowrap;transition:background .2s,color .2s}
.route-segment [aria-pressed=true]{background:var(--ink);color:var(--paper)}
.route-segment button:disabled{cursor:wait}
.route-variant-note{margin-top:14px;padding:11px 16px;border:1px dashed #e8480c8c;border-radius:12px;font:500 .78rem/1.6 var(--mono);color:var(--accent);background:#e8480c0d}
.route-cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:28px}
.route-map-canvas{position:relative;width:100%;aspect-ratio:640/460;min-height:320px;border:1px solid var(--route-line);border-radius:16px;overflow:hidden;background:var(--paper2)}
.route-map-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;position:absolute;inset:0;text-align:center;padding:30px;font-size:14px;color:#10141899}
.route-map-empty .route-icon{width:32px;height:32px;color:var(--accent)}
.route-map-legend{display:flex;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin-top:12px;font:500 .7rem/1.5 var(--mono);color:#10141880}
.route-map-legend span{display:flex;align-items:center;gap:8px}
.route-map-legend i{width:9px;height:9px;background:var(--ink);border-radius:50%;flex:none}
.route-map-legend i.is-done{background:var(--accent)}
.route-map-note{font:500 .7rem/1.6 var(--mono);color:#10141880;margin-top:12px}
.route-page .travel-map-line polyline{stroke:var(--accent);stroke-dasharray:none;stroke-width:3}
.route-page .travel-map-marker{background:var(--ink);width:26px;height:26px;font:600 10px var(--text)}
.route-page .travel-map-marker.is-current,.route-page .travel-map-marker.is-complete{background:var(--accent)}
.route-page .travel-map-marker.is-current{outline:3px solid #e8480c66;outline-offset:2px}
.route-page .travel-map-credit{font-size:10px}
.route-timeline-section{padding:0 0 clamp(50px,8.5vh,100px);scroll-margin-top:100px}
.route-timeline-grid{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:clamp(24px,3.5vw,54px);align-items:start}
.route-page .section-head{gap:24px;margin-bottom:clamp(20px,4vh,38px)}
.route-page .section-head .eyebrow{margin-bottom:14px}
.route-page .section-head>p{max-width:40ch;color:#10141899;font-size:.93rem;line-height:1.55;text-align:right}
.route-sidebar{position:sticky;top:98px;display:flex;flex-direction:column;gap:16px}
.route-panel{padding:18px;border:1px solid var(--route-line);border-radius:16px;background:#ffffff66;min-width:0}
.route-progress-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.route-page .route-progress-heading h2{font-size:1.02rem;line-height:1.3}
.route-progress-heading>span{font:500 .78rem var(--mono);color:#1014188c}
.route-progress-track{height:6px;border-radius:99px;overflow:hidden;background:#1014181f;margin:13px 0 7px}
.route-progress-track>span{display:block;height:100%;width:0;background:var(--accent);transition:width .4s}
.route-panel-note{font:500 .74rem/1.6 var(--mono);color:#10141880}
.route-reset{font-size:12px;margin-top:12px}
.route-panel-dark{background:var(--ink);border-color:var(--route-line-light);color:var(--paper)}
.route-panel-dark .eyebrow,.route-panel-dark .route-panel-note{color:#f1eee673}
.route-panel-dark .route-panel-note{margin-top:12px}
.route-statistics{margin:8px 0 0}
.route-statistics>div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px dashed var(--route-line-light);font-size:.92rem}
.route-statistics>div:last-child{border:0}
.route-statistics dt{color:#f1eee6a6;min-width:0}
.route-statistics dd{font:500 .8rem/1.5 var(--mono);text-align:right;margin:0;flex-shrink:0;max-width:48%;overflow-wrap:break-word}
.route-statistics>div:nth-child(-n+2) dd{color:var(--accent)}
.route-quick-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.route-quick-actions button{padding:9px 16px;border:1px solid var(--route-line);border-radius:99px;font-size:12px;background:transparent;color:inherit}
.route-quick-actions button:hover{border-color:var(--ink)}
.route-timeline{position:relative}
.route-timeline::before{content:'';position:absolute;left:24px;top:24px;bottom:24px;width:2px;background:var(--route-line)}
.route-page .route-stop{position:relative;display:grid;grid-template-columns:62px 104px minmax(0,1fr);gap:clamp(12px,1.8vw,24px);padding:22px 0;border:0;scroll-margin-top:110px}
.route-stop-number{position:relative;z-index:1;width:50px;height:50px;border:2px solid #10141833;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font:500 .92rem var(--display);transition:.3s}
.route-stop.is-current .route-stop-number{border-color:var(--accent);transform:scale(1.08)}
.route-stop.is-done .route-stop-number{background:var(--accent);border-color:var(--accent)}
.route-stop-time{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding-top:4px}
.route-stop-arrival{font:500 .92rem/1.35 var(--mono)}
.route-stop-duration{display:inline-block;padding:4px 9px;border:1px solid var(--route-line);border-radius:99px;font:500 11px/1.3 var(--text);color:#101418b3}
.route-stop-card{position:relative;min-width:0;display:grid;grid-template-columns:116px minmax(0,1fr);gap:16px;padding:15px;border:1px solid var(--route-line);border-radius:16px;background:#ffffff73;transition:border-color .3s}
.route-stop.is-current .route-stop-card{border-color:#e8480c99}
.route-stop-media{min-width:0;align-self:start}
.route-stop-media .card-image{width:100%;aspect-ratio:1;height:auto;border-radius:11px}
.route-stop-media .card-tag,.route-stop-media .card-arrow,.route-stop-media .no-image small{display:none}
.route-stop-media .card-image img{display:block;width:100%;height:100%;max-width:none;border-radius:0;object-fit:cover}
.route-stop-media .card-photo-credit{right:5px;bottom:5px}
.route-stop-media .card-photo-credit summary{width:24px;height:24px}
.route-stop-media .card-photo-credit-panel{left:0;right:auto}
.route-page .route-stop h3{font:500 1.06rem/1.25 var(--display);margin:0;overflow-wrap:break-word}
.route-stop h3 a{border-bottom:1px solid var(--accent)}
.route-stop h3 a:hover{color:var(--accent)}
.route-stop-description{margin-top:6px;font-size:.9rem;line-height:1.5;color:#1014189e}
.route-stop-price{margin-top:10px;font:600 .76rem/1.4 var(--mono);color:var(--accent)}
.route-stop-footer{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:2px;padding-top:11px;border-top:1px dashed var(--route-line)}
.route-stop-transfer{display:flex;align-items:center;gap:8px;font:500 11px/1.5 var(--mono);color:#10141880}
.route-stop-transfer .route-icon{color:var(--accent);width:13px;height:13px}
.route-stop-done{display:inline-flex;align-items:center;gap:8px;padding:8px 15px;min-height:36px;border:1px solid var(--route-line);border-radius:99px;background:transparent;font:500 12px/1.3 var(--text);color:inherit}
.route-stop-done[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}
.route-stop-stamp{position:absolute;pointer-events:none;top:35%;right:16px;padding:10px 16px;border:2px solid var(--accent);border-radius:8px;color:var(--accent);font:600 11px/1 var(--mono);letter-spacing:.14em;transform:rotate(-7deg) scale(.6);opacity:0;transition:.3s;background:var(--paper)}
.route-stop.is-done .route-stop-stamp{opacity:1;transform:rotate(-7deg) scale(1)}
.route-empty{padding:20px 0;color:#10141899;font-size:14px;line-height:1.7}
.route-excluded{font-size:13px;padding:16px 0;border-top:1px solid var(--route-line)}
.route-excluded summary{cursor:pointer}
.route-excluded ul{padding-left:20px;line-height:1.7}
.route-section{padding:clamp(50px,8.5vh,100px) 0;border-top:1px solid var(--route-line);scroll-margin-top:80px}
.route-extras-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(22px,3vw,48px)}
.route-extras-grid>section>h3{margin-bottom:8px}
.route-extras-grid .route-button{margin-top:16px}
.route-detail-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:start;gap:14px;padding:11px 0;border-bottom:1px dashed var(--route-line);font-size:.92rem;line-height:1.6;color:#101418c7;min-width:0}
.route-detail-row>.route-icon,.route-detail-icon{color:var(--accent);padding-top:2px}
.route-detail-row h3{font:500 .92rem/1.5 var(--text)}
.route-detail-row .prose{font-size:.92rem;line-height:1.6}
.route-detail-row .prose p,.route-partner-row .prose p{margin:0}
.route-detail-link{color:var(--accent)}
.route-detail-row a:hover,.route-partner-row a:hover{color:var(--accent)}
.route-section-intro{font-size:14px;line-height:1.7;margin-bottom:12px}
.route-section-intro p{margin:0 0 12px}
.route-food-list{max-width:780px}
.route-stay{background:var(--ink);color:var(--paper);border-color:var(--route-line-light)}
.route-stay .eyebrow,.route-stay .route-empty{color:#f1eee68c}
.route-section-badge{display:inline-flex;align-items:center;padding:7px 13px;border:1px solid var(--route-line-light);border-radius:99px;font:600 10px/1.5 var(--text);letter-spacing:.12em;text-transform:uppercase;color:#f1eee680}
.route-stay-list{max-width:860px}
.route-partner-row{display:grid;grid-template-columns:104px minmax(0,1fr) auto;gap:20px;padding:16px 0;border-bottom:1px solid var(--route-line-light);align-items:center}
.route-partner-row .route-detail-icon{display:grid;place-items:center;width:64px;height:64px;border:1px solid var(--route-line-light);border-radius:12px}
.route-partner-row .route-detail-icon .route-icon{width:22px;height:22px}
.route-partner-row h3{font:500 1rem/1.4 var(--display);margin-bottom:3px}
.route-partner-row .prose{font-size:.82rem;color:#f1eee68c;line-height:1.6}
.route-partner-media .card-image{aspect-ratio:4/3;height:auto;border-radius:11px}
.route-partner-media .card-tag,.route-partner-media .card-arrow{display:none}
.route-excursions-heading{margin-top:48px}
.route-page .route-hud{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:66;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;width:max-content;max-width:min(760px,calc(100vw - 28px));padding:14px 18px;border:1px solid #f1eee626;border-radius:18px;background:var(--ink);color:var(--paper);box-shadow:0 24px 60px #0a0c0e66}
.route-hud-count{font:600 .74rem var(--mono);color:#f1eee680;white-space:nowrap}
.route-hud-next{display:flex;flex-direction:column;gap:4px;min-width:170px;max-width:350px;flex:1}
.route-hud-next b{font:500 .92rem/1.4 var(--display);overflow-wrap:break-word}
.route-hud-next>span{font:500 .72rem/1.5 var(--mono);color:#f1eee699}
.route-hud-next>span.is-late{color:var(--accent)}
.route-page .route-hud .route-button{color:var(--paper);border-color:#f1eee680}
.route-page .route-hud .route-button::before{background:var(--paper)}
.route-page .route-hud .route-button:hover{color:var(--ink)}
.route-hud-exit{display:grid;place-items:center;flex:none;width:38px;height:38px;border:1px solid var(--route-line-light);border-radius:50%;background:transparent;color:inherit;font-size:24px}
.route-is-running .trip-drawer{display:none}
.route-is-running .trip-toast{bottom:150px}
.route-page .route-dialog{width:min(560px,calc(100% - 32px));padding:clamp(22px,3vw,34px);max-height:86dvh;border-radius:20px}
.route-page .route-dialog h2{font-size:1.35rem;margin:10px 0 6px;padding-right:32px}
.route-dialog>p{font-size:.92rem;color:#101418a6;margin:0 0 18px;line-height:1.6}
.route-start-options{border:0;padding:0;margin:18px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px;min-width:0}
.route-start-options>label{display:flex;gap:8px;flex-wrap:wrap;align-content:start;align-items:center;border:1px solid var(--route-line);border-radius:14px;padding:18px 16px;background:#ffffff66;cursor:pointer;min-width:0}
.route-start-options>label:has(input[type=radio]:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.route-start-options>label b{display:block;font:500 1rem var(--display);margin-bottom:6px}
.route-start-options>label>span{flex:1;min-width:0}
.route-start-options small{display:block;font-size:12px;line-height:1.5;color:#1014188c}
.route-start-options input[type=radio]{width:18px;height:18px;padding:0;margin:0;accent-color:var(--accent);flex:none}
.route-start-options input[type=time]{width:100%;min-width:0;margin-top:6px;padding:10px 12px;font-size:14px}
.route-transport-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;font-size:13px}
.route-transport-setting select{min-width:0;max-width:65%;font-size:13px;padding:10px}
.route-form-status{margin-top:14px;font-size:13px;color:var(--accent)}
.route-report-badge{display:inline-flex;padding:10px 18px;margin-top:14px;border:2px solid var(--accent);border-radius:10px;font:600 13px var(--mono);letter-spacing:.14em;color:var(--accent);transform:rotate(-3deg)}
.route-report-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.route-report-stats>div{border:1px solid var(--route-line);padding:13px 15px;border-radius:12px}
.route-report-stats b{display:block;font:500 1.15rem/1.4 var(--display)}
.route-report-stats span{font:500 .72rem/1.5 var(--mono);color:#10141880}
.route-report-stops{list-style:none;margin:18px 0 0;padding:0}
.route-report-stops li{display:grid;grid-template-columns:58px minmax(0,1fr);gap:14px;padding:10px 0;border-bottom:1px dashed var(--route-line);font-size:13px}
.route-report-stops time{color:var(--accent);font-family:var(--mono)}
@media(max-width:1120px){.single-marshrut .desktop-nav{display:none}.single-marshrut .menu-toggle{display:block}.single-marshrut .header-actions>.button{display:none}}
@media(max-width:1020px){.route-hero-grid,.route-timeline-grid{grid-template-columns:1fr}.route-sidebar{position:static}.route-map-canvas{max-height:480px}.route-hero{padding-bottom:44px}.route-extras-grid{gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}.route-extras-grid>section:last-child{grid-column:1/-1}}
@media(max-width:720px){.route-page .route-stop{grid-template-columns:42px minmax(0,1fr);gap:12px 16px;padding:18px 0}.route-timeline::before{left:19px}.route-stop-number{width:40px;height:40px;font-size:.8rem;grid-row:1 / 3}.route-stop-time{grid-column:2;flex-direction:row;align-items:center;gap:12px;padding:0}.route-stop-card{grid-column:2;grid-template-columns:1fr;padding:12px;gap:12px}.route-stop-media .card-image{aspect-ratio:16/9}.route-stop-media .card-photo-credit-panel{left:auto;right:0}.route-stop-done{min-height:44px}.route-stop-arrival{font-size:.85rem}.route-stop-stamp{top:30%;right:20px}.route-extras-grid{grid-template-columns:1fr}.route-extras-grid>section:last-child{grid-column:auto}}
@media(max-width:700px){.route-page h2{font-size:clamp(1.25rem,5vw,1.5rem)}.route-page .section-head{flex-direction:column;align-items:flex-start}.route-page .section-head>p{text-align:left;font-size:14px}.route-map-canvas{min-height:260px;max-height:none}.route-summary{gap:12px 20px;font-size:11px}.route-summary b{font-size:14px}.route-page .route-button{font-size:13px;padding:0 20px}.route-control-row{gap:10px}.route-segment button{padding:9px 13px}.route-partner-row{grid-template-columns:72px minmax(0,1fr) auto;gap:12px}.route-partner-row h3{font-size:.9rem}.route-partner-row .route-detail-icon{width:56px;height:56px}.route-page .route-hud{left:14px;right:14px;transform:none;max-width:none;width:auto;gap:10px;bottom:14px;padding:12px}.route-hud-next{min-width:0;max-width:none}.route-hud-count{font-size:11px}.route-page .route-hud>.route-button{flex-basis:100%;order:4;height:44px;min-height:44px}.route-hud-exit{width:32px;height:32px}.route-is-running .trip-toast{bottom:190px}}
@media(max-width:480px){.route-start-options{grid-template-columns:1fr}.route-report-stats{grid-template-columns:1fr 1fr}.route-transport-setting{align-items:flex-start;flex-direction:column}.route-transport-setting select{max-width:100%;width:100%}.route-detail-row{gap:10px}.route-endpoints{font-size:11px}.route-map-legend{font-size:10px}}
@media(prefers-reduced-motion:reduce){.route-page *, .route-page *::before{transition:none!important}}

.route-additional{padding-top:24px;padding-bottom:24px;font-size:13px}.route-additional>summary{cursor:pointer}.route-additional .wrap{padding-left:0;padding-right:0}.route-copy-fallback{display:block;width:100%;min-height:160px;margin-top:16px}
.single-marshrut .trip-drawer{display:none}
.route-hero-map,.route-map-canvas{min-width:0}
@media(max-width:1020px){.route-hero-grid,.route-timeline-grid{grid-template-columns:minmax(0,1fr)}}

html:has(.route-page)::-webkit-scrollbar{width:10px;height:8px}html:has(.route-page)::-webkit-scrollbar-track{background:var(--paper)}html:has(.route-page)::-webkit-scrollbar-thumb{background:#1014184d;border-radius:99px;border:2px solid var(--paper)}
