:root{
  --bg:#fff;--grad:#ebfbff; --bg-alt:#ebfbff; --text:#2b2d33; --faded:#8f9099;
  --accent:#e00000; --link:#288dea; --border:#d6d6d6; --max:1000px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:17px/1.65 Tahoma,Verdana,Arial,sans-serif;color:var(--text);background:linear-gradient(180deg,#fff 0,var(--bg-alt) 320px) var(--bg-alt);display:flex;flex-direction:column;min-height:100vh}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 20px}
a{color:var(--link)}
a:hover{color:var(--accent)}

.site-header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px;padding-bottom:8px}
.logo img{display:block;height:auto;max-width:100%;width:250px}
.phone{font-size:1.25rem;font-weight:bold;color:var(--accent);text-decoration:none;white-space:nowrap}
.site-header nav{display:flex;flex-wrap:wrap;gap:4px 24px;padding-bottom:10px}
.site-header nav a{color:var(--text);text-decoration:none;padding:4px 0;border-bottom:3px solid transparent}
.site-header nav a:hover,.site-header nav a[aria-current]{border-bottom-color:var(--accent);color:var(--accent)}

.hero{height:clamp(110px,22vw,230px);background:#a9c0d3 url(../img/Unbenannt-1-1.png) center/cover no-repeat}

main{flex:1;padding-top:36px;padding-bottom:56px}
h1{color:var(--accent);font-size:clamp(1.6rem,4vw,2.2rem);line-height:1.2;margin:0 0 .6em}
h2{color:var(--accent);font-size:1.4rem;margin:1.8em 0 .5em}
.lead{font-size:1.2rem;font-weight:bold}
.sign{margin-top:2em}
.btn{display:inline-block;background:var(--accent);color:#fff;border:0;padding:.7em 1.6em;font:inherit;font-weight:bold;text-decoration:none;border-radius:4px;cursor:pointer}
.btn:hover{background:#a80000;color:#fff}

.services{list-style:none;padding:0;margin:1em 0 1.5em;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.services li{background:var(--bg-alt);border-left:4px solid var(--accent);padding:.6em 1em}

.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.gallery img{width:100%;aspect-ratio:1;object-fit:cover;display:block;border-radius:3px;transition:opacity .2s}
.gallery a:hover img{opacity:.8}
.lightbox{display:none;position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.88);align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#fff;text-decoration:none;padding:16px}
.lightbox:target{display:flex}
.lightbox img{max-width:100%;max-height:calc(100vh - 80px);object-fit:contain}

.cols{display:grid;grid-template-columns:2fr 1fr;gap:40px}
form label{display:block;margin-bottom:1em;font-weight:bold}
form input,form textarea{display:block;width:100%;margin-top:.3em;padding:.6em;font:inherit;border:1px solid var(--border);border-radius:4px}
form input:focus,form textarea:focus{outline:2px solid var(--link);border-color:var(--link)}
address{font-style:normal;background:var(--bg-alt);padding:1.2em;align-self:start;border-radius:4px}
.small{font-size:.85rem;color:var(--faded)}

.legal{max-width:760px}
.legal h2{font-size:1.25rem}
.legal h3{font-size:1.05rem;margin-top:1.4em}
.legal p,.legal li{font-size:.95rem}
.legal{overflow-wrap:anywhere}

footer{background:linear-gradient(180deg,var(--bg-alt),#fff);font-size:.9rem}
.foot-in{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-top:16px;padding-bottom:16px}
footer a{color:var(--text)}

@media (max-width:700px){
  .head-in{flex-direction:column;align-items:flex-start;gap:6px}
  .cols{grid-template-columns:1fr}
  .site-header{position:static}
}

form label.check{font-weight:normal;font-size:.9rem;display:flex;gap:10px;align-items:flex-start}
form label.check input{width:auto;margin-top:.35em}

.foot-in{align-items:center}
.foot-logo img{display:block;width:110px;height:auto}

/* RheinLaser */
.site-header nav a.nav-rl{margin-left:auto;background:#5a0a10;color:#fff;padding:4px 14px;border-radius:999px;border-bottom:3px solid #ff4d4d;font-weight:bold}
.site-header nav a.nav-rl:hover,.site-header nav a.nav-rl[aria-current]{background:#e00000;color:#fff;border-bottom-color:#5a0a10}
.rl-banner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:linear-gradient(120deg,#5a0a10,#8a1219);color:#fff;text-decoration:none;padding:16px 20px;border-radius:8px;border-left:6px solid #ff4d4d;margin-bottom:32px}
.rl-banner:hover{color:#fff;filter:brightness(1.12)}
.rl-banner em{font-style:normal;color:#ff4d4d;font-size:.9rem}
.rl-tag{background:#ff4d4d;color:#fff;font-weight:bold;padding:2px 10px;border-radius:999px;font-size:.8rem;text-transform:uppercase}
.rl-more{margin-left:auto;font-weight:bold;color:#ff4d4d}
.rl-hero{background:radial-gradient(circle at 80% 20%,#b3202a 0,transparent 55%),linear-gradient(135deg,#2a0407,#5a0a10 60%,#8a1219);color:#fff;text-align:center;padding:56px 20px;border-radius:10px;margin-bottom:40px}
.rl-hero h1{color:#fff;font-size:clamp(2.4rem,9vw,4.5rem);letter-spacing:.02em;margin:0}
.rl-hero h1 span{color:#ff4d4d}
.rl-eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.8rem;color:#ff4d4d;margin:0 0 8px}
.rl-sub{font-size:1.3rem;margin:.3em 0 1em}
.rl-powered{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 1.5em;color:#f0c4c4}
.rl-powered img{background:#fff;border-radius:6px;padding:3px;width:56px;height:56px}
.btn.btn-rl{background:#e00000;color:#fff}
.btn.btn-rl:hover{background:#fff;color:#5a0a10}
.rl-section h2{color:#5a0a10;border-bottom:3px solid #ff4d4d;display:inline-block;padding-bottom:2px}
.rl-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:1em}
.rl-cards div{background:#fff;border:1px solid var(--border);border-top:4px solid #ff4d4d;border-radius:6px;padding:14px 18px}
.rl-cards h3{margin:.2em 0;color:#5a0a10;font-size:1.1rem}
.rl-cards p{margin:0;font-size:.95rem}
.rl-list li{border-left-color:#ff4d4d}
.rl-cta{background:#5a0a10;color:#fff;text-align:center;padding:36px 20px;border-radius:10px;margin-top:40px}
.rl-cta h2{color:#fff;margin-top:0}
.rl-cta .small{color:#f0c4c4}
.rl-cta a:not(.btn){color:#ff4d4d}
@media (max-width:700px){.site-header nav a.nav-rl{margin-left:0}}

.rl-videos{display:flex;gap:20px;align-items:flex-start;justify-content:center;flex-wrap:wrap;margin-top:1em}
.rl-videos figure{margin:0}
.rl-videos video{display:block;width:100%;height:auto;background:#000;border-radius:8px;border:2px solid #ff4d4d}
.rl-videos .portrait{flex:0 1 260px}
.rl-videos .landscape{flex:1 1 380px;max-width:560px}
.rl-videos figcaption{font-size:.9rem;color:var(--faded);margin-top:6px}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rl-logo{display:block;margin:12px auto 18px;width:min(100%,520px);height:auto}
.rl-videos .square{flex:1 1 300px;max-width:380px}
.rl-powered{margin:-6px 0 18px;color:#f0c4c4;font-size:1rem;letter-spacing:.04em}.rl-powered strong{color:#fff}
.thanks{max-width:640px;margin:0 auto;text-align:center;padding:24px 0}

/* ===== Responsive ===== */
img,video{max-width:100%}
.nav-check{position:absolute;opacity:0;pointer-events:none}
.nav-toggle{display:none}

@media (max-width:900px){
  body{font-size:16px}
  .rl-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
  .cols{gap:28px}
}

@media (max-width:760px){
  .site-header{position:sticky;top:0}
  .head-in{flex-direction:row;align-items:center;flex-wrap:nowrap;gap:10px;padding-top:8px;padding-bottom:8px}
  .logo{flex:1 1 auto;min-width:0}
  .logo img{width:min(190px,100%)}
  .phone{font-size:1rem}
  .nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 9px;cursor:pointer;border:1px solid var(--border);border-radius:6px;flex:0 0 auto}
  .nav-toggle span,.nav-toggle::before,.nav-toggle::after{content:"";display:block;height:3px;background:var(--accent);border-radius:2px;transition:transform .2s,opacity .2s}
  .nav-toggle span{display:block}
  .nav-check:checked ~ .head-in .nav-toggle::before{transform:translateY(8px) rotate(45deg)}
  .nav-check:checked ~ .head-in .nav-toggle::after{transform:translateY(-8px) rotate(-45deg)}
  .nav-check:checked ~ .head-in .nav-toggle span{opacity:0}
  .nav-check:focus-visible ~ .head-in .nav-toggle{outline:2px solid var(--link)}
  .site-header nav{display:none;flex-direction:column;gap:0;padding:0 20px 12px;border-top:1px solid var(--border)}
  .nav-check:checked ~ nav{display:flex}
  .site-header nav a{padding:12px 4px;border-bottom:1px solid var(--border);font-size:1.05rem}
  .site-header nav a.nav-rl{margin:12px 0 0;text-align:center;border-radius:999px;padding:12px}
  .hero{height:clamp(90px,28vw,160px)}
  main{padding-top:24px;padding-bottom:40px}
  .cols{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(3,1fr);gap:6px}
  .rl-banner{padding:14px 16px;gap:10px}
  .rl-more{margin-left:0;width:100%}
  .rl-hero{padding:32px 16px;border-radius:8px}
  .rl-cta{padding:28px 16px}
  .rl-videos{gap:16px}
  .rl-videos .portrait{flex:0 1 240px}
  .rl-videos .landscape,.rl-videos .square{flex:1 1 100%;max-width:100%}
  .foot-in{flex-direction:column;text-align:center;gap:10px}
  .btn{display:block;text-align:center;width:100%}
  .lightbox{padding:8px}
}

@media (max-width:420px){
  .phone{font-size:.9rem}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .services{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.foot-ig{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--text);border-radius:50%}
.foot-ig:hover,.foot-ig:focus-visible{color:var(--accent);background:rgba(224,0,0,.08)}
@media (min-width:761px){.foot-in{flex-wrap:nowrap}}
