/* main.css - Praxis Lassert - Stand 2026-09-07, Runde 30 - komprimierte Fassung (Kommentare entfernt) */
:root {
--terracotta: #D3784C;
--sage: #728D6C;
--sage-soft: #728D6C;
--ochre: #BC9A4B;
--ink: #2E2A25;
--ocker-blob: #DFBE71;
--ocker-hell: #EEDCAE;
--salbei-hell: #CBDAB8;
--terracotta-soft: #E9B48D;
--card-kinder: #E7EFDD;
--card-erwachsene: #F7E6D6;
--page-bg: #FDFBF6;
--cream: #F6F1E9;
--sand: #F6ECD9;
--muted: #766F57;
--font-serif: 'Cormorant Garamond', Georgia, serif;
--font-sans: 'Karla', system-ui, -apple-system, sans-serif;
--container: 75rem;
--container-pad: 7.5rem;
--measure: 40rem;
}
body {
font-family: var(--font-sans);
color: var(--ink);
background: var(--page-bg);
line-height: 1.65;
font-size: 0.9375rem;
margin: 0;
}
h1, h2, h3, h4 {
font-family: var(--font-serif);
color: var(--ink);
line-height: 1.15;
font-weight: 600;
}
.script,
.is-script {
font-family: var(--font-serif);
font-style: italic;
font-weight: 400;
}
.container {
max-width: var(--container);
margin-inline: auto;
padding-inline: var(--container-pad);
}
@media (max-width: 900px) {
:root { --container-pad: 1.5rem; }
}
.measure { max-width: var(--measure); }
.btn,
.pill {
display: inline-block;
font-family: var(--font-sans);
border-radius: 62.4375rem;
padding: 0.7em 1.4em;
text-decoration: none;
}
.btn--terracotta,
.pill--terracotta { background: var(--terracotta); color: var(--cream); }
.pill--sage { background: var(--sage); color: var(--cream); }
.cta-band { background: var(--ochre); color: var(--ink); }
.gradient-band {
background: linear-gradient(135deg, var(--sage) 0%, var(--ochre) 50%, var(--terracotta) 100%);
color: var(--cream);
}
* { box-sizing: border-box; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
.site-main { overflow-x: clip; }
.eyebrow {
font-family: var(--font-sans);
font-weight: 700;
letter-spacing: .14em;
text-transform: uppercase;
font-size: .72rem;
color: var(--terracotta);
margin: 0 0 .6rem;
}
.btn { cursor: pointer; border: 0; font-family: var(--font-sans); font-weight: 700; text-transform: uppercase; font-size: .8rem; letter-spacing: .06em; text-align: center; transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease, filter .2s ease; }
.btn--terracotta { background: var(--terracotta); color: var(--cream); }
.btn--sage       { background: var(--sage); color: var(--cream); }
.btn:hover,
.hero__cta:hover { box-shadow: inset 0 0 0 62.4375rem rgba(0,0,0,.1); }
.hero__cta,
.hero__cta:link,
.hero__cta:visited,
.hero__cta:hover,
.hero__cta:focus,
.hero__cta:active { color: #786F5F; }
.btn--terracotta:hover, .btn--terracotta:focus,
.btn--sage:hover, .btn--sage:focus { color: var(--cream); }
.btn--outline-ink:hover, .btn--outline-ink:focus,
.btn--outline-cream:hover, .btn--outline-cream:focus,
.btn--outline:hover, .btn--outline:focus { color: var(--ink); }
.site-header .btn--outline:hover, .site-header .btn--outline:focus { color: #786F5F; }
.forwhom__card:hover, .forwhom__card:focus { color: var(--ink); }
.btn:focus-visible,
a:focus-visible,
.forwhom__card:focus-visible {
outline: 0.125rem solid var(--terracotta-soft); outline-offset: 0.1875rem;
}
.btn:focus:not(:focus-visible),
a:focus:not(:focus-visible),
.forwhom__card:focus:not(:focus-visible) { outline: none; }
.btn, a, .forwhom__card { -webkit-tap-highlight-color: transparent; }
.btn--outline {
background: transparent; color: var(--ink);
border: 0.0625rem solid var(--terracotta);
padding: .55em 1.2em;
}
.site-header .btn--outline { border-radius: 0.625rem 0.625rem 0 0; margin-left: 2rem; text-transform: none; color: #786F5F;  }
.btn--outline-ink {
background: transparent; color: var(--ink);
border: 0.0625rem solid rgba(46,42,37,.35);
border-radius: 0.625rem 0.625rem 0 0;
width: 100%;
}
.home .btn--outline-ink { background: #FAF4EC; }
.site-header {
position: sticky;
top: 0;
z-index: 100;
background: var(--page-bg);
border-bottom: 0.0625rem solid rgba(194,103,63,.35);
box-shadow: 0 0.25rem 1.125rem rgba(46,42,37,.05);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) {
.admin-bar .site-header { top: 46px; }
}
.site-header__inner {
display: flex; align-items: center; justify-content: space-between;
gap: 2rem;
max-width: none; margin-inline: 0;
padding-left: 4rem;
padding-right: max(3.875rem, calc(25vw - 15rem));
padding-top: 1.1rem; padding-bottom: 1.1rem;
}
.site-header__brand {
font-family: var(--font-serif);
font-size: 1.35rem; text-decoration: none; color: var(--ink);
white-space: nowrap;
margin-right: 2rem;
transition: color .2s ease;
}
.site-header__brand:hover,
.site-header__brand:focus { color: var(--terracotta-soft); }
.site-nav { display: flex; align-items: center; gap: 3.5rem; }
.site-nav a { text-decoration: none; font-size: .95rem; white-space: nowrap; }
.site-nav a:not(.btn) { color: #786F5F; }
.site-nav a:not(.btn):hover { color: var(--terracotta); }
.hero--blobs { background: var(--page-bg); position: relative; overflow: hidden; }
.hero__inner {
position: relative; padding: 3rem 0 3.5rem; min-height: calc(100vh - 3.5rem);
display: flex; align-items: center;
}
.hero__content {
position: relative; z-index: 2; text-align: center;
max-width: 53.75rem; margin: 0 auto;
}
.hero__content > *:not(.hero__blobs) { position: relative; z-index: 2; }
.hero__headline {
font-size: clamp(2.1rem, 3.2vw, 2.9rem); font-weight: 500;
line-height: 1.14; margin: 0 0 1.4rem;
overflow-wrap: normal; word-break: normal; hyphens: none;
}
.hero__methods {
font-size: .9rem; letter-spacing: .02em; text-transform: none; font-weight: 700;
color: #786F5F; margin: 0 0 2rem;
}
.hero__intro { max-width: 35rem; margin: 0 auto 2.4rem; color: rgba(46,42,37,.82); font-size: 1.2rem; }
.hero__badge {
display: inline-block; background: #FAF4EC;
border: 0.0625rem solid rgba(194,103,63,.55); border-radius: 0.625rem 0.625rem 0 0;
padding: .85em 1.8em; font-size: .925rem; letter-spacing: .06em;
text-transform: uppercase; color: #786F5F; font-weight: 600;
}
.hero__cta {
display: inline-block; text-decoration: none; cursor: pointer;
background: #FAF4EC; color: #786F5F;
border: 0.0625rem solid rgba(194,103,63,.55); border-radius: 0.625rem 0.625rem 0 0;
padding: .4em 3.4em; width: 24.875rem; max-width: 100%; font-family: var(--font-sans);
font-size: .95rem; font-weight: 600; letter-spacing: .02em;
transition: color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.blob { position: absolute; display: block; }
.blob--ochre {
background: var(--ochre);
width: 23.75rem; height: 14.6875rem;
border-radius: 62% 38% 46% 54% / 62% 44% 56% 38%;
}
.blob--sage {
background: var(--sage);
width: 26.875rem; height: 18.75rem;
border-radius: 42% 58% 52% 48% / 60% 42% 58% 40%;
}
.blob--cream {
background: var(--sand);
width: 16.25rem; height: 12.5rem;
border-radius: 54% 46% 58% 42% / 50% 52% 48% 50%;
}
.blob--terracotta {
background: var(--terracotta-soft);
width: 18.75rem; height: 14.375rem;
border-radius: 50% 50% 42% 58% / 55% 45% 55% 45%;
opacity: .9;
}
.hero__blobs { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.blob-img { position: absolute; height: auto; opacity: .9; }
.hero__blobs .blob-img--ochre { width: 22.5rem; top: -7.5rem; left: -10.625rem; }
.hero__blobs .blob-img--sage  { width: 26.25rem; bottom: -5rem; right: -6.25rem; transform: scale(1.18); }
.dots { position: absolute; z-index: 3; width: 0.25rem; height: 0.25rem; }
.dots::before {
content: ""; position: absolute; top: 0; left: 0;
width: 0.1875rem; height: 0.1875rem; border-radius: 50%;
background: var(--ink); opacity: .8;
box-shadow:
0    0   0 0 var(--ink),
0.9375rem  0.4375rem 0 0 var(--ink),
1.875rem -0.1875rem 0 0 var(--ink),
0.5625rem 1.3125rem 0 0 var(--ink),
1.6875rem 1.0625rem 0 0 var(--ink),
2.625rem  0.5625rem 0 0 var(--ink),
1.1875rem 2rem 0 0 var(--ink);
}
.praxis-gallery { position: relative; background: var(--page-bg); padding: 2rem 0; }
.praxis-gallery__stage { display: flex; align-items: center; justify-content: center; gap: 1rem; position: relative; }
.praxis-gallery__viewport { max-width: calc(50vw + 30rem); min-width: 0; overflow: hidden; border-radius: 0.625rem 0.625rem 0 0; }
.praxis-gallery__track { display: flex; }
.praxis-gallery__slide { flex: 0 0 100%; }
.praxis-gallery__slide img { width: 100%; height: clamp(21.25rem, 42vw, 35rem); object-fit: cover; display: block; border-radius: 0.625rem 0.625rem 0 0; }
.praxis-gallery__placeholder { min-height: 26.25rem; border-radius: 0.625rem 0.625rem 0 0; }
.praxis-gallery__arrow { flex: 0 0 auto; }
.praxis-gallery__controls {
display: flex; align-items: center; justify-content: center;
gap: 1.25rem; margin-top: 1.25rem;
}
.praxis-gallery__arrow {
width: 2.875rem; height: 2.875rem; border-radius: 50%; border: 0; cursor: pointer;
background: var(--terracotta); color: var(--cream);
display: flex; align-items: center; justify-content: center;
transition: background .2s ease;
}
.praxis-gallery__arrow svg path { stroke-width: 1.4; }
.praxis-gallery__arrow:hover { background: var(--terracotta-soft); }
.praxis-gallery__arrow:focus-visible { outline: 0.125rem solid var(--terracotta); outline-offset: 0.125rem; }
.praxis-gallery__arrow svg { width: 1.375rem; height: 1.375rem; }
.praxis-gallery__dots { display: flex; gap: 0.5rem; align-items: center; }
.praxis-gallery__dot {
width: 0.5625rem; height: 0.5625rem; border-radius: 50%; border: 0; padding: 0; cursor: pointer;
background: rgba(46,42,37,.22); transition: background .2s ease, transform .2s ease;
}
.praxis-gallery__dot:hover { background: rgba(46,42,37,.4); }
.praxis-gallery__dot.is-active { background: var(--terracotta); transform: scale(1.2); }
.welcome { background: var(--page-bg); padding: 4.5rem 0; }
.welcome__card {
position: relative; background: #FFFFFF; border: 0.0625rem solid rgba(120,111,95,.45); border-radius: 2.125rem 2.125rem 0 0;
padding: 3.5rem 3rem; box-shadow: 0 1.25rem 3.125rem rgba(46,42,37,.06);
overflow: visible;
}
.welcome__body { position: relative; z-index: 2; }
.welcome__headline { font-size: 2.4rem; margin: 0 0 1.4rem; }
.welcome__text p { margin: 0 0 1rem; color: rgba(46,42,37,.85); }
.welcome__text { margin-bottom: 1.8rem; }
.welcome__blobs { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.welcome-blob { position: absolute; height: auto; }
.welcome-blob--cream { width: 17.5rem; top: -2.875rem;    left: 55%; }
.welcome-blob--ochre { width: 17.0625rem; top: 1.5rem;     right: -6.25rem; }
.welcome-blob--pink  { width: 24.0625rem; bottom: -2.125rem; right: 3%; }
.welcome .btn--sage { border-radius: 0.625rem 0.625rem 0 0; padding: .7em 1.4em; width: 24.875rem; max-width: 100%; }
.leistungen { background: var(--sand); padding: 6rem 0 6.5rem; }
.leistungen__headline { font-size: 2.2rem; font-weight: 500; margin: 0 0 .6rem; }
.leistungen__intro { color: rgba(46,42,37,.8); margin: 0 0 2rem; }
.pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
.pill {
flex: 0 1 calc((100% - 2rem) / 3);
min-height: 4.5rem;
border-radius: 0.625rem 0.625rem 0 0; padding: 1rem 1.1rem; text-align: center;
font-size: .92rem; line-height: 1.25; display: flex; align-items: center; justify-content: center;
}
.pill--terracotta { background: var(--terracotta); color: var(--cream); }
.pills .pill { transition: transform .22s ease, box-shadow .22s ease; }
.pills .pill:hover { transform: translateY(-0.1875rem); box-shadow: 0 0.5rem 1.125rem rgba(46,42,37,.14); }
.pill:nth-child(7):nth-last-child(2),
.pill:nth-child(7):nth-last-child(2) ~ .pill { flex-basis: calc((100% - 1rem) / 2); }
.groupcards {
position: relative;
background: var(--sand);
padding: 0 0 15rem;
}
.groupcards::after {
content: ""; position: absolute; left: 0; right: 0; bottom: 0;
height: calc(5.25rem + 15rem); background: var(--page-bg); z-index: 0;
}
.groupcards__grid {
position: relative; z-index: 1;
display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: stretch;
}
.groupcard {
border-radius: 2.125rem 2.125rem 0 0; overflow: hidden;
display: flex; flex-direction: column;
}
.groupcard__body { padding: 2.5rem 2.2rem 1.4rem; flex: 1; }
.groupcard__foot { height: 5.25rem; display: flex; align-items: center; padding: 0 2.2rem; }
.groupcard--sage {
background: linear-gradient(to top, transparent 0, var(--card-kinder) 5.9375rem, var(--card-kinder) 100%);
}
.groupcard--sage .groupcard__foot       { background: transparent; }
.groupcard--terracotta {
background: linear-gradient(to top, transparent 0, var(--card-erwachsene) 5.9375rem, var(--card-erwachsene) 100%);
}
.groupcard--terracotta .groupcard__foot { background: transparent; }
.groupcard h3 { font-size: 1.4rem; margin: 1.8rem 0 1rem; }
.groupcard--sage h3 { white-space: nowrap; }
.groupcard__text p { margin: 0 0 1rem; font-size: .95rem; color: rgba(46,42,37,.82); }
.groupcard__tag {
display: inline-block; border-radius: 0.375rem 0.375rem 0 0; padding: .4em .9em;
font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--page-bg);
}
.groupcard__tag--sage       { background: var(--sage); }
.groupcard__tag--terracotta { background: var(--terracotta); }
.groupcard__btn { width: 100%; border-radius: 0.625rem 0.625rem 0 0; }
.feature { position: relative; padding: 2rem 0; }
.feature--text-left  { background: var(--sand); margin-top: 0; }
.feature--text-right { background: var(--sand); margin-top: 0; }
.feature-gap { height: 15rem; background: var(--page-bg); }
.feature__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.feature__grid--rev { direction: rtl; }
.feature__grid--rev > * { direction: ltr; }
.feature__text h2 { font-size: 1.9rem; margin: 0 0 1rem; }
.feature__text p { color: rgba(46,42,37,.82); margin: 0 0 1.4rem; }
.feature__media { position: relative; height: 16.25rem; }
.feature__img {
position: absolute; top: 50%; transform: translateY(-50%);
left: 0; width: 22.5rem; max-width: 100%; height: 27.5rem; object-fit: cover;
border-radius: 2.125rem 2.125rem 0 0;
}
.feature--text-left  .feature__img { right: 0; left: auto; }
.feature--text-right .feature__img { left: 0; right: auto; }
.contact { padding: 4rem 0; }
.contact--bg-sand       { background: var(--sand); }
.contact--bg-sage       { background: var(--sage); }
.contact--bg-terracotta { background: var(--terracotta); }
.contact--large .contact__inner {
display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem 3rem;
grid-template-areas: "intro card" "form card";
align-items: start;
}
.contact__intro { grid-area: intro; }
.contact__form  { grid-area: form; }
.contact__aside { grid-area: card; align-self: center; display: flex; flex-direction: column; gap: 1.2rem; }
.contact__intro .eyebrow { color: var(--ink); opacity: .7; }
.contact__intro h2 { font-size: 2rem; margin: 0 0 1rem; }
.contact__intro p { color: rgba(46,42,37,.8); }
.contact--compact .contact__inner {
display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem 3rem; align-items: start;
grid-template-areas: "intro form";
}
.contact--compact .contact__intro,
.contact--compact .contact__intro p { color: rgba(255,255,255,.92); }
.contact--compact.contact--bg-sage       { background: #798C67; }
.contact--compact.contact--bg-terracotta { background: #C97B58; }
.forwhom + .contact--compact .contact__inner { max-width: 82.5rem; }
.contact--compact .contact__intro .eyebrow { opacity: 1; font-weight: 200; font-size: 1.44rem; color: #2E2A25; }
.contact--compact .contact__intro h2 { font-family: var(--font-serif); font-style: italic; font-weight: 400; font-size: 1.9rem; color: #FAF4EC; }
.contact--compact .contact__intro p { color: #FAF4EC; text-align: left; }
.contact--compact .form-grid input,
.contact--compact .form-grid textarea {
background: #FAF4EC; border-radius: 0.625rem 0.625rem 0 0; border: 0.0625rem solid #C97B58;
}
.contact--compact.contact--bg-terracotta .form-grid input,
.contact--compact.contact--bg-terracotta .form-grid textarea { border-color: #798C67; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-grid label { display: flex; flex-direction: column; font-size: .82rem; gap: .35rem; color: rgba(46,42,37,.85); }
.form-grid__full { grid-column: 1 / -1; }
.form-grid input, .form-grid textarea {
border: 0; border-radius: 0.25rem; padding: .7rem .8rem; background: rgba(255,255,255,.65); font-family: inherit;
}
.contact--compact .form-grid label { color: rgba(255,255,255,.9); }
.contact__card-inner {
background: rgba(255,255,255,.55); border-radius: 0.5rem; padding: 2rem 2.2rem; line-height: 1.9;
}
.contact__card-name { font-family: var(--font-serif); font-size: 1.15rem; margin: 0 0 .8rem; }
.contact__card-person { margin: 0 0 1rem; }
.contact__card-address { font-size: .95rem; color: rgba(46,42,37,.85); }
.site-footer--bg-terracotta { background: var(--terracotta); color: var(--cream); }
.site-footer--bg-sage       { background: var(--sage); color: var(--cream); }
.site-footer a { text-decoration: none; }
.site-footer a:link,
.site-footer a:visited,
.site-footer a:hover,
.site-footer a:focus { color: inherit; }
.site-footer a:hover { text-decoration: underline; }
.site-footer--large { padding: 3.5rem 0 1.5rem; }
.site-footer__cols {
display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 3rem;
max-width: none; margin-inline: 0;
padding-inline: 4rem max(3.875rem, calc(25vw - 15rem));
}
.site-footer__group { display: flex; gap: 3.5rem; }
.site-footer__brand { font-weight: 700; margin: 0 0 .3rem; }
.site-footer__brand-sub { margin: 0 0 1rem; opacity: .9; }
.site-footer__head { font-weight: 700; text-transform: none; letter-spacing: normal; opacity: 1; margin: 0 0 1rem; }
.site-footer__col ul { list-style: none; margin: 0; padding: 0; }
.site-footer__col li { margin: 0 0 .5rem; opacity: .95; }
.site-footer__col p { margin: 0 0 .4rem; opacity: .95; }
.site-footer__base {
max-width: none; margin-inline: 0;
padding-inline: 4rem max(3.875rem, calc(25vw - 15rem));
margin-top: 2.5rem; padding-top: 1.2rem; border-top: 0.0625rem solid rgba(255,255,255,.25);
font-size: .8rem; opacity: .85;
}
.site-footer--slim { padding: 1.4rem 0; }
.site-footer__slim {
display: flex; justify-content: space-between; align-items: center; font-size: .82rem;
max-width: none; margin-inline: 0;
padding-inline: 4rem max(3.875rem, calc(25vw - 15rem));
}
.site-footer__slim-brand { font-weight: 700; }
.site-footer__slim-links a { margin-left: .2rem; }
.img-placeholder {
display: flex; align-items: center; justify-content: center;
background: repeating-linear-gradient(45deg, var(--sand), var(--sand) 0.75rem, var(--ocker-hell) 0.75rem, var(--ocker-hell) 1.5rem);
color: rgba(46,42,37,.55); font-size: .85rem; letter-spacing: .05em; min-height: 16.25rem; border-radius: 0.75rem;
}
.praxis-image .img-placeholder { min-height: 26.25rem; border-radius: 0; }
@media (max-width: 900px) {
.site-header__inner { flex-wrap: wrap; padding-inline: 1.5rem; }
.site-header__brand { margin-right: 0; }
.site-header .btn--outline { margin-left: 0; }
.site-nav { display: flex; flex-wrap: wrap; align-items: center; margin-left: 1rem; gap: 1.25rem 1.75rem; justify-content: flex-end; }
.hero__inner { min-height: 28.75rem; }
.hero__blobs .blob-img--ochre { width: 12.5rem; top: -4.375rem; left: -4.375rem; }
.hero__blobs .blob-img--sage  { width: 14.375rem; bottom: -4.375rem; right: -5rem; }
.pills .pill { flex-basis: calc((100% - 1rem) / 2); }
.groupcards__grid,
.feature__grid,
.contact--large .contact__inner,
.contact--compact .contact__inner,
.site-footer__cols { grid-template-columns: 1fr; gap: 2rem; }
.site-footer__cols, .site-footer__base, .site-footer__slim { padding-inline: 1.5rem; }
.site-footer__group { flex-direction: column; gap: 2rem; }
.contact--large .contact__inner { grid-template-areas: "intro" "form" "card"; }
.contact--compact .contact__inner { grid-template-areas: "intro" "form"; }
.feature__grid--rev { direction: ltr; }
.feature__media { height: auto; }
.feature__img { position: static; transform: none; width: 100%; max-width: none; height: 20rem; }
.welcome__card { padding: 2.2rem 1.4rem; }
.welcome-blob--cream { width: 10.75rem; top: -1.75rem; left: 58%; }
.welcome-blob--ochre { width: 10.75rem; top: 0.75rem; right: -1.5rem; }
.welcome-blob--pink  { width: 15rem; bottom: -1.375rem; right: 2%; }
.site-footer__slim { flex-direction: column; gap: .6rem; }
}
@media (max-width: 560px) {
.form-grid { grid-template-columns: 1fr; }
.hero__headline { font-size: 1.9rem; }
.praxis-gallery { padding: 1.5rem 0.75rem; }
.praxis-gallery__stage { gap: 0; }
.praxis-gallery__arrow--prev { position: absolute; top: 50%; left: 0.5rem;  transform: translateY(-50%); z-index: 3; }
.praxis-gallery__arrow--next { position: absolute; top: 50%; right: 0.5rem; transform: translateY(-50%); z-index: 3; }
.praxis-gallery__arrow { width: 2.625rem; height: 2.625rem; }
.praxis-gallery__arrow svg { width: 1.25rem; height: 1.25rem; }
}
.hero-split { background: var(--cream); padding: 1.5rem 3rem 0; }
.hero-split__grid {
display: grid; grid-template-columns: 1fr 1fr;
border-radius: 0.625rem 0.625rem 0 0; overflow: hidden; align-items: stretch;
}
.hero-split__panel {
background: var(--terracotta); color: var(--cream);
padding: 3.5rem 3.2rem; min-height: 27.5rem;
display: flex; flex-direction: column; justify-content: center;
}
.hero-split__headline {
font-size: clamp(1.75rem, 2.5vw, 2.3rem); font-weight: 500; color: var(--cream);
line-height: 1.2; margin: 0 0 1.2rem;
}
.hero-split__headline .script { color: var(--cream); }
.hero-split__intro { font-size: .9rem; color: rgba(246,241,233,.9); margin: 0 0 1.9rem; max-width: none; }
.hero-split__media { position: relative; min-height: 27.5rem; }
.hero-split__img,
.hero-split__media .img-placeholder {
position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0;
}
.hero-split--flush { padding: 0 0 2.5rem; }
.hero-split--flush .hero-split__grid { border-radius: 0; }
.btn--outline-cream {
background: #FAF4EC; color: var(--ink);
border: 0.0625rem solid var(--terracotta); border-radius: 0.625rem 0.625rem 0 0;
align-self: center; padding: .8em 5rem;
}
.methodik { background: var(--cream); padding: 4rem 0 3.5rem; }
.methodik .eyebrow { color: #786F5F; opacity: 1; font-weight: 200; font-size: 1.44rem; }
.methodik__headline { font-size: 2.2rem; font-family: var(--font-serif); font-style: normal; font-weight: 500; color: var(--ink); margin: .3rem 0 1.4rem; }
.methodik__text { max-width: 58.75rem; color: #786F5F; margin: 0 0 2.6rem; }
.method-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.method-card {
background: #FFFFFF; border: 0.0625rem solid rgba(46,42,37,.08);
border-radius: 2.125rem 2.125rem 0 0; padding: 1.8rem 1.6rem;
display: flex; flex-direction: column; justify-content: center;
}
.method-card h3 { font-size: 1.15rem; margin: 0 0 .5rem; color: #786F5F; font-weight: 700; }
.method-card p { font-size: .9rem; color: rgba(46,42,37,.7); margin: 0; font-weight: 400; }
.method-card:nth-child(3) h3 { text-align: center; }
.infocard-sec { background: var(--cream); padding: 3.5rem 0; }
.infocard {
display: grid; grid-template-columns: 1fr 1fr; align-items: stretch;
border: 0.0625rem solid rgba(120,111,95,.45); border-radius: 2.125rem 2.125rem 0 0; overflow: hidden;
}
.infocard__media { position: relative; min-height: 22.5rem; }
.infocard__img,
.infocard__media .img-placeholder {
position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
}
.infocard__panel {
background: #FFFFFF; padding: 2.6rem;
display: flex; flex-direction: column; justify-content: center;
}
.infocard__panel h3 { font-size: 1.6rem; margin: 0 0 1rem; font-family: var(--font-serif); font-weight: 400; color: #2E2A25; }
.infocard__text p { color: #786F5F; margin: 0 0 1rem; font-size: .95rem; text-align: left; }
.infocard--img-left  { grid-template-columns: 1fr 1.7fr; }
.infocard--img-right { grid-template-columns: 1.7fr 1fr; }
.hero-split--full + .methodik + .infocard-sec .infocard--img-left { grid-template-columns: 1.2fr 1fr; }
.infocard--img-left  .infocard__img   { border-radius: 2.125rem 0 0 0; }
.infocard--img-left  .infocard__panel { border-radius: 0 2.125rem 0 0; }
.infocard--img-right .infocard__media { order: 2; }
.infocard--img-right .infocard__panel { order: 1; border-radius: 2.125rem 0 0 0; }
.infocard--img-right .infocard__img   { border-radius: 0 2.125rem 0 0; }
.duo { background: var(--sand); padding: 3.5rem 0; }
.duo__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: stretch; }
.duo__col { display: flex; flex-direction: column; }
.duo__col h2 { font-family: var(--font-serif); font-style: italic; font-weight: 400; font-size: 1.9rem; color: var(--ink); margin: 0 0 1rem; }
.duo__text p { font-family: var(--font-sans); font-weight: 400; font-size: 1rem; color: rgba(46,42,37,.82); margin: 0 0 1.4rem; }
.duo__col + .duo__col { padding-left: 1.75rem; }
.duo__col .btn--outline-ink { border-radius: 0.625rem 0.625rem 0 0; margin-top: auto; background: #FAF4EC; }
@media (max-width: 900px) {
.hero-split { padding: 1rem 1.5rem 0; }
.hero-split--flush { padding: 0; }
.hero-split__grid { grid-template-columns: 1fr; }
.hero-split--full .hero-split__grid { min-height: 0; }
.hero-split--full .hero-split__panel { padding-top: 2.4rem; }
.hero-split--full + .infocard-sec { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.hero-split--full + .infocard-sec + .infocard-sec { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.hero-split--full + .methodik { padding-top: 4rem; padding-bottom: 3.5rem; }
.hero-split--full + .methodik .method-cards { margin-top: 0; }
.hero-split--full + .methodik + .infocard-sec { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.hero-split--full .btn--outline-cream { margin-top: 0; }
.hero-split__panel { padding: 2.4rem 1.6rem; min-height: 0; }
.hero-split__media { min-height: 18.75rem; }
.method-cards { grid-template-columns: 1fr; }
.infocard { grid-template-columns: 1fr; }
.hero-split--full + .methodik + .infocard-sec .infocard--img-left { grid-template-columns: 1fr; }
.infocard__media { min-height: 15rem; }
.infocard--img-right .infocard__media { order: 0; }
.infocard--img-right .infocard__panel { order: 1; }
.infocard--img-left  .infocard__img,
.infocard--img-right .infocard__img   { border-radius: 0.75rem 0.75rem 0 0; }
.infocard--img-left  .infocard__panel,
.infocard--img-right .infocard__panel { border-radius: 0; }
.duo__grid { grid-template-columns: 1fr; gap: 2rem; }
}
.hero-split--sage .hero-split__panel { background: #798C67; }
.hero-split--full .hero-split__grid { min-height: calc(83vh - 3.5rem); }
.hero-split--full.hero-split--flush { padding-bottom: 0; }
.hero-split--full + .infocard-sec,
.hero-split--full + .methodik { padding-top: 18vh; }
.hero-split--full + .infocard-sec { padding-bottom: 0; }
.hero-split--full + .infocard-sec + .infocard-sec { padding-top: 18vh; padding-bottom: 18vh; }
.hero-split--full + .methodik { padding-bottom: 0; }
.hero-split--full + .methodik .method-cards { margin-top: 9vh; }
.hero-split--full + .methodik + .infocard-sec { padding-top: 12vh; padding-bottom: 18vh; }
.hero-split--full .hero-split__panel { justify-content: flex-start; padding-top: 18vh; }
.hero-split--full .btn--outline-cream { margin-top: 3rem; }
.hero-split--sage .hero-split__intro { max-width: none; }
.hero-split--sage .btn--outline-cream {
background: #FAF4EC; color: var(--ink);
border-color: #C97B58;
align-self: center; padding: .8em 5rem;
}
.hero-split__headline .hl-terra { color: var(--terracotta-soft); font-style: italic; }
.hero-split__headline .hl-ochre { color: var(--ocker-blob); font-style: italic; }
.hero-split--sage .hero-split__headline .hl-terra,
.hero-split--sage .hero-split__headline .hl-ochre { color: #C97B58; }
.infocard__btn { width: 100%; border-radius: 0.625rem 0.625rem 0 0; margin-top: 1.4rem; }
.contact--bg-sage .form-grid .btn       { background: rgba(255,255,255,.65); color: var(--ink); }
.contact--bg-terracotta .form-grid .btn { background: var(--cream); color: var(--terracotta); }
.hero--about .hero__inner { min-height: calc(100vh - 29.375rem); padding: 2.5rem 0; align-items: center; }
.hero--about .hero__headline { font-size: clamp(1.7rem, 2.4vw, 2.2rem); font-weight: 500; }
.hero--about .hero__blobs .blob-img--about-cream { width: 20rem; top: 0.5rem; left: 18%; }
.hero--about .hero__blobs .blob-img--about-ochre { width: 18.75rem; top: 2.125rem; left: 47%; }
.portrait-intro { position: relative; z-index: 3; background: #F5EBDB; padding: 2rem 0; }
.portrait-intro__grid { display: grid; grid-template-columns: 22.5rem 1fr; gap: 3rem; align-items: center; }
.portrait-intro__media { position: relative; height: 16.25rem; }
.portrait-intro__img,
.portrait-intro__media .img-placeholder {
position: absolute; top: 50%; transform: translateY(-50%); left: 0;
width: 22.5rem; max-width: 100%; height: 27.5rem; object-fit: cover; border-radius: 2.125rem 2.125rem 0 0;
}
.portrait-intro__text h2 { font-size: 2rem; margin: 0 0 1rem; color: #786F5F; }
.portrait-intro__text p { color: #786F5F; margin: 0 0 1rem; text-align: left; }
.trustcard-sec {
position: relative; padding: 8rem 0 0;
background: linear-gradient(to bottom,
var(--page-bg) calc(100% - 8rem),
#F5EBDB   calc(100% - 8rem));
}
.trustcard {
position: relative; z-index: 2; margin: 0 auto;
background: #FFFFFF; border: 0.0625rem solid rgba(120,111,95,.45);
border-radius: 2.125rem 2.125rem 0 0; padding: 3.5rem 3rem;
box-shadow: 0 1.25rem 3.125rem rgba(46,42,37,.06);
}
.trustcard-sec + .textblock { padding-top: 5rem; padding-bottom: 3.5rem; }
.trustcard h2 { font-size: 2.4rem; margin: 0 0 1.4rem; }
.trustcard__text { max-width: none; }
.trustcard__text p { color: #786F5F; margin: 0 0 1.4rem; text-align: left; }
.trustcard .btn--terracotta {
display: block; width: 28.5rem; max-width: 100%; margin: 2rem auto 0;
padding: .7em 1.4em; border-radius: 0.625rem 0.625rem 0 0; text-align: center;
}
.trustcard-sec + .textblock .eyebrow { color: #C97B58; font-weight: 600; }
.trustcard-sec + .textblock h2 { font-size: 1.5rem; font-weight: 500; margin: 0 0 .8rem; }
.trustcard-sec + .textblock .textblock__body { color: #786F5F; font-size: .95rem; text-align: left; }
.textblock { padding: 3rem 0; }
.textblock--sand  { background: #F5EBDB; }
.textblock--cream { background: var(--cream); }
.textblock h2 { font-size: 1.9rem; margin: .2rem 0 1rem; }
.textblock__body { max-width: 58.75rem; color: rgba(46,42,37,.82); }
.quali { background: #FDFBF6; padding: 3rem 0; }
.quali__headline { font-size: 1.9rem; font-weight: 500; margin: .2rem 0 1.6rem; }
.quali__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.quali__tile {
background: #7C9169; color: var(--cream);
border-radius: 0.625rem 0.625rem 0 0; padding: 1.3rem 1.5rem;
font-size: .98rem; line-height: 1.4; text-align: center;
}
.quali .eyebrow { color: #C97B58; font-weight: 600; }
.forwhom { background: #FDFBF6; padding: 2.5rem 0 7.5rem; }
.forwhom .container { max-width: 82.5rem; }
.photo-duo { background: #FDFBF6; padding: 3.5rem 0; }
.photo-duo .container { max-width: 82.5rem; }
.photo-duo__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
.photo-duo__media { position: relative; overflow: hidden; border-radius: 2.125rem 2.125rem 0 0; height: 23.75rem; }
.photo-duo__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 2.4s ease-out; will-change: transform; }
.photo-duo__media:hover .photo-duo__img { transform: scale(1.08); }
.photo-duo__media .img-placeholder { width: 100%; height: 100%; border-radius: 0; }
.forwhom__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; margin-top: 1rem; }
.forwhom__card {
display: flex; align-items: center; justify-content: space-between;
border-radius: 0.75rem 0.75rem 0 0; padding: 1.6rem 1.8rem; min-height: 10.625rem;
text-decoration: none; font-family: var(--font-serif); font-size: 1.3rem;
transition: box-shadow .2s ease;
}
.forwhom__card--sage  { background: var(--card-kinder); color: var(--ink); }
.forwhom__card--peach { background: var(--card-erwachsene); color: var(--ink); }
.forwhom__card:hover { box-shadow: inset 0 0 0 62.4375rem rgba(0,0,0,.1); }
.forwhom__arrow { font-size: 1.4rem; }
@media (max-width: 900px) {
.portrait-intro__grid { grid-template-columns: 1fr; }
.portrait-intro__media { height: auto; }
.portrait-intro__img,
.portrait-intro__media .img-placeholder { position: static; transform: none; width: 100%; height: 21.25rem; }
.trustcard { padding: 2.2rem 1.4rem; margin-bottom: 0; }
.trustcard-sec + .textblock { padding-top: 5.5rem; padding-bottom: 3rem; }
.quali__grid,
.forwhom__grid { grid-template-columns: 1fr; }
.forwhom .container { max-width: none; }
.photo-duo__grid { grid-template-columns: 1fr; }
.photo-duo__media { height: 18.75rem; }
.hero--about .hero__blobs { display: none; }
.hero--about .hero__inner { min-height: 13.75rem; }
}
.contact__map { border-radius: 0.75rem 0.75rem 0 0; overflow: hidden; }
.contact__aside .contact__card { order: 1; }
.contact__aside .contact__map  { order: 2; }
.contact__map iframe { width: 100%; height: 16.25rem; border: 0; display: block; }
.contact__map-placeholder {
min-height: 13.75rem; border-radius: 0.75rem 0.75rem 0 0; text-align: center;
padding: 1rem; line-height: 1.5;
}
.contact__map-placeholder small { opacity: .8; }
.hero--ablauf .hero__blobs .blob-img--ak-cream { width: 21.875rem; top: 0.5rem;   left: 15%; }
.hero--ablauf .hero__blobs .blob-img--ak-ochre { width: 21.25rem; top: 1.75rem;  left: 60%; }
.hero--ablauf .hero__blobs .blob-img--ak-pink  { width: 28.125rem; top: 20rem; left: 11%; }
.hero--ablauf .hero__inner { align-items: flex-start; }
.hero--ablauf .hero__content { padding-top: calc(50vh - 15.3125rem); }
.hero--ablauf .hero__intro { color: #786F5F; }
.hero--ablauf .hero__blobs { transform: translateY(1cm); }
.intro-centered { background: #FDFBF6; padding: 1.5rem 0 3.5rem; text-align: center; }
.intro-centered__headline { font-size: 2.1rem; margin: 0 0 1.4rem; }
.intro-centered__text { max-width: 42.5rem; margin: 0 auto 1.8rem; color: rgba(46,42,37,.82); text-align: left; }
.intro-centered__text p { margin: 0 0 1rem; }
.intro-centered .btn--terracotta { border-radius: 0.625rem 0.625rem 0 0; padding: .7em 7.5em; }
.steps { background: #F5EBDB; padding: 3rem 0 3.5rem; }
.steps .eyebrow { color: #786F5F; opacity: 1; font-weight: 200; font-size: 1.44rem; }
.steps__headline { font-size: 2.2rem; font-family: var(--font-serif); font-style: normal; font-weight: 500; color: var(--ink); margin: .2rem 0 3rem; }
.steps__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: stretch; }
.step-card {
background: #FFFFFF; border-radius: 2.125rem 2.125rem 0 0; padding: 2rem 1.9rem;
box-shadow: 0 1rem 2.5rem rgba(46,42,37,.06);
}
.step-card__tag {
display: inline-block; font-family: var(--font-sans); letter-spacing: .12em;
text-transform: uppercase; font-size: .72rem; color: #C97B58; margin: 0 0 .5rem;
}
.step-card h3 { font-size: 1.5rem; font-weight: 500; margin: 0 0 .8rem; }
.step-card__text p { color: #786F5F; margin: 0 0 .8rem; font-size: .95rem; }
.steps__cta { text-align: center; margin-top: 3rem; }
.steps__cta .btn--terracotta { border-radius: 0.625rem 0.625rem 0 0; padding: .7em 7.5em; }
.costs { background: #F5EBDB; padding: 1rem 0 4rem; }
.costs__card {
background: #FFFFFF; border-radius: 2.125rem 2.125rem 0 0; padding: 2.6rem;
box-shadow: 0 1rem 2.5rem rgba(46,42,37,.05);
}
.costs .eyebrow { font-family: var(--font-sans); text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; font-weight: 400; color: #C97B58; opacity: 1; }
.costs__headline { font-size: 2.2rem; font-family: var(--font-serif); font-style: normal; font-weight: 500; color: var(--ink); margin: .2rem 0 .7rem; }
.costs__intro { color: #786F5F; margin: 0 0 1.6rem; }
.costs__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.cost-tile {
background: #F5EBDB; border-radius: 2.125rem 2.125rem 0 0; padding: 1.1rem 1.3rem;
font-size: .92rem; line-height: 1.4; color: rgba(46,42,37,.9);
display: flex; flex-direction: column; justify-content: center; text-align: center;
}
.cost-tile--wide { grid-column: 1 / -1; background: #F5EBDB; }
@media (max-width: 900px) {
.steps__grid,
.costs__grid { grid-template-columns: 1fr; }
.costs__card { padding: 1.8rem 1.4rem; }
.hero--ablauf .hero__blobs { display: none; }
}
.praxis-gallery__slide img,
.feature__img,
.infocard__img,
.hero-split__img,
.portrait-intro__img { transition: transform 2.4s ease-out; will-change: transform; }
.infocard__media, .hero-split__media { overflow: hidden; }
.praxis-gallery__slide { overflow: hidden; }
.praxis-gallery__viewport:hover .praxis-gallery__slide img,
.infocard__media:hover .infocard__img,
.hero-split__media:hover .hero-split__img { transform: scale(1.08); }
.feature__media:hover .feature__img,
.portrait-intro__media:hover .portrait-intro__img { transform: translateY(-50%) scale(1.07); }
.home .contact--large { background: #DAC490; }
.home .contact__intro .eyebrow { color: #786F5F; opacity: 1; font-weight: 200; font-size: 1.44rem; }
.home .contact__intro h2 { font-family: var(--font-serif); font-style: normal; font-weight: 500; font-size: 2.2rem; }
.home .leistungen .eyebrow { color: #786F5F; opacity: 1; font-weight: 200; font-size: 1.44rem; }
.home .contact .form-grid textarea { min-height: 9.375rem; }
.home .contact--large .contact__inner { grid-template-areas: "intro ." "form card"; align-items: stretch; }
.home .contact__aside { align-self: stretch; margin-top: 1.6rem; }
.home .contact__aside .contact__card { flex: 1; display: flex; }
.home .contact__aside .contact__card-inner { flex: 1; }
.form-grid .btn { border-radius: 0.625rem 0.625rem 0 0; }
.js-reveal .praxis-gallery,
.js-reveal .welcome__card,
.js-reveal .leistungen .container,
.js-reveal .groupcard,
.js-reveal .feature__text,
.js-reveal .feature__media,
.js-reveal .methodik .container,
.js-reveal .method-card,
.js-reveal .infocard,
.js-reveal .intro-centered .container,
.js-reveal .step-card,
.js-reveal .costs__card,
.js-reveal .portrait-intro__media,
.js-reveal .portrait-intro__text,
.js-reveal .trustcard,
.js-reveal .textblock .container,
.js-reveal .quali__tile,
.js-reveal .forwhom__card,
.js-reveal .contact__inner,
.js-reveal .site-footer__cols,
.js-reveal .site-footer__slim,
.js-reveal .duo__col {
opacity: 0;
transform: translateY(1.375rem);
transition: opacity .9s cubic-bezier(.22,.61,.36,1), transform .9s cubic-bezier(.22,.61,.36,1);
will-change: opacity, transform;
}
.js-reveal .is-visible:not(.hero__content):not(.hero-split__panel):not(.hero-split__media) { opacity: 1 !important; transform: none !important; }
.js-reveal .site-footer__slim,
.js-reveal .site-footer__base { opacity: 1; transform: none; transition: none; }
.hero-split { overflow: hidden; }
.js-reveal .hero__content {
animation: lassert-hero-hoch .9s cubic-bezier(.22,.61,.36,1) both;
}
.js-reveal .hero-split__panel {
animation: lassert-hero-links .9s cubic-bezier(.22,.61,.36,1) both;
}
.js-reveal .hero-split__media {
animation: lassert-hero-rechts .9s cubic-bezier(.22,.61,.36,1) both;
}
@keyframes lassert-hero-hoch {
from { opacity: 0; transform: translateY(1.375rem); }
to   { opacity: 1; transform: none; }
}
@keyframes lassert-hero-links {
from { opacity: 0; transform: translateX(-1rem); }
to   { opacity: 1; transform: none; }
}
@keyframes lassert-hero-rechts {
from { opacity: 0; transform: translateX(1rem); }
to   { opacity: 1; transform: none; }
}
html {
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
}
body { overflow-x: clip; }
@supports not (overflow: clip) {
body { overflow-x: hidden; }
}
img, svg, video, iframe, canvas { max-width: 100%; }
iframe { border: 0; }
h1, h2, h3, h4, h5, h6, p, li, dd, dt, figcaption,
.btn, .pill, .hero__cta, .forwhom__card, .cost-tile, .quali__tile,
.site-footer__slim-brand, .contact__card-address {
overflow-wrap: break-word;
}
.btn, .hero__cta, .btn--outline, .btn--outline-ink, .btn--outline-cream { max-width: 100%; }
@media (max-width: 900px) {
.contact__inner > *,
.contact__aside > *,
.form-grid > *,
.groupcards__grid > *,
.feature__grid > *,
.duo__grid > *,
.method-cards > *,
.steps__grid > *,
.costs__grid > *,
.quali__grid > *,
.forwhom__grid > *,
.photo-duo__grid > *,
.infocard > *,
.hero-split__grid > *,
.portrait-intro__grid > *,
.praxis-gallery__stage > *,
.site-header__inner > *,
.site-footer__cols > *,
.site-footer__group > * { min-width: 0; }
}
@media (max-width: 430px) {
h1, h2, h3,
.hero__headline,
.hero-split__headline,
.welcome__headline,
.contact__intro h2 {
-webkit-hyphens: auto;
hyphens: auto;
overflow-wrap: anywhere;
}
}
@media (max-width: 900px) {
.form-grid input,
.form-grid textarea,
.form-grid select { width: 100%; min-width: 0; }
}
.form-grid textarea { resize: vertical; }
@media (hover: none) and (pointer: coarse) and (max-width: 900px) {
.form-grid input,
.form-grid textarea,
.form-grid select { font-size: 1rem; }
}
[id] { scroll-margin-top: 6rem; }
@media (max-width: 900px) { [id] { scroll-margin-top: 5.25rem; } }
.admin-bar [id] { scroll-margin-top: calc(6rem + 32px); }
html { scroll-behavior: smooth; }
.skip-link {
position: absolute; left: -624.9375rem; top: 0;
width: 0.0625rem; height: 0.0625rem; overflow: hidden;
z-index: 200;
}
.skip-link:focus {
left: 0.75rem; top: 0.75rem; width: auto; height: auto;
padding: .7em 1.2em; background: #FAF4EC; color: var(--ink);
border: 0.0625rem solid var(--terracotta); border-radius: 0.625rem 0.625rem 0 0;
font-family: var(--font-sans); font-size: .9rem; text-decoration: none;
}
@media (max-width: 400px) {
:root { --container-pad: 1rem; }
}
@media (max-width: 900px) {
.site-header__inner { padding-inline: 1.5rem; row-gap: .7rem; }
.site-header__brand { font-size: 1.2rem; }
.site-nav { gap: .7rem 1.4rem; }
}
@media (max-width: 620px) {
.site-header__inner { padding-inline: 1.125rem; padding-top: .85rem; padding-bottom: .85rem; }
.site-header__brand { font-size: 1.05rem; }
.site-nav { gap: .5rem 1.1rem; }
.site-nav a { font-size: .85rem; }
}
@media (max-width: 400px) {
.site-header__inner { padding-inline: 0.875rem; }
.site-header__brand { font-size: .98rem; }
.site-nav a { font-size: .8rem; }
.site-nav { gap: .45rem .9rem; }
}
@media (max-width: 700px) {
.hero__headline,
.hero-split__headline,
.welcome__headline,
.leistungen__headline,
.methodik__headline,
.steps__headline,
.costs__headline,
.trustcard h2,
.intro-centered__headline {
overflow-wrap: break-word;
-webkit-hyphens: auto;
hyphens: auto;
}
}
@media (max-width: 900px) {
.hero--ablauf .hero__inner { align-items: center; }
.hero--ablauf .hero__content { padding-top: 0; }
}
@media (max-width: 900px) {
.hero-split--full .hero-split__grid { min-height: 0; }
.hero-split--full .hero-split__panel {
justify-content: center;
padding: 2.4rem 1.6rem;
}
.hero-split--full .btn--outline-cream { margin-top: 1.75rem; }
.hero-split--full + .infocard-sec,
.hero-split--full + .methodik { padding-top: 3.5rem; }
.hero-split--full + .infocard-sec { padding-bottom: 0; }
.hero-split--full + .infocard-sec + .infocard-sec { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.hero-split--full + .methodik { padding-bottom: 0; }
.hero-split--full + .methodik .method-cards { margin-top: 2rem; }
.hero-split--full + .methodik + .infocard-sec { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.hero-split--full + .methodik + .infocard-sec .infocard--img-left { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
.hero-split__panel,
.hero-split--full .hero-split__panel { padding: 2rem 1.2rem; }
.hero-split__media { min-height: 15rem; }
}
@media (max-height: 560px) and (min-width: 901px) {
.hero__inner { min-height: 0; padding: 3rem 0 3.5rem; }
.hero--about .hero__inner { min-height: 0; }
.hero-split--full .hero-split__grid { min-height: 0; }
.hero-split--full .hero-split__panel { padding-top: 3rem; padding-bottom: 3rem; }
.hero-split--full + .infocard-sec,
.hero-split--full + .methodik { padding-top: 4rem; }
.hero--ablauf .hero__content { padding-top: 0; }
}
@media (max-width: 900px) {
.home .contact--large .contact__inner {
grid-template-columns: 1fr;
grid-template-areas: "intro" "form" "card";
align-items: start;
}
.home .contact__aside { align-self: auto; margin-top: 0; }
.forwhom + .contact--compact .contact__inner { max-width: none; }
}
@media (max-width: 900px) {
.groupcard--sage h3 { white-space: normal; }
}
@media (max-width: 700px) {
.intro-centered .btn--terracotta,
.steps__cta .btn--terracotta {
display: inline-block;
width: 100%; max-width: 22.5rem;
padding-left: 1.6rem; padding-right: 1.6rem;
}
.btn--outline-cream,
.hero-split--sage .btn--outline-cream {
width: 100%; max-width: 22.5rem;
padding-left: 1.4rem; padding-right: 1.4rem;
}
.trustcard .btn--terracotta { width: 100%; }
.hero__cta { width: 100%; max-width: 24.875rem; padding-left: 1.4rem; padding-right: 1.4rem; }
.welcome .btn--sage { width: 100%; max-width: 24.875rem; }
}
@media (max-width: 480px) {
.pills .pill,
.pill:nth-child(7):nth-last-child(2),
.pill:nth-child(7):nth-last-child(2) ~ .pill { flex-basis: 100%; }
.pills .pill { min-height: 3.4rem; }
}
@media (max-width: 900px) {
.praxis-gallery__viewport { width: 100%; max-width: 100%; }
.praxis-gallery__slide img { height: clamp(15rem, 52vw, 26.25rem); }
.praxis-gallery__placeholder { min-height: 16.25rem; }
}
@media (max-width: 560px) {
.praxis-gallery__slide img { height: clamp(13.125rem, 62vw, 20rem); }
}
@media (max-width: 900px) {
.feature-gap { height: 3rem; }
.groupcards { padding-bottom: 4rem; }
.groupcards::after { height: calc(5.25rem + 4rem); }
.forwhom { padding-bottom: 4rem; }
.trustcard-sec { padding-top: 4rem; }
}
@media (max-width: 560px) {
.welcome { padding: 3rem 0; }
.welcome__card { padding: 1.8rem 1.1rem; }
.welcome__headline { font-size: 1.85rem; }
.leistungen { padding: 3.5rem 0 4rem; }
.leistungen__headline { font-size: 1.85rem; }
.groupcard__body { padding: 1.8rem 1.3rem 1.2rem; }
.groupcard__foot { padding: 0 1.3rem; }
.groupcard h3 { font-size: 1.25rem; }
.infocard__panel { padding: 1.6rem 1.2rem; }
.infocard__panel h3 { font-size: 1.35rem; }
.step-card { padding: 1.5rem 1.2rem; }
.costs__card { padding: 1.5rem 1.1rem; }
.costs__headline,
.steps__headline,
.methodik__headline { font-size: 1.8rem; }
.trustcard { padding: 1.8rem 1.1rem; }
.trustcard h2 { font-size: 1.9rem; }
.contact { padding: 3rem 0; }
.contact__card-inner { padding: 1.5rem 1.3rem; line-height: 1.8; }
.contact__intro h2 { font-size: 1.7rem; }
.duo { padding: 2.5rem 0; }
.intro-centered__headline { font-size: 1.8rem; }
.quali__tile { padding: 1.1rem 1.2rem; }
.forwhom__card { padding: 1.3rem 1.4rem; min-height: 8.75rem; font-size: 1.15rem; }
.contact__map iframe { height: 13.75rem; }
}
@media (max-width: 480px) {
.welcome-blob--cream { width: 7.375rem; top: -1.25rem; left: 56%; }
.welcome-blob--ochre { width: 7.375rem; top: 0.5rem;   right: -0.875rem; }
.welcome-blob--pink  { width: 10rem; bottom: -1rem; right: 2%; }
}
@media (max-width: 560px) {
.site-footer__cols,
.site-footer__base,
.site-footer__slim { padding-inline: 1.125rem; }
.site-footer--large { padding: 2.5rem 0 1.2rem; }
.site-footer__slim { flex-direction: column; text-align: center; gap: .5rem; }
.site-footer__slim-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .2rem .45rem; }
.site-footer__slim-links a { margin-left: 0; }
}
.praxis-gallery__slide img,
.feature__img,
.infocard__img,
.hero-split__img,
.portrait-intro__img,
.photo-duo__img { will-change: auto; }
.js-reveal .is-visible { will-change: auto; }
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
.praxis-gallery__slide img,
.feature__img,
.infocard__img,
.hero-split__img,
.portrait-intro__img,
.photo-duo__img,
.pills .pill { transition: none; }
.praxis-gallery__viewport:hover .praxis-gallery__slide img,
.infocard__media:hover .infocard__img,
.hero-split__media:hover .hero-split__img,
.photo-duo__media:hover .photo-duo__img { transform: none; }
.feature__media:hover .feature__img,
.portrait-intro__media:hover .portrait-intro__img { transform: translateY(-50%); }
.pills .pill:hover { transform: none; }
}
@media print {
.site-header, .praxis-gallery, .hero__blobs, .welcome__blobs,
.skip-link, .forwhom, .photo-duo { display: none !important; }
body { background: #fff; color: #000; }
.site-footer--bg-terracotta, .site-footer--bg-sage { background: #fff; color: #000; }
a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; }
.js-reveal .is-visible,
[class] { opacity: 1 !important; transform: none !important; }
}
.page-slug-kontakt .contact__intro .eyebrow {
color: #786F5F;
opacity: 1;
font-weight: 200;
font-size: 1.44rem;
}
.step-card__tag,
.costs .eyebrow {
font-weight: 600;
letter-spacing: .14em;
}
.step-card       { padding: 2rem 2.5rem; }
.step-card__tag  { margin-bottom: 1rem; }
.step-card h3    { margin-bottom: 1.2rem; }
.costs__card     { padding: 2.6rem 3.2rem; }
@media (max-width: 560px) {
.step-card   { padding: 1.5rem 1.2rem; }
.costs__card { padding: 1.5rem 1.1rem; }
}
.hero--about .hero__inner { min-height: 26.875rem; }
.hero--about .hero__blobs .blob-img--about-cream { left: 50%; margin-left: -24rem; }
.hero--about .hero__blobs .blob-img--about-ochre { left: 50%; margin-left: 0.25rem; }
@media (max-width: 900px) {
.hero--about .hero__inner { min-height: 13.75rem; }
.hero--about .hero__blobs { display: none; }
}
.site-footer__slim-person { font-weight: 400; }
.btn,
.hero__cta,
.site-header .btn--outline,
.btn--outline-ink,
.btn--outline-cream,
.welcome .btn--sage,
.groupcard__btn,
.duo__col .btn--outline-ink,
.infocard__btn,
.trustcard .btn--terracotta,
.intro-centered .btn--terracotta,
.steps__cta .btn--terracotta,
.form-grid .btn,
.skip-link:focus {
border-radius: 0.625rem;
}
.site-header__inner { flex-wrap: wrap; }
@media (max-width: 1050px) and (min-width: 901px) {
.site-header__inner { gap: 1.25rem; }
.site-header__brand { margin-right: 1rem; }
.site-nav { gap: 1.75rem; }
}
.hero-split--sage .hero-split__headline .hl-terra,
.hero-split--sage .hero-split__headline .hl-ochre { color: #F4D5B5; }
@media (min-width: 901px) {
.hero__blobs .blob-img--sage { bottom: -5.9375rem; }
}
.hero--ablauf .hero__blobs .blob-img--ak-pink {
transform: none;
top: auto;
bottom: 12.5rem;
}
@media (min-width: 901px) {
.hero--blobs:not(.hero--about):not(.hero--ablauf) .hero__inner { min-height: max(40rem, calc(100vh - 3.5rem)); }
.hero__blobs .blob-img--ochre { left: 50%; right: auto; margin-left: -37.5rem; }
.hero__blobs .blob-img--sage  { left: 50%; right: auto; margin-left: 6.875rem; }
.hero--ablauf .hero__inner   { min-height: max(43.75rem, calc(100vh - 3.5rem)); }
.hero--ablauf .hero__blobs   { bottom: auto; height: 52.75rem; }
.hero--ablauf .hero__content { padding-top: 12.8125rem; }
.hero--ablauf .hero__blobs .blob-img--ak-cream { left: 50%; margin-left: -26.25rem; }
.hero--ablauf .hero__blobs .blob-img--ak-ochre { left: 50%; margin-left: 7.5rem; }
.hero--ablauf .hero__blobs .blob-img--ak-pink  { left: 50%; margin-left: -29.25rem; }
}
@media (min-width: 901px) {
.intro-centered__headline {
font-size: min(2.9rem, calc((100vw - 2 * var(--container-pad)) * 0.0483));
}
}
@media (min-width: 901px) {
.intro-centered__text { max-width: none; }
}
@media (min-width: 901px) {
.site-nav__mobile-only { display: none; }
}
.site-header__burger { display: none; }
@media (max-width: 900px) {
.js .site-header__burger {
display: inline-flex; align-items: center; justify-content: center;
flex: 0 0 auto;
width: 2.75rem; height: 2.75rem; padding: 0;
background: #FAF4EC; color: #786F5F;
border: 0.0625rem solid rgba(194,103,63,.55);
border-radius: 0.625rem;
cursor: pointer;
transition: background .2s ease, border-color .2s ease;
}
.js .site-header__burger:hover { background: #F6ECD9; }
.js .site-header__burger:focus-visible { outline: 0.125rem solid var(--terracotta-soft); outline-offset: 0.1875rem; }
.site-header__burger-bars { position: relative; display: block; width: 1.25rem; height: 0.875rem; }
.site-header__burger-bars span {
position: absolute; left: 0; right: 0; height: 0.125rem;
background: currentColor; border-radius: 0.125rem;
transition: transform .25s ease, opacity .18s ease, top .25s ease;
}
.site-header__burger-bars span:nth-child(1) { top: 0; }
.site-header__burger-bars span:nth-child(2) { top: 0.375rem; }
.site-header__burger-bars span:nth-child(3) { top: 0.75rem; }
.js .site-header__burger[aria-expanded="true"] .site-header__burger-bars span:nth-child(1) { top: 0.375rem; transform: rotate(45deg); }
.js .site-header__burger[aria-expanded="true"] .site-header__burger-bars span:nth-child(2) { opacity: 0; }
.js .site-header__burger[aria-expanded="true"] .site-header__burger-bars span:nth-child(3) { top: 0.375rem; transform: rotate(-45deg); }
.js .site-header__inner { position: relative; flex-wrap: nowrap; }
.js .site-header__brand { margin-right: auto; }
.js .site-nav {
display: none;
position: absolute; top: calc(100% + .55rem); right: 0;
flex-direction: column; align-items: stretch; gap: .15rem;
width: min(17.5rem, calc(100vw - 2 * var(--container-pad)));
margin: 0; padding: .45rem;
background: #FAF4EC;
border: 0.0625rem solid rgba(194,103,63,.55);
border-radius: 0.625rem;
box-shadow: 0 1.125rem 2.625rem rgba(46,42,37,.16);
z-index: 120;
}
.js .site-nav.is-open { display: flex; }
.js .site-nav a {
display: block;
padding: .72rem .95rem;
border-radius: 0.5rem;
font-size: .95rem;
white-space: normal;
transition: background .18s ease, color .18s ease;
}
.js .site-nav a + a { border-top: 0.0625rem solid rgba(194,103,63,.13); }
.js .site-nav a:hover,
.js .site-nav a:focus-visible { background: rgba(194,103,63,.10); color: var(--terracotta); }
.js .site-nav a[aria-current="page"] { color: var(--terracotta); font-weight: 600; }
}
@media (max-width: 900px) {
[id] { scroll-margin-top: 5rem; }
body { font-size: 1rem; }
.site-footer__col li a,
.site-footer__col p a,
.site-footer__slim-links a,
.contact__card-address a { display: inline-block; padding-block: .3rem; }
.praxis-gallery__dots { gap: 1.25rem; }
.praxis-gallery__dot { position: relative; }
.praxis-gallery__dot::after { content: ""; position: absolute; inset: -0.625rem; }
.hero-split__media { min-height: 16.25rem; }
}
@media (max-width: 560px) {
.hero__methods { font-size: .85rem; margin-bottom: 1.6rem; }
.hero__intro   { font-size: 1.05rem; margin-bottom: 2rem; }
.praxis-gallery__controls { margin-top: 0.875rem; }
.site-footer__base { font-size: .75rem; line-height: 1.6; }
.textblock { padding: 2.5rem 0; }
.quali { padding: 2.5rem 0; }
.steps { padding: 2.5rem 0 3rem; }
.steps__headline { margin-bottom: 2rem; }
.intro-centered { padding-bottom: 2.5rem; }
.methodik { padding: 3rem 0 2.5rem; }
}
@media (max-width: 380px) {
.hero__headline { font-size: 1.7rem; }
.site-header__brand { font-size: .95rem; }
.btn, .form-grid .btn { font-size: .75rem; letter-spacing: .05em; }
.hero__cta { font-size: .88rem; }
.groupcard h3, .infocard__panel h3 { font-size: 1.2rem; }
.welcome__headline, .trustcard h2 { font-size: 1.65rem; }
}
@media (max-width: 900px) {
.hero__inner   { padding-inline: var(--container-pad); }
.hero__content { width: 100%; min-width: 0; }
}
.hero-split__intro { font-size: 1.2rem; }
@media (max-width: 560px) {
.hero-split__intro { font-size: 1.05rem; }
}
.hero-split__intro {
text-align: left;
}
.method-card h3,
.method-card p { text-align: center; }
@media (min-width: 901px) {
.method-card h3 { min-height: 2.3em; }
}
.step-card__text p { text-align: left; }
.pill { font-size: .98rem; }
.pills .pill { transition: none; }
.pills .pill:hover { transform: none; box-shadow: none; }
.feature__frame,
.portrait-intro__frame {
display: block;
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 0;
width: 22.5rem;
max-width: 100%;
height: 27.5rem;
border-radius: 2.125rem 2.125rem 0 0;
overflow: hidden;
}
.feature--text-left  .feature__frame { right: 0; left: auto; }
.feature--text-right .feature__frame { left: 0; right: auto; }
.feature__frame > .feature__img,
.feature__frame > .img-placeholder,
.portrait-intro__frame > .portrait-intro__img,
.portrait-intro__frame > .img-placeholder {
position: static;
transform: none;
width: 100%;
height: 100%;
max-width: none;
border-radius: 0;
object-fit: cover;
}
.feature__media:hover .feature__img,
.portrait-intro__media:hover .portrait-intro__img { transform: none; }
.feature__frame:hover > .feature__img,
.portrait-intro__frame:hover > .portrait-intro__img { transform: scale(1.08); }
@media (max-width: 900px) {
.feature__frame,
.portrait-intro__frame {
position: static;
transform: none;
width: 100%;
height: 20rem;
}
.portrait-intro__frame { height: 21.25rem; }
}
.hero-split__intro { margin-bottom: .95rem; }
.hero-split--full .btn--outline-cream { margin-top: 1.5rem; }
@media (min-width: 901px) {
.hero-split--full .hero-split__grid  { min-height: 40.625rem; }
.hero-split--full .hero-split__panel { padding-top: 10.125rem; }
}
@media (min-width: 901px) {
.hero-split__headline { min-height: calc(2 * 1.2em); }
}
@media (min-width: 1300px) { .hero-split__intro { min-height: calc(4 * 1.65em); } }
@media (min-width: 1101px) and (max-width: 1299.98px) { .hero-split__intro { min-height: calc(5 * 1.65em); } }
@media (min-width:  901px) and (max-width: 1100.98px) { .hero-split__intro { min-height: calc(7 * 1.65em); } }
@media (max-width: 900px) {
.hero-split--full .hero-split__panel { padding-bottom: 3.5rem; }
}
@media (min-width: 901px) {
.hero-split--full .hero-split__grid  { min-height: 40.5rem; }
.hero-split--full .hero-split__panel { padding-top: 10.125rem; }
.hero--about .hero__inner { min-height: 20rem; }
.hero--ablauf .hero__content { padding-top: 12.9375rem; }
}
html {
font-size: 16px;
}
@media (min-width: 1601px) {
html {
font-size: clamp(16px, 1vw, 22px);
}
}
@media (min-width: 1101px) {
.hero-split--full:not(.hero-split--sage) .hero-split__intro {
min-height: 0;
margin-bottom: 2.45rem;
}
.hero-split--full:not(.hero-split--sage) .hero-split__panel .btn {
margin-top: auto;
margin-bottom: auto;
position: relative;
top: 0.06rem;
}
}
@media (min-width: 901px) {
.hero--about .hero__headline { font-size: clamp(2.1rem, 3.2vw, 2.9rem); }
}
:root { --header-h: 5.0125rem; }
@media (max-width: 620px) {
:root { --header-h: 4.5125rem; }
}
@media (max-width: 900px) {
.hero--blobs:not(.hero--about) .hero__inner {
min-height: calc(100vh - var(--header-h));
}
}
@supports (height: 100svh) {
@media (max-width: 900px) {
.hero--blobs:not(.hero--about) .hero__inner {
min-height: calc(100svh - var(--header-h));
}
}
}
@media (max-width: 900px) {
.hero__headline { margin-inline: -0.5rem; }
.hero__headline {
font-size: min(2.1rem, calc((100vw - 2 * var(--container-pad) + 1rem) / 13.2));
}
}
@media (max-width: 900px) {
.hero__blobs .blob-img--ochre {
width: min(12.5rem, 51vw);
top:  max(-4.375rem, -18vw);
left: max(-4.375rem, -18vw);
}
.hero__blobs .blob-img--sage {
width: min(14.375rem, 59vw);
bottom: max(-4.375rem, -18vw);
right:  max(-5rem, -20vw);
}
}
@media (max-width: 360px) {
.hero__blobs .blob-img--sage { bottom: -10vw; }
}
@media (max-width: 900px) {
.hero--ablauf .hero__blobs {
display: block;
transform: none;
height: auto;
inset: 0;
}
.hero--ablauf .hero__blobs .blob-img--ak-cream {
width: 46%; left: -8%; right: auto; margin-left: 0;
top: 2rem; bottom: auto;
}
.hero--ablauf .hero__blobs .blob-img--ak-ochre {
width: 42%; left: auto; right: -8%; margin-left: 0;
top: 8rem; bottom: auto;
}
.hero--ablauf .hero__blobs .blob-img--ak-pink {
width: 58%; left: -10%; right: auto; margin-left: 0;
top: auto; bottom: 3rem;
}
}
@media (max-width: 900px) {
.hero--about .hero__inner { min-height: 8.5rem; padding: 1.4rem 0; }
.hero--about .hero__blobs { display: block; }
.hero--about .hero__blobs .blob-img--about-cream {
width: min(30%, 7rem); left: -2%; right: auto; margin-left: 0; top: 0;
}
.hero--about .hero__blobs .blob-img--about-ochre {
width: min(28%, 6.5rem); left: auto; right: -1%; margin-left: 0; top: .8rem;
}
}
@media (max-width: 900px) {
.welcome { padding-bottom: 5.5rem; }
.welcome-blob--cream {
width: min(42%, 11rem); left: -7%; right: auto;
top: -1.6rem; bottom: auto;
}
.welcome-blob--ochre {
width: min(38%, 10rem); right: -7%; left: auto;
top: -2.6rem; bottom: auto;
}
.welcome-blob--pink {
width: min(40%, 9.5rem); left: -8%; right: auto;
top: auto; bottom: -4.75rem;
}
}
@media (min-width: 360px) and (max-width: 900px) {
.pills {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: .4rem;
margin-inline: -0.3rem;
}
.pills .pill,
.pill:nth-child(7):nth-last-child(2),
.pill:nth-child(7):nth-last-child(2) ~ .pill {
flex: none;
width: auto;
max-width: none;
min-width: 0;
min-height: 0;
padding: .8rem .55rem;
font-size: min(.92rem, calc(((100vw - 2 * var(--container-pad) + 0.6rem) / 2 - 1.1rem) / 12.9));
-webkit-hyphens: auto;
hyphens: auto;
}
}
@media (max-width: 359px) {
.pills { justify-content: center; gap: .5rem; }
.pills .pill,
.pill:nth-child(7):nth-last-child(2),
.pill:nth-child(7):nth-last-child(2) ~ .pill {
flex: 0 1 auto;
min-height: 0;
max-width: 100%;
font-size: .9rem;
padding: .62rem .95rem;
}
}
@media (min-width: 901px) and (max-width: 1200px) {
:root { --container-pad: calc(4rem + (100vw - 901px) * 0.18729); }
}
@media (max-width: 1050px) {
.groupcard--sage h3 { white-space: normal; }
}
@media (max-width: 900px) {
html { font-size: clamp(15.5px, 13.7px + 0.55vw, 18px); }
}
@media (hover: none) and (pointer: coarse) and (max-width: 900px) {
.form-grid input,
.form-grid textarea,
.form-grid select { font-size: max(1rem, 16px); }
}
@media (max-width: 900px) {
.hero-split__media {
min-height: 0;
height: 80vw;
}
.infocard__media,
.photo-duo__media {
min-height: 0;
height: calc((100vw - 2 * var(--container-pad)) / 1.5);
}
.feature__frame,
.portrait-intro__frame {
height: min(calc((100vw - 2 * var(--container-pad)) * 1.25), 30rem);
max-width: 24rem;
margin-inline: auto;
}
.feature__media,
.portrait-intro__media {
display: flex;
justify-content: center;
}
.praxis-gallery__slide img,
.praxis-gallery__placeholder {
min-height: 0;
height: calc(100vw / 1.5);
}
}
@media (max-width: 900px) {
.groupcards__grid {
display: flex;
gap: 1.5rem;
overflow-x: auto;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
overscroll-behavior-x: contain;
scroll-padding-inline: var(--container-pad);
scrollbar-width: none;
-ms-overflow-style: none;
}
.groupcards__grid::-webkit-scrollbar { display: none; }
.groupcard {
flex: 0 0 100%;
scroll-snap-align: start;
}
.groupcards { --gc-controls: 3.9rem; }
.groupcards::after { height: calc(5.25rem + 4rem + var(--gc-controls)); }
.groupcards__controls[hidden] { display: none; }
.groupcards__controls {
position: relative;
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
gap: 1.1rem;
margin-top: 1.4rem;
}
}
@media (min-width: 901px) {
.groupcards__controls { display: none; }
}
.groupcards__arrow {
flex: 0 0 auto;
width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 0; padding: 0;
cursor: pointer;
background: var(--terracotta); color: var(--cream);
display: flex; align-items: center; justify-content: center;
transition: background .2s ease, opacity .2s ease;
}
.groupcards__arrow svg { width: 1.2rem; height: 1.2rem; }
.groupcards__arrow svg path { stroke-width: 1.4; }
.groupcards__arrow:hover { background: var(--terracotta-soft); }
.groupcards__arrow:focus-visible { outline: 0.125rem solid var(--terracotta); outline-offset: 0.125rem; }
.groupcards__arrow[disabled] { opacity: .3; cursor: default; }
.groupcards__arrow[disabled]:hover { background: var(--terracotta); }
.groupcards__dots { display: flex; align-items: center; gap: 0.75rem; }
.groupcards__dot {
position: relative;
width: 0.5625rem; height: 0.5625rem; border-radius: 50%; border: 0; padding: 0;
cursor: pointer;
background: rgba(46,42,37,.22);
transition: background .2s ease, transform .2s ease;
}
.groupcards__dot::after { content: ""; position: absolute; inset: -0.625rem; }
.groupcards__dot:hover { background: rgba(46,42,37,.4); }
.groupcards__dot.is-active { background: var(--terracotta); transform: scale(1.2); }
@media (max-width: 900px) {
.hero__headline,
.hero-split__headline {
-webkit-hyphens: none;
hyphens: none;
overflow-wrap: normal;
word-break: normal;
}
}
@media (max-width: 900px) {
.praxis-gallery__arrow,
.groupcards__arrow { display: none; }
.groupcards__dots { padding-block: .55rem; }
.groupcards { --gc-controls: 3.05rem; }
}
@media (max-width: 900px) {
.welcome__card::before {
content: "";
position: absolute;
inset: 0;
background: #FFFFFF;
border-radius: 2.125rem 2.125rem 0 0;
z-index: 1;
}
.welcome__blobs { z-index: auto; }
.welcome-blob--ochre { z-index: 0; }
.welcome-blob--cream,
.welcome-blob--pink  { z-index: 2; }
.welcome__body { z-index: 3; }
}
@media (max-width: 900px) {
.praxis-gallery__slide img,
.praxis-gallery__placeholder {
height: min(calc((100vw - 2 * var(--container-pad)) * 1.25), 30rem);
}
}
@media (max-width: 900px) {
.js-reveal .groupcard,
.js-reveal .step-card {
opacity: 1;
transform: none;
transition: none;
will-change: auto;
}
.groupcard { scroll-snap-stop: always; }
}
html {
overscroll-behavior-y: none;
}
@media (max-width: 900px) {
.feature--text-right .feature__text  { order: 1; }
.feature--text-right .feature__media { order: 2; }
}
@media (max-width: 900px) {
.hero-split--full .hero-split__grid {
grid-template-columns: 1fr;
grid-template-rows: auto 1fr;
min-height: calc(100vh - var(--header-h));
}
.hero-split--full .hero-split__panel {
min-height: calc(0.55 * (100vh - var(--header-h)));
padding-bottom: 2.4rem;
}
.hero-split--full .hero-split__media {
height: auto;
min-height: calc(0.45 * (100vh - var(--header-h)));
}
}
@supports (height: 100dvh) {
@media (max-width: 900px) {
.hero-split--full .hero-split__grid { min-height: calc(100dvh - var(--header-h)); }
}
}
@media (max-width: 900px) and (max-height: 700px) {
.hero-split--full .hero-split__panel {
padding-top: 1.5rem;
padding-bottom: 1.5rem;
}
.hero-split--full .btn--outline-cream { margin-top: 1rem; }
.hero-split__headline { margin-bottom: .7rem; }
}
@supports (height: 100svh) {
@media (max-width: 900px) {
.hero-split--full .hero-split__panel { min-height: calc(0.55 * (100svh - var(--header-h))); }
.hero-split--full .hero-split__media { min-height: calc(0.45 * (100svh - var(--header-h))); }
}
}
.hero-split__intro.is-clamped {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: var(--intro-lines, 4);
line-clamp: var(--intro-lines, 4);
overflow: hidden;
}
.hero-split__more {
align-self: flex-start;
margin: 0 0 .2rem;
padding: .25rem 0;
background: none;
border: 0;
color: inherit;
font-family: var(--font-sans);
font-size: .95rem;
font-weight: 600;
letter-spacing: .02em;
text-decoration: underline;
text-underline-offset: .25em;
cursor: pointer;
}
.hero-split__more:focus-visible {
outline: 0.125rem solid #FAF4EC;
outline-offset: 0.2rem;
}
@supports (height: 100dvh) {
@media (max-width: 900px) {
.hero--blobs:not(.hero--about) .hero__inner {
min-height: calc(100dvh - var(--header-h));
}
}
}
@media (max-width: 900px) {
.leistungen__intro br { display: none; }
}
@media (max-width: 900px) {
.infocard--img-left  .infocard__panel,
.infocard--img-right .infocard__panel { order: 1; }
.infocard--img-left  .infocard__media,
.infocard--img-right .infocard__media { order: 2; }
.infocard--img-left  .infocard__img,
.infocard--img-right .infocard__img,
.infocard--img-left  .infocard__panel,
.infocard--img-right .infocard__panel { border-radius: 0; }
}
@media (max-width: 900px) {
.duo__col + .duo__col { padding-left: 0; }
}
.is-clamped {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: var(--intro-lines, 3);
line-clamp: var(--intro-lines, 3);
overflow: hidden;
margin-bottom: .4rem;
}
.is-clamped > p { margin-bottom: 0; }
.text-more[hidden] { display: none; }
.text-more {
display: inline-block;
margin: 0 0 1.6rem;
padding: .25rem 0;
background: none;
border: 0;
color: #786F5F;
font-family: var(--font-sans);
font-size: .95rem;
font-weight: 600;
letter-spacing: .02em;
text-decoration: underline;
text-underline-offset: .25em;
cursor: pointer;
}
.text-more:focus-visible {
outline: 0.125rem solid var(--terracotta-soft);
outline-offset: 0.2rem;
}
@media (max-width: 900px) {
.hero--about .hero__blobs .blob-img--about-cream { width: min(34%, 8rem); }
.hero--about .hero__blobs .blob-img--about-ochre { width: min(32%, 7.4rem); top: .4rem; }
}
@media (max-width: 900px) {
.steps__grid {
display: flex;
gap: 1.5rem;
overflow-x: auto;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
overscroll-behavior-x: contain;
margin-inline: calc(var(--container-pad) * -1);
padding-inline: var(--container-pad);
scroll-padding-inline: var(--container-pad);
scrollbar-width: none;
-ms-overflow-style: none;
}
.steps__grid::-webkit-scrollbar { display: none; }
.step-card {
flex: 0 0 100%;
scroll-snap-align: start;
scroll-snap-stop: always;
}
.steps__controls {
display: flex;
align-items: center;
justify-content: center;
margin-top: 1.4rem;
}
}
@media (min-width: 901px) {
.steps__controls { display: none; }
}
.steps__controls[hidden] { display: none; }
.steps__dots { display: flex; align-items: center; gap: 0.75rem; padding-block: .55rem; }
.steps__dot {
position: relative;
width: 0.5625rem; height: 0.5625rem; border-radius: 50%; border: 0; padding: 0;
cursor: pointer;
background: rgba(46,42,37,.22);
transition: background .2s ease, transform .2s ease;
}
.steps__dot::after { content: ""; position: absolute; inset: -0.625rem; }
.steps__dot:hover { background: rgba(46,42,37,.4); }
.steps__dot.is-active { background: var(--terracotta); transform: scale(1.2); }
@media (max-width: 900px) {
.steps__grid { align-items: flex-start; }
}
@media (max-width: 900px) {
.cost-tile,
.quali__tile {
text-wrap: balance;
}
}
@media (max-width: 900px) {
.site-footer__group {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2rem 1.5rem;
}
.site-footer__group > .site-footer__col:nth-child(3) {
grid-column: 1 / -1;
}
.site-footer__col li { margin-bottom: 0; }
.site-footer__col li a { padding-block: .3rem; }
.site-footer__col p { margin-bottom: .55rem; }
}
@media (max-width: 374px) {
.site-footer__group { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
.site-footer__group > .site-footer__col:nth-child(3) ul {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0 1.5rem;
}
.site-footer__base { text-align: center; }
}
@media (max-width: 374px) {
.site-footer__group > .site-footer__col:nth-child(3) ul {
grid-template-columns: 1fr;
}
}
:root { --vu: 1rem; }
@media (min-width: 901px) and (max-width: 1200px) {
:root { --vu: calc(0.65rem + (100vw - 901px) * 0.018729); }
}
@media (min-width: 901px) and (max-width: 1366px) and (pointer: coarse) {
:root { --vu: calc(0.65rem + (100vw - 901px) * 0.012043); }
}
@media (min-width: 901px) {
.praxis-gallery { padding-block: calc(2 * var(--vu)); }
.welcome        { padding-block: calc(4.5 * var(--vu)); }
.leistungen     { padding-top: calc(6 * var(--vu)); padding-bottom: calc(6.5 * var(--vu)); }
.groupcards     { padding-bottom: calc(15 * var(--vu)); }
.groupcards::after { height: calc(5.25rem + 15 * var(--vu)); }
.feature        { padding-block: calc(2 * var(--vu)); }
.feature-gap    { height: calc(15 * var(--vu)); }
.contact        { padding-block: calc(4 * var(--vu)); }
.duo            { padding-block: calc(3.5 * var(--vu)); }
.infocard-sec   { padding-block: calc(3.5 * var(--vu)); }
.methodik       { padding-top: calc(4 * var(--vu)); padding-bottom: calc(3.5 * var(--vu)); }
.intro-centered { padding-top: calc(1.5 * var(--vu)); padding-bottom: calc(3.5 * var(--vu)); }
.steps          { padding-top: calc(3 * var(--vu)); padding-bottom: calc(3.5 * var(--vu)); }
.costs          { padding-top: calc(1 * var(--vu)); padding-bottom: calc(4 * var(--vu)); }
.portrait-intro { padding-block: calc(2 * var(--vu)); }
.trustcard-sec  { padding-top: calc(8 * var(--vu)); }
.textblock      { padding-block: calc(3 * var(--vu)); }
.trustcard-sec + .textblock { padding-top: calc(5 * var(--vu)); padding-bottom: calc(3.5 * var(--vu)); }
.quali          { padding-block: calc(3 * var(--vu)); }
.photo-duo      { padding-block: calc(3.5 * var(--vu)); }
.forwhom        { padding-top: calc(2.5 * var(--vu)); padding-bottom: calc(7.5 * var(--vu)); }
.site-footer--large { padding-top: calc(3.5 * var(--vu)); padding-bottom: calc(1.5 * var(--vu)); }
.site-footer--slim  { padding-block: calc(1.4 * var(--vu)); }
}
@media (min-width: 901px) and (max-width: 1366px) and (pointer: coarse) {
.hero-split--full + .infocard-sec,
.hero-split--full + .methodik { padding-top: min(18vh, calc(10 * var(--vu))); }
.hero-split--full + .infocard-sec + .infocard-sec {
padding-top: min(18vh, calc(10 * var(--vu)));
padding-bottom: min(18vh, calc(10 * var(--vu)));
}
.hero-split--full + .methodik .method-cards { margin-top: min(9vh, calc(5 * var(--vu))); }
.hero-split--full + .methodik + .infocard-sec {
padding-top: min(12vh, calc(6.75 * var(--vu)));
padding-bottom: min(18vh, calc(10 * var(--vu)));
}
}
@media (max-width: 900px) {
.hero-split--full .hero-split__panel { justify-content: flex-start; }
.hero-split--full .hero-split__panel > .btn { margin-top: auto; }
}
@media (min-width: 901px) and (max-width: 1366px) and (pointer: coarse) {
.hero--blobs:not(.hero--about):not(.hero--ablauf) .hero__inner {
min-height: max(40rem, min(calc(100vh - 3.5rem), 53rem));
}
.hero--ablauf .hero__inner {
min-height: max(43.75rem, min(calc(100vh - 3.5rem), 53rem));
}
}
.intro-centered .text-more:not([hidden]) {
display: block;
width: -moz-fit-content;
width: fit-content;
margin-left: auto;
margin-right: auto;
}
@media (min-width: 901px) and (max-width: 1366px) and (pointer: coarse) {
.hero-split--full .hero-split__panel { min-height: 40.5rem; }
}
@media (min-width: 901px) and (max-width: 1366px) and (pointer: coarse) {
.portrait-intro { padding-top: min(calc(5 * var(--vu)), 4rem); }
}
@media (min-width: 901px) and (max-width: 1366px) and (pointer: coarse) {
.trustcard-sec { padding-top: min(calc(11 * var(--vu)), 8rem); }
}
@media (max-width: 900px) {
.site-footer__slim-person { white-space: nowrap; }
}
@media (max-width: 900px) {
.site-footer__slim-links { align-items: center; }
}
.contact__card-address a,
.contact__card-address a:link,
.contact__card-address a:visited,
.contact__card-address a:hover,
.contact__card-address a:active,
.site-footer a:not([class]),
.site-footer a:not([class]):link,
.site-footer a:not([class]):visited,
.site-footer a:not([class]):hover,
.site-footer a:not([class]):active {
color: inherit;
}
.contact__card-address a[href^="tel:"] {
color: inherit;
text-decoration: none;
}
@media (max-width: 900px) {
.contact__card-address a[href^="tel:"] { margin-block: -0.3rem; }
}
@media (max-width: 560px) {
.site-footer__slim-dot { display: none; }
}
.contact__card-address a[href^="tel:"] {
transition: color .2s ease;
-webkit-tap-highlight-color: transparent;
}
.contact__card-address a[href^="tel:"]:hover,
.contact__card-address a[href^="tel:"]:focus,
.contact__card-address a[href^="tel:"]:focus-visible,
.contact__card-address a[href^="tel:"]:active {
color: var(--terracotta);
}
[id] { scroll-margin-top: var(--anker-versatz, 4.5rem); }
.admin-bar [id] { scroll-margin-top: var(--anker-versatz, calc(4.5rem + 32px)); }
@media (max-width: 620px) {
.contact.is-letzte {
min-height: calc(100vh - var(--anker-versatz, 4.5rem) - var(--fusszeile-h, 0px) + 2px);
}
}
.map-consent {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: .35rem;
min-height: 16.25rem;
padding: 1.75rem 1.5rem;
border-radius: 0.75rem 0.75rem 0 0;
background: var(--sand);
box-shadow: inset 0 0 0 0.0625rem rgba(194,103,63,.28);
text-align: center;
}
.map-consent__btn {
display: flex;
flex-direction: column;
align-items: center;
gap: .55rem;
width: 100%;
padding: .5rem 0 .35rem;
background: none;
border: 0;
color: var(--terracotta);
cursor: pointer;
transition: color .2s ease;
-webkit-tap-highlight-color: transparent;
}
.map-consent__btn:hover,
.map-consent__btn:focus,
.map-consent__btn:focus-visible,
.map-consent__btn:active { color: #C2673F; }
.map-consent__pin { display: block; line-height: 0; }
.map-consent__titel {
font-family: var(--font-sans);
font-size: 1.05rem;
font-weight: 600;
letter-spacing: .01em;
color: var(--ink);
}
.map-consent__hinweis {
max-width: 24rem;
margin: 0;
font-size: .82rem;
line-height: 1.6;
color: rgba(46,42,37,.72);
}
.map-consent__hinweis a,
.map-consent__hinweis a:link,
.map-consent__hinweis a:visited {
color: var(--terracotta);
text-decoration: underline;
text-underline-offset: .2em;
}
.map-consent__hinweis a:hover,
.map-consent__hinweis a:focus { color: #C2673F; }
@media (max-width: 560px) {
.map-consent { min-height: 13.75rem; padding: 1.5rem 1.25rem; }
}
@media (max-width: 900px) {
.map-consent__titel { font-size: 1rem; }
.map-consent__hinweis { font-size: .8rem; }
}
.contact .fluentform .ff-t-container {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0 1rem;
margin: 0;
}
.contact .fluentform .ff-t-cell { min-width: 0; padding: 0; }
.contact .fluentform .ff-el-group { margin-bottom: 1rem; }
.contact .fluentform .ff-el-group:last-child { margin-bottom: 0; }
.contact .fluentform .ff-el-input--label { margin-bottom: .35rem; }
.contact .fluentform .ff-el-input--label label {
display: block;
font-family: var(--font-sans);
font-size: .82rem;
font-weight: 400;
line-height: 1.4;
color: rgba(46,42,37,.85);
}
.contact--compact .fluentform .ff-el-input--label label { color: rgba(255,255,255,.9); }
.contact .fluentform .ff-el-is-required { color: inherit; opacity: .7; }
.contact .fluentform input[type="text"],
.contact .fluentform input[type="email"],
.contact .fluentform input[type="tel"],
.contact .fluentform input[type="number"],
.contact .fluentform select,
.contact .fluentform textarea {
width: 100%;
min-width: 0;
height: auto;
padding: .7rem .8rem;
border: 0;
border-radius: 0.25rem;
background: rgba(255,255,255,.65);
box-shadow: none;
font-family: inherit;
font-size: 1rem;
line-height: 1.5;
color: var(--ink);
}
.contact .fluentform textarea { resize: vertical; }
.home .contact .fluentform textarea { min-height: 9.375rem; }
.contact--compact .fluentform input[type="text"],
.contact--compact .fluentform input[type="email"],
.contact--compact .fluentform input[type="tel"],
.contact--compact .fluentform input[type="number"],
.contact--compact .fluentform select,
.contact--compact .fluentform textarea {
background: #FAF4EC;
border: 0.0625rem solid #C97B58;
border-radius: 0.625rem 0.625rem 0 0;
}
.contact--compact.contact--bg-terracotta .fluentform input[type="text"],
.contact--compact.contact--bg-terracotta .fluentform input[type="email"],
.contact--compact.contact--bg-terracotta .fluentform input[type="tel"],
.contact--compact.contact--bg-terracotta .fluentform input[type="number"],
.contact--compact.contact--bg-terracotta .fluentform select,
.contact--compact.contact--bg-terracotta .fluentform textarea { border-color: #798C67; }
.contact .fluentform input:focus-visible,
.contact .fluentform select:focus-visible,
.contact .fluentform textarea:focus-visible {
outline: 0.125rem solid var(--terracotta-soft);
outline-offset: 0.15rem;
}
.contact .fluentform .ff-el-form-check { margin-top: .2rem; }
.contact .fluentform .ff-el-form-check-label {
display: flex;
align-items: flex-start;
gap: .6rem;
font-size: .82rem;
line-height: 1.6;
color: rgba(46,42,37,.85);
cursor: pointer;
}
.contact--compact .fluentform .ff-el-form-check-label { color: rgba(255,255,255,.92); }
.contact .fluentform .ff-el-form-check-input {
flex: 0 0 auto;
width: 1.05rem;
height: 1.05rem;
margin: .18rem 0 0;
accent-color: var(--terracotta);
}
.contact .fluentform .ff-el-form-check-label a { text-decoration: underline; text-underline-offset: .2em; color: inherit; }
.contact .fluentform .ff-btn-submit {
width: 100%;
padding: .9em 1.4em;
border: 0;
border-radius: 0.625rem;
font-family: var(--font-sans);
font-weight: 700;
text-transform: uppercase;
font-size: .8rem;
letter-spacing: .06em;
line-height: 1.2;
cursor: pointer;
transition: box-shadow .2s ease;
background: var(--sage) !important;
color: var(--cream) !important;
}
.contact--bg-sage .fluentform .ff-btn-submit       { background: rgba(255,255,255,.65) !important; color: var(--ink) !important; }
.contact--bg-terracotta .fluentform .ff-btn-submit { background: var(--cream) !important; color: var(--terracotta) !important; }
.contact .fluentform .ff-btn-submit:hover { box-shadow: inset 0 0 0 62.4375rem rgba(0,0,0,.1); }
.contact .fluentform .error,
.contact .fluentform .text-danger,
.contact .fluentform .ff-el-is-error .error-text {
margin-top: .3rem;
font-size: .78rem;
line-height: 1.5;
color: #B4472A;
}
.contact--compact .fluentform .error,
.contact--compact .fluentform .text-danger { color: #FAF4EC; font-weight: 600; }
.contact .ff-message-success {
padding: 1rem 1.1rem;
border: 0;
border-radius: 0.5rem;
background: rgba(255,255,255,.7);
color: var(--ink);
font-size: .95rem;
line-height: 1.6;
}
.contact--compact .ff-message-success { background: #FAF4EC; }
@media (max-width: 900px) {
.contact .fluentform .ff-t-container { grid-template-columns: 1fr; }
.contact .fluentform input[type="text"],
.contact .fluentform input[type="email"],
.contact .fluentform input[type="tel"],
.contact .fluentform input[type="number"],
.contact .fluentform select,
.contact .fluentform textarea { font-size: max(1rem, 16px); }
.contact .fluentform .ff-btn-submit { font-size: .75rem; letter-spacing: .05em; }
}
.contact--large .fluentform input[type="text"],
.contact--large .fluentform input[type="email"],
.contact--large .fluentform input[type="tel"],
.contact--large .fluentform input[type="number"],
.contact--large .fluentform select,
.contact--large .fluentform textarea {
background: #FAF4EC;
border: 0.0625rem solid #C97B58;
border-radius: 0.625rem 0.625rem 0 0;
}
.contact .fluentform textarea { min-height: 9.375rem; }
.contact--large .contact__aside { align-self: stretch; }
.contact--large .contact__aside .contact__card { flex: 1; display: flex; }
.contact--large .contact__aside .contact__card-inner { flex: 1; }
.contact .fluentform .ff-btn-submit { border-radius: 0.625rem !important; }
@media (min-width: 901px) {
body:not(.home) .contact--large .contact__aside { margin-top: 2.975rem; }
}
.contact .fluentform .ff-el-group,
.contact .fluentform .ff-el-input--label,
.contact .fluentform .ff-name-field-wrapper,
.contact .fluentform .ff-t-container,
.contact .fluentform .ff-t-cell,
.contact .fluentform label { opacity: 1 !important; }
.contact .fluentform label:not(.ff-el-form-check-label),
.contact .fluentform .ff-el-form-sub-label,
.contact .fluentform .ff-el-input--label label {
color: rgba(46,42,37,.85) !important;
}
.contact--compact .fluentform label:not(.ff-el-form-check-label),
.contact--compact .fluentform .ff-el-form-sub-label,
.contact--compact .fluentform .ff-el-input--label label {
color: rgba(255,255,255,.9) !important;
}
.legal { background: #FDFBF6; padding-top: calc(4.5 * var(--vu)); padding-bottom: calc(4 * var(--vu)); }
.legal__headline {
max-width: 46rem;
margin: 0 0 2rem;
font-family: var(--font-serif);
font-size: clamp(1.9rem, 2.6vw, 2.4rem);
font-weight: 500;
line-height: 1.2;
color: var(--ink);
}
.legal__body {
max-width: 46rem;
color: rgba(46,42,37,.85);
font-size: 1rem;
line-height: 1.85;
}
.legal__body > :first-child { margin-top: 0; }
.legal__body h2 {
font-family: var(--font-serif);
font-size: 1.6rem;
font-weight: 500;
line-height: 1.25;
color: var(--ink);
margin: 2.6rem 0 .8rem;
}
.legal__body h3 {
font-family: var(--font-sans);
font-size: 1.05rem;
font-weight: 700;
color: var(--ink);
margin: 1.9rem 0 .5rem;
}
.legal__body h4 {
font-family: var(--font-sans);
font-size: .95rem;
font-weight: 700;
color: var(--ink);
margin: 1.4rem 0 .4rem;
}
.legal__body p { margin: 0 0 1.1rem; }
.legal__body ul,
.legal__body ol { margin: 0 0 1.1rem; padding-left: 1.3rem; }
.legal__body li { margin-bottom: .45rem; }
.legal__body li::marker { color: rgba(46,42,37,.5); }
.legal__body strong { font-weight: 700; color: var(--ink); }
.legal__body a,
.legal__body a:link,
.legal__body a:visited {
color: var(--terracotta);
text-decoration: underline;
text-underline-offset: .2em;
overflow-wrap: anywhere;
}
.legal__body a:hover,
.legal__body a:focus { color: #C2673F; }
.legal__body hr {
border: 0;
border-top: 0.0625rem solid rgba(46,42,37,.15);
margin: 2.2rem 0;
}
.legal__body .legal-table,
.legal__body figure.wp-block-table { overflow-x: auto; margin: 0 0 1.4rem; }
.legal__body table {
width: 100%;
border-collapse: collapse;
font-size: .95rem;
}
.legal__body th,
.legal__body td {
text-align: left;
vertical-align: top;
padding: .55rem .7rem;
border-bottom: 0.0625rem solid rgba(46,42,37,.12);
}
.legal__body th { font-weight: 700; color: var(--ink); }
@media (max-width: 900px) {
.legal { padding-top: 2.75rem; padding-bottom: 2.5rem; }
.legal__headline { font-size: 1.8rem; margin-bottom: 1.5rem; }
.legal__body { line-height: 1.8; }
.legal__body h2 { font-size: 1.45rem; margin-top: 2.2rem; }
.legal__body h3 { font-size: 1rem; }
}
@media (min-width: 901px) {
.contact .fluentform input[type="text"],
.contact .fluentform input[type="email"],
.contact .fluentform input[type="tel"],
.contact .fluentform input[type="number"],
.contact .fluentform select,
.contact .fluentform textarea { font-size: .85rem; }
}