/* VistaMira 2.6: touch controls, safe areas and mobile views. */
html{scroll-padding-top:16px}body{overflow-wrap:break-word}select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f3b83b;outline-offset:3px}.skip-link{position:fixed;top:-100px;left:12px;z-index:9999;background:#fff;color:#12213b;padding:14px}.skip-link:focus{top:10px}.mobile-nav{display:none}.seo-intro{max-width:1000px;margin:32px auto;padding:24px;border:1px solid var(--line);border-radius:15px;background:var(--night-panel)}.seo-intro p{line-height:1.7}.destination-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;list-style:none;padding:0}.destination-grid a{display:block;padding:16px;border:1px solid var(--line);border-radius:12px}.guide-main{max-width:1040px}.guide-main article{padding:18px 0;border-bottom:1px solid var(--line)}.guide-main article h2{line-height:1.4}.guide-main li{padding-left:6px}.guide-main .sources{font-size:.85rem;color:var(--muted)}.guide-main a{overflow-wrap:anywhere}.guide-main .primary{display:inline-block;text-decoration:none;margin:12px 0}.guide-main ol{padding-left:30px}.guide-main h1{line-height:1.2}
@media(max-width:700px){
 body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}main{padding:16px 12px 0;min-width:0}.topbar{padding:14px max(14px,env(safe-area-inset-right)) 14px max(14px,env(safe-area-inset-left));gap:12px}.topnote{display:none}.search-panel{padding:18px 14px}h1{font-size:1.6rem;margin-bottom:16px}input,select,textarea{font-size:16px!important}button,input[type=number],input[type=search],select{min-height:44px}.category-options{max-width:100%;gap:6px}.category-options span{min-height:44px;display:flex;align-items:center;padding:10px}.category-filters{min-width:0}.search-panel,.workspace,.results-panel,.map-panel,.tour-panel{min-width:0}.mobile-nav{position:fixed;display:flex;bottom:0;left:0;right:0;z-index:1100;gap:6px;padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:#0b1933f5;border-top:1px solid var(--line)}.mobile-nav button{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;background:#122747;color:var(--ink);font-weight:650}.mobile-nav button[aria-pressed=true]{background:var(--blue);color:#12213b;border-color:var(--blue)}.workspace{display:block!important;height:auto;min-height:0;scroll-margin-top:12px}.workspace[data-view=list]>.map-panel,.workspace[data-view=map]>.results-panel{display:none!important}/* 2.22: die data-view=tour-Varianten und .workspace>.tour-panel entfernt – das Tourpanel ist seit 2.16 kein Kind der Arbeitsfläche mehr, die Regeln waren tot. */.workspace>.results-panel{max-height:none;padding:18px 14px 0;border:0}.results{overflow:visible}.workspace>.map-panel{height:65vh;height:65svh;min-height:320px}.workspace>.tour-panel{max-height:none;overflow:visible;border:0;padding:18px 14px}.result{grid-template-columns:30px minmax(0,1fr)}.point-title{text-align:left;min-height:44px;line-height:1.4}.order-button,.icon-button{min-width:44px;min-height:44px}.sight-choice{min-height:48px}.sight-choice input{width:22px;height:22px;flex-shrink:0}.all-sights{padding:12px 0}.map-tools{left:48px;right:8px;gap:6px}.map-tools button{min-height:44px}.tour-actions{gap:10px}dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);overflow-y:auto}dialog::backdrop{background:#051024b3}.poi-dialog{width:calc(100% - 24px)}footer{padding:20px 14px}.seo-intro{padding:18px 14px;margin:24px 0}.guide-main{padding:20px 16px}.guide-main h1{font-size:1.7rem}.guide-main ol{padding-left:24px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* 2.6.1: progress belongs to the result column. */
#search-progress.inline-search-progress{position:static;inset:auto;margin:12px 0;padding:18px;border:1px solid var(--line);border-radius:12px;box-shadow:none;width:100%;z-index:auto;background:linear-gradient(135deg,#112644,#294d7b);flex-shrink:0}#search-progress progress{display:block;width:100%;height:18px;accent-color:#edbc74}#search-progress p{line-height:1.5}.is-searching #results>.empty{display:none}.inline-search-progress button{min-height:44px}#select-all-label[hidden]{display:none!important}

/* 2.15: mobile results use the page's native touch scrolling, without a height cap. */
@media(max-width:700px){
 .workspace{overflow:visible}
 .workspace>.results-panel{height:auto;max-height:none;overflow:visible;padding:12px 10px 0}
 .workspace .results{height:auto;max-height:none;overflow:visible;flex:none;padding:4px 0 20px}
 .results .result{padding:10px 0;gap:6px;grid-template-columns:26px minmax(0,1fr)}
 .results .point-title{font-size:.95rem;line-height:1.3;min-height:44px}
 .results .point-meta{font-size:.76rem;line-height:1.35;margin:2px 0 4px}
 .results .point-description{font-size:.8rem;line-height:1.35;margin:4px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .results .interest-meta{display:none}
 .results .point-actions{gap:6px;margin-top:4px}
 .results .point-actions button,.results .point-actions a{min-height:44px;padding:6px 9px;font-size:.8rem}
 .results .sight-choice{min-height:44px}
}

/* 2.22: Rechtsseiten und Kontaktformular. Nutzt die Langtext-Spalte .guide-main. */
.legal-main{padding:24px 20px 48px}
.legal-main h1{margin:0 0 18px}
.legal-main h2{margin:30px 0 10px;line-height:1.35}
.legal-main p,.legal-main li{line-height:1.7;overflow-wrap:break-word}
.legal-main ul{padding-left:22px}
.legal-main li{margin:6px 0}
.legal-main code{font-size:.9em;padding:1px 5px;border-radius:4px;background:var(--vm-surface-sunken)}
.legal-main nav[aria-label=Brotkrumen]{font-size:.85rem;margin-bottom:12px;color:var(--vm-ink-muted)}
.legal-main .hint{font-size:.85rem;color:var(--vm-ink-muted)}
.legal-main table{width:100%;border-collapse:collapse;margin:14px 0;font-size:.85rem}
.legal-main th,.legal-main td{padding:9px 10px;border:1px solid var(--vm-line);text-align:left;vertical-align:top;line-height:1.5}
.legal-main th{background:var(--vm-surface-sunken);color:var(--vm-ink-strong);font-weight:650}
/* Offene Rechtsfragen sichtbar markiert – vor Veröffentlichung zu klären und zu entfernen. */
.legal-flag{margin:12px 0;padding:12px 14px;border:1px dashed var(--vm-warning);border-radius:var(--vm-radius-sm);
 background:#3a2d1a66;color:#ffe0a7;font-size:.85rem}
/* Literale Farben statt Tokens: die reiseziele/-Seiten laden tokens.css nicht. */
.legal-footer{max-width:1040px;margin:auto;padding:22px 20px 40px;font-size:.8rem;line-height:1.8;color:#c1cede}
.legal-footer a{color:#edbc74}
.contact-form{margin:18px 0 10px;max-width:640px}
.contact-form label{display:block;margin:16px 0 6px;font-size:.9rem;font-weight:650}
.contact-form label .hint{font-weight:400}
.contact-form input,.contact-form textarea{display:block;box-sizing:border-box;width:100%;min-height:48px;padding:11px 12px;
 border:1px solid var(--vm-line-strong);border-radius:var(--vm-radius-sm);background:var(--vm-surface-sunken);color:var(--vm-ink);font:inherit}
.contact-form textarea{min-height:170px;line-height:1.6;resize:vertical}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--vm-accent);outline:none}
.contact-form .primary{margin-top:20px;min-height:52px;padding:14px 22px}
/* Unsichtbares Prüffeld: nicht über [hidden], damit automatisierte Einreichungen es ausfüllen. */
.contact-trap{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
@media(max-width:700px){
 .legal-main{padding:18px 14px 40px}
 .legal-main h2{margin:24px 0 8px}
 .legal-main table,.legal-main thead,.legal-main tbody,.legal-main tr,.legal-main th,.legal-main td{display:block}
 .legal-main thead{display:none}
 .legal-main tr{margin:0 0 10px;border:1px solid var(--vm-line);border-radius:var(--vm-radius-sm);overflow:hidden}
 .legal-main td{border:0;border-bottom:1px solid var(--vm-line)}
 .legal-main tr td:last-child{border-bottom:0}
 .legal-footer{padding:18px 14px 32px}
 .contact-form .primary{width:100%}
}
