/* =====================================================================
   LUXESCAPE — Design-System 2026
   Ferienwohnungen in Kärnten: Gerlitzen Alpe · Turracher Höhe ·
   Ossiacher See · Maria Saal
   ---------------------------------------------------------------------
   Aufbau dieser Datei (die Nummern stehen als Überschrift im Text):
      1. Schriften (selbst gehostet)
      2. Farben und Grundwerte (hell und dunkel)
      3. Grundgerüst: Typografie, Abstände, Raster
      4. Schaltflächen
      5. Kopfzeile und Menü
      6. Startseiten-Kopf, Höhenband
      7. Seitenkopf mit Bild (Unterseiten)
      8. Karten und Listen, Karte (Google Maps)
      9. Unterkünfte, Galerien, Bildansicht
     10. Häufige Fragen
     11. Unterkunftsfinder
     12. Aufrufband und Downloads
     13. Fußbereich
     14. Schnellzugriff und schwebende Schaltflächen
     15. Formulare
     16. Bewegung · 17. Druck
     danach: Cookie-Banner, WhatsApp-Chat, Rechtstexte, Orte,
     Angebote, Bildnachweis, AGB, Vermietung, Presse, Bild-Collage.
   Spätere Blöcke stehen bewusst am Ende: Sie überschreiben ältere
   Regeln gezielt. Neue Stile bitte ebenfalls unten mit Überschrift
   anfügen und ASSET_VERSION in inc/config.php hochzählen.
   Farben nur über die Variablen aus Abschnitt 2 (z. B. var(--sage)).
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. Schriften — selbst gehostet.
   Jost und Newsreader liegen unter /assets/fonts/. Es wird nichts
   von Google nachgeladen, es fließen also keine Besucherdaten ab.
   --------------------------------------------------------------------- */
@font-face{font-family:"Jost";font-style:normal;font-weight:300;font-display:swap;
  src:url("../fonts/jost-latin-ext-300-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Jost";font-style:normal;font-weight:300;font-display:swap;
  src:url("../fonts/jost-latin-300-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/jost-latin-ext-400-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/jost-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;
  src:url("../fonts/jost-latin-ext-500-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;
  src:url("../fonts/jost-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/newsreader-latin-ext-400-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/newsreader-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:400;font-display:swap;
  src:url("../fonts/newsreader-latin-ext-400-italic.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:400;font-display:swap;
  src:url("../fonts/newsreader-latin-400-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ---------------------------------------------------------------------
   2. Farben und Grundwerte
   --------------------------------------------------------------------- */
:root{
  /* Markenfarben, aus dem Logo abgeleitet */
  --sage:#4E6A59;
  --sage-deep:#354B3E;
  --sage-soft:#8CA698;
  --lake:#5F878F;
  --copper:#A3703F;

  /* Flächen und Text — helles Sanddesign.
     Die Werte sind gegenüber der ersten Fassung kräftiger: die Seite
     soll ruhig wirken, aber nicht blass. Flächen setzen sich klarer
     voneinander ab, Linien und Grautöne sind besser lesbar. */
  --bg:#FAF7F0;
  --bg-2:#EDE7D8;
  --paper:#FFFEFA;
  --ink:#141A15;
  --ink-2:#3A453D;
  --stone:#5A665E;
  --line:#D9D0BA;
  --line-soft:#E7E0CE;
  --tint:#E6ECE4;
  --on-dark:#FBF8F1;
  --on-solid:#FBF8F1;

  --shadow-1:0 1px 2px rgba(60,50,30,.04), 0 8px 22px -16px rgba(60,50,30,.20);
  --shadow-2:0 2px 6px rgba(60,50,30,.05), 0 26px 56px -34px rgba(60,50,30,.30);

  /* Inhaltsbreite: die Seite läuft nicht mehr bis an die Bildschirmränder,
     sondern steht als ruhige Spalte in der Mitte. Auf großen Monitoren
     bleibt links und rechts Luft, auf kleinen bleibt der Seitenrand
     gleich – so wird nichts abgeschnitten. */
  --wrap:1240px;
  --r:16px;
  --r-lg:26px;
  --r-sm:10px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --step:clamp(1rem,2.2vw,2.4rem);

  color-scheme:light;
}

/* ---------------------------------------------------------------------
   3. Grundgerüst
   --------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:7.5rem;
}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Newsreader",Georgia,"Times New Roman",serif;
  font-size:1.0625rem;
  line-height:1.75;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img,picture,video,svg{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;}
hr{border:0;border-top:1px solid var(--line);margin:2.4rem 0;}

::selection{background:var(--sage);color:var(--on-solid);}

:where(a,button,summary,input,select,textarea):focus-visible{
  outline:2.5px solid var(--sage);
  outline-offset:3px;
  border-radius:4px;
}

/* Schriftzuordnung: alles Funktionale in Jost */
.nav,.btn,.eyebrow,.meta,.chip,.crumb,.band-alt,.foot-cols,.foot-bottom,
label,input,select,textarea,table,.badge,.fact dt,.tag,.pill,
h1,h2,h3,h4,h5,h6,.filterbar,.seasons,.langs,.strip-hint,.lb-count{
  font-family:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}

h1,h2,h3,h4,h5{
  margin:0 0 .6em;
  font-weight:400;
  letter-spacing:-.018em;
  line-height:1.06;
  color:var(--ink);
  text-wrap:balance;
}
h1{font-size:clamp(2.7rem,6.6vw,5rem);letter-spacing:-.032em;}
h2{font-size:clamp(2rem,4vw,3.3rem);letter-spacing:-.028em;}
h3{font-size:clamp(1.34rem,2.2vw,1.8rem);}
h4{font-size:1.1rem;font-weight:400;letter-spacing:-.005em;}
h5{font-size:.78rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);}
em{font-style:italic;}
h1 em,h2 em{color:var(--sage);font-family:"Newsreader",serif;font-weight:400;}

p{margin:0 0 1.1em;text-wrap:pretty;}
p:last-child{margin-bottom:0;}
strong{font-weight:500;}

.lead{
  font-size:clamp(1.12rem,1.5vw,1.34rem);
  line-height:1.66;
  color:var(--ink-2);
  max-width:62ch;
}

.eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:.75rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--sage-deep);margin-bottom:1.2rem;
}
.eyebrow::before{
  content:"";width:1.9rem;height:2px;background:currentColor;opacity:.9;flex:none;
}

.meta{
  font-size:.74rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--stone);font-weight:500;
}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* Sprungmarke für Tastatur-Bedienung. Sie ist vollständig unsichtbar und
   taucht nur auf, wenn jemand mit der Tabulatortaste navigiert – auch
   nicht in Screenshots ganzer Seiten. */
.skip{
  position:fixed;left:1rem;top:1rem;z-index:200;
  background:var(--sage-deep);color:var(--on-solid);
  padding:.7rem 1.2rem;border-radius:var(--r-sm);
  opacity:0;pointer-events:none;
  transform:translateY(-200%);
  transition:transform .2s var(--ease), opacity .15s;
}
.skip:focus,.skip:focus-visible{opacity:1;pointer-events:auto;transform:translateY(0);}

/* Raster und Abstände */
.wrap{
  /* Der Inhalt nutzt die volle Fensterbreite, nur ein schmaler
     Rand bleibt links und rechts stehen. */
  width:100%;max-width:var(--wrap);margin-inline:auto;
  padding-inline:var(--step);
}
section{padding-block:clamp(3.6rem,7.5vw,7rem);}
section.tight{padding-block:clamp(2.4rem,4.5vw,4rem);}
/* Abgesetzte Bänder: klar sichtbarer Wechsel plus Haarlinie, damit die
   Seite in Abschnitte zerfällt statt als ein langer Teppich zu wirken. */
section.paper{
  background:var(--bg-2);
  border-block:1px solid var(--line);
}
section.paper + section.paper{padding-top:0;border-top:0;}

/* ---------------------------------------------------------------------
   Karten-Reihen
   Alle Kästchen stehen zu dritt nebeneinander. Bleibt in der letzten
   Reihe eines oder bleiben zwei übrig, rutschen sie in die Mitte –
   so hängt nie etwas einsam am Rand.
   --------------------------------------------------------------------- */
:root{ --gap:clamp(1rem,2.2vw,1.6rem); }

.grid,
.places,
.sights,
.units,
.units-grid,
.jgrid,
.contact-cards,
.picks,
.region-strip{
  display:flex;
  flex-wrap:wrap;
  gap:var(--gap);
  justify-content:flex-start;
  align-items:stretch;
}
.grid > *,
.places > *,
.sights > *,
.units > *,
.units-grid > *,
.jgrid > *,
.contact-cards > *,
.picks > *,
.region-strip > *{
  flex:0 1 calc((100% - 2 * var(--gap)) / 3);
  min-width:0;
}

/* Zwei nebeneinander, wenn es ausdrücklich so gewünscht ist */
.grid.g2 > *{ flex:0 1 calc((100% - var(--gap)) / 2); }

@media (max-width:1000px){
  .grid > *,.places > *,.sights > *,.units > *,.units-grid > *,
  .jgrid > *,.contact-cards > *,.picks > *,.region-strip > *{
    flex:0 1 calc((100% - var(--gap)) / 2);
  }
}
@media (max-width:620px){
  .grid > *,.places > *,.sights > *,.units > *,.units-grid > *,
  .jgrid > *,.contact-cards > *,.picks > *,.region-strip > *,
  .grid.g2 > *{
    flex:1 1 100%;
  }
}

.split{
  display:grid;gap:clamp(1.6rem,4vw,3.4rem);
  grid-template-columns:1fr;align-items:center;
}
@media (min-width:900px){ .split{grid-template-columns:1fr 1fr;} }
.split figure{margin:0;}
.split figure img,.split figure picture{
  width:100%;border-radius:var(--r-lg);box-shadow:var(--shadow-1);
  border:1px solid var(--line);background:var(--tint);
}

/* ---------------------------------------------------------------------
   4. Schaltflächen
   --------------------------------------------------------------------- */
.btn{
  --btn-bg:transparent;--btn-fg:var(--ink);--btn-line:var(--line);
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.85rem 1.6rem;
  font-size:.9rem;font-weight:500;letter-spacing:.04em;
  background:var(--btn-bg);color:var(--btn-fg);
  border:1.5px solid var(--btn-line);border-radius:100px;
  cursor:pointer;white-space:nowrap;max-width:100%;text-align:center;
  transition:transform .28s var(--ease-out), background-color .2s, border-color .2s, color .2s, box-shadow .28s var(--ease-out);
}
.btn{--btn-line:var(--sage-soft);}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-1);}
.btn:active{transform:translateY(0);}
.btn.solid{--btn-bg:var(--sage-deep);--btn-fg:var(--on-solid);--btn-line:var(--sage-deep);}
.btn.solid:hover{--btn-bg:#243528;--btn-line:#243528;}
.btn.plain{--btn-line:transparent;padding-inline:0;color:var(--sage-deep);font-weight:500;}
.btn.plain::after{
  content:"";width:1.05rem;height:1px;background:currentColor;
  transition:width .28s var(--ease-out);
}
.btn.plain:hover{transform:none;box-shadow:none;}
.btn.plain:hover::after{width:1.9rem;}
.btn.lg{padding:.92rem 1.8rem;font-size:.92rem;}

/* In Kästchen brechen lange Beschriftungen um, statt über den Rand zu ragen */
.card .btn,.sight .btn,.jcard .btn,.ucard .btn,.place .btn,.pick .btn,.cta-band .btn{
  white-space:normal;
}
.card .btn.plain,.jcard .btn.plain{align-self:flex-start;}

/* ---------------------------------------------------------------------
   5. Kopfzeile und Menü
   --------------------------------------------------------------------- */
/* Kopfzeilenhöhe ist fest verdrahtet: nichts springt, das Menü darunter
   sitzt immer exakt auf Kante. */
.site-header{
  --hh:6.1rem;
  position:sticky;top:0;z-index:90;
  background:var(--bg);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s var(--ease);
}
/* Beim Scrollen ändert sich nur ein weicher Schatten – keine Farbe,
   keine Höhe, kein Rahmen. Damit steht die Kopfzeile ruhig. */
.site-header.solid{box-shadow:0 10px 24px -22px rgba(27,33,28,.55);}
.hbar{
  display:flex;align-items:center;gap:1rem;
  height:var(--hh);padding-block:0;
}
.brand{flex:none;margin-right:auto;display:flex;align-items:center;}
.brand img{width:108px;height:81px;}

.nav{display:flex;align-items:center;gap:.15rem;}
.nav > a,.has-sub > a{
  position:relative;
  padding:.55rem .78rem;border-radius:100px;
  font-size:.9rem;font-weight:500;letter-spacing:.015em;
  color:var(--ink-2);
  transition:color .2s, background-color .2s;
}
.nav > a:hover,.has-sub > a:hover{color:var(--ink);background:var(--tint);}
.nav > a.on,.has-sub > a.on{color:var(--sage-deep);font-weight:500;background:var(--tint);}

.has-sub{position:relative;}
.has-sub > a{display:inline-flex;align-items:center;gap:.35rem;}
.caret{
  width:.42rem;height:.42rem;flex:none;
  border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;
  transform:rotate(45deg) translateY(-1px);opacity:.6;
  transition:transform .28s var(--ease);
}
.has-sub:hover .caret,.has-sub:focus-within .caret{transform:rotate(225deg) translateY(-2px);}

.subnav{
  position:absolute;left:50%;top:calc(100% + .5rem);
  transform:translateX(-50%) translateY(-4px);
  min-width:16.5rem;padding:.45rem;
  background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow-2);
  display:flex;flex-direction:column;gap:.1rem;
  opacity:0;visibility:hidden;pointer-events:none;
  /* Verzögerung beim Schließen: das Untermenü klappt nicht sofort weg,
     wenn die Maus kurz die Lücke überquert. */
  transition:opacity .18s var(--ease) .14s, transform .24s var(--ease-out) .14s, visibility .18s .14s;
}
.has-sub:hover .subnav,.has-sub:focus-within .subnav{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
  transition-delay:0s;
}
.subnav a{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:.6rem .8rem;border-radius:var(--r-sm);
  font-family:"Jost",sans-serif;font-size:.88rem;color:var(--ink-2);
  transition:background-color .18s,color .18s;
}
.subnav a:hover{background:var(--tint);color:var(--ink);}
.subnav .alt{font-size:.73rem;letter-spacing:.1em;color:var(--sage);flex:none;}

.langs{
  display:flex;align-items:center;gap:.1rem;margin-left:.5rem;
  padding-left:.7rem;border-left:1px solid var(--line);
}
.langs a{
  padding:.3rem .5rem;border-radius:var(--r-sm);
  font-size:.74rem;font-weight:500;letter-spacing:.1em;color:var(--stone);
  transition:color .18s,background-color .18s;
}
.langs a:hover{color:var(--ink);}
.langs a.on{color:var(--sage);background:var(--tint);}

.btn.head{display:none;}
.navcta{display:none;}

.menu-toggle{
  display:none;flex:none;
  width:2.6rem;height:2.6rem;
  background:transparent;border:1px solid var(--line);border-radius:100px;
  cursor:pointer;position:relative;
}
.menu-toggle span,
.menu-toggle span::before,
.menu-toggle span::after{
  position:absolute;left:50%;width:1.05rem;height:1.4px;
  background:var(--ink);border-radius:2px;
  transition:transform .3s var(--ease), opacity .2s;
}
.menu-toggle span{top:50%;transform:translate(-50%,-50%);}
.menu-toggle span::before{content:"";left:0;top:-6px;transform:none;}
.menu-toggle span::after{content:"";left:0;top:6px;transform:none;}
.menu-toggle[aria-expanded="true"] span{background:transparent;}
.menu-toggle[aria-expanded="true"] span::before{top:0;transform:rotate(45deg);}
.menu-toggle[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg);}

@media (max-width:1100px){
  .site-header{--hh:5rem;}
  .menu-toggle{display:block;}
  .brand img{width:84px;height:63px;}
  /* Vollflächige Menütafel: sitzt exakt unter der Kopfzeile, reicht bis
     zum unteren Rand und blendet nur ein – nichts schiebt sich mehr
     über das Logo. */
  .nav{
    position:fixed;inset:calc(var(--hh) + 1px) 0 0 0;
    flex-direction:column;align-items:stretch;gap:0;
    padding:.6rem var(--step) calc(7rem + env(safe-area-inset-bottom));
    background:var(--bg);
    overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .2s var(--ease), visibility .2s;
  }
  .nav.open{opacity:1;visibility:visible;pointer-events:auto;}
  .nav > a,.has-sub > a{
    padding:1rem .2rem;border-radius:0;font-size:1.06rem;font-weight:500;
    border-bottom:1px solid var(--line-soft);
    color:var(--ink);
  }
  .nav > a:hover,.has-sub > a:hover{background:transparent;}
  .nav > a.on,.has-sub > a.on{background:transparent;color:var(--sage-deep);}
  .has-sub > a{justify-content:space-between;width:100%;}
  .has-sub > a .caret{transform:rotate(45deg);opacity:.8;}
  .has-sub.sub-open > a .caret{transform:rotate(225deg) translateY(-2px);}
  .subnav{
    position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;
    box-shadow:none;border:0;border-bottom:1px solid var(--line-soft);
    border-radius:0;background:var(--bg-2);
    display:none;padding:.25rem .2rem .5rem;min-width:0;transition:none;
  }
  .subnav a{padding:.75rem .6rem;font-size:.95rem;}
  .has-sub.sub-open .subnav{display:flex;}
  /* Die Desktop-Regeln für Hover/Fokus dürfen hier nicht greifen – sonst
     rutscht das Untermenü (translateX(-50%)) halb aus dem Bild. */
  .has-sub:hover .subnav,.has-sub:focus-within .subnav{display:none;}
  .has-sub.sub-open:hover .subnav,
  .has-sub.sub-open:focus-within .subnav{display:flex;}
  .has-sub:hover .subnav,
  .has-sub:focus-within .subnav,
  .has-sub.sub-open .subnav{transform:none;left:auto;top:auto;}
  .navcta{display:inline-flex;margin-top:1.4rem;justify-content:center;padding-block:.95rem;}
  .langs{margin:1.1rem 0 0;padding:0;border:0;justify-content:center;gap:.5rem;}
  .langs a{border:1px solid var(--line);padding:.5rem 1rem;}
}
/* Während das Menü offen ist, scrollt die Seite dahinter nicht mit */
body.nav-open{overflow:hidden;}

@media (min-width:1101px){
  .btn.head{display:inline-flex;margin-left:.4rem;}
  /* Unsichtbare Brücke zwischen Menüpunkt und Untermenü: die Maus darf
     die Lücke überqueren, ohne dass das Untermenü zuklappt. */
  .has-sub::after{
    content:"";position:absolute;left:0;right:0;top:100%;height:.75rem;
  }
}
@media (max-width:420px){
  .btn.head{display:none;}
}

/* ---------------------------------------------------------------------
   6. Startseiten-Kopf
   --------------------------------------------------------------------- */
.hero{padding-block:clamp(2.4rem,6vw,5rem) clamp(3rem,7vw,6rem);overflow:clip;}
.hero-grid{
  display:grid;gap:clamp(2rem,4.5vw,4rem);
  grid-template-columns:1fr;align-items:center;
}
@media (min-width:980px){
  .hero-grid{grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);}
}
.hero h1{margin-bottom:.5em;}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem;}
.hero-fig{position:relative;margin:0;}
.hero-fig img,.hero-fig picture{
  width:100%;border-radius:var(--r-lg);
  box-shadow:var(--shadow-2);
  aspect-ratio:4/3;object-fit:cover;
}
.hero-tag{
  position:absolute;left:1rem;bottom:1rem;
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.55rem 1rem;border-radius:100px;
  background:color-mix(in oklab, var(--paper) 88%, transparent);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid var(--line-soft);
  font-family:"Jost",sans-serif;font-size:.74rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-2);
}

/* Höhenband der Startseite */
.band-rows{display:flex;flex-direction:column;gap:clamp(1.4rem,3vw,2.6rem);margin-top:2.6rem;}
.band-row{
  display:grid;gap:clamp(1rem,2.5vw,2rem);
  grid-template-columns:auto auto 1fr;align-items:start;
}
.band-alt{
  display:flex;flex-direction:column;align-items:flex-end;
  font-size:clamp(1.1rem,2vw,1.5rem);font-weight:300;
  color:var(--sage);letter-spacing:-.02em;line-height:1.1;
  min-width:5.5rem;padding-top:.15rem;
}
.band-alt small{
  font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--stone);margin-top:.35rem;font-weight:500;
}
.band-axis{
  position:relative;width:1px;align-self:stretch;
  background:linear-gradient(to bottom,var(--sage) 0,var(--line) 60%,transparent 100%);
}
.band-axis::before{
  content:"";position:absolute;left:50%;top:.45rem;
  width:9px;height:9px;margin-left:-4.5px;border-radius:50%;
  background:var(--bg-2);border:2px solid var(--sage);
}
.band-item{
  display:grid;gap:clamp(1rem,2.5vw,2.2rem);
  grid-template-columns:1fr;align-items:center;
}
@media (min-width:820px){ .band-item{grid-template-columns:1fr minmax(0,1.05fr);} }
.band-item h3{margin:.25rem 0 .5rem;}
.band-item h3 a{transition:color .2s;}
.band-item h3 a:hover{color:var(--sage);}
.band-item p{color:var(--ink-2);margin-bottom:1rem;}
.band-fig{
  display:block;overflow:hidden;border-radius:var(--r-lg);
  border:1px solid var(--line);background:var(--tint);
  box-shadow:var(--shadow-1);
}
.band-fig img,.band-fig picture{
  width:100%;aspect-ratio:3/2;object-fit:cover;
  transition:transform .8s var(--ease-out);
}
.band-fig:hover img{transform:scale(1.045);}
.band-img{border-radius:var(--r-lg);}
@media (max-width:640px){
  .band-row{grid-template-columns:auto 1fr;}
  .band-axis{display:none;}
  .band-alt{flex-direction:row;align-items:baseline;gap:.4rem;min-width:0;}
  .band-alt small{margin-top:0;}
  .band-row{grid-template-columns:1fr;}
}

/* ---------------------------------------------------------------------
   7. Seitenkopf mit Bild (Unterseiten)
   --------------------------------------------------------------------- */
.phero{
  position:relative;isolation:isolate;
  min-height:clamp(24rem,52vh,34rem);
  display:flex;align-items:flex-end;
  padding-block:clamp(3rem,7vw,5rem) clamp(2.4rem,5vw,4rem);
  overflow:clip;
}
.phero.compact{min-height:clamp(17rem,34vh,23rem);}
.phero-img{
  position:absolute;inset:0;z-index:-2;
  width:100%;height:100%;object-fit:cover;
}
.phero picture{position:absolute;inset:0;z-index:-2;}
.phero-scrim{
  position:absolute;inset:0;z-index:-1;
  /* Heller Schleier: links dicht genug für dunkle Schrift,
     rechts gibt er das Foto frei. */
  background:
    linear-gradient(to right, rgba(250,247,240,.96) 0%, rgba(250,247,240,.86) 40%, rgba(250,247,240,.38) 78%, rgba(250,247,240,.22) 100%),
    linear-gradient(to bottom, rgba(250,247,240,.55) 0%, rgba(250,247,240,.25) 45%, rgba(250,247,240,.60) 100%);
}
.phero-in{width:100%;color:var(--ink);}
.phero-in h1,.phero-in h2{color:var(--ink);}
.phero-in h1 em{color:var(--sage);}
.phero-in .lead{color:var(--ink-2);}
.phero-in .eyebrow{color:var(--sage);}
.phero-in .btn{--btn-fg:var(--ink);--btn-line:var(--sage-soft);--btn-bg:color-mix(in oklab, var(--paper) 70%, transparent);}
.phero-in .btn:hover{--btn-line:var(--sage);}
.phero-in .btn.solid{--btn-bg:var(--sage);--btn-fg:var(--on-solid);--btn-line:var(--sage);}
.phero-in .btn.solid:hover{--btn-bg:var(--sage-deep);--btn-line:var(--sage-deep);}
.phero-in .hero-cta{margin-top:1.8rem;}

.crumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;
  font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--stone);margin-bottom:1.6rem;
}
.crumb a{transition:color .2s;}
.crumb a:hover{color:var(--sage);}
.crumb span{opacity:.5;}

.chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0;}
.chip{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.45rem .9rem;border-radius:100px;
  font-size:.78rem;letter-spacing:.01em;
  background:color-mix(in oklab, var(--paper) 82%, transparent);
  border:1px solid var(--line);
  color:var(--ink-2);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.chip svg{width:.95rem;height:.95rem;flex:none;opacity:.85;}
/* Chips außerhalb des Bildkopfes */
section .chip{
  background:var(--tint);border-color:var(--line-soft);color:var(--ink-2);
}

/* ---------------------------------------------------------------------
   8. Karten und Listen
   --------------------------------------------------------------------- */
.card{
  position:relative;
  display:flex;flex-direction:column;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:clamp(1.35rem,2.4vw,1.75rem);
  box-shadow:var(--shadow-1);
  transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out), border-color .3s;
}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:var(--sage-soft);}
.card h4{
  margin-bottom:.55rem;font-size:1.06rem;font-weight:400;
  letter-spacing:-.008em;line-height:1.3;color:var(--ink);
}
.card p{color:var(--ink-2);font-size:.97rem;line-height:1.62;overflow-wrap:break-word;}
.card p:last-child{margin-bottom:0;}

.ico{
  display:grid;place-items:center;
  width:2.9rem;height:2.9rem;margin-bottom:1.1rem;
  border-radius:var(--r-sm);
  background:var(--tint);color:var(--sage);
}
.ico svg{width:1.4rem;height:1.4rem;}

.ticks{list-style:none;margin:1.1rem 0 0;padding:0;display:grid;gap:.6rem;}
.ticks li{
  position:relative;padding-left:1.7rem;
  font-size:.98rem;color:var(--ink-2);line-height:1.6;
}
.ticks li::before{
  content:"";position:absolute;left:.15rem;top:.62em;
  width:.55rem;height:.3rem;
  border-left:1.6px solid var(--sage);border-bottom:1.6px solid var(--sage);
  transform:rotate(-45deg);
}

.facts{
  display:grid;gap:0;margin:0;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border:1px solid var(--line-soft);border-radius:var(--r);
  background:var(--paper);overflow:hidden;
}
.fact{
  padding:1.1rem 1.3rem;
  border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
}
.fact dt{
  font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--stone);font-weight:500;margin-bottom:.35rem;
}
.fact dd{margin:0;font-size:1rem;color:var(--ink);line-height:1.5;}

.note{
  display:flex;gap:.85rem;align-items:flex-start;
  padding:1rem 1.2rem;border-radius:var(--r-sm);
  background:var(--tint);border:1px solid var(--line-soft);
  font-size:.96rem;color:var(--ink-2);
}
.note svg{width:1.15rem;height:1.15rem;flex:none;color:var(--sage);margin-top:.25rem;}

/* Kontaktkarten */

.ccard{
  display:flex;flex-direction:column;gap:.5rem;
  padding:1.5rem;border-radius:var(--r);
  background:var(--paper);border:1px solid var(--line);
  box-shadow:var(--shadow-1);
  transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out);
}
.ccard:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);}
.ccard-ico{
  display:grid;place-items:center;width:2.5rem;height:2.5rem;
  border-radius:var(--r-sm);background:var(--tint);color:var(--sage);margin-bottom:.3rem;
}
.ccard-ico svg{width:1.2rem;height:1.2rem;}
.ccard-k{font-family:"Jost",sans-serif;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);}
.ccard-v{font-family:"Jost",sans-serif;font-size:1.05rem;color:var(--ink);word-break:break-word;}
.ccard-v.long{font-size:.92rem;}
.ccard-n{font-size:.9rem;color:var(--stone);}

/* Auswahlkacheln */

.pick{
  display:flex;flex-direction:column;justify-content:space-between;gap:1.4rem;
  padding:1.5rem;border-radius:var(--r);
  background:var(--paper);border:1px solid var(--line);
  box-shadow:var(--shadow-1);
  transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .3s;
}
.pick:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:var(--sage-soft);}
.pick p{font-size:1.02rem;color:var(--ink-2);}
.pick-name{
  font-family:"Jost",sans-serif;font-size:1.05rem;color:var(--sage);
  display:flex;align-items:baseline;gap:.6rem;
}
.pick-alt{font-size:.72rem;letter-spacing:.13em;color:var(--stone);}

/* Orte-Liste */

.place{
  display:flex;flex-direction:column;
  padding:1.15rem 1.3rem;border-radius:var(--r);
  background:var(--paper);border:1px solid var(--line);
  transition:border-color .3s,transform .35s var(--ease-out);
}
.place:hover{border-color:var(--sage-soft);transform:translateY(-2px);}
.place b{display:block;font-family:"Jost",sans-serif;font-weight:500;font-size:.98rem;margin-bottom:.25rem;}
.place span{font-size:.93rem;color:var(--stone);line-height:1.55;}

/* Sehenswürdigkeiten */

.sight{
  display:flex;flex-direction:column;
  padding:1.35rem;border-radius:var(--r);
  background:var(--paper);border:1px solid var(--line);
  transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .3s;
}
.sight:hover{transform:translateY(-3px);box-shadow:var(--shadow-1);border-color:var(--sage-soft);}
.sight .band{
  display:inline-block;margin-bottom:.7rem;
  padding:.25rem .65rem;border-radius:100px;
  font-family:"Jost",sans-serif;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  background:var(--tint);color:var(--sage);font-weight:500;
}
.sight h4{margin-bottom:.4rem;}
.sight p{font-size:.95rem;color:var(--ink-2);}

.filterbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;}
.filterbar button{
  padding:.5rem 1rem;border-radius:100px;
  border:1px solid var(--line);background:transparent;
  font-size:.8rem;letter-spacing:.03em;color:var(--ink-2);cursor:pointer;
  transition:background-color .2s,border-color .2s,color .2s;
}
.filterbar button:hover{background:var(--tint);}
.filterbar button[aria-pressed="true"]{
  background:var(--sage);border-color:var(--sage);color:var(--on-solid);
}

/* Sommer / Winter */
/* Die Jahreszeiten-Umschaltung darf auf schmalen Displays umbrechen,
   statt seitlich aus dem Bild zu laufen. */
.seasons{
  display:flex;flex-wrap:wrap;max-width:100%;
  gap:.25rem;padding:.3rem;border-radius:var(--r-lg);
  background:var(--tint);border:1px solid var(--line-soft);
}
.seasons button{
  padding:.5rem 1.2rem;border-radius:100px;border:0;background:transparent;
  font-size:.82rem;letter-spacing:.04em;color:var(--stone);cursor:pointer;
  transition:background-color .25s,color .25s;
}
.seasons button[aria-selected="true"]{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-1);}
.season-panel{margin-top:1.8rem;}
.season-panel[hidden]{display:none;}

/* Karte */
.mapbox{
  position:relative;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;
  background:var(--tint);border:1px solid var(--line-soft);
  display:grid;place-items:center;
}
.mapbox iframe{width:100%;height:100%;border:0;display:block;}
/* Karten-Platzhalter: Nadel, Ort, Datenschutzhinweis und Schaltfläche
   stehen untereinander. Vorher lief alles in einer Zeile nebeneinander,
   die Nadel wurde riesig und der Text auf dem Handy abgeschnitten. */
.mapstart{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;
  width:min(30rem, calc(100% - 1.6rem));
  padding:1.5rem 1.2rem;
  background:transparent;border:0;cursor:pointer;
  font-family:"Jost",sans-serif;text-align:center;white-space:normal;
  color:var(--ink);
}
.mapstart svg{width:1.9rem;height:1.9rem;flex:none;color:var(--sage-deep);}
.mapstart b{font-size:1rem;font-weight:500;line-height:1.4;color:var(--ink);}
.mapstart small{font-size:.8rem;line-height:1.5;color:var(--stone);max-width:36ch;}
.mapstart .btn{
  margin-top:.25rem;
  --btn-bg:var(--sage-deep);--btn-fg:var(--on-solid);--btn-line:var(--sage-deep);
}
.mapstart:hover .btn{--btn-bg:#243528;--btn-line:#243528;transform:translateY(-2px);}
@media (max-width:700px){
  /* Auf schmalen Displays darf die Karte höher werden, statt den Text
     im festen 16:9-Rahmen abzuschneiden. */
  .mapbox{aspect-ratio:auto;min-height:15rem;}
}
.map-meta{margin-top:.8rem;font-size:.85rem;color:var(--stone);}

/* ---------------------------------------------------------------------
   9. Unterkünfte und Galerien
   --------------------------------------------------------------------- */


.unit-gallery{margin-top:1.4rem;border-top:1px solid var(--line-soft);padding-top:1rem;}
/* Die Bilderreihe reicht bis an die Kanten der Karte. Dadurch ist sie
   genau so breit wie alles andere auf der Seite – vorher war sie um die
   Innenabstände der Karte schmaler. */
.unit-gallery > .gallery{
  margin-inline:calc(-1 * clamp(1.35rem,2.4vw,1.75rem));
  width:auto;
}
.unit-gallery > h5,
.unit-gallery summary{
  display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  cursor:pointer;list-style:none;
  font-family:"Jost",sans-serif;font-size:.76rem;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--stone);
  margin:0 0 .9rem;
}
.unit-gallery summary::-webkit-details-marker{display:none;}
.strip-hint{
  display:inline-grid;place-items:center;min-width:1.5rem;height:1.5rem;padding:0 .4rem;
  border-radius:100px;background:var(--tint);color:var(--sage);
  font-size:.7rem;letter-spacing:0;
}

.gallery{
  display:grid;gap:.6rem;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));
}
.gallery a{
  position:relative;display:block;overflow:hidden;
  border-radius:var(--r-sm);background:var(--tint);
  aspect-ratio:3/2;
}
.gallery img,.gallery picture{width:100%;height:100%;object-fit:cover;}
.gallery img{transition:transform .7s var(--ease-out);}
.gallery a:hover img{transform:scale(1.06);}
.gal-zoom{
  position:absolute;right:.5rem;bottom:.5rem;
  display:grid;place-items:center;width:2rem;height:2rem;border-radius:100px;
  background:color-mix(in oklab, #0d1512 55%, transparent);
  color:#fff;opacity:0;transform:translateY(6px);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  transition:opacity .25s var(--ease),transform .3s var(--ease-out);
}
.gallery a:hover .gal-zoom,.gallery a:focus-visible .gal-zoom{opacity:1;transform:translateY(0);}
.gal-zoom svg{width:1rem;height:1rem;}
.unit-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,9.5rem),1fr));}

.gallery-more{
  display:flex;align-items:center;gap:1rem;margin-top:1.2rem;
  font-family:"Jost",sans-serif;font-size:.74rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--stone);
}
.gallery-more span{flex:1;height:1px;background:var(--line);}

/* Bildansicht (Lightbox) */
.lb{
  position:fixed;inset:0;z-index:160;
  display:grid;place-items:center;
  padding:clamp(1rem,4vw,3rem);
  background:color-mix(in oklab, #080d0b 92%, transparent);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  opacity:0;transition:opacity .28s var(--ease);
}
.lb[hidden]{display:none;}
.lb.on{opacity:1;}
.lb-fig{margin:0;max-width:min(100%,1400px);max-height:100%;display:flex;flex-direction:column;gap:.9rem;}
.lb-fig img{
  max-width:100%;max-height:78vh;width:auto;height:auto;margin-inline:auto;
  border-radius:var(--r-sm);box-shadow:0 40px 90px -40px rgba(0,0,0,.9);
  transform:scale(.97);transition:transform .35s var(--ease-out);
}
.lb.on .lb-fig img{transform:scale(1);}
.lb-cap{
  text-align:center;color:rgba(255,255,255,.72);
  font-size:.9rem;line-height:1.5;max-width:70ch;margin-inline:auto;
}
.lb button{
  position:absolute;display:grid;place-items:center;
  width:3rem;height:3rem;border-radius:100px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);
  color:#fff;cursor:pointer;
  transition:background-color .22s,transform .28s var(--ease-out);
}
.lb button:hover{background:rgba(255,255,255,.2);transform:scale(1.06);}
.lb button svg{width:1.3rem;height:1.3rem;}
.lb-close{top:clamp(.8rem,3vw,1.8rem);right:clamp(.8rem,3vw,1.8rem);}
.lb-prev{left:clamp(.5rem,2vw,1.8rem);top:50%;margin-top:-1.5rem;}
.lb-next{right:clamp(.5rem,2vw,1.8rem);top:50%;margin-top:-1.5rem;}
.lb-count{
  position:absolute;left:50%;bottom:clamp(.8rem,3vw,1.6rem);transform:translateX(-50%);
  font-size:.76rem;letter-spacing:.14em;color:rgba(255,255,255,.65);
}
@media (max-width:640px){
  .lb-prev{left:.4rem;}
  .lb-next{right:.4rem;}
  .lb button{width:2.6rem;height:2.6rem;}
}

/* ---------------------------------------------------------------------
   10. Häufige Fragen
   --------------------------------------------------------------------- */
.faq-search{
  display:flex;align-items:center;gap:.7rem;
  padding:.9rem 1.4rem;border-radius:100px;
  background:var(--paper);border:1px solid var(--line);
  width:100%;margin-bottom:1.4rem;
}
.faq-search svg{width:1.1rem;height:1.1rem;color:var(--stone);flex:none;}
.faq-search input{
  flex:1;border:0;background:transparent;outline:none;
  font-family:"Jost",sans-serif;font-size:.95rem;color:var(--ink);
}
.faq-jump{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.6rem;margin-bottom:2.6rem;
}
.faq-jump a{
  display:flex;align-items:center;justify-content:center;
  text-align:center;text-wrap:balance;
  min-height:3.2rem;padding:.6rem .8rem;
  border-radius:var(--r-sm);background:var(--paper);
  border:1px solid var(--line);font-family:"Jost",sans-serif;
  font-size:.8rem;line-height:1.3;color:var(--ink-2);
  transition:background-color .2s,border-color .2s,color .2s;
}
.faq-jump a:hover{background:var(--tint);border-color:var(--sage-soft);color:var(--ink);}
@media (max-width:1080px){.faq-jump{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media (max-width:760px){.faq-jump{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:480px){.faq-jump{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;}}

.faq{display:grid;gap:.6rem;width:100%;}
.faq-group{width:100%;}
.faq details,.faq-group details{
  background:var(--paper);border:1px solid var(--line-soft);
  border-radius:var(--r);overflow:hidden;
  transition:border-color .25s,box-shadow .3s;
}
.faq details[open],.faq-group details[open]{border-color:var(--sage-soft);box-shadow:var(--shadow-1);}
.faq summary,.faq-group summary{
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;
  padding:1.15rem 1.6rem;cursor:pointer;list-style:none;
  font-family:"Jost",sans-serif;font-size:1rem;font-weight:400;color:var(--ink);
}
.faq summary::-webkit-details-marker,
.faq-group summary::-webkit-details-marker{display:none;}
.plus{
  position:relative;flex:none;width:1.1rem;height:1.1rem;
  color:var(--sage);font-size:0;
}
.plus::before,.plus::after{
  content:"";position:absolute;left:50%;top:50%;background:currentColor;border-radius:2px;
  transition:transform .3s var(--ease);
}
.plus::before{width:1.1rem;height:1.4px;transform:translate(-50%,-50%);}
.plus::after{width:1.4px;height:1.1rem;transform:translate(-50%,-50%);}
details[open] .plus::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0;}
.faq .a,.faq-group .a{
  padding:1.1rem 1.6rem 1.35rem;color:var(--ink-2);
  border-top:1px solid var(--line-soft);
  overflow-wrap:anywhere;
}
.a-more{display:block;margin-top:.8rem;font-size:.94rem;color:var(--stone);}
.a-more a{color:var(--sage);text-decoration:underline;text-underline-offset:3px;}
.faq-group{margin-bottom:2.6rem;}
.faq-group > h3{margin-bottom:.9rem;}
.faq-group[hidden]{display:none;}
/* Fragen nebeneinander: Leserichtung links -> rechts, dann nächste Zeile */
.faq-group .faq{
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-flow:row;
  align-items:start;
  gap:.7rem;
}
.faq-group .faq > details{min-width:0;}
.faq-group .faq > details[hidden]{display:none;}
/* geöffnete Frage: Antwort über die volle Breite */
.faq-group .faq > details[open]{grid-column:1 / -1;}
.faq-group .faq > details[open] > summary{border-bottom:1px solid var(--line-soft);}
.faq-group .faq > details[open] .a{border-top:0;max-width:88ch;}
@media (max-width:860px){
  .faq-group .faq{grid-template-columns:1fr;}
}
.res-empty{
  padding:1.4rem 1.5rem;border-radius:var(--r);
  background:var(--tint);border:1px dashed var(--line);
  color:var(--ink-2);font-size:.98rem;
}

/* ---------------------------------------------------------------------
   11. Unterkunftsfinder
   --------------------------------------------------------------------- */
.finder-layout{display:grid;gap:clamp(1.4rem,3vw,2.6rem);grid-template-columns:1fr;align-items:start;}
@media (min-width:920px){ .finder-layout{grid-template-columns:19rem 1fr;} }
.finder-col{position:sticky;top:5.6rem;}
@media (max-width:919px){ .finder-col{position:static;} }
.finder{
  padding:1.4rem;border-radius:var(--r);
  background:var(--paper);border:1px solid var(--line-soft);box-shadow:var(--shadow-1);
}
.finder-head{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  margin-bottom:1.1rem;
}
.finder-head h2,.finder-head h3{margin:0;font-size:1.1rem;font-weight:400;letter-spacing:-.01em;}
.finder-reset{
  background:transparent;border:0;cursor:pointer;
  font-family:"Jost",sans-serif;font-size:.78rem;letter-spacing:.06em;
  color:var(--stone);text-decoration:underline;text-underline-offset:3px;
}
.finder-reset:hover{color:var(--sage);}
.finder fieldset{border:0;padding:0;margin:0 0 1.3rem;}
.finder legend{
  font-family:"Jost",sans-serif;font-size:.68rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--stone);margin-bottom:.6rem;padding:0;
}
.opts{display:grid;gap:.35rem;}
.opts label{
  display:flex;align-items:center;gap:.65rem;
  padding:.5rem .7rem;border-radius:var(--r-sm);cursor:pointer;
  font-family:"Jost",sans-serif;font-size:.9rem;color:var(--ink-2);
  transition:background-color .2s;
}
.opts label:hover{background:var(--tint);}
.opts input{
  appearance:none;-webkit-appearance:none;flex:none;
  width:1.05rem;height:1.05rem;border-radius:5px;
  border:1.5px solid var(--line);background:var(--paper);cursor:pointer;
  transition:background-color .2s,border-color .2s;
  position:relative;
}
.opts input:checked{background:var(--sage);border-color:var(--sage);}
.opts input:checked::after{
  content:"";position:absolute;left:50%;top:46%;
  width:.5rem;height:.26rem;margin:-.13rem 0 0 -.25rem;
  border-left:1.6px solid var(--on-solid);border-bottom:1.6px solid var(--on-solid);
  transform:rotate(-45deg);
}
.finder-count{
  font-family:"Jost",sans-serif;font-size:.74rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--stone);
}
.finder-count.on{color:var(--sage);}
.finder-hint{font-size:.9rem;color:var(--stone);margin-top:1rem;}

.results{display:grid;gap:1rem;}
.res{
  display:grid;gap:1.2rem;grid-template-columns:1fr;
  padding:1rem;border-radius:var(--r);
  background:var(--paper);border:1px solid var(--line-soft);box-shadow:var(--shadow-1);
  transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out);
}
@media (min-width:640px){ .res{grid-template-columns:14rem 1fr;} }
.res:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);}
.res-img{display:block;overflow:hidden;border-radius:var(--r-sm);aspect-ratio:3/2;background:var(--tint);}
.res-img img{width:100%;height:100%;object-fit:cover;}
.res-body{display:flex;flex-direction:column;gap:.45rem;padding:.3rem .4rem .4rem 0;}
.res-h{font-family:"Jost",sans-serif;font-size:1.2rem;font-weight:300;color:var(--ink);}
.res-t{color:var(--ink-2);font-size:.98rem;line-height:1.6;}
.why{
  font-family:"Jost",sans-serif;font-size:.78rem;letter-spacing:.03em;
  color:var(--sage);margin-top:.2rem;
}
.res-more{
  display:inline-flex;align-items:center;gap:.4rem;margin-top:.4rem;
  font-family:"Jost",sans-serif;font-size:.82rem;font-weight:500;color:var(--sage);
}
.res-more::after{content:"";width:1rem;height:1px;background:currentColor;transition:width .3s var(--ease-out);}
.res:hover .res-more::after{width:1.8rem;}

/* ---------------------------------------------------------------------
   12. Aufrufband und Downloads
   --------------------------------------------------------------------- */
.cta-band{
  position:relative;overflow:hidden;
  padding:clamp(1.8rem,4vw,3.2rem);
  border-radius:var(--r-lg);
  background:linear-gradient(135deg, var(--sage-deep) 0%, var(--sage) 62%, var(--lake) 130%);
  color:var(--on-dark);
  box-shadow:var(--shadow-2);
}
.cta-band::after{
  content:"";position:absolute;right:-12%;top:-45%;
  width:26rem;height:26rem;border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.14) 0%, transparent 65%);
  pointer-events:none;
}
.cta-band h2,.cta-band h3{color:#fff;}
.cta-band .eyebrow{color:rgba(255,255,255,.8);}
.cta-band p{color:rgba(255,255,255,.88);}
.cta-band .btn{--btn-fg:#fff;--btn-line:rgba(255,255,255,.45);}
.cta-band .btn:hover{--btn-line:#fff;}
.cta-band .btn.solid{--btn-bg:#fff;--btn-fg:#22352C;--btn-line:#fff;}
.cta-band .btn.solid:hover{--btn-bg:var(--on-dark);--btn-line:var(--on-dark);}
@media (max-width:760px){
  .cta-band .split{grid-template-columns:1fr;}
  .cta-band .split > div:last-child{justify-content:flex-start !important;}
}

.dl{
  display:flex;align-items:center;gap:1rem;
  padding:1.1rem 1.3rem;border-radius:var(--r);
  background:var(--paper);border:1px solid var(--line-soft);
  transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out);
}
.dl:hover{transform:translateY(-2px);box-shadow:var(--shadow-1);}
.dl svg{width:1.3rem;height:1.3rem;color:var(--sage);flex:none;}

.exti{width:.72rem;height:.72rem;display:inline-block;margin-left:.3rem;opacity:.5;vertical-align:baseline;}

/* ---------------------------------------------------------------------
   13. Fußbereich
   --------------------------------------------------------------------- */
.site-footer{
  background:var(--bg-2);
  border-top:1px solid var(--line-soft);
  padding-block:clamp(3rem,6vw,5rem) clamp(1.4rem,3vw,2rem);
  margin-bottom:env(safe-area-inset-bottom);
}
.foot-block{
  display:grid;gap:clamp(2rem,4vw,3.5rem);
  grid-template-columns:1fr;
}
@media (min-width:900px){ .foot-block{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);} }
.foot-top img{width:132px;height:auto;margin-bottom:1.2rem;}
.foot-top p{font-size:.97rem;color:var(--stone);line-height:1.7;max-width:44ch;}
.soc-ico-row{display:flex;gap:.55rem;margin-top:1.3rem;}
.soc-ico{
  display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:100px;
  border:1px solid var(--line);color:var(--ink-2);
  transition:background-color .22s,color .22s,border-color .22s,transform .3s var(--ease-out);
}
.soc-ico:hover{background:var(--sage);border-color:var(--sage);color:var(--on-solid);transform:translateY(-2px);}
.soc-ico svg{width:1.1rem;height:1.1rem;}
.foot-reach{display:flex;flex-direction:column;gap:.2rem;margin-top:1.3rem;font-family:"Jost",sans-serif;font-size:.92rem;}
.foot-reach a{color:var(--ink-2);transition:color .2s;}
.foot-reach a:hover{color:var(--sage);}

.foot-cols{
  display:grid;gap:1.8rem;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));
}
.foot-cols h5{margin-bottom:.9rem;}
.foot-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;}
.foot-cols a{font-size:.92rem;color:var(--ink-2);transition:color .2s;}
.foot-cols a:hover{color:var(--sage);}

.foot-bottom{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  margin-top:clamp(2.4rem,5vw,4rem);padding-top:1.5rem;
  border-top:1px solid var(--line-soft);
  font-family:"Jost",sans-serif;font-size:.8rem;color:var(--stone);
}
.made a{color:var(--sage);}

/* ---------------------------------------------------------------------
   14. Schnellzugriff und schwebende Schaltflächen
   --------------------------------------------------------------------- */
.actionbar{
  position:fixed;left:0;right:0;bottom:0;z-index:95;
  display:none;align-items:stretch;
  background:color-mix(in oklab, var(--paper) 94%, transparent);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-top:1px solid var(--line-soft);
  padding-bottom:env(safe-area-inset-bottom);
  box-shadow:0 -6px 24px -18px rgba(0,0,0,.45);
}
.ab-item{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.22rem;
  padding:.7rem .4rem .75rem;
  font-family:"Jost",sans-serif;font-size:.68rem;letter-spacing:.05em;
  color:var(--ink-2);
}
.ab-item svg{width:1.2rem;height:1.2rem;}
.ab-cta{color:var(--sage);font-weight:500;}
@media (max-width:760px){
  .actionbar{display:flex;}
  body{padding-bottom:4.2rem;}
  .floaters{bottom:5.2rem;}
}

.floaters{
  position:fixed;right:clamp(.9rem,3vw,1.6rem);bottom:clamp(.9rem,3vw,1.6rem);
  z-index:94;display:flex;flex-direction:column;gap:.6rem;
}
.float-btn{
  display:grid;place-items:center;width:3rem;height:3rem;border-radius:100px;
  border:1px solid var(--line-soft);background:var(--paper);color:var(--ink-2);
  box-shadow:var(--shadow-1);cursor:pointer;
  transition:transform .3s var(--ease-out),background-color .22s,color .22s;
}
.float-btn:hover{transform:translateY(-3px);}
.float-btn svg{width:1.35rem;height:1.35rem;}
.float-wa{background:#25D366;border-color:#25D366;color:#fff;}
.float-wa:hover{background:#1FB958;border-color:#1FB958;}
.float-top{opacity:0;visibility:hidden;transform:translateY(8px);}
.float-top.on{opacity:1;visibility:visible;transform:translateY(0);}
@media (max-width:760px){ .float-wa{display:none;} }

/* ---------------------------------------------------------------------
   15. Formulare
   --------------------------------------------------------------------- */
form .field{margin-bottom:1.1rem;}
form label{
  display:block;margin-bottom:.4rem;
  font-family:"Jost",sans-serif;font-size:.74rem;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--stone);
}
input[type=text],input[type=email],input[type=tel],input[type=date],
input[type=number],input[type=password],select,textarea{
  width:100%;padding:.8rem 1rem;
  font-family:"Jost",sans-serif;font-size:.97rem;color:var(--ink);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);
  transition:border-color .2s,box-shadow .2s;
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--sage);
  box-shadow:0 0 0 3px color-mix(in oklab, var(--sage) 18%, transparent);
}
textarea{min-height:9rem;resize:vertical;line-height:1.6;}

/* ---------------------------------------------------------------------
   15b. Startseite: großer Kopf, Ortsleiste, Unterkünfte, Journal
   --------------------------------------------------------------------- */
.hero-full{
  position:relative;isolation:isolate;
  min-height:clamp(30rem,82vh,46rem);
  display:flex;align-items:flex-end;
  padding-block:clamp(4rem,10vw,7rem) clamp(3rem,6vw,5rem);
  overflow:clip;
}
.hero-full picture{position:absolute;inset:0;z-index:-2;}
.hero-full .phero-img{
  position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;
  animation:heroIn 1.6s var(--ease-out) both;
}
@keyframes heroIn{from{transform:scale(1.06);}to{transform:scale(1);}}
.hero-full .phero-scrim{
  background:
    linear-gradient(to right, rgba(250,247,240,.97) 0%, rgba(250,247,240,.88) 38%, rgba(250,247,240,.26) 74%, rgba(250,247,240,.02) 100%),
    linear-gradient(to bottom, rgba(250,247,240,.42) 0%, rgba(250,247,240,.06) 40%, rgba(250,247,240,.55) 82%, rgba(250,247,240,.96) 100%);
}
.hero-full .phero-in{color:var(--ink);}
.hero-full h1{color:var(--ink);max-width:16ch;}
.hero-full h1 em{color:var(--sage);}
.hero-full .lead{color:var(--ink-2);max-width:54ch;}
.hero-full .eyebrow{color:var(--sage);}
.hero-full .btn{--btn-fg:var(--ink);--btn-line:var(--sage-soft);--btn-bg:color-mix(in oklab, var(--paper) 70%, transparent);}
.hero-full .btn:hover{--btn-line:var(--sage);}
.hero-full .btn.solid{--btn-bg:var(--sage);--btn-fg:var(--on-solid);--btn-line:var(--sage);}
.hero-full .btn.solid:hover{--btn-bg:var(--sage-deep);--btn-line:var(--sage-deep);}

.hero-stats{
  display:flex;flex-wrap:wrap;gap:clamp(1.6rem,4vw,3.6rem);
  margin:3rem 0 0;padding:1.7rem 0 0;
  border-top:2px solid var(--sage-deep);
}
.hero-stats div{display:flex;flex-direction:column-reverse;gap:.2rem;}
.hero-stats dt{
  font-family:"Jost",sans-serif;font-size:.7rem;font-weight:500;
  letter-spacing:.17em;text-transform:uppercase;color:var(--ink-2);
}
.hero-stats dd{
  margin:0;font-family:"Jost",sans-serif;font-weight:400;
  font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.05;color:var(--sage-deep);letter-spacing:-.03em;
}

/* Ortsleiste, schiebt sich über den Kopf */

.rcard{
  display:block;overflow:hidden;border-radius:var(--r);
  background:var(--paper);border:1px solid var(--line);
  box-shadow:var(--shadow-2);
  transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out);
}
.rcard:hover{transform:translateY(-4px);}
.rcard-img{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--tint);border-bottom:1px solid var(--line);}
.rcard-img img,.rcard-img picture{width:100%;height:100%;object-fit:cover;}
.rcard-img img{transition:transform .8s var(--ease-out);}
.rcard:hover .rcard-img img{transform:scale(1.05);}
.rcard-body{display:block;padding:1.1rem 1.3rem 1.3rem;}
.rcard-alt{
  display:block;font-family:"Jost",sans-serif;font-size:.7rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin-bottom:.3rem;
}
.rcard-body strong{
  display:block;font-family:"Jost",sans-serif;font-weight:400;
  font-size:1.42rem;letter-spacing:-.024em;color:var(--ink);margin-bottom:.25rem;
}
.rcard-body > span:last-child{font-size:.93rem;color:var(--stone);line-height:1.5;}

/* Überschrift mit Schaltfläche daneben */
.sec-head{
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:1.2rem;margin-bottom:2.2rem;
}
.sec-head h2{margin-bottom:0;}

/* Unterkünfte */
.ucard{
  display:block;overflow:hidden;border-radius:var(--r);
  background:var(--paper);border:1px solid var(--line);
  box-shadow:var(--shadow-1);
  transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out),border-color .3s;
}
.ucard:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);border-color:var(--sage-soft);}
.ucard-img{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--tint);border-bottom:1px solid var(--line);}
.ucard-img img,.ucard-img picture{width:100%;height:100%;object-fit:cover;}
.ucard-img img{transition:transform .8s var(--ease-out);}
.ucard:hover .ucard-img img{transform:scale(1.05);}
.ucard-body{display:flex;flex-direction:column;gap:.45rem;padding:1.1rem 1.3rem 1.4rem;}
.ucard-h{
  font-family:"Jost",sans-serif;font-weight:400;font-size:1.3rem;
  letter-spacing:-.022em;color:var(--ink);
}
.ucard-t{font-size:.96rem;color:var(--ink-2);line-height:1.6;}
.ucard .res-more{margin-top:.3rem;}
.ucard:hover .res-more::after{width:1.8rem;}

/* Journal */

.jcard{
  display:flex;flex-direction:column;gap:.5rem;
  padding:clamp(1.3rem,2.4vw,1.8rem);border-radius:var(--r);
  background:var(--paper);border:1px solid var(--line);
  box-shadow:var(--shadow-1);
  transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out),border-color .3s;
}
.jcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);border-color:var(--sage-soft);}
.jcard h3{font-size:1.2rem;margin:.2rem 0 .3rem;}
.jcard p{font-size:.95rem;color:var(--ink-2);line-height:1.62;flex:1;}
.jcard .res-more{margin-top:.4rem;}
.jcard:hover .res-more::after{width:1.8rem;}

/* ---------------------------------------------------------------------
   16. Bewegung
   --------------------------------------------------------------------- */
.reveal{
  opacity:0;transform:translateY(18px);
  transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);
}
.reveal.in{opacity:1;transform:none;}
.reveal:nth-child(2){transition-delay:.06s;}
.reveal:nth-child(3){transition-delay:.12s;}
.reveal:nth-child(4){transition-delay:.18s;}

/* Sanfter Seitenwechsel in Browsern, die das können */
@view-transition{ navigation:auto; }
::view-transition-old(root),::view-transition-new(root){animation-duration:.24s;}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important;
  }
  .reveal{opacity:1;transform:none;}
  @view-transition{ navigation:none; }
}

/* ---------------------------------------------------------------------
   17. Druck
   --------------------------------------------------------------------- */
@media print{
  .site-header,.actionbar,.floaters,.lb,.skip,.faq-jump,.filterbar,.seasons{display:none !important;}
  body{background:#fff;color:#000;font-size:11pt;}
  section{padding-block:1rem;}
  .card,.sight,.place,.facts{box-shadow:none;border-color:#ccc;break-inside:avoid;}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#555;}
  .reveal{opacity:1 !important;transform:none !important;}
}


/* Abstände der Reihen, die vorher eigene Regeln hatten */
.units{margin-top:2rem;}
.places{margin-top:1.8rem;}
.sights{margin-top:1.6rem;}
.region-strip{margin-top:clamp(-5.5rem,-6vw,-3rem);position:relative;z-index:2;}

/* ---------------------------------------------------------------------
   Bildergalerien als großes Mosaik
   Das erste Bild nimmt vier Felder ein, die übrigen stehen daneben und
   darunter. Bei neun Bildern geht das genau auf.
   --------------------------------------------------------------------- */
.gallery{
  display:grid;gap:.7rem;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.gallery > a:first-child{
  grid-column:span 2;grid-row:span 2;aspect-ratio:auto;
  border-radius:var(--r);
}
.unit-grid{grid-template-columns:repeat(4,minmax(0,1fr));}

/* Eine Unterkunft mit Galerie bekommt die ganze Breite – sonst bleiben
   die Bilder in einer Drittelspalte briefmarkenklein. */
.units > .card:has(.unit-gallery){flex:1 1 100%;}

@media (max-width:1000px){
  .gallery,.unit-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:620px){
  .gallery,.unit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;}
  .gallery > a:first-child{grid-row:span 1;}
}

/* Eckdaten ebenfalls zu dritt */
@media (max-width:900px){ .facts{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:560px){ .facts{grid-template-columns:1fr;} }

/* Unterkünfte: eine füllt die Breite, zwei stehen nebeneinander,
   ab drei stehen sie zu dritt. */
.units > :only-child{ flex:1 1 100%; }
.units:not(:has(> :nth-child(3))) > *{ flex:0 1 calc((100% - var(--gap)) / 2); }
.units:has(> :nth-child(3)) > *{ flex:0 1 calc((100% - 2 * var(--gap)) / 3); }
@media (max-width:1000px){
  .units > *,
  .units:has(> :nth-child(3)) > *,
  .units:not(:has(> :nth-child(3))) > *{ flex:1 1 100%; }
}

/* Fußbereich: vier gleiche Spalten, darunter zwei, am Handy eine */
.foot-cols{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:900px){ .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:520px){ .foot-cols{grid-template-columns:1fr;} }

/* =====================================================================
   13. Erweiterungen Oktober 2026
   Direkt buchen, Partner Luxalps, Gruppen, Journal-Kopf, FAQ.
   ===================================================================== */

/* --- Ortsauswahl „Jetzt buchen“ ------------------------------------ */
.bookpick{display:grid;gap:.8rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1.4rem;}
@media (max-width:700px){.bookpick{grid-template-columns:1fr;}}
.bookpick-i{
  display:flex;flex-direction:column;gap:.25rem;padding:1.15rem 1.25rem;
  border-radius:var(--r);background:var(--paper);border:1px solid var(--line-soft);
  color:var(--ink);box-shadow:var(--shadow-1);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s;
}
.bookpick-i:hover,.bookpick-i:focus-visible{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:var(--sage-soft);}
.bookpick-alt{font-family:"Jost",sans-serif;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);}
.bookpick-i strong{font-family:"Jost",sans-serif;font-weight:400;font-size:1.15rem;}
.bookpick-go{margin-top:.5rem;font-family:"Jost",sans-serif;font-size:.86rem;font-weight:500;color:var(--sage-deep);}
.cta-band .bookpick-i{background:rgba(255,255,255,.96);}

.bookdlg{
  position:fixed;inset:0;z-index:150;display:grid;place-items:center;padding:16px;
  background:rgba(20,26,21,.48);opacity:0;transition:opacity .2s var(--ease);
}
.bookdlg.on{opacity:1;}
.bookdlg[hidden]{display:none;}
.bookdlg-box{
  position:relative;width:min(760px,100%);max-height:calc(100dvh - 32px);overflow:auto;
  padding:clamp(1.4rem,4vw,2.4rem);border-radius:var(--r-lg);background:var(--bg);box-shadow:var(--shadow-2);
}
.bookdlg-box h2{font-size:clamp(1.5rem,3.4vw,2rem);margin:0 2.5rem .4rem 0;}
.bookdlg-box > p{color:var(--ink-2);margin:0;}
.bookdlg-help{margin-top:1.1rem !important;font-size:.92rem;color:var(--stone) !important;}
.bookdlg-help a{color:var(--sage-deep);text-decoration:underline;text-underline-offset:3px;}
.bookdlg-x{position:absolute;top:.9rem;right:.9rem;width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink);display:grid;place-items:center;cursor:pointer;}
.bookdlg-x svg{width:1.1rem;height:1.1rem;}

/* --- Abschlussband: Text über die volle Breite, Knöpfe darunter ----- */
.cta-band.cta-wide{display:grid;gap:1.6rem;}
.cta-band.cta-wide h2{max-width:none;margin-bottom:.6rem;}
.cta-band.cta-wide p{max-width:none;margin:0;font-size:clamp(1.02rem,1.5vw,1.15rem);}
.cta-acts{display:flex;flex-wrap:wrap;gap:.7rem;}
@media (max-width:520px){.cta-acts .btn{flex:1 1 100%;justify-content:center;text-align:center;}}

/* --- Partner Luxalps -------------------------------------------------- */
.partner-h{max-width:none;}
.partner-p{max-width:none;}
.partner-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:2rem;}
@media (max-width:980px){.partner-grid{grid-template-columns:1fr;}}
.pcard{
  display:flex;flex-direction:column;gap:.5rem;padding:1.5rem 1.6rem;border-radius:var(--r);
  background:var(--paper);border:1px solid var(--line-soft);box-shadow:var(--shadow-1);color:var(--ink);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s;
}
.pcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:var(--sage-soft);}
.pcard-brand{font-family:"Jost",sans-serif;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);}
.pcard-h{font-family:"Jost",sans-serif;font-size:1.15rem;font-weight:400;}
.pcard-t{color:var(--ink-2);font-size:.98rem;line-height:1.6;}
.pcard-go{margin-top:auto;padding-top:.7rem;font-family:"Jost",sans-serif;font-size:.86rem;font-weight:500;color:var(--sage-deep);display:inline-flex;align-items:center;gap:.3rem;}
.partner-all{margin-top:1.4rem;}

/* --- Gruppen-Kachel und offizielle Links -------------------------------- */
.gt-split{align-items:center;}
.official{margin-top:2.4rem;padding:1.5rem 1.6rem;border-radius:var(--r);background:var(--tint);}
.official h3{font-size:1.1rem;margin:0 0 .3rem;}
.official p{margin:0 0 .8rem;color:var(--ink-2);font-size:.96rem;}
.official ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;}
.official a{color:var(--sage-deep);border-bottom:1px solid var(--line);}
.sight-link{display:inline-flex;align-items:center;gap:.3rem;margin-top:.7rem;font-family:"Jost",sans-serif;font-size:.84rem;color:var(--sage-deep);border-bottom:1px solid var(--line);}

/* --- Finder: Ergebnis mit „Jetzt buchen“ ------------------------------- */
.res-link{display:grid;gap:1.2rem;grid-template-columns:1fr;color:inherit;}
@media (min-width:640px){
  .res{grid-template-columns:1fr;}
  .res-link{grid-template-columns:14rem 1fr;}
}
.res-acts{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding-top:.2rem;}
.res-alt{margin-top:1rem;}
.res-alt p{margin-bottom:.8rem;color:var(--ink-2);}
.res-alt .partner-grid{margin-top:0;grid-template-columns:1fr;}

/* --- Journal: Text links, Bild rechts ---------------------------------- */
.jhead{display:grid;gap:clamp(1.4rem,4vw,3rem);align-items:center;}
@media (min-width:900px){.jhead{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);}}
.jhead .lead{max-width:none;}
.jhead-fig{margin:0;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;background:var(--tint);box-shadow:var(--shadow-1);}
.jhead-fig picture,.jhead-fig img{display:block;width:100%;height:100%;object-fit:cover;}

.jbody p,.jbody li{max-width:none;}

/* --- FAQ: eine Spalte, Antworten über die volle Breite ---------------- */
.faq-group .faq{grid-template-columns:1fr;}
.faq-group .faq > details[open] .a,.faq .a{max-width:none;}
.faq .a p{margin:0 0 .7rem;}
.faq .a p:last-child{margin-bottom:0;}
.faq .a ul{margin:.4rem 0 .8rem 1.1rem;}
.faq .a a{color:var(--sage-deep);text-decoration:underline;text-underline-offset:3px;}
.faq summary{scroll-margin-top:110px;}
.faq-note{margin-top:1rem;padding:1.2rem 1.4rem;border-radius:var(--r);background:var(--tint);color:var(--ink-2);}

/* --- Kontakt ---------------------------------------------------------- */
.contact-person{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;align-items:baseline;margin-top:1.2rem;font-family:"Jost",sans-serif;}
.contact-person strong{font-weight:400;font-size:1.15rem;color:var(--ink);}
.res-alt .reveal{opacity:1 !important;transform:none !important;}
.jtop{padding-block:clamp(1.6rem,4vw,3rem) clamp(1rem,3vw,2rem);}
.jtop h1{font-size:clamp(2rem,4.4vw,3.2rem);max-width:none;}
.jtop .crumb{margin-bottom:1.4rem;}
.jbody h2{font-size:1.35rem;margin-top:2.6rem;}
.contact-person a{color:var(--sage-deep);border-bottom:1px solid var(--line);}
@media (max-width:640px){main table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}}
/* Fußbereich auf dem Handy: zwei Spalten statt einer langen Liste */
@media (max-width:640px){
  .site-footer .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:1.8rem 1.2rem !important;}
  .site-footer .foot-cols a{overflow-wrap:anywhere;}
}

/* ---------------------------------------------------------------------
   16. Cookie-Einwilligung
   --------------------------------------------------------------------- */
.cc{
  position:fixed;left:0;right:0;bottom:0;z-index:160;
  display:flex;justify-content:center;padding:0 16px calc(16px + env(safe-area-inset-bottom));
  pointer-events:none;opacity:0;transform:translateY(14px);
  transition:opacity .22s var(--ease),transform .3s var(--ease);
}
.cc.on{opacity:1;transform:none;}
.cc[hidden]{display:none;}
.cc-box{
  pointer-events:auto;width:min(980px,100%);max-height:calc(100dvh - 32px);overflow:auto;
  background:var(--paper);color:var(--ink);border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:0 30px 80px -30px rgba(20,26,21,.45),var(--shadow-2);
  padding:clamp(1.1rem,3vw,1.7rem) clamp(1.1rem,3.4vw,2rem);
}
.cc-head{display:flex;align-items:center;gap:1rem;margin-bottom:.6rem;}
.cc-logo{width:72px;height:auto;flex:none;}
.cc-head h2{font-size:clamp(1.2rem,2.4vw,1.5rem);margin:0;line-height:1.2;}
.cc-p{font-size:.9rem;line-height:1.6;color:var(--ink-2);margin:0;}
.cc-p a{color:var(--sage-deep);text-decoration:underline;text-underline-offset:3px;}
.cc-acts{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:flex-end;margin-top:1.1rem;}
.cc-acts .btn{min-width:11rem;}
.cc-prefs{margin-top:1rem;display:grid;gap:.6rem;}
.cc-prefs[hidden]{display:none;}
.cc-cat{border:1px solid var(--line-soft);border-radius:var(--r);padding:.8rem 1rem;background:var(--bg);}
.cc-cat-h{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.cc-cat-h strong{font-family:"Jost",sans-serif;font-weight:500;font-size:.95rem;}
.cc-cat p{margin:.3rem 0 0;font-size:.85rem;color:var(--stone);line-height:1.5;}
.cc-always{font-family:"Jost",sans-serif;font-size:.75rem;letter-spacing:.05em;color:var(--sage-deep);}
.cc-save{justify-self:end;}
.cc-sw{position:relative;display:inline-block;width:2.9rem;height:1.6rem;flex:none;cursor:pointer;}
.cc-sw input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1;}
.cc-sw-ui{position:absolute;inset:0;border-radius:99px;background:#c9c2b0;transition:background .2s;}
.cc-sw-ui::after{content:"";position:absolute;top:3px;left:3px;width:calc(1.6rem - 6px);height:calc(1.6rem - 6px);border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s var(--ease);}
.cc-sw input:checked + .cc-sw-ui{background:var(--sage);}
.cc-sw input:checked + .cc-sw-ui::after{transform:translateX(1.3rem);}
.cc-sw input:focus-visible + .cc-sw-ui{outline:2px solid var(--sage-deep);outline-offset:2px;}
@media (max-width:640px){
  .cc-acts{display:grid;grid-template-columns:1fr 1fr;}
  .cc-acts .btn{min-width:0;padding-inline:.8rem;}
  .cc-acts [data-cc="all"]{grid-column:1 / -1;grid-row:1;}
  .cc-logo{width:54px;}
  .cc-p{font-size:.84rem;}
}
.cc-settings-box{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:1.1rem 1.3rem;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);}
.cc-settings-box #cc-status{font-family:"Jost",sans-serif;font-size:.9rem;color:var(--stone);}

/* ---------------------------------------------------------------------
   17. WhatsApp-Chatfenster
   --------------------------------------------------------------------- */
.wa-chat{
  position:fixed;right:clamp(.9rem,3vw,1.6rem);bottom:calc(clamp(.9rem,3vw,1.6rem) + 3.8rem);z-index:155;
  width:min(390px,calc(100vw - 24px));max-height:calc(100dvh - 7rem);overflow:auto;
  background:var(--paper);border:1px solid var(--line);border-radius:22px;
  box-shadow:0 30px 70px -28px rgba(20,26,21,.5),var(--shadow-2);
  opacity:0;transform:translateY(12px) scale(.98);transform-origin:bottom right;
  transition:opacity .2s var(--ease),transform .26s var(--ease);
}
.wa-chat.on{opacity:1;transform:none;}
.wa-chat[hidden]{display:none;}
.wa-top{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;background:#075E54;color:#fff;border-radius:21px 21px 0 0;position:sticky;top:0;z-index:1;}
.wa-ava{width:2.6rem;height:2.6rem;border-radius:50%;background:#fff;display:grid;place-items:center;overflow:hidden;flex:none;}
.wa-ava img{width:100%;height:100%;object-fit:contain;}
.wa-who{display:flex;flex-direction:column;line-height:1.25;flex:1;min-width:0;}
.wa-who strong{font-family:"Jost",sans-serif;font-weight:500;font-size:1rem;}
.wa-who span{font-size:.76rem;opacity:.9;display:flex;align-items:center;gap:.35rem;}
.wa-dot{width:.5rem;height:.5rem;border-radius:50%;background:#25D366;display:inline-block;box-shadow:0 0 0 2px rgba(37,211,102,.3);}
.wa-x{width:2.2rem;height:2.2rem;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;cursor:pointer;}
.wa-x svg{width:1rem;height:1rem;}
.wa-body{padding:1rem;display:grid;gap:.75rem;background:#ECE5DD;background:linear-gradient(#efe9df,#e9e2d6);}
.wa-bubble{margin:0;background:#fff;border-radius:4px 16px 16px 16px;padding:.7rem .9rem;font-size:.9rem;line-height:1.5;color:#1d2420;box-shadow:0 1px 1px rgba(0,0,0,.08);max-width:92%;}
.wa-chips{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;}
.wa-chip{cursor:pointer;}
.wa-chip input{position:absolute;opacity:0;pointer-events:none;}
.wa-chip span{display:inline-block;padding:.42rem .8rem;border-radius:99px;background:#fff;border:1.5px solid #cfd8d1;font-family:"Jost",sans-serif;font-size:.8rem;color:#1d2420;transition:background .15s,border-color .15s,color .15s;}
.wa-chip input:checked + span{background:#075E54;border-color:#075E54;color:#fff;}
.wa-chip input:focus-visible + span{outline:2px solid #075E54;outline-offset:2px;}
.wa-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;}
.wa-grid .wa-f:first-child{grid-column:1 / -1;}
.wa-f{display:grid;gap:.25rem;margin:0;}
.wa-f > span{font-family:"Jost",sans-serif;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:#4a564e;}
.wa-f input,.wa-f select,.wa-f textarea{width:100%;font:inherit;font-size:.9rem;padding:.55rem .7rem;border:1px solid #cfd8d1;border-radius:10px;background:#fff;color:#1d2420;}
.wa-f textarea{resize:vertical;min-height:2.8rem;}
.wa-f input:focus,.wa-f select:focus,.wa-f textarea:focus{outline:2px solid #25D366;outline-offset:0;border-color:#25D366;}
.wa-send{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%;padding:.85rem 1rem;border:0;border-radius:99px;background:#25D366;color:#fff;font-family:"Jost",sans-serif;font-weight:500;font-size:.95rem;letter-spacing:.03em;cursor:pointer;transition:background .2s,transform .2s;}
.wa-send:hover{background:#1FB958;transform:translateY(-1px);}
.wa-send svg{width:1.2rem;height:1.2rem;}
.wa-alt,.wa-note{margin:0;font-size:.76rem;line-height:1.45;color:#4a564e;text-align:center;}
.wa-alt a,.wa-note a{color:#075E54;text-decoration:underline;text-underline-offset:2px;}
@media (max-width:760px){
  .wa-chat{right:12px;left:12px;width:auto;bottom:calc(4.6rem + env(safe-area-inset-bottom));max-height:calc(100dvh - 6rem);}
}
@media print{.cc,.wa-chat{display:none !important;}}

/* ---------------------------------------------------------------------
   18. Rechtstexte
   --------------------------------------------------------------------- */
.legal{padding-top:1rem;}
.legal .wrap{max-width:56rem;}
.legal-toc{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r);padding:1.2rem 1.4rem;margin-bottom:2.6rem;}
.legal-toc strong{font-family:"Jost",sans-serif;font-weight:500;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--stone);}
.legal-toc ol{margin:.7rem 0 0;padding-left:1.3rem;columns:2 16rem;column-gap:2rem;font-size:.92rem;}
.legal-toc li{margin:.2rem 0;break-inside:avoid;}
.legal-toc a{color:var(--sage-deep);}
.legal-sec{margin-bottom:2.4rem;scroll-margin-top:6.5rem;}
.legal-sec h2{font-size:1.3rem;margin-bottom:.7rem;}
.legal-n{color:var(--sage);font-variant-numeric:tabular-nums;}
.legal-sec h3{font-size:1.02rem;font-family:"Jost",sans-serif;font-weight:500;margin:1.2rem 0 .4rem;}
.legal-sec p{margin:0 0 .8rem;}
.legal-sec strong{font-weight:500;}
.legal-sec ul{margin:0 0 .9rem;}
.legal-sec a{text-decoration:underline;text-underline-offset:3px;}
.legal-sec table{width:100%;border-collapse:collapse;font-size:.88rem;margin:.6rem 0 1rem;}
.legal-sec th,.legal-sec td{text-align:left;vertical-align:top;padding:.55rem .6rem;border-bottom:1px solid var(--line-soft);}
.legal-sec th{font-family:"Jost",sans-serif;font-weight:500;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--stone);}
.legal-table{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.legal-date{font-size:.9rem;color:var(--stone);}
@media (max-width:640px){.legal-sec table{font-size:.82rem;}.legal-sec th,.legal-sec td{padding:.45rem .4rem;}}
/* Chatfenster: allgemeine Formular-Stile zurücksetzen, kompakter */
.wa-chat form label{margin:0;letter-spacing:normal;text-transform:none;font-weight:400;font-size:inherit;color:inherit;}
.wa-chat .wa-chip{display:inline-flex;}
.wa-chat .wa-f{display:grid;}
.wa-chat .wa-f > span{letter-spacing:.06em;font-weight:500;}
.wa-chat .wa-f input,.wa-chat .wa-f select,.wa-chat .wa-f textarea{padding:.5rem .7rem;font-size:.88rem;border-radius:10px;}
.wa-chat .wa-f textarea{min-height:2.6rem;height:2.9rem;line-height:1.4;}
.wa-body{gap:.6rem;padding:.85rem .9rem 1rem;}
.wa-chip span{padding:.36rem .7rem;font-size:.78rem;}

/* ---------------------------------------------------------------------
   19. Orte (automatisch erweiterbar)
   --------------------------------------------------------------------- */
@media (min-width:1101px){
  .region-strip:has(> :nth-child(4)) > *{flex:0 1 calc((100% - 3 * var(--gap)) / 4);}
}
@media (min-width:621px) and (max-width:1100px){
  .region-strip:has(> :nth-child(4)) > *{flex:0 1 calc((100% - var(--gap)) / 2);}
}
.loc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr));gap:var(--gap);margin-top:1.8rem;}
.loc-card{display:grid;grid-template-columns:1fr;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1);}
.loc-card-img{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--tint);}
.loc-card-img img,.loc-card-img picture{width:100%;height:100%;object-fit:cover;display:block;}
.loc-card-body{padding:1.3rem 1.4rem 1.5rem;}
.loc-card-body h3{font-size:1.4rem;margin:.3rem 0 .5rem;}
.loc-card-body h3 a{color:inherit;}
.loc-card-body p{color:var(--ink-2);margin:0 0 1rem;}
@media (min-width:900px){
  .loc-cards:has(> :only-child) .loc-card{grid-template-columns:1.1fr 1fr;align-items:stretch;}
  .loc-cards:has(> :only-child) .loc-card-img{aspect-ratio:auto;min-height:100%;}
  .loc-cards:has(> :only-child) .loc-card-body{padding:2rem 2.2rem;align-self:center;}
}
/* Ortsauswahl: bei 4 Orten 2×2, ab 5 wieder 3 Spalten */
@media (min-width:701px){
  .bookpick:has(> :nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* ---------------------------------------------------------------------
   20. Weitere Orte (unten auf jeder Ortsseite)
   --------------------------------------------------------------------- */
.other-grid{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));margin-top:1.8rem;}
.ocard{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1);transition:transform .3s var(--ease-out);}
.ocard:hover{transform:translateY(-4px);}
.ocard-img{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--tint);}
.ocard-img img,.ocard-img picture{width:100%;height:100%;object-fit:cover;display:block;}
.ocard-body{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.25rem 1.3rem;flex:1;}
.ocard-body h3{font-size:1.3rem;margin:0;}
.ocard-body h3 a{color:inherit;}
.ocard-body p{color:var(--ink-2);font-size:.95rem;margin:0 0 .6rem;flex:1;}
.ocard-acts{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;}
@media (max-width:420px){.ocard-acts .btn.solid{flex:1 1 100%;}}

/* Echte Fotos im Kopfbild: Schleier nur links, rechts klares Foto */
.phero-scrim{
  background:
    linear-gradient(to right, rgba(250,247,240,.95) 0%, rgba(250,247,240,.84) 36%, rgba(250,247,240,.30) 66%, rgba(250,247,240,0) 88%),
    linear-gradient(to bottom, rgba(250,247,240,.35) 0%, rgba(250,247,240,0) 30%, rgba(250,247,240,0) 75%, rgba(250,247,240,.45) 100%);
}
@media (max-width:900px){
  .phero-scrim{
    background:
      linear-gradient(to bottom, rgba(250,247,240,.80) 0%, rgba(250,247,240,.88) 45%, rgba(250,247,240,.93) 100%);
  }
}

/* Angebots-Karten mit Bild */
.card .card-img{
  margin:calc(-1 * clamp(1.35rem,2.4vw,1.75rem)) calc(-1 * clamp(1.35rem,2.4vw,1.75rem)) 1.15rem;
  aspect-ratio:3/2;overflow:hidden;background:var(--tint);
  border-radius:var(--r) var(--r) 0 0;border-bottom:1px solid var(--line);
}
.card .card-img picture,.card .card-img img{display:block;width:100%;height:100%;object-fit:cover;}
.card .card-img img{transition:transform .8s var(--ease-out);}
.card:hover .card-img img{transform:scale(1.04);}

/* Presse: Fotos zum Download */
.pressgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15.5rem),1fr));gap:1.1rem;margin-top:1.6rem;}
.pressgrid figure{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;}
.pressgrid .pg-img{aspect-ratio:3/2;overflow:hidden;background:var(--tint);}
.pressgrid .pg-img picture,.pressgrid .pg-img img{display:block;width:100%;height:100%;object-fit:cover;}
.pressgrid figcaption{padding:.8rem 1rem 1rem;font-size:.86rem;line-height:1.5;color:var(--ink-2);display:flex;flex-direction:column;gap:.5rem;flex:1;}
.pressgrid figcaption a{margin-top:auto;font-family:Jost,sans-serif;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);text-decoration:none;}
.pressgrid figcaption a:hover{text-decoration:underline;}
.chalet-facts{margin-top:1.4rem;}
@media (min-width:901px){ .facts.chalet-facts{grid-template-columns:repeat(2,minmax(0,1fr));} }

/* Bildnachweis / Symbolbild direkt am Bild */
:where(:has(> picture.has-credit)):not(.phero):not(.hero-full){position:relative;}
picture.has-credit::after{
  content:attr(data-credit);position:absolute;right:.5rem;bottom:.5rem;z-index:2;
  max-width:calc(100% - 1rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font:500 .6rem/1.2 Jost,sans-serif;letter-spacing:.05em;color:#fff;
  background:rgba(22,28,24,.58);padding:.28rem .5rem;border-radius:4px;pointer-events:none;
}
.phero picture.has-credit::after,.hero-full picture.has-credit::after{bottom:.8rem;right:.9rem;}
@media (max-width:640px){ .phero picture.has-credit::after{bottom:4.6rem;} }
.credit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.8rem;margin-top:.8rem;}
.credit-grid figure{margin:0;font-size:.76rem;line-height:1.4;color:var(--ink-2);}
.credit-img{aspect-ratio:3/2;overflow:hidden;border-radius:6px;background:var(--tint);margin-bottom:.35rem;}
.credit-img picture,.credit-img img{display:block;width:100%;height:100%;object-fit:cover;}
.rcard{display:flex;flex-direction:column;}
.rcard-link{display:block;color:inherit;text-decoration:none;flex:1;}
.rcard-acts{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:0 1.3rem 1.3rem;}
.rcard-acts .btn.solid{padding:.7rem 1.25rem;}

/* Buchungs-Band auf Ortsseiten */
.book-band{padding:clamp(1.6rem,4vw,2.6rem) 0;}
.book-band-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem 2rem;
  background:var(--tint);border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.3rem,3vw,2rem) clamp(1.3rem,3vw,2.2rem);}
.book-band-in h2{font-size:clamp(1.25rem,2.4vw,1.6rem);margin:0 0 .4rem;}
.book-band-in p{margin:0;max-width:56ch;color:var(--ink-2);}
.book-band-acts{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;}
@media (max-width:640px){ .book-band-acts .btn.lg{flex:1 1 100%;text-align:center;justify-content:center;} }

/* AGB (AGBH 2006) */
.agb-pre p{margin:0 0 .6rem;} .agb-pre p:last-child{margin:0;display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;}
.agb-title{margin-top:2.2rem;font-size:clamp(1.3rem,2.6vw,1.7rem);}
.agb-sec h3{font-size:1rem;margin:1.2rem 0 .5rem;}
.agb-n{display:grid;grid-template-columns:3rem 1fr;gap:.4rem;}
.agb-n span{font-family:Jost,sans-serif;color:var(--sage);}
.agb-defs{display:grid;grid-template-columns:minmax(8rem,14rem) 1fr;gap:.5rem 1.2rem;margin:.6rem 0 1rem 3.4rem;}
.agb-defs dt{font-weight:500;}
.agb-list,.agb-alpha{margin:.4rem 0 1rem 3.4rem;padding:0;list-style:none;}
.agb-list li{position:relative;padding-left:1rem;margin:.3rem 0;} .agb-list li::before{content:"–";position:absolute;left:0;}
.agb-alpha li{display:grid;grid-template-columns:1.8rem 1fr;margin:.35rem 0;}
.agb-table{overflow-x:auto;margin:.6rem 0 1rem 3.4rem;}
.agb-table table{border-collapse:collapse;min-width:30rem;width:100%;font-size:.92rem;}
.agb-table th,.agb-table td{border:1px solid var(--line);padding:.5rem .7rem;text-align:center;}
.agb-table th{background:var(--tint);font-weight:500;}
@media (max-width:640px){
  .agb-n{grid-template-columns:2.4rem 1fr;}
  .agb-defs{grid-template-columns:1fr;margin-left:0;} .agb-defs dd{margin:0 0 .6rem;}
  .agb-list,.agb-alpha,.agb-table{margin-left:0;}
  .agb-table table{min-width:0;font-size:.8rem;} .agb-table th,.agb-table td{padding:.4rem .3rem;}
}

/* Adresse unter „Lage“ */
.loc-address{display:grid;gap:.8rem;margin-top:1.4rem;}
.loc-address address{font-style:normal;display:flex;flex-direction:column;gap:.25rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.2rem;}
.loc-address strong{font-family:Jost,sans-serif;font-weight:400;font-size:1.1rem;color:var(--ink);}
.loc-address-acts{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:.3rem;font-family:Jost,sans-serif;font-size:.8rem;letter-spacing:.06em;}
.loc-address-acts a{color:var(--sage);}

/* Rechtstexte: keine großen Abstände zwischen den Abschnitten */
.legal section,section.legal-sec{padding-block:0;}
.legal-sec{margin-bottom:1.8rem;}
.agb-sec{margin-bottom:1.4rem;}
.agb-sec h2{margin-top:.4rem;}
h1,h2{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;}

/* Angebote mit Termin */
.offer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:1.2rem;margin-top:1.8rem;}
.offer{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-1);transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out);}
.offer:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);}
.offer-img{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--tint);}
.offer-img picture,.offer-img img{display:block;width:100%;height:100%;object-fit:cover;}
.offer-date{position:absolute;left:.8rem;top:.8rem;z-index:3;background:rgba(255,255,255,.94);color:var(--ink);border-radius:var(--r-sm);padding:.45rem .7rem;display:flex;flex-direction:column;line-height:1.2;box-shadow:0 4px 14px rgba(0,0,0,.12);}
.offer-date b{font-family:Jost,sans-serif;font-weight:500;font-size:.92rem;}
.offer-date small{font-family:Jost,sans-serif;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);margin-top:.15rem;}
.offer-body{display:flex;flex-direction:column;gap:.5rem;padding:1.1rem 1.25rem 1.3rem;flex:1;}
.offer-body h3{font-size:1.15rem;margin:0;}
.offer-body p{margin:0;font-size:.94rem;color:var(--ink-2);}
.offer-body .offer-note{font-size:.82rem;color:var(--stone);}
.offer-acts{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin-top:auto;padding-top:.8rem;}

/* Wunschtermin wählen */
.datepick{display:grid;gap:1.4rem;grid-template-columns:minmax(0,1fr);background:var(--tint);border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.3rem,3vw,2.2rem);}
@media (min-width:980px){.datepick{grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);align-items:center;}}
.datepick-head h2{font-size:clamp(1.3rem,2.6vw,1.75rem);margin:.3rem 0 .4rem;}
.datepick-head p{margin:0;color:var(--ink-2);}
.datepick-form{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));align-items:end;}
.datepick-form label{display:flex;flex-direction:column;gap:.35rem;font-family:Jost,sans-serif;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);}
.datepick-form select,.datepick-form input{font:inherit;font-size:1rem;letter-spacing:0;text-transform:none;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:.7rem .8rem;min-height:2.9rem;width:100%;}
.datepick-acts{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center;}

/* Für Eigentümer */
.owner-facts dt{font-family:Jost,sans-serif;font-size:1.7rem;letter-spacing:-.02em;color:var(--ink);text-transform:none;}
.owner-facts dd{font-size:.86rem;color:var(--stone);}
.owner-models{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));margin-top:1.8rem;}
.owner-model{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.4rem,3vw,2rem);box-shadow:var(--shadow-1);}
.owner-model.is-main{background:var(--tint);}
.owner-model-n{font-family:Jost,sans-serif;font-size:.78rem;letter-spacing:.16em;color:var(--sage);}
.owner-model h3{font-size:1.4rem;margin:.3rem 0 .6rem;}
.owner-steps{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;gap:1.1rem;}
.owner-steps li{display:grid;grid-template-columns:2.4rem 1fr;gap:.9rem;align-items:start;}
.owner-steps li > span{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--sage);color:#fff;font-family:Jost,sans-serif;}
.owner-steps strong{font-family:Jost,sans-serif;font-weight:500;}
.owner-steps p{margin:.2rem 0 0;color:var(--ink-2);font-size:.95rem;}
.hero-address{display:inline-flex;align-items:center;gap:.5rem;margin:1rem 0 0;font-family:Jost,sans-serif;font-size:.95rem;color:var(--ink);background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:999px;padding:.45rem .95rem .45rem .75rem;}
.hero-address svg{width:1.1rem;height:1.1rem;color:var(--sage);flex:none;}
.hero-address a{color:inherit;text-decoration:none;}
.hero-address a:hover{text-decoration:underline;}
.offer-badge{position:absolute;left:.8rem;top:.8rem;z-index:3;background:var(--sage);color:#fff;font-family:Jost,sans-serif;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;border-radius:999px;padding:.4rem .8rem;box-shadow:0 4px 14px rgba(0,0,0,.15);}
.offer-range{display:flex;align-items:center;gap:.45rem;font-family:Jost,sans-serif;font-size:.9rem !important;color:var(--ink) !important;}
.offer-range svg{width:1rem;height:1rem;color:var(--sage);flex:none;}

/* Presse */
.card-foot{margin-top:auto;padding-top:1rem;}
.press-news time{display:block;font-family:"Jost",sans-serif;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin-bottom:.5rem;}
.press-news h3{font-size:1.15rem;margin:0 0 .6rem;}
.foot-partner a{display:inline-flex;align-items:center;gap:.3rem;}
.foot-partner svg{width:.8em;height:.8em;}

/* ---------------------------------------------------------------------
   Seitenkopf mit Bild-Collage (Startseite, Vermietung)
   Text links, rechts ein großes und zwei kleine Fotos – Bilder bleiben
   farbig und klar, kein heller Schleier darüber.
   --------------------------------------------------------------------- */
.hero-split{
  position:relative;
  padding-block:clamp(2.2rem,5vw,4.4rem) clamp(2.6rem,6vw,5rem);
  background:
    radial-gradient(60rem 30rem at 85% 0%, color-mix(in oklab, var(--sage) 10%, transparent), transparent 70%),
    var(--bg);
}
.hero-split .hero-grid{align-items:center;}
.hero-split h1{max-width:16ch;}
.hero-split h1 em{color:var(--sage);}
.hero-split .lead{max-width:54ch;}
.hero-split .crumb{margin-bottom:1.2rem;}
.hero-split .hero-stats{margin-top:2.4rem;}
.mosaic{
  display:grid;gap:clamp(.6rem,1.2vw,.95rem);
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  grid-template-rows:1fr 1fr;
  aspect-ratio:1/0.92;
}
.mosaic figure{
  position:relative;margin:0;overflow:hidden;
  border-radius:var(--r-lg);background:var(--tint);
  box-shadow:var(--shadow-2);
}
.mosaic .mosaic-1{grid-row:1 / 3;}
.mosaic picture,.mosaic img{display:block;width:100%;height:100%;object-fit:cover;}
.mosaic img{transition:transform 1.2s var(--ease-out);}
.mosaic figure:hover img{transform:scale(1.04);}
.mosaic.mosaic-n1{grid-template-columns:1fr;grid-template-rows:1fr;aspect-ratio:4/3;}
.mosaic.mosaic-n2{grid-template-rows:1fr;}
.mosaic.mosaic-n2 .mosaic-1{grid-row:auto;}
@media (max-width:979px){
  .mosaic{aspect-ratio:4/3;max-width:44rem;}
  .hero-split .hero-stats{margin-top:1.8rem;}
}
@media (max-width:560px){
  .mosaic{aspect-ratio:1/0.95;gap:.5rem;}
  .mosaic figure{border-radius:var(--r);}
}
.hero-split + section .region-strip{margin-top:0;}

/* Verfügbarkeit prüfen – Formular (Angebote und Ortsseiten) */
.datepick-form{align-items:stretch;}
.datepick-form > label{justify-content:flex-end;}
.datepick-form select{appearance:auto;}
.datepick-loc{display:flex;flex-direction:column;justify-content:flex-end;gap:.35rem;font-family:Jost,sans-serif;font-size:1rem;color:var(--ink);}
.datepick-loc small{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);}
.datepick-loc{padding-bottom:.75rem;border-bottom:1px solid var(--line);}
.datepick-ages{grid-column:1/-1;display:grid;gap:.8rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,8rem),1fr));}
.datepick-ages[hidden]{display:none;}
.datepick-ages label{display:flex;flex-direction:column;gap:.35rem;font-family:Jost,sans-serif;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);}
.datepick-note{grid-column:1/-1;margin:0;font-size:.9rem;color:var(--ink-2);}
.datepick-note:empty{display:none;}
/* Überschrift oben, Felder darunter in einer Reihe */
.datepick{grid-template-columns:minmax(0,1fr) !important;}
.datepick-head{max-width:46rem;}
.datepick-form{grid-template-columns:repeat(2,minmax(0,1fr));}
.datepick-form .dp-loc{grid-column:1/-1;}
.datepick-form select,.datepick-form input{height:3rem;min-height:0;box-sizing:border-box;}
@media (min-width:900px){
  .datepick-form{grid-template-columns:1.25fr 1.1fr 1.1fr .8fr .8fr;}
  .datepick-form .dp-loc{grid-column:auto;}
}

/* Vermietung: Kennzahlen, Kanäle, Leistungen */
.owner-h1{max-width:18ch;}
.owner-call{margin:1rem 0 0;font-size:.95rem;color:var(--ink-2);}
.owner-call a{border-bottom:1px solid var(--line);color:var(--ink);}
.owner-stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;}
.owner-stats li{display:flex;flex-direction:column;gap:.3rem;padding:clamp(1.1rem,2.4vw,1.6rem) clamp(1rem,2.4vw,1.6rem);border-left:1px solid var(--line);}
.owner-stats li:first-child{border-left:0;}
.owner-stats strong{font-family:Jost,sans-serif;font-weight:400;font-size:clamp(1.7rem,3.2vw,2.4rem);line-height:1.05;letter-spacing:-.03em;color:var(--sage-deep);}
.owner-stats span{font-family:Jost,sans-serif;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);}
@media (max-width:760px){
  .owner-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .owner-stats li:nth-child(3){border-left:0;}
  .owner-stats li:nth-child(n+3){border-top:1px solid var(--line);}
}
.chan-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;}
.chan-list li{display:flex;align-items:center;justify-content:center;text-align:center;min-height:4.2rem;padding:.8rem 1rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);font-family:Jost,sans-serif;font-weight:500;font-size:1.05rem;letter-spacing:-.01em;color:var(--ink);box-shadow:var(--shadow-1);}
.chan-list li.is-own{grid-column:1/-1;background:var(--sage);border-color:var(--sage);color:var(--on-solid);}
.chan-note{margin:.8rem 0 0;font-size:.78rem;color:var(--stone);}
.owner-serv h3{font-size:1.08rem;margin:0 0 .45rem;}
.owner-fig{margin:0;}
.owner-fig img,.owner-fig picture{width:100%;border-radius:var(--r-lg);aspect-ratio:4/3;object-fit:cover;box-shadow:var(--shadow-2);}

/* Alle Unterkünfte: eine Karte je Ort, Eckdaten immer gleich, drei pro Zeile */
.stays{display:grid;gap:clamp(1.2rem,2.4vw,1.8rem);grid-template-columns:repeat(auto-fit,minmax(min(100%,30rem),1fr));}
.stay{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-1);}
.stay-img{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--tint);}
.stay-img img,.stay-img picture{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out);}
.stay:hover .stay-img img{transform:scale(1.04);}
.stay-body{display:flex;flex-direction:column;flex:1;padding:clamp(1.3rem,2.6vw,1.9rem);}
.stay-body .meta{font-family:Jost,sans-serif;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);}
.stay-body h2{font-size:clamp(1.35rem,2.4vw,1.7rem);margin:.35rem 0 .3rem;}
.stay-units{margin:0 0 1.1rem;color:var(--ink-2);}
.stay-facts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;}
.stay-facts li{display:flex;gap:.55rem;align-items:flex-start;padding:.65rem .7rem;background:var(--tint);border-radius:var(--r-sm);min-width:0;}
.stay-facts svg{width:1.15rem;height:1.15rem;flex:none;margin-top:.15rem;color:var(--sage);}
.stay-facts span{display:flex;flex-direction:column;font-family:Jost,sans-serif;font-size:.9rem;line-height:1.3;color:var(--ink);overflow-wrap:anywhere;}
.stay-facts small{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);}
.stay-do-h{font-size:1rem;margin:1.3rem 0 .5rem;}
.stay-do{margin:0;}
.stay-acts{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center;margin-top:auto;padding-top:1.4rem;}
.stays-note{margin:1.6rem 0 0;font-size:.92rem;color:var(--ink-2);max-width:70ch;}
@media (max-width:520px){.stay-facts{grid-template-columns:repeat(2,minmax(0,1fr));}}
.owner-h1{max-width:16ch;font-size:clamp(2.3rem,4.6vw,3.7rem);}
.owner-h1 em{display:block;margin-top:.15em;font-size:.62em;line-height:1.15;color:var(--sage);}

/* Startseite: Suchleiste „Direkt buchen“ unter dem Kopf */
.home-search{padding-block:0 clamp(1.6rem,4vw,3rem);position:relative;z-index:3;}
.datepick.is-bar{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-2);gap:1rem;padding:clamp(1.1rem,2.4vw,1.6rem) clamp(1.1rem,2.6vw,1.9rem);}
.datepick.is-bar .datepick-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem 1rem;max-width:none;}
.datepick.is-bar .datepick-head h2{font-size:clamp(1.15rem,2vw,1.4rem);margin:0;}
.datepick.is-bar [data-datepick-wa],.datepick.is-bar [data-datepick-mail]{display:none;}
@media (min-width:1100px){
  .datepick.is-bar .datepick-form{grid-template-columns:1.35fr 1.1fr 1.1fr .75fr .75fr auto;}
  .datepick.is-bar .datepick-acts{grid-column:auto;align-self:end;}
  .datepick.is-bar .datepick-acts .btn{min-height:3rem;padding-block:.7rem;}
}
.datepick.is-bar .datepick-ages{order:10;}.datepick.is-bar .datepick-note{order:11;}
.datepick.is-bar .datepick-head{align-items:center;}
.datepick.is-bar .datepick-head .eyebrow{margin:0;}
@media (max-width:979px){.mosaic{max-width:none;}}

/* Presse: Pressemitteilungen */
.press-list{display:grid;gap:1.2rem;margin-top:1.6rem;}
.press-release{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.3rem,3vw,2.1rem);box-shadow:var(--shadow-1);scroll-margin-top:6rem;}
.press-release time{display:block;font-family:Jost,sans-serif;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin-bottom:.5rem;}
.press-release h3{font-size:clamp(1.2rem,2.2vw,1.5rem);margin:0 0 .35rem;max-width:40ch;}
.press-sub{margin:0 0 .9rem;font-family:Jost,sans-serif;color:var(--sage-deep);}
.press-lead{margin:0;max-width:75ch;}
.press-lead strong{font-family:Jost,sans-serif;font-weight:500;}
.press-more{margin-top:.9rem;max-width:75ch;}
.press-more summary{cursor:pointer;font-family:Jost,sans-serif;font-weight:500;color:var(--sage-deep);list-style:none;}
.press-more summary::-webkit-details-marker{display:none;}
.press-more summary::after{content:" +";}
.press-more[open] summary::after{content:" –";}
.press-more p{margin:.7rem 0 0;}
.press-more h4{font-size:1rem;margin:1.2rem 0 0;}
.press-contact{font-size:.9rem;color:var(--stone);}
.press-acts{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center;margin-top:1.1rem;}
.press-release h3{text-wrap:balance;}

/* Einzelne Pressemitteilung */
.press-h1{max-width:24ch;font-size:clamp(1.9rem,4vw,3rem);text-wrap:balance;}
.press-article{max-width:46rem;}
.press-article p{margin:0 0 1rem;}
.press-article h2{font-size:1.25rem;margin:2rem 0 .7rem;}
.press-article .note{margin-top:1.4rem;}
.press-others{margin:0;padding-left:1.1rem;}
.press-others li{margin:.4rem 0;}
.press-release h3 a{color:inherit;}
.press-release h3 a:hover{color:var(--sage);}

/* Angebote: drei Karten pro Zeile, Knöpfe nebeneinander */
.offer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;}
@media (max-width:1000px){.offer-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:620px){.offer-grid{grid-template-columns:minmax(0,1fr);}}
.offer-img{aspect-ratio:16/10;}
.offer-acts .btn{flex:0 0 auto;}

/* Galerie: das große erste Bild füllt genau zwei Reihen – auch bei
   Hochformat-Fotos keine weißen Lücken mehr */
.gallery > a:first-child picture,
.gallery > a:first-child img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
@media (max-width:620px){.gallery > a:first-child{aspect-ratio:3/2;}}

/* Ortsseiten: Buchungsformular ohne doppelte Ortsangabe */
@media (min-width:900px){
  .datepick.is-fixed .datepick-form{grid-template-columns:repeat(4,minmax(0,1fr));}
  .datepick.is-fixed .datepick-form:has(.dp-loc){grid-template-columns:1.4fr 1.1fr 1.1fr .8fr .8fr;}
}
.datepick.is-fixed{background:var(--paper);border-color:var(--line);box-shadow:var(--shadow-2);}

/* Buchungs-Band auf Ortsseiten: keine großen Lücken davor und danach */
.book-band{padding-block:clamp(.4rem,1vw,.8rem);}
section:has(+ .book-band){padding-bottom:clamp(1.4rem,3vw,2.2rem);}
.book-band + section{padding-top:clamp(1.8rem,4vw,3rem);}
@media (min-width:1000px){.press-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;}}

/* Suchleiste Startseite: Felder mit fester Mindestbreite, Knopf darunter wenn es eng wird */
@media (min-width:1100px){
  .datepick.is-bar .datepick-form{grid-template-columns:minmax(11rem,1.3fr) minmax(9.5rem,1fr) minmax(9.5rem,1fr) minmax(6rem,.7fr) minmax(6rem,.7fr) auto;}
}
@media (min-width:900px) and (max-width:1099px){
  .datepick.is-bar .datepick-form{grid-template-columns:repeat(5,minmax(0,1fr));}
  .datepick.is-bar .datepick-form .dp-loc{grid-column:auto;}
}

/* Startseite: Ortskarten drei pro Zeile; ein einzelner Rest-Ort wird zur breiten Karte */
@media (min-width:1001px){
  .region-strip > *{flex:0 1 calc((100% - 2 * var(--gap)) / 3);}
  .region-strip > .rcard:nth-child(3n+1):last-child{flex:1 1 100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);}
  .region-strip > .rcard:nth-child(3n+1):last-child .rcard-link{display:contents;}
  .region-strip > .rcard:nth-child(3n+1):last-child .rcard-img{grid-row:1 / 3;aspect-ratio:auto;height:100%;border-bottom:0;border-right:1px solid var(--line);}
  .region-strip > .rcard:nth-child(3n+1):last-child .rcard-acts{grid-column:2;}
}
.rcard-acts{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.2rem;}

/* Hunde-Hinweis je Wohnung */
.pet-badge{display:inline-flex;align-items:center;gap:.45rem;margin:0 0 .8rem;padding:.32rem .75rem .32rem .55rem;border-radius:999px;font-size:.86rem;font-weight:600;line-height:1.2}
.pet-badge svg{width:1.25rem;height:1.25rem;flex:none}
.pet-badge.is-ok{background:#e7f4ea;color:#1f6b35}
.pet-badge.is-no{background:#fbe9e7;color:#a12a1c}
.pet-badge .pet-x{stroke-width:2.2}
.pet-badge{align-self:flex-start;width:fit-content;max-width:100%}
/* Genau 6 Bilder: gleichmäßiges Raster ohne Lücke (3×2, Handy 2×3) */
.gallery:has(> a:nth-child(6):last-child){grid-template-columns:repeat(3,minmax(0,1fr));}
.gallery:has(> a:nth-child(6):last-child) > a:first-child{grid-column:auto;grid-row:auto;aspect-ratio:3/2;border-radius:var(--r-sm);}
@media (max-width:620px){.gallery:has(> a:nth-child(6):last-child){grid-template-columns:repeat(2,minmax(0,1fr));}}
/* Tabellen in Rechtstexten (Cookies) auf dem Handy waagrecht scrollbar statt breiter als der Bildschirm */
@media (max-width:620px){
  .legal table,main table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
}

/* Startseite: Orte als große Karten, zwei pro Zeile, mit Eckdaten */
.loc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap);}
.lcard{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1);transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out);}
.lcard:hover{transform:translateY(-4px);}
.lcard-img{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--tint);}
.lcard-img img,.lcard-img picture{width:100%;height:100%;object-fit:cover;display:block;}
.lcard-img img{transition:transform .8s var(--ease-out);}
.lcard:hover .lcard-img img{transform:scale(1.04);}
.lcard-tag{position:absolute;left:1rem;top:1rem;padding:.35rem .75rem;border-radius:999px;background:rgba(255,255,255,.92);color:var(--ink);font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;}
.lcard-body{display:flex;flex-direction:column;flex:1;padding:1.4rem 1.6rem 1.6rem;}
.lcard-body h3{margin:0 0 .3rem;font-size:clamp(1.35rem,2vw,1.65rem);}
.lcard-body h3 a{color:inherit;text-decoration:none;}
.lcard-sub{margin:0 0 1.1rem;color:var(--stone);line-height:1.5;}
.lcard-facts{list-style:none;margin:0 0 1rem;padding:1rem 0 0;border-top:1px solid var(--line-soft);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem .8rem;}
.lcard-facts li{display:flex;align-items:flex-start;gap:.55rem;font-size:.9rem;line-height:1.3;}
.lcard-facts svg{width:1.3rem;height:1.3rem;flex:none;margin-top:.1rem;color:var(--sage);}
.lcard-facts small{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-bottom:.12rem;}
.lcard-facts li.is-yes span{color:var(--sage-deep);font-weight:600;}
.lcard-facts li.is-no{opacity:.6;}
.lcard-hl{margin:0 0 1.2rem;font-size:.92rem;color:var(--stone);}
.lcard-hl::before{content:"★ ";color:var(--sage);}
.lcard-acts{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.2rem;}
.lcard-acts .btn.solid{padding:.75rem 1.35rem;}
.hero-split + section .loc-grid,.datepick + section .loc-grid{margin-top:0;}
@media (max-width:760px){
  .loc-grid{grid-template-columns:1fr;}
  .lcard-facts{grid-template-columns:repeat(2,minmax(0,1fr));}
  .lcard-body{padding:1.2rem 1.2rem 1.4rem;}
}

/* ---------------------------------------------------------------------
   Handy & Tablet – Feinschliff (14.10.2026)
   • kein leerer Bereich unter der Seite beim „Nachfedern“ (iPhone)
   • Datumsfelder passen in den Rahmen und zeigen einen Hinweis
   • Texte nutzen die volle Breite, ruhigerer Zeilenabstand
   • Schaltflächen auf dem Handy mittig und in voller Breite
   --------------------------------------------------------------------- */
html{background:var(--bg-2);overscroll-behavior-y:none;}
body{overscroll-behavior-y:none;}

/* Datumsfelder (iOS Safari/Chrome geben ihnen sonst eine Eigenbreite) */
.datepick-form label{min-width:0;}
.datepick-form input[type="date"]{
  -webkit-appearance:none;appearance:none;display:block;
  min-width:0;max-width:100%;width:100%;
  line-height:1.2;text-align:left;background-color:var(--paper);
}
.datepick-form input[type="date"]::-webkit-date-and-time-value{text-align:left;margin:0;}
.datepick-form input[type="date"]::-webkit-calendar-picker-indicator{opacity:.6;}
.dp-date{position:relative;display:block;}
.dp-date .dp-ph{
  position:absolute;left:.85rem;top:50%;transform:translateY(-50%);
  pointer-events:none;color:var(--stone);font-size:1rem;letter-spacing:0;text-transform:none;
}
.dp-date.has-val .dp-ph{display:none;}

@media (max-width:640px){
  body{line-height:1.62;}
  .lead{line-height:1.58;}
  /* Überschriften füllen die Zeile von links nach rechts (statt „ausbalanciert“ schmal) */
  h1,h2,h3,h4{text-wrap:pretty;}
  .book-band-in h2,.datepick-head h2{max-width:none;}
  .book-band-in > div:first-child{flex:1 1 100%;}
  .book-band-in p,.datepick-head p,.loc-intro{max-width:none !important;}

  /* Schaltflächen im Inhalt: mittig, volle Breite, gut zu treffen */
  main .btn:not(.chip):not(.lb-btn):not(.navcta){
    width:100%;justify-content:center;text-align:center;white-space:normal;
    min-height:3.1rem;
  }
  main .btn.plain{min-height:2.6rem;}
  .book-band-acts,.datepick-acts,.cta-acts,.hero-cta,.offer-acts{width:100%;flex-direction:column;align-items:stretch;}
  .datepick-acts{gap:.6rem;}
  .book-band-acts > .btn,.datepick-acts > .btn,.cta-acts > .btn,.hero-cta > .btn,.offer-acts > .btn{flex:0 0 auto !important;}

  /* Datumsfelder untereinander statt gequetscht nebeneinander */
  .datepick-form{grid-template-columns:repeat(2,minmax(0,1fr));}
  .datepick-form .dp-loc{grid-column:1/-1;}
}
@media (max-width:380px){
  .datepick-form{grid-template-columns:minmax(0,1fr);}
}
/* Leeres Datumsfeld: eigene Beschriftung statt „mm/dd/yyyy“ (Android/Chrome) bzw. leerem Feld (iPhone) */
.dp-date:not(.has-val) input[type="date"]::-webkit-datetime-edit{color:transparent;}
.dp-date:not(.has-val) input[type="date"]:focus::-webkit-datetime-edit{color:inherit;}
.dp-date:focus-within .dp-ph{display:none;}

/* Galerien: zuerst nur eine Auswahl, der Rest per Knopf (Lightbox zeigt immer alle) */
.gallery.is-collapsed > a.gal-more{display:none;}
@media (max-width:620px){ .gallery.is-collapsed > a.gal-more-m{display:none;} }
.gal-toggle-wrap{display:flex;justify-content:center;margin:1.2rem 0 0;}
.gal-toggle{min-width:min(100%,17rem);}

/* „Neu“-Kennzeichen an neuen Unterkünften */
.new-badge{display:inline-block;vertical-align:.15em;margin-left:.35rem;padding:.12rem .55rem;border-radius:999px;background:var(--sage,#4e6a59);color:#fff;font:500 .68rem/1.4 "Jost",system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}

/* ---------------------------------------------------------------------
   Texte nutzen die volle Breite (Wunsch 19.10.2026): Überschriften,
   Einleitungen und Absätze in den Abschnitten laufen bis zum Rand des
   Inhaltsbereichs. Der große Seitenkopf (Hero) bleibt unverändert.
   --------------------------------------------------------------------- */
main section:not(.phero):not(.hero):not(.hero-full):not(.hero-split) .wrap :is(h2,h3,.lead,p),
.loc-intro,.book-band-in p,.stays-note,.press-lead,.press-more,.faq-group .faq > details[open] .a{
  max-width:none !important;
}
main section:not(.phero):not(.hero) .wrap > h2,
main section:not(.phero):not(.hero) .wrap > .reveal:is(h2){text-wrap:wrap;}
/* Buchungsband: Text über die ganze Breite, Knöpfe darunter */
.book-band-in > div:first-child{flex:1 1 100%;}
.book-band-in{align-items:flex-start;}
/* Kein großer Abstand zwischen Übersicht und den einzelnen Wohnungen */
section.close-top{padding-top:clamp(.6rem,1.6vw,1.4rem);}
section:has(+ section.close-top){padding-bottom:clamp(1.4rem,3vw,2.4rem);}
.unit-no{margin-left:.35rem;font-size:.82em;color:var(--stone);letter-spacing:.02em;white-space:nowrap}

/* ---------------------------------------------------------------------
   Pop-up für Sonderangebote (Verwaltung → Pop-up)
   --------------------------------------------------------------------- */
.promo{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:1.2rem;
  background:rgba(20,26,21,.0);backdrop-filter:blur(0);transition:background .35s ease,backdrop-filter .35s ease;}
.promo[hidden]{display:none;}
.promo.on{background:rgba(20,26,21,.48);backdrop-filter:blur(3px);}
.promo-box{position:relative;display:grid;grid-template-columns:minmax(0,42%) 1fr;width:min(780px,100%);max-height:calc(100vh - 2.4rem);
  overflow:hidden;background:var(--paper);border-radius:22px;box-shadow:0 30px 80px -20px rgba(20,26,21,.55);
  opacity:0;transform:translateY(18px) scale(.98);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.8,.2,1);}
.promo.on .promo-box{opacity:1;transform:none;}
.promo-img{position:relative;min-height:100%;background:var(--bg-2);}
.promo-img picture,.promo-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.promo-body{padding:clamp(1.6rem,3.4vw,2.6rem);overflow:auto;display:flex;flex-direction:column;gap:.2rem;}
.promo-badge{align-self:flex-start;margin-bottom:.9rem;padding:.3rem .8rem;border-radius:999px;background:var(--copper);color:#fff;
  font:500 .72rem/1.3 "Jost",system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;}
.promo-body h2{font-size:clamp(1.6rem,3.2vw,2.3rem);margin:0 0 .7rem;max-width:none;text-wrap:balance;}
.promo-text{color:var(--ink-2);margin:0 0 .8rem;}
.promo-note{font:400 .86rem/1.5 "Jost",system-ui,sans-serif;color:var(--stone);margin:0 0 1rem;}
.promo-where{font:500 .78rem/1.4 "Jost",system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--sage,#4E6A59);margin:-.2rem 0 .45rem;}
.promo-dates{display:flex;align-items:center;gap:.5rem;font:500 .95rem/1.4 "Jost",system-ui,sans-serif;color:var(--ink);margin:0 0 .8rem;}
.promo-dates svg{width:18px;height:18px;flex:none;color:var(--copper);}
.promo-acts{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.4rem;}
.promo-acts .btn{flex:1 1 auto;justify-content:center;text-align:center;}
.promo-later{align-self:center;margin-top:.9rem;background:none;border:0;padding:.3rem .6rem;cursor:pointer;
  font:400 .86rem "Jost",system-ui,sans-serif;color:var(--stone);text-decoration:underline;text-underline-offset:3px;}
.promo-x{position:absolute;top:.8rem;right:.8rem;z-index:2;width:2.5rem;height:2.5rem;border-radius:50%;border:0;cursor:pointer;
  display:grid;place-items:center;background:rgba(255,254,250,.92);color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,.12);}
.promo-x svg{width:1.15rem;height:1.15rem;}
.promo-x:focus-visible,.promo-later:focus-visible{outline:2px solid var(--sage);outline-offset:2px;}
@media (max-width:700px){
  .promo{align-items:end;padding:0;}
  .promo-box{grid-template-columns:1fr;border-radius:22px 22px 0 0;max-height:88vh;transform:translateY(40px);}
  .promo-img{min-height:0;height:clamp(150px,30vh,220px);}
  .promo-body{padding:1.3rem 1.2rem calc(1.2rem + env(safe-area-inset-bottom));}
  .promo-acts .btn{flex:1 1 100%;}
}
@media (prefers-reduced-motion:reduce){.promo,.promo-box{transition:none;}}
.promo-box:focus{outline:none;}

/* Urlaubsarten (Verwaltung → Wohnungen) */
.trip-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin:.1rem 0 .9rem;padding:0;list-style:none;}
.trip-tags li,.trip-tags span{display:inline-block;padding:.22rem .6rem;border-radius:999px;background:var(--tint);color:var(--sage-deep);
  font:500 .74rem/1.3 "Jost",system-ui,sans-serif;letter-spacing:.02em;}
.ucard .trip-tags,.res .trip-tags{margin:.6rem 0 0;}
.press-article{max-width:none;}
