@font-face {
  font-display: swap;
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  src: url('fonts/inter-v20-latin-regular.woff2') format('woff2');
}

:root{
    --orange:#ff6a00;
    --orange-2:#ff7e1f;
    --dark:#101010;
    --light:#ffffff;
    --text:#121212;
    --max:1180px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:#111;font-family:'Inter',Arial,sans-serif;color:#fff;line-height:1.45}
a{color:inherit}
img{max-width:100%;display:block}
.page{background:#fff;overflow:hidden}
.orange{color:var(--orange)}

.section-inner{
    max-width:var(--max);
    margin:0 auto;
    padding-left:clamp(20px,4vw,50px);
    padding-right:clamp(20px,4vw,50px);
}

/* HERO */
.hero{
    background:var(--dark);
    overflow:hidden;
}

.hero-wrap{
    max-width:var(--max);
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(380px,48%) minmax(0,52%);
    min-height:720px;
}

.hero-left{
    z-index:2;
    padding:clamp(34px,5vw,66px) clamp(24px,4vw,56px);
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:linear-gradient(90deg,#101010 0%,#101010 78%,rgba(16,16,16,.78) 100%);
}

.hero-right{
    position:relative;
    overflow:hidden;
}

.hero-right::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(16,16,16,.35),rgba(16,16,16,0) 34%);
}

.hero-right img{
    width:100%;
    height:100%;
    min-height:720px;
    object-fit:cover;
    object-position:center center;
}

.logo{
    width:min(300px,78vw);
    height:auto;
    margin-bottom:clamp(28px,4vw,44px);
}

.hero h1{
    font-size:clamp(38px,6vw,74px);
    line-height:1;
    text-transform:uppercase;
    margin-bottom:24px;
    font-weight:800;
    text-wrap:balance;
}

.subline{
    font-size:clamp(20px,2.2vw,29px);
    font-weight:700;
    margin-bottom:38px;
}

.hit-box{
    border:2px solid var(--orange);
    border-radius:22px;
    padding:clamp(24px,3vw,36px);
    background:#161616;
    max-width:520px;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
}

.hit-box h2{
    font-size:clamp(32px,4vw,54px);
    line-height:1.05;
    text-transform:uppercase;
    margin-bottom:24px;
    font-weight:800;
}

.hit-box p{
    font-size:clamp(26px,3vw,38px);
    font-weight:800;
    line-height:1.12;
    text-transform:uppercase;
}

/* BENEFITS */
.benefits{
    background:#fff;
    color:var(--text);
    padding:clamp(48px,6vw,72px) 0;
}

.section-title{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:24px;
    text-align:center;
    font-size:clamp(36px,5vw,62px);
    line-height:1;
    text-transform:uppercase;
    margin-bottom:clamp(34px,4vw,52px);
    color:#111;
    font-weight:800;
}

.section-title::before,
.section-title::after{
    content:"";
    width:70px;
    height:3px;
    background:var(--orange);
}

.benefit-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:18px;
}

.benefit{
    text-align:center;
    padding:0 12px;
    border-right:1px solid rgba(255,106,0,.45);
}

.benefit:last-child{border-right:0}

.benefit-icon{
    width:72px;
    height:72px;
    margin:0 auto 18px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.benefit-icon img{
    width:72px;
    height:72px;
    object-fit:contain;
}

.benefit h3{
    font-size:clamp(18px,1.9vw,24px);
    line-height:1.1;
    text-transform:uppercase;
    margin-bottom:8px;
    font-weight:800;
}

.benefit p{
    font-size:clamp(17px,1.8vw,23px);
}

/* GALLERY */
.gallery{
    padding:clamp(16px,3vw,26px) 0 clamp(50px,6vw,70px);
    background:#fff;
    color:#111;
}

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

.gallery-grid img{
    width:100%;
    aspect-ratio:4/3;
    height:auto;
    object-fit:cover;
}

/* FAMILY */
.family{
    background:#111;
    color:#fff;
    padding:clamp(42px,5vw,58px) 0;
    border-bottom:36px solid var(--orange);
}

.family-grid{
    display:grid;
    grid-template-columns:minmax(320px,480px) 1fr;
    align-items:center;
    gap:clamp(30px,4vw,80px);
}

.family-left{
    display:flex;
    align-items:flex-start;
    gap:22px;
}

.family-icon{
    flex:0 0 86px;
    width:86px;
    height:86px;
    margin-top:8px;
}

.family-icon img{
    width:100%;
    height:100%;
    object-fit:contain;
}

.family h2{
    font-size:clamp(30px,3.6vw,48px);
    line-height:1.08;
    text-transform:uppercase;
    font-weight:800;
    overflow-wrap:break-word;
}

.family p{
    font-size:clamp(19px,2vw,28px);
    line-height:1.45;
    font-weight:600;
}

/* CTA */
.cta{
    background:linear-gradient(90deg,var(--orange),var(--orange));
    padding:clamp(30px,4vw,42px) 0;
}

.cta-grid{
    display:grid;
    grid-template-columns:40% 60%;
    align-items:center;
    gap:28px;
}

.cta-left{
    display:grid;
    grid-template-columns:78px 1fr;
    align-items:center;
    gap:22px;
}

.cta-icon{
    width:78px;
    height:78px;
    background:#111;
    border:6px solid #fff;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
}

.cta-icon img{
    width:44px;
    height:44px;
}

.cta h2{
    font-size:clamp(46px,5.6vw,72px);
    line-height:1;
    text-transform:uppercase;
    font-weight:800;
}

.cta p{
    font-size:clamp(19px,2.1vw,28px);
    font-weight:700;
    line-height:1.15;
    margin-top:6px;
}

.cta-button{
    justify-self:end;
}

.cta-button a{
    display:inline-flex;
    align-items:center;
    gap:18px;
    background:#111;
    color:#fff;
    text-decoration:none;
    padding:clamp(20px,2.6vw,30px) clamp(32px,5vw,62px);
    border-radius:18px;
    font-size:clamp(28px,3.4vw,45px);
    line-height:1;
    text-transform:uppercase;
    white-space:nowrap;
    font-weight:800;
}

.cta-button img{
    width:24px;
    height:24px;
}


/* FAQ */
.faq{
    background:#fff;
    color:#111;
    padding:clamp(58px,7vw,90px) 0;
}

.faq-head{
    max-width:760px;
    margin:0 auto clamp(34px,5vw,54px);
    text-align:center;
}

.faq-head span{
    display:inline-block;
    color:var(--orange);
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.08em;
    margin-bottom:12px;
}

.faq-head h2{
    font-size:clamp(34px,5vw,58px);
    line-height:1.05;
    text-transform:uppercase;
    font-weight:800;
}

.faq-list{
    max-width:900px;
    margin:0 auto;
    display:grid;
    gap:14px;
}

.faq-item{
    border:1px solid rgba(255,106,0,.35);
    border-radius:18px;
    background:#fff;
    box-shadow:0 12px 34px rgba(0,0,0,.06);
    overflow:hidden;
}

.faq-item summary{
    list-style:none;
    cursor:pointer;
    padding:22px 26px;
    font-size:clamp(19px,2vw,24px);
    font-weight:800;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.faq-item summary::-webkit-details-marker{
    display:none;
}

.faq-item summary::after{
    content:"+";
    flex:0 0 34px;
    width:34px;
    height:34px;
    border-radius:50%;
    background:var(--orange);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:26px;
    line-height:1;
    font-weight:700;
}

.faq-item[open] summary::after{
    content:"–";
}

.faq-item p{
    padding:0 26px 24px;
    font-size:clamp(17px,1.7vw,20px);
    line-height:1.55;
    color:#333;
}


/* FOOTER */
.footer{
    background:#0d0d0d;
    padding:26px 0;
    color:#fff;
}

.footer-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:18px;
}

.footer-box{
    text-align:center;
    padding:0 10px;
    border-right:1px solid rgba(255,255,255,.35);
}

.footer-box:last-child{
    border-right:0;
}

.footer-box h4{
    color:var(--orange);
    font-size:clamp(19px,2vw,24px);
    line-height:1.1;
    margin-bottom:8px;
    text-transform:uppercase;
    font-weight:800;
}

.footer-box p{
    font-size:clamp(15px,1.5vw,20px);
    line-height:1.35;
}

.footer-box a{
    font-size:clamp(15px,1.5vw,20px);
    line-height:1.35;
	text-decoration: none;
}

.footer-legal{
	margin-top:24px;
	padding-top:18px;
	border-top:0px solid rgba(255,255,255,.2);
	text-align:center;
	font-size:14px;
}

.footer-legal a{
	color:#fff;
	text-decoration:none;
}

.footer-legal a:hover{
	color:var(--orange);
}

.footer-legal span{
	margin:0 10px;
	color:rgba(255,255,255,.5);
}

/* LEGAL PAGES: Datenschutz & Impressum */
.legal-header{
    background:#101010;
    color:#fff;
    padding:34px 0;
    border-bottom:8px solid var(--orange);
}

.legal-header h1{
    font-size:clamp(36px,5vw,58px);
    line-height:1;
    text-transform:uppercase;
    font-weight:800;
}

.legal-content{
    background:#fff;
    color:#111;
    padding:clamp(36px,6vw,72px) 0;
}

.legal-content h2{
    font-size:clamp(24px,3vw,34px);
    margin:34px 0 12px;
    text-transform:uppercase;
    font-weight:800;
}

.legal-content h3{
    font-size:22px;
    margin:24px 0 8px;
}

.legal-content p,
.legal-content li{
    font-size:18px;
    line-height:1.6;
    margin-bottom:12px;
}

.legal-content ul{
    padding-left:22px;
    margin-bottom:18px;
}

.legal-content a{
    color:var(--orange);
    font-weight:700;
}

.back{
    display:inline-block;
    margin-top:28px;
    background:#111;
    color:#fff !important;
    text-decoration:none;
    padding:14px 22px;
    border-radius:12px;
    font-weight:700;
}

.back:hover{
    background:var(--orange);
}


.footer-social-share{
    margin-top:16px;
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:10px 16px;
    font-size:14px;
}

.footer-social-share span{
    color:rgba(255,255,255,.65);
}

.footer-social-share a{
    color:#fff;
    text-decoration:none;
    font-weight:700;
}

.footer-social-share a:hover{
    color:var(--orange);
}

.footer-copyright{
    margin-top:14px;
    text-align:center;
    color:rgba(255,255,255,.6);
    font-size:13px;
}

/* RESPONSIVE */
@media(max-width:1180px){
    .family-grid{
        grid-template-columns:1fr;
        text-align:center;
    }

    .family-left{
        justify-content:center;
        align-items:center;
        flex-direction:column;
    }

    .family p{
        max-width:820px;
        margin:0 auto;
    }
}

@media(max-width:980px){
    .hero-wrap{
        grid-template-columns:1fr;
        min-height:0;
    }

    .hero-left{
        background:#101010;
        padding-top:42px;
        padding-bottom:42px;
    }

    .hero-right{
        height:clamp(320px,60vw,560px);
    }

    .hero-right img{
        min-height:0;
        height:100%;
        object-position:center top;
    }

    .hero-right::after{
        background:linear-gradient(0deg,rgba(16,16,16,.3),rgba(16,16,16,0) 45%);
    }

    .benefit-grid{
        grid-template-columns:repeat(2,1fr);
        gap:34px 18px;
    }

    .benefit{
        border-right:0;
    }

    .benefit:nth-child(odd){
        border-right:1px solid rgba(255,106,0,.35);
    }

    .benefit:last-child{
        grid-column:1/-1;
        border-right:0;
    }

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

    .cta-grid{
        grid-template-columns:1fr;
        text-align:center;
    }

    .cta-left{
        grid-template-columns:1fr;
        justify-items:center;
    }

    .cta-button{
        justify-self:center;
    }

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

    .footer-box{
        border-right:0;
    }

    .footer-box:last-child{
        grid-column:1/-1;
    }
}

@media(max-width:560px){
    .section-inner{
        padding-left:20px;
        padding-right:20px;
    }

    .section-title{
        gap:14px;
    }

    .section-title::before,
    .section-title::after{
        width:38px;
    }

    .hero h1{
        font-size:38px;
    }

    .hit-box h2{
        font-size:31px;
    }

    .hit-box p{
        font-size:26px;
    }

    .benefit-grid,
    .gallery-grid,
    .footer-grid{
        grid-template-columns:1fr;
    }

    .benefit:nth-child(odd){
        border-right:0;
    }

    .benefit{
        border-bottom:1px solid rgba(255,106,0,.22);
        padding-bottom:24px;
    }

    .benefit:last-child{
        border-bottom:0;
    }

    .family h2{
        font-size:36px;
    }

    .family-icon{
        width:76px;
        height:76px;
        flex-basis:76px;
    }

    .cta-button a{
        width:100%;
        justify-content:center;
        white-space:normal;
        text-align:center;
    }

    .subline{
        line-height:1.25;
    }

    .hit-box{
        border-radius:18px;
    }
	
    .faq-item summary{
        padding:18px 20px;
    }

    .faq-item p{
        padding:0 20px 20px;
    }	
	
}