/* ==========================================================================
BASE - Fonts, Variables, Reset, Buttons, Section Headers, Animate
========================================================================== */
@font-face{
font-family:'Good Times';
src:url('../fonts/good-times.woff2') format('woff2');
font-display:swap;
font-weight:400;
font-style:normal;
}

@font-face{
font-family:'Inter';
src:url('../fonts/InterVariable.woff2') format('woff2');
font-display:swap;
font-weight:100 900;
font-style:normal;
}

:root{
--c-yellow:#FFE401;
--c-red:#E50515;
--c-anthracite:#333232;
--c-white:#FEFEFF;
--c-grey:#818385;
--c-rose:#D97076;
--bg-body:#f8f8f6;
--bg-primary:var(--c-white);
--bg-secondary:#f0eeeb;
--bg-dark:var(--c-anthracite);
--text-main:#1a1a1a;
--text-muted:#666;
--text-light:#767676;
--accent:var(--c-rose);
--accent-cta:var(--c-rose);
--card-bg:var(--c-white);
--card-shadow:0 4px 30px rgba(0,0,0,0.08);
--card-shadow-hover:0 12px 50px rgba(0,0,0,0.15);
--border:rgba(0,0,0,0.08);
--header-bg:rgba(254,254,255,0.92);
--c-rose-hover:#c25a60;
--alert-success:#059669;
--alert-success-bg:rgba(16, 185, 129, 0.1);
--alert-success-border:rgba(16, 185, 129, 0.2);
--alert-error:#dc2626;
--alert-error-bg:rgba(239, 68, 68, 0.1);
--alert-error-border:rgba(239, 68, 68, 0.2);
--c-success:#16a34a;
--c-warning:#b45309;
--c-danger:#dc2626;
--c-info:#4f46e5;
--c-gray-main:#6b7280;
--c-gray-light:#9ca3af;
--font-heading:'Good Times', 'Bebas Neue', 'Impact', sans-serif;
--font-body:'Inter', system-ui, sans-serif;
--z-header:9000;
--z-curtain:9999;
--z-modal:10000;
--z-lightbox:10001;
--z-admin-modal:1000;
--z-admin-toast:2000;
--z-skip:99999;
--container:1400px;
--gap:clamp(1rem, 4vw, 3rem);
--radius-sm:2px;
--radius:3px;
--radius-lg:6px;
--transition:0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

[data-theme="dark"]{
--bg-body:#111;
--bg-primary:#1a1a1a;
--bg-secondary:#222;
--bg-dark:#0a0a0a;
--text-main:#eee;
--text-muted:#aaa;
--text-light:#8a8a8a;
--card-bg:#1e1e1e;
--card-shadow:0 4px 30px rgba(0,0,0,0.3);
--card-shadow-hover:0 12px 50px rgba(0,0,0,0.5);
--border:rgba(255,255,255,0.08);
--header-bg:rgba(17,17,17,0.92);
--c-rose-hover:#e08088;
--c-success:#4ade80;
--c-warning:#fbbf24;
--c-danger:#fca5a5;
--c-info:#a5b4fc;
--c-gray-main:#9ca3af;
--c-gray-light:#d1d5db;
--alert-success:#34d399;
--alert-success-bg:rgba(16, 185, 129, 0.15);
--alert-success-border:rgba(16, 185, 129, 0.3);
--alert-error:#f87171;
--alert-error-bg:rgba(239, 68, 68, 0.15);
--alert-error-border:rgba(239, 68, 68, 0.3);
}

.sr-only{
position:absolute;
width:1px;
height:1px;
padding:0;
margin:-1px;
overflow:hidden;
clip:rect(0, 0, 0, 0);
white-space:nowrap;
border:0;
}

.sr-only--focusable:focus{
position:fixed;
top:0;
left:0;
width:auto;
height:auto;
margin:0;
clip:auto;
padding:0.75rem 1.5rem;
background:var(--c-rose);
color:var(--c-white);
font-weight:600;
z-index:var(--z-skip);
text-decoration:none;
}

:focus-visible{
outline:2px solid var(--c-rose);
outline-offset:2px;
}

*, *::before, *::after{margin:0;padding:0;box-sizing:border-box;}

html{
scroll-behavior:smooth;
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
}

html.no-scroll,
html.no-scroll body{
overflow:hidden;
}

body{
font-family:var(--font-body);
font-size:clamp(0.95rem, 1.5vw, 1.05rem);
line-height:1.7;
color:var(--text-main);
background:var(--bg-body);
overflow-x:hidden;
transition:background var(--transition), color var(--transition);
}

img{max-width:100%;height:auto;display:block;}

a{color:inherit;text-decoration:none;}

ul{list-style:none;}

.container{
width:100%;
max-width:var(--container);
margin-inline:auto;
padding-inline:var(--gap);
}

/* ==========================================================================
BUTTONS
========================================================================== */
.btn{
display:inline-flex;
align-items:center;
gap:0.5rem;
font-family:var(--font-body);
font-weight:600;
font-size:0.85rem;
letter-spacing:0.5px;
padding:0.8rem 2rem;
min-height:44px;
border:2px solid transparent;
border-radius:var(--radius);
cursor:pointer;
transition:all var(--transition);
text-decoration:none;
}

.btn--lg{padding:1rem 2.5rem;font-size:0.95rem;}

.btn--primary{
background:var(--c-rose);
color:var(--c-white);
border-color:var(--c-rose);
}

.btn--primary:hover{
background:var(--c-rose-hover);
border-color:var(--c-rose-hover);
transform:translateY(-2px);
box-shadow:0 8px 25px rgba(217,112,118,0.35);
}

.btn--primary:disabled,
.btn--secondary:disabled{
background:var(--border, #ddd);
color:var(--text-muted, #999);
border-color:var(--border, #ddd);
cursor:not-allowed;
pointer-events:none;
box-shadow:none;
transform:none;
}

.btn--secondary{
background:var(--c-grey);
color:var(--c-white);
border-color:var(--c-grey);
}

.btn--secondary:hover{
transform:translateY(-2px);
box-shadow:0 8px 25px rgba(0,0,0,0.15);
}

.btn--ghost{
background:transparent;
color:var(--c-white);
border-color:rgba(255,255,255,0.3);
}

.btn--ghost:hover{
background:rgba(255,255,255,0.1);
border-color:rgba(255,255,255,0.6);
transform:translateY(-2px);
}

/* ==========================================================================
SECTION HEADERS
========================================================================== */
.section-header{
text-align:center;
max-width:650px;
margin:0 auto 3.5rem;
}

.section-tag{
font-size:0.75rem;
font-weight:700;
text-transform:uppercase;
letter-spacing:4px;
color:var(--c-rose);
margin-bottom:0.75rem;
}

.section-title{
font-family:var(--font-heading);
font-size:clamp(2.5rem, 6vw, 4rem);
letter-spacing:2px;
line-height:1.05;
margin-bottom:1rem;
}

.section-desc{
color:var(--text-muted);
font-size:1.05rem;
line-height:1.7;
}

/* ==========================================================================
ANIMATE (initial state, GSAP activates them)
========================================================================== */
[data-animate="fade-up"]{
opacity:0;
transform:translateY(40px);
}

[data-animate="counter"]{
opacity:0;
transform:translateY(20px);
}

.animated{
opacity:1 !important;
transform:none !important;
transition:opacity 0.8s ease, transform 0.8s ease;
}

.text-link{
color:var(--c-rose);
text-decoration:underline;
text-underline-offset:2px;
transition:color var(--transition);
}

.text-link:hover{
color:var(--c-grey);
}

/* ==========================================================================
RESPONSIVE - Ultra-wide
========================================================================== */
@media (min-width:2560px){
:root{--container:1800px;}

body{font-size:1.15rem;}

}

/* ==========================================================================
LAYOUT - Curtain, Header, Footer
========================================================================== */
/* ==========================================================================
CURTAIN INTRO
========================================================================== */
.curtain{
position:fixed;
inset:0;
z-index:var(--z-curtain);
pointer-events:none;
}

.curtain__panel{
position:absolute;
left:0;
right:0;
height:50%;
background:var(--c-anthracite);
}

.curtain__panel--top{top:0;}

.curtain__panel--bottom{bottom:0;}

.curtain__logo{
position:absolute;
top:50%;
left:50%;
transform:translate(-50%, -50%);
z-index:2;
text-align:center;
}

.curtain__brand{
display:flex;
align-items:center;
gap:0.5rem;
margin-bottom:1rem;
}

.curtain__stavby{
font-family:var(--font-heading);
font-size:clamp(1.5rem, 4vw, 2.2rem);
color:var(--c-white);
background:var(--c-rose);
padding:0.3rem 0.8rem;
letter-spacing:3px;
}

.curtain__rio{
font-family:var(--font-heading);
font-size:clamp(2.5rem, 7vw, 4rem);
color:var(--c-white);
letter-spacing:6px;
}

.curtain__line{
width:60px;
height:2px;
background:var(--c-rose);
margin:0 auto 0.75rem;
}

.curtain__slogan{
font-family:var(--font-body);
font-size:0.85rem;
color:rgba(255,255,255,0.5);
text-transform:uppercase;
letter-spacing:5px;
}

/* ==========================================================================
HEADER
========================================================================== */
.site-header{
position:fixed;
top:0;
left:0;
right:0;
z-index:var(--z-header);
background:var(--header-bg);
backdrop-filter:blur(20px);
-webkit-backdrop-filter:blur(20px);
border-bottom:1px solid var(--border);
transition:transform 0.4s ease, background var(--transition);
}

.site-header.hidden{transform:translateY(-100%);}

.header-inner{
display:flex;
align-items:center;
justify-content:space-between;
height:70px;
}

.logo__img{
height:32px;
width:auto;
object-fit:contain;
flex-shrink:0;
transition:transform var(--transition);
}

.logo{
flex-shrink:0;
}

.logo:hover .logo__img{transform:scale(1.05);}

.nav-menu{
display:flex;
align-items:center;
gap:0.5rem;
}

.nav-link{
display:inline-flex;
align-items:center;
position:relative;
font-weight:500;
font-size:0.9rem;
padding:0.5rem 1rem;
border-radius:var(--radius-lg);
color:var(--text-muted);
transition:color var(--transition), background var(--transition);
}

.nav-link--mobile{display:none;}

.nav-link:hover,
.nav-link.active{
color:var(--text-main);
background:var(--bg-secondary);
}

.nav-chevron{
margin-left:2px;
transition:transform 0.2s;
}

.nav-item{position:relative;}

.dropdown{
display:none;
position:absolute;
top:100%;
left:0;
min-width:240px;
background:var(--card-bg);
border-radius:var(--radius);
box-shadow:var(--card-shadow-hover);
padding:0.5rem;
z-index:100;
border:1px solid var(--border);
}

@media (hover:hover){
.has-dropdown:hover .nav-chevron{transform:rotate(180deg);}

.has-dropdown:hover .dropdown{display:block;}

}

@media (min-width:1025px){
.has-dropdown.open .nav-chevron{transform:rotate(180deg);}

.has-dropdown.open .dropdown{display:block;}

}

.dropdown__link{
display:block;
padding:0.6rem 1rem;
font-size:0.85rem;
font-weight:500;
color:var(--text-muted);
border-radius:var(--radius-lg);
transition:all var(--transition);
}

.dropdown__link:hover,
.dropdown__link.active{
color:var(--text-main);
background:var(--bg-secondary);
}

.nav-toggle{
display:none;
flex-direction:column;
justify-content:center;
gap:5px;
width:40px;
height:40px;
background:none;
border:none;
cursor:pointer;
padding:8px;
}

.nav-toggle span{
display:block;
height:2px;
background:var(--text-main);
border-radius:var(--radius-sm);
transition:transform 0.3s, opacity 0.3s;
}

.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg) translate(5px, 5px);}

.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}

.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg) translate(5px, -5px);}

.theme-toggle{
display:flex;
align-items:center;
justify-content:center;
width:40px;
height:40px;
border:none;
background:var(--bg-secondary);
border-radius:var(--radius);
cursor:pointer;
color:var(--text-main);
transition:background var(--transition), transform 0.2s;
}

.theme-toggle:hover{transform:scale(1.1);}

.theme-icon--moon{display:none;}

[data-theme="dark"] .theme-icon--sun{display:none;}

[data-theme="dark"] .theme-icon--moon{display:block;}

/* ==========================================================================
ACCENT NAV HIGHLIGHT
========================================================================== */
[data-brand-nav] .nav-link:hover{
color:var(--accent, var(--c-rose));
background:transparent;
}

[data-brand-nav] .nav-link.active{
color:var(--accent, var(--c-rose));
background:transparent;
}

[data-brand-nav]:not([data-brand-nav-underline]) .nav-link.active::before{
content:'';
position:absolute;
bottom:0;
left:0.75rem;
right:0.75rem;
height:2px;
background:var(--accent, var(--c-rose));
border-radius:1px;
}

[data-brand-nav] .dropdown__link:hover{
color:var(--accent, var(--c-rose));
background:transparent;
}

[data-brand-nav]:not([data-brand-nav-underline]) .dropdown__link.active{
color:var(--accent, var(--c-rose));
background:transparent;
box-shadow:inset 3px 0 0 var(--accent, var(--c-rose));
}

[data-brand-nav][data-brand-nav-underline] .dropdown__link.active{
color:var(--accent, var(--c-rose));
background:transparent;
box-shadow:none;
}

@media (max-width:1024px){
[data-brand-nav]:not([data-brand-nav-underline]) .nav-link.active::before{
bottom:auto;
left:0;
right:auto;
top:0.25rem;
width:3px;
height:calc(100% - 0.5rem);
border-radius:0 2px 2px 0;
}

[data-brand-nav] .nav-link:hover,
[data-brand-nav] .nav-link.active{
background:var(--bg-secondary);
}

}

/* ==========================================================================
NAV ANIMATED UNDERLINE (hover + active)
========================================================================== */
[data-brand-nav-underline] .nav-link{
position:relative;
}

[data-brand-nav-underline] .nav-link::after{
content:'';
position:absolute;
bottom:2px;
left:0.75rem;
right:0.75rem;
height:2px;
background:var(--accent, var(--c-rose));
border-radius:1px;
transform:scaleX(0);
transform-origin:left;
transition:transform var(--transition);
}

[data-brand-nav-underline] .nav-link:hover::after{
transform:scaleX(1);
}

[data-brand-nav-underline] .nav-link.active::after{
transform:scaleX(1);
}

[data-brand-nav-underline] .dropdown__link{
position:relative;
}

[data-brand-nav-underline] .dropdown__link::after{
content:'';
position:absolute;
bottom:2px;
left:0.5rem;
right:0.5rem;
height:2px;
background:var(--accent, var(--c-rose));
border-radius:1px;
transform:scaleX(0);
transform-origin:left;
transition:transform var(--transition);
}

[data-brand-nav-underline] .dropdown__link:hover::after{
transform:scaleX(1);
}

[data-brand-nav-underline] .dropdown__link.active::after{
transform:scaleX(1);
}

@media (max-width:1024px){
[data-brand-nav-underline] .nav-link::after{
left:1rem;
right:1rem;
bottom:0;
}

}

/* ==========================================================================
ANIMATED LINK UNDERLINE
========================================================================== */
[data-brand-underline] .footer-links a,
[data-brand-underline] .footer-contact a,
[data-brand-underline] .page-content a,
[data-brand-underline] .post-content a,
[data-brand-underline] .block-content a,
[data-brand-underline] .modal__body a,
[data-brand-underline] .breadcrumb a{
position:relative;
text-decoration:none;
}

[data-brand-underline] .footer-links a::after,
[data-brand-underline] .footer-contact a::after,
[data-brand-underline] .page-content a::after,
[data-brand-underline] .post-content a::after,
[data-brand-underline] .block-content a::after,
[data-brand-underline] .modal__body a::after,
[data-brand-underline] .breadcrumb a::after{
content:'';
position:absolute;
left:0;
right:0;
bottom:-1px;
height:2px;
background:var(--accent, var(--c-rose));
border-radius:1px;
transform:scaleX(0);
transform-origin:left;
transition:transform var(--transition);
}

[data-brand-underline] .footer-links a:hover::after,
[data-brand-underline] .footer-contact a:hover::after,
[data-brand-underline] .page-content a:hover::after,
[data-brand-underline] .post-content a:hover::after,
[data-brand-underline] .block-content a:hover::after,
[data-brand-underline] .modal__body a:hover::after,
[data-brand-underline] .breadcrumb a:hover::after{
transform:scaleX(1);
}

/* ==========================================================================
SCROLL PROGRESS BAR
========================================================================== */
.scroll-progress{
position:fixed;
top:0;
left:0;
width:0;
height:3px;
background:var(--accent, var(--c-rose));
z-index:99998;
transition:width 0.1s linear;
pointer-events:none;
}

/* ==========================================================================
BRAND TAB - Woven Label
========================================================================== */
.brand-tab{
display:flex;
justify-content:center;
padding-top:4rem;
padding-bottom:0;
position:relative;
z-index:2;
perspective:600px;
}

.brand-tab__label{
position:relative;
padding:10px 10px 13px;
border-radius:0 0 2px 2px;
box-shadow:
0 4px 14px rgba(0,0,0,0.4),
0 1px 3px rgba(0,0,0,0.25),
inset 0 1px 0 rgba(255,255,255,0.06),
inset 0 -1px 0 rgba(0,0,0,0.3);
background:
radial-gradient(circle at 20% 30%, rgba(255,255,255,0.03) 0%, transparent 50%),
repeating-conic-gradient(
rgba(0,0,0,0.03) 0% 25%, transparent 0% 50%
) 0 0 / 3px 3px,
linear-gradient(160deg, #2e2e2e 0%, #242424 50%, #1e1e1e 100%);
transform-origin:top center;
transform:rotateX(4deg);
}

.brand-tab__label::before{
content:'';
position:absolute;
top:-5px;
left:5px;
right:5px;
height:5px;
background:linear-gradient(180deg, #333 0%, #292929 100%);
border-radius:1px 1px 0 0;
box-shadow:0 -2px 5px rgba(0,0,0,0.2);
}

.brand-tab__label::after{
content:'';
position:absolute;
inset:4px;
border:1.5px dashed rgba(255,255,255,0.16);
border-radius:1px;
pointer-events:none;
}

.brand-tab__logo{
width:32px;
height:auto;
display:block;
position:relative;
}

/* ==========================================================================
FOOTER - Sticky Reveal
========================================================================== */
#main-content{
position:relative;
z-index:1;
background:var(--bg-body);
}

.site-footer{
position:sticky;
bottom:0;
z-index:0;
background:var(--bg-dark);
color:rgba(255,255,255,0.7);
overflow:hidden;
}

.footer-watermark{
position:absolute;
bottom:1rem;
left:50%;
transform:translateX(-50%);
font-family:var(--font-heading);
font-size:clamp(6rem, 15vw, 14rem);
letter-spacing:0.1em;
white-space:nowrap;
color:rgba(255,255,255,0.03);
pointer-events:none;
user-select:none;
line-height:1;
}

.footer-top-line{
height:3px;
background:linear-gradient(to right, var(--c-rose), var(--c-grey), var(--c-rose));
}

.footer-content{
padding:3.5rem 0 1.5rem;
}

.footer-grid{
display:grid;
grid-template-columns:1.5fr 1fr 1fr 1fr;
gap:3rem;
margin-bottom:3rem;
}

.footer-logo{
height:40px;
width:auto;
margin-bottom:0.75rem;
}

.footer-tagline{
font-size:0.85rem;
color:rgba(255,255,255,0.5);
letter-spacing:2px;
text-transform:uppercase;
margin-bottom:1.25rem;
}

.footer-socials{
display:flex;
gap:0.75rem;
}

.footer-socials a{
display:flex;
align-items:center;
justify-content:center;
width:36px;
height:36px;
border-radius:var(--radius);
background:rgba(255,255,255,0.08);
color:rgba(255,255,255,0.6);
transition:background var(--transition), color var(--transition);
}

.footer-socials a:hover{
background:var(--c-rose);
color:var(--c-white);
}

.footer-desc{
font-size:0.9rem;
line-height:1.7;
max-width:300px;
}

.footer-grid h3{
font-family:var(--font-heading);
font-size:1.3rem;
color:var(--c-white);
letter-spacing:1px;
margin-bottom:1rem;
}

.footer-contact{
display:flex;
flex-direction:column;
gap:0.75rem;
font-size:0.9rem;
}

.footer-contact li{
display:flex;
align-items:center;
gap:0.5rem;
}

.footer-contact svg{flex-shrink:0;opacity:0.6;}

.footer-contact a{
transition:color var(--transition);
}

.footer-contact a:hover{
color:var(--c-rose);
}

.footer-links{
display:flex;
flex-direction:column;
gap:0.5rem;
}

.footer-links a{
font-size:0.9rem;
transition:color var(--transition);
}

.footer-links a:hover{color:var(--c-rose);}

.footer-bottom{
border-top:1px solid rgba(255,255,255,0.08);
padding-top:1.5rem;
display:flex;
align-items:center;
justify-content:space-between;
font-size:0.8rem;
color:rgba(255,255,255,0.6);
}

.footer-bottom .footer-stamp{
height:50px;
opacity:0.5;
cursor:pointer;
transition:opacity 0.5s ease, transform 0.5s ease;
}

.footer-bottom .footer-stamp:hover{
opacity:1;
transform:scale(3.5) rotate(-15deg) translateY(-40%);
}

/* ==========================================================================
RESPONSIVE - Layout
========================================================================== */
@media (max-width:1024px){
.header-inner{
display:flex;
flex-wrap:nowrap;
}

.theme-toggle{order:-1;}

.logo{order:0;margin:0 auto;}

.main-nav{order:1;}

.nav-link--desktop{display:none !important;}

.nav-link--mobile{
display:flex;
align-items:center;
justify-content:center;
gap:0.5rem;
width:100%;
background:none;
border:none;
cursor:pointer;
font-family:inherit;
}

.nav-toggle{display:flex;}

.nav-menu{
display:flex;
position:fixed;
top:70px;
left:0;
width:100vw;
height:calc(100dvh - 70px);
background-color:var(--bg-primary);
flex-direction:column;
justify-content:flex-start;
align-items:center;
gap:0.25rem;
padding:3rem 2rem;
z-index:9999;
overflow-y:auto;
clip-path:inset(0 0 100% 0);
visibility:hidden;
transition:clip-path 0.35s cubic-bezier(0.4, 0, 0.2, 1),
visibility 0.35s;
}

.nav-menu.open{
clip-path:inset(0);
visibility:visible;
}

.nav-item{
width:100%;
text-align:center;
opacity:0;
transform:translateY(-12px);
transition:opacity 0.25s ease, transform 0.25s ease;
}

.nav-menu.open .nav-item{
opacity:1;
transform:translateY(0);
}

.nav-menu.open .nav-item:nth-child(1){transition-delay:0.06s;}

.nav-menu.open .nav-item:nth-child(2){transition-delay:0.10s;}

.nav-menu.open .nav-item:nth-child(3){transition-delay:0.14s;}

.nav-menu.open .nav-item:nth-child(4){transition-delay:0.18s;}

.nav-menu.open .nav-item:nth-child(5){transition-delay:0.22s;}

.nav-menu.open .nav-item:nth-child(6){transition-delay:0.26s;}

.nav-menu.open .nav-item:nth-child(7){transition-delay:0.30s;}

.nav-link{
display:block;
font-size:1.4rem;
padding:1rem 1.5rem;
border-radius:var(--radius);
}

.nav-chevron{
width:20px;
height:20px;
transition:transform 0.3s ease;
}

.has-dropdown.open .nav-chevron{transform:rotate(180deg);}

.dropdown{
display:block !important;
position:static;
box-shadow:none;
border:none;
padding:0;
min-width:auto;
background:transparent;
overflow:hidden;
max-height:0;
opacity:0;
transition:max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1),
opacity 0.25s ease,
padding 0.35s ease;
}

.has-dropdown.open .dropdown{
max-height:500px;
opacity:1;
padding:0.25rem 0 0.5rem;
}

.dropdown__link{
padding:0.75rem 1.5rem;
font-size:1.1rem;
text-align:center;
}

.footer-grid{grid-template-columns:1fr;gap:2rem;}

.footer-bottom{flex-direction:column;gap:1rem;text-align:center;}

.footer-bottom .footer-stamp{height:40px;}

}

@media (max-width:480px){
.nav-menu{padding:1.5rem 1rem;}

.footer-grid{gap:1.5rem;}

.footer-content{padding:2.5rem 0 1.5rem;}

}

@media (hover:none){
.footer-bottom .footer-stamp:hover{
transform:none;
opacity:0.5;
}

}

/* ==========================================================================
COOKIE CONSENT MODAL
========================================================================== */
.cookie-modal{
position:fixed;
inset:0;
z-index:100000;
display:flex;
align-items:center;
justify-content:center;
opacity:0;
pointer-events:none;
transition:opacity 0.35s ease;
}

.cookie-modal--open{
opacity:1;
pointer-events:auto;
}

.cookie-modal__backdrop{
position:absolute;
inset:0;
background:rgba(0, 0, 0, 0.55);
backdrop-filter:blur(4px);
-webkit-backdrop-filter:blur(4px);
}

.cookie-modal__dialog{
position:relative;
background:var(--c-anthracite, #2b2b2b);
color:#eee;
border-radius:var(--radius-lg, 12px);
padding:2.5rem 2rem 2rem;
max-width:420px;
width:90%;
text-align:center;
box-shadow:0 20px 60px rgba(0, 0, 0, 0.4);
transform:scale(0.9) translateY(20px);
transition:transform 0.35s ease;
}

.cookie-modal--open .cookie-modal__dialog{
transform:scale(1) translateY(0);
}

.cookie-modal__icon{
width:56px;
height:56px;
border-radius:50%;
background:rgba(217, 112, 118, 0.15);
color:var(--c-rose, #d97076);
display:flex;
align-items:center;
justify-content:center;
margin:0 auto 1rem;
}

.cookie-modal__title{
font-family:var(--font-heading, sans-serif);
font-size:1.2rem;
text-transform:uppercase;
letter-spacing:2px;
color:#fff;
margin:0 0 0.75rem;
}

.cookie-modal__text{
font-size:0.85rem;
line-height:1.6;
color:#aaa;
margin:0 0 1.5rem;
}

.cookie-modal__actions{
display:flex;
gap:0.75rem;
}

.cookie-modal__actions .btn{
flex:1;
padding:0.7rem 1rem;
font-size:0.85rem;
}

.cookie-modal__actions .btn--ghost{
color:#999;
border-color:#555;
}

.cookie-modal__actions .btn--ghost:hover{
color:#fff;
border-color:#888;
background:rgba(255, 255, 255, 0.05);
}

@media (max-width:480px){
.cookie-modal__dialog{
padding:2rem 1.5rem 1.5rem;
}

.cookie-modal__actions{
flex-direction:column;
}

}

/* ==========================================================================
HOME - Hero, Stats, Services, CTA Banner, Reference Preview
========================================================================== */
/* ==========================================================================
HERO
========================================================================== */
.hero{
position:relative;
min-height:100vh;
display:flex;
align-items:center;
overflow:hidden;
}

.hero__slider{
position:absolute;
inset:0;
}

.hero__slide{
position:absolute;
inset:0;
background-size:cover;
background-position:center;
opacity:0;
transform:scale(1.08);
transition:opacity 1.5s ease, transform 8s ease;
}

.hero__slide.active{
opacity:1;
transform:scale(1);
}

.hero__overlay{
position:absolute;
inset:0;
background:linear-gradient(
135deg,
rgba(51,50,50,0.85) 0%,
rgba(51,50,50,0.6) 40%,
rgba(51,50,50,0.4) 100%
);
z-index:1;
}

.hero__content{
position:relative;
z-index:2;
padding-top:70px;
}

.hero__tag{
display:inline-block;
font-size:0.8rem;
font-weight:600;
text-transform:uppercase;
letter-spacing:4px;
color:var(--c-rose);
margin-bottom:1rem;
padding:0.4rem 1rem;
border:1px solid rgba(217,112,118,0.4);
border-radius:var(--radius);
}

.hero__title{
font-family:var(--font-heading);
font-size:clamp(2.2rem, 10vw, 9rem);
line-height:0.95;
color:var(--c-white);
letter-spacing:2px;
margin-bottom:1.5rem;
overflow-wrap:break-word;
word-break:break-word;
}

.hero__title--accent{
color:var(--c-rose);
display:block;
}

.hero__sub{
font-size:clamp(1rem, 2vw, 1.3rem);
color:rgba(255,255,255,0.7);
font-weight:400;
letter-spacing:2px;
margin-bottom:2.5rem;
}

.hero__cta{
display:flex;
gap:1rem;
flex-wrap:wrap;
}

.hero__scroll{
position:absolute;
bottom:2rem;
left:50%;
transform:translateX(-50%);
z-index:2;
display:flex;
flex-direction:column;
align-items:center;
gap:0.5rem;
color:rgba(255,255,255,0.5);
font-size:0.7rem;
text-transform:uppercase;
letter-spacing:3px;
}

.hero__scroll-line{
width:1px;
height:50px;
background:linear-gradient(to bottom, rgba(255,255,255,0.5), transparent);
animation:scrollPulse 2s infinite;
}

@keyframes scrollPulse{
0%, 100%{transform:scaleY(1);opacity:1;}

50%{transform:scaleY(0.5);opacity:0.3;}

}

/* ==========================================================================
STATS
========================================================================== */
.stats{
position:relative;
z-index:3;
margin-top:-4rem;
}

.stats__grid{
display:grid;
grid-template-columns:repeat(4, 1fr);
background:var(--card-bg);
border-radius:var(--radius-lg);
box-shadow:var(--card-shadow);
overflow:hidden;
}

.stats__item{
text-align:center;
padding:2.5rem 1.5rem;
position:relative;
transition:background var(--transition);
}

.stats__item:hover{
background:var(--bg-secondary);
}

.stats__item:not(:last-child)::after{
content:'';
position:absolute;
right:0;
top:20%;
height:60%;
width:1px;
background:var(--border);
}

.stats__number{
font-family:var(--font-heading);
font-size:clamp(2.5rem, 5vw, 3.5rem);
color:var(--c-rose);
line-height:1;
}

.stats__suffix{
font-family:var(--font-heading);
font-size:clamp(1.5rem, 3vw, 2rem);
color:var(--c-rose);
}

.stats__label{
font-size:0.85rem;
color:var(--text-muted);
margin-top:0.5rem;
}

/* ==========================================================================
SERVICES
========================================================================== */
.services{
padding:clamp(3rem, 6vw, 7rem) 0 clamp(2.5rem, 5vw, 5rem);
}

.services__grid{
display:grid;
grid-template-columns:repeat(2, 1fr);
gap:2rem;
}

@media (min-width:769px){
.services__grid{
grid-template-columns:repeat(6, 1fr);
}

.services__grid .service-card--featured{
grid-column:span 3;
}

.services__grid .service-card:nth-child(n+3){
grid-column:span 2;
}

}

.service-card{
position:relative;
border-radius:var(--radius-lg);
overflow:hidden;
background:var(--card-bg);
box-shadow:var(--card-shadow);
cursor:pointer;
transition:transform var(--transition), box-shadow var(--transition);
display:flex;
flex-direction:column;
}

.service-card:hover{
transform:translateY(-6px);
box-shadow:var(--card-shadow-hover);
}

.service-card__img-wrap{
position:relative;
height:260px;
overflow:hidden;
}

.service-card__img{
width:100%;
height:100%;
object-fit:cover;
transition:transform 0.8s ease;
}

.service-card:hover .service-card__img{
transform:scale(1.08);
}

.service-card__overlay{
position:absolute;
inset:0;
background:linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 60%);
}

.service-card__body{
padding:1.5rem 2rem 2rem;
position:relative;
display:flex;
flex-direction:column;
flex:1;
}

.service-card__title{
font-family:var(--font-heading);
font-size:1.8rem;
letter-spacing:1px;
margin-bottom:0.5rem;
padding-right:2rem;
}

.service-card__desc{
color:var(--text-muted);
font-size:0.9rem;
line-height:1.7;
margin-top:auto;
}

.service-card__arrow{
position:absolute;
top:50%;
right:2rem;
transform:translateY(-50%);
font-size:1.5rem;
color:var(--c-rose);
transition:transform var(--transition);
}

.service-card:hover .service-card__arrow{
transform:translateY(-50%) translateX(6px);
}

.service-card--featured .service-card__img-wrap{
height:320px;
}

.service-card__badge{
position:absolute;
top:1rem;
left:1rem;
z-index:2;
background:var(--c-rose);
color:var(--c-white);
font-family:var(--font-heading);
font-size:0.7rem;
letter-spacing:1.5px;
text-transform:uppercase;
padding:0.4rem 1rem;
border-radius:var(--radius-sm);
}

.service-card--featured{
border:2px solid var(--c-rose);
}

/* ==========================================================================
CTA BANNER
========================================================================== */
.cta-banner{
position:relative;
padding:6rem 0;
overflow:hidden;
}

.cta-banner__bg{
position:absolute;
inset:0;
background-size:cover;
background-position:center;
background-attachment:fixed;
}

.cta-banner__overlay{
position:absolute;
inset:0;
background:linear-gradient(135deg, rgba(51,50,50,0.9), rgba(217,112,118,0.8));
}

.cta-banner__content{
position:relative;
z-index:1;
text-align:center;
color:#fff;
}

.cta-banner__content h2{
font-family:var(--font-heading);
font-size:clamp(1.5rem, 5vw, 4.5rem);
letter-spacing:1px;
overflow-wrap:break-word;
word-break:break-word;
margin-bottom:1rem;
}

.cta-banner__content p{
font-size:1.1rem;
opacity:0.85;
max-width:700px;
margin:0 auto 2rem;
}

/* ==========================================================================
REFERENCE PREVIEW
========================================================================== */
.ref-preview{
padding:7rem 0;
}

.ref-preview__grid{
display:grid;
grid-template-columns:repeat(3, 1fr);
gap:2rem;
}

.ref-card{
background:var(--card-bg);
border-radius:var(--radius-lg);
overflow:hidden;
box-shadow:var(--card-shadow);
transition:transform var(--transition), box-shadow var(--transition);
}

.ref-card:hover{
transform:translateY(-4px);
box-shadow:var(--card-shadow-hover);
}

.ref-card__img-wrap{
height:200px;
overflow:hidden;
}

.ref-card__img{
width:100%;
height:100%;
object-fit:cover;
transition:transform 0.6s ease;
}

.ref-card:hover .ref-card__img{
transform:scale(1.06);
}

.ref-card__body{
padding:1.5rem;
}

.ref-card__date{
font-size:0.75rem;
color:var(--text-light);
text-transform:uppercase;
letter-spacing:2px;
}

.ref-card__title{
font-family:var(--font-heading);
font-size:1.5rem;
letter-spacing:1px;
margin:0.5rem 0;
}

.ref-card__desc{
font-size:0.9rem;
color:var(--text-muted);
line-height:1.7;
}

.ref-preview__more{
text-align:center;
margin-top:3rem;
}

/* ==========================================================================
RESPONSIVE - Home
========================================================================== */
@media (max-width:1024px){
.services__grid{grid-template-columns:1fr !important;}

.services__grid .service-card--featured,
.services__grid .service-card:nth-child(n+3){grid-column:span 1;}

.ref-preview__grid{grid-template-columns:1fr;}

}

@media (max-width:768px){
.hero__title{font-size:clamp(1.8rem, 9vw, 3.5rem);letter-spacing:1px;}

.stats__grid{grid-template-columns:repeat(2, 1fr);}

.stats__item:nth-child(1)::after,
.stats__item:nth-child(3)::after{display:block;}

.stats__item:nth-child(2)::after{display:none;}

.stats__item:nth-child(1),
.stats__item:nth-child(2){border-bottom:1px solid var(--border);}

.service-card__img-wrap{height:200px;}

}

@media (max-width:480px){
.hero__cta{flex-direction:column;}

.btn--lg{width:100%;justify-content:center;}

.stats__grid{grid-template-columns:1fr 1fr;}

.stats__item{padding:1.5rem 1rem;}

.hero__scroll{display:none;}

.cta-banner{padding:4rem 0;}

.cta-banner__bg{background-attachment:scroll;}

.ref-preview{padding:4rem 0;}

.service-card__title{font-size:1.4rem;}

}

/* ==========================================================================
PAGE - Generic Page, Error Page
========================================================================== */
.page-hero{
position:relative;
min-height:50vh;
display:flex;
align-items:center;
justify-content:center;
overflow:hidden;
}

.page-hero__bg{
position:absolute;
inset:0;
background-size:cover;
background-position:center;
background-attachment:fixed;
}

.page-hero__overlay{
position:absolute;
inset:0;
background:linear-gradient(135deg, rgba(51,50,50,0.88), rgba(217,112,118,0.3));
}

.page-hero__content{
position:relative;
z-index:2;
text-align:center;
padding-top:70px;
}

.page-hero__tag{
display:inline-block;
font-size:0.8rem;
font-weight:600;
text-transform:uppercase;
letter-spacing:4px;
color:var(--c-rose);
margin-bottom:1rem;
padding:0.4rem 1rem;
border:1px solid rgba(217,112,118,0.4);
border-radius:var(--radius);
}

.page-hero__content .hero__title{
font-size:clamp(1.6rem, 7vw, 5rem);
overflow-wrap:break-word;
word-break:break-word;
}

.page-hero__sub{
font-size:clamp(1rem, 2vw, 1.2rem);
color:rgba(255,255,255,0.8);
max-width:600px;
margin:1rem auto 0;
line-height:1.6;
}

.page-content{
padding:clamp(2.5rem, 5vw, 5rem) 0 clamp(2rem, 4vw, 4rem);
}

.page-body{
font-size:1.05rem;
line-height:1.8;
color:var(--text-main);
margin-bottom:3rem;
}

.page-body .page-lead{
font-size:1.25rem;
line-height:1.7;
color:var(--text-main);
max-width:800px;
margin-bottom:3rem;
border-left:3px solid var(--c-rose);
padding-left:1.5rem;
}

.page-features{
display:grid;
grid-template-columns:repeat(3, 1fr);
grid-template-rows:auto;
gap:2rem;
margin:3rem 0;
}

.page-feature{
display:grid;
grid-template-rows:subgrid;
grid-row:span 3;
align-content:start;
padding:2rem;
background:var(--card-bg);
box-shadow:var(--card-shadow);
border-radius:var(--radius-lg);
transition:transform var(--transition), box-shadow var(--transition);
}

.page-feature:hover{
transform:translateY(-4px);
box-shadow:var(--card-shadow-hover);
}

.page-feature__icon{
width:48px;
height:48px;
color:var(--c-rose);
margin-bottom:1rem;
}

.page-feature__icon-empty{
height:48px;
margin-bottom:1rem;
}

.page-feature__title{
font-family:var(--font-heading);
font-size:1.1rem;
letter-spacing:0.5px;
margin-bottom:0.5rem;
}

.page-feature__desc{
font-size:0.9rem;
line-height:1.7;
color:var(--text-muted);
}

.page-highlight{
background:var(--bg-secondary);
border-radius:var(--radius-lg);
padding:3rem;
margin:3rem 0;
display:flex;
align-items:center;
gap:3rem;
}

.page-highlight__icon{
flex-shrink:0;
width:64px;
height:64px;
color:var(--c-rose);
}

.page-highlight__content{
flex:1;
}

.page-highlight__title{
font-family:var(--font-heading);
font-size:1.3rem;
letter-spacing:0.5px;
margin-bottom:0.5rem;
}

.page-highlight__text{
color:var(--text-muted);
line-height:1.7;
}

.page-columns{
display:grid;
grid-template-columns:1fr 1fr;
gap:3rem;
margin:3rem 0;
align-items:start;
}

.page-columns p{
margin-bottom:1rem;
line-height:1.8;
}

.page-list{
list-style:none;
padding:0;
margin:1.5rem 0;
}

.page-list li{
position:relative;
padding-left:1.8rem;
margin-bottom:0.8rem;
line-height:1.6;
}

.page-list li::before{
content:'';
position:absolute;
left:0;
top:0.4rem;
width:12px;
height:12px;
border-radius:var(--radius-sm);
background:var(--c-rose);
}

.page-stats{
display:grid;
grid-template-columns:repeat(3, 1fr);
gap:2rem;
margin:3rem 0;
text-align:center;
}

.page-stat__number{
font-family:var(--font-heading);
font-size:clamp(2rem, 4vw, 3rem);
color:var(--c-rose);
display:block;
}

.page-stat__label{
font-size:0.85rem;
color:var(--text-muted);
text-transform:uppercase;
letter-spacing:1px;
margin-top:0.3rem;
}

.page-divider{
width:60px;
height:3px;
background:var(--c-rose);
border:none;
margin:3rem 0;
}

.page-children{
margin-top:3rem;
}

.page-children .section-title{
margin-bottom:2rem;
}

.page-hero--compact{
min-height:35vh;
}

/* ==========================================================================
ERROR PAGES (404, 403, 500)
========================================================================== */
.error-page{
min-height:80vh;
display:flex;
align-items:center;
justify-content:center;
text-align:center;
padding:6rem 0;
}

.error-page .container{
max-width:600px;
}

.error-page__visual{
position:relative;
margin-bottom:2rem;
}

.error-page__code{
font-family:var(--font-heading);
font-size:clamp(7rem, 22vw, 12rem);
font-weight:400;
line-height:1;
color:transparent;
-webkit-text-stroke:2px var(--c-rose);
letter-spacing:0.05em;
display:block;
user-select:none;
}

.error-page__title{
font-family:var(--font-heading);
font-size:clamp(1.1rem, 3vw, 1.5rem);
text-transform:uppercase;
letter-spacing:1px;
color:var(--text-main);
margin:0 0 0.75rem;
}

.error-page__text{
font-size:1rem;
line-height:1.7;
color:var(--text-muted);
margin:0 0 2rem;
}

.error-page__actions{
display:flex;
gap:0.75rem;
justify-content:center;
flex-wrap:wrap;
}

.error-page__crane{
position:absolute;
top:15%;
right:10%;
width:3px;
height:60%;
}

.error-page__crane-arm{
position:absolute;
top:0;
right:0;
width:60px;
height:3px;
background:var(--c-anthracite);
transform-origin:right center;
}

.error-page__crane-cable{
position:absolute;
top:3px;
right:20px;
width:1.5px;
height:30px;
background:var(--text-muted);
animation:error-swing 3s ease-in-out infinite;
transform-origin:top center;
}

.error-page__crane-hook{
position:absolute;
top:100%;
left:0;
translate:-70% 0;
width:10px;
height:10px;
border:2px solid var(--c-rose);
border-top:none;
border-radius:0 0 50% 50%;
}

@keyframes error-swing{
0%, 100%{transform:rotate(-8deg);}

50%{transform:rotate(8deg);}

}

.error-page__barrier{
position:absolute;
bottom:-8%;
left:50%;
transform:translateX(-50%);
width:80%;
max-width:300px;
height:20px;
overflow:hidden;
border-radius:var(--radius);
opacity:0.7;
background:repeating-linear-gradient(
-45deg,
var(--c-yellow) 0px,
var(--c-yellow) 10px,
var(--c-anthracite) 10px,
var(--c-anthracite) 20px
);
background-size:28px 100%;
animation:error-barrier 1.5s linear infinite;
}

@keyframes error-barrier{
from{background-position:0 0;}

to{background-position:28px 0;}

}

.error-page__rubble{
position:absolute;
bottom:-10px;
left:50%;
transform:translateX(-50%);
width:180px;
height:50px;
}

.error-page__brick{
position:absolute;
background:var(--c-rose);
border-radius:var(--radius-sm);
opacity:0.5;
animation:error-settle 2s ease-out infinite alternate;
}

.error-page__brick--1{
width:30px;
height:14px;
bottom:0;
left:15px;
animation-duration:2s;
}

.error-page__brick--2{
width:24px;
height:12px;
bottom:6px;
left:55px;
animation-duration:2.5s;
animation-delay:0.3s;
}

.error-page__brick--3{
width:18px;
height:10px;
bottom:2px;
left:85px;
animation-duration:1.8s;
animation-delay:0.6s;
}

.error-page__brick--4{
width:22px;
height:11px;
bottom:10px;
left:35px;
opacity:0.35;
animation-duration:2.2s;
animation-delay:0.15s;
}

.error-page__brick--5{
width:16px;
height:9px;
bottom:0;
left:115px;
opacity:0.4;
animation-duration:1.6s;
animation-delay:0.45s;
}

.error-page__dust{
position:absolute;
width:6px;
height:6px;
border-radius:50%;
background:var(--c-rose);
opacity:0;
animation:error-dust 3s ease-out infinite;
}

.error-page__dust--1{
bottom:16px;
left:40px;
animation-delay:0s;
}

.error-page__dust--2{
bottom:20px;
left:80px;
animation-delay:1s;
}

.error-page__dust--3{
bottom:14px;
left:110px;
animation-delay:2s;
}

@keyframes error-settle{
0%{transform:translateY(0) rotate(var(--r, 0deg));}

100%{transform:translateY(-4px) rotate(var(--r, 0deg));}

}

@keyframes error-dust{
0%{opacity:0;transform:translateY(0) scale(1);}

20%{opacity:0.4;}

100%{opacity:0;transform:translateY(-20px) scale(0.3);}

}

/* ==========================================================================
RESPONSIVE - Page
========================================================================== */
@media (max-width:1024px){
.page-features{grid-template-columns:repeat(2, 1fr);}

.page-columns{grid-template-columns:1fr;}

.page-stats{grid-template-columns:repeat(3, 1fr);}

}

@media (max-width:768px){
.page-features{grid-template-columns:1fr;}

.page-highlight{flex-direction:column;text-align:center;padding:2rem;}

.page-stats{grid-template-columns:1fr;gap:1.5rem;}

.page-hero__bg{background-attachment:scroll;}

}

@media (max-width:480px){
.page-highlight{padding:1.5rem;gap:1.5rem;}

.page-body{font-size:1rem;}

.page-features{gap:1.25rem;}

.page-feature{padding:1.5rem;}

.page-stats{gap:1rem;}

.page-hero__bg{background-attachment:scroll;}

}

/* ==========================================================================
AKTUALITY + ATTACHMENTS
========================================================================== */
.aktuality{
padding:clamp(2rem, 4vw, 4rem) 0 clamp(2.5rem, 5vw, 5rem);
}

.aktuality__list{
max-width:900px;
margin:0 auto;
}

.aktuality__item{
display:flex;
gap:2rem;
padding:2rem 0;
border-bottom:1px solid var(--border);
}

.aktuality__item:first-child{padding-top:0;}

.aktuality__date-col{
flex-shrink:0;
width:80px;
text-align:center;
}

.aktuality__date{
display:flex;
flex-direction:column;
align-items:center;
background:var(--bg-secondary);
border-radius:var(--radius);
padding:0.75rem 0.5rem;
}

.aktuality__date-month{
font-family:var(--font-heading);
font-size:1rem;
line-height:1;
letter-spacing:2px;
color:var(--text-muted);
font-weight:600;
}

.aktuality__date-year{
font-size:0.7rem;
color:var(--text-light);
}

.aktuality__title{
font-family:var(--font-heading);
font-size:1.3rem;
letter-spacing:1px;
margin-bottom:0.5rem;
}

.aktuality__text{
color:var(--text-muted);
line-height:1.7;
font-size:0.95rem;
}

.aktuality__images{
display:flex;
gap:0.5rem;
margin-top:1rem;
flex-wrap:wrap;
}

.aktuality__img{
height:120px;
max-width:100%;
border-radius:var(--radius-lg);
object-fit:cover;
}

.aktuality__date.aktuality__date--current{
background:var(--c-rose);
border-color:var(--c-rose);
box-shadow:0 0 20px rgba(217,112,118,0.3);
}

.aktuality__date--current .aktuality__date-month,
.aktuality__date--current .aktuality__date-year{
color:#fff;
}

.aktuality__badge{
font-size:0.55rem;
text-transform:uppercase;
letter-spacing:2px;
font-weight:700;
color:#fff;
animation:badgePulse 2s ease-in-out infinite;
}

@keyframes badgePulse{
0%, 100%{opacity:1;}

50%{opacity:0.5;}

}

.aktuality__item--current{
border-left:3px solid var(--c-rose);
padding-left:calc(1.5rem - 3px);
}

.aktuality__years{
display:flex;
flex-wrap:wrap;
gap:0.5rem;
margin-bottom:2rem;
padding-bottom:1.5rem;
border-bottom:1px solid var(--border);
}

.aktuality__year-btn{
background:var(--bg-secondary);
border:1px solid var(--border);
color:var(--text-muted);
padding:0.4rem 1rem;
border-radius:var(--radius);
font-size:0.85rem;
font-weight:500;
cursor:pointer;
transition:all var(--transition);
}

.aktuality__year-btn:hover{
border-color:var(--c-rose);
color:var(--c-rose);
}

.aktuality__year-btn.active{
background:var(--c-rose);
border-color:var(--c-rose);
color:#fff;
}

.aktuality__load-more{
text-align:center;
margin-top:2rem;
padding-top:2rem;
}

.aktuality__count{
font-size:0.8rem;
color:var(--text-muted);
margin-top:0.75rem;
}

.aktuality__list.filtering .aktuality__item{
transition:none;
}

.aktuality__item.hidden{
display:none;
}

.aktuality__item.fade-in{
animation:aktFadeIn 0.5s ease both;
}

@keyframes aktFadeIn{
from{
opacity:0;
transform:translateY(20px);
}

to{
opacity:1;
transform:translateY(0);
}

}

.aktuality__list.fade-out{
opacity:0;
transform:translateY(-8px);
transition:opacity 0.25s ease, transform 0.25s ease;
}

/* ==========================================================================
ATTACHMENTS
========================================================================== */
.attachments{
display:flex;
flex-wrap:wrap;
gap:0.75rem;
margin-top:1rem;
}

.attachment{
display:flex;
align-items:center;
gap:0.75rem;
padding:0.75rem 1rem;
background:var(--bg-secondary);
border:1px solid var(--border);
border-radius:var(--radius);
text-decoration:none;
color:var(--text-main);
transition:border-color var(--transition), box-shadow var(--transition);
}

.attachment:hover{
border-color:var(--c-rose);
box-shadow:0 2px 12px rgba(217,112,118,0.15);
}

.attachment__icon{
color:var(--c-rose);
flex-shrink:0;
}

.attachment__info{
display:flex;
flex-direction:column;
gap:0.1rem;
}

.attachment__name{
font-size:0.85rem;
font-weight:500;
line-height:1.3;
}

.attachment__ext{
font-size:0.7rem;
color:var(--text-muted);
letter-spacing:1px;
}

.attachment__download{
flex-shrink:0;
color:var(--text-muted);
margin-left:0.5rem;
transition:color var(--transition);
}

.attachment:hover .attachment__download{
color:var(--c-rose);
}

/* ==========================================================================
RESPONSIVE - Aktuality
========================================================================== */
@media (max-width:768px){
.aktuality__item{flex-direction:column;gap:1rem;}

.aktuality__date-col{width:auto;}

.aktuality__date{flex-direction:row;gap:0.5rem;padding:0.5rem 1rem;}

.aktuality__years{gap:0.35rem;}

.aktuality__year-btn{padding:0.3rem 0.7rem;font-size:0.8rem;}

}

@media (max-width:480px){
.aktuality__years{flex-wrap:wrap;justify-content:center;}

.aktuality__content-col{padding:0 0.5rem;}

.aktuality__img{height:90px;}

.aktuality__item{padding:1.5rem 0;}

}

/* ==========================================================================
CONTACT PAGE
========================================================================== */
.contact-hero{
position:relative;
min-height:50vh;
display:flex;
align-items:center;
justify-content:center;
overflow:hidden;
}

.contact-hero__bg{
position:absolute;
inset:0;
background-size:cover;
background-position:center;
}

.contact-hero__overlay{
position:absolute;
inset:0;
background:linear-gradient(135deg, rgba(51,50,50,0.88), rgba(217,112,118,0.5));
}

.contact-hero__content{
position:relative;
z-index:2;
text-align:center;
padding-top:70px;
}

.contact-hero__content .hero__title{
font-size:clamp(3rem, 10vw, 7rem);
}

.contact-strip{
position:relative;
z-index:3;
margin-top:-3rem;
margin-bottom:4rem;
}

.contact-strip__grid{
display:grid;
grid-template-columns:repeat(4, 1fr);
gap:1rem;
}

.contact-strip__item{
display:flex;
align-items:center;
gap:1rem;
background:var(--card-bg);
padding:1.5rem;
border-radius:var(--radius);
box-shadow:var(--card-shadow);
transition:transform var(--transition), box-shadow var(--transition);
text-decoration:none;
color:var(--text-main);
}

a.contact-strip__item:hover{
transform:translateY(-3px);
box-shadow:var(--card-shadow-hover);
}

.contact-strip__icon{
display:flex;
align-items:center;
justify-content:center;
width:48px;
height:48px;
background:var(--bg-secondary);
border-radius:var(--radius-lg);
color:var(--c-rose);
flex-shrink:0;
}

.contact-strip__label{
display:block;
font-size:0.7rem;
text-transform:uppercase;
letter-spacing:2px;
color:var(--text-light);
margin-bottom:0.15rem;
}

.contact-strip__value{
display:block;
font-weight:600;
font-size:0.9rem;
}

.contact-main{
padding-bottom:5rem;
}

.contact-main__grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:3rem;
align-items:start;
}

.contact-section-title{
font-size:clamp(1.8rem, 4vw, 2.5rem);
margin-bottom:1.5rem;
text-align:left;
}

.team-cards{
display:flex;
flex-direction:column;
gap:1rem;
}

.team-card{
display:flex;
gap:1rem;
padding:1.25rem;
background:var(--card-bg);
border-radius:var(--radius);
box-shadow:var(--card-shadow);
transition:transform var(--transition), box-shadow var(--transition);
}

.team-card:hover{
transform:translateX(6px);
box-shadow:var(--card-shadow-hover);
}

.team-card__avatar{
width:48px;
height:48px;
border-radius:var(--radius-lg);
background:linear-gradient(135deg, var(--c-rose), var(--c-rose));
color:var(--c-white);
font-family:var(--font-heading);
font-size:1.3rem;
display:flex;
align-items:center;
justify-content:center;
flex-shrink:0;
letter-spacing:0;
}

.team-card__name{
font-family:var(--font-body);
font-size:0.95rem;
font-weight:700;
margin-bottom:0.1rem;
}

.team-card__position{
font-size:0.8rem;
color:var(--text-muted);
margin-bottom:0.4rem;
}

.team-card__contact{
display:flex;
flex-wrap:wrap;
gap:0.75rem;
}

.team-card__link{
display:inline-flex;
align-items:center;
gap:0.35rem;
font-size:0.8rem;
color:var(--c-rose);
transition:color var(--transition);
}

.team-card__link:hover{
color:var(--c-rose);
}

.company-details{
margin-top:2rem;
padding:1.5rem;
background:var(--bg-secondary);
border-radius:var(--radius);
}

.company-details__logo{
height:48px;
opacity:0.15;
float:right;
margin:-0.5rem 0 0.5rem 1rem;
}

.company-details h3{
font-family:var(--font-heading);
font-size:1.2rem;
letter-spacing:1px;
margin-bottom:1rem;
}

.company-details__grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:0.75rem;
}

.company-details__label{
display:block;
font-size:0.7rem;
text-transform:uppercase;
letter-spacing:1.5px;
color:var(--text-light);
}

.company-details__value{
font-weight:600;
font-size:0.9rem;
}

.contact-form-wrap{
padding:2.5rem;
background:var(--card-bg);
border-radius:var(--radius-lg);
box-shadow:var(--card-shadow);
}

.contact-form-desc{
color:var(--text-muted);
margin-bottom:2rem;
font-size:0.95rem;
}

.form-row{
display:grid;
grid-template-columns:1fr 1fr;
gap:1rem;
}

.form-group{
margin-bottom:1.25rem;
}

.form-label{
display:block;
font-size:0.8rem;
font-weight:600;
text-transform:uppercase;
letter-spacing:1px;
color:var(--text-muted);
margin-bottom:0.4rem;
}

.form-input{
width:100%;
padding:0.85rem 1rem;
min-height:44px;
background:var(--bg-secondary);
border:2px solid transparent;
border-radius:var(--radius);
font-family:var(--font-body);
font-size:0.95rem;
color:var(--text-main);
transition:border-color var(--transition), box-shadow var(--transition);
outline:none;
}

.form-input::placeholder{
color:var(--text-light);
}

.form-input:focus{
border-color:var(--c-rose);
box-shadow:0 0 0 3px rgba(217,112,118, 0.1);
}

.form-textarea{
resize:vertical;
min-height:120px;
}

.contact-form__submit{
width:100%;
justify-content:center;
margin-top:0.5rem;
}

.form-alert{
padding:1rem 1.25rem;
border-radius:var(--radius);
font-size:0.9rem;
font-weight:500;
margin-bottom:1.5rem;
}

.form-alert--success{
background:var(--alert-success-bg);
color:var(--alert-success);
border:1px solid var(--alert-success-border);
}

.form-alert--error{
background:var(--alert-error-bg);
color:var(--alert-error);
border:1px solid var(--alert-error-border);
}

.contact-map{
line-height:0;
}

#contact-map{
height:450px;
}

@media (max-width:768px){
#contact-map{height:350px;}

}

@media (max-width:480px){
#contact-map{height:280px;}

}

.map-ctrl-overlay{
position:absolute;
inset:0;
display:flex;
align-items:center;
justify-content:center;
background:rgba(0, 0, 0, 0.5);
color:var(--c-white);
font-size:0.9rem;
font-weight:600;
z-index:1000;
pointer-events:none;
opacity:0;
transition:opacity 0.3s;
}

.map-ctrl-overlay--visible{
opacity:1;
}

.contact-map-icon{
background:none !important;
border:none !important;
}

.contact-map-popup-wrap .leaflet-popup-content-wrapper{
border-radius:var(--radius, 8px);
box-shadow:0 6px 24px rgba(0, 0, 0, 0.15);
font-family:var(--font-body, 'Inter', sans-serif);
}

.contact-map-popup-wrap .leaflet-popup-content{
margin:0.75rem 1rem;
}

.contact-map-popup-wrap .leaflet-popup-tip{
box-shadow:0 4px 12px rgba(0, 0, 0, 0.1);
}

.contact-map-popup{
display:flex;
flex-direction:column;
gap:0.4rem;
padding:0;
min-width:200px;
}

.contact-map-popup__name{
font-family:var(--font-heading, 'Good Times', sans-serif);
font-size:0.95rem;
text-transform:uppercase;
color:var(--c-anthracite, #333);
}

.contact-map-popup__address{
margin:0;
font-size:0.85rem;
color:var(--text-muted);
}

.contact-map-popup .contact-map-popup__link{
display:block;
font-size:0.85rem;
color:var(--c-rose, #c4626a);
text-decoration:none;
}

.contact-map-popup .contact-map-popup__link:hover{
text-decoration:underline;
}

.contact-map-popup .contact-map-popup__nav{
display:inline-block;
margin-top:0.35rem;
padding:0.4rem 0.75rem;
background:var(--c-rose, #c4626a);
color:var(--c-white);
border-radius:var(--radius-sm, 4px);
text-decoration:none;
font-size:0.8rem;
font-weight:600;
text-align:center;
transition:background 0.2s;
}

.contact-map-popup .contact-map-popup__nav:hover{
background:var(--c-red, #e50515);
color:var(--c-white);
}

[data-theme="dark"] .contact-map-popup__name{
color:var(--text-main);
}

[data-theme="dark"] .contact-map-popup__address{
color:var(--text-muted);
}

/* ==========================================================================
RESPONSIVE - Contact
========================================================================== */
@media (max-width:1024px){
.contact-strip__grid{grid-template-columns:1fr 1fr;}

.contact-main__grid{grid-template-columns:1fr;}

}

@media (max-width:768px){
.company-details__grid{grid-template-columns:1fr;}

.form-row{grid-template-columns:1fr;}

}

@media (max-width:480px){
.contact-strip__grid{grid-template-columns:1fr;}

.contact-form-wrap{padding:1.5rem;}

}

/* ==========================================================================
GALLERY
========================================================================== */
.gallery-section{
padding:3rem 0 5rem;
}

.breadcrumb{
display:flex;
align-items:center;
gap:0.5rem;
font-size:0.85rem;
color:var(--text-muted);
margin-bottom:2rem;
}

.breadcrumb a{
color:var(--text-muted);
transition:color var(--transition);
}

.breadcrumb a:hover{color:var(--c-rose);}

.breadcrumb__sep{opacity:0.4;}

.gallery-cats{
display:grid;
grid-template-columns:repeat(2, 1fr);
gap:2rem;
}

.gallery-cat{
display:block;
background:var(--card-bg);
border-radius:var(--radius-lg);
overflow:hidden;
box-shadow:var(--card-shadow);
transition:transform var(--transition), box-shadow var(--transition);
text-decoration:none;
color:var(--text-main);
}

.gallery-cat:hover{
transform:translateY(-6px);
box-shadow:var(--card-shadow-hover);
}

.gallery-cat__img-wrap{
position:relative;
height:220px;
overflow:hidden;
}

.gallery-cat__img{
width:100%;
height:100%;
object-fit:cover;
transition:transform 0.6s ease;
}

.gallery-cat:hover .gallery-cat__img{
transform:scale(1.08);
}

.gallery-cat__overlay{
position:absolute;
inset:0;
background:linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 60%);
}

.gallery-cat__count{
position:absolute;
bottom:0.75rem;
right:0.75rem;
background:rgba(0,0,0,0.5);
color:#fff;
font-size:0.75rem;
padding:0.25rem 0.6rem;
border-radius:var(--radius);
backdrop-filter:blur(4px);
}

.gallery-cat__body{
padding:1.25rem 1.5rem 1.5rem;
}

.gallery-cat__title{
font-family:var(--font-heading);
font-size:1.2rem;
letter-spacing:0.5px;
margin-bottom:0.4rem;
}

.gallery-cat__desc{
font-size:0.85rem;
color:var(--text-muted);
line-height:1.6;
margin-bottom:0.75rem;
}

.gallery-cat__link{
font-size:0.85rem;
color:var(--c-rose);
font-weight:500;
}

.gallery-projects{
display:grid;
grid-template-columns:repeat(4, 1fr);
gap:1.25rem;
}

.gallery-proj{
display:block;
text-decoration:none;
color:var(--text-main);
}

.gallery-proj__img-wrap{
position:relative;
aspect-ratio:4 / 3;
border-radius:var(--radius-lg);
overflow:hidden;
background:var(--bg-secondary);
}

.gallery-proj__img{
width:100%;
height:100%;
object-fit:cover;
transition:transform 0.5s ease;
}

.gallery-proj:hover .gallery-proj__img{
transform:scale(1.06);
}

.gallery-proj__overlay{
position:absolute;
inset:0;
background:rgba(0,0,0,0);
transition:background 0.3s ease;
}

.gallery-proj:hover .gallery-proj__overlay{
background:rgba(0,0,0,0.15);
}

.gallery-proj__count{
position:absolute;
top:0.5rem;
right:0.5rem;
background:var(--c-rose);
color:#fff;
font-family:var(--font-heading);
font-size:0.75rem;
width:28px;
height:28px;
display:flex;
align-items:center;
justify-content:center;
border-radius:50%;
}

.gallery-proj__title{
font-size:0.8rem;
margin-top:0.6rem;
line-height:1.4;
color:var(--text-muted);
}

.gallery-proj:hover .gallery-proj__title{
color:var(--c-rose);
}

.gallery-grid{
display:grid;
grid-template-columns:repeat(4, 1fr);
gap:0.75rem;
}

.gallery-grid__item{
aspect-ratio:4 / 3;
border-radius:var(--radius);
overflow:hidden;
cursor:zoom-in;
}

.gallery-grid__img{
width:100%;
height:100%;
object-fit:cover;
transition:transform 0.4s ease;
}

.gallery-grid__item:hover .gallery-grid__img{
transform:scale(1.06);
}

/* ==========================================================================
RESPONSIVE - Gallery
========================================================================== */
@media (max-width:1024px){
.gallery-cats{grid-template-columns:1fr;}

.gallery-projects{grid-template-columns:repeat(3, 1fr);}

.gallery-grid{grid-template-columns:repeat(3, 1fr);}

}

@media (max-width:768px){
.gallery-projects{grid-template-columns:repeat(2, 1fr);gap:1rem;}

.gallery-grid{grid-template-columns:repeat(2, 1fr);gap:0.5rem;}

.gallery-cat__img-wrap{height:180px;}

.breadcrumb{font-size:0.8rem;flex-wrap:wrap;}

}

@media (max-width:480px){
.gallery-grid{grid-template-columns:1fr;}

.gallery-projects{grid-template-columns:1fr;}

.gallery-cat__img-wrap{height:150px;}

}

/* ==========================================================================
COMPONENTS - Lightbox, Modal
========================================================================== */
/* ==========================================================================
LIGHTBOX
========================================================================== */
.lightbox{
position:fixed;
inset:0;
z-index:var(--z-lightbox);
display:flex;
align-items:center;
justify-content:center;
opacity:0;
visibility:hidden;
transition:opacity 0.3s ease, visibility 0.3s ease;
}

.lightbox.open{
opacity:1;
visibility:visible;
}

.lightbox__backdrop{
position:absolute;
inset:0;
background:rgba(0,0,0,0.92);
backdrop-filter:blur(8px);
}

.lightbox__content{
position:relative;
z-index:2;
max-width:90vw;
max-height:85vh;
display:flex;
align-items:center;
justify-content:center;
touch-action:pan-y pinch-zoom;
}

.lightbox__img{
max-width:100%;
max-height:85vh;
object-fit:contain;
border-radius:var(--radius);
transform:scale(0.95);
transition:transform 0.3s ease;
user-select:none;
-webkit-user-drag:none;
}

.lightbox.open .lightbox__img{
transform:scale(1);
}

.lightbox__close{
position:absolute;
top:1rem;
right:1rem;
z-index:3;
background:rgba(255,255,255,0.1);
border:none;
color:#fff;
cursor:pointer;
width:44px;
height:44px;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
transition:background 0.2s;
}

.lightbox__close:hover{
background:rgba(255,255,255,0.25);
}

.lightbox__nav{
position:absolute;
top:50%;
transform:translateY(-50%);
z-index:3;
background:rgba(255,255,255,0.08);
border:none;
color:#fff;
cursor:pointer;
width:48px;
height:48px;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
transition:background 0.2s, opacity 0.2s;
}

.lightbox__nav:hover{
background:rgba(255,255,255,0.2);
}

.lightbox__nav--prev{left:1rem;}

.lightbox__nav--next{right:1rem;}

.lightbox__nav[disabled]{
opacity:0.2;
pointer-events:none;
}

.lightbox__caption{
position:absolute;
bottom:3rem;
left:50%;
transform:translateX(-50%);
z-index:3;
color:rgba(255,255,255,0.7);
font-size:0.9rem;
text-align:center;
max-width:80%;
}

.lightbox__counter{
position:absolute;
top:1.2rem;
left:1.2rem;
z-index:3;
color:rgba(255,255,255,0.5);
font-size:0.8rem;
font-family:var(--font-heading);
letter-spacing:1px;
}

.lightbox-trigger{
display:block;
position:relative;
overflow:hidden;
border-radius:var(--radius);
cursor:zoom-in;
}

.lightbox-trigger img{
transition:transform 0.4s ease;
}

.lightbox-trigger:hover img{
transform:scale(1.05);
}

.lightbox-trigger::after{
content:'';
position:absolute;
inset:0;
background:rgba(0,0,0,0);
transition:background 0.3s;
}

.lightbox-trigger:hover::after{
background:rgba(0,0,0,0.15);
}

/* ==========================================================================
MODAL
========================================================================== */
.modal{
position:fixed;
inset:0;
z-index:var(--z-modal);
display:flex;
align-items:center;
justify-content:center;
opacity:0;
visibility:hidden;
transition:opacity 0.3s ease, visibility 0.3s ease;
}

.modal.open{
opacity:1;
visibility:visible;
}

.modal__backdrop{
position:absolute;
inset:0;
background:rgba(0,0,0,0.6);
backdrop-filter:blur(4px);
}

.modal__dialog{
position:relative;
width:90%;
max-width:800px;
max-height:85vh;
background:var(--bg-primary);
border-radius:var(--radius-lg);
box-shadow:0 25px 80px rgba(0,0,0,0.3);
display:flex;
flex-direction:column;
transform:translateY(20px) scale(0.97);
transition:transform 0.3s ease;
}

.modal.open .modal__dialog{
transform:translateY(0) scale(1);
}

.modal__header{
display:flex;
align-items:center;
justify-content:space-between;
padding:1.5rem 2rem;
border-bottom:1px solid var(--border);
flex-shrink:0;
}

.modal__title{
font-family:var(--font-heading);
font-size:1.3rem;
letter-spacing:1px;
}

.modal__close{
background:none;
border:none;
cursor:pointer;
color:var(--text-muted);
padding:0.25rem;
min-width:44px;
min-height:44px;
display:flex;
align-items:center;
justify-content:center;
border-radius:var(--radius);
transition:color var(--transition), background var(--transition);
}

.modal__close:hover{
color:var(--c-rose);
background:var(--bg-secondary);
}

.modal__body{
padding:2rem;
overflow-y:auto;
font-size:0.95rem;
line-height:1.7;
}

.modal__body .page-lead{font-size:1.05rem;}

.modal__body .page-features{gap:1.5rem;}

.modal__body .page-feature{padding:1.5rem;}

.modal__body .page-columns{gap:2rem;}

.modal__dialog--contact{
max-width:560px;
}

.modal__dialog--contact .modal__title{
display:flex;
align-items:center;
gap:0.5rem;
}

.modal__dialog--contact .modal__title svg{
color:var(--c-rose);
}

.contact-modal__recipient{
font-size:0.85rem;
font-weight:600;
color:var(--c-rose);
background:var(--bg-secondary);
padding:0.6rem 1rem;
border-radius:var(--radius);
margin-bottom:1.25rem;
align-items:center;
gap:0.4rem;
display:none;
}

.contact-modal__recipient.is-visible{
display:flex;
}

.contact-modal__recipient::before{
content:'';
width:8px;
height:8px;
border-radius:50%;
background:var(--c-rose);
flex-shrink:0;
}

.contact-modal__form .form-row{
display:grid;
grid-template-columns:1fr 1fr;
gap:1rem;
}

.contact-modal__form .form-group{
margin-bottom:1rem;
}

.contact-modal__submit{
width:100%;
justify-content:center;
margin-top:0.25rem;
}

.contact-modal__submit:disabled{
opacity:0.7;
cursor:wait;
}

.contact-modal__alert{
padding:0.85rem 1rem;
border-radius:var(--radius);
font-size:0.9rem;
font-weight:500;
margin-bottom:1rem;
}

.contact-modal__alert--success{
background:var(--alert-success-bg);
color:var(--alert-success);
border:1px solid var(--alert-success-border);
}

.contact-modal__alert--error{
background:var(--alert-error-bg);
color:var(--alert-error);
border:1px solid var(--alert-error-border);
}

/* ==========================================================================
RESPONSIVE - Components
========================================================================== */
@media (max-width:768px){
.lightbox__nav{width:44px;height:44px;}

.lightbox__nav--prev{left:0.5rem;}

.lightbox__nav--next{right:0.5rem;}

.lightbox__close{top:0.5rem;right:0.5rem;}

.modal__dialog{
width:95%;
max-height:90vh;
}

.modal__header{padding:1rem 1.25rem;}

.modal__body{padding:1.25rem;}

.modal__body .page-features{grid-template-columns:1fr;}

.modal__body .page-columns{grid-template-columns:1fr;}

.contact-modal__form .form-row{grid-template-columns:1fr;}

}

/* ==========================================================================
BRAND NAME HIGHLIGHT
========================================================================== */
.brand-name{
font-family:var(--font-heading);
text-transform:uppercase;
letter-spacing:0.03em;
font-size:0.92em;
white-space:nowrap;
}

.brand-name--plain{
white-space:nowrap;
}

.brand-name--color{
color:var(--c-rose);
}

