
:root {
  --paper:#f6f0e7;
  --warm-white:#fcfaf6;
  --sand:#ded3c3;
  --olive:#6c7358;
  --olive-deep:#485041;
  --ink:#2f312d;
  --muted:#746f68;
  --line:rgba(72,80,65,.18);
  --rose:#b88f82;
  --soft-rose:#f3e6df;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--warm-white);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.68}
a{color:inherit;text-decoration:none}
p{margin-top:0}
h1,h2,h3,.brand>a{font-family:Georgia,"Times New Roman",serif;font-weight:400}
h1{font-size:clamp(1.9rem,3vw,2.65rem);line-height:1.1;letter-spacing:-.02em;margin:0 0 .8rem}
h2{font-size:clamp(1.22rem,1.9vw,1.52rem);line-height:1.28;letter-spacing:-.006em;margin:0 0 .7rem}
h3{font-size:1rem;line-height:1.35;margin:0 0 .45rem}
strong{font-weight:600}

.site-header{min-height:86px;padding:.95rem clamp(1.1rem,4vw,4rem);display:flex;align-items:center;justify-content:space-between;gap:2rem;position:sticky;top:0;z-index:30;background:rgba(252,250,246,.95);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.045)}
.brand{display:flex;flex-direction:column;min-width:250px}.brand>a{font-size:1.15rem;line-height:1.15}.brand span{margin-top:.22rem;color:var(--muted);font-size:.76rem}.nav{display:flex;align-items:center;gap:1rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.075em}.nav>a,.nav-group>a,.dropbtn{padding:.42rem 0;border-bottom:1px solid transparent}.nav>a:hover,.nav>a.active,.nav-group>a.active,.nav-group:hover>a,.dropbtn:hover{border-color:var(--olive)}
.nav-group{position:relative;display:flex;align-items:center;gap:.25rem;padding-bottom:.7rem;margin-bottom:-.7rem}.dropbtn{border:0;background:transparent;color:inherit;font:inherit;letter-spacing:.075em;cursor:pointer;padding-left:.15rem}.dropdown-menu{display:none;position:absolute;top:calc(100% - 1px);left:-.6rem;min-width:258px;padding:.48rem;background:rgba(252,250,246,.99);border:1px solid var(--sand);box-shadow:0 14px 30px rgba(43,41,38,.07)}.nav-group:hover .dropdown-menu,.nav-group:focus-within .dropdown-menu,.nav-group.open .dropdown-menu{display:grid}.dropdown-menu a{padding:.68rem .78rem;text-transform:none;letter-spacing:0;font-size:.9rem}.dropdown-menu a:hover,.dropdown-menu a.active{background:rgba(108,115,88,.06)}.nav-toggle{display:none;border:0;background:transparent;font-size:1.4rem}
.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.135em;font-size:.68rem;color:var(--olive-deep);font-weight:700}.eyebrow{margin-bottom:.62rem}.section-kicker{margin-bottom:.42rem}

.hero-banner{position:relative;min-height:calc(78vh - 86px);padding:clamp(2rem,5vw,4rem) clamp(1.1rem,5vw,4.5rem);display:grid;align-items:center;overflow:hidden;isolation:isolate;background:#e8ddd1}.hero-banner::before{content:"";position:absolute;inset:-11%;z-index:-2;background:url('images/gemaelde.png') center center/cover no-repeat;transform:scale(1.25);filter:saturate(1.06) contrast(1.02) brightness(.98)}.hero-banner::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(250,245,238,.15),rgba(250,245,238,.05) 52%,rgba(250,245,238,.08))}.hero-panel{max-width:610px;padding:clamp(1.2rem,2.5vw,1.85rem);background:rgba(252,249,244,.48);backdrop-filter:blur(2px);border:1px solid rgba(255,255,255,.2)}.hero-panel h1{font-size:clamp(1.95rem,3vw,2.6rem)}.hero-panel .lead{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1rem,1.55vw,1.2rem);line-height:1.58;color:var(--olive-deep);margin-bottom:.9rem}.hero-subline{color:var(--muted);margin-bottom:.95rem}
.actions{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin-top:1.15rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.68rem 1rem;border:1px solid var(--olive);font:inherit;font-size:.72rem;text-transform:uppercase;letter-spacing:.055em;cursor:pointer}.button.primary{background:var(--olive);color:#fff}.button.secondary{color:var(--olive-deep);background:transparent}.inline-link{color:var(--olive-deep);border-bottom:1px solid var(--line)}.inline-link:hover{border-color:var(--olive)}

.home-intro,.content,.page-hero,.about-intro,.contact-flow,.editorial-page{padding-left:clamp(1.1rem,6vw,6rem);padding-right:clamp(1.1rem,6vw,6rem)}
.home-intro{padding-top:2.4rem;padding-bottom:3rem;max-width:950px}.home-intro-copy{max-width:740px}.home-intro-copy h2{margin-top:0}
.home-intro.home-intro-portrait{max-width:980px;display:grid;grid-template-columns:178px minmax(0,1fr);gap:clamp(1.5rem,3.2vw,2.5rem);align-items:center}.home-start-portrait{margin:0;width:178px;aspect-ratio:1/1;overflow:hidden;align-self:center;border-radius:50%;border:1px solid rgba(72,80,65,.16);background:transparent}.home-start-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 8%;transform:scale(1.18);display:block;transform-origin:50% 8%}.home-intro-copy{padding-top:0;align-self:center}.home-intro-copy .eyebrow{margin-bottom:.55rem}.home-intro-copy .actions{margin-top:1rem}
.page-hero{padding-top:2.25rem;padding-bottom:1rem;background:linear-gradient(180deg,#f7efe4 0%,#fcfaf6 100%)}.page-hero .inner{max-width:860px}.page-hero h1{font-size:clamp(1.75rem,2.55vw,2.25rem);margin-bottom:.32rem}.page-hero p{max-width:740px;margin-bottom:0}
.content{padding-top:1.5rem;padding-bottom:3.8rem}.content .measure{max-width:900px}.content .measure p{margin-bottom:1.02rem}

/* Shared editorial treatment for content-heavy pages */
.editorial-page{max-width:1180px;margin:0 auto;padding-top:2.1rem;padding-bottom:4.1rem}.editorial-intro{max-width:850px;margin-bottom:2.4rem}.narrow-intro{max-width:900px}.intro-copy{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.08rem,1.6vw,1.28rem);line-height:1.62;color:var(--olive-deep);margin-bottom:0}
.editorial-split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.75fr);gap:clamp(2rem,5vw,5rem);align-items:start;padding:2rem 0;border-top:1px solid var(--line)}.editorial-split-reverse{grid-template-columns:minmax(0,1fr) minmax(300px,.95fr)}.quote-side{align-self:center}.quote{margin:.2rem 0;padding:.8rem 0 .8rem 1.15rem;border-left:2px solid var(--olive);font-family:Georgia,"Times New Roman",serif;font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.55;color:var(--olive-deep)}.quote cite{display:block;margin-top:.6rem;font-family:Inter,sans-serif;font-size:.74rem;font-style:normal;color:var(--muted)}.soft-copy{padding:1.2rem 0 0 1.5rem;border-left:1px solid var(--line);color:var(--olive-deep)}.quiet-section{padding:2rem 0;border-top:1px solid var(--line);max-width:900px}.topic-section{padding:2rem 0;border-top:1px solid var(--line)}.topic-list{list-style:none;padding:0;margin:1.15rem 0 1.6rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2.5rem}.topic-list li{padding:.72rem 0;border-top:1px solid var(--line)}.topic-list li:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.company-section{margin-top:1.1rem;padding:2.2rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:170px minmax(0,760px);gap:2rem}.company-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;color:var(--olive-deep);font-weight:700;padding-top:.2rem}.page-links{display:flex;gap:2rem;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:1.3rem;margin-top:1rem}.page-links a{font-size:.84rem;color:var(--olive-deep)}.page-links span{margin-left:.35rem}

/* Group page: information without cards */
.fact-lines{margin:1rem 0 2.4rem;border-top:1px solid var(--line)}.fact-line{display:grid;grid-template-columns:140px 1fr;gap:1.5rem;padding:1.1rem 0;border-bottom:1px solid var(--line);max-width:920px}.fact-line p{margin:0}.fact-label{font-size:.69rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700;padding-top:.13rem}

/* Cost & process */
.process-section{padding-bottom:2.7rem}.process-line{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:1.5rem;border-top:1px solid var(--line)}.process-step{position:relative;padding:1.15rem 1.25rem 0 0;margin-right:1.25rem}.process-step:not(:last-child)::after{content:"";position:absolute;top:1.62rem;right:-.15rem;width:1.35rem;height:1px;background:var(--line)}.step-number{display:block;font-size:.68rem;letter-spacing:.08em;color:var(--rose);margin-bottom:.45rem}.process-step h3{font-size:1.02rem;color:var(--olive-deep)}.process-step p{font-size:.9rem;line-height:1.63;color:#474943}.cost-columns{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);padding:2.5rem 0;border-top:1px solid var(--line)}.cost-columns>div+div{padding-left:clamp(1.5rem,3vw,3rem);border-left:1px solid var(--line)}.session-strip{padding:1.5rem 0 0;border-top:1px solid var(--line)}.session-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem)}

/* Overview cards remain intentionally minimal */
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem;margin-top:1.15rem}.card{padding:0 1.25rem 0 0;border-right:1px solid var(--line);display:flex;flex-direction:column}.card:last-child{border-right:0}.card p{margin-bottom:1rem}.card .button{margin-top:auto;width:fit-content}

/* About / compact vita */
.about-intro{padding-top:1.8rem;padding-bottom:1rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:2.8rem;align-items:start}.about-intro-right .about-copy{order:1}.about-intro-right .about-portrait{order:2}.about-portrait{margin:0}.about-portrait img{width:100%;display:block;object-fit:cover;object-position:center}.about-portrait-rect img{aspect-ratio:4/5;border-radius:12px}.about-portrait figcaption{padding-top:.58rem;color:var(--muted);font-size:.8rem}.about-portrait figcaption span{display:block;color:var(--ink);font-weight:500}.about-copy{max-width:740px;font-size:.96rem}.cv-content{padding-top:.8rem}.cv-groups{max-width:860px;margin-top:.8rem}.cv-group{padding:1rem 0 1.15rem;border-top:1px solid var(--line)}.cv-group:first-child{border-top:0}.cv-group h3{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--olive-deep);margin-bottom:.35rem}.cv-row{display:grid;grid-template-columns:128px 1fr;gap:1rem;padding:.4rem 0}.cv-date{color:var(--muted);font-size:.82rem}.cv-text{margin:0;font-size:.88rem;line-height:1.55}

/* Practice */
/* Contact */
.contact-flow{max-width:960px;padding-top:1.5rem;padding-bottom:3.8rem}.contact-details{margin:1.1rem 0 1.6rem}.contact-details p{margin-bottom:.7rem}.notice{margin:1.1rem 0 1.7rem;padding:.08rem 0 .08rem 1rem;border-left:2px solid var(--olive)}.form-anchor{scroll-margin-top:110px;padding-top:1.25rem;border-top:1px solid var(--line)}.contact-form{max-width:740px;display:grid;gap:.9rem}.contact-form label{display:grid;gap:.34rem;font-size:.84rem}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--sand);background:transparent;color:var(--ink);padding:.82rem .76rem;font:inherit}.checkbox-list{display:grid;gap:.7rem;margin-top:.15rem}.checkbox-item{display:flex!important;gap:.65rem;align-items:flex-start;font-size:.84rem}.checkbox-item input{width:auto;margin-top:.2rem}.form-note,.small-note{color:var(--muted);font-size:.79rem}

.legal .measure{max-width:880px}.legal h2{margin-top:2rem}.legal ul{padding-left:1.1rem}
.footer{padding:2.2rem clamp(1.1rem,5vw,4.5rem);display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:1.4rem;background:#f2ece1;font-size:.86rem}.footer strong{font-family:Georgia,serif;font-weight:400;font-size:.98rem}.footer p{margin-bottom:.42rem}

@media(max-width:980px){.nav-toggle{display:block}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--warm-white);padding:1rem 1.25rem 1.3rem;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--sand)}.nav.open{display:flex}.nav-group{display:block;padding-bottom:0;margin-bottom:0}.nav-group>a{display:inline-block}.dropbtn{float:right}.dropdown-menu{display:none;position:static;border:0;box-shadow:none;padding:.35rem 0 .2rem .7rem}.nav-group:hover .dropdown-menu{display:none}.nav-group.open .dropdown-menu{display:grid}.about-intro,.editorial-split,.editorial-split-reverse,.cost-columns,.company-section,.session-grid,.footer,.card-grid{grid-template-columns:1fr}.soft-copy,.cost-columns>div+div{padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:1.1rem}.process-line{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.process-step:not(:last-child)::after{display:none}.company-section{gap:.75rem}}
@media(max-width:760px){.home-intro.home-intro-portrait{grid-template-columns:1fr;gap:1rem;align-items:start}.home-start-portrait{width:156px;justify-self:start}.home-start-portrait img{transform:scale(1.16);object-position:50% 8%}.home-intro-copy{align-self:start}}
@media(max-width:680px){.site-header{min-height:80px}.brand>a{font-size:1.02rem}.brand span{font-size:.7rem}.page-hero{padding-top:1.9rem}.topic-list,.process-line{grid-template-columns:1fr}.topic-list li:nth-last-child(-n+2){border-bottom:0}.topic-list li:last-child{border-bottom:1px solid var(--line)}.fact-line{grid-template-columns:1fr;gap:.25rem}.practice-float{float:none;width:100%;margin:.2rem 0 1.2rem}.cv-row{grid-template-columns:1fr;gap:.1rem;padding:.42rem 0}.process-step{padding-right:0;margin-right:0}}


/* ==========================================================
   Über mich – selected integrated portrait design
   ========================================================== */

.about-intro-integrated{
  position:relative;
  max-width:1180px;
  margin:0 auto;
  padding-top:2.2rem;
  padding-bottom:2.4rem;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(250px,305px);
  gap:clamp(2.6rem,5vw,5rem);
  align-items:center;
  isolation:isolate;
}

.about-intro-integrated .about-copy{
  max-width:700px;
  position:relative;
  z-index:3;
}

.about-integrated-photo{
  position:relative;
  z-index:2;
  margin:0;
  width:100%;
}

.about-integrated-photo img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  box-shadow:0 10px 26px rgba(47,49,45,.045);
}

/* Soft curved field: connects the portrait visually with the page
   without turning it into a separate card or hero image. */
.about-design-3::before{
  content:"";
  position:absolute;
  z-index:0;
  right:-72px;
  top:50%;
  transform:translateY(-50%);
  width:455px;
  height:575px;
  border-radius:55% 0 0 55%;
  background:rgba(224,216,203,.52);
}

.about-design-3::after{
  content:"";
  position:absolute;
  z-index:1;
  right:245px;
  top:50%;
  transform:translateY(-50%);
  width:190px;
  height:410px;
  border-radius:55% 0 0 55%;
  background:linear-gradient(
    90deg,
    rgba(252,250,246,0),
    rgba(252,250,246,.96)
  );
}

/* Clear but calm hierarchy:
   "Über mich" stands out primarily through scale, not weight. */
.about-page-hero h1{
  font-family:Optima,Candara,"Segoe UI",system-ui,sans-serif;
  font-weight:400;
  font-size:clamp(2.8rem,4.5vw,3.95rem);
  line-height:1.02;
  letter-spacing:.035em;
  color:var(--olive-deep);
  margin-bottom:1rem;
}

.about-page-hero .about-name{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(1.05rem,1.35vw,1.25rem);
  line-height:1.3;
  letter-spacing:0;
  color:var(--ink);
  margin-bottom:.28rem;
}

.about-page-hero .about-name + p{
  color:var(--muted);
  font-size:.88rem;
}

/* Keep the existing sans-serif treatment, only slightly larger. */
.about-section-title{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.84rem;
  line-height:1.35;
  color:var(--olive-deep);
  margin:0 0 .8rem;
}

.cv-group h3{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700;
  color:var(--olive-deep);
  margin-bottom:.5rem;
}

@media(max-width:980px){
  .about-intro-integrated{
    grid-template-columns:1fr;
    align-items:start;
  }

  .about-integrated-photo{
    width:min(100%,320px);
  }

  .about-design-3::before,
  .about-design-3::after{
    display:none;
  }
}

/* ==========================================================
   Photography integration
   Images are kept unedited; layout, spacing and soft fields
   create the visual connection to the surrounding content.
   ========================================================== */

/* Offers overview */
.offers-page-hero{
  position:relative;
  overflow:visible;
  padding-bottom:1.4rem;
}
.offers-hero-layout{
  position:relative;
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 185px;
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
}
.offers-page-hero .inner{max-width:790px}
.offers-hero-detail{
  position:relative;
  z-index:2;
  width:168px;
  margin:0 0 -3.1rem;
  justify-self:end;
}
.offers-hero-detail::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:190px;
  height:260px;
  right:-38px;
  top:-28px;
  border-radius:55% 0 0 55%;
  background:rgba(224,216,203,.52);
}
.offers-hero-detail img{
  display:block;
  width:100%;
  height:auto;
  box-shadow:0 12px 28px rgba(47,49,45,.055);
}
.offers-overview{padding-top:3.4rem}

/* Group therapy */
.group-intro-media{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);
  gap:clamp(2.5rem,5vw,5rem);
  align-items:center;
  margin-bottom:2.7rem;
  isolation:isolate;
}
.group-intro-media .editorial-intro{
  margin-bottom:0;
  position:relative;
  z-index:2;
}
.group-room-photo{
  position:relative;
  z-index:2;
  margin:0;
  width:100%;
}
.group-room-photo::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:116%;
  height:118%;
  left:-12%;
  top:-9%;
  border-radius:55% 0 0 55%;
  background:rgba(224,216,203,.46);
}
.group-room-photo img{
  display:block;
  width:100%;
  height:auto;
  box-shadow:0 12px 28px rgba(47,49,45,.045);
}

/* Practice */
.practice-page{
  max-width:1180px;
  margin:0 auto;
  padding:2.2rem clamp(1.1rem,6vw,6rem) 4.4rem;
}
.practice-own{
  position:relative;
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(460px,1.28fr);
  gap:clamp(2.7rem,5vw,5rem);
  align-items:center;
  padding:.7rem 0 3.7rem;
  isolation:isolate;
}
.practice-own::before{
  content:"";
  position:absolute;
  z-index:0;
  right:-7vw;
  top:-.5rem;
  width:66%;
  height:calc(100% - 1.2rem);
  border-radius:52% 0 0 52%;
  background:rgba(224,216,203,.43);
}
.practice-own-copy{
  position:relative;
  z-index:2;
  max-width:500px;
}
.practice-own-copy p:last-child{margin-bottom:0}
.practice-own-photo{
  position:relative;
  z-index:2;
  margin:0;
  transform:translateX(.5rem);
}
.practice-own-photo img{
  display:block;
  width:100%;
  height:auto;
  box-shadow:0 14px 32px rgba(47,49,45,.045);
}

/* A quiet visual pause for waiting-room details. */
.practice-atmosphere{
  position:relative;
  max-width:900px;
  margin:0 auto 4.6rem;
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(155px,.5fr);
  gap:clamp(2rem,5vw,4rem);
  align-items:end;
  padding:1.2rem 0 2rem;
}
.practice-atmosphere::before{
  content:"";
  position:absolute;
  z-index:0;
  left:16%;
  right:-5%;
  top:38%;
  height:42%;
  background:linear-gradient(
    90deg,
    rgba(243,230,223,0),
    rgba(243,230,223,.38) 24%,
    rgba(243,230,223,.52)
  );
}
.practice-atmosphere figure{
  position:relative;
  z-index:1;
  margin:0;
}
.practice-atmosphere img{
  display:block;
  width:100%;
  height:auto;
}
.practice-waiting-detail{
  width:84%;
  justify-self:end;
  transform:translateY(1.5rem);
}

/* Rental room: text and photos behave as one editorial composition. */
.practice-rental{
  border-top:1px solid var(--line);
  padding:3.2rem 0 .3rem;
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(480px,1.28fr);
  gap:clamp(3rem,6vw,5.5rem);
  align-items:center;
}
.practice-rental-copy{max-width:510px}
.practice-rental-visual{
  position:relative;
  padding:0 3.9rem 4.4rem 0;
}
.practice-rental-main,
.practice-rental-detail{margin:0}
.practice-rental-main img{
  display:block;
  width:100%;
  height:auto;
}
.practice-rental-detail{
  position:absolute;
  right:0;
  bottom:0;
  width:29%;
  min-width:120px;
  max-width:170px;
}
.practice-rental-detail::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-18px -16px 20px 18px;
  border-radius:55% 0 0 55%;
  background:rgba(224,216,203,.64);
}
.practice-rental-detail img{
  display:block;
  width:100%;
  height:auto;
  box-shadow:0 12px 28px rgba(47,49,45,.055);
}

/* No visible image captions are used anywhere in the site. */
figcaption{display:none!important}

@media(max-width:980px){
  .offers-hero-layout,
  .group-intro-media,
  .practice-own,
  .practice-rental{
    grid-template-columns:1fr;
  }

  .offers-hero-detail{
    width:150px;
    justify-self:start;
    margin:.7rem 0 -2.5rem;
  }

  .group-room-photo{
    width:min(100%,620px);
  }

  .group-room-photo::before{
    width:106%;
    left:-3%;
  }

  .practice-page{padding-top:1.6rem}
  .practice-own{padding-bottom:3rem}
  .practice-own::before{display:none}
  .practice-own-copy{max-width:760px}
  .practice-own-photo{
    width:min(100%,760px);
    transform:none;
  }

  .practice-atmosphere{
    margin-bottom:3.7rem;
  }

  .practice-rental-copy{max-width:760px}
  .practice-rental-visual{
    width:min(100%,760px);
  }
}

@media(max-width:680px){
  .offers-page-hero{padding-bottom:1rem}
  .offers-hero-detail{
    width:128px;
    margin:.5rem 0 -2.2rem;
  }
  .offers-hero-detail::before{
    width:150px;
    height:205px;
    right:-28px;
  }
  .offers-overview{padding-top:2.8rem}

  .group-room-photo::before{display:none}

  .practice-page{
    padding-left:1.1rem;
    padding-right:1.1rem;
  }
  .practice-own{
    gap:1.5rem;
    padding-bottom:2.6rem;
  }

  .practice-atmosphere{
    grid-template-columns:minmax(0,1fr) 118px;
    gap:1rem;
    margin-bottom:3.4rem;
    padding-bottom:1.2rem;
  }
  .practice-waiting-detail{
    width:100%;
    transform:translateY(.8rem);
  }

  .practice-rental{
    gap:1.6rem;
    padding-top:2.5rem;
  }
  .practice-rental-visual{
    padding:0 2.35rem 3.25rem 0;
  }
  .practice-rental-detail{
    width:31%;
    min-width:96px;
  }
}


/* ==========================================================
   v27 refinements
   ========================================================== */

/* Coaching hero with calendar detail */
.coaching-page-hero{
  position:relative;
  overflow:visible;
  padding-bottom:1.2rem;
}
.coaching-hero-layout{
  position:relative;
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 170px;
  gap:clamp(2rem,5vw,4.5rem);
  align-items:center;
}
.coaching-page-hero .inner{max-width:790px}
.coaching-hero-detail{
  position:relative;
  z-index:2;
  width:156px;
  margin:0 0 -2.8rem;
  justify-self:end;
}
.coaching-hero-detail::before{
  content:"";
  position:absolute;
  inset:-20px -28px 18px 18px;
  border-radius:55% 0 0 55%;
  background:rgba(224,216,203,.5);
  z-index:-1;
}
.coaching-hero-detail img{
  display:block;
  width:100%;
  height:auto;
  box-shadow:0 12px 28px rgba(47,49,45,.05);
}

/* Angebote now uses the waiting-room detail photo */
.offers-hero-detail{
  width:178px;
  margin:0 0 -3rem;
}
.offers-hero-detail::before{
  width:198px;
  height:248px;
  right:-34px;
  top:-24px;
}

@media(max-width:980px){
  .coaching-hero-layout{grid-template-columns:1fr}
  .coaching-hero-detail{
    width:146px;
    justify-self:start;
    margin:.6rem 0 -2.1rem;
  }
}

@media(max-width:680px){
  .coaching-page-hero{padding-bottom:.9rem}
  .coaching-hero-detail{
    width:126px;
    margin:.45rem 0 -1.9rem;
  }
  .coaching-hero-detail::before{inset:-16px -22px 12px 12px}

  .offers-hero-detail{
    width:132px;
    margin:.5rem 0 -2.15rem;
  }
  .offers-hero-detail::before{
    width:152px;
    height:198px;
    right:-25px;
    top:-18px;
  }
}


/* ==========================================================
   v39 – Psychotherapie Einzel: banner integrated like the homepage
   ========================================================== */
.therapy-image-banner{
  position:relative;
  min-height:320px;
  margin:0 0 3.4rem;
  padding:clamp(1.2rem,2vw,1.6rem) 0;
  display:flex;
  align-items:center;
  overflow:hidden;
  isolation:isolate;
  background:#e8ddd1;
}

.therapy-image-banner::before{
  content:"";
  position:absolute;
  inset:-8%;
  z-index:-2;
  background:url('images/psychotherapie-einzel-banner-crop.jpg') center center/cover no-repeat;
  transform:scale(1.08);
  filter:saturate(.98) contrast(1.01) brightness(1.03);
  opacity:.6;
}

.therapy-image-banner::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,
    rgba(250,245,238,.92) 0%,
    rgba(250,245,238,.88) 29%,
    rgba(250,245,238,.78) 50%,
    rgba(250,245,238,.58) 69%,
    rgba(250,245,238,.40) 100%
  );
}

.therapy-image-banner-copy{
  position:relative;
  z-index:2;
  width:min(620px,70%);
  padding:clamp(1.25rem,2.4vw,1.85rem);
  background:rgba(252,249,244,.32);
  backdrop-filter:blur(1.4px);
  border:1px solid rgba(255,255,255,.2);
}

.therapy-image-banner-copy .intro-copy{
  margin:0;
}

.therapy-image-banner-bg{
  display:none;
}

@media(max-width:760px){
  .therapy-image-banner{
    min-height:260px;
    margin-bottom:2.8rem;
    padding:.8rem 0;
  }

  .therapy-image-banner::before{
    inset:-10%;
    background-position:center center;
    opacity:.55;
  }

  .therapy-image-banner::after{
    background:linear-gradient(180deg,
      rgba(250,245,238,.90) 0%,
      rgba(250,245,238,.82) 44%,
      rgba(250,245,238,.64) 100%
    );
  }

  .therapy-image-banner-copy{
    width:100%;
    padding:1.25rem 1rem 1.4rem 0;
    background:rgba(252,249,244,.22);
    backdrop-filter:blur(1px);
    border:0;
  }
}

/* ==========================================================
   v32 – final start-page portrait
   ========================================================== */
.home-intro.home-intro-portrait{
  max-width:1010px;
  grid-template-columns:230px minmax(0,1fr);
  gap:clamp(1.7rem,3.5vw,2.8rem);
}

.home-start-portrait{
  width:230px;
}

.home-start-portrait img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transform:none;
  transform-origin:center center;
}

@media(max-width:760px){
  .home-start-portrait{
    width:175px;
  }

  .home-start-portrait img{
    object-position:center center;
    transform:none;
  }
}


/* v34 – Über mich portrait is now an actually brighter image file. */
.about-integrated-photo img{
  filter:none;
}

/* v35 – show the newly prepared bright About photo without additional filtering. */
.about-integrated-photo img{
  filter:none !important;
}


/* ==========================================================
   v36 – About portrait: original image, lighter via CSS only
   ========================================================== */
.about-integrated-photo img{
  filter: brightness(1.26) contrast(.88) saturate(.96) !important;
}


/* ==========================================================
   v37 – make the private-practice status clearer on the homepage
   ========================================================== */
.private-practice-note{
  margin:1rem 0 0;
  padding-top:.8rem;
  border-top:1px solid rgba(72,80,65,.18);
  color:var(--muted);
  font-size:.78rem;
  line-height:1.55;
}

.private-practice-note a{
  color:var(--olive-deep);
  border-bottom:1px solid rgba(72,80,65,.22);
}

.private-practice-note a:hover{
  border-color:var(--olive-deep);
}


/* ==========================================================
   v38 – Kosten & Ablauf by offer
   ========================================================== */
.costs-tabs-page{
  padding-top:1.7rem;
}

.costs-tabs{
  max-width:980px;
  margin:0 auto 3.1rem;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-bottom:1px solid var(--line);
}

.costs-tab{
  appearance:none;
  border:0;
  border-bottom:2px solid transparent;
  background:transparent;
  color:var(--muted);
  padding:.9rem .8rem 1rem;
  font:inherit;
  font-size:.83rem;
  letter-spacing:.02em;
  cursor:pointer;
  transition:color .18s ease,border-color .18s ease,background .18s ease;
}

.costs-tab:hover{
  color:var(--olive-deep);
  background:rgba(224,216,203,.14);
}

.costs-tab.active{
  color:var(--olive-deep);
  border-bottom-color:var(--olive);
  background:rgba(224,216,203,.18);
}

.costs-panel{
  animation:costPanelIn .28s ease;
}

.costs-panel[hidden]{
  display:none !important;
}

@keyframes costPanelIn{
  from{opacity:.35;transform:translateY(4px)}
  to{opacity:1;transform:none}
}

.costs-panel .process-section{
  margin-top:0;
}

.costs-contact{
  max-width:760px;
  margin:4.2rem auto 0;
  padding-top:2.5rem;
  border-top:1px solid var(--line);
  text-align:center;
}

.costs-contact .actions{
  justify-content:center;
  margin-top:1.25rem;
}

@media(max-width:760px){
  .costs-tabs{
    grid-template-columns:1fr;
    border-bottom:0;
    gap:.35rem;
    margin-bottom:2.4rem;
  }

  .costs-tab{
    text-align:left;
    border:1px solid var(--line);
    border-left:3px solid transparent;
    padding:.75rem .9rem;
  }

  .costs-tab.active{
    border-color:var(--line);
    border-left-color:var(--olive);
  }

  .costs-contact{
    margin-top:3.3rem;
    text-align:left;
  }

  .costs-contact .actions{
    justify-content:flex-start;
  }
}


/* ==========================================================
   v40 – Psychotherapie Einzel: artwork more visible
   ========================================================== */
.therapy-image-banner::before{
  opacity:.78 !important;
}

.therapy-image-banner::after{
  background:linear-gradient(
    90deg,
    rgba(250,245,238,.82) 0%,
    rgba(250,245,238,.74) 29%,
    rgba(250,245,238,.60) 50%,
    rgba(250,245,238,.38) 69%,
    rgba(250,245,238,.20) 100%
  ) !important;
}

.therapy-image-banner-copy{
  background:rgba(252,249,244,.24) !important;
  backdrop-filter:blur(1px);
}

@media(max-width:760px){
  .therapy-image-banner::before{
    opacity:.72 !important;
  }

  .therapy-image-banner::after{
    background:linear-gradient(
      180deg,
      rgba(250,245,238,.78) 0%,
      rgba(250,245,238,.66) 44%,
      rgba(250,245,238,.48) 100%
    ) !important;
  }
}


/* ==========================================================
   Header logo – Variante A
   ========================================================== */
.brand-with-logo{
  min-width: 320px;
  display: flex;
  align-items: center;
}

.header-logo-link{
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.header-logo{
  display: block;
  width: 330px;
  height: 58px;
  object-fit: contain;
  object-position: left center;
}

@media (max-width: 900px){
  .brand-with-logo{
    min-width: 0;
  }

  .header-logo{
    width: 250px;
    height: 50px;
  }
}

@media (max-width: 680px){
  .header-logo{
    width: 205px;
    height: 44px;
  }
}


/* ==========================================================
   v45 – live contact form
   ========================================================== */
.hp-field{
  position:absolute!important;
  left:-10000px!important;
  top:auto!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}
.form-note.success{color:var(--olive-deep);font-weight:600}
.form-note.error{color:#8b5a47;font-weight:600}


/* ==========================================================
   DEMO v47 – banner refinement only
   IMPORTANT: no text/content or page structure changed.
   ========================================================== */

/* Shared banner configuration for homepage + Psychotherapie Einzel */
.hero-banner,
.therapy-image-banner{
  min-height:clamp(390px,50vh,455px);
  padding:clamp(1.35rem,2.7vw,2.25rem) clamp(1.1rem,5vw,4.5rem);
  align-items:center;
  overflow:hidden;
  isolation:isolate;
  background:#eee6dc;
}

/* Homepage canvas: brighter, quieter and crisper */
.hero-banner::before{
  inset:-5%;
  background-image:url('images/gemaelde-hero-v47.jpg');
  background-position:center 48%;
  background-size:cover;
  transform:scale(1.06);
  filter:saturate(.86) contrast(1.035) brightness(1.08);
}

/* Same soft wash on both banners */
.hero-banner::after,
.therapy-image-banner::after{
  background:linear-gradient(
    90deg,
    rgba(252,249,244,.76) 0%,
    rgba(252,249,244,.66) 34%,
    rgba(252,249,244,.50) 58%,
    rgba(252,249,244,.38) 100%
  ) !important;
}

/* Keep the existing homepage content unchanged; only make its panel calmer. */
.hero-panel{
  max-width:610px;
  padding:clamp(1.05rem,2vw,1.55rem);
  background:rgba(252,249,244,.54);
  backdrop-filter:blur(1px);
}

/* Smaller portrait, as requested. */
.home-intro.home-intro-portrait{
  grid-template-columns:200px minmax(0,1fr);
  max-width:1010px;
}
.home-start-portrait{
  width:200px;
}

/* Psychotherapie Einzel: turn the former inset box into a true full-width banner. */
.therapy-image-banner{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  margin-top:0;
  margin-bottom:3.1rem;
  display:flex;
}

.therapy-image-banner::before{
  inset:-5%;
  background-image:url('images/psychotherapie-einzel-banner-v47.jpg');
  background-position:center center;
  background-size:cover;
  transform:scale(1.06);
  filter:saturate(.86) contrast(1.035) brightness(1.08);
  opacity:1 !important;
}

.therapy-image-banner-copy{
  position:relative;
  z-index:2;
  width:min(610px,100%);
  padding:clamp(1.05rem,2vw,1.55rem);
  background:rgba(252,249,244,.54) !important;
  backdrop-filter:blur(1px);
  border:1px solid rgba(255,255,255,.24);
}

/* Mobile: preserve the same concept without making the banners too tall. */
@media(max-width:760px){
  .hero-banner,
  .therapy-image-banner{
    min-height:auto;
    padding:1.15rem 1.1rem;
  }

  .hero-banner::before,
  .therapy-image-banner::before{
    inset:-4%;
    transform:scale(1.04);
  }

  .hero-banner::after,
  .therapy-image-banner::after{
    background:linear-gradient(
      180deg,
      rgba(252,249,244,.78) 0%,
      rgba(252,249,244,.66) 48%,
      rgba(252,249,244,.50) 100%
    ) !important;
  }

  .home-intro.home-intro-portrait{
    grid-template-columns:1fr;
  }

  .home-start-portrait{
    width:160px;
  }

  .therapy-image-banner{
    margin-bottom:2.6rem;
  }

  .therapy-image-banner-copy{
    width:100%;
    padding:1.05rem;
  }
}

/* v48 – transparent header logo background */
.header-logo,.header-logo-link{background:transparent !important;box-shadow:none !important;border:none !important;}
