/* Mosel entdecken: dieselben Farben, Bildradien und Karten wie Touren/Weinort. */
.mosel-seite { padding-top:clamp(2.5rem,6vw,5rem); }
.mosel-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2rem clamp(2rem,5vw,4.5rem); align-items:center; padding-bottom:clamp(2.5rem,5vw,4rem); }
.mosel-hero > * { min-width:0; }
.mosel-hero h1 { font-size:clamp(2.5rem,5.4vw,4.6rem); line-height:1; letter-spacing:-.02em; max-width:17ch; margin:0 0 1.4rem; color:var(--schiefer); }
.mosel-hero p { font-size:1.12rem; line-height:1.7; max-width:33rem; }
.mosel-hero figure { margin:0; }
.mosel-hero img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:var(--rund); background:var(--linie); }
.mosel-hero figcaption { font-size:var(--groesse-mini); color:var(--stein); margin-top:.65rem; }
.mosel-back { display:inline-block; font-size:var(--groesse-klein); margin-bottom:1.4rem; color:var(--mosel); }

.mosel-themes { grid-template-columns:repeat(6,minmax(0,1fr)); gap:.9rem; margin-bottom:clamp(3rem,6vw,5rem); }
.mosel-themes .aussicht-kachel { text-decoration:none; justify-content:flex-start; color:var(--auf-gruen); padding:.55rem .55rem 1rem; gap:.8rem; font-size:.95rem; min-width:0; }
.mosel-themes .aussicht-kachel img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:9px; }
.mosel-themes .aussicht-kachel span { display:block; min-height:2.6em; align-content:center; padding-inline:.2rem; }
.mosel-themes .aussicht-kachel[aria-current] { background:var(--mosel); box-shadow:inset 0 0 0 2px var(--gold-hell); }
.mosel-themes .aussicht-kachel:hover { color:var(--auf-gruen); }

.mosel-directory { padding-bottom:1rem; }
.mosel-directory > h2,.mosel-events > h2,.mosel-village h2,.mosel-stay h2,.mosel-teaser h2 { font-size:var(--groesse-h2); line-height:1.12; margin:0 0 1.3rem; }
.mosel-controls { display:flex; flex-wrap:wrap; align-items:end; gap:1.2rem; padding:clamp(1.25rem,3vw,2rem); background:var(--rose); border:1px solid var(--linie); border-radius:var(--rund); margin:1.8rem 0 1rem; }
.mosel-controls label { display:grid; gap:.55rem; flex:1; min-width:180px; }
.mosel-controls label:first-child { flex:2; min-width:240px; }
.mosel-controls label > span { font-size:var(--groesse-klein); font-weight:500; }
.mosel-controls input,.mosel-controls select { height:52px; width:100%; min-width:0; padding:.75rem 1rem; border:1px solid var(--linie-stark); background:var(--papier); color:var(--schiefer); font:inherit; border-radius:12px; }
.mosel-reset { font:600 var(--groesse-klein)/1.4 var(--schrift-text); color:var(--gruen); padding:.85rem 1.2rem; min-height:48px; border:1px solid var(--gruen); background:transparent; border-radius:999px; cursor:pointer; }
.mosel-reset:hover { background:var(--gruen); color:var(--auf-gruen); }
.mosel-small { font-size:var(--groesse-klein); line-height:1.65; color:var(--stein); }
.mosel-count { margin-bottom:1.6rem; }
.mosel-group { position:relative; isolation:isolate; padding-block:clamp(2.5rem,5vw,4.5rem); margin-block:0 1.6rem; }
.mosel-group:nth-child(even)::before { content:""; position:absolute; z-index:-1; inset:0 calc(50% - 50vw); background:var(--rose); }
.mosel-group > h2 { font-size:var(--groesse-h2); margin:0 0 1.8rem; }
.mosel-food-group > h2 { font-size:clamp(1.4rem,2.4vw,2rem); margin:1.5rem 0 1.5rem; }
.mosel-food-group + .mosel-food-group { margin-top:3rem; }
.mosel-places { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.1rem,2.5vw,2rem); }
.mosel-place { display:flex; flex-direction:column; min-width:0; background:var(--gruen); color:var(--auf-gruen); border-radius:var(--rund); overflow:hidden; scroll-margin-top:120px; }
.mosel-place figure { margin:0; }
.mosel-place figure img { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; background:var(--mosel); }
.mosel-place figcaption { padding:.65rem 1.6rem 0; color:var(--auf-gruen-leise); font-size:var(--groesse-mini); line-height:1.45; }
.mosel-place-body { display:flex; flex-direction:column; flex:1; padding:1.5rem 1.6rem 1.7rem; }
.mosel-place h3 { font-size:clamp(1.5rem,2.4vw,2rem); line-height:1.16; color:var(--auf-gruen); margin:0 0 1rem; overflow-wrap:anywhere; }
.mosel-place p { font-size:1rem; line-height:1.65; color:var(--auf-gruen-leise); margin:0 0 1.2rem; }
.mosel-links { display:flex; flex-wrap:wrap; align-items:center; gap:.7rem 1.2rem; }
.mosel-links a { color:var(--auf-gruen); font-size:var(--groesse-klein); text-underline-offset:.2em; overflow-wrap:anywhere; }
.mosel-place-body > .mosel-links:first-of-type { margin-top:auto; padding-top:.25rem; }
.mosel-place-body > .mosel-links:first-of-type > a:first-child { padding:.6rem 1rem; border:1px solid rgba(247,244,238,.48); border-radius:999px; text-decoration:none; font-weight:600; }
.mosel-place-body > .mosel-links:first-of-type > a:first-child:hover { background:var(--papier); color:var(--gruen); }
.mosel-place-body > .mosel-links + .mosel-links { border-top:1px solid rgba(247,244,238,.22); padding-top:1rem; margin-top:1.2rem; }
.mosel-place .region-directions { font-size:var(--groesse-klein); border-top:1px solid rgba(247,244,238,.22); padding-top:1rem; margin-top:1.2rem; color:var(--auf-gruen); }
.region-directions summary { cursor:pointer; line-height:1.5; }
.region-directions dl { margin:1rem 0; }
.region-directions dl > div { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.region-directions dd { margin:0; font-variant-numeric:tabular-nums; }
.region-directions p { margin:.8rem 0 0; }
.mosel-place .region-directions a { color:var(--auf-gruen); }
.mosel-place .region-directions p,.mosel-place .mosel-small { color:var(--auf-gruen-leise); }
.mosel-credits { font-size:var(--groesse-mini); line-height:1.7; margin:1rem 0 2rem; color:var(--stein); }
.mosel-credits summary { cursor:pointer; }
.mosel-credits p { margin:.8rem 0; }
.mosel-credits ul { padding-left:1.2rem; }
.mosel-credits li { margin-bottom:.55rem; }
.mosel-image-credits { margin-bottom:clamp(2rem,4vw,3.5rem); }

.mosel-stay { background:var(--rose); padding-block:clamp(3rem,6vw,5rem); margin-bottom:clamp(3rem,6vw,5rem); }
.mosel-stay > .rahmen { display:grid; grid-template-columns:1fr 1fr; gap:8%; }
.mosel-stay p { line-height:1.7; color:var(--stein); margin-bottom:1.7rem; max-width:32rem; }
.mosel-stay .knopf { display:inline-flex; }
.mosel-village { padding-bottom:clamp(3rem,6vw,5rem); }
.mosel-village p { max-width:45rem; line-height:1.7; margin-bottom:1.3rem; color:var(--stein); }
.mosel-village a { color:var(--mosel); }

.mosel-teaser-title { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-bottom:2rem; }
.mosel-teaser-title p { max-width:42rem; line-height:1.7; color:var(--stein); }
.mosel-teaser-title .knopf { flex-shrink:0; }
.mosel-teaser-list { --mosel-teaser-gap:1.25rem; display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 3 * var(--mosel-teaser-gap)) / 4); gap:var(--mosel-teaser-gap); overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--mosel) transparent; padding:4px 0 1rem; }
.mosel-teaser-list > a { min-width:0; text-decoration:none; scroll-snap-align:start; }
.mosel-teaser-list .tour-text { position:relative; padding:1.2rem 1.2rem 2.8rem; }
.mosel-teaser-list h3 { font-size:1.35rem; line-height:1.18; }
.mosel-teaser-arrow { position:absolute; right:1.2rem; bottom:1rem; color:var(--gold-hell); font-size:1.4rem; line-height:1.3; }
.mosel-teaser-list a:hover { background:var(--mosel); }
.mosel-teaser-footer { display:flex; justify-content:space-between; align-items:start; gap:1rem; padding-top:1rem; min-height:4rem; }
.mosel-teaser-footer .mosel-credits { margin:.6rem 0 0; }
.mosel-slide-controls { display:flex; gap:.65rem; flex-shrink:0; }
.mosel-slide-controls button { width:46px; height:46px; display:grid; place-items:center; border:1px solid var(--gruen); border-radius:50%; color:var(--gruen); background:transparent; cursor:pointer; }
.mosel-slide-controls button svg { width:21px; height:21px; }
.mosel-slide-controls button:hover:not(:disabled) { color:var(--auf-gruen); background:var(--gruen); }
.mosel-slide-controls button:disabled { opacity:.3; cursor:default; }
.mosel-teaser.is-compact { margin-block:clamp(2.5rem,5vw,4rem); }
.mosel-teaser-box { display:grid; grid-template-columns:1fr 1fr; background:var(--gruen); color:var(--auf-gruen); border-radius:var(--rund); overflow:hidden; }
.mosel-teaser-box figure { margin:0; }
.mosel-teaser-box figure img { width:100%; height:100%; aspect-ratio:16/10; object-fit:cover; }
.mosel-teaser-copy { align-self:center; padding:clamp(1.5rem,4vw,3rem); }
.mosel-teaser-copy h2 { color:var(--auf-gruen); }
.mosel-teaser-copy p { color:var(--auf-gruen-leise); margin:0 0 1.5rem; }
.mosel-teaser-copy .knopf { color:var(--gruen); background:var(--papier); border-color:var(--papier); }

.mosel-events { padding-bottom:2rem; }
.mosel-events > p { max-width:52rem; line-height:1.7; margin-bottom:1rem; color:var(--stein); }
.mosel-event { display:grid; grid-template-columns:180px 1fr; gap:1.6rem; background:var(--rose); border-radius:var(--rund-klein); padding:1.6rem; margin-bottom:1rem; }
.mosel-event time { font-size:var(--groesse-klein); color:var(--mosel); }
.mosel-event h3 { margin:0 0 .8rem; font-size:1.65rem; }
.mosel-event p { margin:0 0 .8rem; }
.mosel-seite .region-event-controls { display:flex; gap:1.2rem; flex-wrap:wrap; background:var(--rose); border-radius:var(--rund); padding:1.5rem; margin:1.8rem 0 2rem; }
.mosel-seite .region-event-controls > label { flex:1; min-width:190px; }
.mosel-seite .region-event-controls input,.mosel-seite .region-event-controls select,.mosel-seite input[type=month] { width:100%; min-width:0; padding:.8rem 1rem; border:1px solid var(--linie-stark); background:var(--papier); font:inherit; color:var(--schiefer); border-radius:12px; }
.mosel-seite .region-calendar-layout { display:grid; grid-template-columns:320px 1fr; gap:2.5rem; align-items:start; }
.mosel-seite .region-calendar { background:var(--gruen); color:var(--auf-gruen); border-radius:var(--rund); padding:1.4rem; align-self:start; }
.mosel-seite .region-month-nav { display:flex; align-items:center; justify-content:space-between; gap:.7rem; }
.mosel-seite .region-month-nav h3 { font-size:1.4rem; margin:.7rem 0; color:var(--auf-gruen); }
.mosel-seite .region-month-nav button { width:36px; height:36px; font-size:1.25rem; border:1px solid rgba(247,244,238,.4); color:var(--auf-gruen); border-radius:50%; background:transparent; cursor:pointer; }
.mosel-seite .region-month-input { display:grid; gap:.6rem; font-size:var(--groesse-klein); margin:1rem 0; }
.mosel-seite .region-weekdays,.mosel-seite .region-days { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center; }
.mosel-seite .region-weekdays { font-size:var(--groesse-mini); margin:1.2rem 0 .6rem; color:var(--auf-gruen-leise); }
.mosel-seite .region-days button { min-height:42px; background:var(--mosel); color:var(--auf-gruen); border:1px solid transparent; border-radius:7px; position:relative; cursor:pointer; font:inherit; }
.mosel-seite .region-days button:disabled { opacity:.4; cursor:default; }
.mosel-seite .region-days button.has-events { border-bottom-color:var(--gold-hell); font-weight:600; }
.mosel-seite .region-days button[aria-pressed=true] { color:var(--gruen); background:var(--papier); border-color:var(--gold-hell); }
.mosel-seite .region-days small { display:block; font-size:9px; }
.mosel-seite .region-event { display:grid; grid-template-columns:110px 1fr; gap:1.5rem; padding:1.6rem; margin:0 0 1.1rem; background:var(--rose); border-radius:var(--rund-klein); }
.mosel-seite .region-event-date { display:grid; align-content:start; gap:.4rem; font-size:var(--groesse-klein); color:var(--mosel); }
.mosel-seite .region-event h4 { font:400 clamp(1.3rem,2.2vw,1.7rem)/1.2 var(--schrift-titel); margin:0 0 .8rem; }
.mosel-seite .region-kind { font-size:var(--groesse-mini); color:var(--gold-text); margin:0 0 .8rem; }
.mosel-seite .region-agenda > h3 { font-size:1.6rem; margin:.5rem 0 1.5rem; }
.mosel-seite .region-event p { margin-bottom:.8rem; }
.mosel-seite .region-event a,.mosel-seite .region-official-calendars a { color:var(--mosel); }
.mosel-seite .region-official-calendars { margin-top:1.5rem; font-size:var(--groesse-klein); }
.mosel-seite .region-official-calendars div { display:flex; flex-wrap:wrap; gap:1rem; margin-top:1rem; }
.mosel-seite .text-button { color:var(--mosel); background:none; border:0; padding:1rem 0; text-decoration:underline; font:inherit; cursor:pointer; }
.mosel-seite .region-calendar .text-button { color:var(--auf-gruen); }
.mosel-seite .region-calendar-notice { margin-top:2rem; }
.mosel-seite .gast-klein { font-size:var(--groesse-klein); color:var(--stein); }
.mosel-seite [hidden],.mosel-teaser [hidden] { display:none!important; }
.mosel-seite :focus-visible,.mosel-teaser :focus-visible { outline:3px solid var(--gold); outline-offset:4px; }

@media(min-width:980px) {
 .mosel-places { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
 .mosel-place-body { padding:1.2rem; }
 .mosel-place figcaption { padding-inline:1.2rem; }
 .mosel-place h3 { font-size:1.45rem; }
}
@media(min-width:1280px) {
 .mosel-places { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:1000px) {
 .mosel-themes { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding:2px var(--rand-r) .6rem 2px; margin-right:calc(-1 * var(--rand-r)); scrollbar-width:none; }
 .mosel-themes::-webkit-scrollbar { display:none; }
 .mosel-themes .aussicht-kachel { flex:0 0 9.5rem; scroll-snap-align:start; }
 .mosel-teaser-list { grid-auto-columns:calc((100% - 2 * var(--mosel-teaser-gap)) / 3); }
 .mosel-seite .region-calendar-layout { grid-template-columns:290px 1fr; gap:1.5rem; }
}
@media(max-width:860px) {
 .mosel-hero { grid-template-columns:minmax(0,1fr); }
 .mosel-hero figure { max-width:36rem; }
 .mosel-hero h1 { max-width:19ch; }
 .mosel-places { gap:1.1rem; }
 .mosel-place-body { padding:1.3rem; }
 .mosel-place figcaption { padding-inline:1.3rem; }
 .mosel-place h3 { font-size:1.5rem; }
 .mosel-stay > .rahmen { gap:2.5rem; }
}
@media(max-width:650px) {
 .mosel-seite { padding-top:2.5rem; }
 .mosel-hero { gap:1.8rem; padding-bottom:2.5rem; }
 .mosel-hero h1 { font-size:clamp(2.25rem,8.7vw,2.7rem); line-height:1.04; max-width:18ch; }
 .mosel-hero p { font-size:1.05rem; }
 .mosel-controls { padding:1.25rem; gap:1rem; }
 .mosel-controls label,.mosel-controls label:first-child { min-width:100%; flex:1; }
 .mosel-controls .mosel-reset { margin-top:.2rem; }
 .mosel-places { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
 .mosel-place figure img { aspect-ratio:3/2; }
 .mosel-place h3 { font-size:1.65rem; }
 .mosel-place p { font-size:1rem; }
 .mosel-place-body { padding:1.4rem; }
 .mosel-place figcaption { padding-inline:1.4rem; }
 .mosel-stay > .rahmen { grid-template-columns:minmax(0,1fr); }
 .mosel-teaser-title { display:block; }
 .mosel-teaser-title .knopf { margin-top:1.5rem; }
 .mosel-teaser-list { --mosel-teaser-gap:1rem; grid-auto-columns:84%; }
 .mosel-teaser-list .tour-bild img { aspect-ratio:3/2; }
 .mosel-teaser-list h3 { font-size:1.4rem; }
 .mosel-teaser-box { grid-template-columns:minmax(0,1fr); }
 .mosel-teaser-box figure img { aspect-ratio:3/2; }
 .mosel-teaser-copy { padding:1.5rem; }
 .mosel-seite .region-calendar-layout { grid-template-columns:minmax(0,1fr); gap:2rem; }
 .mosel-seite .region-calendar { width:100%; max-width:370px; }
 .mosel-seite .region-event,.mosel-event { grid-template-columns:minmax(0,1fr); gap:.9rem; padding:1.3rem; }
 .mosel-seite .region-event-date { display:flex; gap:.8rem; flex-wrap:wrap; }
 .mosel-seite .region-event-controls { padding:1.25rem; }
}
