body,form,figure{margin:0;padding:0}img{border:0}header,footer,nav,section,aside,article,figure,figcaption{display:block}body{font-size:100.01%}select,input,textarea{font-size:99%}#container,.inside{position:relative}#main,#left,#right{float:left;position:relative}#main{width:100%}#left{margin-left:-100%}#right{margin-right:-100%}#footer{clear:both}#main .inside{min-height:1px}.ce_gallery>ul,.content-gallery>ul{margin:0;padding:0;overflow:hidden;list-style:none}.ce_gallery>ul li,.content-gallery>ul li{float:left}.ce_gallery>ul li.col_first,.content-gallery>ul li.col_first{clear:left}.float_left,.media--left>figure{float:left}.float_right,.media--right>figure{float:right}.block{overflow:hidden}.media{display:flow-root}.clear,#clear{height:.1px;font-size:.1px;line-height:.1px;clear:both}.invisible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.custom{display:block}#container:after,.custom:after{content:"";display:table;clear:both}
@media (max-width:767px){#wrapper{margin:0;width:auto}#container{padding-left:0;padding-right:0}#main,#left,#right{float:none;width:auto}#left{right:0;margin-left:0}#right{margin-right:0}}img{max-width:100%;height:auto}.audio_container audio{max-width:100%}.video_container video{max-width:100%;height:auto}.aspect,.responsive{position:relative;height:0}.aspect iframe,.responsive iframe{position:absolute;top:0;left:0;width:100%;height:100%}.aspect--16\:9,.responsive.ratio-169{padding-bottom:56.25%}.aspect--16\:10,.responsive.ratio-1610{padding-bottom:62.5%}.aspect--21\:9,.responsive.ratio-219{padding-bottom:42.8571%}.aspect--4\:3,.responsive.ratio-43{padding-bottom:75%}.aspect--3\:2,.responsive.ratio-32{padding-bottom:66.6666%}.aspect--9\:16,.responsive.ratio-916{padding-bottom:177.7777%}.aspect--1\:1,.responsive.ratio-11{padding-bottom:100%}
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  --black:      #080808;
  --white:      #F2EDE6;
  --warm:       #E8D5B0;
  --gold:       #1A9ED4;  /* butterfly blue */
  --gold-dim:   #0F72A8;
  --gold-bg:    rgba(26,158,212,0.08);
  --gold-border:rgba(26,158,212,0.22);
  --gray:       #141414;
  --gray-mid:   #3A3A3A;
  --gray-light: #777;
  --border:     rgba(255,255,255,0.06);
  --green:      #2ECC71;
  --blue-bright: #00B8E8;
}

html { scroll-behavior: smooth; }

body {
  background: var(--black);
  color: var(--white);
  font-family: 'DM Sans', sans-serif;
  line-height: 1.6;
  overflow-x: hidden;
  cursor: none;
}

/* ── Noise ── */
body::after {
  content: '';
  position: fixed; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity: 0.028; pointer-events: none; z-index: 9000;
}

/* ── Cursor ── */
.cur  { position:fixed; width:8px; height:8px; background:var(--gold); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); mix-blend-mode:difference; transition:width .2s,height .2s; }
.cur-r{ position:fixed; width:32px; height:32px; border:1px solid rgba(201,168,76,.5); border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:left .12s ease-out,top .12s ease-out,width .25s,height .25s; }
body:has(a:hover) .cur, body:has(button:hover) .cur { width:16px; height:16px; }
body:has(a:hover) .cur-r, body:has(button:hover) .cur-r { width:48px; height:48px; }

/* ── NAV ── */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 500;
  display: flex; justify-content: space-between; align-items: center;
  padding: 20px 48px;
  background: rgba(8,8,8,0.85);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
  animation: fadeDown .8s ease both;
}
.nav-logo { font-family:'Bebas Neue',sans-serif; font-size:20px; letter-spacing:.12em; color:var(--white); text-decoration:none; }
.nav-logo span { color:var(--gold); }
.nav-links { display:flex; gap:32px; list-style:none; }
.nav-links a { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--gray-light); text-decoration:none; transition:color .2s; }
.nav-links a:hover { color:var(--gold); }
.nav-cta { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.15em; text-transform:uppercase; color:var(--black); background:var(--gold); border:none; padding:10px 20px; cursor:none; transition:background .2s; text-decoration:none; }
.nav-cta:hover { background:var(--warm); }

/* ── HERO ── */
#hero {
  min-height: 100vh;
  display: grid;
  grid-template-rows: 1fr auto;
  position: relative;
  overflow: hidden;
  padding-top: 80px;
}

.hero-bg {
  position: absolute; inset: 0;
  background-image: repeating-linear-gradient(90deg,transparent,transparent 119px,rgba(255,255,255,.012) 120px);
}

.glow-1 { position:absolute; width:700px; height:700px; border-radius:50%; background:radial-gradient(circle,rgba(201,168,76,.07) 0%,transparent 70%); top:-200px; right:-150px; filter:blur(60px); animation:drift 18s ease-in-out infinite; }
.glow-2 { position:absolute; width:400px; height:400px; border-radius:50%; background:radial-gradient(circle,rgba(192,57,43,.05) 0%,transparent 70%); bottom:-100px; left:-80px; filter:blur(80px); animation:drift 24s ease-in-out infinite reverse; }

@keyframes drift {
  0%,100% { transform:translate(0,0) scale(1); }
  33% { transform:translate(40px,-50px) scale(1.06); }
  66% { transform:translate(-25px,35px) scale(.94); }
}

.hero-content {
  position: relative; z-index: 10;
  box-sizing: border-box;
}

.eyebrow {
  font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.25em; text-transform:uppercase;
  color:var(--gold); margin-bottom:28px;
  display:flex; align-items:center; gap:14px;
  opacity:0; animation:fadeUp .9s ease .4s forwards;
}
.eyebrow::before { content:''; display:inline-block; width:36px; height:1px; background:var(--gold); }

h1 {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(68px,11vw,150px);
  line-height:.92;
  letter-spacing:-.01em;
  opacity:0; animation:fadeUp .9s ease .6s forwards;
}
h1 .g { color:var(--gold); display:block; }
h1 .o { display:block; -webkit-text-stroke:1px rgba(242,237,230,.2); color:transparent; }

.tagline {
  font-size:17px; font-weight:300; font-style:italic;
  color:rgba(242,237,230,.5); margin-top:28px; max-width:460px; line-height:1.75;
  opacity:0; animation:fadeUp .9s ease .8s forwards;
}

/* Countdown */
.cd-wrap { margin-top:56px; opacity:0; animation:fadeUp .9s ease 1s forwards; }
.cd-label { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.2em; color:var(--gray-light); text-transform:uppercase; margin-bottom:16px; }
.cd { display:flex; gap:28px; align-items:flex-end; }
.cd-unit { display:flex; flex-direction:column; align-items:center; gap:5px; }
.cd-num {
  font-family:'Bebas Neue',sans-serif; font-size:clamp(44px,6vw,76px); line-height:1;
  color:var(--white); min-width:76px; text-align:center;
  border-bottom:1px solid var(--gold-dim);
}
.cd-lbl { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.2em; color:var(--gray-light); text-transform:uppercase; }
.cd-sep { font-family:'Bebas Neue',sans-serif; font-size:56px; color:var(--gold-dim); opacity:.5; line-height:1; margin-bottom:14px; }

/* Email */
.email-wrap { margin-top:44px; opacity:0; animation:fadeUp .9s ease 1.2s forwards; }
.email-label { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.2em; color:var(--gray-light); text-transform:uppercase; margin-bottom:14px; }
.email-form { display:flex; max-width:440px; }
.email-input {
  flex:1; background:rgba(255,255,255,.04); border:1px solid var(--gray-mid); border-right:none;
  color:var(--white); font-family:'DM Sans',sans-serif; font-size:14px; padding:13px 18px;
  outline:none; border-radius:2px 0 0 2px; transition:border-color .3s,background .3s;
}
.email-input::placeholder { color:var(--gray-mid); }
.email-input:focus { border-color:var(--gold-dim); background:rgba(201,168,76,.04); }
.email-btn {
  background:var(--gold); color:var(--black); border:none; cursor:none;
  font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.15em; text-transform:uppercase;
  padding:13px 22px; border-radius:0 2px 2px 0; transition:background .2s; white-space:nowrap;
}
.email-btn:hover { background:var(--warm); }
.email-ok { display:none; font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.1em; color:var(--gold); padding:13px 0; }

/* Hero Features Strip */
.hero-strip {
  position:relative; z-index:10;
  display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--border);
  opacity:0; animation:fadeUp .9s ease 1.4s forwards;
}
.strip-item {
  padding:24px 28px; border-right:1px solid var(--border);
  transition:background .2s;
}
.strip-item:last-child { border-right:none; }
.strip-item:hover { background:rgba(255,255,255,.02); }
.strip-icon { font-size:18px; margin-bottom:8px; }
.strip-title { font-family:'Bebas Neue',sans-serif; font-size:16px; letter-spacing:.05em; margin-bottom:4px; }
.strip-desc { font-size:11px; color:var(--gray-light); font-weight:300; line-height:1.5; }

/* ── SECTION BASE ── */
section { position:relative; }
.section-inner { max-width:960px; margin:0 auto; padding:80px 48px; }

.section-eyebrow {
  font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold); margin-bottom:12px;
  display:flex; align-items:center; gap:12px;
}
.section-eyebrow::before { content:''; display:inline-block; width:28px; height:1px; background:var(--gold); }

h2 {
  font-family:'Bebas Neue',sans-serif; font-size:clamp(40px,5vw,68px);
  letter-spacing:.02em; line-height:1; color:var(--white); margin-bottom:8px;
}
.section-sub { font-size:15px; font-weight:300; font-style:italic; color:rgba(242,237,230,.45); margin-bottom:48px; }

/* ── PREISE SECTION ── */
#preise { background:var(--gray); }

/* Table */
.price-table { width:100%; border-collapse:collapse; margin-bottom:12px; }
.price-table thead tr { border-bottom:1px solid var(--gold-dim); }
.price-table thead th {
  font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); padding:10px 16px; text-align:left; font-weight:400;
}
.price-table thead th:last-child { text-align:right; }
.price-table tbody tr { border-bottom:1px solid var(--border); transition:background .2s; }
.price-table tbody tr:hover { background:rgba(255,255,255,.025); }
.price-table tbody tr:last-child { border-bottom:none; }
.price-table td { padding:18px 16px; vertical-align:top; }

.td-name { font-size:15px; font-weight:500; color:var(--white); white-space:nowrap; }
.td-inc { font-size:12px; color:var(--gray-light); font-weight:300; line-height:1.8; }
.td-inc span { display:inline-block; margin-right:12px; }
.td-inc span::before { content:'· '; color:var(--gold-dim); }
.td-price { text-align:right; white-space:nowrap; }
.p-main { font-family:'Bebas Neue',sans-serif; font-size:30px; letter-spacing:.02em; color:var(--white); line-height:1; }
.p-unit { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.15em; color:var(--gray-light); text-transform:uppercase; margin-top:3px; }
.p-note { font-size:11px; color:var(--gold); margin-top:4px; font-style:italic; font-weight:300; }

.row-hl td { background:var(--gold-bg); border-left:2px solid var(--gold); }
.row-hl .td-name { color:var(--warm); }
.row-hl .p-main { color:var(--gold); }

.badge { display:inline-block; font-family:'DM Mono',monospace; font-size:8px; letter-spacing:.15em; text-transform:uppercase; padding:3px 8px; border-radius:2px; margin-left:8px; vertical-align:middle; }
.b-pop { background:rgba(201,168,76,.15); color:var(--gold); border:1px solid var(--gold-border); }
.b-new { background:rgba(46,204,113,.1); color:#2ECC71; border:1px solid rgba(46,204,113,.3); }

.price-block { margin-bottom:48px; }
.price-block-header { display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.pb-icon { width:38px; height:38px; background:var(--gold-bg); border:1px solid var(--gold-border); border-radius:3px; display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0; }
.pb-title { font-family:'Bebas Neue',sans-serif; font-size:20px; letter-spacing:.06em; }
.pb-desc { font-size:12px; color:var(--gray-light); font-weight:300; }

/* Addons Grid */
.addons-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.addon {
  border:1px solid var(--border); border-radius:3px; padding:16px 18px;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  transition:border-color .2s, background .2s;
}
.addon:hover { border-color:var(--gold-dim); background:var(--gold-bg); }
.addon-name { font-size:14px; font-weight:500; color:var(--white); margin-bottom:3px; }
.addon-desc { font-size:11px; color:var(--gray-light); font-weight:300; }
.addon-p { font-family:'Bebas Neue',sans-serif; font-size:24px; color:var(--gold); white-space:nowrap; text-align:right; }
.addon-u { font-family:'DM Mono',monospace; font-size:8px; color:var(--gray-light); letter-spacing:.1em; text-align:right; }

/* Abo Grid */
.abo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.abo-card {
  border:1px solid var(--border); border-radius:3px; padding:22px;
  transition:border-color .2s; position:relative; overflow:hidden;
}
.abo-card.feat { border-color:var(--gold-dim); background:var(--gold-bg); }
.abo-card.feat::before {
  content:'BELIEBT'; position:absolute; top:0; right:0;
  font-family:'DM Mono',monospace; font-size:8px; letter-spacing:.15em;
  background:var(--gold); color:var(--black); padding:4px 10px;
}
.abo-title { font-family:'Bebas Neue',sans-serif; font-size:20px; letter-spacing:.05em; margin-bottom:2px; }
.abo-sess { font-family:'DM Mono',monospace; font-size:9px; color:var(--gray-light); letter-spacing:.1em; margin-bottom:14px; }
.abo-price { font-family:'Bebas Neue',sans-serif; font-size:38px; color:var(--gold); line-height:1; }
.abo-per { font-family:'DM Mono',monospace; font-size:9px; color:var(--gray-light); letter-spacing:.1em; margin-bottom:10px; }
.abo-save { font-size:11px; color:var(--green); font-style:italic; font-weight:300; margin-bottom:14px; }
.abo-feat { list-style:none; font-size:11px; color:var(--gray-light); font-weight:300; line-height:1.9; }
.abo-feat li { padding-left:14px; position:relative; }
.abo-feat li::before { content:'→'; position:absolute; left:0; color:var(--gold-dim); font-size:10px; }

/* Divider */
.div { height:1px; background:linear-gradient(90deg,transparent,var(--gold-dim),transparent); margin:44px 0; opacity:.35; }

/* Hinweise */
.hinw { padding:22px 26px; border:1px solid var(--border); border-left:3px solid var(--gold-dim); border-radius:0 3px 3px 0; background:rgba(255,255,255,.01); margin-top:44px; }
.hinw-title { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.2em; color:var(--gold); text-transform:uppercase; margin-bottom:14px; }
.hinw ul { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:7px 32px; }
.hinw li { font-size:12px; color:var(--gray-light); font-weight:300; padding-left:14px; position:relative; line-height:1.5; }
.hinw li::before { content:'·'; position:absolute; left:0; color:var(--gold-dim); }

/* ── ABOUT SECTION ── */
#ueber { background:var(--black); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.about-text { font-size:15px; font-weight:300; color:rgba(242,237,230,.65); line-height:1.85; }
.about-text p { margin-bottom:18px; }
.about-text strong { color:var(--white); font-weight:500; }

.about-facts { display:flex; flex-direction:column; gap:0; }
.fact { padding:20px 0; border-bottom:1px solid var(--border); }
.fact:first-child { border-top:1px solid var(--border); }
.fact-num { font-family:'Bebas Neue',sans-serif; font-size:44px; color:var(--gold); line-height:1; }
.fact-label { font-size:13px; color:var(--gray-light); font-weight:300; }

/* ── KONTAKT SECTION ── */
#kontakt { background:var(--gray); }
.kontakt-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.kontakt-block h3 { font-family:'Bebas Neue',sans-serif; font-size:22px; letter-spacing:.05em; margin-bottom:16px; }
.kontakt-item { display:flex; flex-direction:column; gap:3px; margin-bottom:18px; }
.k-label { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); }
.k-val { font-size:14px; color:var(--gray-light); font-weight:300; }
.k-val a { color:var(--white); text-decoration:none; transition:color .2s; }
.k-val a:hover { color:var(--gold); }

.buchung-form { display:flex; flex-direction:column; gap:12px; }
.f-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.f-field { display:flex; flex-direction:column; gap:6px; }
.f-label { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--gray-light); }
.f-input, .f-select, .f-textarea {
  background:rgba(255,255,255,.04); border:1px solid var(--gray-mid);
  color:var(--white); font-family:'DM Sans',sans-serif; font-size:14px;
  padding:12px 16px; outline:none; border-radius:2px;
  transition:border-color .2s, background .2s;
}
.f-input::placeholder, .f-textarea::placeholder { color:var(--gray-mid); }
.f-input:focus, .f-select:focus, .f-textarea:focus { border-color:var(--gold-dim); background:rgba(201,168,76,.04); }
.f-select { cursor:none; }
.f-select option { background:var(--gray); }
.f-textarea { resize:vertical; min-height:100px; }
.f-submit {
  background:var(--gold); color:var(--black); border:none; cursor:none;
  font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.15em; text-transform:uppercase;
  padding:15px 28px; border-radius:2px; transition:background .2s; align-self:flex-start; margin-top:4px;
}
.f-submit:hover { background:var(--warm); }
.f-ok { display:none; font-family:'DM Mono',monospace; font-size:12px; letter-spacing:.1em; color:var(--gold); padding:15px 0; }

/* ── IMPRESSUM ── */
#impressum { background:var(--black); border-top:1px solid var(--border); }
.impressum-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:48px; }
.imp-block h3 { font-family:'Bebas Neue',sans-serif; font-size:16px; letter-spacing:.08em; color:var(--gold); margin-bottom:12px; }
.imp-block p, .imp-block a { font-size:12px; color:var(--gray-light); font-weight:300; line-height:1.8; text-decoration:none; display:block; }
.imp-block a:hover { color:var(--white); }

/* ── FOOTER ── */
footer {
  background:var(--black); border-top:1px solid var(--border);
  padding:24px 48px;
  display:flex; justify-content:space-between; align-items:center;
}
.foot-logo { font-family:'Bebas Neue',sans-serif; font-size:18px; letter-spacing:.1em; color:var(--gray-mid); }
.foot-logo span { color:var(--gold-dim); }
.foot-links { display:flex; gap:24px; }
.foot-links a { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.15em; text-transform:uppercase; color:var(--gray-mid); text-decoration:none; transition:color .2s; }
.foot-links a:hover { color:var(--gold); }
.foot-right { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.1em; color:var(--gray-mid); }

/* Deco left bar */
.deco { position:fixed; left:0; top:0; bottom:0; width:3px; background:linear-gradient(180deg,transparent,var(--gold) 30%,var(--gold-dim) 70%,transparent); opacity:0; animation:slideBar 1.2s ease .2s forwards; z-index:200; }
@keyframes slideBar { from{opacity:0;transform:scaleY(0);transform-origin:top} to{opacity:1;transform:scaleY(1)} }

/* ── Animations ── */
@keyframes fadeUp { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeDown { from{opacity:0;transform:translateY(-14px)} to{opacity:1;transform:translateY(0)} }

/* Scroll reveal */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in { opacity:1; transform:translateY(0); }

/* ── Responsive ── */
@media (max-width:900px) {
  nav { padding:16px 24px; }
  .nav-links { display:none; }
  .hero-content { padding:60px 20px 32px !important; grid-template-columns:1fr !important; }
  .hero-content > div:last-child { display:none !important; }
  .section-inner { padding:60px 24px; }
  .hero-strip { grid-template-columns:1fr 1fr; }
  .about-grid, .kontakt-grid { grid-template-columns:1fr; gap:36px; }
  .impressum-grid { grid-template-columns:1fr 1fr; }
  .abo-grid { grid-template-columns:1fr; }
  .addons-grid { grid-template-columns:1fr; }
  footer { flex-direction:column; gap:12px; text-align:center; padding:20px 24px; }
  .foot-links { flex-wrap:wrap; justify-content:center; }
  .hinw ul { grid-template-columns:1fr; }
  .f-row { grid-template-columns:1fr; }
  .cd { gap:12px; }
  .cd-sep { font-size:36px; margin-bottom:10px; }
}

@media (max-width:560px) {
  h1 { font-size:58px; }
  .hero-strip { grid-template-columns:1fr; }
  .impressum-grid { grid-template-columns:1fr; }
}

/* ── Contao-spezifische Anpassungen ── */
/* Contao fügt eigene Klassen hinzu - hier anpassen */
.ce_text { max-width: 100%; }
.ce_headline { margin: 0; }
.mod_article { position: relative; }
#wrapper { min-height: 100vh; }

