:root { --primary:#000000; --secondary:#f5f5f5; --accent:#f9b233; --text:#222; --text-light:#fff; --shadow:0 4px 24px rgba(0,0,0,0.08); --radius:12px; --transition:0.2s cubic-bezier(.4,0,.2,1); --company:#9F3D40; }
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:'Roboto',sans-serif; font-size:16px; line-height:1.6; color:#333; }

/* Ehem. format.css: nur auf Error-Seite anwenden */
body.error-legacy { background-color:#efefef; color:#fff; user-select:none; }

/* Typografie */
h1,h2,h3,h4,h5,h6 { font-family:'Roboto',sans-serif; font-weight:700; color:#222; margin-bottom:1rem; }
p { font-weight:400; margin-bottom:1rem; color:#555; }
a { font-weight:500; color:#9F3D40; text-decoration:none; transition:color .2s; }
a:hover { color:#7c2e30; }

/* Container */
.container { width:90%; max-width:1200px; margin:0 auto; }

/* Hero / Parallax */
.hero-section { min-height:80vh; position:relative; overflow:hidden; }
.parallax-bg { position:absolute; inset:0; z-index:0; }
.parallax-bg picture, .parallax-bg-img { width:100%; height:100%; display:block; }
.parallax-bg-img { object-fit:cover; will-change:transform; transform:translate3d(0,0,0); }
.hero-section > .container { position:relative; z-index:1; padding-top:96px; }
.hero-logo { width:180px; height:auto; }
.hero-logo-large { width:220px; max-width:95vw; }
@media (max-width:600px){ .hero-section{min-height:60vh;} .hero-section>.container{padding-top:64px;} }

/* Buttons (CTA) */
.cta-btn-modern { display:inline-flex; align-items:center; justify-content:center; background:#fff; color:#9F3D40; font-weight:700; font-size:1.05rem; padding:.7rem 1.7rem; border-radius:1.7rem; border:2px solid #9F3D40; box-shadow:0 2px 10px rgba(159,61,64,0.08); transition:background .18s,color .18s,border-color .18s,box-shadow .18s,transform .13s; cursor:pointer; position:relative; overflow:hidden; letter-spacing:.01em; margin:.4rem 0; gap:.5em; }
.cta-btn-modern:hover,.cta-btn-modern:active { background:#9F3D40; color:#fff !important; border-color:#7c2e30; box-shadow:0 4px 18px rgba(159,61,64,0.13); transform:translateY(-1px) scale(1.03); }
.cta-btn-modern:active { transform:scale(.98); }
.cta-btn-modern:disabled { opacity:.6; pointer-events:none; }

/* Navbar (neues Design) */
#navbar { background:linear-gradient(to bottom,rgba(0,0,0,0.55) 0%,rgba(0,0,0,0.25) 55%,rgba(0,0,0,0) 100%); box-shadow:none; transition:background-color .3s,box-shadow .3s; }
#navbar.scrolled { backdrop-filter:saturate(180%) blur(14px); -webkit-backdrop-filter:saturate(180%) blur(14px); background:rgba(34,34,34,0.85); border-bottom:1px solid rgba(255,255,255,0.08); }
#nav-menu.desktop-nav-links { gap:1.75rem; }
#nav-menu .nav-link { font-weight:500; font-size:.95rem; letter-spacing:.5px; color:#ffffffcc; transition:color .18s; position:relative; padding-bottom:.4em; }
#navbar:not(.scrolled) #nav-menu .nav-link:hover { color:#fff; }
#navbar.scrolled #nav-menu .nav-link { color:#e6e6e6; }
#navbar.scrolled #nav-menu .nav-link:hover { color:#ffffff; }
.nav-link .nav-underline { position:absolute; left:0; right:0; bottom:-4px; height:2px; background:#9F3D40; border-radius:2px; opacity:0; transform:scaleX(.5); transition:opacity .18s,transform .18s; }
.nav-link.active .nav-underline { opacity:1; transform:scaleX(1); }
.nav-gallery-item { position:relative; margin-left:3.5rem !important; padding-left:2.25rem !important; }
.nav-link-gallery { display:inline-flex; align-items:center; padding:.5rem 1.35rem .6rem; background:#ffffff10; border:1px solid #ffffff26; border-radius:10px; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); transition:background .25s,border-color .25s,color .18s; }
#navbar .nav-link-gallery:hover { background:rgba(159,61,64,0.45); border-color:#9F3D40; }
/* Active state for gallery (desktop) */
.nav-link-gallery.active, .nav-link-gallery[aria-current="page"] { background:rgba(159,61,64,0.45); border-color:#9F3D40; color:#fff !important; }
.nav-link-gallery.active .nav-underline { display:none; }
/* Active state for gallery (mobile offcanvas) */
#nav-mobile .nav-link-gallery.active { background:#9F3D40 !important; color:#fff !important; border-color:#9F3D40 !important; }
@media (max-width:767px){ .nav-link .nav-underline{display:none;} .nav-link-gallery{border:2px solid #9F3D40;} .nav-link-gallery:hover{background:#9F3D40;} body.menu-open{overflow:hidden;} /* FORCE full-height mobile drawer + keep colors */ #nav-mobile>div{height:100dvh;min-height:100vh;} #nav-mobile .nav-link,#nav-mobile .nav-link-gallery{color:#9F3D40 !important;} #nav-mobile .nav-link:hover,#nav-mobile .nav-link-gallery:hover{color:#9F3D40 !important;} #nav-mobile .nav-link .nav-underline{display:none !important;} }

/* Scroll-To-Top */
#scroll-to-top-btn { background:#fff; color:#9F3D40; border:2px solid #9F3D40; border-radius:50%; width:48px; height:48px; box-shadow:0 2px 10px rgba(159,61,64,0.13); transition:background .18s,color .18s,border-color .18s,opacity .2s; }
#scroll-to-top-btn:hover,#scroll-to-top-btn:focus { background:#9F3D40; color:#fff; border-color:#7c2e30; }

/* Cookie UI */
#cookie-modal { animation:fadeIn .2s; }
@keyframes fadeIn { from{opacity:0;} to{opacity:1;} }
#cookie-settings-btn { box-shadow:0 2px 10px rgba(159,61,64,0.13); background:#fff; color:#9F3D40; border:2px solid #9F3D40; border-radius:1.7rem; transition:background .18s,color .18s,border-color .18s; }
#cookie-settings-btn:hover { background:#9F3D40; color:#fff; border-color:#7c2e30; }
#cookie-settings-btn .cookie-settings-text { transition:opacity .2s,max-width .2s,margin-left .2s; opacity:0; max-width:0; margin-left:0; display:inline-block; }
#cookie-settings-btn:hover .cookie-settings-text { opacity:1; max-width:200px; margin-left:.5rem; }

/* Footer Icons */
footer .flex ul li a i { display:inline-flex; align-items:center; justify-content:center; width:1.8em; height:1.8em; border-radius:25%; background:rgba(255,255,255,0.12); transition:color .2s,background .2s,box-shadow .2s,transform .2s,opacity .2s; font-size:1.5em; }
footer .flex ul li a:hover .fa-facebook-f { color:#fff!important; background:#1877f3!important; box-shadow:0 2px 8px rgba(24,119,243,0.18); transform:scale(1.08); }
footer .flex ul li a:hover .fa-instagram { color:#fff!important; background:radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%)!important; box-shadow:0 2px 8px rgba(214,36,159,0.18); transform:scale(1.08); }

/* Lightbox (Galerie) */
#lightbox-img { background:#fff; }

/* Legacy Galerie (falls alte Seite geladen) */
.galerie-image { width:100%; height:100%; margin:20px; border-radius:8px; box-shadow:0 0 20px rgba(0,0,0,.10),20px 20px 20px rgba(0,0,0,.10); }

/* Legacy Navigation / Error Page spezifische Elemente (aus format.css) */
.menu-container { position:fixed; display:flex; width:100%; height:65px; justify-content:center; background-color:transparent; align-items:center; transition:.3s; z-index:1000; top:0; }
.menu-container nav { display:flex; height:100%; align-items:center; flex-direction:column; justify-content:center; flex-wrap:wrap; position:relative; min-width:80%; }
.menu-container nav img { width:100%; max-width:181.73px; max-height:100%; margin-left:10px; }
.menu-container .mobile-menu { display:flex; width:50px; height:100%; justify-content:center; align-items:center; cursor:pointer; right:15px; position:absolute; top:0; }
.menu-container .mobile-menu .burger { position:relative; width:25px; height:19px; }
.burger span { transition:.3s; position:absolute; height:3px; min-width:25px; border-radius:2px; transform-origin:center; }
.burger span:nth-child(1), .burger span:nth-child(3) { background-color:#efefef; box-shadow:0 0 5px rgba(0,0,0,.45); }
.burger span:nth-child(2){ top:8px; background-color:rgba(159,61,64,1); box-shadow:0 0 5px rgba(0,0,0,.45); }
.burger span:nth-child(1){ top:0; }
.burger span:nth-child(3){ top:16px; }
.lines-active span:nth-child(1){ top:8px; transform:rotate(45deg); background-color:rgba(159,61,64,1); }
.lines-active span:nth-child(2){ background-color:transparent; box-shadow:none; }
.lines-active span:nth-child(3){ top:8px; transform:rotate(-45deg); background-color:rgba(159,61,64,1); }
#menu { position:fixed; top:65px; left:0; width:100%; min-height:80vh; background-color:rgba(239,239,239,.9); transition:.2s; border-bottom:2px solid #9F3D40; border-top:2px solid #9F3D40; font-family:Verdana,Arial,Helvetica,sans-serif; }
#menu ul li a { display:block; width:100%; font-size:1.4em; padding:10px 0 10px 12px; line-height:1.5em; color:#444; text-decoration:none; text-transform:uppercase; border-top:1px solid rgba(0,0,0,.2); transition:color .3s, background-color .3s; }
#menu ul li a:hover { background-color:#9F3D40; color:#fff; }
.close-menu { transform:translateX(-100vw); }
.open-menu { transform:translateX(0); }
.bg-img { display:flex; position:fixed; z-index:-10; }
.bg-img img { top:0; display:flex; flex-direction:column; max-height:100%; background-size:cover; background-position:bottom center; filter:blur(2px); transform:scale(1.1); }
.overlay { position:absolute; width:100%; height:100%; background-color:rgba(0,0,0,.2); z-index:100; }
.content { position:absolute; flex-direction:column; max-width:85%; z-index:-1; transition:.3s; }
.content img { width:100px; }
.content h1 { font-size:1.5em; color:#efefef; margin:15px; text-transform:uppercase; letter-spacing:4px; }
.content a { background-color:#9F3D40; border:5px solid #9F3D40; border-radius:15px; color:#c7c7c7; text-decoration:none; font-size:.9em; margin:65px 15px 15px; padding:5px; box-shadow:0 0 20px 3px rgba(0,0,0,.25); transition:.2s; letter-spacing:2px; }
.content a:hover { background-color:rgb(126,48,51); border-color:rgb(126,48,51); }

/* Animations */
@keyframes slideInRight { from{transform:translateX(100%);opacity:0;} to{transform:translateX(0);opacity:1;} }
.animate-slideInRight { animation:slideInRight .25s cubic-bezier(.4,0,.2,1); }

/* Utility overrides (firm colours) */
.text-yellow-400,.text-yellow-500,.hover\:text-yellow-400:hover { color:#9F3D40 !important; }
.bg-yellow-400,.bg-yellow-400:hover { background:#9F3D40 !important; color:#fff !important; }
input:focus, textarea:focus, .form-control:focus { border-color:#9F3D40 !important; box-shadow:0 0 0 0.2rem rgba(159,61,64,0.15); }

/* Galerie Grid helper classes (size decisions done inline via JS) */
.galerie-landscape{grid-column:span 2 / span 2;}
.galerie-portrait{grid-row:span 2 / span 2;}

/* Minimal Legacy Footer (Error page) */
footer.legacy-footer { background-color:#d6d6d6; box-shadow:0 0 30px rgba(0,0,0,.2); }

/* End Merged CSS */
