/* cormorant-garamond-300 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  src: url('../fonts/cormorant-garamond-v21-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* cormorant-garamond-300italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  src: url('../fonts/cormorant-garamond-v21-latin-300italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* cormorant-garamond-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/cormorant-garamond-v21-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* cormorant-garamond-italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  src: url('../fonts/cormorant-garamond-v21-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* cormorant-garamond-500 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/cormorant-garamond-v21-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* cormorant-garamond-500italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  src: url('../fonts/cormorant-garamond-v21-latin-500italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* cormorant-garamond-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/cormorant-garamond-v21-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* cormorant-garamond-600italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  src: url('../fonts/cormorant-garamond-v21-latin-600italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* cormorant-garamond-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/cormorant-garamond-v21-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* cormorant-garamond-700italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 700;
  src: url('../fonts/cormorant-garamond-v21-latin-700italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* outfit-200 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 200;
  src: url('../fonts/outfit-v15-latin-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* outfit-300 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 300;
  src: url('../fonts/outfit-v15-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* outfit-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/outfit-v15-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* outfit-500 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/outfit-v15-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* outfit-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/outfit-v15-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

:root{
  --white:#ffffff;--off-white:#fafaf8;--cream:#f5f3ef;--warm-gray:#8a8279;
  --charcoal:#2a2622;--gold:#b0923e;--gold-light:#c4a45a;
  --text:#2a2622;--text-light:#3e3a34;
  --footer-bg:#f0ece6;--footer-text:#3e3a34;--footer-light:#56504a;
  --content-max:920px;--wide-max:1200px;
  --section-gap:clamp(120px,16vw,220px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;font-size:16px;overflow-x:hidden}
body{font-family:'Outfit',sans-serif;font-weight:300;color:var(--text);background:var(--white);overflow-x:hidden}

.hero{position:relative;height:100vh;display:flex;align-items:center;justify-content:center;background:var(--white);z-index:10}
.hero-logo{width:clamp(280px,40vw,520px);opacity:0;animation:fadeInLogo 2s ease-out .5s forwards}
.hero-subtitle{position:absolute;bottom:19vh;margin:0;font-family:'Cormorant Garamond',serif;font-size:clamp(.75rem,1.2vw,1rem);font-weight:300;letter-spacing:.35em;text-transform:uppercase;color:#6b6359;opacity:0;animation:fadeInUp 1.5s ease-out 1.5s forwards}
.hero-phone{position:absolute;bottom:14vh;font-family:'Outfit',sans-serif;font-size:clamp(.7rem,1vw,.85rem);font-weight:300;letter-spacing:.2em;color:#6b6359;text-decoration:none;transition:color .3s;opacity:0;animation:fadeInUp 1.5s ease-out 1.8s forwards}
.hero-phone:hover{color:var(--charcoal)}
.hero-scroll{position:absolute;bottom:5vh;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;animation:fadeInUp 1s ease-out 2.5s forwards;cursor:pointer}
.hero-scroll span{font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:#6b6359}
.hero-scroll-line{width:1px;height:40px;background:var(--warm-gray);position:relative;overflow:hidden}
.hero-scroll-line::after{content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--charcoal);animation:scrollLine 2s ease-in-out infinite}

.slider-section{position:relative;height:100vh;overflow:hidden}
.slider-mobile{display:none}
.fs-slider{position:relative;width:100%;height:100%}
.fs-slide{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity 1.2s ease-in-out}
.fs-slide.active{opacity:1}
.fs-slide img{width:100%;height:100%;object-fit:cover}
.fs-slide-overlay{position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(to top,rgba(0,0,0,.45),transparent)}
.fs-slide-quote{position:absolute;bottom:12vh;left:8vw;right:8vw;color:white;font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,4rem);font-weight:300;font-style:normal;line-height:1.2;letter-spacing:.03em;max-width:1000px}
.fs-dots{position:absolute;bottom:4vh;left:50%;transform:translateX(-50%);display:flex;gap:12px;z-index:5}
.fs-dot{width:8px;height:8px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:transparent;cursor:pointer;transition:all .3s}
.fs-dot.active{background:white;transform:scale(1.2)}

.burger{position:fixed;top:32px;right:32px;z-index:1000;width:44px;height:44px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;mix-blend-mode:difference; background-color: #111;}
.burger span{display:block;width:28px;height:1px;background:white;transition:all .4s cubic-bezier(.23,1,.32,1)}
.burger.open span:nth-child(1){transform:rotate(45deg) translate(3px,3px)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

.nav-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--charcoal);z-index:999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .6s ease}
.nav-overlay.open{opacity:1;pointer-events:all}
.nav-inner{display:flex;gap:clamp(60px,10vw,140px);align-items:flex-start}
.nav-main{list-style:none}
.nav-main li{overflow:hidden}
.nav-main a,.nav-home{display:block;font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,5vw,4rem);font-weight:300;color:var(--off-white);text-decoration:none;padding:.3em 0;transform:translateY(100%);transition:transform .6s cubic-bezier(.23,1,.32,1),color .3s;letter-spacing:.05em}
.nav-overlay.open .nav-main a,.nav-overlay.open .nav-home{transform:translateY(0)}
.nav-main li:nth-child(1) a{transition-delay:.1s}
.nav-main li:nth-child(2) a{transition-delay:.15s}
.nav-main li:nth-child(3) a{transition-delay:.2s}
.nav-main li:nth-child(4) a{transition-delay:.25s}
.nav-main li:nth-child(5) a{transition-delay:.3s}
.nav-main li:nth-child(6) a{transition-delay:.35s}
.nav-main li:nth-child(7) a{transition-delay:.4s}
.nav-home{transition-delay:.05s}
.nav-main a:hover,.nav-home:hover{color:var(--gold-light)}
.nav-lang{display:flex;flex-direction:column;gap:12px;padding-top:1.2em}
.nav-lang a{font-family:'Outfit',sans-serif;font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.4);text-decoration:none;opacity:0;transform:translateY(100%);transition:transform .6s cubic-bezier(.23,1,.32,1),color .3s,opacity .6s}
.nav-overlay.open .nav-lang a{transform:translateY(0);opacity:1}
.nav-lang a:nth-child(1){transition-delay:.35s}
.nav-lang a:nth-child(2){transition-delay:.4s}
.nav-lang a:nth-child(3){transition-delay:.45s}
.nav-lang a.active{color:rgba(255,255,255,.8)}
.nav-lang a:hover{color:var(--gold-light)}
.nav-phone{position:absolute;bottom:clamp(40px,6vh,70px);left:50%;transform:translateX(-50%) translateY(20px);font-family:'Outfit',sans-serif;font-size:.8rem;letter-spacing:.15em;color:rgba(255,255,255,.4);text-decoration:none;opacity:0;transition:transform .6s cubic-bezier(.23,1,.32,1),color .3s,opacity .6s}
.nav-overlay.open .nav-phone{transform:translateX(-50%) translateY(0);opacity:1;transition-delay:.5s}
.nav-phone:hover{color:var(--gold-light)}
.nav-press{display:block;margin-top:1.5rem;font-family:'Outfit',sans-serif;font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.4);text-decoration:none;opacity:0;transform:translateY(100%);transition:transform .6s cubic-bezier(.23,1,.32,1),color .3s,opacity .6s}
.nav-overlay.open .nav-press{transform:translateY(0);opacity:1;transition-delay:.5s}
.nav-press:hover{color:var(--gold-light)}

.ed-section-label{font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--warm-gray);margin-bottom:.8rem}
.ed-headline{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,4vw,3rem);font-weight:400;line-height:1.25;color:var(--charcoal);margin-bottom:1.5rem}
.ed-body{font-family:'Outfit',sans-serif;font-weight:300;font-size:clamp(1rem,1.2vw,1.1rem);line-height:1.9;color:var(--text-light);max-width:560px}
.ed-link{display:inline-block;margin-top:1.2rem;font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--charcoal);text-decoration:none;padding-bottom:2px;border-bottom:1px solid var(--gold);transition:color .3s}
.ed-link:hover{color:var(--gold)}

.ed-text-image{max-width:var(--content-max);margin:0 auto;padding:var(--section-gap) clamp(24px,5vw,40px) 0;display:grid;grid-template-columns:1fr 0.85fr;gap:clamp(30px,5vw,80px);align-items:start}
.ed-text-image.reverse{grid-template-columns:0.85fr 1fr}
.ed-text-image.reverse .ed-ti-text{order:2}
.ed-text-image.reverse .ed-ti-img{order:1}
.ed-ti-img{overflow:hidden}
.ed-ti-img img{width:100%;height:auto;display:block;transition:transform .6s ease}
.ed-ti-img:hover img{transform:scale(1.02)}

.ed-section{max-width:var(--content-max);margin:0 auto;padding:var(--section-gap) clamp(24px,5vw,40px) 0}
.ed-full{max-width:var(--wide-max);margin:0 auto;padding:clamp(40px,6vw,80px) clamp(24px,5vw,40px)}
.ed-full img{width:100%;height:auto;display:block}
.ed-double{max-width:var(--wide-max);margin:0 auto;padding:clamp(30px,4vw,60px) clamp(24px,5vw,40px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,2vw,24px);align-items:end}
.ed-double img{width:100%;height:auto;display:block}
.ed-double .offset-up{margin-top:-8vw}

.ed-quote{max-width:var(--content-max);margin:0 auto;padding:clamp(80px,10vw,140px) clamp(24px,5vw,40px);text-align:center}
.ed-quote blockquote{font-family:'Cormorant Garamond',serif;font-size:clamp(1.5rem,3vw,2.4rem);font-weight:300;font-style:italic;line-height:1.6;color:var(--text)}
.ed-quote cite{display:block;margin-top:1.2rem;font-family:'Outfit',sans-serif;font-style:normal;font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:var(--warm-gray)}

.ed-gold{max-width:var(--content-max);margin:0 auto;padding:0 clamp(24px,5vw,40px);height:1px;background:linear-gradient(to right,transparent,var(--gold-light),transparent)}

/* Horizontale Linie im Ed-Gold-Stil (für <hr />, z.B. im phpwcms-Content) */
hr{display:block;max-width:var(--content-max);margin:clamp(30px,4vw,50px) auto;padding:0 clamp(24px,5vw,40px);height:1px;border:0;background:linear-gradient(to right,transparent,var(--gold-light),transparent)}

.parallax-section{position:relative;height:70vh;overflow:hidden;-webkit-clip-path:inset(0);clip-path:inset(0)}
.parallax-img{position:fixed;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.after-parallax{position:relative;z-index:1;background:var(--white)}

.ed-michelin{max-width:var(--content-max);margin:0 auto;padding:clamp(60px,8vw,100px) clamp(24px,5vw,40px);display:flex;flex-direction:column;align-items:center;text-align:center}
.ed-michelin-stars{display:flex;gap:8px;margin-bottom:1rem}
.ed-michelin-stars svg{width:24px;height:24px;fill:var(--gold)}
.ed-michelin-title{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:300;letter-spacing:.15em;color:var(--charcoal);margin-bottom:.3rem}
.ed-michelin-sub{font-size:.65rem;letter-spacing:.4em;text-transform:uppercase;color:var(--warm-gray)}

.cta-btn{display:inline-block;font-family:'Outfit',sans-serif;font-size:.7rem;letter-spacing:.35em;text-transform:uppercase;text-decoration:none;color:var(--charcoal);border:1px solid var(--charcoal);padding:16px 48px;transition:all .3s;background:transparent}
.cta-btn:hover{background:var(--charcoal);color:white}

/* Footer */
.site-footer{background:var(--footer-bg);color:var(--footer-text);padding:0}

/* Footer Michelin banner */
.footer-michelin-banner{text-align:center;padding:clamp(50px,7vw,80px) clamp(24px,5vw,40px) clamp(30px,4vw,50px)}
.footer-michelin-banner img{width:clamp(100px,14vw,160px);margin-bottom:.5rem}

/* Footer main area - new 3-column layout */
.footer-three-col{max-width:var(--wide-max);margin:0 auto;padding:clamp(50px,7vw,80px) clamp(24px,8vw,120px) clamp(50px,6vw,70px);display:grid;grid-template-columns:1fr 1.6fr 1fr;gap:clamp(30px,5vw,60px);align-items:start}

/* Footer left column: Restaurant + Erleben */
.footer-col-left{display:flex;flex-direction:column;gap:6px}
.footer-col-left h4{font-family:'Cormorant Garamond',serif;font-size:1.05rem;font-weight:400;letter-spacing:.1em;margin-bottom:.8rem;color:var(--charcoal)}
.footer-col-left h4:nth-of-type(2){margin-top:1.5rem}
.footer-col-left a{display:block;color:var(--footer-light);text-decoration:none;font-size:.9rem;padding:.3em 0;transition:color .3s}
.footer-col-left a:hover{color:var(--charcoal)}

/* Footer center column: Logo + Address */
.footer-col-center{text-align:center;display:flex;flex-direction:column;align-items:center;gap:clamp(12px,2vw,20px)}
.footer-logo{width:clamp(160px,22vw,240px);opacity:.7;margin-bottom:.5rem}
.footer-address{font-size:.9rem;line-height:1.9;color:var(--footer-text)}
.footer-address a{color:var(--footer-text);text-decoration:none;border-bottom:1px solid var(--gold);transition:color .3s}
.footer-address a:hover{color:var(--charcoal)}

/* Footer right column: Hours + Aperitif + Social */
.footer-col-right{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.footer-hours{font-size:.9rem;line-height:1.8;color:var(--footer-text)}
.footer-social{display:flex;gap:16px;margin-top:1rem}
.footer-social a{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--warm-gray);border-radius:50%;color:var(--footer-light);text-decoration:none;font-size:.75rem;transition:all .3s}
.footer-social a:hover{border-color:var(--gold);color:var(--gold)}

/* Footer bottom */
.footer-divider{max-width:var(--wide-max);margin:0 auto;height:1px;background:linear-gradient(to right,transparent,var(--warm-gray),transparent);opacity:.4}
.footer-bottom{max-width:var(--wide-max);margin:0 auto;display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--footer-light);padding:24px clamp(24px,8vw,120px) 32px}
.footer-bottom a{color:var(--footer-light);text-decoration:none;margin-left:2em;transition:color .3s}
.footer-bottom a:hover{color:var(--charcoal)}

@keyframes fadeInLogo{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes scrollLine{0%{top:-100%}50%{top:100%}100%{top:100%}}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* News grid */
.news-grid{max-width:var(--wide-max);margin:0 auto;padding:0 clamp(24px,5vw,40px) clamp(40px,5vw,60px);display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,24px)}
.news-card{background:var(--off-white);padding:clamp(28px,3vw,40px);transition:transform .3s ease}
.news-card:hover{transform:translateY(-3px)}
.news-card-label{font-size:.55rem;letter-spacing:.35em;text-transform:uppercase;color:var(--gold);margin-bottom:.6rem}
.news-card h3{font-family:'Cormorant Garamond',serif;font-size:clamp(1.15rem,1.8vw,1.4rem);font-weight:400;color:var(--charcoal);margin-bottom:.6rem;line-height:1.3}
.news-card p{font-family:'Outfit',sans-serif;font-weight:300;font-size:.9rem;line-height:1.75;color:var(--text-light)}
.news-card .ed-link{margin-top:.8rem;font-size:.65rem}

@media(max-width:768px){
  .news-grid{grid-template-columns:1fr}
}

/* Flyout tabs (vertical, right edge) */
.flyout-wrap{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:95;display:flex;flex-direction:column;gap:6px}
.flyout-tab{display:block;background:var(--gold);color:var(--white);text-decoration:none;padding:14px 8px;border-radius:6px 0 0 6px;writing-mode:vertical-rl;text-orientation:mixed;font-family:'Outfit',sans-serif;font-weight:300;font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;transition:background .3s,padding .3s}
.flyout-tab:hover{background:var(--charcoal);padding:14px 12px}

@media(max-width:768px){
  .flyout-wrap{top:auto;bottom:0;right:0;left:0;transform:none;flex-direction:row;gap:0;border-radius:0;width:100%;max-width:100vw;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .4s ease,transform .4s ease;transform:translateY(100%)}
  .flyout-wrap.visible{opacity:1;pointer-events:all;transform:translateY(0)}
  .flyout-tab{writing-mode:horizontal-tb;text-orientation:initial;border-radius:0;flex:1 1 0;min-width:0;text-align:center;padding:14px 10px;font-size:.65rem;letter-spacing:.15em;box-sizing:border-box}
  .flyout-tab:hover{padding:14px 10px;background:var(--charcoal)}
  .flyout-phone{border-right:1px solid rgba(255,255,255,.2)}
  .fs-dots{bottom:6vh}
  .fs-slide-quote{bottom:16vh}
  .hero-scroll{bottom:10vh}
  .hero-subtitle{bottom:24vh}
  .hero-phone{bottom:19vh}
}

/* Back to top */
.to-top{position:fixed;bottom:32px;right:32px;width:44px;height:44px;border:1px solid var(--warm-gray);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:var(--warm-gray);background:var(--white);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s,color .3s,border-color .3s;z-index:90}
.to-top.visible{opacity:1;pointer-events:all}
.to-top:hover{color:var(--charcoal);border-color:var(--gold)}
@media(max-width:768px){
  .to-top{bottom:70px;right:16px;width:38px;height:38px;font-size:.9rem}
}

@media(max-width:768px){
  .slider-desktop{display:none}
  .slider-mobile{display:block}
  .hero-subtitle{left:0;right:0;text-align:center;padding:0 20px}
  .ed-text-image,.ed-text-image.reverse{grid-template-columns:1fr;gap:30px}
  .ed-text-image.reverse .ed-ti-text{order:1}
  .ed-text-image.reverse .ed-ti-img{order:2}
  .ed-double{grid-template-columns:1fr}
  .ed-double .offset-up{margin-top:0}
  .nav-inner{flex-direction:column;gap:40px;align-items:center}
  .nav-lang{flex-direction:row;gap:24px}
  .footer-three-col{grid-template-columns:1fr;text-align:center;gap:40px}
  .footer-col-left{align-items:center}
  .footer-col-right{align-items:center}
}
@media(max-width:600px){.burger{top:20px;right:20px}}

/* ============================================
   SUBPAGE STYLES
   ============================================ */

/* Subpage Header with logo top-left */
.subpage-header{position:absolute;top:0;left:0;width:100%;z-index:50;padding:clamp(20px,4vw,40px) clamp(24px,5vw,40px);display:flex;align-items:center}
.subpage-header .header-logo{width:clamp(140px,18vw,220px);opacity:.9;transition:opacity .3s}
.subpage-header .header-logo:hover{opacity:1}

/* Subpage Hero Banner */
.subpage-hero{position:relative;height:100vh;min-height:400px;overflow:hidden;display:flex;align-items:flex-end;justify-content:flex-start}
.subpage-hero img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.subpage-hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to top,rgba(0,0,0,.5) 0%,rgba(0,0,0,.15) 50%,rgba(0,0,0,.25) 100%)}
.subpage-hero-content{position:relative;z-index:2;padding:0 clamp(64px,5vw,40px) clamp(140px,6vh,80px);max-width:var(--wide-max);width:100%}
.subpage-hero-label{font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:.6rem}
.subpage-hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,4rem);font-weight:300;color:white;line-height:1.2;letter-spacing:.03em}

/* Subpage Content */
.subpage-content{max-width:var(--content-max);margin:0 auto;padding:clamp(60px,8vw,100px) clamp(24px,5vw,40px)}
.subpage-content p{font-family:'Outfit',sans-serif;font-weight:300;font-size:clamp(1rem,1.2vw,1.1rem);line-height:1.9;color:var(--text-light);margin-bottom:1.5rem}
.subpage-content h2{font-family:'Cormorant Garamond',serif;font-size:clamp(1.6rem,3.5vw,2.6rem);font-weight:400;line-height:1.25;color:var(--charcoal);margin-bottom:1.2rem;margin-top:clamp(40px,6vw,80px)}
.subpage-content h2:first-child{margin-top:0}
.subpage-content h3{font-family:'Cormorant Garamond',serif;font-size:clamp(1.2rem,2vw,1.6rem);font-weight:400;color:var(--charcoal);margin-bottom:.8rem;margin-top:2rem}

/* Room Cards (Hotel) */
.room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(24px,3vw,40px);max-width:var(--wide-max);margin:0 auto;padding:0 clamp(24px,5vw,40px) clamp(60px,8vw,100px)}
.room-card{background:var(--off-white);overflow:hidden;transition:transform .3s ease}
.room-card:hover{transform:translateY(-4px)}
.room-card img{width:100%;height:220px;object-fit:cover;display:block}
.room-card-body{padding:clamp(20px,2.5vw,32px)}
.room-card-label{font-size:.55rem;letter-spacing:.35em;text-transform:uppercase;color:var(--warm-gray);margin-bottom:.4rem}
.room-card h3{font-family:'Cormorant Garamond',serif;font-size:clamp(1.2rem,2vw,1.6rem);font-weight:400;color:var(--charcoal);margin-bottom:.6rem}
.room-card p{font-family:'Outfit',sans-serif;font-weight:300;font-size:.95rem;line-height:1.75;color:var(--text-light)}
.room-card-price{display:block;margin-top:1rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}

/* Room price list */
.room-price-list{max-width:600px;margin:0 auto;padding:clamp(30px,4vw,50px) clamp(24px,5vw,40px) clamp(40px,5vw,60px);text-align:center}
.room-price-item{padding:clamp(16px,2vw,24px) 0;border-bottom:1px solid var(--cream)}
.room-price-item:first-child{border-top:1px solid var(--cream)}
.room-price-item h3{font-family:'Cormorant Garamond',serif;font-size:clamp(1.15rem,1.8vw,1.4rem);font-weight:400;color:var(--charcoal);margin-bottom:.3rem}
.room-price-detail{font-family:'Outfit',sans-serif;font-weight:300;font-size:clamp(.9rem,1.1vw,1rem);color:var(--text-light)}
.room-price-notes{margin-top:clamp(20px,3vw,32px);text-align:center}
.room-price-notes p{font-family:'Outfit',sans-serif;font-weight:300;font-size:.9rem;line-height:1.7;color:var(--text-light);margin-bottom:.3rem}

/* Reservation Form */
.form-section{max-width:var(--content-max);margin:0 auto;padding:0 clamp(24px,5vw,40px) clamp(60px,8vw,100px)}
.form-reservation-form{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form-reservation-form .full-width{grid-column:1/-1}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label{font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:var(--warm-gray);font-family:'Outfit',sans-serif;font-weight:300}
.form-group input,.form-group select,.form-group textarea{font-family:'Outfit',sans-serif;font-weight:300;font-size:.95rem;color:var(--text);padding:14px 16px;border:1px solid var(--cream);background:var(--off-white);outline:none;transition:border-color .3s,background-color .3s;-webkit-appearance:none;appearance:none;border-radius:0}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gold)}

/* Fehlerzustand für phpwcms-Formularfelder (Klasse .error wird serverseitig bei ungültiger Eingabe gesetzt) */
.form-group input.error,.form-group select.error,.form-group textarea.error,
.form-group-check input.error + label,
input.error,select.error,textarea.error{border-color:#b94a48 !important;background-color:rgba(185,74,72,.06) !important;color:#b94a48}
.form-group input.error:focus,.form-group select.error:focus,.form-group textarea.error:focus,
input.error:focus,select.error:focus,textarea.error:focus{border-color:#b94a48 !important;box-shadow:0 0 0 2px rgba(185,74,72,.12)}
.form-group input.error::placeholder,.form-group textarea.error::placeholder,
input.error::placeholder,textarea.error::placeholder{color:rgba(185,74,72,.55)}

/* Spamschutz-Rechenaufgabe – prägnant hervorgehoben */
.mathspam{display:inline-flex;align-items:center;gap:.9rem;margin-top:.7rem;padding:.7rem 1.2rem;background:var(--cream);border-left:3px solid var(--gold);font-family:'Outfit',sans-serif;font-size:.85rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--charcoal)}

.mathspam .calc{display:inline-block;font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:600;letter-spacing:.05em;text-transform:none;color:var(--charcoal)}
.form-group textarea{resize:vertical;min-height:120px}
.form-group select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%23b8b0a4' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
.form-submit{grid-column:1/-1;text-align:center;margin-top:1rem}
.form-submit .cta-btn{cursor:pointer;font-family:'Outfit',sans-serif}
.form-note{grid-column:1/-1;font-size:.8rem;color:var(--text-light);line-height:1.6;text-align:center}

/* Legal pages (Impressum, Datenschutz) */
.legal-content{max-width:var(--content-max);margin:0 auto;padding:clamp(60px,8vw,100px) clamp(24px,5vw,40px)}
.legal-content h2{font-family:'Cormorant Garamond',serif;font-size:clamp(1.4rem,2.5vw,2rem);font-weight:400;color:var(--charcoal);margin:2.5rem 0 1rem}
.legal-content h2:first-child{margin-top:0}
.legal-content h3{font-family:'Outfit',sans-serif;font-size:1rem;font-weight:400;color:var(--charcoal);margin:1.5rem 0 .5rem}
.legal-content p,.legal-content li{font-family:'Outfit',sans-serif;font-weight:300;font-size:1rem;line-height:1.9;color:var(--text-light);margin-bottom:.8rem}
.legal-content ul{padding-left:1.5rem;margin-bottom:1rem}
.legal-placeholder{background:var(--cream);border-left:3px solid var(--gold);padding:clamp(24px,3vw,40px);margin:2rem 0;font-family:'Outfit',sans-serif;font-weight:300;color:var(--text-light);font-size:.9rem;line-height:1.7}

/* Contact info block */
.contact-info{max-width:var(--content-max);margin:0 auto;padding:0 clamp(24px,5vw,40px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,60px);margin-bottom:clamp(60px,8vw,100px)}
.contact-info-block h3{font-family:'Cormorant Garamond',serif;font-size:clamp(1.2rem,2vw,1.5rem);font-weight:400;color:var(--charcoal);margin-bottom:.8rem}
.contact-info-block p{font-family:'Outfit',sans-serif;font-weight:300;font-size:.9rem;line-height:1.85;color:var(--text-light)}
.contact-info-block a{color:var(--text-light);text-decoration:none;border-bottom:1px solid var(--gold);transition:color .3s}
.contact-info-block a:hover{color:var(--charcoal)}

/* Map placeholder */
.map-section{width:100%;background:var(--cream);line-height:0;overflow:hidden}
.map-section iframe{display:block;width:100%;height:clamp(320px,50vw,480px);border:0;filter:grayscale(20%) contrast(.95);transition:filter .4s}
.map-section iframe:hover{filter:grayscale(0%) contrast(1)}

/* Press list */
.press-list{display:flex;flex-direction:column}
.press-item{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--cream);text-decoration:none;color:var(--text-light);font-family:'Outfit',sans-serif;font-weight:300;font-size:1rem;line-height:1.6;transition:color .3s}
.press-item:first-child{border-top:1px solid var(--cream)}
.press-item:hover{color:var(--charcoal)}
.press-item-icon{font-size:1.1rem;color:var(--gold);flex-shrink:0;width:20px;text-align:center}
.press-item-text{flex:1}

/* Footer opening hours */
.footer-hours{font-size:.85rem;line-height:1.8;color:var(--footer-light);margin-top:1rem}
.footer-aperitif{font-family:'Cormorant Garamond',serif;font-size:.9rem;font-style:italic;line-height:1.7;color:var(--footer-light);margin-top:.8rem;max-width:300px}

/* Form section heading */
.form-section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(1.2rem,2vw,1.5rem);font-weight:400;color:var(--charcoal);margin-bottom:1.2rem;padding-bottom:.6rem;border-bottom:1px solid var(--cream)}

/* Form checkbox */
.form-group-check{display:flex;align-items:flex-start;gap:10px;grid-column:1/-1}
.form-group-check input[type="checkbox"]{width:18px;height:18px;margin-top:2px;accent-color:var(--gold);flex-shrink:0}
.form-group-check label{font-size:.8rem;color:var(--text-light);letter-spacing:normal;text-transform:none;line-height:1.5}

/* Inline Checkbox-Gruppe (Reservierungswunsch Tisch / Zimmer) */
.form-check-row{display:flex;flex-wrap:wrap;gap:2.5rem;grid-column:1/-1;margin-top:.2rem;padding:.6rem .8rem;border:1px solid transparent;transition:border-color .3s,background .3s}
.form-check-row.has-error{border-color:#b94a48;background:rgba(185,74,72,.05)}
.form-check-row .form-check-item{display:flex;align-items:center;gap:10px}
.form-check-row input[type="checkbox"]{width:18px;height:18px;accent-color:var(--gold);flex-shrink:0}
.form-check-row label{font-family:'Outfit',sans-serif;font-size:.95rem;font-weight:300;color:var(--charcoal);letter-spacing:normal;text-transform:none;cursor:pointer}
.form-check-error{grid-column:1/-1;display:none;font-family:'Outfit',sans-serif;font-size:.8rem;color:#b94a48;margin-top:.4rem}
.form-check-error.visible{display:block}

/* Erfolgs- und Fehlermeldung (Reservierungsformular – wird von phpwcms ausgegeben) */
.form-message{display:flex;max-width:var(--content-max);margin:0 auto clamp(30px,4vw,50px);padding:clamp(20px,2.5vw,32px) clamp(24px,3vw,40px);align-items:flex-start;gap:clamp(16px,2vw,24px);border-left:3px solid var(--gold);background:var(--cream)}
.form-message-icon{flex-shrink:0;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Outfit',sans-serif;font-size:1.3rem;font-weight:300;color:#fff;background:var(--gold)}
.form-message-content{flex:1;min-width:0}
.form-message-content h3{font-family:'Cormorant Garamond',serif;font-size:clamp(1.2rem,1.8vw,1.5rem);font-weight:400;color:var(--charcoal);margin:0 0 .5rem;line-height:1.3}
.form-message-content p{font-family:'Outfit',sans-serif;font-size:.95rem;font-weight:300;line-height:1.7;color:var(--text-light);margin:0}
.form-message-content a{color:var(--charcoal);text-decoration:none;border-bottom:1px solid var(--gold);transition:color .3s}
.form-message-content a:hover{color:var(--gold)}

/* Erfolgsvariante: dezente Gold-Akzentuierung (Standard, s.o.) */
.form-message-success{border-left-color:var(--gold);background:var(--cream)}

/* Fehlervariante: dezentes Rot */
.form-message-error{border-left-color:#b94a48;background:rgba(185,74,72,.06)}
.form-message-error .form-message-icon{background:#b94a48}

@media (max-width:600px){
  .form-message{flex-direction:column;gap:14px}
  .form-message-icon{width:38px;height:38px;font-size:1.1rem}
}

/* Betriebsferien */
.ferien-block{background:var(--cream);padding:clamp(24px,3vw,40px);margin-top:2rem}
.ferien-block h3{font-family:'Cormorant Garamond',serif;font-size:clamp(1.1rem,1.8vw,1.4rem);font-weight:400;color:var(--charcoal);margin-bottom:1rem}
.ferien-item{font-family:'Outfit',sans-serif;font-weight:300;font-size:.9rem;line-height:1.85;color:var(--text-light);margin-bottom:.4rem}
.ferien-item strong{font-weight:400;color:var(--text)}

/* Contact compact layout */
.contact-compact{max-width:var(--content-max);margin:0 auto;padding:clamp(40px,5vw,60px) clamp(24px,5vw,40px) 0;display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,4vw,50px)}
.contact-compact-col p{font-family:'Outfit',sans-serif;font-weight:300;font-size:clamp(1rem,1.2vw,1.1rem);line-height:1.8;color:var(--text-light);margin-bottom:.8rem}
.contact-compact-col a{color:var(--text-light);text-decoration:none;border-bottom:1px solid var(--gold);transition:color .3s}
.contact-compact-col a:hover{color:var(--charcoal)}
.contact-highlight{margin-bottom:.3rem !important}
.contact-highlight a{font-family:'Outfit',sans-serif;font-weight:400;font-size:clamp(1.1rem,1.4vw,1.25rem);color:var(--charcoal);text-decoration:none;border-bottom:1px solid var(--gold);transition:color .3s}
.contact-highlight a:hover{color:var(--gold)}

/* Boutique products */
.boutique-products{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px)}
.boutique-product{text-align:center}
.boutique-product-img{overflow:hidden;margin-bottom:1.2rem;aspect-ratio:3/4}
.boutique-product-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.boutique-product:hover .boutique-product-img img{transform:scale(1.03)}
.boutique-product h3{font-family:'Outfit',sans-serif;font-weight:300;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--charcoal);margin-bottom:.4rem}
.boutique-product-desc{font-family:'Outfit',sans-serif;font-weight:300;font-size:.9rem;color:var(--text-light);margin-bottom:.3rem}
.boutique-product-price{font-family:'Outfit',sans-serif;font-weight:300;font-size:1.1rem;color:var(--text-light);margin-top:.4rem}

/* Boutique downloads */
.boutique-downloads{max-width:600px;margin:0 auto}
.boutique-download-item{display:flex;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--cream);text-decoration:none;color:var(--charcoal);font-family:'Outfit',sans-serif;font-weight:400;font-size:1rem;transition:color .3s}
.boutique-download-item:first-child{border-top:1px solid var(--cream)}
.boutique-download-item:hover{color:var(--gold)}
.boutique-download-icon{font-size:1.2rem;color:var(--gold);flex-shrink:0;width:20px}

@media(max-width:768px){
  .boutique-products{grid-template-columns:1fr}
}

/* Event blocks */
.event-block{padding-top:clamp(40px,5vw,60px);padding-bottom:clamp(40px,5vw,60px)}
.event-block .ed-headline{margin-bottom:1rem}
.event-date{font-family:'Cormorant Garamond',serif;font-size:clamp(1.3rem,2.5vw,1.8rem);font-weight:400;color:var(--charcoal);margin-bottom:.8rem;letter-spacing:.05em}
.event-price{font-family:'Outfit',sans-serif;font-weight:300;font-size:clamp(1.1rem,1.4vw,1.25rem);color:var(--gold);margin-bottom:.6rem;letter-spacing:.05em}
.event-note{font-family:'Outfit',sans-serif;font-weight:300;font-size:.85rem;font-style:italic;color:var(--warm-gray)}
.event-intro-bold{font-family:'Cormorant Garamond',serif;font-size:clamp(1.3rem,2vw,1.6rem);font-weight:400;color:var(--charcoal)}
.event-logo{margin:1.5rem auto 0;max-width:180px}
.event-logo img{width:100%;height:auto;display:block}

@media(max-width:768px){
  .form-reservation-form{grid-template-columns:1fr}
  .contact-info{grid-template-columns:1fr}
  .contact-compact{grid-template-columns:1fr}
  .room-grid{grid-template-columns:1fr}
  .subpage-hero{height:45vh;min-height:320px}
  .footer-bottom{flex-direction:column;text-align:center;gap:12px;padding:20px clamp(24px,8vw,120px) 80px}
  .footer-bottom div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
  .footer-bottom a{margin-left:0}
}
@media(max-width:600px){
  .subpage-header{padding:16px 20px}
  .subpage-header .header-logo{width:120px}
  .subpage-hero-content{position:relative;z-index:2;padding:0 clamp(24px,5vw,40px) clamp(40px,6vh,80px);max-width:var(--wide-max);width:100%}

}