/* CRT's existing visual language, with normal page flow and accessible controls. */
.crt-device-ui { --crt-green:#94bd0f; --crt-ink:#333; --crt-header-height:64px; overflow:visible !important; margin:0; }
.crt-device-ui *, .crt-device-ui *::before, .crt-device-ui *::after { box-sizing:border-box; }
.crt-device-ui #page { min-width:0; }
.crt-device-ui #masthead { position:fixed !important; inset:0 auto 0 0; width:220px; z-index:120 !important; }
.crt-device-ui .menu-w { width:220px; height:100vh !important; height:100dvh !important; min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; }
.crt-device-ui #content { display:block; width:calc(100% - 220px); margin-left:220px; min-width:0; }
.crt-device-ui .middle-menu-w { height:auto !important; }
.crt-device-ui .fabrika-w { position:static; padding:16px 8px; }
.crt-device-ui .menu { display:flex; flex-wrap:wrap; justify-content:center; }
.crt-device-ui .menu a { display:flex; align-items:center; min-height:44px; padding:8px 6px; color:#526c09; }
.crt-device-ui .menu-section-title { padding:0 !important; }
.crt-device-ui .menu-section-title > a, .crt-device-ui .menu-section-title > button { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:48px; padding:12px 16px; margin:0; border:0; border-radius:0; background:white; box-shadow:none; text-align:left; font:700 14px/1.4 Lato,sans-serif; color:#333; text-transform:uppercase; white-space:normal; }
.crt-device-ui .menu-section-title::before, .crt-device-ui .menu-section-title::after { pointer-events:none; }
.crt-device-ui .routes-w a.route { display:flex; align-items:center; min-height:44px; padding:10px 18px; line-height:1.4; width:auto; margin:0; }
.crt-device-ui .routes-w a::after { right:8px; }
.crt-device-ui .filters-w { padding:12px 8px; }
.crt-device-ui .filters-w select { min-height:44px; padding:10px 28px 10px 10px; font:16px/1.4 Lato,sans-serif; }
.crt-device-ui .reset-btn-w { display:flex; align-items:center; gap:6px; }
.crt-device-ui .go-custom-route { min-height:44px; padding:10px 12px !important; white-space:normal; line-height:1.4; background:#607d0b !important; color:white !important; }
.crt-device-ui .crt-reset-filters { flex:0 0 44px; min-height:44px; border:1px solid #bbb; background:white; color:#526c09; box-shadow:none; }
.crt-device-ui a:focus-visible, .crt-device-ui button:focus-visible, .crt-device-ui [tabindex]:focus-visible, .crt-device-ui input:focus-visible, .crt-device-ui textarea:focus-visible, .crt-device-ui select:focus-visible, .crt-device-ui summary:focus-visible { outline:3px solid #42610b !important; outline-offset:3px; }
.crt-device-ui button, .crt-device-ui a, .crt-device-ui select { touch-action:manipulation; }
.crt-device-ui [hidden] { display:none !important; }
.crt-mobile-header { display:none; }
/* Route/map layout no longer depends on a viewport-height overflow lock. */
.crt-device-ui.single-route .site-main > .pure-g > div, .crt-device-ui.page-template-template-knit-your-route .site-main > .pure-g > div { padding:0 16px !important; min-width:0; }
.crt-device-ui .header-row { margin:0; padding:12px 16px; gap:10px; }
.crt-device-ui .header-row > div { min-width:0; flex:1 1 260px; max-width:100%; }
.crt-device-ui .header-row h1 { margin:0; padding:0; overflow-wrap:anywhere; }
.crt-device-ui .header-row > div:last-child { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.crt-device-ui .social-w.top { display:inline-flex; align-items:center; gap:2px; margin:0 !important; }
.crt-device-ui .social-w a { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; margin:0; }
.crt-device-ui .social-w a img { width:20px; height:20px; }
.crt-device-ui #toggle-directions { float:none; display:inline-flex; align-items:center; justify-content:space-between; gap:12px; max-width:none !important; width:auto; min-height:44px; padding:10px 14px; font:16px/1.4 Lato,sans-serif; color:#333; border:1px solid #999; box-shadow:none; }
.crt-device-ui #directions { position:fixed; inset:84px 20px auto auto; right:20px !important; width:min(360px,calc(100vw - 32px)); max-height:calc(100vh - 110px); max-height:calc(100dvh - 110px); overflow-y:auto; padding:56px 20px 20px; z-index:150; text-align:left; }
.crt-device-ui #close-directions { width:44px; height:44px; top:4px; right:4px; padding:0; border:0; background:#607d0b; box-shadow:none; }
.crt-device-ui .route-list-ol { padding-inline-start:24px !important; }
.crt-device-ui .route-list-ol li { line-height:1.5; }
.crt-device-ui .route-list-ol li a, .crt-device-ui .route-list-ol li button { display:block; width:100%; min-height:44px; padding:10px 6px; text-align:inherit; white-space:normal; font-size:16px; line-height:1.5; }
.crt-device-ui.single-route .content-w, .crt-device-ui.page-template-template-knit-your-route .content-w { height:auto !important; padding:16px; }
.crt-device-ui.single-route .content-w > .pure-g, .crt-device-ui.page-template-template-knit-your-route .content-w > .pure-g { display:flex; align-items:flex-start; gap:16px; height:auto; }
.crt-device-ui #single-timeline-col { flex:1 1 0; width:0; min-width:0; }
.crt-device-ui #single-timeline-col.small { display:none; }
.crt-device-ui #single-map-col { flex:0 0 34%; min-width:280px; width:34%; }
.crt-device-ui #single-map-col.big { flex:1 1 100%; width:100%; }
.crt-device-ui #map-w { margin:0 !important; padding:0 !important; }
.crt-device-ui #map, .crt-device-ui #facetwp-map { width:100%; height:600px !important; height:clamp(360px,65svh,760px) !important; min-height:340px; max-height:none !important; padding:0 !important; }
.crt-device-ui #go-custom-route-2 { position:static !important; transform:none !important; margin-bottom:12px; }
.crt-device-ui #toggle-map { display:none !important; }
.crt-device-ui #crt-route-warning, .crt-device-ui #crt-route-status { line-height:1.5; }
.crt-device-ui .timeline-w, .crt-device-ui #timeline { height:700px !important; height:clamp(540px,calc(100svh - 180px),900px) !important; margin:0; }
.crt-device-ui .crt-history { height:auto !important; overflow:visible; padding:20px; }
.crt-device-ui .crt-timeline-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; font:14px/1.4 Lato,sans-serif; }
.crt-device-ui .crt-timeline-controls button { min-width:44px; min-height:44px; padding:10px 16px; border:1px solid #aaa; background:white; color:#526c09; box-shadow:none; font:16px/1.4 Lato,sans-serif; }
.crt-device-ui .crt-timeline-controls button:disabled { opacity:.45; cursor:default; }
.crt-device-ui .tl-slidenav-next, .crt-device-ui .tl-slidenav-previous { display:none !important; }
.crt-device-ui .tl-menubar-button { min-width:44px; min-height:44px; }
.crt-device-ui .tl-slide-titleslide .tl-slide-content-container { background-image:none !important; padding:0 !important; }
.crt-device-ui .tl-slide-titleslide .tl-slide-content { background:transparent !important; }
.crt-device-ui .crt-title-art { display:block; width:100%; height:auto; max-height:240px; object-fit:contain; margin:0 0 20px; }
.crt-device-ui .tl-text-content p { font-size:16px !important; line-height:1.6 !important; overflow-wrap:break-word; }
.crt-device-ui .tl-timeline .tl-headline, .crt-device-ui .tl-timeline .tl-headline-title { line-height:1.25 !important; overflow-wrap:break-word; }
.crt-device-ui .single-page-link { min-height:44px; padding:12px 0; font-size:16px; color:#526c09 !important; }
/* Static content uses the page's scroll, retaining the existing image backdrop. */
.crt-device-ui.page-template-template-about .content-w, .crt-device-ui.page-template-template-contact .content-w { height:auto !important; min-height:100vh; min-height:100svh; padding:clamp(24px,5vw,80px); background-size:cover; display:flex; align-items:center; justify-content:center; }
.crt-device-ui.page-template-template-about .content-w > .pure-g, .crt-device-ui.page-template-template-contact .content-w > .pure-g { width:100%; }
.crt-device-ui.page-template-template-about .content, .crt-device-ui.page-template-template-contact .content { position:static !important; transform:none !important; min-width:0; width:100%; max-width:760px; max-height:none; overflow:visible; padding:clamp(20px,4vw,48px); margin:auto; line-height:1.65; background:rgba(255,255,255,.94); overflow-wrap:anywhere; }
.crt-device-ui .content h3 { line-height:1.35; margin-top:0; }
.crt-device-ui .wpcf7 input:not([type=submit]), .crt-device-ui .wpcf7 textarea { width:100%; min-height:44px; padding:10px 12px; font:16px/1.5 Lato,sans-serif; border:1px solid #888; border-radius:2px; }
.crt-device-ui .wpcf7 textarea { height:150px; }
.crt-device-ui .wpcf7 label { display:block; font-size:16px; line-height:1.5; }
.crt-device-ui .wpcf7 form > p { margin:0 0 18px; }
.crt-device-ui .wpcf7 input[type=submit] { min-width:100px; min-height:44px; padding:10px 20px; font-size:16px; background:#607d0b; color:white; border:0; box-shadow:none; }
.crt-device-ui .content a { color:#526c09; text-decoration:underline; text-underline-offset:3px; }
.crt-device-ui.page-template-template-about .sponsors-w { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; max-width:100%; }
.crt-device-ui.page-template-template-about .sponsor { margin:0; }
.crt-device-ui.page-template-template-about .sponsor img { max-width:100%; }
.crt-device-ui .popup-w { padding:52px 16px 16px; }
.crt-device-ui .close-popup { min-width:44px; min-height:44px; top:4px; right:4px; }
.crt-device-ui .popup-w img { max-height:calc(100svh - 100px); object-fit:contain; }
.crt-device-ui .crt-carousel__caption h2 { color:#607d0b; }
.crt-device-ui .crt-carousel__caption p { color:#555; }
.crt-device-ui .crt-carousel .crt-carousel__dot { width:44px; height:32px; }
.crt-device-ui.rtl .menu-section-title > a, .crt-device-ui.rtl .menu-section-title > button { text-align:right; }
.crt-device-ui.rtl .crt-timeline-controls { direction:rtl; }
@media (max-width:1024px) {
 .crt-device-ui #content { margin:0; width:100%; }
 .crt-device-ui .crt-mobile-header { display:flex; align-items:center; justify-content:space-between; gap:12px; position:sticky; top:0; z-index:140; min-height:64px; padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left)); padding-top:max(8px,env(safe-area-inset-top)); background:#e6e5de; border-bottom:1px solid #ccc; }
 .crt-mobile-brand { display:flex; align-items:center; gap:10px; min-width:0; color:#333 !important; text-decoration:none; font:700 16px/1.3 Lato,sans-serif; }
 .crt-mobile-brand img { width:44px; height:44px; object-fit:contain; }
 .crt-mobile-brand span { max-width:240px; }
 .crt-device-ui #mobile-menu-activator { display:flex; align-items:center; justify-content:center; flex:0 0 44px; position:static; min-width:44px; min-height:44px; padding:10px; border:0; border-radius:2px; background:var(--crt-green); color:#253400; box-shadow:none; visibility:hidden; }
 .crt-device-ui.crt-ui-ready #mobile-menu-activator { visibility:visible; }
 .crt-device-ui #masthead { position:relative !important; width:100%; inset:auto; z-index:130 !important; }
 .crt-device-ui .menu-w { position:relative; inset:auto; left:0; width:100%; height:auto !important; transition:none; }
 .crt-device-ui.crt-ui-ready #masthead { position:fixed !important; inset:var(--crt-header-height) auto 0 0; width:min(320px,calc(100vw - 48px)); pointer-events:none; }
 .crt-device-ui.crt-ui-ready .menu-w { position:absolute; inset:0; width:100%; height:calc(100vh - var(--crt-header-height)) !important; height:calc(100dvh - var(--crt-header-height)) !important; transform:translateX(-100%); visibility:hidden; transition:transform 180ms ease,visibility 180ms; }
 .crt-device-ui.crt-menu-open #masthead { pointer-events:auto; }
 .crt-device-ui.crt-menu-open .menu-w { transform:none; visibility:visible; }
 .crt-device-ui #mobile-menu-overlay { position:fixed; inset:var(--crt-header-height) 0 0; display:block; background:rgba(0,0,0,.55); z-index:125; }
 .crt-device-ui.crt-menu-open { overflow:hidden !important; }
 .crt-device-ui.single-route .content-w, .crt-device-ui.page-template-template-knit-your-route .content-w { padding:16px 12px; }
 .crt-device-ui.single-route .content-w > .pure-g, .crt-device-ui.page-template-template-knit-your-route .content-w > .pure-g { display:block; }
 .crt-device-ui #single-timeline-col, .crt-device-ui #single-map-col { width:100% !important; min-width:0; }
 .crt-device-ui #single-map-col { margin-top:24px; }
 .crt-device-ui #single-map-col.big { margin-top:0; }
 .crt-device-ui #map, .crt-device-ui #facetwp-map { height:420px !important; height:clamp(340px,60svh,620px) !important; }
 .crt-device-ui #timeline, .crt-device-ui .timeline-w { height:auto !important; }
 .crt-device-ui .crt-history { padding:16px 12px; }
 .crt-device-ui #timeline .tl-storyslider, .crt-device-ui #timeline .tl-slider-container, .crt-device-ui #timeline .tl-slider-item-container { position:relative !important; height:auto !important; min-height:0 !important; top:auto !important; left:0 !important; transform:none !important; width:100% !important; overflow:visible !important; }
 .crt-device-ui #timeline .tl-slide { display:none !important; position:relative !important; inset:auto !important; width:100% !important; height:auto !important; overflow:visible !important; }
 .crt-device-ui #timeline .tl-slide.crt-slide-active { display:block !important; }
 .crt-device-ui #timeline .tl-slide-scrollable-container, .crt-device-ui #timeline .tl-slide-content-container { display:block !important; position:static !important; width:100% !important; height:auto !important; min-height:0 !important; padding:0 !important; margin:0 !important; }
 .crt-device-ui #timeline .tl-slide-content { display:flex !important; flex-direction:column; position:static !important; width:100% !important; height:auto !important; padding:12px !important; }
 .crt-device-ui #timeline .tl-media { position:static !important; width:100% !important; height:auto !important; padding:0 !important; margin:0 !important; }
 .crt-device-ui #timeline .tl-media-content-container, .crt-device-ui #timeline .tl-media-content { height:auto !important; max-height:none !important; }
 .crt-device-ui #timeline img.tl-media-item { max-height:320px !important; max-width:100%; width:auto; object-fit:contain; }
 .crt-device-ui #timeline .tl-text { position:static !important; width:100% !important; min-width:0 !important; margin:18px 0 0 !important; padding:0 !important; }
 .crt-device-ui #timeline .tl-slide .tl-headline, .crt-device-ui #timeline .tl-slide .tl-headline-title { display:block !important; font-size:clamp(24px,5vw,32px) !important; margin:0 0 16px; }
 .crt-device-ui #timeline .tl-text-content-container { padding:0 !important; }
 .crt-device-ui #timeline .tl-timenav { position:relative !important; top:auto !important; height:130px !important; width:100% !important; margin-top:20px; }
 .crt-device-ui #timeline .tl-menubar { position:relative !important; top:auto !important; left:0 !important; display:flex; height:44px; margin-top:8px; width:auto; }
 .crt-device-ui #timeline .tl-menubar-button { display:flex; align-items:center; justify-content:center; height:44px; }
 .crt-device-ui .crt-map-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:10px 14px; margin:0 0 16px; border:1px solid #999; background:white; color:#526c09; font:16px/1.4 Lato,sans-serif; text-decoration:none; }
 .crt-device-ui .crt-carousel { height:calc(100vh - var(--crt-header-height)); height:calc(100svh - var(--crt-header-height)); }
 .crt-device-ui.page-template-template-about .content-w, .crt-device-ui.page-template-template-contact .content-w { min-height:calc(100svh - var(--crt-header-height)); padding:20px 10px; border-width:8px; }
 .crt-device-ui #directions { top:calc(var(--crt-header-height) + 12px); max-height:calc(100dvh - var(--crt-header-height) - 32px); }
 .crt-device-ui .crt-carousel__dots { right:10px; }
}
@media (min-width:1025px) { .crt-map-link { display:none; } }
@media (max-width:600px) {
 .crt-device-ui .header-row { padding:12px; }
 .crt-device-ui .header-row > div { flex-basis:100%; text-align:start !important; }
 .crt-device-ui .header-row > div:last-child { justify-content:space-between; }
 .crt-device-ui.single-route .site-main > .pure-g > div, .crt-device-ui.page-template-template-knit-your-route .site-main > .pure-g > div { padding:0 12px !important; }
 .crt-device-ui .crt-carousel__caption { max-width:calc(100% - 20px); padding:12px; }
 .crt-device-ui .crt-carousel__caption h2 { font-size:20px; line-height:1.3; }
 .crt-device-ui .crt-carousel__caption p { font-size:14px; line-height:1.5; margin-top:10px; }
 .crt-device-ui .content { font-size:16px; }
 .crt-device-ui .crt-timeline-controls button { padding:10px 12px; }
 .crt-device-ui .crt-title-art { max-height:180px; }
}
@media (max-height:500px) and (max-width:1024px) {
 .crt-device-ui .crt-carousel { min-height:300px; }
 .crt-device-ui #timeline img.tl-media-item { max-height:240px !important; }
}
@media (prefers-reduced-motion:reduce) {
 .crt-device-ui *, .crt-device-ui *::before, .crt-device-ui *::after { scroll-behavior:auto !important; transition-duration:0s !important; animation-duration:0s !important; }
}

/* Let every selected slide grow with its text, including desktop and zoomed views. */
.crt-device-ui #timeline, .crt-device-ui .timeline-w { height:auto !important; }
 .crt-device-ui #timeline .tl-storyslider, .crt-device-ui #timeline .tl-slider-container, .crt-device-ui #timeline .tl-slider-item-container { position:relative !important; height:auto !important; min-height:0 !important; top:auto !important; left:0 !important; transform:none !important; width:100% !important; overflow:visible !important; }
 .crt-device-ui #timeline .tl-slide { display:none !important; position:relative !important; inset:auto !important; width:100% !important; height:auto !important; overflow:visible !important; }
 .crt-device-ui #timeline .tl-slide.crt-slide-active { display:block !important; }
 .crt-device-ui #timeline .tl-slide-scrollable-container, .crt-device-ui #timeline .tl-slide-content-container { display:block !important; position:static !important; width:100% !important; height:auto !important; min-height:0 !important; padding:0 !important; margin:0 !important; }
 .crt-device-ui #timeline .tl-slide-content { display:flex !important; flex-direction:column; position:static !important; width:100% !important; height:auto !important; padding:12px !important; }
 .crt-device-ui #timeline .tl-media { position:static !important; width:100% !important; height:auto !important; padding:0 !important; margin:0 !important; }
 .crt-device-ui #timeline .tl-media-content-container, .crt-device-ui #timeline .tl-media-content { height:auto !important; max-height:none !important; }
 .crt-device-ui #timeline img.tl-media-item { max-height:440px !important; max-width:100%; width:auto; object-fit:contain; }
 .crt-device-ui #timeline .tl-text { position:static !important; width:100% !important; min-width:0 !important; margin:18px 0 0 !important; padding:0 !important; }
 .crt-device-ui #timeline .tl-slide .tl-headline, .crt-device-ui #timeline .tl-slide .tl-headline-title { display:block !important; font-size:clamp(24px,5vw,32px) !important; margin:0 0 16px; }
 .crt-device-ui #timeline .tl-text-content-container { padding:0 !important; }
 .crt-device-ui #timeline .tl-timenav { position:relative !important; top:auto !important; height:130px !important; width:100% !important; margin-top:20px; }
 .crt-device-ui #timeline .tl-menubar { position:relative !important; top:auto !important; left:0 !important; display:flex; height:44px; margin-top:8px; width:auto; }
 .crt-device-ui #timeline .tl-menubar-button { display:flex; align-items:center; justify-content:center; height:44px; }

@media (max-width:1024px) { .crt-device-ui #timeline img.tl-media-item { max-height:320px !important; } }
.crt-device-ui .crt-timeline-controls [role=status] { direction:ltr; unicode-bidi:isolate; }
/* TimelineJS 3.9.13 gives its slide content content-box sizing. */
.crt-device-ui #timeline .tl-slide-content { box-sizing:border-box !important; min-width:0; }
.crt-device-ui #timeline .tl-slide-content > .tl-media { order:0; }
.crt-device-ui #timeline .tl-slide-content > .tl-text { order:1; }

html.crt-ui-document { scrollbar-gutter:stable; }
.crt-device-ui .crt-carousel .crt-carousel__dot { height:44px; }
@media (max-height:500px) and (max-width:1024px) {
 .crt-device-ui .crt-carousel__dots { display:none; }
 .crt-device-ui .crt-carousel__mobile-controls { position:absolute; z-index:3; bottom:85px; left:12px; display:flex; gap:4px; direction:ltr; }
 .crt-device-ui .crt-carousel__mobile-controls button { width:44px; height:44px; font-size:28px; padding:0; background:rgba(0,0,0,.55); color:white; }
 .crt-device-ui .crt-carousel .crt-carousel__pause { bottom:85px; }
}

.crt-device-ui .menu-w { padding-bottom:max(16px,env(safe-area-inset-bottom)); }

@media (max-width:1024px) { .crt-device-ui #single-map-col, .crt-device-ui #crt-undated article { scroll-margin-top:calc(var(--crt-header-height) + 16px); } }
.crt-device-ui #directions { right:16px !important; width:min(360px,calc(100% - 32px)); }

.crt-device-ui .popup-w { z-index:200; overscroll-behavior:contain; }
.crt-device-ui.crt-gallery-open { overflow:hidden !important; }
.crt-device-ui .popup-w .bx-controls-direction a { min-width:44px; min-height:44px; }

.crt-device-ui.page-template-template-knit-your-route .menu-section-title.knit { min-height:48px; padding:12px 16px !important; }
.crt-device-ui .close-popup { display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.8); border-radius:2px; }
@media (max-height:500px) and (max-width:1024px) {
 .crt-device-ui .crt-carousel__link { align-items:flex-start; padding-top:18px; }
 .crt-device-ui .crt-carousel__caption { max-width:calc(100% - 24px); padding:10px; }
 .crt-device-ui .crt-carousel__caption h2 { font-size:20px; line-height:1.25; }
 .crt-device-ui .crt-carousel__caption p { font-size:14px; line-height:1.4; margin-top:8px; }
}
.crt-device-ui .fabrika-w a { display:flex; align-items:center; min-height:44px; padding:8px 4px; }
.crt-device-ui #directions > a { display:flex; align-items:center; min-height:44px; padding:8px 0; }
.crt-device-ui #directions > a h3 { margin:0; }
.crt-device-ui [role=button] { cursor:pointer; touch-action:manipulation; }
