/* HLP Beteiligungs GmbH – petrol, ice and amber; bold grotesque type; arch-shaped hero */
:root{
  --white:#fff; --mist:#f1f4f5; --ice:#dce8eb; --petrol:#0e3a43; --petrol-2:#14505c;
  --ink:#0a1c21; --muted:#4f6168; --amber:#e3a82b; --sand:#f5e9c8; --line:#d3dde0;
  --sans:"Avenir Next","Helvetica Neue",Inter,"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  --h:78px;
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--h)}
body{font:400 17px/1.65 var(--sans);color:var(--ink);background:var(--mist);-webkit-font-smoothing:antialiased}
svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none;padding:0}
address{font-style:normal}
.container{width:min(1320px,100% - 48px);margin-inline:auto}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:8px}

h1,h2,h3{font-weight:650;letter-spacing:-.03em;line-height:1.05}
h1{font-size:clamp(2.9rem,6.6vw,6rem);letter-spacing:-.045em;line-height:.98}
h2{font-size:clamp(2rem,4vw,3.6rem)}
h3{font-size:1.3rem;letter-spacing:-.015em;line-height:1.2}
section{padding:112px 0}

/* buttons and links */
.btn{display:inline-block;background:var(--petrol);color:var(--white);padding:16px 30px;border-radius:8px;font:600 .96rem var(--sans);border:0;cursor:pointer;transition:background .25s,transform .25s}
.btn:hover{background:var(--petrol-2);transform:translateY(-2px)}
.btn-sm{padding:11px 22px;font-size:.9rem}
.text-link{font-weight:600;border-bottom:2px solid var(--amber);padding-bottom:2px;transition:border-color .2s,color .2s}
.text-link:hover{color:var(--petrol-2);border-color:var(--petrol)}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:var(--white);transition:box-shadow .3s}
.site-header.scrolled{box-shadow:0 1px 0 var(--line),0 10px 30px -18px rgba(10,28,33,.35)}
.bar{display:flex;align-items:center;gap:20px;height:var(--h)}
.brand{display:flex;align-items:center;gap:12px}
.mark{display:grid;place-items:center;height:42px;min-width:54px;padding:0 10px;background:var(--petrol);color:#fff;font-weight:700;letter-spacing:.04em;border-radius:10px 10px 0 0}
.brand-name{font-weight:650;letter-spacing:-.01em}
.nav{display:flex;gap:34px;margin-left:auto;margin-right:8px}
.nav a{font-weight:500;font-size:.96rem;padding:6px 0;background:linear-gradient(var(--amber),var(--amber)) 0 100%/0 2px no-repeat;transition:background-size .3s}
.nav a:hover{background-size:100% 2px}
.burger{display:none;margin-left:auto;width:46px;height:46px;background:none;border:1px solid var(--line);border-radius:8px;cursor:pointer;position:relative}
.burger span{position:absolute;left:12px;right:12px;height:2px;background:var(--ink);transition:transform .25s,top .25s}
.burger span:first-child{top:17px}
.burger span:last-child{top:26px}
.burger[aria-expanded=true] span:first-child{top:21px;transform:rotate(45deg)}
.burger[aria-expanded=true] span:last-child{top:21px;transform:rotate(-45deg)}

/* hero */
.hero{padding:72px 0 0;background:var(--white)}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:72px;align-items:end}
.hero-copy{padding-bottom:40px}
.lead{font-size:1.28rem;line-height:1.55;color:var(--muted);max-width:40em;margin:32px 0 40px}
.actions{display:flex;align-items:center;gap:32px;flex-wrap:wrap}
.arch{position:relative;margin:0;aspect-ratio:4/5.2;border-radius:999px 999px 0 0;overflow:hidden;background:var(--petrol)}
.arch svg{width:100%;height:100%}
.arch figcaption{position:absolute;left:20px;right:20px;bottom:20px;background:var(--white);border-radius:12px;padding:14px 18px;font-size:.92rem;line-height:1.4;color:var(--muted)}
.arch figcaption strong{display:block;color:var(--ink)}
.lit{opacity:.16;animation:on .9s ease forwards;animation-delay:var(--d)}
@keyframes on{to{opacity:1}}
.facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:0;border-top:1px solid var(--line)}
.facts p{padding:30px 28px 34px 0;font-size:.96rem;line-height:1.5;color:var(--muted)}
.facts p+p{padding-left:28px;border-left:1px solid var(--line)}
.facts strong{display:block;color:var(--ink);font-size:1.08rem;letter-spacing:-.01em;margin-bottom:6px}

/* about */
.about h2{max-width:15em}
.statement{font-size:clamp(1.3rem,2.2vw,1.85rem);line-height:1.4;letter-spacing:-.015em;font-weight:500;color:var(--petrol);max-width:34em;margin:36px 0 64px}
.about-grid{display:grid;grid-template-columns:1fr 1fr 0.95fr;gap:56px;align-items:start}
.about-text h3{margin-bottom:18px}
.about-text p+p{margin-top:16px}
.about-text p{color:var(--muted)}
.glance{background:var(--ice);border-radius:24px;padding:32px}
.glance h3{margin-bottom:12px}
.glance dl div{padding:13px 0;border-top:1px solid rgba(14,58,67,.2)}
.glance dt{font-size:.82rem;color:var(--muted)}
.glance dd{font-weight:600;overflow-wrap:anywhere}
.glance a{border-bottom:1px solid var(--petrol)}

/* services: bento */
.services{background:var(--white)}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:end;margin-bottom:56px}
.section-head p{color:var(--muted);font-size:1.1rem}
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:20px}
.svc{grid-column:span 2;background:var(--mist);border-radius:22px;padding:34px;transition:transform .3s,box-shadow .3s}
.svc:hover{transform:translateY(-4px);box-shadow:0 22px 40px -26px rgba(10,28,33,.5)}
.svc h3{margin-bottom:14px}
.svc p{color:var(--muted)}
.svc-a{grid-column:span 4;background:var(--petrol);color:#fff;border-radius:22px 90px 22px 22px;padding:44px}
.svc-a h3{font-size:clamp(1.7rem,2.6vw,2.4rem);max-width:12em}
.svc-a p{color:rgba(255,255,255,.8);max-width:40em}
.svc-b{background:var(--ice)}
.svc-f{grid-column:span 6;display:flex;align-items:center;justify-content:space-between;gap:48px;background:var(--sand);border-radius:22px 22px 22px 90px}
.svc-f p{max-width:46em;color:#4a4430}
.svc-f .btn{white-space:nowrap}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.tags li{font-size:.84rem;font-weight:600;padding:6px 14px;border-radius:99px;border:1px solid currentColor;opacity:.85}

/* benefits */
.benefits{background:var(--ink);color:#fff;margin:0 24px;border-radius:36px}
.benefits-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:88px;align-items:start}
.benefits-intro{position:sticky;top:calc(var(--h) + 32px)}
.benefits-intro p{color:rgba(255,255,255,.72);margin-top:24px;font-size:1.1rem;max-width:26em}
.benefit-list li{position:relative;padding:30px 0 30px 40px;border-top:1px solid rgba(255,255,255,.16)}
.benefit-list li:last-child{border-bottom:1px solid rgba(255,255,255,.16)}
.benefit-list li::before{content:"";position:absolute;left:0;top:38px;width:14px;height:14px;background:var(--amber);border-radius:3px 3px 0 3px;transition:transform .3s}
.benefit-list li:hover::before{transform:rotate(45deg) scale(1.1)}
.benefit-list h3{font-size:1.55rem;margin-bottom:8px}
.benefit-list p{color:rgba(255,255,255,.72);max-width:36em}

/* contact */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start}
.contact-info p{color:var(--muted);margin:22px 0 32px;max-width:26em}
.big-mail{display:inline-block;font-size:clamp(1.15rem,2.1vw,1.7rem);font-weight:650;letter-spacing:-.02em;color:var(--petrol);border-bottom:3px solid var(--amber);overflow-wrap:anywhere;margin-bottom:36px}
.contact-info address{border-left:4px solid var(--petrol);padding-left:20px;color:var(--muted);line-height:1.6}
.contact-info address strong{color:var(--ink)}
.form{background:var(--white);border-radius:28px 28px 28px 80px;padding:44px 44px 48px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{margin-bottom:22px}
label{display:block;font-weight:600;font-size:.92rem;margin-bottom:8px}
input,select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--mist);border:1.5px solid transparent;border-radius:10px;padding:14px 16px;transition:border-color .2s,background .2s}
textarea{resize:vertical;min-height:140px}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--petrol);background:#fff}
[aria-invalid=true]{border-color:#b3261e;background:#fff6f5}
.err{display:block;min-height:1.2em;margin-top:6px;font-size:.86rem;color:#b3261e}
.status{margin-top:18px;font-weight:600}
.status.ok{color:#1b6b3a}
.status.bad{color:#b3261e}

/* footer */
.site-footer{background:var(--petrol);color:rgba(255,255,255,.8);margin-top:112px;padding-top:72px}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:56px;padding-bottom:56px}
.foot .brand{color:#fff;margin-bottom:20px}
.foot .mark{background:var(--amber);color:var(--ink)}
.foot h3{color:#fff;font-size:1rem;margin-bottom:14px}
.foot p{max-width:26em;margin-bottom:10px}
.foot nav a{display:block;padding:4px 0;transition:color .2s}
.foot a:hover{color:var(--amber)}
.legal{border-top:1px solid rgba(255,255,255,.18);padding:24px 0;font-size:.88rem}

/* reveal: quiet fade */
.js .reveal{opacity:0;transition:opacity .8s ease}
.js .reveal.in{opacity:1}

/* responsive */
@media(max-width:1100px){
  .about-grid{grid-template-columns:1fr 1fr}
  .glance{grid-column:1/-1}
  .svc,.svc-a{grid-column:span 3}
  .svc-a{grid-column:span 6}
  .benefits-grid{gap:56px}
}
@media(max-width:900px){
  :root{--h:70px}
  section{padding:80px 0}
  .burger{display:block}
  .btn-sm{display:none}
  .nav{position:fixed;inset:var(--h) 0 auto 0;flex-direction:column;gap:0;margin:0;background:var(--white);border-bottom:1px solid var(--line);opacity:0;visibility:hidden;transform:translateY(-10px);transition:.25s}
  .nav.open{opacity:1;visibility:visible;transform:none}
  .nav a{padding:18px 24px;border-top:1px solid var(--line);background:none}
  .hero{padding-top:48px}
  .hero-grid,.section-head,.benefits-grid,.contact-grid{grid-template-columns:1fr;gap:40px}
  .arch{max-width:460px;width:100%;margin-inline:auto}
  .facts{grid-template-columns:1fr 1fr}
  .facts p:nth-child(3){padding-left:0;border-left:0}
  .facts p:nth-child(n+3){border-top:1px solid var(--line)}
  .benefits{margin:0 12px;border-radius:26px}
  .benefits-intro{position:static}
  .svc-f{flex-direction:column;align-items:flex-start;gap:28px}
  .site-footer{margin-top:80px}
  .foot{grid-template-columns:1fr 1fr}
  .foot>div:first-child{grid-column:1/-1}
}
@media(max-width:640px){
  body{font-size:16px}
  .container{width:min(1320px,100% - 32px)}
  .brand-name{display:none}
  .about-grid,.bento,.row,.foot{grid-template-columns:1fr}
  .svc,.svc-a,.svc-f{grid-column:auto;padding:28px}
  .svc-a{border-radius:22px 60px 22px 22px}
  .facts{grid-template-columns:1fr}
  .facts p,.facts p+p{padding:22px 0;border-left:0;border-top:1px solid var(--line)}
  .facts p:first-child{border-top:0}
  .form{padding:28px 22px 32px;border-radius:24px 24px 24px 56px}
  .lead{font-size:1.12rem}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .lit{opacity:1}
  .js .reveal{opacity:1}
}
