/* ============================= FONTS (lokal) ============================= */
@font-face{font-family:'Poppins'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/poppins-400-latin-ext.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:'Poppins'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/poppins-400-latin.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:'Poppins'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/poppins-500-latin-ext.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:'Poppins'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/poppins-500-latin.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:'Poppins'; font-style:normal; font-weight:600; font-display:swap; src:url('fonts/poppins-600-latin-ext.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:'Poppins'; font-style:normal; font-weight:600; font-display:swap; src:url('fonts/poppins-600-latin.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:'Poppins'; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/poppins-700-latin-ext.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:'Poppins'; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/poppins-700-latin.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:'Poppins'; font-style:normal; font-weight:800; font-display:swap; src:url('fonts/poppins-800-latin-ext.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:'Poppins'; font-style:normal; font-weight:800; font-display:swap; src:url('fonts/poppins-800-latin.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:'Poppins'; font-style:normal; font-weight:900; font-display:swap; src:url('fonts/poppins-900-latin-ext.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:'Poppins'; font-style:normal; font-weight:900; font-display:swap; src:url('fonts/poppins-900-latin.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;}

/* ============================= DESIGN TOKENS ============================= */
:root{
  --pink:#EC0B84;
  --pink-2:#C4067A;
  --pink-deep:#8C0658;
  --yellow:#FFE600;
  --black:#0A0A0B;
  --near-black:#141416;
  --grey-900:#1E1E22;
  --grey-600:#6E6E76;
  --grey-300:#C9C8CE;
  --grey-100:#F3F2EF;
  --white:#FFFFFF;

  --f-display:'Poppins', sans-serif;
  --f-body:'Poppins', sans-serif;
  --f-mono:'Poppins', sans-serif;

  --container: 1360px;
  --pad: clamp(20px, 5vw, 64px);
  --radius-sm: 4px;
  --radius-md: 10px;

  --ease: cubic-bezier(.16,.8,.24,1);
  --dur-fast: .25s;
  --dur-med: .6s;
  --dur-slow: 1s;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}
body{
  margin:0;
  font-family:var(--f-body);
  color:var(--black);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer;}
ul{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4,p{margin:0;}
:focus-visible{outline:3px solid var(--pink); outline-offset:3px;}

/* Mobile: nichts darf seitlich überstehen */
html, body{overflow-x:hidden; overflow-x:clip;}
.hl{overflow-wrap:break-word;}
.type-grid > *, .stay-grid > *, .equip-grid > *, .contact-grid > *, .xmas-intro-grid > *{min-width:0;}
.container{max-width:var(--container); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad);}
.eyebrow{
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.eyebrow::before{content:""; width:18px; height:2px; background:currentColor; display:inline-block;}

.hl{font-family:var(--f-display); font-weight:800; text-transform:uppercase; line-height:.92; letter-spacing:-.01em;}
.hl-xl{font-size:clamp(48px, 9.5vw, 132px);}
.hl-l{font-size:clamp(36px, 6vw, 76px);}
.hl-m{font-size:clamp(28px, 3.6vw, 44px);}
.accent-pink{color:var(--pink);}
.accent-yellow{color:var(--yellow);}

.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--f-mono); font-weight:600; font-size:13px; letter-spacing:.06em; text-transform:uppercase;
  padding:16px 28px; border-radius:999px; border:2px solid transparent;
  transition:transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
  white-space:nowrap;
}
.btn svg{width:14px; height:14px; transition:transform var(--dur-fast) var(--ease);}
.btn:hover svg{transform:translateX(4px);}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--yellow); color:var(--black);}
.btn-primary:hover{background:var(--white);}
.btn-outline-light{border-color:rgba(255,255,255,.5); color:var(--white);}
.btn-outline-light:hover{border-color:var(--white); background:rgba(255,255,255,.08);}
.btn-outline-dark{border-color:rgba(10,10,11,.3); color:var(--black);}
.btn-outline-dark:hover{border-color:var(--black); background:var(--black); color:var(--white);}
.btn-pink{background:var(--pink); color:var(--white);}
.btn-pink:hover{background:var(--black);}

/* generic image placeholder */
.ph{
  position:relative; overflow:hidden; background:linear-gradient(155deg,var(--pink) 0%, var(--pink-deep) 55%, var(--black) 130%);
  display:flex; align-items:flex-end; color:rgba(255,255,255,.85);
}
.ph::before{
  content:""; position:absolute; inset:0;
  background-image:radial-gradient(circle at 20% 20%, rgba(255,255,255,.15), transparent 40%),
                    radial-gradient(circle at 85% 75%, rgba(0,0,0,.35), transparent 55%);
  mix-blend-mode:overlay;
}
.ph.mono{background:linear-gradient(160deg,var(--grey-900), var(--black));}
.ph-label{
  position:relative; z-index:1; font-family:var(--f-mono); font-size:11px; letter-spacing:.05em;
  padding:14px 16px; line-height:1.5; text-transform:none;
}
.ph-label b{display:block; font-family:var(--f-mono); text-transform:uppercase; letter-spacing:.1em; color:var(--yellow); margin-bottom:4px; font-size:10px;}

/* real photo + pink wash overlay */
.photo{position:absolute; inset:0; overflow:hidden;}
.photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
.photo::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(155deg, rgba(236,11,132,.55) 0%, rgba(196,6,122,.28) 42%, rgba(10,10,11,.05) 75%);
}
.photo.wash-soft::after{background:linear-gradient(155deg, rgba(236,11,132,.4) 0%, rgba(196,6,122,.16) 45%, rgba(10,10,11,0) 72%);}

/* ============================= NAV ============================= */
.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px var(--pad);
  transition:background var(--dur-fast) var(--ease), padding var(--dur-fast) var(--ease), backdrop-filter var(--dur-fast) var(--ease);
  color:var(--white);
}
.site-nav.solid{
  background:rgba(10,10,11,.86);
  backdrop-filter:blur(10px);
  padding-top:14px; padding-bottom:14px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.site-nav.xmas-nav{
  background:var(--xmas-red) !important;
  backdrop-filter:none;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.logo{display:flex; align-items:center; gap:8px; color:var(--white);}
.logo-mark{width:46px; height:46px; color:currentColor; transition:width var(--dur-fast) var(--ease), height var(--dur-fast) var(--ease);}
.site-nav.solid .logo-mark{width:38px; height:38px;}
.logo-mark.on-light{color:var(--black);}
.nav-links{display:flex; gap:32px; font-family:var(--f-mono); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase;}
.nav-item{position:relative;}
.nav-item::after{content:""; position:absolute; left:50%; transform:translateX(-50%); top:100%; width:220px; height:20px;}
.nav-top{position:relative; padding:4px 0; display:inline-flex; align-items:center; gap:5px;}
.nav-top::after{content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--yellow); transition:width var(--dur-fast) var(--ease);}
.nav-top:hover::after, .nav-item:hover .nav-top::after{width:100%;}
.nav-chevron{width:9px; height:9px; transition:transform var(--dur-fast) var(--ease);}
.nav-item:hover .nav-chevron{transform:rotate(180deg);}
.nav-dropdown{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px); opacity:0; pointer-events:none;
  background:var(--black); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-md); padding:8px;
  min-width:210px; display:flex; flex-direction:column; margin-top:10px;
  transition:opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
  box-shadow:0 24px 48px rgba(0,0,0,.5); z-index:210;
}
.nav-item:hover .nav-dropdown{opacity:1; pointer-events:auto; transform:translateX(-50%) translateY(0);}
.nav-dropdown a{padding:11px 14px; border-radius:6px; font-size:11.5px; letter-spacing:.05em; white-space:nowrap; color:rgba(255,255,255,.85); transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);}
.nav-dropdown a:hover{background:rgba(236,11,132,.16); color:var(--yellow);}
.nav-right{display:flex; align-items:center; gap:18px;}
.burger{
  display:none; flex-direction:column; gap:5px; background:none; border:none; padding:6px; z-index:400;
}
.burger span{width:24px; height:2px; background:var(--white); transition:transform var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.menu-overlay{
  position:fixed; inset:0; z-index:300; background:var(--black); color:var(--white);
  display:flex; flex-direction:column;
  opacity:0; visibility:hidden; transform:translateX(24px);
  transition:opacity .3s var(--ease), transform .35s var(--ease), visibility 0s linear .35s;
}
.menu-overlay.open{opacity:1; visibility:visible; transform:none; transition:opacity .3s var(--ease), transform .35s var(--ease), visibility 0s;}
.menu-top{display:flex; align-items:center; justify-content:space-between; padding:12px var(--pad); flex:none;}
.menu-top .logo-mark{width:42px; height:42px;}
.menu-close, .menu-toggle{-webkit-appearance:none; appearance:none; padding:0; margin:0; font:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent;}
.menu-close{width:44px; height:44px; border-radius:50%; border:0; background:rgba(255,255,255,.12); color:var(--white); display:flex; align-items:center; justify-content:center; transition:background var(--dur-fast) var(--ease);}
.menu-close:hover, .menu-close:active{background:rgba(255,255,255,.2);}
.menu-close svg{width:20px; height:20px;}
.menu-body{flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; padding:12px var(--pad) calc(32px + env(safe-area-inset-bottom)); display:flex; flex-direction:column;}
.menu-list{border-top:1px solid rgba(255,255,255,.1);}
.menu-item{border-bottom:1px solid rgba(255,255,255,.1);}
.menu-row{display:flex; align-items:center; justify-content:space-between; gap:12px;}
.menu-link{display:block; flex:1; padding:15px 0; font-family:var(--f-display); font-weight:600; font-size:19px; letter-spacing:-.005em; color:var(--white); transition:color var(--dur-fast) var(--ease);}
.menu-link:focus-visible{color:var(--yellow);}
@media (hover:hover){.menu-link:hover{color:var(--yellow);} .menu-sublist li a:hover{color:var(--yellow); border-left-color:var(--pink);}}
.menu-toggle{width:36px; height:36px; flex:none; border:0; border-radius:50%; background:rgba(255,255,255,.1); color:var(--white); display:flex; align-items:center; justify-content:center; transition:background var(--dur-fast) var(--ease);}
.menu-toggle svg{width:16px; height:16px; transition:transform var(--dur-fast) var(--ease);}
.menu-toggle[aria-expanded="true"]{background:var(--pink);}
.menu-toggle[aria-expanded="true"] svg{transform:rotate(180deg);}
.menu-sublist{display:block; max-height:0; overflow:hidden; transition:max-height .35s var(--ease);}
.menu-sublist li a{display:block; padding:8px 0 8px 14px; font-size:15px; color:rgba(255,255,255,.7); border-left:2px solid rgba(255,255,255,.14);}
.menu-sublist li:first-child a{margin-top:0;}
.menu-sublist li:last-child a{margin-bottom:16px;}
.menu-cta{margin-top:32px; justify-content:center; width:100%; padding:15px 24px;}
.menu-meta{margin-top:32px; display:flex; flex-direction:column; align-items:flex-start; gap:6px; font-size:14px; color:rgba(255,255,255,.55);}
.menu-meta a{color:rgba(255,255,255,.88); font-size:15px;}
.menu-meta p{margin-top:4px; line-height:1.5;}
.menu-meta .social-icons{margin-top:16px;}

/* ============================= HERO ============================= */
.hero{
  position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end;
  color:var(--white); overflow:hidden;
}
.hero-bg{position:absolute; inset:0; z-index:0;}
.hero-bg .ph{position:absolute; inset:0; align-items:stretch;}
.hero-bg .ph-label{position:absolute; bottom:0; left:0;}
.hero-scrim{position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,.15) 45%, rgba(140,6,88,.35) 100%); z-index:1;}
.hero-inner{position:relative; z-index:2; padding:0 var(--pad) 56px;}
.hero-kicker{font-family:var(--f-mono); font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:var(--yellow); margin-bottom:18px; display:block;}
.hero h1{margin-bottom:22px;}
.hero-sub{font-size:clamp(16px,2vw,20px); max-width:520px; color:rgba(255,255,255,.88); margin-bottom:34px; line-height:1.5;}
.hero-ctas{display:flex; flex-wrap:wrap; gap:16px;}
.scroll-cue{
  position:absolute; right:var(--pad); bottom:36px; z-index:2;
  writing-mode:vertical-rl; font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.75);
}
.scroll-cue .line{width:1px; height:52px; background:rgba(255,255,255,.4); position:relative; overflow:hidden;}
.scroll-cue .line::after{content:""; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--yellow); animation:scrollline 2.2s ease-in-out infinite;}
@keyframes scrollline{0%{top:-100%;} 60%{top:100%;} 100%{top:100%;}}

/* ============================= MARQUEE ============================= */
.marquee-band{
  background:var(--black); color:var(--yellow); overflow:hidden;
  border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08);
  padding:18px 0;
}
.marquee-track{display:flex; width:max-content; animation:marquee 32s linear infinite;}
.marquee-track span{
  font-family:var(--f-display); font-weight:700; text-transform:uppercase; font-size:clamp(22px,3vw,34px);
  padding:0 28px; white-space:nowrap; display:flex; align-items:center; gap:28px;
}
.marquee-track span::after{content:"—"; color:var(--pink);}
@keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* ============================= KEY FACTS ============================= */
.facts{background:var(--white); padding:96px 0 88px;}
.facts-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:56px; flex-wrap:wrap;}
.facts-head p{max-width:420px; color:var(--grey-600); font-size:16px; line-height:1.6;}
.facts-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--grey-300);}
.fact{background:var(--white); padding:40px 28px; display:flex; flex-direction:column; gap:10px;}
.fact-num{font-family:var(--f-display); font-weight:800; font-size:clamp(44px,5.4vw,68px); line-height:1; color:var(--black);}
.fact-num .unit{color:var(--pink);}
.fact-label{font-family:var(--f-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--grey-600);}

/* ============================= EVENT SLIDER ============================= */
.events{background:var(--grey-100); padding:100px 0 90px;}
.events-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:44px; gap:24px; flex-wrap:wrap;}
.slider-arrows{display:flex; gap:10px;}
.arrow-btn{
  width:52px; height:52px; border-radius:50%; border:2px solid var(--black); background:none;
  display:flex; align-items:center; justify-content:center; transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.arrow-btn:hover{background:var(--black); color:var(--white);}
.arrow-btn svg{width:18px; height:18px;}
.slider-viewport{overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-left:var(--pad); padding-bottom:10px; margin:0; padding-left:var(--pad); padding-right:var(--pad); scrollbar-width:none;}
.slider-viewport::-webkit-scrollbar{display:none;}
.slider-track{display:flex; gap:22px; width:max-content;}
.event-card{
  width:min(78vw,340px); scroll-snap-align:start; position:relative; border-radius:var(--radius-md); overflow:hidden;
  aspect-ratio:3/4; display:flex; flex-direction:column; justify-content:flex-end; color:var(--white);
}
.event-card .ph{position:absolute; inset:0; transition:transform var(--dur-slow) var(--ease);}
.event-card:hover .ph{transform:scale(1.06);}
.event-card-overlay{position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,10,11,.85), rgba(10,10,11,.05) 55%); z-index:1;}
.event-card-pink{position:absolute; inset:0; background:linear-gradient(160deg, rgba(236,11,132,.55), transparent 60%); opacity:0; transition:opacity var(--dur-fast) var(--ease); z-index:1;}
.event-card:hover .event-card-pink{opacity:1;}
.event-card-body{position:relative; z-index:2; padding:26px;}
.event-card-num{font-family:var(--f-mono); font-size:12px; color:var(--yellow); margin-bottom:10px; display:block;}
.event-card h3{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:clamp(26px,2.4vw,32px); line-height:1;}
.event-card p{font-size:13px; color:rgba(255,255,255,.8); margin-top:10px; max-width:220px;}
.event-card-arrow{
  position:absolute; top:22px; right:22px; z-index:2; width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,.15); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center;
  transform:rotate(-45deg); transition:transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.event-card:hover .event-card-arrow{transform:rotate(0deg); background:var(--yellow); color:var(--black);}
.event-card-arrow svg{width:16px; height:16px;}

/* ============================= ALLES AN EINEM ORT ============================= */
.combo{background:var(--black); color:var(--white); padding:110px 0;}
.combo-head{margin-bottom:56px; max-width:760px;}
.combo-head p{color:var(--grey-300); margin-top:20px; font-size:16px; line-height:1.6; max-width:520px;}
.combo-panels{display:flex; gap:2px; height:520px;}
.combo-panel{
  position:relative; flex:1; overflow:hidden; cursor:pointer; transition:flex var(--dur-slow) var(--ease);
  display:flex; align-items:flex-end;
}
.combo-panel.active{flex:3.2;}
.combo-panel .ph{position:absolute; inset:0;}
.combo-panel-scrim{position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.88), rgba(0,0,0,.15) 60%); z-index:1;}
.combo-panel-body{position:relative; z-index:2; padding:28px 22px; width:100%;}
.combo-panel-index{font-family:var(--f-mono); font-size:12px; color:var(--yellow); display:block; margin-bottom:14px;}
.combo-panel h3{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:clamp(20px,2.4vw,30px); letter-spacing:.02em;
  writing-mode:vertical-rl; transform:rotate(180deg); white-space:nowrap; transition:all var(--dur-med) var(--ease);}
.combo-panel.active h3{writing-mode:horizontal-tb; transform:none; white-space:normal; font-size:clamp(28px,3vw,40px);}
.combo-panel-desc{max-width:340px; font-size:14px; color:rgba(255,255,255,.82); line-height:1.6; margin-top:12px; max-height:0; opacity:0; overflow:hidden; transition:all var(--dur-med) var(--ease);}
.combo-panel.active .combo-panel-desc{max-height:200px; opacity:1;}

/* ============================= AUSSTATTUNG HOTSPOTS ============================= */
.equip{background:var(--white); padding:110px 0;}
.equip-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:stretch;}
.equip-visual{position:relative; min-height:100%; border-radius:var(--radius-md); overflow:hidden;}
.equip-visual .ph{position:absolute; inset:0;}
.equip-table{width:100%; border-collapse:collapse; text-align:left;}
.equip-table thead th{font-family:var(--f-mono); font-weight:600; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--grey-600); padding:0 16px 14px 0; border-bottom:2px solid var(--black);}
.equip-table tbody tr{border-bottom:1px solid var(--grey-300);}
.equip-table tbody th, .equip-table td{padding:20px 16px 20px 0; vertical-align:baseline;}
.equip-table tbody th{font-family:var(--f-display); font-weight:700; text-transform:uppercase; font-size:18px;}
.equip-table td{font-size:15px; color:var(--grey-600); line-height:1.6;}
.equip-table td.num{font-family:var(--f-mono); font-size:13px; color:var(--pink); width:56px;}

/* ============================= PRIVAT / BUSINESS SPLIT ============================= */
.split{display:flex; min-height:640px;}
.split-side{
  position:relative; flex:1; overflow:hidden; display:flex; align-items:center; justify-content:center;
  transition:flex var(--dur-slow) var(--ease); color:var(--white); text-align:center;
}
.split-side:hover{flex:1.4;}
.split-side .ph{position:absolute; inset:0;}
.split-scrim{position:absolute; inset:0; z-index:1;}
.split-a .split-scrim{background:linear-gradient(160deg, rgba(236,11,132,.55), rgba(10,10,11,.75));}
.split-b .split-scrim{background:linear-gradient(160deg, rgba(10,10,11,.85), rgba(140,6,88,.55));}
.split-content{position:relative; z-index:2; padding:32px;}
.split-content .eyebrow{color:var(--yellow); margin-bottom:14px;}
.split-content h3{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:clamp(30px,4.5vw,52px); line-height:1;}
.split-content ul{margin-top:22px; font-family:var(--f-mono); font-size:13px; color:rgba(255,255,255,.85); display:flex; flex-direction:column; gap:6px;}
.split-content .btn{margin-top:26px;}

/* ============================= STAY ============================= */
.stay{background:var(--grey-100); padding:110px 0;}
.stay-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
.stay-copy p{color:var(--grey-600); font-size:16px; line-height:1.7; margin-top:22px; max-width:440px;}
.stay-copy .btn{margin-top:30px;}
.stay-visual{aspect-ratio:4/5; border-radius:var(--radius-md); overflow:hidden; position:relative;}

/* ============================= GALLERY ============================= */
.gallery{background:var(--black); color:var(--white); padding:110px 0;}
.gallery-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:44px; flex-wrap:wrap; gap:20px;}
.gallery-grid{display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:110px; gap:12px;}
.g-item{border-radius:var(--radius-sm); overflow:hidden; position:relative;}
.g-item .ph{position:absolute; inset:0; transition:transform var(--dur-slow) var(--ease);}
.g-item:hover .ph{transform:scale(1.08);}
.g1{grid-column:span 2; grid-row:span 3;}
.g2{grid-column:span 2; grid-row:span 2;}
.g3{grid-column:span 2; grid-row:span 2;}
.g4{grid-column:span 3; grid-row:span 2;}
.g5{grid-column:span 3; grid-row:span 2;}

/* ============================= ANFRAGE CTA STRIP ============================= */
.cta-strip{background:var(--pink); padding:90px 0; overflow:hidden; position:relative;}
.cta-strip-inner{display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; position:relative; z-index:1;}
.cta-strip h2{color:var(--white); font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:clamp(30px,4.6vw,56px); line-height:1;}
.cta-strip p{font-family:var(--f-mono); color:rgba(255,255,255,.85); margin-top:14px; font-size:13px; max-width:360px;}

/* ============================= FOOTER ============================= */
footer{background:var(--black); color:var(--white); padding-top:90px;}
.footer-cta{padding:0 var(--pad) 70px; border-bottom:1px solid rgba(255,255,255,.1);}
.footer-cta h2{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:clamp(44px,8vw,110px); line-height:.95;}
.footer-cta-text{margin-top:28px; font-size:clamp(16px,1.8vw,19px); line-height:1.6; color:rgba(255,255,255,.8); max-width:560px;}

/* Contact form section */
.contact-section{padding:70px var(--pad) 80px; border-bottom:1px solid rgba(255,255,255,.1);}
.contact-grid{max-width:var(--container); margin:0 auto; display:grid; grid-template-columns:1.3fr 1fr; gap:56px;}
.contact-form{display:flex; flex-direction:column; gap:18px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.form-group{display:flex; flex-direction:column; gap:8px;}
.form-group label{font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--grey-300);}
.form-group input, .form-group select, .form-group textarea{
  background:rgba(255,255,255,.05); border:1.5px solid rgba(255,255,255,.15); border-radius:var(--radius-sm);
  padding:14px 16px; font-family:var(--f-body); font-size:15px; color:var(--white);
  transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.form-group input::placeholder, .form-group textarea::placeholder{color:rgba(255,255,255,.35);}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{
  outline:none; border-color:var(--pink); background:rgba(255,255,255,.08);
}
.form-group select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; background-size:16px;}
.form-group select option{background:var(--near-black); color:var(--white);}
.form-group textarea{resize:vertical; min-height:110px; font-family:var(--f-body);}
.form-submit{margin-top:6px; align-self:flex-start;}
.cf-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.form-check{display:flex; align-items:flex-start; gap:12px; margin-top:4px;}
.form-check input{flex:none; width:20px; height:20px; margin:2px 0 0; accent-color:var(--pink); cursor:pointer;}
.form-check label{font-size:13.5px; line-height:1.55; color:var(--grey-300); cursor:pointer;}
.form-check a{color:var(--white); border-bottom:1px solid rgba(255,255,255,.35);}
.form-check a:hover{border-color:var(--white);}
.form-submit:disabled{opacity:.6; cursor:wait; transform:none;}
.cf-status{font-size:14px; line-height:1.5; min-height:1.2em; margin:0;}
.cf-status:empty{display:none;}
.cf-status.is-success{color:#7ee2a8;}
.cf-status.is-error{color:#ff8a8a;}
.form-note{font-family:var(--f-mono); font-size:11.5px; color:var(--grey-600); margin-top:4px;}
.contact-info{display:flex; flex-direction:column; gap:28px;}
.contact-info-block h5{font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--pink); margin-bottom:10px;}
.contact-info-block a, .contact-info-block p{display:block; font-size:16px; line-height:1.8; color:rgba(255,255,255,.9);}
.contact-info-block a:hover{color:var(--yellow);}
.contact-info-card{background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-md); padding:26px;}
.footer-grid{
  max-width:var(--container); margin:0 auto; padding:56px var(--pad); display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px;
}
.footer-col h5{font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--grey-600); margin-bottom:16px;}
.footer-col a, .footer-col p{display:block; font-size:14.5px; line-height:2.1; color:rgba(255,255,255,.85);}
.footer-col a:hover{color:var(--yellow);}
.footer-logo{margin-bottom:18px; color:var(--white);}
.footer-logo .logo-mark{width:64px; height:64px;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1); padding:22px var(--pad); display:flex; justify-content:space-between;
  font-family:var(--f-mono); font-size:11.5px; color:var(--grey-600); flex-wrap:wrap; gap:10px;
}
.footer-bottom a{color:var(--grey-600);}
.footer-bottom a:hover{color:var(--white);}

/* Social-Icons (Menü, Kontaktkarte, Footer) */
.social-icons{display:flex; gap:10px; margin-top:6px;}
.social-icons a{
  display:flex; align-items:center; justify-content:center; width:42px; height:42px; padding:0; border-radius:50%;
  border:1.5px solid rgba(255,255,255,.25); color:var(--white); line-height:1;
  transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.social-icons a:hover{background:var(--yellow); border-color:var(--yellow); color:var(--black); transform:translateY(-2px);}
.social-icons svg{width:18px; height:18px;}
.contact-info-block .social-icons a, .footer-col .social-icons a{display:flex; line-height:1;}
.footer-col .social-icons{margin-top:14px;}

/* ============================= RECHTSSEITEN ============================= */
.legal{background:var(--white); padding:170px 0 110px;}
.legal-inner{max-width:820px; margin:0 auto; padding:0 var(--pad);}
.legal h1{margin-bottom:40px; hyphens:manual;}
.legal h2{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:20px; margin:44px 0 14px;}
.legal h3{font-family:var(--f-display); font-weight:700; font-size:16px; margin:26px 0 10px;}
.legal p, .legal li{font-size:16px; line-height:1.75; color:#3c3c42;}
.legal p + p{margin-top:12px;}
.legal ul{list-style:disc; padding-left:22px; margin:12px 0;}
.legal a{color:var(--pink); border-bottom:1px solid rgba(236,11,132,.35);}
.legal a:hover{border-color:var(--pink);}
.legal-date{margin-top:40px; font-size:14px !important; color:var(--grey-600) !important;}
.legal-page .site-nav{background:rgba(10,10,11,.92);}
.form-note a{color:var(--grey-300); border-bottom:1px solid rgba(255,255,255,.25);}
.form-note a:hover{color:var(--white);}

/* ============================= MOBILE STICKY CTA ============================= */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:150; background:var(--black); color:var(--white);
  display:none; align-items:center; justify-content:center; padding:14px; font-family:var(--f-mono); font-weight:600;
  font-size:13px; letter-spacing:.06em; text-transform:uppercase; border-top:2px solid var(--yellow);
}
.sticky-cta svg{width:14px; height:14px; margin-left:8px;}

/* ============================= RESPONSIVE ============================= */
@media (max-width:980px){
  .nav-links{display:none;}
  .burger{display:flex;}
  .facts-grid{grid-template-columns:1fr;}
  .equip-grid{grid-template-columns:1fr; gap:36px;}
  .equip-visual{aspect-ratio:4/3; min-height:0;}
  .equip-table thead{display:none;}
  .equip-table tbody tr{display:grid; grid-template-columns:44px 1fr; padding:18px 0;}
  .equip-table tbody th, .equip-table td{padding:0;}
  .equip-table tbody th{white-space:normal; font-size:18px;}
  .equip-table td:last-child{grid-column:2; margin-top:4px; font-size:14px;}
  .contact-grid{grid-template-columns:1fr; gap:40px;}
  .form-row{grid-template-columns:1fr;}
  .stay-grid{grid-template-columns:1fr;}
  .split{flex-direction:column; min-height:auto;}
  .split-side{min-height:320px;}
  .split-side:hover{flex:1;}
  .combo-panels{flex-direction:column; height:auto;}
  .combo-panel{height:90px;}
  .combo-panel.active{height:340px; flex:none;}
  .combo-panel h3{writing-mode:horizontal-tb; transform:none;}
  .gallery-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:140px;}
  .g1,.g2,.g3,.g4,.g5{grid-column:span 2; grid-row:span 2;}
  .sticky-cta{display:flex;}
  footer{padding-bottom:70px;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:32px;}
}
@media (max-width:560px){
  .hl-xl{font-size:clamp(30px, 9.2vw, 48px);}
  .hl-l{font-size:clamp(28px, 8.4vw, 36px);}
  .footer-grid{grid-template-columns:1fr;}
  .cta-strip-inner{flex-direction:column; align-items:flex-start;}
}
/* ============================= SUBPAGE ADDITIONS ============================= */
.sub-hero{position:relative; min-height:64vh; display:flex; flex-direction:column; justify-content:flex-end; color:var(--white); overflow:hidden;}
.sub-hero .ph{position:absolute; inset:0; align-items:stretch;}
.sub-hero-scrim{position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.2) 55%, rgba(140,6,88,.3) 100%); z-index:1;}
.sub-hero-inner{position:relative; z-index:2; padding:120px var(--pad) 56px;}
.sub-kicker{font-family:var(--f-mono); font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--yellow); display:block; margin-bottom:16px;}
.sub-hero-sub{font-size:clamp(15px,1.8vw,18px); max-width:520px; color:rgba(255,255,255,.85); margin-top:20px; line-height:1.55;}

.quicknav-wrap{position:sticky; top:0; z-index:190; background:rgba(10,10,11,.94); backdrop-filter:blur(10px); border-bottom:1px solid rgba(255,255,255,.08);}
.quicknav{display:flex; gap:6px; overflow-x:auto; padding:14px var(--pad); max-width:var(--container); margin:0 auto; scrollbar-width:none;}
.quicknav::-webkit-scrollbar{display:none;}
.quicknav a{
  flex:none; font-family:var(--f-mono); font-weight:600; font-size:12px; letter-spacing:.04em; text-transform:uppercase;
  color:rgba(255,255,255,.6); padding:9px 16px; border-radius:999px; border:1px solid rgba(255,255,255,.14);
  transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
  white-space:nowrap;
}
.quicknav a:hover, .quicknav a.active{background:var(--pink); border-color:var(--pink); color:var(--white);}

.tag-label{font-family:var(--f-mono); font-weight:600; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--pink); display:inline-block; margin-bottom:16px;}
.tag-label.on-dark{color:var(--yellow);}

.type-section{padding:110px 0; position:relative; overflow:hidden;}
.type-section.dark{background:var(--black); color:var(--white);}
.type-section.light{background:var(--white); color:var(--black);}
.type-section.grey{background:var(--grey-100); color:var(--black);}
.type-grid{max-width:var(--container); margin:0 auto; padding:0 var(--pad); display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.type-grid.reverse{direction:rtl;}
.type-grid.reverse > *{direction:ltr;}
.type-visual{aspect-ratio:4/5; border-radius:var(--radius-md); overflow:hidden; position:relative;}
.type-copy p{font-size:16px; line-height:1.7; margin-top:20px; max-width:480px;}
.type-copy .btn{margin-top:30px;}

.timeline{display:flex; flex-direction:column; margin-top:38px;}
.timeline-step{display:flex; flex-direction:column; gap:0; padding:0 0 30px; border-left:2px solid rgba(255,255,255,.16); padding-left:28px; position:relative;}
.type-section.light .timeline-step, .type-section.grey .timeline-step{border-left-color:rgba(10,10,11,.15);}
.timeline-step:last-child{padding-bottom:0;}
.timeline-step::before{content:""; position:absolute; left:-7px; top:2px; width:12px; height:12px; border-radius:50%; background:var(--pink); box-shadow:0 0 0 4px rgba(236,11,132,.18);}
.timeline-step .ts-num{font-family:var(--f-mono); font-size:11px; color:var(--pink); display:block; margin-bottom:4px; letter-spacing:.1em; text-transform:uppercase;}
.timeline-step h4{font-family:var(--f-display); font-weight:700; text-transform:uppercase; font-size:22px;}
.timeline-step p{font-size:14.5px; opacity:.75; margin-top:6px; max-width:400px; line-height:1.6;}

.chip-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px;}
.chip{font-family:var(--f-mono); font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; padding:9px 16px; border-radius:999px; border:1px solid rgba(255,255,255,.2); color:rgba(255,255,255,.8);}
.type-section.light .chip, .type-section.grey .chip{border-color:rgba(10,10,11,.18); color:rgba(10,10,11,.75);}

.reveal{opacity:0; transform:translateY(30px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.in-view{opacity:1; transform:translateY(0);}
.reveal-stagger > *{opacity:0; transform:translateY(20px); transition:opacity .6s var(--ease), transform .6s var(--ease);}
.reveal-stagger.in-view > *{opacity:1; transform:translateY(0);}
.reveal-stagger.in-view > *:nth-child(1){transition-delay:.05s;}
.reveal-stagger.in-view > *:nth-child(2){transition-delay:.15s;}
.reveal-stagger.in-view > *:nth-child(3){transition-delay:.25s;}
.reveal-stagger.in-view > *:nth-child(4){transition-delay:.35s;}
.reveal-stagger.in-view > *:nth-child(5){transition-delay:.45s;}

.intro-strip{padding:80px 0; text-align:center;}
.intro-strip .intro-inner{max-width:760px; margin:0 auto; padding:0 var(--pad);}
.intro-strip p{font-size:clamp(17px,2.2vw,22px); line-height:1.6; color:var(--grey-600); margin-top:18px;}

@media (max-width:900px){
  .type-grid{grid-template-columns:1fr; gap:36px;}
  .type-grid.reverse{direction:ltr;}
  .type-visual{aspect-ratio:16/10;}
}
.lounge-hero-facts{display:flex; gap:40px; flex-wrap:wrap; margin-top:32px;}
.lounge-hero-facts div{font-family:var(--f-mono); font-size:12px; color:rgba(255,255,255,.7);}
.lounge-hero-facts strong{display:block; font-family:var(--f-display); font-weight:800; font-size:28px; color:var(--white);}
.lounge-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--grey-300);}
.lounge-strip-item{background:var(--white); padding:36px 28px;}
.lounge-strip-item h4{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:22px; margin-bottom:10px;}
.lounge-strip-item p{font-size:14px; color:var(--grey-600); line-height:1.6;}
@media (max-width:820px){.lounge-strip{grid-template-columns:1fr;}}
.catering-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--grey-300); margin-top:48px;}
.catering-card{background:var(--white); padding:36px 26px; display:flex; flex-direction:column; gap:14px;}
.catering-card .cc-num{font-family:var(--f-mono); font-size:12px; color:var(--pink);}
.catering-card h4{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:22px;}
.catering-card p{font-size:14px; color:var(--grey-600); line-height:1.6;}
@media (max-width:900px){.catering-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.catering-grid{grid-template-columns:1fr;}}

.partner-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:48px;}
.partner-card{background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-md); padding:34px 28px; display:flex; flex-direction:column; gap:14px; transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);}
.partner-card:hover{border-color:var(--pink); background:rgba(236,11,132,.06);}
.partner-icon{width:52px; height:52px; border-radius:50%; background:var(--pink); display:flex; align-items:center; justify-content:center; color:var(--white);}
.partner-icon svg{width:24px; height:24px;}
.partner-card h4{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:21px;}
.partner-card p{font-size:14px; color:rgba(255,255,255,.7); line-height:1.6;}
@media (max-width:900px){.partner-grid{grid-template-columns:1fr;}}

.process-row{display:grid; grid-template-columns:repeat(4,1fr); gap:28px; margin-top:48px;}
.process-step{display:flex; flex-direction:column; gap:10px;}
.process-step .ps-num{font-family:var(--f-display); font-weight:800; font-size:44px; color:var(--pink); line-height:1;}
.process-step h4{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:18px;}
.process-step p{font-size:13.5px; color:var(--grey-600); line-height:1.6;}
@media (max-width:900px){.process-row{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.process-row{grid-template-columns:1fr;}}
:root{
  --xmas-green:#0e3223;
  --xmas-green-2:#082017;
  --xmas-red:#7a0f24;
  --xmas-red-2:#4c0a17;
  --xmas-gold:#e8c874;
}

/* --- snow canvas --- */
#xmasSnow{position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:3;}

/* --- garland border --- */
.garland-strip{
  position:relative; width:100%; height:90px; overflow:hidden; z-index:5;
  background-image:url('assets/weihnachten-girlande.png'); background-repeat:repeat-x; background-size:auto 100%; background-position:top center;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.35));
}
.garland-strip.small{height:56px;}

/* --- xmas hero --- */
.xmas-hero{position:relative; min-height:92vh; display:flex; flex-direction:column; justify-content:flex-end; color:var(--white); overflow:hidden; background:var(--xmas-green-2);}
.xmas-hero .ph{position:absolute; inset:0; align-items:stretch;}
.xmas-hero-scrim{position:absolute; inset:0; background:linear-gradient(0deg, rgba(8,32,23,.92) 0%, rgba(8,32,23,.35) 45%, rgba(122,15,36,.45) 100%); z-index:2;}
.xmas-hero-inner{position:relative; z-index:4; padding:0 var(--pad) 60px;}
.xmas-badge{
  display:inline-flex; align-items:center; gap:8px; background:rgba(232,200,116,.15); border:1px solid rgba(232,200,116,.5);
  color:var(--xmas-gold); font-family:var(--f-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  padding:8px 16px; border-radius:999px; margin-bottom:22px;
}
.xmas-badge svg{width:14px; height:14px;}
.xmas-hero h1{margin-bottom:20px;}
.xmas-hero-sub{font-size:clamp(16px,2vw,19px); max-width:560px; color:rgba(255,255,255,.88); margin-bottom:32px; line-height:1.55;}

/* --- ticker --- */
.xmas-ticker{background:var(--xmas-red-2); color:var(--xmas-gold); overflow:hidden; padding:14px 0; position:relative; z-index:5; border-top:1px solid rgba(232,200,116,.25); border-bottom:1px solid rgba(232,200,116,.25);}
.xmas-ticker-track{display:flex; width:max-content; animation:xmasmarquee 26s linear infinite;}
.xmas-ticker-track span{font-family:var(--f-mono); font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:14px; padding:0 26px; white-space:nowrap; display:flex; align-items:center; gap:14px;}
.xmas-ticker-track span::after{content:"❄"; color:rgba(232,200,116,.6);}
@keyframes xmasmarquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* --- intro --- */
.xmas-intro{background:var(--xmas-green); color:var(--white); padding:90px 0; position:relative;}
.xmas-intro-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; max-width:var(--container); margin:0 auto; padding:0 var(--pad); position:relative; z-index:2;}
.xmas-intro-grid h3{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:clamp(22px,2.6vw,30px); line-height:1.18; margin-bottom:16px;}
.xmas-intro-grid p{font-size:15.5px; line-height:1.7; color:rgba(255,255,255,.82);}

/* --- facts --- */
.xmas-facts{background:var(--xmas-green-2); padding:80px 0 90px;}
.xmas-facts-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; max-width:var(--container); margin:0 auto;}
.xmas-fact{
  position:relative; background:linear-gradient(160deg, var(--xmas-green) 0%, var(--xmas-green-2) 100%);
  padding:40px 24px 32px; text-align:center; border-radius:var(--radius-md);
  border:1px solid rgba(232,200,116,.3); box-shadow:0 14px 30px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.04);
  overflow:hidden; transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.xmas-fact::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg, var(--xmas-gold), var(--yellow), var(--xmas-gold));
}
.xmas-fact::after{content:"❄"; position:absolute; top:12px; right:14px; font-size:14px; color:rgba(232,200,116,.4);}
.xmas-fact:hover{
  background:linear-gradient(160deg, var(--xmas-red) 0%, var(--xmas-red-2) 100%);
  border-color:rgba(232,200,116,.6); transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.5);
}
.xmas-fact .fn{font-family:var(--f-display); font-weight:800; font-size:clamp(34px,4vw,46px); color:var(--yellow); line-height:1;}
.xmas-fact .fl{font-family:var(--f-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.75); margin-top:8px; display:block;}

/* --- ambience section with lantern photo --- */
.xmas-ambience{background:var(--black); color:var(--white); padding:100px 0;}

/* --- bokeh divider banner --- */
.xmas-divider{position:relative; min-height:440px; overflow:hidden; display:flex; align-items:center;}
.xmas-divider img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.xmas-divider::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,32,23,.55) 0%, rgba(8,32,23,.72) 55%, rgba(8,32,23,.88) 100%);}
.xmas-divider-text{position:relative; z-index:2; width:100%; padding:60px var(--pad); display:flex; flex-direction:column; align-items:center; text-align:center;}
.xmas-divider-text span{font-family:var(--f-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--xmas-gold); display:block; margin-bottom:14px;}
.xmas-divider-text h3{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:clamp(26px,3.8vw,44px); color:var(--white); max-width:640px; line-height:1.15; margin-bottom:30px;}

/* --- flip cards --- */
.xmas-flip-section{background:var(--xmas-red); color:var(--white); padding:100px 0; position:relative; overflow:hidden;}
.xmas-flip-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:48px;}
.flip-card{perspective:1200px; height:220px;}
.flip-card-inner{position:relative; width:100%; height:100%; transition:transform .7s cubic-bezier(.16,.8,.24,1); transform-style:preserve-3d;}
.flip-card:hover .flip-card-inner, .flip-card.flipped .flip-card-inner{transform:rotateY(180deg);}
.flip-card-front, .flip-card-back{
  position:absolute; inset:0; backface-visibility:hidden; border-radius:var(--radius-md);
  display:flex; flex-direction:column; justify-content:center; padding:28px; gap:12px;
}
.flip-card-front{background:rgba(0,0,0,.22); border:1px solid rgba(232,200,116,.3);}
.flip-card-back{background:var(--xmas-gold); color:var(--xmas-red-2); transform:rotateY(180deg); justify-content:center;}
.flip-card .fc-icon{width:46px; height:46px; border-radius:50%; background:var(--yellow); color:var(--black); display:flex; align-items:center; justify-content:center;}
.flip-card .fc-icon svg{width:22px; height:22px;}
.flip-card-front h4{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:19px; color:var(--white);}
.flip-card-front span.fc-hint{font-family:var(--f-mono); font-size:11px; color:rgba(255,255,255,.55); text-transform:uppercase; letter-spacing:.06em;}
.flip-card-back p{font-size:14px; line-height:1.55; font-weight:600;}

/* --- santa / flyer-style USP section --- */
.xmas-flyer{position:relative; overflow:hidden; padding:90px 0; color:var(--white);}
.xmas-flyer-bg{position:absolute; inset:0; z-index:0;}
.xmas-flyer-bg img{width:100%; height:100%; object-fit:cover; object-position:center;}
.xmas-flyer-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(76,10,23,.55) 0%, rgba(76,10,23,.35) 40%, rgba(76,10,23,.75) 100%);}
.xmas-flyer-head{position:relative; z-index:2; text-align:center; max-width:640px; margin:0 auto 50px; padding:0 var(--pad); color:var(--white);}
.xmas-flyer-grid{position:relative; z-index:2; max-width:var(--container); margin:0 auto; padding:0 var(--pad); display:grid; grid-template-columns:1fr 260px 1fr; gap:20px; align-items:center;}
.xmas-flyer-col{display:flex; flex-direction:column; gap:34px;}
.xmas-flyer-col.right{text-align:right;}
.xmas-flyer-item{display:flex; align-items:flex-start; gap:14px;}
.xmas-flyer-col.right .xmas-flyer-item{flex-direction:row-reverse;}
.xmas-flyer-icon{
  width:38px; height:38px; flex:none; border-radius:50%; background:var(--xmas-green);
  border:2px solid rgba(232,200,116,.5); display:flex; align-items:center; justify-content:center; color:var(--white);
}
.xmas-flyer-icon svg{width:18px; height:18px;}
.xmas-flyer-item h4{font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:17px; color:var(--yellow); margin-bottom:4px;}
.xmas-flyer-item p{font-size:13.5px; color:rgba(255,255,255,.88); line-height:1.5;}
.xmas-flyer-santa-wrap{display:flex; flex-direction:column; align-items:center; text-align:center;}
.xmas-flyer-santa{width:100%; max-width:240px; filter:drop-shadow(0 20px 30px rgba(0,0,0,.5));}
.xmas-flyer-tagline{
  margin-top:-10px; font-family:var(--f-display); font-weight:700; font-size:15px; color:var(--white);
  background:rgba(10,10,11,.45); border:1px solid rgba(232,200,116,.4); border-radius:14px; padding:10px 18px; line-height:1.4;
}
.xmas-flyer-tagline .accent-yellow{color:var(--yellow);}
.xmas-flyer-cta{margin-top:22px;}

/* --- stay teaser --- */
.xmas-stay{background:var(--xmas-green-2); color:var(--white); padding:100px 0;}


/* --- FAQ accordion --- */
.xmas-faq{background:var(--black); color:var(--white); padding:100px 0;}
.xmas-faq-list{max-width:760px; margin:44px auto 0; display:flex; flex-direction:column; gap:2px;}
.faq-item{background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-sm); overflow:hidden;}
.faq-question{
  width:100%; text-align:left; background:none; border:none; color:var(--white); padding:22px 26px;
  display:flex; justify-content:space-between; align-items:center; gap:16px; cursor:pointer;
  font-family:var(--f-display); font-weight:700; font-size:16px; text-transform:uppercase;
}
.faq-question .faq-plus{width:20px; height:20px; flex:none; position:relative; transition:transform var(--dur-fast) var(--ease);}
.faq-question .faq-plus::before, .faq-question .faq-plus::after{content:""; position:absolute; background:var(--yellow); border-radius:2px;}
.faq-question .faq-plus::before{left:0; top:9px; width:20px; height:2px;}
.faq-question .faq-plus::after{left:9px; top:0; width:2px; height:20px; transition:opacity var(--dur-fast) var(--ease);}
.faq-item.open .faq-plus::after{opacity:0;}
.faq-item.open .faq-plus{transform:rotate(180deg);}
.faq-answer{max-height:0; overflow:hidden; transition:max-height .4s var(--ease);}
.faq-answer p{padding:0 26px 22px; font-size:14.5px; color:rgba(255,255,255,.72); line-height:1.65; max-width:600px;}

/* --- final cta --- */
.xmas-cta{background:var(--xmas-red); color:var(--white); padding:100px 0; position:relative; overflow:hidden;}

@media (max-width:900px){
  .xmas-intro-grid{grid-template-columns:1fr; gap:32px;}
  .xmas-facts-grid{grid-template-columns:1fr 1fr;}
  .xmas-flip-grid{grid-template-columns:1fr;}
  .xmas-flyer-grid{grid-template-columns:1fr; justify-items:center; gap:36px;}
  .xmas-flyer-col{gap:26px; width:100%; max-width:360px;}
  .xmas-flyer-col.right{text-align:left;}
  .xmas-flyer-col.right .xmas-flyer-item{flex-direction:row;}
  .xmas-flyer-santa-wrap{order:-1;}
  .garland-strip{height:60px;}
}
