/* ============================================================
   PRAXIS AVIRA — Editorial "Calm Luxury" Redesign
   Salbeigrün aus Logo · cinematischer Hero · Schwalben-Motiv
   ============================================================ */

:root{
  --sage:#699886;          /* Logo-Grün */
  --sage-deep:#44705F;     /* interaktiv */
  --sage-darker:#33574A;
  --forest:#1B2A23;        /* dramatische dunkle Sektionen */
  --forest-2:#22332B;
  --ink:#16201B;
  --ink-soft:#3A423D;
  --muted:#737a72;
  --cream:#F6F1E8;
  --cream-2:#EFE7D9;
  --paper:#ffffff;
  --gold:#C2A36B;
  --line:#E4DDCF;
  --line-dark:rgba(255,255,255,.14);

  --r:16px; --r-lg:26px; --r-xl:38px;
  --maxw:1280px;
  --gutter:clamp(20px,5vw,72px);

  --f-head:"Fraunces",Georgia,serif;
  --f-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --f-logo:"Montserrat",-apple-system,BlinkMacSystemFont,sans-serif; /* echo der Logo-Schrift */

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
html:not(.lenis){scroll-behavior:smooth}
body{
  font-family:var(--f-body); color:var(--ink-soft); background:var(--cream);
  font-size:17px; line-height:1.7; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
::selection{background:var(--sage);color:#fff}

/* ---------- Grain + scroll progress ---------- */
.grain{
  position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--sage),var(--sage-deep));z-index:10000;transition:width .1s linear}

/* ---------- Layout helpers ---------- */
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(80px,11vw,160px);position:relative}
/* Logo-Schrift (Montserrat) für alle markennahen Labels, Nav & Buttons */
.eyebrow,.nav__links a,.nav__phone,.btn,.member__name .role,.contact__list .lbl,
.srv-row .tag,.footer__col h4,.stat .lbl,.hero__edge,.scroll-cue{font-family:var(--f-logo)}

.eyebrow{font-weight:600;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage-deep);display:inline-flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:30px;height:1.5px;background:currentColor;opacity:.6}
.eyebrow.on-dark{color:var(--sage)}

h1,h2,h3,h4{font-family:var(--f-head);color:var(--ink);font-weight:400;line-height:1.04;letter-spacing:-.02em}
h2{font-size:clamp(2.2rem,5.2vw,4rem)}
h2 em,h1 em,.serif-em{font-style:italic;color:var(--sage-deep)}
.lead{font-size:clamp(1.05rem,1.5vw,1.22rem);color:var(--ink-soft);line-height:1.6}

.sec-head{max-width:760px;margin-bottom:clamp(48px,6vw,84px)}
.sec-head .lead{margin-top:22px;color:var(--muted)}
.sec-head--center{margin-inline:auto;text-align:center}
.sec-head--center .eyebrow{justify-content:center}

/* ---------- Buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:12px;font-weight:600;font-size:.97rem;
  padding:16px 30px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;overflow:hidden;
  transition:transform .3s var(--ease-out),background .3s,color .3s,border-color .3s; will-change:transform}
.btn span{position:relative;z-index:1}
.btn svg{width:18px;height:18px;position:relative;z-index:1;transition:transform .3s var(--ease-out)}
.btn:hover svg{transform:translateX(4px)}
.btn--primary{background:var(--sage-deep);color:#fff}
.btn--primary::after{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .45s var(--ease-out);z-index:0}
.btn--primary:hover{color:#fff}
.btn--primary:hover::after{transform:translateY(0)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink);}
.btn--ghost:hover{background:var(--ink);color:#fff}
.btn--light{background:#fff;color:var(--ink)}
.btn--light::after{content:"";position:absolute;inset:0;background:var(--sage);transform:translateY(101%);transition:transform .45s var(--ease-out);z-index:0}
.btn--light:hover{color:#fff}
.btn--light:hover::after{transform:translateY(0)}
.btn--xl{padding:20px 40px;font-size:1.05rem}

/* ---------- Header (floating pill + mega menu) ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:16px var(--gutter) 0;transition:transform .5s var(--ease)}
.site-header.hide{transform:translateY(-135%)}
.hdr{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1180px;margin-inline:auto;
  height:66px;padding:0 12px 0 24px;border-radius:999px;
  background:rgba(246,241,232,.72);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);
  border:1px solid rgba(255,255,255,.55);box-shadow:0 8px 30px rgba(22,32,27,.07);transition:height .4s var(--ease),background .4s,box-shadow .4s,border-color .4s}
.site-header.solid .hdr{height:60px;background:rgba(246,241,232,.93);box-shadow:0 14px 38px rgba(22,32,27,.1);border-color:var(--line)}
.hdr__logo{position:relative;display:inline-block;line-height:0}
.hdr__logo .logo-full{height:40px;width:auto;display:block;transition:opacity .35s ease,transform .45s var(--ease)}
.hdr__logo .logo-mark{position:absolute;left:0;top:50%;height:34px;width:auto;opacity:0;
  transform:translateY(-50%) scale(.8);transform-origin:left center;transition:opacity .4s ease,transform .6s var(--ease-out)}
.site-header.solid .hdr__logo .logo-full{opacity:0;transform:scale(.88)}
.site-header.solid .hdr__logo .logo-mark{opacity:1;height:46px;transform:translateY(-50%) scale(1)}
/* Fallback, falls JS die Bildmarke (noch) nicht injiziert hat */
.hdr__logo img:only-child{height:40px;width:auto;display:block}

.hdr__nav{display:flex;align-items:center;gap:4px}
.hdr__item{position:relative}
.has-mega{position:static}/* mega wird an der Header-Pill zentriert, nicht am Button */
.hdr__link{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-logo);font-weight:500;font-size:.9rem;color:var(--ink);
  background:none;border:0;cursor:pointer;padding:10px 15px;border-radius:999px;transition:background .2s,color .2s;white-space:nowrap}
.hdr__link:hover{background:rgba(105,152,134,.13);color:var(--sage-darker)}
.hdr__link .chev{width:13px;height:13px;transition:transform .3s var(--ease)}
.has-mega:hover .hdr__link .chev,.has-mega:focus-within .hdr__link .chev{transform:rotate(180deg)}

/* mega panel */
.mega{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);padding-top:16px;
  width:min(720px,86vw);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s var(--ease),transform .35s var(--ease-out)}
.has-mega:hover .mega,.has-mega:focus-within .mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.mega__inner{display:grid;grid-template-columns:1fr 1.2fr;gap:8px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:0 30px 70px rgba(22,32,27,.17);padding:14px}
.mega__intro{background:var(--cream);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;justify-content:space-between}
.mega__intro h4{font-family:var(--f-head);font-size:1.25rem;line-height:1.15;margin:12px 0 8px}
.mega__intro p{font-size:.86rem;color:var(--muted);margin-bottom:18px}
.mega__all{font-family:var(--f-logo);font-weight:600;font-size:.82rem;color:var(--sage-deep);display:inline-flex;align-items:center;gap:7px}
.mega__all svg{width:15px;height:15px;transition:transform .25s}
.mega__all:hover svg{transform:translateX(3px)}
.mega__grid{display:grid;gap:2px;align-content:start}
.mega__card{display:flex;align-items:center;gap:13px;padding:10px 12px;border-radius:12px;transition:background .2s}
.mega__card:hover{background:var(--cream)}
.mega__card .ic{width:38px;height:38px;border-radius:10px;background:rgba(105,152,134,.13);display:flex;align-items:center;justify-content:center;flex:none}
.mega__card .ic svg{width:19px;height:19px;color:var(--sage-deep)}
.mega__card b{display:block;font-family:var(--f-body);font-weight:600;font-size:.9rem;color:var(--ink);line-height:1.2}
.mega__card small{color:var(--muted);font-size:.77rem}
.mega__feature{grid-column:1/-1;display:flex;align-items:center;gap:16px;background:linear-gradient(120deg,var(--sage-deep),var(--sage-darker));
  border-radius:var(--r);padding:16px 20px;color:#fff;margin-top:2px}
.mega__feature img{width:70px;flex:none;filter:brightness(0) invert(1);opacity:.92}
.mega__feature .txt{flex:1}
.mega__feature .tag{font-family:var(--f-logo);font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:rgba(255,255,255,.18);padding:3px 9px;border-radius:999px}
.mega__feature b{font-family:var(--f-head);font-weight:500;font-size:1.12rem;display:block;margin:7px 0 3px}
.mega__feature small{color:rgba(255,255,255,.8);font-size:.8rem}
.mega__feature .go{font-family:var(--f-logo);font-weight:600;font-size:.78rem;margin-top:7px;display:inline-flex;gap:6px;align-items:center}
.mega__feature .go svg{width:14px;height:14px}

.hdr__right{display:flex;align-items:center;gap:14px}
.hdr__phone{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-logo);font-weight:600;font-size:.86rem;color:var(--ink)}
.hdr__phone svg{width:15px;height:15px;color:var(--sage-deep)}
.hdr__cta{padding:12px 22px;font-size:.88rem}
.hdr__burger{display:none;width:46px;height:42px;border:0;background:none;cursor:pointer;align-items:center;justify-content:center;border-radius:12px}
.hdr__burger span{display:block;width:22px;height:2px;background:var(--ink);position:relative;transition:.3s}
.hdr__burger span::before,.hdr__burger span::after{content:"";position:absolute;left:0;width:22px;height:2px;background:var(--ink);transition:.3s}
.hdr__burger span::before{top:-7px}.hdr__burger span::after{top:7px}
body.menu-open .hdr__burger span{background:transparent}
body.menu-open .hdr__burger span::before{top:0;transform:rotate(45deg)}
body.menu-open .hdr__burger span::after{top:0;transform:rotate(-45deg)}

/* mobile fullscreen overlay */
.mnav{position:fixed;inset:0;z-index:999;background:var(--cream);padding:100px var(--gutter) 40px;
  display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .4s var(--ease),transform .5s var(--ease-out),visibility .4s;overflow-y:auto}
body.menu-open{overflow:hidden}
body.menu-open .mnav{opacity:1;visibility:visible;transform:none}
.mnav__list{list-style:none;display:flex;flex-direction:column}
.mnav__list > li{border-bottom:1px solid var(--line)}
.mnav__list a,.mnav__acc-btn{font-family:var(--f-head);font-size:clamp(1.5rem,7vw,1.9rem);font-weight:400;color:var(--ink);
  padding:18px 0;display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:0;cursor:pointer;text-align:left}
.mnav__acc-btn svg{width:22px;height:22px;transition:transform .3s;color:var(--sage-deep)}
.mnav__sub{list-style:none;max-height:0;overflow:hidden;transition:max-height .45s var(--ease)}
.mnav__sub li a{font-family:var(--f-body);font-size:1.05rem;color:var(--ink-soft);padding:12px 0 12px 18px}
.mnav__acc.open .mnav__sub{max-height:460px}
.mnav__acc.open .mnav__acc-btn svg{transform:rotate(180deg)}
.mnav__foot{margin-top:auto;padding-top:34px;display:flex;flex-direction:column;gap:16px}
.mnav__foot .btn{justify-content:center}
.mnav__phone{font-family:var(--f-logo);font-weight:600;display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:1.05rem}
.mnav__phone svg{width:18px;height:18px;color:var(--sage-deep)}
.mnav__addr{color:var(--muted);font-size:.9rem}
@media(min-width:901px){.mnav{display:none}}
@media(max-width:900px){
  .hdr__nav,.hdr__phone{display:none}
  .hdr__burger{display:flex}
  .hdr__cta{display:none}
}
@media(max-width:420px){.hdr__cta{display:none}}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:var(--cream);padding-top:88px}
.hero__blob{position:absolute;z-index:0;border-radius:48% 52% 56% 44%/52% 44% 56% 48%;
  background:radial-gradient(circle at 35% 35%,rgba(105,152,134,.55),rgba(105,152,134,.12) 70%);
  filter:blur(8px);animation:morph 16s ease-in-out infinite,drift 20s ease-in-out infinite}
.hero__blob--1{width:46vw;height:46vw;max-width:680px;max-height:680px;right:-6vw;top:8vh}
.hero__blob--2{width:26vw;height:26vw;max-width:360px;max-height:360px;left:-8vw;bottom:-6vh;opacity:.5;animation-duration:22s,26s}
@keyframes morph{0%,100%{border-radius:48% 52% 56% 44%/52% 44% 56% 48%}50%{border-radius:58% 42% 40% 60%/46% 58% 42% 54%}}
@keyframes drift{0%,100%{transform:translate(0,0)}50%{transform:translate(-18px,22px)}}

.hero__edge{position:absolute;right:max(16px,3vw);top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:right center;
  font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);z-index:2;display:flex;align-items:center;gap:14px}
.hero__edge::after{content:"";width:50px;height:1px;background:var(--muted);opacity:.5}

.hero__inner{position:relative;z-index:3;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(20px,4vw,60px);align-items:center;padding-block:clamp(30px,5vw,60px)}
.hero h1{font-size:clamp(2.9rem,7.4vw,6.1rem);letter-spacing:-.035em}
.hero h1 .ln{display:block;overflow:hidden}
.hero h1 .ln > span{display:block;transform:translateY(110%);transition:transform 1s var(--ease-out)}
body.is-loaded .hero h1 .ln > span{transform:translateY(0)}
.hero h1 .ln:nth-child(2) > span{transition-delay:.08s}
.hero h1 .ln:nth-child(3) > span{transition-delay:.16s}
.hero__lead{max-width:30em;margin:28px 0 36px;opacity:0;transform:translateY(20px);transition:all 1s var(--ease-out) .35s}
.hero__actions{display:flex;flex-wrap:wrap;gap:16px;opacity:0;transform:translateY(20px);transition:all 1s var(--ease-out) .45s}
body.is-loaded .hero__lead,body.is-loaded .hero__actions{opacity:1;transform:none}

.hero__visual{position:relative;display:flex;justify-content:center;align-items:center;min-height:340px}
.hero__disc{position:absolute;width:118%;max-width:560px;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.9),rgba(246,241,232,.2) 70%);
  box-shadow:0 40px 90px rgba(53,86,72,.18);}
.hero__bird{position:relative;z-index:2;width:min(82%,420px);filter:drop-shadow(0 24px 40px rgba(27,42,35,.18));
  opacity:0;transform:translateY(30px) scale(.96);clip-path:inset(0 100% 0 0);
  transition:opacity 1s var(--ease-out) .45s,transform 1.4s var(--ease-out) .45s,clip-path 1.7s var(--ease-out) .5s;
  animation:bob 7s ease-in-out infinite 2.2s; will-change:transform,clip-path}
body.is-loaded .hero__bird{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
@keyframes bob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-16px) rotate(-1.2deg)}}

.hero__chips{position:absolute;z-index:3;inset:0;pointer-events:none}
.chip{position:absolute;background:rgba(255,255,255,.78);backdrop-filter:blur(8px);border:1px solid var(--line);
  border-radius:999px;padding:10px 18px;font-size:.82rem;font-weight:600;color:var(--ink);box-shadow:0 14px 30px rgba(27,42,35,.1);
  display:flex;align-items:center;gap:9px;opacity:0;transform:scale(.8);transition:all .7s var(--ease-out)}
.chip svg{width:15px;height:15px;color:var(--sage-deep)}
body.is-loaded .chip{opacity:1;transform:none}
.chip--1{top:8%;left:-4%;transition-delay:.9s}
.chip--2{bottom:14%;right:-6%;transition-delay:1.05s}
.chip--3{bottom:0;left:6%;transition-delay:1.2s}

.scroll-cue{position:absolute;bottom:30px;left:var(--gutter);z-index:3;display:flex;align-items:center;gap:12px;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.scroll-cue .mouse{width:22px;height:34px;border:1.5px solid var(--muted);border-radius:12px;position:relative}
.scroll-cue .mouse::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:6px;background:var(--muted);border-radius:2px;transform:translateX(-50%);animation:wheel 1.8s ease-in-out infinite}
@keyframes wheel{0%{opacity:0;transform:translate(-50%,0)}40%{opacity:1}100%{opacity:0;transform:translate(-50%,10px)}}

/* ---------- Marquee ---------- */
.marquee{background:var(--ink);color:var(--cream);padding:22px 0;overflow:hidden;white-space:nowrap}
.marquee__track{display:inline-flex;gap:0;animation:scrollx 28s linear infinite;will-change:transform}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__track span{font-family:var(--f-head);font-style:italic;font-size:clamp(1.4rem,3vw,2.2rem);padding:0 30px;display:inline-flex;align-items:center;gap:50px}
.marquee__track span::after{content:"✦";font-style:normal;color:var(--sage);font-size:.7em}
@keyframes scrollx{to{transform:translateX(-50%)}}

/* ---------- Intro / statement ---------- */
.intro__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,110px);align-items:end}
.intro__statement{font-family:var(--f-head);font-size:clamp(1.7rem,3.4vw,2.7rem);line-height:1.22;letter-spacing:-.02em;color:var(--ink)}
.intro__statement em{font-style:italic;color:var(--sage-deep)}
.intro__aside p{color:var(--muted)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:64px;border-top:1px solid var(--line);padding-top:48px}
.stat .num{font-family:var(--f-head);font-size:clamp(2.4rem,5vw,3.4rem);color:var(--sage-deep);line-height:1}
.stat .lbl{margin-top:10px;font-size:.92rem;color:var(--muted)}

/* ---------- Services (editorial rows) ---------- */
.services{background:var(--paper)}
.srv-list{border-top:1px solid var(--line)}
.srv-row{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;
  padding:clamp(26px,3.4vw,44px) 6px;border-bottom:1px solid var(--line);cursor:default;transition:padding-left .4s var(--ease)}
.srv-row .num{font-family:var(--f-head);font-size:1rem;color:var(--muted);transition:color .4s}
.srv-row .mid{position:relative;z-index:2}
.srv-row h3{font-family:var(--f-head);font-weight:400;font-size:clamp(1.5rem,3.2vw,2.5rem);letter-spacing:-.02em;color:var(--ink);transition:color .4s,transform .5s var(--ease-out)}
.srv-row .desc{color:var(--muted);font-size:.98rem;max-width:52ch;margin-top:6px;
  max-height:0;opacity:0;overflow:hidden;transition:max-height .5s var(--ease),opacity .4s,margin .4s}
.srv-row .arrow{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink);transition:all .4s var(--ease)}
.srv-row .arrow svg{width:18px;height:18px;transition:transform .4s var(--ease)}
.srv-row:hover{padding-left:26px}
.srv-row:hover .num{color:var(--sage-deep)}
.srv-row:hover h3{color:var(--sage-deep);transform:translateX(4px)}
.srv-row:hover .desc{max-height:80px;opacity:1;margin-top:12px}
.srv-row:hover .arrow{background:var(--sage-deep);border-color:var(--sage-deep);color:#fff}
.srv-row:hover .arrow svg{transform:rotate(-45deg)}
.srv-row.is-feature h3{font-style:italic}
.srv-row .tag{display:inline-block;font-family:var(--f-body);font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-deep);background:rgba(105,152,134,.14);padding:4px 10px;border-radius:999px;margin-left:14px;vertical-align:middle}
/* cursor-follow thumbnail */
.srv-thumb{position:fixed;top:0;left:0;width:270px;height:340px;border-radius:var(--r-lg);overflow:hidden;pointer-events:none;z-index:60;
  opacity:0;transform:translate(-50%,-50%) scale(.85);transition:opacity .4s var(--ease),transform .4s var(--ease);box-shadow:0 30px 70px rgba(27,42,35,.34);background:var(--sage-deep)}
.srv-thumb.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.srv-thumb__media{position:absolute;inset:0;z-index:0}
.srv-thumb__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05) brightness(1.02);mix-blend-mode:luminosity;opacity:.9}
.srv-thumb__media::after{content:"";position:absolute;inset:0;background:linear-gradient(165deg,rgba(68,112,95,.5),rgba(27,42,35,.82))}
.srv-thumb__cap{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:space-between;padding:24px;color:#fff}
.srv-thumb__ic{width:56px;height:56px;border-radius:15px;background:rgba(255,255,255,.16);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}
.srv-thumb__ic svg{width:28px;height:28px;color:#fff}
.srv-thumb__label{font-family:var(--f-head);font-size:1.5rem;line-height:1.1}
.srv-thumb__more{font-family:var(--f-logo);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.8);display:flex;align-items:center;gap:8px;margin-top:8px}
.srv-thumb__more svg{width:14px;height:14px}
.srv-row[data-href]{cursor:pointer}
@media(hover:none){.srv-thumb{display:none}}

/* ---------- Spotlight (dark) ---------- */
.spotlight{background:var(--forest);color:rgba(255,255,255,.82);position:relative;overflow:hidden}
.spotlight::before{content:"";position:absolute;width:60vw;max-width:760px;aspect-ratio:1;right:-14vw;top:-18vh;border-radius:50%;
  background:radial-gradient(circle,rgba(105,152,134,.26),transparent 65%)}
.spotlight__bird{position:absolute;right:2vw;bottom:-4vh;width:min(38vw,460px);opacity:.10;filter:brightness(0) invert(1);z-index:0;pointer-events:none}
.spotlight__inner{position:relative;z-index:2;max-width:820px}
.spotlight h2{color:#fff}
.spotlight h2 em{color:var(--sage)}
.spotlight p{color:rgba(255,255,255,.78);margin-top:22px;font-size:1.1rem;max-width:60ch}
.spotlight__list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:24px 40px;margin:40px 0 46px}
.spotlight__list li{display:flex;gap:16px;align-items:center;color:#fff;font-weight:500;line-height:1.4}
.spotlight__list .li-ic{width:46px;height:46px;border-radius:13px;background:rgba(105,152,134,.16);border:1px solid rgba(105,152,134,.32);display:flex;align-items:center;justify-content:center;flex:none}
.spotlight__list .li-ic svg{width:22px;height:22px;color:var(--sage)}

/* ---------- Team ---------- */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2vw,28px)}
.member{position:relative}
.member:nth-child(2){margin-top:48px}
.member:nth-child(3){margin-top:18px}
.member:nth-child(4){margin-top:64px}
.member__photo{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:3/4;background:var(--cream-2)}
.member__photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(1.03);transition:filter .6s var(--ease),transform .9s var(--ease)}
.member__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(27,42,35,.5),transparent 50%);opacity:.7;transition:opacity .5s}
.member:hover .member__photo img{filter:grayscale(0%);transform:scale(1.05)}
.member__name{position:absolute;left:18px;bottom:16px;z-index:2;color:#fff}
.member__name h3{color:#fff;font-size:1.3rem}
.member__name .role{font-family:var(--f-body);font-size:.8rem;font-weight:600;letter-spacing:.04em;color:rgba(255,255,255,.85);text-transform:uppercase;margin-top:2px}
.member__quals{margin-top:14px;color:var(--muted);font-size:.9rem;line-height:1.5}

/* ---------- Testimonials ---------- */
.testi-wrap{background:var(--cream)}
.testi-feature{max-width:920px;margin-inline:auto;text-align:center}
.testi-feature .stars{display:inline-flex;gap:5px;margin-bottom:28px}
.testi-feature .stars svg{width:26px;height:26px;color:var(--gold)}
.testi-quote{font-family:var(--f-head);font-style:italic;font-size:clamp(1.5rem,3.4vw,2.6rem);line-height:1.3;color:var(--ink);letter-spacing:-.01em}
.testi-quote .markq{color:var(--sage)}
.testi-meta{margin-top:30px;color:var(--muted);font-size:.95rem}
.testi-note{margin-top:54px;display:flex;align-items:center;justify-content:center;gap:14px;color:var(--muted);font-size:.9rem}
.testi-note .g{font-weight:700;color:var(--ink)}

/* ---------- Contact ---------- */
.contact{background:var(--forest);color:rgba(255,255,255,.82);position:relative;overflow:hidden}
.contact::before{content:"";position:absolute;width:50vw;max-width:600px;aspect-ratio:1;left:-12vw;bottom:-20vh;border-radius:50%;background:radial-gradient(circle,rgba(105,152,134,.2),transparent 65%)}
.contact__inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);align-items:start}
.contact__inner > *{min-width:0}
.contact h2{color:#fff}
.contact h2 em{color:var(--sage)}
.contact__info > .lead{color:rgba(255,255,255,.74);margin:20px 0 40px}
.contact__list{list-style:none;display:grid;gap:22px}
.contact__list li{display:flex;gap:16px;align-items:flex-start}
.contact__list .ic{width:46px;height:46px;border-radius:50%;border:1px solid var(--line-dark);display:flex;align-items:center;justify-content:center;flex:none}
.contact__list .ic svg{width:20px;height:20px;color:var(--sage)}
.contact__list .lbl{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:600;margin-bottom:3px}
.contact__list .val{color:#fff;font-weight:500}
.contact__list .val a:hover{color:var(--sage)}
.contact__list small{color:rgba(255,255,255,.55);font-weight:400}
.contact__map{margin-top:30px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line-dark);filter:grayscale(.3) contrast(1.05)}
.contact__map iframe{display:block;width:100%;height:200px;border:0}

.form{background:rgba(255,255,255,.04);backdrop-filter:blur(6px);border:1px solid var(--line-dark);border-radius:var(--r-xl);padding:clamp(28px,4vw,46px)}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:18px}
.field label{display:block;font-size:.82rem;font-weight:600;color:#fff;margin-bottom:8px}
.field input,.field select,.field textarea{width:100%;font-family:inherit;font-size:.97rem;color:#fff;padding:14px 16px;
  border:1px solid var(--line-dark);border-radius:12px;background:rgba(255,255,255,.05);transition:border-color .25s,box-shadow .25s,background .25s}
.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.4)}
.field select{color:#fff}
.field select option{color:#16201B}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--sage);background:rgba(255,255,255,.08);box-shadow:0 0 0 3px rgba(105,152,134,.25)}
.field textarea{resize:vertical;min-height:120px}
.form .btn{width:100%;justify-content:center;margin-top:6px}
.form__note{text-align:center;color:rgba(255,255,255,.55);font-size:.84rem;margin-top:16px}
.form__success{display:none;text-align:center;padding:14px;border-radius:12px;background:rgba(105,152,134,.2);color:#fff;font-weight:600;margin-top:14px}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:rgba(255,255,255,.6);padding-block:70px 34px;position:relative;overflow:hidden}
.footer__word{font-family:var(--f-head);font-size:clamp(3.5rem,16vw,13rem);line-height:.85;color:rgba(255,255,255,.05);letter-spacing:-.04em;white-space:nowrap;pointer-events:none;margin-bottom:-2vw}
.footer__top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:44px;padding-bottom:40px;border-bottom:1px solid var(--line-dark);position:relative;z-index:2}
.footer__brand img{height:66px;width:auto;margin-bottom:18px;filter:brightness(0) invert(1);opacity:.92}
.footer__brand p{max-width:32ch;font-size:.94rem}
.footer__col h4{font-family:var(--f-body);color:#fff;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px;font-weight:600}
.footer__col ul{list-style:none;display:grid;gap:12px}
.footer__col a:hover{color:#fff}
.footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:26px;font-size:.85rem;color:rgba(255,255,255,.45)}
.footer__bottom a:hover{color:#fff}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.reveal.in{opacity:1;transform:none}
[data-stagger] > *{opacity:0;transform:translateY(34px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
[data-stagger].in > *{opacity:1;transform:none}
[data-stagger].in > *:nth-child(1){transition-delay:.05s}
[data-stagger].in > *:nth-child(2){transition-delay:.13s}
[data-stagger].in > *:nth-child(3){transition-delay:.21s}
[data-stagger].in > *:nth-child(4){transition-delay:.29s}
[data-stagger].in > *:nth-child(5){transition-delay:.37s}
[data-stagger].in > *:nth-child(6){transition-delay:.45s}

/* ---------- Responsive ---------- */
@media(max-width:1080px){
  .member:nth-child(n){margin-top:0}
  .team-grid{grid-template-columns:repeat(2,1fr);gap:24px}
  .member:nth-child(2){margin-top:40px}.member:nth-child(4){margin-top:40px}
}
@media(max-width:920px){
  .hero__inner{grid-template-columns:1fr;gap:10px}
  .hero__visual{order:-1;min-height:300px;max-width:380px;margin-inline:auto}
  .hero__edge{display:none}
  .intro__grid,.spotlight__list,.contact__inner{grid-template-columns:1fr}
  .spotlight__list{gap:14px}
  .footer__top{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .stats{grid-template-columns:1fr;gap:0}
  .stat{border-bottom:1px solid var(--line);padding-block:22px}
  .srv-row{grid-template-columns:auto 1fr;gap:18px}
  .srv-row .arrow{display:none}
  .srv-row .desc{max-height:none;opacity:1;margin-top:10px}
}
@media(max-width:560px){
  .team-grid{grid-template-columns:1fr;max-width:380px;margin-inline:auto}
  .member:nth-child(n){margin-top:0}
  .form .row{grid-template-columns:1fr}
  .footer__top{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.001s!important}
  .reveal,[data-stagger]>*{opacity:1;transform:none}
  .hero h1 .ln>span,.hero__lead,.hero__actions,.hero__bird,.chip{opacity:1;transform:none}
}

/* ============================================================
   MULTI-STEP WIZARD (Terminanfrage) — im dunklen Kontaktbereich
   ============================================================ */
.wizard{background:rgba(255,255,255,.04);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  border:1px solid var(--line-dark);border-radius:var(--r-xl);padding:clamp(26px,3.4vw,40px);position:relative;overflow:hidden;min-width:0}
.wiz__head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
.wiz__count{font-family:var(--f-logo);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6);font-weight:600}
.wiz__badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-logo);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--sage);background:rgba(105,152,134,.16);padding:5px 12px;border-radius:999px}
.wiz__badge svg{width:13px;height:13px}
.wiz__bar{height:4px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;margin-bottom:30px}
.wiz__bar span{display:block;height:100%;width:25%;border-radius:999px;background:linear-gradient(90deg,var(--sage),#8cb8a6);transition:width .55s var(--ease-out)}

.wiz__viewport{position:relative}
.wiz__step{border:0;padding:0;margin:0;min-inline-size:0;display:none}
.wiz__step.is-active{display:block;animation:wizIn .5s var(--ease-out)}
@keyframes wizIn{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}
.wiz__q{font-family:var(--f-head);font-size:clamp(1.45rem,2.6vw,1.95rem);color:#fff;line-height:1.15;letter-spacing:-.01em;padding:0}
.wiz__sub{color:rgba(255,255,255,.6);font-size:.95rem;margin:8px 0 24px}

.wiz__opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(195px,1fr));gap:12px}
.opt{min-width:0}.opt__t{min-width:0;hyphens:auto}
.wiz__opts .opt--wide,.wiz__opts[data-name="besuch"] .opt,.wiz__opts[data-name="zeit"] .opt{grid-column:1/-1}
.opt{display:flex;align-items:center;gap:14px;text-align:left;cursor:pointer;
  background:rgba(255,255,255,.05);border:1.5px solid var(--line-dark);border-radius:14px;padding:15px 16px;color:#fff;
  font-family:var(--f-body);font-size:.96rem;font-weight:500;transition:border-color .25s,background .25s,transform .25s var(--ease-out)}
.opt:hover{border-color:rgba(105,152,134,.7);background:rgba(255,255,255,.08);transform:translateY(-2px)}
.opt__ic{width:38px;height:38px;border-radius:10px;background:rgba(105,152,134,.16);display:flex;align-items:center;justify-content:center;flex:none;transition:background .25s}
.opt__ic svg{width:19px;height:19px;color:var(--sage);transition:color .25s}
.opt__t{flex:1;line-height:1.3}
.opt__chk{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line-dark);flex:none;position:relative;transition:all .25s}
.opt__chk::after{content:"";position:absolute;left:50%;top:46%;width:6px;height:10px;border:2px solid #fff;border-top:0;border-left:0;transform:translate(-50%,-50%) rotate(45deg) scale(0);transition:transform .25s var(--ease-out)}
.opt.selected{border-color:var(--sage);background:rgba(105,152,134,.22)}
.opt.selected .opt__ic{background:var(--sage)}
.opt.selected .opt__ic svg{color:#fff}
.opt.selected .opt__chk{background:var(--sage);border-color:var(--sage)}
.opt.selected .opt__chk::after{transform:translate(-50%,-50%) rotate(45deg) scale(1)}

/* summary + chips on step 4 */
.wiz__summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.wiz__summary:empty{display:none}
.sum-chip{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;color:#fff;background:rgba(105,152,134,.18);border:1px solid rgba(105,152,134,.4);padding:6px 12px;border-radius:999px}
.sum-chip svg{width:13px;height:13px;color:var(--sage)}
.wiz__chips{margin-bottom:20px}
.wiz__chips-lbl{display:block;font-size:.82rem;font-weight:600;color:#fff;margin-bottom:10px}
.wiz__chips-lbl small{font-weight:400;color:rgba(255,255,255,.5)}
.wiz__chips-row{display:flex;flex-wrap:wrap;gap:10px}
.chip-opt{font-family:var(--f-body);font-size:.9rem;color:rgba(255,255,255,.85);background:rgba(255,255,255,.05);
  border:1.5px solid var(--line-dark);border-radius:999px;padding:9px 18px;cursor:pointer;transition:all .22s}
.chip-opt:hover{border-color:rgba(105,152,134,.7)}
.chip-opt.selected{background:var(--sage);border-color:var(--sage);color:#fff}

/* nav */
.wiz__nav{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:28px}
.wiz__back{display:inline-flex;align-items:center;gap:8px;background:none;border:0;color:rgba(255,255,255,.7);
  font-family:var(--f-logo);font-size:.86rem;font-weight:600;letter-spacing:.04em;cursor:pointer;padding:8px 4px;transition:color .2s}
.wiz__back:hover{color:#fff}
.wiz__back svg{width:17px;height:17px}
.wiz__hint{font-size:.82rem;color:rgba(255,255,255,.4);margin-left:auto;font-style:italic}
.wiz__submit{margin-left:auto}
.wiz__opts.shake{animation:shake .4s}
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}

/* success */
.wiz__success{text-align:center;padding:18px 8px 6px;animation:wizIn .6s var(--ease-out)}
.wiz__success-bird{width:118px;margin:0 auto 18px;filter:brightness(0) invert(1);opacity:.92}
.wiz__success h3{font-family:var(--f-head);color:#fff;font-size:1.9rem;margin-bottom:12px}
.wiz__success p{color:rgba(255,255,255,.72);max-width:34ch;margin-inline:auto}
.wizard.done .wiz__viewport,.wizard.done .wiz__nav,.wizard.done .wiz__head,.wizard.done .wiz__bar{display:none}

@media(max-width:560px){
  .wiz__opts{grid-template-columns:1fr}
  .wiz__q{font-size:1.4rem}
}

/* ============================================================
   STUB / "In Vorbereitung"-Seiten
   ============================================================ */
.stub{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:150px var(--gutter) 90px;background:var(--cream);position:relative;overflow:hidden}
.stub__bird{width:120px;margin-bottom:30px;opacity:.92;position:relative;z-index:2;animation:bob 7s ease-in-out infinite}
.stub .eyebrow{justify-content:center;margin-bottom:18px;position:relative;z-index:2}
.stub h1{font-size:clamp(2.4rem,6vw,4.4rem);margin-bottom:18px;position:relative;z-index:2}
.stub h1 em{font-style:italic;color:var(--sage-deep)}
.stub p{max-width:48ch;color:var(--muted);font-size:1.12rem;margin-bottom:36px;position:relative;z-index:2}
.stub__actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;position:relative;z-index:2}
.stub__soon{margin-top:40px;font-family:var(--f-logo);font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage-deep);
  display:inline-flex;align-items:center;gap:12px;position:relative;z-index:2}
.stub__soon::before,.stub__soon::after{content:"";width:34px;height:1px;background:currentColor;opacity:.5}

/* ============================================================
   BILD-TREATMENTS  (einheitliche Salbe-Duotone für Kohärenz)
   ============================================================ */
.media{position:relative;overflow:hidden;border-radius:var(--r-lg);background:var(--cream-2)}
.media img{display:block;width:100%;height:100%;object-fit:cover}
/* sage duotone: entfärbt + legt Markengrün darüber (für die blauen Interieurs/Stock) */
.duo{position:relative;overflow:hidden;border-radius:var(--r-lg);background:var(--sage-deep)}
.duo img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04) brightness(1.02);mix-blend-mode:luminosity;opacity:.92}
.duo::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(105,152,134,.15),rgba(27,42,35,.25));mix-blend-mode:multiply;pointer-events:none}
/* subtiler Tint, behält Naturfarben, nur für Lesbarkeit/Stimmung */
.tint::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,42,35,.05),rgba(27,42,35,.45));pointer-events:none}

/* ---------- Homepage: Atmosphäre-Band (full-bleed Naturbild) ---------- */
.atmo{position:relative;min-height:min(70vh,560px);display:flex;align-items:center;overflow:hidden}
.atmo__img{position:absolute;inset:0;z-index:0}
.atmo__img img{width:100%;height:100%;object-fit:cover}
.atmo__img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(27,42,35,.82),rgba(27,42,35,.45) 60%,rgba(27,42,35,.25))}
.atmo__inner{position:relative;z-index:2;color:#fff;max-width:640px}
.atmo__inner .eyebrow{color:var(--sage)}
.atmo h2{color:#fff;margin:16px 0}
.atmo h2 em{color:var(--sage)}
.atmo p{color:rgba(255,255,255,.85);font-size:1.1rem}

/* ---------- Homepage: Praxis-Einblicke (Bento-Galerie) ---------- */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:16px}
.bento > *{border-radius:var(--r-lg);overflow:hidden}
.b-a{grid-column:span 2;grid-row:span 2}
.b-b{grid-column:span 2;grid-row:span 1}
.b-c{grid-column:span 1;grid-row:span 1}
.b-quote{grid-column:span 1;grid-row:span 1;background:var(--sage-deep);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:26px}
.b-quote p{font-family:var(--f-head);font-style:italic;font-size:1.15rem;line-height:1.3}
.b-quote span{font-family:var(--f-logo);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-top:14px}
.bento .media img,.bento .duo img{transition:transform .7s var(--ease)}
.bento .media:hover img,.bento .duo:hover img{transform:scale(1.05)}

/* ============================================================
   SUBPAGE-KOMPONENTEN  (Template für alle Detailseiten)
   ============================================================ */
.subhero{position:relative;min-height:min(86vh,720px);display:flex;align-items:flex-end;overflow:hidden;padding-bottom:clamp(40px,6vw,80px)}
.subhero__bg{position:absolute;inset:0;z-index:0}
.subhero__bg img{width:100%;height:100%;object-fit:cover}
.subhero__bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(20,32,27,.5) 0%,rgba(20,32,27,.4) 26%,rgba(20,32,27,.74) 64%,rgba(20,32,27,.95) 100%),
  linear-gradient(90deg,rgba(20,32,27,.62) 0%,rgba(20,32,27,.18) 52%,transparent 78%)}
.subhero__inner{position:relative;z-index:2;color:#fff;max-width:860px}
.subhero .eyebrow{color:#a8ccbd}
.subhero h1{color:#fff;font-size:clamp(2.6rem,6.5vw,5rem);margin:18px 0 18px;letter-spacing:-.03em;text-shadow:0 2px 24px rgba(20,32,27,.45)}
.subhero h1 em{color:#a8ccbd;font-style:italic}
.subhero p{text-shadow:0 1px 16px rgba(20,32,27,.4)}
.subhero p{color:rgba(255,255,255,.88);font-size:clamp(1.05rem,1.6vw,1.3rem);max-width:54ch}
.subhero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.subcrumb{position:absolute;top:calc(88px + env(safe-area-inset-top));left:0;right:0;z-index:2}
.subcrumb .container{display:flex;gap:10px;align-items:center;color:rgba(255,255,255,.7);font-family:var(--f-logo);font-size:.8rem;letter-spacing:.04em}
.subcrumb a:hover{color:#fff}.subcrumb svg{width:14px;height:14px;opacity:.6}

/* alternating text/image rows */
.feature-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.feature-row + .feature-row{margin-top:clamp(48px,7vw,100px)}
.feature-row.rev .feature-row__text{order:2}
.feature-row__media{aspect-ratio:4/5;border-radius:var(--r-xl)}
.feature-row__text .eyebrow{margin-bottom:16px}
.feature-row__text h3{font-size:clamp(1.6rem,3vw,2.3rem);margin-bottom:14px}
.feature-row__text p{color:var(--muted)}
.feature-row__list{list-style:none;margin-top:20px;display:grid;gap:12px}
.feature-row__list li{display:flex;gap:12px;align-items:flex-start;color:var(--ink-soft);font-weight:500}
.feature-row__list svg{width:21px;height:21px;color:var(--sage-deep);flex:none;margin-top:1px}

/* approach pillars (numbered cards w/ image) */
.pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.pillar{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm,0 1px 2px rgba(0,0,0,.04));transition:transform .3s var(--ease),box-shadow .3s}
.pillar:hover{transform:translateY(-4px);box-shadow:0 20px 50px rgba(27,42,35,.1)}
.pillar__media{aspect-ratio:16/10}
.pillar__body{padding:26px 26px 30px}
.pillar__num{font-family:var(--f-head);color:var(--sage);font-size:1rem}
.pillar h3{font-size:1.3rem;margin:6px 0 10px}
.pillar p{color:var(--muted);font-size:.96rem}

/* FAQ accordion */
.faq{max-width:820px;margin-inline:auto}
.faq__item{border-bottom:1px solid var(--line)}
.faq__q{width:100%;background:none;border:0;cursor:pointer;text-align:left;display:flex;justify-content:space-between;gap:20px;align-items:center;
  padding:24px 0;font-family:var(--f-head);font-size:clamp(1.1rem,2vw,1.4rem);color:var(--ink)}
.faq__q svg{width:24px;height:24px;color:var(--sage-deep);flex:none;transition:transform .35s var(--ease)}
.faq__item.open .faq__q svg{transform:rotate(45deg)}
.faq__a{max-height:0;overflow:hidden;transition:max-height .4s var(--ease)}
.faq__a p{padding:0 0 24px;color:var(--muted);max-width:70ch}
.faq__item.open .faq__a{max-height:340px}

/* CTA band */
.cta-band{background:var(--forest);color:#fff;border-radius:var(--r-xl);padding:clamp(40px,6vw,72px);text-align:center;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;width:50vw;max-width:560px;aspect-ratio:1;right:-10vw;top:-40%;border-radius:50%;background:radial-gradient(circle,rgba(105,152,134,.28),transparent 65%)}
.cta-band__bird{position:absolute;left:-30px;bottom:-40px;width:200px;opacity:.1;filter:brightness(0) invert(1);pointer-events:none}
.cta-band h2{color:#fff;position:relative;z-index:2}
.cta-band h2 em{color:var(--sage)}
.cta-band p{color:rgba(255,255,255,.8);max-width:50ch;margin:16px auto 30px;position:relative;z-index:2}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;position:relative;z-index:2}

@media(max-width:860px){
  .bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}
  .b-a{grid-column:span 2;grid-row:span 2}.b-b{grid-column:span 2}.b-c{grid-column:span 1}.b-quote{grid-column:span 1}
  .feature-row{grid-template-columns:1fr;gap:24px}
  .feature-row.rev .feature-row__text{order:0}
  .feature-row__media{aspect-ratio:16/11}
  .pillars{grid-template-columns:1fr}
  .subhero{min-height:70vh}
}

/* ============================================================
   FEINSCHLIFF — Custom Cursor + Bild-Reveal
   ============================================================ */
.cursor{position:fixed;top:0;left:0;width:34px;height:34px;border:1.5px solid var(--sage-deep);border-radius:50%;
  pointer-events:none;z-index:10001;transform:translate(-50%,-50%);opacity:0;
  transition:opacity .3s,width .28s var(--ease),height .28s var(--ease),background .28s,border-color .28s}
.cursor.on{opacity:1}
.cursor.big{width:64px;height:64px;background:rgba(105,152,134,.14);border-color:transparent}
.cursor.dark{border-color:rgba(255,255,255,.75)}
.cursor.dark.big{background:rgba(255,255,255,.16)}
@media (hover:none),(pointer:coarse){.cursor{display:none!important}}
@media (prefers-reduced-motion:reduce){.cursor{display:none!important}}

/* Bild-Reveal: sanftes Scale/Fade beim Eintreten */
.media img,.duo img,.feature-row__media img,.pillar__media img{transition:transform .9s var(--ease),opacity .9s var(--ease)}
.reveal-img{overflow:hidden}
.reveal-img img{transform:scale(1.12);opacity:0}
.reveal-img.in img{transform:scale(1);opacity:1}
@media (prefers-reduced-motion:reduce){.reveal-img img{transform:none;opacity:1}}

/* ============================================================
   MODAL-POPUP (Terminanfrage-Wizard)
   ============================================================ */
body.modal-open{overflow:hidden}
.modal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:18px;
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s}
.modal.open{opacity:1;visibility:visible}
.modal__backdrop{position:absolute;inset:0;background:rgba(15,24,20,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal__dialog{position:relative;z-index:2;width:min(600px,100%);max-height:92vh;overflow:auto;
  background:var(--forest);border:1px solid var(--line-dark);border-radius:var(--r-xl);
  box-shadow:0 50px 120px rgba(0,0,0,.5);padding:clamp(24px,4vw,42px);
  transform:translateY(26px) scale(.97);opacity:.4;transition:transform .45s var(--ease-out),opacity .45s}
.modal.open .modal__dialog{transform:none;opacity:1}
.modal__close{position:absolute;top:14px;right:14px;z-index:5;width:40px;height:40px;border-radius:50%;
  border:1px solid var(--line-dark);background:rgba(255,255,255,.06);color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s}
.modal__close:hover{background:rgba(255,255,255,.16);transform:rotate(90deg)}
.modal__close svg{width:18px;height:18px}
/* Wizard erbt die Modal-Flaeche, keine doppelte Karte */
.modal .wizard{background:none;border:0;padding:0;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible}
.modal .wiz__head{padding-right:44px}

/* Kontakt-CTA-Karte (ersetzt Inline-Formular, oeffnet das Popup) */
.contact__card{display:flex;flex-direction:column;align-items:flex-start;background:rgba(255,255,255,.04);
  border:1px solid var(--line-dark);border-radius:var(--r-xl);padding:clamp(30px,4vw,48px);backdrop-filter:blur(6px)}
.contact__card-bird{width:78px;filter:brightness(0) invert(1);opacity:.92;margin-bottom:16px}
.contact__card h3{color:#fff;font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:10px}
.contact__card p{color:rgba(255,255,255,.74);margin-bottom:22px;max-width:38ch}
.contact__card-note{font-family:var(--f-logo);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:14px}

/* ============================================================
   BLOG (Übersicht + Artikel)
   ============================================================ */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.post-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;box-shadow:0 1px 2px rgba(27,42,35,.04);transition:transform .3s var(--ease),box-shadow .3s}
.post-card:hover{transform:translateY(-5px);box-shadow:0 24px 54px rgba(27,42,35,.13)}
.post-card__media{aspect-ratio:3/2;overflow:hidden}
.post-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.post-card:hover .post-card__media img{transform:scale(1.05)}
.post-card__body{padding:24px 24px 28px;display:flex;flex-direction:column;flex:1}
.post-card__meta{font-family:var(--f-logo);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage-deep);margin-bottom:10px}
.post-card h3{font-size:1.28rem;line-height:1.2;margin-bottom:10px}
.post-card p{color:var(--muted);font-size:.95rem;flex:1}
.post-card__more{font-family:var(--f-logo);font-weight:600;font-size:.82rem;color:var(--sage-deep);margin-top:18px;display:inline-flex;gap:7px;align-items:center}
.post-card__more svg{width:15px;height:15px;transition:transform .25s}
.post-card:hover .post-card__more svg{transform:translateX(3px)}

.article-hero{position:relative;min-height:min(62vh,480px);display:flex;align-items:flex-end;overflow:hidden;padding-bottom:clamp(34px,5vw,60px)}
.article-hero__bg{position:absolute;inset:0;z-index:0}
.article-hero__bg img{width:100%;height:100%;object-fit:cover}
.article-hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,32,27,.4) 0%,rgba(20,32,27,.5) 45%,rgba(20,32,27,.9) 100%)}
.article-hero__inner{position:relative;z-index:2;color:#fff;max-width:840px}
.article-hero .meta{font-family:var(--f-logo);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:#a8ccbd;margin-bottom:14px}
.article-hero h1{color:#fff;font-size:clamp(2rem,4.4vw,3.3rem);letter-spacing:-.02em;text-shadow:0 2px 24px rgba(20,32,27,.45)}
.prose{max-width:720px;margin-inline:auto}
.prose p{margin-bottom:1.3em;color:var(--ink-soft);font-size:1.1rem;line-height:1.78}
.prose p.lead{font-size:1.3rem;line-height:1.6;color:var(--ink)}
.article-back{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-logo);font-weight:600;font-size:.84rem;color:var(--sage-deep);margin-bottom:36px}
.article-back svg{width:16px;height:16px}
@media(max-width:860px){.blog-grid{grid-template-columns:1fr;max-width:460px;margin-inline:auto}}

/* ============================================================
   PERSONEN-PROFILSEITEN
   ============================================================ */
.profile{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(32px,5vw,72px);align-items:start}
.profile__photo{border-radius:var(--r-xl);overflow:hidden;aspect-ratio:3/4;background:var(--cream-2);position:sticky;top:108px}
.profile__photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(1.03)}
.profile__role{margin-bottom:16px}
.profile h1{font-size:clamp(2.2rem,4.6vw,3.3rem);margin-bottom:8px}
.profile__note{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-logo);font-size:.76rem;letter-spacing:.04em;
  color:var(--sage-deep);background:var(--brand-tint,rgba(105,152,134,.12));border:1px solid rgba(105,152,134,.3);
  padding:6px 14px;border-radius:999px;margin-bottom:22px}
.profile__bio{font-size:1.15rem;line-height:1.7;color:var(--ink-soft)}
.profile__quote{margin:26px 0;padding:6px 0 6px 22px;border-left:3px solid var(--sage);font-family:var(--f-head);font-style:italic;font-size:1.3rem;color:var(--ink)}
.profile__block{margin-top:36px}
.profile__block h2{font-size:1.4rem;margin-bottom:18px}
.profile__tags{display:flex;flex-wrap:wrap;gap:10px}
.profile__tags span{background:var(--cream-2);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:.92rem;color:var(--ink-soft)}
.q-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.q-list li{display:flex;gap:16px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line)}
.q-list .yr{font-family:var(--f-logo);font-size:.8rem;font-weight:600;color:var(--sage-deep);min-width:38px}
.profile__contact{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.profile__contact a{display:inline-flex;align-items:center;gap:9px;background:var(--paper);border:1px solid var(--line);
  border-radius:999px;padding:11px 20px;font-weight:600;font-size:.92rem;color:var(--ink);box-shadow:0 1px 2px rgba(27,42,35,.04);transition:border-color .2s,transform .2s}
.profile__contact a:hover{border-color:var(--sage);transform:translateY(-2px)}
.profile__contact svg{width:17px;height:17px;color:var(--sage-deep)}
@media(max-width:860px){
  .profile{grid-template-columns:1fr}
  .profile__photo{position:relative;top:0;max-width:360px}
  .q-list{grid-template-columns:1fr}
}
