:root{
  --ink:#2f2a24;
  --soft-ink:#453d34;
  --muted:#6c6358;
  --faint:#978b7d;
  --paper:#fbf8f2;
  --paper-2:#f2ebdf;
  --paper-3:#e5d9c7;
  --line:rgba(47,42,36,.12);
  --line-strong:rgba(47,42,36,.18);
  --accent:#886847;
  --accent-dark:#684d32;
  --tech:#476f86;
  --tech-dark:#36586b;
  --accent-soft:#d7c3a8;
  --deep:#302721;
  --deep-2:#41352c;
  --shadow:0 18px 44px rgba(42,32,22,.10);
  --radius:28px;
  --radius-sm:18px;
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.62;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
a{color:inherit}img{max-width:100%;display:block}::selection{background:var(--tech);color:#fff}
.top-promise{display:flex;align-items:center;justify-content:center;gap:clamp(16px,4vw,40px);padding:11px 18px;background:var(--paper-2);border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.top-promise span{white-space:nowrap;position:relative}.top-promise span+span:before{content:"";position:absolute;left:-20px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--accent-soft);transform:translateY(-50%)}
.site-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:84px;padding:16px clamp(20px,4vw,64px);background:rgba(251,248,242,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center;gap:14px;min-width:max-content;text-decoration:none}.brand-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:var(--deep);color:#fff;font-weight:900;font-size:18px;letter-spacing:.02em;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.brand strong{display:block;font-size:15px;line-height:1;letter-spacing:.15em;font-weight:900}.brand small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.nav{display:flex;align-items:center;justify-content:center;gap:clamp(14px,2vw,28px);font-size:13px;font-weight:800;letter-spacing:.05em}.nav a{position:relative;text-decoration:none;color:var(--soft-ink);padding:8px 0}.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:2px;background:var(--tech);transition:right .22s ease}.nav a:hover:after,.nav a:focus-visible:after{right:0}
.language-switch{display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;font-size:12px;font-weight:850;letter-spacing:.08em}.language-switch a{text-decoration:none;color:var(--faint)}.language-switch a.active{color:var(--ink)}.language-switch span{color:#cdbba7}.header-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;border-radius:999px;border:1px solid var(--deep);background:var(--deep);color:#fff;text-decoration:none;font-size:12px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;transition:transform .18s ease,background .18s ease}.header-cta:hover{transform:translateY(-1px);background:var(--tech);border-color:var(--tech)}
.hero{max-width:var(--max);margin:0 auto;padding:clamp(34px,5vw,56px) clamp(20px,4vw,64px) clamp(38px,5vw,52px);display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(26px,4vw,44px);align-items:center;overflow:visible}.hero-bg{grid-column:1;min-height:620px;border-radius:var(--radius);background:linear-gradient(180deg,rgba(58,42,28,.10),rgba(58,42,28,.26)),url("stumptner-gebaeude.jpg") center/cover no-repeat;box-shadow:var(--shadow);position:relative}.hero-bg:after{content:"";position:absolute;left:24px;right:24px;bottom:24px;height:110px;border-radius:20px;background:linear-gradient(180deg,rgba(251,248,242,0),rgba(251,248,242,.88))}.hero-card{grid-column:2;align-self:center;padding:36px 48px 36px 36px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow)}.eyebrow,.section-kicker{margin:0 0 18px;color:var(--tech);font-size:12px;line-height:1.2;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.hero h1{max-width:600px;margin:0;font-size:clamp(40px,5vw,76px);line-height:1.06;letter-spacing:.01em;font-weight:900;overflow-wrap:normal;word-break:normal;hyphens:manual;text-wrap:balance}.hero .lead{max-width:620px;margin:26px 0 0;color:var(--muted);font-size:clamp(18px,1.5vw,22px);line-height:1.66}.hero-actions,.contact-direct{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:999px;border:1px solid transparent;text-decoration:none;font-size:12px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--deep);color:#fff;border-color:var(--deep)}.btn.primary:hover{background:var(--tech);border-color:var(--tech)}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn.ghost:hover{background:#fff;border-color:var(--tech);color:var(--ink)}.hero-note{grid-column:2;align-self:start;max-width:520px;margin-top:14px;padding:22px 24px;border-radius:var(--radius-sm);background:linear-gradient(180deg,#fff,#f8f4ec);border-left:4px solid var(--accent);border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:var(--shadow);color:var(--soft-ink)}.hero-note strong{display:block;margin-bottom:8px;color:var(--accent-dark);font-size:30px;line-height:1.08;letter-spacing:.01em;font-weight:900}.hero-note span{display:block;color:var(--muted);font-size:15px}
.section{width:100%;padding:clamp(74px,8vw,118px) clamp(20px,4vw,64px)}.section>*{max-width:var(--max);margin-left:auto;margin-right:auto}.center{text-align:center}.section h2{margin:0;color:var(--ink);font-size:clamp(34px,4.2vw,62px);line-height:1.08;letter-spacing:.008em;font-weight:900;overflow-wrap:normal;word-break:normal;hyphens:manual;text-wrap:balance}.section p{font-size:18px}
.intro{display:grid;grid-template-columns:minmax(0,.92fr) minmax(320px,.88fr);gap:clamp(30px,6vw,84px);align-items:end;background:#fff}.intro>*{max-width:none;margin:0}.intro>p{margin:0;color:var(--muted);font-size:clamp(18px,1.8vw,23px);line-height:1.64}
.services{background:var(--paper-2)}.section-head{max-width:940px;margin:0 auto 48px;text-align:center}.section-subline{max-width:820px;margin:22px auto 0;color:var(--muted);font-size:clamp(17px,1.5vw,20px);line-height:1.66}.touch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:var(--max)}.touch-card{position:relative;min-height:300px;display:flex;flex-direction:column;justify-content:flex-start;padding:30px 30px 30px 34px;border-radius:var(--radius-sm);background:#fff;color:var(--ink);border:1px solid rgba(71,111,134,.14);box-shadow:var(--shadow);hyphens:none;overflow-wrap:normal;word-break:normal}.touch-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;border-radius:18px 0 0 18px;background:linear-gradient(180deg,var(--tech),var(--accent-soft))}.touch-card .tag,.touch-card h3,.touch-card p{position:relative;z-index:1}.touch-card .tag{align-self:flex-start;margin-bottom:22px;padding:8px 12px;border-radius:999px;background:var(--paper-2);color:var(--tech-dark);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.touch-card h3{margin:0 0 14px;font-size:clamp(24px,1.8vw,30px);line-height:1.2;letter-spacing:.008em;font-weight:900;overflow-wrap:normal;word-break:normal;hyphens:manual;text-wrap:balance}.touch-card p{margin:0;color:var(--muted);font-size:16px;line-height:1.64;overflow-wrap:normal;word-break:normal;hyphens:auto}
.heritage{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.02fr);gap:clamp(28px,5vw,64px);align-items:start;background:#fff}.heritage>*{max-width:none;margin:0}.heritage-copy p:last-child{margin:24px 0 0;color:var(--muted);font-size:19px}.heritage-line{display:grid;gap:14px}.heritage-line div{display:grid;grid-template-columns:minmax(132px,148px) 1fr;gap:18px;align-items:start;padding:22px 24px;border-radius:var(--radius-sm);background:linear-gradient(180deg,#fff,#fbf5eb);border:1px solid rgba(71,111,134,.12)}.heritage-line b{display:block;color:var(--accent-dark);font-size:30px;line-height:1.14;letter-spacing:.01em;font-weight:900;overflow-wrap:normal;word-break:normal;hyphens:none}.heritage-line span{display:block;color:var(--muted);line-height:1.55;overflow-wrap:normal;word-break:normal;hyphens:auto}
.crafted-process{background:#fff}.process-intro{max-width:820px;margin:0 auto 38px;text-align:center}.process-ribbon{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;max-width:var(--max)}.process-tile{position:relative;min-height:272px;padding:28px;background:var(--paper-2);border:1px solid rgba(71,111,134,.14);border-radius:var(--radius-sm);box-shadow:none}.process-tile em{display:block;margin-bottom:54px;color:var(--tech);font-style:normal;font-size:12px;font-weight:900;letter-spacing:.18em}.process-tile em:after{content:"";position:absolute;left:28px;width:64px;top:72px;height:2px;background:linear-gradient(90deg,var(--tech),rgba(47,42,36,.10))}.process-tile strong{display:block;margin-bottom:14px;font-size:28px;line-height:1.16;letter-spacing:.008em;font-weight:900}.process-tile p{margin:0;color:var(--muted);font-size:16px;line-height:1.62}
.family{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(0,.9fr);gap:clamp(32px,6vw,82px);align-items:center;background:var(--paper-2)}.family>*{max-width:none;margin:0}.photo-panel{min-height:540px;border-radius:var(--radius);background:linear-gradient(180deg,rgba(58,42,28,.08),rgba(58,42,28,.18)),url("stumptner-gebaeude.jpg") center/cover no-repeat;box-shadow:var(--shadow)}.family p:not(.section-kicker){color:var(--muted);font-size:19px}
.contact{display:grid;grid-template-columns:1fr;background:var(--deep);color:#fff}.contact-box{width:min(var(--max),100%);padding:clamp(32px,5vw,64px);border-radius:var(--radius);background:linear-gradient(180deg,#41352c,#302721);border:1px solid rgba(255,255,255,.10);box-shadow:var(--shadow)}.contact-box h2{color:#fff}.contact-box>p:not(.section-kicker){max-width:760px;margin:20px 0 0;color:rgba(255,255,255,.76);font-size:20px}.contact-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:34px}.contact-card{display:grid;gap:10px;min-height:128px;padding:20px;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06)}.contact-card span{color:rgba(255,255,255,.52);font-size:11px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.contact-card a,.contact-card strong{color:#fff;text-decoration:none;font-size:17px;line-height:1.35}.contact-card a:hover{text-decoration:underline}.contact-legal{margin-top:16px;padding:20px;border-radius:18px;color:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);font-size:14px;line-height:1.78}.contact-legal strong{color:#fff}.contact .btn.primary{background:#fff;border-color:#fff;color:var(--deep)}.contact .btn.primary:hover{background:var(--tech);border-color:var(--tech);color:#fff}.contact .btn.ghost{color:#fff;border-color:rgba(255,255,255,.25);background:transparent}.contact .btn.ghost:hover{background:#fff;color:var(--deep);border-color:#fff}
.footer{display:flex;justify-content:space-between;gap:30px;padding:48px clamp(20px,4vw,64px);background:#251e19;color:#fff}.footer strong{letter-spacing:.12em;text-transform:uppercase}.footer a{display:block;color:rgba(255,255,255,.78);text-decoration:none;margin:6px 0}.footer a:hover{color:#fff;text-decoration:underline}.footer p{color:rgba(255,255,255,.68);margin:.35em 0}.footer-large{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr;align-items:start}.footer-large h4{margin:0 0 12px;color:#fff;letter-spacing:.08em;text-transform:uppercase;font-size:13px}.footer-large div{display:grid;gap:7px}
.legal-page{background:var(--paper-2)}.legal{max-width:980px;margin:0 auto;padding-top:clamp(68px,8vw,104px);padding-bottom:clamp(80px,9vw,126px)}.legal h1{margin:0 0 26px;font-size:clamp(38px,5.2vw,72px);line-height:1.02;letter-spacing:.01em;font-weight:900;overflow-wrap:normal;word-break:normal;hyphens:manual;text-wrap:balance}.legal h2{margin:42px 0 14px;font-size:clamp(24px,3vw,34px);line-height:1.14;letter-spacing:.008em}.legal p,.legal li{color:var(--muted);font-size:17px}.legal a{color:var(--ink);text-decoration-thickness:1px;text-underline-offset:3px}.legal .btn{margin:8px 8px 0 0;text-decoration:none}.legal-note{padding:16px 18px;border-radius:18px;background:rgba(71,111,134,.10);border:1px solid rgba(71,111,134,.18)}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.btn,.header-cta{transition:none}}
@media(max-width:1180px){.nav{gap:14px;font-size:12px}.contact-details{grid-template-columns:repeat(2,minmax(0,1fr))}.process-ribbon{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.site-header{gap:12px}.nav{display:none}.language-switch{margin-left:auto}.hero{grid-template-columns:1fr;padding-top:24px}.hero-bg{grid-column:auto;order:1;min-height:420px}.hero-card{grid-column:auto;order:2;padding:28px}.hero-note{grid-column:auto;order:3;max-width:none}.intro,.heritage,.family{grid-template-columns:1fr}.intro>*,.heritage>*,.family>*{max-width:var(--max);margin-left:auto;margin-right:auto;width:100%}.touch-grid{grid-template-columns:1fr}.footer-large{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.heritage-line div{grid-template-columns:1fr;gap:8px}.heritage-line b{font-size:28px;line-height:1.12}}
@media(max-width:640px){.top-promise{justify-content:flex-start;overflow:auto;gap:28px;padding-left:16px;padding-right:16px;scrollbar-width:none}.top-promise::-webkit-scrollbar{display:none}.top-promise span+span:before{left:-14px}.site-header{min-height:70px;padding:12px 16px}.brand-mark{width:38px;height:38px;border-radius:12px}.brand strong{font-size:14px}.brand small{display:none}.header-cta{display:none}.language-switch{font-size:11px;padding:8px 10px}.hero{padding-left:18px;padding-right:18px}.hero-bg{min-height:310px}.hero h1{font-size:clamp(36px,12vw,56px);line-height:1.05;letter-spacing:.008em}.hero .lead{font-size:18px}.hero-note strong{font-size:28px}.section{padding-left:18px;padding-right:18px}.section h2{font-size:clamp(30px,10vw,48px);line-height:1.06;letter-spacing:.008em}.process-ribbon,.contact-details,.footer-large{grid-template-columns:1fr}.touch-card,.process-tile{min-height:auto}.heritage-line div{grid-template-columns:1fr;gap:8px}.heritage-line b{font-size:28px;line-height:1.12}.photo-panel{min-height:340px}.footer{display:block}.footer>div{margin-bottom:24px}}

html, body { max-width:100%; overflow-x:hidden; }
.hero, .section, .site-header, .footer { max-width:100%; }
.hero > *, .intro > *, .heritage > *, .family > *, .contact-box, .touch-card, .process-tile, .legal { min-width:0; }
.hero-bg, .hero-card, .hero-note, .photo-panel { width:100%; max-width:100%; }
.hero h1, .section h2, .legal h1, .touch-card h3, .process-tile strong, .heritage-line b {
  overflow-wrap:normal;
  word-break:normal;
  hyphens:manual;
}
.hero h1, .section h2, .touch-card h3 { text-wrap:balance; }
.touch-card { hyphens:none; overflow-wrap:normal; word-break:normal; }
.touch-card p, .process-tile p, .heritage-line span, .legal p, .legal li {
  overflow-wrap:anywhere;
  word-break:normal;
  hyphens:auto;
}
.heritage-line div {
  grid-template-columns:minmax(128px,148px) minmax(0,1fr);
  row-gap:10px;
  align-items:start;
}
.heritage-line b { display:block; line-height:1.16; }
.heritage-line span { display:block; line-height:1.58; }
@media(max-width:980px){
  .hero{max-width:100%; width:100%;}
  .hero-card{box-sizing:border-box;}
}
@media(max-width:760px){
  .heritage-line div{grid-template-columns:1fr;gap:8px;}
  .heritage-line b{font-size:28px;line-height:1.12;}
}
@media(max-width:640px){
  .hero{padding-left:16px;padding-right:16px;overflow:hidden;}
  .hero-card{padding:24px 26px 24px 20px;}
  .hero-note{padding:22px 20px;}
  .hero h1{font-size:clamp(30px,9vw,40px);line-height:1.1;}
  .section h2{font-size:clamp(29px,8.4vw,40px);line-height:1.12;}
  .legal h1{font-size:clamp(31px,9vw,42px);line-height:1.08;}
  .touch-card h3{font-size:clamp(23px,7vw,28px);line-height:1.18;}
  .eyebrow,.section-kicker{letter-spacing:.11em;}
  .brand{min-width:0;}
}
@media(max-width:380px){
  .hero h1{font-size:30px;}
  .section h2{font-size:29px;}
  .legal h1{font-size:31px;}
}


@media(max-width:640px){
  .top-promise{overflow:visible;flex-wrap:wrap;justify-content:flex-start;gap:7px 20px;}
  .top-promise span{white-space:normal;}
  .legal h1{font-size:clamp(28px,8vw,36px);overflow-wrap:break-word;hyphens:manual;}
  .legal h2{font-size:clamp(21px,6.2vw,28px);overflow-wrap:break-word;hyphens:manual;}
}


.nav a.active:after{right:0}.nav a.active{color:var(--ink)}
.page-hero{max-width:var(--max);margin:0 auto;text-align:center;background:linear-gradient(180deg,#fff,var(--paper));padding-top:clamp(60px,8vw,112px);padding-bottom:clamp(36px,5vw,70px)}
.page-hero h1{max-width:960px;margin:0 auto;font-size:clamp(42px,6vw,82px);line-height:1.02;letter-spacing:.008em;font-weight:900;text-wrap:balance}
.page-hero .section-subline{margin-top:24px}.page-overview{background:#fff}.text-link{font-weight:900;color:var(--tech-dark);text-decoration:none}.text-link:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:640px){.page-hero h1{font-size:clamp(31px,9vw,42px);line-height:1.08}.page-hero{padding-top:42px;padding-bottom:30px}}

/* Mehrseiten-Unterseiten: echte mittige Ausrichtung der Seitenslogans */
.page-hero{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.page-hero > .section-kicker,
.page-hero > h1,
.page-hero > .section-subline{
  display:block;
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}
.page-hero > .section-kicker{
  width:100%;
  max-width:960px;
}
.page-hero > h1{
  width:100%;
  max-width:960px;
}
.page-hero > .section-subline{
  width:100%;
  max-width:820px;
}
