/* Schriften lokal eingebunden (keine Verbindung zu Google Fonts) */
@font-face{ font-family:'Fraunces'; font-style:normal; font-weight:900; font-display:swap; src:url('../fonts/fraunces-900.woff2') format('woff2'); }
@font-face{ font-family:'Fraunces'; font-style:italic; font-weight:600 900; font-display:swap; src:url('../fonts/fraunces-700-italic.woff2') format('woff2'); }
/* Ersatzschriften mit angepassten Maßen: verhindern Layout-Sprünge, bis die Webfonts geladen sind */
@font-face{ font-family:'Fraunces Fallback'; font-style:normal; src:local('Times New Roman Bold'), local('TimesNewRomanPS-BoldMT'), local('Times New Roman'); ascent-override:98%; descent-override:26%; line-gap-override:0%; }
@font-face{ font-family:'Fraunces Fallback'; font-style:italic; src:local('Times New Roman Bold Italic'), local('TimesNewRomanPS-BoldItalicMT'), local('Times New Roman Italic'); ascent-override:98%; descent-override:26%; line-gap-override:0%; }
@font-face{ font-family:'Inter Fallback'; src:local('Arial'); size-adjust:107.06%; ascent-override:90.49%; descent-override:22.56%; line-gap-override:0%; }
@font-face{ font-family:'Inter'; font-style:normal; font-weight:400 800; font-display:swap; src:url('../fonts/inter.woff2') format('woff2'); }

  :root{
    --ink:#16130f;
    --paper:#f6f0e4;
    --paper-2:#efe6d3;
    --terracotta:#e2541f;
    --mustard:#f2b705;
    --teal:#204a41;
    --line:#16130f;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter','Inter Fallback',sans-serif;
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  img{display:block; max-width:100%; height:auto;}
  a{color:inherit; text-decoration:none;}
  h1,h2,h3,h4{
    font-family:'Fraunces','Fraunces Fallback',serif;
    font-weight:900;
    line-height:0.95;
    letter-spacing:-0.02em;
  }
  .eyebrow{
    font-family:'Inter','Inter Fallback',sans-serif;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:0.16em;
    font-size:0.75rem;
  }
  .wrap{max-width:1280px; margin:0 auto; padding:0 6vw;}
  svg.icon{width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0;}

  a:focus-visible, button:focus-visible{ outline:3px solid var(--terracotta); outline-offset:3px; }
  .skip-link{
    position:absolute; left:-999px; top:auto;
    background:var(--mustard); color:var(--ink); padding:12px 20px;
    font-weight:700; z-index:999;
  }
  .skip-link:focus{ left:16px; top:16px; }

  /* Nav */
  header.site{
    background:var(--paper); border-bottom:3px solid var(--ink);
    position:sticky; top:0; z-index:100;
  }
  nav.main{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 6vw;
  }
  .wordmark{
    font-family:'Fraunces','Fraunces Fallback',serif; font-weight:900; font-size:1.7rem;
    letter-spacing:-0.02em;
  }
  .wordmark span{ color:var(--terracotta); }
  .nav-links{ display:flex; gap:34px; align-items:center; }
  .nav-links a{
    font-weight:600; font-size:0.92rem; text-transform:uppercase; letter-spacing:0.04em;
    position:relative; padding-bottom:4px;
  }
  .nav-links a::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:2px;
    background:var(--terracotta); transition:width .25s ease;
  }
  .nav-links a:hover::after{ width:100%; }
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--ink); color:var(--paper);
    font-weight:700; text-transform:uppercase; letter-spacing:0.04em; font-size:0.85rem;
    padding:13px 24px; border:2px solid var(--ink);
    box-shadow:5px 5px 0 var(--terracotta);
    transition:transform .18s ease, box-shadow .18s ease;
  }
  .btn:hover{ transform:translate(-3px,-3px); box-shadow:8px 8px 0 var(--terracotta); }
  .btn.light{ background:var(--paper); color:var(--ink); box-shadow:5px 5px 0 var(--mustard); }
  .btn.light:hover{ box-shadow:8px 8px 0 var(--mustard); }
  .nav-cta{ display:none; }
  @media(min-width:860px){ .nav-cta{ display:inline-flex; } }

  /* Hero */
  .hero{
    position:relative; min-height:94vh;
    display:flex; align-items:flex-end;
    background:linear-gradient(180deg, rgba(22,19,15,0.25) 0%, rgba(22,19,15,0.35) 45%, rgba(22,19,15,0.92) 100%),
      none;
  }
  .hero-inner{
    width:100%; padding:0 6vw 60px;
    display:flex; flex-direction:column; gap:28px;
  }
  .hero-eyebrow{ color:var(--mustard); }
  .hero h1{
    color:var(--paper);
    font-size:clamp(2.6rem, 8vw, 6.2rem);
    max-width:14ch;
  }
  .hero h1 em{ font-style:italic; color:var(--terracotta); }
  .hero-row{
    display:flex; flex-wrap:wrap; gap:20px 44px; align-items:flex-end;
    justify-content:space-between;
  }
  .hero-sub{ color:var(--paper-2); max-width:38ch; font-size:1.05rem; }
  .chips{ display:flex; gap:14px; flex-wrap:wrap; }
  .chip{
    background:var(--paper); color:var(--ink);
    border:2px solid var(--ink); padding:10px 16px;
    font-weight:700; font-size:0.85rem;
    display:flex; align-items:center; gap:8px;
    box-shadow:4px 4px 0 var(--mustard);
  }

  /* Intro split */
  .intro{
    position:relative; background:var(--mustard);
    padding:110px 0 130px;
    clip-path:polygon(0 0, 100% 0, 100% 92%, 0 100%);
    margin-top:-6px;
  }
  .intro .wrap{
    display:grid; grid-template-columns:1.05fr 0.95fr; gap:8vw; align-items:center;
  }
  .intro-text .eyebrow{ color:var(--teal); }
  .intro h2{ font-size:clamp(2.1rem, 4.2vw, 3.4rem); margin:14px 0 22px; }
  .intro p{ font-size:1.08rem; max-width:46ch; }
  .intro-figure{ position:relative; }
  .intro-figure img{
    border:4px solid var(--ink);
    box-shadow:16px 16px 0 var(--ink);
    aspect-ratio:4/5; object-fit:cover;
  }
  .intro-badge{
    position:absolute; bottom:-30px; left:-30px;
    background:var(--ink); color:var(--paper);
    width:130px; height:130px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; text-align:center;
    font-family:'Fraunces','Fraunces Fallback',serif; font-weight:900; font-size:0.95rem; line-height:1.15;
    border:3px solid var(--mustard);
  }
  @media(max-width:900px){
    .intro{ padding:90px 0 100px; }
    .intro .wrap{ grid-template-columns:1fr; gap:70px; }
    .intro-figure{ order:-1; max-width:340px; margin:0 auto; }
    .intro-badge{ left:auto; right:-16px; bottom:-24px; width:104px; height:104px; font-size:0.8rem;}
  }

  /* Stat band */
  .stats{
    background:var(--ink); color:var(--paper);
    padding:80px 0;
  }
  .stats .wrap{
    display:grid; grid-template-columns:repeat(4,1fr); gap:40px;
  }
  .stat{ border-left:2px solid rgba(246,240,228,0.25); padding-left:22px; }
  .stat .num{ font-family:'Fraunces','Fraunces Fallback',serif; font-weight:900; font-size:clamp(2.4rem,4vw,3.4rem); color:var(--mustard); line-height:1; }
  .stat .label{ margin-top:10px; font-size:0.88rem; color:var(--paper-2); max-width:20ch; }
  @media(max-width:900px){
    .stats .wrap{ grid-template-columns:repeat(2,1fr); row-gap:44px; }
  }

  /* Zimmer */
  .rooms{ padding:120px 0 100px; }
  .rooms-head{
    display:flex; justify-content:space-between; align-items:flex-end; gap:40px;
    margin-bottom:64px; flex-wrap:wrap;
  }
  .rooms-head .eyebrow{ color:var(--terracotta); }
  .rooms-head h2{ font-size:clamp(2.2rem,4.6vw,3.6rem); margin-top:10px; }
  .rooms-head p{ max-width:36ch; font-size:1.02rem; }
  .room-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:34px;
  }
  .room-card{
    background:var(--paper-2); border:2px solid var(--ink);
    display:flex; flex-direction:column;
    transition:transform .2s ease, box-shadow .2s ease;
    box-shadow:0 0 0 var(--ink);
  }
  .room-card:hover{ transform:translateY(-8px); box-shadow:10px 10px 0 var(--ink); }
  .room-card .ph{ aspect-ratio:5/4; overflow:hidden; border-bottom:2px solid var(--ink); }
  .room-card .ph img{ width:100%; height:100%; object-fit:cover; }
  .room-card .body{ padding:28px 26px 32px; flex:1; display:flex; flex-direction:column; gap:14px; }
  .room-card h3{ font-size:1.4rem; }
  .room-card .swatch{ width:34px; height:10px; border-radius:2px; }
  .room-card ul{ list-style:none; display:flex; flex-direction:column; gap:9px; margin-top:auto; }
  .room-card li{ display:flex; align-items:center; gap:10px; font-size:0.9rem; }
  @media(max-width:980px){ .room-grid{ grid-template-columns:1fr 1fr; } }
  @media(max-width:640px){ .room-grid{ grid-template-columns:1fr; } }

  /* Fullscreen quote */
  .quote-section{
    position:relative; min-height:70vh;
    display:flex; align-items:center; justify-content:center; text-align:center;
    background:linear-gradient(180deg, rgba(22,19,15,0.55), rgba(22,19,15,0.72)),
      none;
    padding:90px 6vw;
  }
  .quote-section .eyebrow{ color:var(--mustard); }
  .quote-section blockquote{
    color:var(--paper); font-family:'Fraunces','Fraunces Fallback',serif; font-style:italic; font-weight:600;
    font-size:clamp(1.6rem, 4vw, 3rem); max-width:20ch; margin:22px auto 0; line-height:1.2;
  }

  /* Gallery */
  .gallery{ padding:120px 0; background:var(--paper); }
  .gallery-head{ margin-bottom:50px; }
  .gallery-head .eyebrow{ color:var(--teal); }
  .gallery-head h2{ font-size:clamp(2.2rem,4.6vw,3.6rem); margin-top:10px; }
  .gallery-grid{
    display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:150px; gap:20px;
  }
  .gallery-grid figure{ overflow:hidden; border:2px solid var(--ink); position:relative; }
  .gallery-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
  .gallery-grid figure:hover img{ transform:scale(1.06); }
  .g1{ grid-column:1/4; grid-row:1/3; }
  .g2{ grid-column:4/7; grid-row:1/2; }
  .g3{ grid-column:4/6; grid-row:2/3; }
  .g4{ grid-column:6/7; grid-row:2/3; background:var(--terracotta); border:none; display:flex; align-items:center; justify-content:center; }
  .g4 span{ font-family:'Fraunces','Fraunces Fallback',serif; font-weight:900; color:var(--paper); font-size:1.5rem; text-align:center; padding:10px; }
  @media(max-width:900px){
    .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:170px; }
    .g1{ grid-column:1/3; grid-row:1/3; }
    .g2{ grid-column:1/2; grid-row:3/4; }
    .g3{ grid-column:2/3; grid-row:3/4; }
    .g4{ grid-column:1/3; grid-row:4/5; }
  }

  /* Location / contact */
  .contact{
    display:grid; grid-template-columns:1fr 1fr;
    border-top:3px solid var(--ink);
  }
  .contact-info{
    background:var(--teal); color:var(--paper);
    padding:100px 6vw; display:flex; flex-direction:column; gap:34px; justify-content:center;
  }
  .contact-info .eyebrow{ color:var(--mustard); }
  .contact-info h2{ font-size:clamp(2.1rem,4vw,3.2rem); color:var(--paper); }
  .contact-list{ display:flex; flex-direction:column; gap:20px; }
  .contact-list a, .contact-list .row{
    display:flex; align-items:flex-start; gap:16px; font-size:1.05rem; font-weight:600;
  }
  .contact-list small{ display:block; font-weight:400; color:rgba(246,240,228,0.75); font-size:0.85rem; margin-top:3px; }
  .contact-photo{
    background:none;
    position:relative; min-height:420px;
  }
  .contact-photo::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(0deg, rgba(22,19,15,0.75), rgba(22,19,15,0));
  }
  .contact-photo .badge{
    position:absolute; left:6vw; bottom:40px; z-index:2;
    color:var(--paper);
  }
  .contact-photo .badge .num{ font-family:'Fraunces','Fraunces Fallback',serif; font-weight:900; font-size:2.6rem; color:var(--mustard); }
  @media(max-width:900px){
    .contact{ grid-template-columns:1fr; }
    .contact-info{ padding:80px 6vw; }
    .contact-photo{ min-height:320px; }
  }

  /* Footer */
  footer{ background:var(--ink); color:var(--paper); padding:80px 0 30px; }
  .footer-top{
    display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap;
    padding-bottom:60px; border-bottom:1px solid rgba(246,240,228,0.2);
  }
  footer .wordmark{ font-size:2.6rem; color:var(--paper); }
  footer .wordmark span{ color:var(--terracotta); }
  .footer-links{ display:flex; gap:60px; flex-wrap:wrap; }
  .footer-col h3{ font-family:'Inter','Inter Fallback',sans-serif; font-weight:700; font-size:0.85rem; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:14px; color:var(--mustard); }
  .footer-col a, .footer-col p{ display:block; font-size:0.92rem; color:var(--paper-2); margin-bottom:8px; }
  .footer-bottom{
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
    padding-top:24px; font-size:0.78rem; color:rgba(246,240,228,0.55);
  }

  @media(max-width:860px){
    nav.main{ padding:16px 6vw; }
    .nav-links{ display:none; }
  }

  /* ===== Inhalte der bisherigen Website ===== */
  .logo img{ height:34px; width:auto; }
  footer .logo img{ height:46px; }
  .hero{
    background:linear-gradient(180deg, rgba(22,19,15,0.20) 0%, rgba(22,19,15,0.35) 45%, rgba(22,19,15,0.92) 100%),
      none;
  }
  .quote-section{
    background:linear-gradient(180deg, rgba(22,19,15,0.55), rgba(22,19,15,0.78)),
      none;
  }
  .quote-section blockquote{ max-width:24ch; }
  .quote-section .q-sub{ color:var(--paper-2); max-width:52ch; margin:26px auto 0; font-size:1.02rem; }
  .quote-section .q-price{
    display:inline-flex; gap:10px; align-items:baseline; margin-top:28px;
    background:var(--mustard); color:var(--ink); border:2px solid var(--ink);
    padding:12px 20px; font-weight:700; box-shadow:5px 5px 0 var(--terracotta);
  }
  .quote-section .q-price b{ font-family:'Fraunces','Fraunces Fallback',serif; font-weight:900; font-size:1.5rem; }
  .contact-photo{ background:none; }
  .intro-figure img{ aspect-ratio:4/5; width:100%; }
  .btn-row{ display:flex; gap:14px; flex-wrap:wrap; }

  /* Zimmer-Kategorien mit Bild-Slider */
  .room-grid{ grid-template-columns:repeat(2,1fr); }
  @media(max-width:760px){ .room-grid{ grid-template-columns:1fr; } }
  .room-card .ph{ position:relative; aspect-ratio:3/2; background:var(--ink); }
  .room-card .ph img{ position:absolute; inset:0; opacity:0; transition:opacity .45s ease; }
  .room-card .ph img.on{ opacity:1; }
  .sl-btn{
    position:absolute; top:50%; transform:translateY(-50%); z-index:3;
    width:44px; height:44px; border:2px solid var(--ink); background:var(--paper);
    color:var(--ink); font-size:1.3rem; font-weight:700; cursor:pointer; line-height:1;
    display:flex; align-items:center; justify-content:center;
  }
  .sl-btn:hover{ background:var(--mustard); }
  .sl-prev{ left:12px; } .sl-next{ right:12px; }
  .sl-cap{
    position:absolute; left:12px; bottom:12px; z-index:3;
    background:var(--ink); color:var(--paper); padding:6px 12px;
    font-size:0.78rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
  }
  .sl-count{
    position:absolute; right:12px; bottom:12px; z-index:3;
    background:var(--paper); border:2px solid var(--ink); padding:4px 10px; font-size:0.78rem; font-weight:700;
  }
  .room-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
  .room-size{
    font-family:'Fraunces','Fraunces Fallback',serif; font-weight:900; font-size:1.05rem; white-space:nowrap;
    border:2px solid var(--ink); padding:4px 12px; background:var(--paper);
  }
  .room-card h3{ font-size:1.7rem; }
  .room-card ul{ display:grid; grid-template-columns:1fr 1fr; gap:10px 18px; padding-top:8px; }
  @media(max-width:520px){ .room-card ul{ grid-template-columns:1fr; } }
  .room-note{ margin-top:44px; font-size:0.95rem; max-width:80ch; border-left:4px solid var(--terracotta); padding-left:18px; }

  /* DIRS21 Buchungsmodul */
  button.btn{ font-family:inherit; cursor:pointer; }
  .booking{ background:var(--paper); border-bottom:3px solid var(--ink); padding:34px 0 38px; position:relative; z-index:5; }
  .booking .wrap{ display:flex; align-items:center; gap:30px 48px; flex-wrap:wrap; }
  .booking-head .eyebrow{ color:var(--terracotta); }
  .booking-head h2{ font-size:clamp(1.5rem,2.4vw,2rem); margin-top:6px; }
  #d21-quickbook{ flex:1; min-width:min(100%,320px); }
  .intro{ margin-top:0; }
  .rooms-cta{ margin-top:48px; }
  .rooms-cta + .room-note{ margin-top:34px; }

  /* Konditionen */
  .terms{ background:var(--paper-2); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); padding:110px 0; }
  .terms .eyebrow{ color:var(--terracotta); }
  .terms h2{ font-size:clamp(2.2rem,4.6vw,3.6rem); margin:10px 0 54px; }
  .terms-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
  .term{ background:var(--paper); border:2px solid var(--ink); padding:28px 24px; box-shadow:6px 6px 0 var(--ink); }
  .term h3{ font-size:1.35rem; margin-bottom:14px; }
  .term .big{ font-family:'Fraunces','Fraunces Fallback',serif; font-weight:900; font-size:2.2rem; color:var(--terracotta); line-height:1; }
  .term p, .term li{ font-size:0.93rem; }
  .term ul{ list-style:none; display:flex; flex-direction:column; gap:10px; }
  .term li{ padding-left:16px; position:relative; }
  .term li::before{ content:""; position:absolute; left:0; top:0.6em; width:7px; height:7px; background:var(--terracotta); }
  .term p + p{ margin-top:8px; }
  @media(max-width:1080px){ .terms-grid{ grid-template-columns:1fr 1fr; } }
  @media(max-width:600px){ .terms-grid{ grid-template-columns:1fr; } .terms{ padding:80px 0; } }

  /* Galerie */
  .gallery-grid{ grid-template-columns:repeat(4,1fr); grid-auto-rows:210px; gap:16px; grid-auto-flow:dense; }
  .gallery-grid figure{ cursor:zoom-in; }
  .gallery-grid .big{ grid-column:span 2; grid-row:span 2; }
  .gallery-grid .wide{ grid-column:span 2; }
  @media(max-width:900px){ .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:160px; gap:12px; } }
  .lightbox{
    position:fixed; inset:0; z-index:1000; background:rgba(22,19,15,0.94);
    display:none; align-items:center; justify-content:center; padding:4vw; cursor:zoom-out;
  }
  .lightbox.open{ display:flex; }
  .lightbox img{ max-width:100%; max-height:100%; border:3px solid var(--paper); }
  .lightbox button{
    position:absolute; top:18px; right:18px; width:46px; height:46px; font-size:1.4rem; cursor:pointer;
    background:var(--mustard); border:2px solid var(--ink); font-weight:700;
  }

  /* Buchungsmodul: Platzhalter bis zur Einwilligung */
  .d21-placeholder{
    flex:1; min-width:min(100%,320px); display:flex; align-items:center; gap:16px 24px; flex-wrap:wrap;
    border:2px dashed var(--ink); padding:16px 20px; background:var(--paper-2);
  }
  .d21-placeholder p{ font-size:0.88rem; max-width:52ch; flex:1; min-width:220px; }
  .d21-placeholder a, .consent a, .form-consent a, .legal a{ text-decoration:underline; text-underline-offset:3px; }
  .d21-loaded .d21-placeholder{ display:none; }
  html:not(.d21-loaded) #d21-quickbook{ display:none; }

  /* Einwilligungs-Hinweis: schmale Leiste am unteren Rand */
  .consent{
    position:fixed; left:0; right:0; bottom:0; z-index:900;
    background:var(--paper); border-top:3px solid var(--ink);
    padding:14px 6vw; display:none; align-items:center; gap:14px 28px; flex-wrap:wrap;
  }
  .consent.open{ display:flex; }
  .consent h2{ font-size:1.1rem; white-space:nowrap; }
  .consent p{ font-size:0.8rem; line-height:1.45; flex:1; min-width:260px; max-width:78ch; }
  .consent .btn-row{ gap:12px; }
  .consent .btn{ padding:10px 16px; font-size:0.76rem; box-shadow:3px 3px 0 var(--terracotta); }
  .consent .btn.light{ box-shadow:3px 3px 0 var(--mustard); }

  /* Anfrageformular */
  .inquiry{ padding:110px 0; background:var(--mustard); border-top:3px solid var(--ink); }
  .inquiry .wrap{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:6vw; align-items:start; }
  .inquiry .eyebrow{ color:var(--teal); }
  .inquiry h2{ font-size:clamp(2.2rem,4.6vw,3.6rem); margin:10px 0 22px; }
  .inquiry-text p{ max-width:40ch; font-size:1.05rem; }
  .form{ background:var(--paper); border:3px solid var(--ink); box-shadow:12px 12px 0 var(--ink); padding:34px 30px; display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; }
  .form .full{ grid-column:1/-1; }
  .form label{ display:block; font-weight:700; font-size:0.78rem; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:6px; }
  .form input[type=text], .form input[type=email], .form input[type=tel], .form textarea{
    width:100%; font:inherit; color:var(--ink); background:#fff; border:2px solid var(--ink); padding:12px 14px; border-radius:0;
  }
  .form textarea{ min-height:150px; resize:vertical; }
  .form input:focus-visible, .form textarea:focus-visible{ outline:3px solid var(--terracotta); outline-offset:2px; }
  .form-consent{ display:flex; gap:12px; align-items:flex-start; font-size:0.86rem; }
  .form-consent input{ width:20px; height:20px; margin-top:2px; flex-shrink:0; accent-color:var(--ink); }
  .form-consent label{ text-transform:none; letter-spacing:0; font-weight:400; font-size:0.86rem; margin:0; }
  .form .hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
  .form-foot{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
  .form-foot small{ font-size:0.78rem; }
  .form-status{ font-weight:700; font-size:0.95rem; padding:12px 16px; border:2px solid var(--ink); display:none; }
  .form-status.ok{ display:block; background:#cfe8d5; }
  .form-status.err{ display:block; background:#f6cdbd; }
  @media(max-width:900px){ .inquiry{ padding:80px 0; } .inquiry .wrap{ grid-template-columns:1fr; gap:40px; } }
  @media(max-width:560px){ .form{ grid-template-columns:1fr; padding:26px 20px; box-shadow:8px 8px 0 var(--ink); } }

  /* Footer: rechtliche Links */
  .footer-bottom a{ color:inherit; text-decoration:underline; text-underline-offset:3px; }
  .footer-bottom .legal-links{ display:flex; gap:22px; flex-wrap:wrap; }
  .link-btn{ background:none; border:0; padding:0; font:inherit; color:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }

  /* Rechtliche Unterseiten */
  .legal{ padding:90px 0 110px; }
  .legal .wrap{ max-width:860px; }
  .legal .eyebrow{ color:var(--terracotta); }
  .legal h1{ font-size:clamp(2.4rem,6vw,4rem); margin:10px 0 40px; }
  .legal h2{ font-size:1.6rem; line-height:1.1; margin:48px 0 14px; }
  .legal h3{ font-family:'Inter','Inter Fallback',sans-serif; font-weight:700; font-size:1rem; letter-spacing:0; line-height:1.4; margin:24px 0 6px; }
  .legal p, .legal li{ font-size:1rem; max-width:72ch; }
  .legal p + p{ margin-top:12px; }
  .legal ul{ margin:10px 0 10px 22px; }
  .legal address{ font-style:normal; border-left:4px solid var(--terracotta); padding-left:18px; }
  .legal .todo{ background:var(--mustard); padding:1px 6px; font-weight:600; }
  .legal .stand{ margin-top:48px; font-size:0.85rem; }

  /* Sprachumschalter */
  .nav-right{ display:flex; align-items:center; gap:22px; }
  .lang{ display:flex; gap:4px; font-weight:700; font-size:0.8rem; letter-spacing:0.06em; }
  .lang a{ padding:5px 9px; border:2px solid transparent; }
  .lang a:hover{ border-color:var(--ink); }
  .lang a.on{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
  .nav-right .btn{ white-space:nowrap; }
  nav.main{ gap:24px; }
  @media(max-width:1400px){ .nav-links{ gap:20px; } .nav-links a{ font-size:0.82rem; } .nav-right{ gap:14px; } }
  @media(max-width:1240px){ .nav-links{ gap:16px; } .nav-links a{ font-size:0.78rem; } .nav-right{ gap:12px; } nav.main{ gap:18px; } }
  @media(max-width:1100px){ .nav-links{ display:none; } }

  /* Kennzahlen: drei Spalten */
  .stats .wrap{ grid-template-columns:repeat(3,1fr); }
  @media(max-width:700px){ .stats .wrap{ grid-template-columns:1fr; row-gap:36px; } }

  /* Flächenbilder als echte <img> (bessere Ladezeit, responsive Größen) */
  .bg-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
  .hero, .quote-section, .contact-photo{ background:var(--ink); overflow:hidden; }
  .hero::before, .quote-section::before{ content:""; position:absolute; inset:0; z-index:1; }
  .hero::before{ background:linear-gradient(180deg, rgba(22,19,15,0.20) 0%, rgba(22,19,15,0.35) 45%, rgba(22,19,15,0.92) 100%); }
  .quote-section::before{ background:linear-gradient(180deg, rgba(22,19,15,0.55), rgba(22,19,15,0.78)); }
  .hero-inner, .quote-section > div{ position:relative; z-index:2; }
  .contact-photo::after{ z-index:1; }
  .intro-figure img{ height:auto; }

  /* Breiten in em statt ch: bleiben gleich, während die Ersatzschrift noch angezeigt wird (kein Layout-Sprung) */
  .hero h1{ max-width:9.3em; }
  .hero-sub{ max-width:23.97em; }
  .consent h2{ min-width:11.7em; }
  :lang(en) .consent h2{ min-width:10.6em; }
  @media(max-width:600px){
    .consent{ padding:14px 16px 16px; gap:8px 12px; }
    .consent h2{ font-size:1.05rem; min-width:0; }
    .consent p{ min-width:100%; font-size:0.78rem; }
    .consent .btn-row{ width:100%; gap:10px; }
    .consent .btn{ flex:1; justify-content:center; padding:10px 8px; font-size:0.72rem; }
  }

  /* wohnbar-Schriftzug im Fließtext und in Überschriften */
  .wm{ display:inline-block; height:0.8em; width:auto; vertical-align:baseline; margin:0 0.06em; }
  /* Zitat im Frühstücksbereich in derselben Schrift wie die Überschriften */
  .quote-section blockquote{ font-style:normal; font-weight:900; letter-spacing:-0.02em; line-height:1.05; }

  /* Spam-Schutz (Google reCAPTCHA, wird erst nach Klick geladen) */
  .captcha{ border:2px dashed var(--ink); background:var(--paper-2); padding:14px 16px; display:flex; align-items:center; gap:12px 20px; flex-wrap:wrap; }
  .captcha p{ font-size:0.82rem; flex:1; min-width:200px; }
  .captcha .btn{ padding:10px 16px; font-size:0.78rem; }
  .captcha.loaded{ border:0; background:none; padding:0; }
  .captcha.loaded p, .captcha.loaded .btn{ display:none; }
  #captcha-widget:empty{ display:none; }
  @media(max-width:400px){ #captcha-widget{ transform:scale(0.86); transform-origin:left top; } }

  /* Lesbarer Kontrast für kleine Überzeilen auf hellem Grund (WCAG AA) */
  :root{ --terracotta-text:#ad380c; }
  .rooms-head .eyebrow, .booking-head .eyebrow, .terms .eyebrow, .legal .eyebrow, .faq .eyebrow{ color:var(--terracotta-text); }

  /* Mobile Navigation */
  .nav-toggle{ display:none; width:46px; height:46px; border:2px solid var(--ink); background:var(--paper); flex-direction:column; justify-content:center; align-items:center; gap:5px; cursor:pointer; padding:0; }
  .nav-toggle span{ display:block; width:22px; height:2px; background:var(--ink); transition:transform .2s ease, opacity .2s ease; }
  .nav-open .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-open .nav-toggle span:nth-child(2){ opacity:0; }
  .nav-open .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .nav-book{ display:none; }
  @media(max-width:1100px){
    .nav-toggle{ display:flex; }
    header.site .nav-links{
      display:none; position:absolute; left:0; right:0; top:100%; z-index:99;
      background:var(--paper); border-bottom:3px solid var(--ink); border-top:1px solid rgba(22,19,15,0.15);
      flex-direction:column; align-items:stretch; gap:0; padding:6px 6vw 18px;
      max-height:calc(100vh - 80px); overflow-y:auto;
    }
    header.site.nav-open .nav-links{ display:flex; }
    header.site .nav-links a{ font-size:1rem; padding:15px 0; border-bottom:1px solid rgba(22,19,15,0.15); }
    header.site .nav-links a::after{ display:none; }
    header.site .nav-links .nav-book{ display:block; border-bottom:0; color:var(--terracotta-text); font-weight:800; }
    .lang a{ padding:11px 12px; }
  }

  /* Häufige Fragen */
  .faq{ padding:110px 0; background:var(--paper); border-top:3px solid var(--ink); }
  .faq .wrap{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:6vw; align-items:start; }
  .faq h2{ font-size:clamp(2.2rem,4.6vw,3.6rem); margin-top:10px; }
  .faq-list{ border-top:2px solid var(--ink); }
  .faq-item{ border-bottom:2px solid var(--ink); }
  .faq-item summary{
    list-style:none; cursor:pointer; padding:20px 44px 20px 0; position:relative;
    font-family:'Fraunces','Fraunces Fallback',serif; font-weight:900; font-size:1.2rem; line-height:1.2; letter-spacing:-0.01em;
  }
  .faq-item summary::-webkit-details-marker{ display:none; }
  .faq-item summary::after{ content:"+"; position:absolute; right:4px; top:50%; transform:translateY(-50%); font-family:'Inter','Inter Fallback',sans-serif; font-weight:400; font-size:1.8rem; line-height:1; color:var(--terracotta-text); }
  .faq-item[open] summary::after{ content:"–"; }
  .faq-item summary:focus-visible{ outline:3px solid var(--terracotta); outline-offset:3px; }
  .faq-item p{ padding:0 44px 22px 0; max-width:62ch; }
  @media(max-width:900px){ .faq{ padding:80px 0; } .faq .wrap{ grid-template-columns:1fr; gap:34px; } }
