:root {
  --navy:#142b40;
  --ink:#243544;
  --muted:#5b6971;
  --cream:#faf8f3;
  --gold:#a7874d;
  --line:#dce1e0;
  --soft:#f0f2ef;
  --sand:#e9e3d7;
  --serif:Georgia,'Times New Roman',serif;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:16px;
  color:var(--ink);
  background:var(--cream);
  color-scheme:light;
  font-synthesis:none
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px
}
body {
  margin:0;
  line-height:1.65
}
body.menu-open {
  overflow:hidden
}
h1,h2,h3,p,figure {
  margin:0
}
h1,h2 {
  font-family:var(--serif);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.035em;
  color:var(--navy)
}
h1 {
  font-size:clamp(2.9rem,4.9vw,4.5rem)
}
h2 {
  font-size:clamp(2.1rem,3.5vw,3.3rem)
}
h3 {
  font-size:1.28rem;
  line-height:1.3;
  font-weight:550;
  letter-spacing:-.025em;
  color:var(--navy)
}
p {
  color:var(--muted)
}
p+p {
  margin-top:1.1rem
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button {
  cursor:pointer
}
img,svg {
  max-width:100%;
  display:block
}
button:disabled {
  cursor:not-allowed;
  opacity:.55
}
fieldset {
  margin:0;
  padding:0;
  border:0;
  min-width:0
}
ul,ol {
  padding:0;
  margin:0
}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:5px
}
[hidden] {
  display:none!important
}
::selection {
  background:#e2d3b8
}
.wrap {
  width:min(1240px,calc(100% - 96px));
  margin-inline:auto
}
.sr-only {
  position:absolute!important;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link {
  position:fixed;
  left:16px;
  top:10px;
  z-index:100;
  background:var(--navy);
  color:#fff;
  padding:12px 20px;
  transform:translateY(-150%)
}
.skip-link:focus {
  transform:translateY(0)
}
.site-header {
  background:var(--cream);
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:30
}
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:104px;
  gap:35px
}
.brand {
  display:flex;
  align-items:center;
  gap:13px;
  flex-shrink:0
}
.brand img {
  width:42px;
  height:42px;
  border-radius:3px;
  object-fit:contain
}
.brand>span {
  font-size:.88rem;
  font-weight:650;
  line-height:1.2;
  letter-spacing:.055em;
  color:var(--navy)
}
.brand small {
  display:block;
  margin-top:7px;
  font-size:.59rem;
  font-weight:450;
  letter-spacing:.19em;
  color:var(--muted)
}
.site-nav {
  display:flex;
  align-items:center;
  gap:29px;
  font-size:.84rem
}
.site-nav>a:not(.button) {
  padding:14px 0
}
.site-nav [aria-current=page],.nav-dropdown summary.is-current {
  text-decoration:underline;
  text-decoration-color:var(--gold);
  text-underline-offset:9px
}
.site-nav a:hover {
  color:#735820
}
.site-nav .button {
  padding:14px 19px;
  min-height:48px;
  font-size:.78rem
}
.nav-dropdown {
  position:relative
}
.nav-dropdown summary {
  list-style:none;
  display:flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
  padding:14px 0
}
.nav-dropdown summary::-webkit-details-marker {
  display:none
}
.nav-dropdown summary svg {
  width:13px;
  stroke:currentColor;
  stroke-width:1.6;
  fill:none
}
.nav-dropdown[open] summary svg {
  transform:rotate(180deg)
}
.nav-dropdown__panel {
  position:absolute;
  top:100%;
  left:-25px;
  min-width:300px;
  padding:23px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 18px 45px #142b4010;
  border-radius:3px
}
.nav-dropdown__panel>p {
  font-size:.65rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  padding:0 5px 13px
}
.nav-dropdown__panel a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 5px;
  border-top:1px solid #edf0ee;
  font-size:.84rem;
  gap:28px
}
.nav-dropdown__panel .nav-dropdown__more {
  color:var(--muted);
  font-size:.75rem
}
.menu-toggle {
  display:none
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  min-height:53px;
  padding:15px 23px;
  border:1px solid var(--navy);
  border-radius:3px;
  background:var(--navy);
  color:#fff;
  font-size:.84rem;
  font-weight:580;
  line-height:1.4;
  text-align:center;
  transition:background .2s,color .2s,transform .2s
}
.button>span {
  font-size:1.15em;
  font-weight:400
}
.button:hover {
  background:#25445c;
  color:#fff;
  transform:translateY(-2px)
}
.button--outline {
  background:transparent;
  color:var(--navy)
}
.button--outline:hover {
  background:#eceeea;
  color:var(--navy)
}
.actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px;
  margin-top:30px
}
.text-link {
  display:inline-flex;
  gap:15px;
  align-items:center;
  color:var(--navy);
  font-size:.87rem;
  font-weight:550;
  border-bottom:1px solid #bdc7cd;
  padding-bottom:5px
}
.text-link:hover {
  border-color:var(--gold)
}
.eyebrow {
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:.64rem;
  font-weight:650;
  color:var(--muted);
  line-height:1.6;
  margin-bottom:22px
}
.hero {
  padding-block:68px 60px;
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:65px;
  align-items:center
}
.hero__copy h1 {
  font-size:clamp(2.9rem,4.3vw,4.2rem)
}
.hero__copy h1 em {
  font-style:normal;
  color:#315067
}
.hero__intro {
  font-size:1.06rem;
  line-height:1.8;
  margin-top:27px;
  max-width:590px
}
.hero__note {
  font-size:.76rem;
  margin-top:21px
}
.photo-placeholder {
  position:relative;
  width:100%;
  min-width:0;
  min-height:405px;
  background:var(--sand);
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:3px;
  padding:44px;
  isolation:isolate
}
.photo-placeholder--portrait {
  aspect-ratio:4/4.1
}
.photo-placeholder__content {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  width:100%;
  gap:24px
}
.photo-placeholder__title {
  width:100%;
  overflow-wrap:anywhere;
  hyphens:auto;
  font-family:var(--serif);
  font-size:clamp(2.3rem,3vw,3.3rem);
  line-height:1.05;
  letter-spacing:-.025em;
  color:var(--navy);
  max-width:230px
}
.photo-placeholder__caption {
  font-size:.78rem;
  line-height:1.7;
  max-width:220px;
  margin-top:20px;
  color:#646a69
}
.photo-placeholder figcaption {
  position:absolute;
  left:44px;
  bottom:23px;
  font-size:.56rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  background:var(--cream);
  padding:4px 9px;
  color:var(--muted)
}
.photo-placeholder--landscape {
  min-height:370px;
  aspect-ratio:1.2;
  background:#e8e7df
}
.photo-placeholder--architecture {
  aspect-ratio:1.1;
  min-height:345px;
  background:#eae8df
}
.photo-placeholder__content svg {
  width:85px;
  height:75px;
  stroke:var(--gold);
  stroke-width:1.2;
  margin-bottom:8px
}
.photo-placeholder--architecture .photo-placeholder__title,.photo-placeholder--landscape .photo-placeholder__title {
  font-size:2.3rem;
  max-width:320px
}
.proof-strip {
  display:flex;
  justify-content:space-around;
  align-items:center;
  gap:20px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding-block:24px;
  font-size:.79rem;
  font-weight:550
}
.proof-strip span {
  flex:1;
  text-align:center
}
.proof-strip span+span {
  border-left:1px solid var(--line)
}
.section {
  padding-block:102px
}
.section--compact {
  padding-block:65px
}
.section--soft {
  background:var(--soft)
}
.section--navy {
  background:var(--navy);
  color:#fff
}
.section--navy h2,.section--navy h3,.section--navy .text-link {
  color:#fff
}
.section--navy p {
  color:#d3dce0
}
.section--navy .eyebrow {
  color:#c7b28c
}
.section-heading {
  max-width:680px;
  margin-bottom:43px
}
.section-heading .section-intro {
  margin-top:23px;
  max-width:555px
}
.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px;
  align-items:start
}
.split .section-heading {
  margin:0
}
.split>div>h2+p {
  margin-top:27px
}
.split>div>p+.text-link {
  margin-top:26px
}
.split--person {
  align-items:center;
  gap:94px
}
.large-copy {
  font-size:1.2rem;
  line-height:1.7
}
.copy-note {
  font-size:.75rem!important;
  line-height:1.7!important;
  border-left:2px solid #cab58c;
  padding-left:14px;
  margin-top:22px!important
}
.path-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px
}
.path-card {
  background:#eeece4;
  border:1px solid #e4e0d5;
  padding:35px 38px 39px;
  border-radius:3px;
  display:grid;
  grid-template-columns:95px 1fr;
  gap:31px;
  transition:transform .2s
}
.path-card:hover {
  transform:translateY(-3px)
}
.path-card h3 {
  font-family:var(--serif);
  font-size:2.35rem;
  line-height:1.12;
  font-weight:400;
  letter-spacing:-.03em
}
.path-card p {
  font-size:.88rem;
  line-height:1.8;
  margin-top:22px;
  max-width:310px
}
.path-card .text-link {
  margin-top:26px
}
.more-paths {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  margin-top:24px
}
.more-paths a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:.87rem;
  border-bottom:1px solid var(--line);
  padding:18px 0
}
.more-paths a>span:first-child {
  display:block;
  font-size:.72rem;
  color:var(--muted);
  flex:1
}
.supporting-copy>div {
  display:flex;
  gap:28px;
  padding:24px 0;
  border-bottom:1px solid var(--line)
}
.supporting-copy>div:first-child {
  padding-top:0
}
.supporting-copy>div>span {
  font-family:var(--serif);
  font-size:1.6rem;
  color:var(--gold);
  line-height:1.3;
  flex-shrink:0
}
.supporting-copy h3 {
  font-size:1.08rem
}
.supporting-copy p {
  font-size:.9rem;
  margin-top:10px
}
.process-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:65px;
  list-style:none;
  margin-top:54px
}
.process-grid p {
  margin-top:18px;
  font-size:.9rem
}
.service-note {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:50px;
  margin-top:60px;
  padding-top:28px;
  border-top:1px solid #365064;
  font-size:.83rem
}
.service-note>span {
  font-family:var(--serif);
  font-size:1.25rem;
  color:#e0cba2
}
.tool-grid {
  display:grid;
  grid-template-columns:1.65fr 1fr;
  gap:30px
}
.calculator-teaser {
  border:1px solid var(--line);
  padding:42px;
  background:#fff;
  border-radius:3px
}
.calculator-teaser h2 {
  font-size:2.45rem
}
.calculator-teaser>p:not(.eyebrow) {
  margin-top:22px;
  max-width:515px;
  font-size:.9rem
}
.teaser-result {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  background:var(--cream);
  padding:22px 25px;
  margin:28px 0
}
.teaser-result>div {
  display:flex;
  flex-direction:column;
  gap:5px
}
.teaser-result span {
  font-size:.65rem;
  color:var(--muted)
}
.teaser-result strong {
  font-family:var(--serif);
  font-size:2.2rem;
  font-weight:400
}
.teaser-result small {
  grid-column:1/-1;
  font-size:.59rem;
  color:var(--muted);
  margin-top:8px
}
.offer-teaser {
  background:#eae6dc;
  padding:42px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  border-radius:3px
}
.offer-teaser h3 {
  font-family:var(--serif);
  font-size:2.5rem;
  font-weight:400;
  line-height:1.1
}
.offer-teaser p:not(.eyebrow) {
  font-size:.9rem;
  margin-top:22px
}
.offer-teaser .text-link {
  margin-top:32px
}
.faq {
  border-bottom:1px solid #cfd6d4
}
.faq:first-child {
  border-top:1px solid #cfd6d4
}
.faq summary {
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  font-size:.98rem;
  font-weight:500;
  line-height:1.5;
  padding:22px 0;
  cursor:pointer;
  color:var(--navy)
}
.faq summary::-webkit-details-marker {
  display:none
}
.faq summary>span {
  font-size:1.4rem;
  line-height:1;
  font-weight:300
}
.faq[open] summary>span {
  transform:rotate(45deg)
}
.faq__answer {
  padding:0 33px 24px 0;
  font-size:.9rem
}
.region {
  padding-block:72px;
  display:grid;
  grid-template-columns:160px 1fr 150px;
  gap:42px;
  align-items:start
}
.region h2 {
  font-size:2.5rem
}
.region p {
  font-size:.9rem;
  max-width:650px;
  margin-top:24px
}
.contact-cta {
  background:#e8e3d7;
  padding-block:64px
}
.contact-cta__inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:70px
}
.contact-cta__inner>div:first-child {
  max-width:760px
}
.contact-cta h2 {
  font-size:2.7rem;
  max-width:690px
}
.contact-cta p:not(.eyebrow) {
  font-size:.9rem;
  margin-top:20px
}
.contact-cta__inner>div:last-child {
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:15px
}
.contact-cta__inner>div:last-child>span {
  font-size:.63rem;
  color:var(--muted)
}
.site-footer {
  padding-top:68px;
  background:var(--navy);
  color:#d4dee5
}
.footer-top {
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr 1.1fr;
  gap:50px;
  padding-bottom:55px
}
.brand--footer>span {
  color:#fff
}
.brand--footer small {
  color:#b9c9d1
}
.footer-top>div>p {
  color:#bccad3;
  font-size:.79rem;
  line-height:1.8;
  margin-top:22px
}
.footer-top>div>h2 {
  font-family:inherit;
  font-size:.78rem;
  letter-spacing:0;
  font-weight:600;
  color:#fff;
  margin-bottom:20px
}
.footer-top>div>a:not(.brand) {
  display:block;
  font-size:.76rem;
  color:#d2dde4;
  margin-top:11px
}
.footer-top a:hover {
  color:#e4c992
}
.footer-bottom {
  padding-block:25px;
  border-top:1px solid #365064;
  display:flex;
  justify-content:space-between;
  gap:24px;
  font-size:.62rem;
  color:#c2cdd4
}
.footer-bottom>div {
  display:flex;
  flex-wrap:wrap;
  gap:23px
}
.breadcrumb {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  font-size:.68rem;
  padding-top:29px;
  color:var(--muted)
}
.breadcrumb a {
  border-bottom:1px solid #cbd2d3
}
.breadcrumb>span:last-child {
  color:var(--navy)
}
.page-hero {
  display:grid;
  grid-template-columns:1.35fr 1fr;
  gap:85px;
  align-items:center;
  padding-block:54px 80px
}
.page-hero h1 {
  font-size:clamp(2.7rem,4.2vw,4rem)
}
.page-hero>div>p:not(.eyebrow) {
  max-width:590px
}
.page-hero>div>p+.button {
  margin-top:27px
}
.page-hero .photo-placeholder {
  min-height:365px
}
.editorial-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:38px
}
.editorial-grid article {
  border-top:1px solid #cfd6d1;
  padding-top:26px
}
.editorial-grid h3 {
  font-family:var(--serif);
  font-size:1.75rem;
  font-weight:400;
  line-height:1.2
}
.editorial-grid article>p:not(.eyebrow) {
  font-size:.9rem;
  margin-top:20px
}
.editorial-grid .eyebrow {
  color:#7b602f
}
.steps-list {
  list-style:none
}
.steps-list li {
  display:flex;
  gap:28px;
  padding-block:25px;
  border-bottom:1px solid var(--line)
}
.steps-list li:first-child {
  padding-top:0
}
.steps-list li>span {
  font-family:var(--serif);
  font-size:1.7rem;
  color:var(--gold);
  flex-shrink:0;
  line-height:1.2
}
.steps-list p {
  font-size:.9rem;
  margin-top:12px
}
.statement {
  padding:45px 55px;
  background:var(--navy);
  border-radius:3px
}
.statement p {
  font-family:var(--serif);
  font-size:2.1rem;
  color:#fff;
  line-height:1.3;
  max-width:900px
}
.statement span {
  display:block;
  font-size:.75rem;
  color:#d4dee5;
  margin-top:22px
}
.related-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px
}
.related-heading h2 {
  font-size:2rem
}
.related-heading .eyebrow {
  margin:0
}
.related-links {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin-top:30px
}
.related-link {
  display:flex;
  justify-content:space-between;
  gap:35px;
  padding:20px 24px;
  border:1px solid var(--line);
  background:#fff;
  border-radius:3px;
  font-size:.87rem;
  flex:1;
  min-width:220px
}
.related-link:hover {
  border-color:var(--gold)
}
.timeline {
  list-style:none
}
.timeline li {
  display:grid;
  grid-template-columns:110px 1fr;
  gap:20px;
  padding-block:25px;
  border-bottom:1px solid var(--line)
}
.timeline li:first-child {
  padding-top:0
}
.timeline li>span {
  font-family:var(--serif);
  color:#7b602f;
  font-size:1.35rem
}
.timeline p {
  font-size:.9rem;
  margin-top:12px
}
.intro {
  padding-block:66px 65px
}
.intro>p:not(.eyebrow) {
  font-size:1.04rem;
  line-height:1.85;
  max-width:780px;
  margin-top:27px
}
.intro--center {
  text-align:center
}
.intro--center>p:not(.eyebrow) {
  margin-inline:auto;
  max-width:755px
}
.intro--center>.button {
  margin-top:30px
}
.intro .actions {
  justify-content:center
}
.not-found {
  min-height:65vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center
}
.calculator-layout {
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:34px;
  padding-bottom:20px;
  align-items:start
}
.form-card {
  background:#fff;
  border:1px solid var(--line);
  padding:38px;
  border-radius:4px;
  min-width:0
}
.form-heading {
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:15px
}
.draft-tag {
  display:inline-flex;
  font-size:.57rem;
  line-height:1.5;
  background:var(--soft);
  color:var(--muted);
  padding:5px 8px;
  border-radius:2px;
  white-space:nowrap
}
.form-card h2 {
  font-size:2rem;
  line-height:1.2;
  margin-bottom:18px
}
.form-card>.form-hint {
  margin-bottom:26px
}
.field {
  display:flex;
  flex-direction:column;
  gap:9px;
  margin-bottom:24px
}
.field label {
  font-size:.79rem;
  color:var(--navy);
  font-weight:550
}
.field label>span {
  color:var(--muted);
  font-size:.65rem;
  font-weight:400
}
.field input,.field select {
  width:100%;
  min-width:0;
  height:50px;
  border:1px solid #cfd7d7;
  border-radius:3px;
  background:var(--cream);
  color:var(--ink);
  padding:10px 13px;
  font-size:.86rem;
  line-height:1.4;
  box-shadow:none
}
.field select {
  padding-right:30px
}
.field input::placeholder {
  font-size:.78rem;
  color:#6b7479;
  opacity:1
}
.field input[aria-invalid=true],.field select[aria-invalid=true] {
  border-color:#984b36
}
.field-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
.input-unit {
  position:relative
}
.input-unit input {
  padding-right:75px
}
.input-unit>span:not(.field-error) {
  position:absolute;
  right:13px;
  top:14px;
  font-size:.73rem;
  color:var(--muted);
  pointer-events:none
}
.form-details {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-bottom:26px
}
.form-details summary {
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 0;
  font-size:.8rem;
  color:var(--navy);
  cursor:pointer
}
.form-details summary::-webkit-details-marker {
  display:none
}
.form-details summary svg {
  width:14px;
  stroke:currentColor;
  stroke-width:1.5
}
.form-details[open] summary {
  margin-bottom:8px
}
.form-details>.form-hint {
  margin-bottom:22px
}
.form-hint {
  font-size:.73rem;
  line-height:1.7
}
.form-hint a {
  text-decoration:underline;
  text-underline-offset:3px
}
.form-card fieldset>.form-hint {
  margin-bottom:24px
}
.field>.form-hint {
  margin:0
}
.result-card {
  position:sticky;
  top:28px;
  background:var(--navy);
  color:#fff;
  border-radius:4px;
  padding:38px
}
.result-card .eyebrow {
  color:#cfbb92
}
.result-card h2 {
  font-size:2.4rem;
  color:#fff
}
.result-primary {
  border-top:1px solid #365064;
  border-bottom:1px solid #365064;
  padding:25px 0;
  margin-top:32px
}
.result-primary>span {
  font-size:.79rem;
  color:#d5dfe5
}
.result-primary strong {
  font-family:var(--serif);
  font-size:4.5rem;
  font-weight:400;
  display:block;
  line-height:1.2;
  margin-top:8px
}
.result-primary strong small {
  font-size:2.3rem;
  color:#c4b18d
}
.result-list {
  margin:0
}
.result-list>div {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:22px 0;
  border-bottom:1px solid #365064
}
.result-list dt {
  font-size:.79rem;
  line-height:1.6;
  flex:1
}
.result-list dt small {
  display:block;
  color:#c0cdd5;
  font-size:.67rem
}
.result-list dd {
  font-family:var(--serif);
  font-size:1.55rem;
  margin:0;
  white-space:nowrap
}
.result-note {
  color:#c1cfd8;
  font-size:.73rem;
  line-height:1.8;
  margin-top:26px
}
.result-card .text-link {
  color:#fff;
  font-size:.76rem;
  margin-top:26px
}
.result-free {
  display:block;
  color:#d2bd95;
  font-size:.63rem;
  margin-top:21px
}
.demo-message,.demo-feedback {
  border:1px solid #bfcdbf;
  background:#eef3eb;
  color:#294331;
  padding:15px 17px;
  font-size:.8rem;
  margin-top:20px;
  border-radius:3px
}
.result-card .demo-message {
  background:#243f51;
  border-color:#526c75;
  color:#fff
}
.result-card .demo-message p {
  color:inherit;
  font-size:.77rem
}
.result-card .demo-feedback {
  background:transparent;
  color:#fff;
  border:0;
  padding:0;
  margin:0
}
.field-error {
  display:block;
  color:#8a322a;
  font-size:.73rem;
  line-height:1.5;
  margin-top:1px
}
.contact-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  padding-block:55px 90px;
  align-items:start
}
.contact-copy {
  padding-top:20px
}
.contact-copy h1 {
  font-size:3.8rem
}
.contact-copy .hero__intro {
  max-width:470px
}
.contact-person {
  display:flex;
  align-items:center;
  gap:16px;
  margin-top:35px
}
.initials {
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border:1px solid #c9bfa8;
  color:#735d33;
  font-family:var(--serif);
  font-size:1.2rem;
  border-radius:50%
}
.contact-person>div {
  display:flex;
  flex-direction:column
}
.contact-person strong {
  font-weight:550;
  color:var(--navy);
  font-size:.9rem
}
.contact-person>div>span {
  font-size:.73rem;
  color:var(--muted)
}
.contact-links {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:19px;
  margin-top:32px
}
.contact-links .text-link {
  font-size:.93rem
}
.contact-copy .copy-note {
  max-width:430px
}
.contact-ways {
  border-top:1px solid var(--line);
  padding-top:26px;
  margin-top:36px
}
.contact-ways h2 {
  font-family:inherit;
  font-size:1rem;
  font-weight:550;
  letter-spacing:0
}
.contact-ways p {
  font-size:.84rem;
  margin-top:13px
}
.demo-label {
  font-size:.73rem;
  line-height:1.7;
  padding:12px 15px;
  background:var(--soft);
  margin-bottom:28px
}
.contact-method {
  margin:0 0 26px;
  display:flex;
  gap:12px;
  flex-wrap:wrap
}
.contact-method legend {
  font-size:.79rem;
  color:var(--navy);
  font-weight:550;
  margin-bottom:12px
}
.contact-method label {
  position:relative;
  cursor:pointer
}
.contact-method input {
  position:absolute;
  opacity:0;
  width:100%;
  height:100%;
  margin:0;
  cursor:pointer
}
.contact-method span {
  display:block;
  border:1px solid var(--line);
  border-radius:3px;
  padding:11px 23px;
  font-size:.82rem;
  background:var(--cream)
}
.contact-method input:checked+span {
  background:var(--navy);
  color:#fff;
  border-color:var(--navy)
}
.contact-method input:focus-visible+span {
  outline:2px solid var(--gold);
  outline-offset:4px
}
.contact-form .button {
  width:100%
}
.contact-form textarea {
  display:block;
  width:100%;
  min-height:120px;
  resize:vertical;
  border:1px solid #cfd7d7;
  border-radius:3px;
  background:var(--cream);
  color:var(--ink);
  padding:12px 13px;
  font-size:.86rem;
  line-height:1.5
}
.contact-form textarea[aria-invalid=true] { border-color:#984b36; }
.contact-availability { padding:14px 16px; background:var(--cream); border-left:2px solid var(--gold); font-size:.8rem; line-height:1.6; margin-bottom:24px; }
.contact-security:not(:empty) { margin-bottom:22px; min-height:65px; }
.contact-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.contact-retry { margin-top:20px; text-align:left; }
.contact-form [data-contact-fields]:disabled { opacity:.65; }
.contact-form [data-form-status]:focus { outline:2px solid var(--gold); outline-offset:5px; }
.legal-page {
  padding-block:60px 95px;
  max-width:900px
}
.legal-page h1 {
  margin-bottom:33px
}
.legal-alert {
  border-left:3px solid var(--gold);
  padding:25px 30px;
  background:#eeebe3;
  margin-bottom:44px
}
.legal-alert strong {
  font-weight:600
}
.legal-alert p {
  font-size:.9rem;
  margin-top:10px
}
.legal-page h2 {
  font-size:2rem;
  margin-bottom:22px
}
.page-legal .legal-page > p + h2 {
  margin-top:var(--heading-gap, 40px)
}
.page-legal .legal-page a {
  overflow-wrap:anywhere
}
.legal-list {
  list-style:none;
  margin-top:35px
}
.legal-list li {
  padding:24px 0;
  border-top:1px solid var(--line)
}
.legal-list li h3 {
  font-size:1.08rem
}
.legal-list p {
  font-size:.85rem;
  margin-top:8px
}
.legal-page>.text-link {
  margin-top:25px
}
.table-scroll {
  overflow-x:auto;
  max-width:100%
}
.table-scroll table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:.78rem;
  min-width:650px
}
.table-scroll th {
  font-weight:550;
  color:var(--navy);
  background:var(--soft);
  padding:14px
}
.table-scroll td {
  padding:17px 14px;
  border-bottom:1px solid var(--line)
}
.table-scroll caption {
  text-align:left;
  font-size:.68rem;
  color:var(--muted);
  padding-bottom:12px
}
@media(max-width:1120px) {
  .wrap {
    width:calc(100% - 64px)
  }
  .site-nav {
    gap:19px
  }
  .brand>span {
    font-size:.77rem
  }
  .brand img {
    width:36px;
    height:36px
  }
  .site-nav .button {
    padding-inline:13px
  }
  .hero {
    gap:40px
  }
  .hero__copy h1 {
    font-size:3.3rem
  }
  .hero .button {
    font-size:.75rem;
    padding-inline:17px;
    gap:12px
  }
  .split {
    gap:55px
  }
  .path-card {
    grid-template-columns:1fr;
    padding:30px;
    gap:24px
  }
  .path-card h3 {
    font-size:2.1rem
  }
  .path-card p {
    max-width:none
  }
  .more-paths a {
    flex-wrap:wrap
  }
  .more-paths a>span:first-child {
    flex-basis:100%
  }
  .more-paths a>span:last-child {
    margin-left:auto
  }
  .process-grid {
    gap:35px
  }
  .region {
    grid-template-columns:120px 1fr 100px;
    gap:24px
  }
  .footer-top {
    gap:30px
  }
  .editorial-grid {
    grid-template-columns:repeat(2,1fr);
    gap:38px
  }
  .page-hero {
    gap:50px
  }
  .contact-layout {
    gap:50px
  }
  .contact-copy h1 {
    font-size:3.2rem
  }
  .form-card,.result-card {
    padding:28px
  }
  .calculator-layout {
    gap:23px
  }
  .field-grid {
    gap:15px
  }
}
@media(max-width:900px) {
  .wrap {
    width:calc(100% - 44px)
  }
  .header-inner {
    min-height:84px;
    flex-wrap:wrap;
    gap:0
  }
  .menu-toggle:not([hidden]) {
    display:flex;
    align-items:center;
    gap:13px;
    background:none;
    border:1px solid var(--line);
    border-radius:3px;
    min-height:44px;
    padding:10px 13px;
    color:var(--navy);
    font-size:.78rem
  }
  .menu-icon {
    width:17px;
    height:12px;
    border-top:1px solid currentColor;
    border-bottom:1px solid currentColor;
    position:relative
  }
  .menu-icon::after {
    content:'';
    position:absolute;
    width:100%;
    height:1px;
    top:5px;
    background:currentColor
  }
  .site-nav {
    width:100%;
    flex-basis:100%;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:0 0 24px;
    font-size:1rem
  }
  .js .site-nav {
    display:none
  }
  .js .menu-open .site-nav {
    display:flex;
    max-height:calc(100svh - 150px);
    overflow-y:auto
  }
  .menu-open .menu-icon {
    border:0
  }
  .menu-open .menu-icon::before,.menu-open .menu-icon::after {
    content:'';
    position:absolute;
    width:100%;
    height:1px;
    top:5px;
    background:currentColor;
    transform:rotate(45deg)
  }
  .menu-open .menu-icon::after {
    transform:rotate(-45deg)
  }
  .site-nav>a:not(.button),.nav-dropdown>summary {
    padding:15px 0;
    border-bottom:1px solid var(--line)
  }
  .site-nav .button {
    margin-top:22px;
    align-self:flex-start;
    padding:14px 23px;
    font-size:.84rem
  }
  .nav-dropdown__panel {
    position:static;
    box-shadow:none;
    border:0;
    padding:12px 18px 20px;
    background:#f0eee7;
    min-width:0
  }
  .nav-dropdown__panel>p {
    padding-top:8px
  }
  .hero {
    padding-block:48px;
    gap:34px;
    grid-template-columns:1.2fr 1fr
  }
  .hero__copy h1 {
    font-size:2.8rem
  }
  .hero__intro {
    font-size:.95rem;
    margin-top:24px
  }
  .hero .actions {
    flex-direction:column;
    align-items:flex-start;
    gap:12px
  }
  .hero .button {
    font-size:.78rem
  }
  .hero__note {
    font-size:.68rem
  }
  .photo-placeholder {
    min-height:355px;
    padding:33px
  }
  .photo-placeholder__title {
    font-size:2.6rem
  }
  .photo-placeholder figcaption {
    left:33px
  }
  .photo-placeholder__caption {
    font-size:.71rem
  }
  .section {
    padding-block:75px
  }
  .section--compact {
    padding-block:45px
  }
  .section-heading {
    margin-bottom:32px
  }
  .split {
    gap:35px
  }
  .split--person {
    gap:40px
  }
  .split h2 {
    font-size:2.4rem
  }
  .photo-placeholder--landscape {
    min-height:350px;
    aspect-ratio:auto
  }
  .calculator-teaser,.offer-teaser {
    padding:30px
  }
  .calculator-teaser h2,.offer-teaser h3 {
    font-size:2.1rem
  }
  .tool-grid {
    grid-template-columns:1.4fr 1fr;
    gap:20px
  }
  .service-note {
    gap:30px
  }
  .contact-cta__inner {
    gap:30px
  }
  .contact-cta h2 {
    font-size:2.2rem
  }
  .footer-top {
    grid-template-columns:1.3fr 1fr;
    row-gap:36px
  }
  .footer-bottom {
    flex-direction:column;
    gap:15px
  }
  .page-hero h1 {
    font-size:2.8rem
  }
  .page-hero {
    gap:35px;
    padding-block:45px 60px
  }
  .page-hero .photo-placeholder {
    min-height:330px;
    padding:30px
  }
  .intro {
    padding-block:50px
  }
  .intro h1 {
    font-size:3rem
  }
  .contact-layout {
    gap:30px;
    padding-block:40px 65px
  }
  .contact-copy h1 {
    font-size:2.8rem
  }
  .field-grid {
    grid-template-columns:1fr;
    gap:0
  }
  .form-card,.result-card {
    padding:26px
  }
  .form-card h2 {
    font-size:1.8rem
  }
  .form-heading {
    flex-direction:column;
    gap:0
  }
  .form-heading .eyebrow {
    margin-bottom:10px
  }
  .form-heading .draft-tag {
    margin-bottom:18px
  }
  .result-card h2 {
    font-size:2.15rem
  }
  .statement {
    padding:35px
  }
  .related-links {
    gap:12px
  }
}
@media(max-width:640px) {
  .wrap {
    width:calc(100% - 40px)
  }
  .header-inner {
    min-height:78px
  }
  .brand>span {
    font-size:.76rem
  }
  .brand small {
    font-size:.5rem;
    margin-top:6px
  }
  .brand img {
    width:34px;
    height:34px
  }
  .brand {
    gap:10px
  }
  .eyebrow {
    font-size:.59rem;
    letter-spacing:.12em;
    margin-bottom:18px
  }
  .hero {
    grid-template-columns:1fr;
    gap:35px;
    padding-block:38px 32px
  }
  .hero__copy h1 {
    font-size:clamp(2.3rem,8.7vw,3.25rem);
    line-height:1.08;
    letter-spacing:-.04em
  }
  .hero__intro {
    font-size:.95rem;
    line-height:1.8;
    margin-top:23px
  }
  .hero .actions {
    margin-top:27px;
    gap:12px;
    align-items:stretch
  }
  .hero .button {
    min-height:51px;
    font-size:.82rem;
    justify-content:space-between;
    padding-inline:20px
  }
  .hero__note {
    font-size:.7rem;
    margin-top:17px
  }
  .photo-placeholder--portrait {
    aspect-ratio:1.2;
    min-height:285px;
    max-height:380px
  }
  .photo-placeholder {
    padding:35px;
    min-height:285px
  }
  .photo-placeholder__content {
    gap:18px
  }
  .photo-placeholder__title {
    font-size:2.55rem;
    max-width:250px
  }
  .photo-placeholder__caption {
    font-size:.71rem;
    margin-top:8px
  }
  .photo-placeholder figcaption {
    left:35px;
    bottom:20px;
    font-size:.52rem
  }
  .proof-strip {
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    padding-block:9px;
    font-size:.75rem
  }
  .proof-strip span {
    padding-block:12px;
    text-align:left
  }
  .proof-strip span+span {
    border-left:0;
    border-top:1px solid var(--line)
  }
  h2 {
    font-size:2.2rem;
    line-height:1.1
  }
  .section {
    padding-block:60px
  }
  .section--compact {
    padding-block:40px
  }
  .section-heading {
    margin-bottom:30px
  }
  .section-heading .section-intro {
    font-size:.9rem;
    margin-top:20px
  }
  .path-grid,.more-paths,.split,.tool-grid,.process-grid {
    grid-template-columns:1fr
  }
  .path-grid {
    gap:18px
  }
  .path-card {
    padding:29px;
    gap:26px
  }
  .path-card h3 {
    font-size:2.1rem
  }
  .path-card p {
    margin-top:18px
  }
  .more-paths {
    gap:0;
    margin-top:10px
  }
  .more-paths a {
    padding-block:23px;
    font-size:.85rem;
    gap:5px
  }
  .more-paths a>span:first-child {
    font-size:.7rem
  }
  .split {
    gap:36px
  }
  .split h2 {
    font-size:2.2rem
  }
  .supporting-copy>div {
    gap:20px;
    padding-block:22px
  }
  .supporting-copy h3 {
    font-size:1.08rem
  }
  .supporting-copy p {
    font-size:.87rem;
    line-height:1.75
  }
  .split--person {
    gap:32px
  }
  .split--person .photo-placeholder {
    min-height:290px;
    aspect-ratio:1.15
  }
  .large-copy {
    font-size:1.13rem
  }
  .copy-note {
    font-size:.72rem!important
  }
  .process-grid {
    gap:34px;
    margin-top:35px
  }
  .process-grid p {
    font-size:.87rem;
    margin-top:14px
  }
  .service-note {
    grid-template-columns:1fr;
    gap:14px;
    margin-top:39px;
    font-size:.8rem
  }
  .tool-grid {
    gap:18px
  }
  .calculator-teaser,.offer-teaser {
    padding:27px
  }
  .calculator-teaser h2,.offer-teaser h3 {
    font-size:2.05rem
  }
  .teaser-result {
    padding:19px 16px;
    gap:13px
  }
  .teaser-result span {
    font-size:.57rem
  }
  .teaser-result strong {
    font-size:1.9rem
  }
  .teaser-result small {
    font-size:.57rem
  }
  .calculator-teaser .button {
    width:100%;
    justify-content:space-between
  }
  .offer-teaser p:not(.eyebrow) {
    max-width:400px
  }
  .faq summary {
    font-size:.92rem;
    padding-block:20px;
    gap:18px
  }
  .faq__answer {
    font-size:.85rem;
    padding-right:18px
  }
  .region {
    padding-block:52px;
    grid-template-columns:1fr;
    gap:0
  }
  .region h2 {
    font-size:2.1rem
  }
  .region p {
    font-size:.88rem;
    margin-top:22px
  }
  .contact-cta {
    padding-block:45px
  }
  .contact-cta__inner {
    flex-direction:column;
    align-items:flex-start;
    gap:26px
  }
  .contact-cta h2 {
    font-size:2.2rem
  }
  .contact-cta p:not(.eyebrow) {
    font-size:.87rem
  }
  .contact-cta__inner>div:last-child {
    align-items:flex-start;
    width:100%
  }
  .contact-cta .button {
    width:100%;
    justify-content:space-between
  }
  .site-footer {
    padding-top:44px
  }
  .footer-top {
    grid-template-columns:1fr 1fr;
    gap:35px 22px;
    padding-bottom:35px
  }
  .footer-top>div:first-child {
    grid-column:1/-1
  }
  .footer-top>div:last-child {
    grid-column:1/-1;
    border-top:1px solid #365064;
    padding-top:26px
  }
  .footer-top>div>h2 {
    font-size:.76rem;
    margin-bottom:16px
  }
  .footer-top>div>a:not(.brand) {
    font-size:.71rem;
    margin-top:12px
  }
  .footer-top>div>p {
    font-size:.74rem
  }
  .footer-bottom {
    font-size:.61rem;
    padding-block:22px
  }
  .footer-bottom>div {
    gap:13px 20px
  }
  .breadcrumb {
    font-size:.64rem;
    padding-top:24px
  }
  .page-hero {
    grid-template-columns:1fr;
    gap:32px;
    padding-block:36px 48px
  }
  .page-hero h1 {
    font-size:2.7rem;
    line-height:1.08
  }
  .page-hero .photo-placeholder {
    min-height:280px;
    max-height:325px;
    aspect-ratio:1.2
  }
  .page-hero .actions {
    margin-top:25px;
    gap:18px
  }
  .page-hero .button {
    font-size:.83rem
  }
  .editorial-grid {
    grid-template-columns:1fr;
    gap:28px
  }
  .editorial-grid article {
    padding-top:22px
  }
  .editorial-grid h3 {
    font-size:1.75rem
  }
  .editorial-grid p:not(.eyebrow) {
    font-size:.87rem;
    margin-top:15px
  }
  .editorial-grid .eyebrow {
    margin-bottom:15px
  }
  .steps-list li {
    gap:20px;
    padding-block:22px
  }
  .steps-list h3 {
    font-size:1.14rem
  }
  .steps-list p {
    font-size:.86rem
  }
  .statement {
    padding:28px
  }
  .statement p {
    font-size:1.65rem
  }
  .statement span {
    font-size:.7rem
  }
  .related-heading {
    display:block
  }
  .related-heading h2 {
    font-size:1.9rem
  }
  .related-heading .eyebrow {
    margin-top:15px
  }
  .related-links {
    flex-direction:column;
    margin-top:24px
  }
  .related-link {
    font-size:.84rem;
    padding:19px;
    min-width:0
  }
  .timeline li {
    grid-template-columns:80px 1fr;
    gap:15px
  }
  .timeline li>span {
    font-size:1.2rem
  }
  .timeline h3 {
    font-size:1.1rem
  }
  .timeline p {
    font-size:.85rem
  }
  .intro {
    padding-block:38px 42px
  }
  .intro h1 {
    font-size:2.65rem
  }
  .intro>p:not(.eyebrow) {
    font-size:.94rem;
    line-height:1.8;
    margin-top:23px
  }
  .intro--center {
    text-align:left
  }
  .intro .actions {
    justify-content:flex-start
  }
  .calculator-layout {
    grid-template-columns:1fr;
    gap:22px;
    padding-bottom:0
  }
  .form-card {
    padding:25px 22px
  }
  .form-card h2 {
    font-size:1.85rem
  }
  .field {
    margin-bottom:22px
  }
  .field label {
    font-size:.77rem
  }
  .field input,.field select {
    font-size:1rem;
    height:51px
  }
  .field input::placeholder {
    font-size:.73rem
  }
  .form-card .button {
    width:100%;
    justify-content:space-between
  }
  .result-card {
    position:static;
    padding:29px 25px
  }
  .result-card h2 {
    font-size:2.15rem
  }
  .result-primary {
    margin-top:27px
  }
  .result-primary strong {
    font-size:3.8rem
  }
  .contact-layout {
    grid-template-columns:1fr;
    gap:40px;
    padding-block:32px 50px
  }
  .contact-copy {
    padding-top:0
  }
  .contact-copy h1 {
    font-size:2.8rem
  }
  .contact-person {
    margin-top:27px
  }
  .contact-links {
    gap:17px;
    margin-top:27px
  }
  .contact-links .text-link {
    font-size:.88rem
  }
  .contact-ways {
    margin-top:25px;
    padding-top:22px
  }
  .contact-method label {
    flex:1
  }
  .contact-method span {
    text-align:center;
    padding-inline:16px
  }
  .legal-page {
    padding-block:36px 55px
  }
  .legal-page h1 {
    font-size:2.6rem;
    overflow-wrap:anywhere
  }
  .legal-alert {
    padding:21px
  }
  .legal-alert p {
    font-size:.85rem
  }
  .legal-page h2 {
    font-size:1.8rem
  }
  .legal-page>p {
    font-size:.91rem
  }
  .not-found {
    min-height:60vh
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important
  }
}
@media print {
  .site-header,.site-footer,.contact-cta,.menu-toggle {
    display:none
  }
  .wrap {
    width:100%
  }
  .hero,.page-hero,.section {
    padding-block:24px
  }
  .result-card {
    position:static
  }
  .photo-placeholder {
    break-inside:avoid
  }
}

/* Ruhigere Gestaltung: offene Textbereiche, wenige Flächen, keine Schmuckziffern. */
:root {
  --line: #dcded9;
}
h2 { font-size: clamp(2rem, 3.1vw, 2.8rem); line-height: 1.14; letter-spacing: -.028em; }
h3 { font-weight: 550; letter-spacing: -.015em; }
.wrap { width: min(1160px, calc(100% - 112px)); }
.eyebrow { text-transform: none; letter-spacing: .035em; font-size: .76rem; font-weight: 500; margin-bottom: 21px; }
.button { border-radius: 2px; font-weight: 500; min-height: 51px; transition: background .2s, color .2s; }
.button:hover { transform: none; }
.text-link { font-weight: 500; gap: 12px; }
.text-link > span[aria-hidden] { font-size: 1.15rem; }
.hero, .page-hero, .split, .path-grid { min-width: 0; }
.hero > *, .page-hero > *, .split > *, .path-grid > * { min-width: 0; }
.hero { grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr); gap: 90px; padding-block: 70px 58px; }
.hero__copy h1 { font-size: clamp(2.8rem, 4.55vw, 4.1rem); line-height: 1.08; }
.hero__copy h1 em { color: var(--navy); }
.hero__copy .eyebrow { max-width: 390px; font-size: .72rem; }
.hero__intro { max-width: 510px; font-size: 1.05rem; line-height: 1.8; }
.hero .actions { gap: 22px; }
.hero .button--outline { padding-inline: 0; border-color: transparent; background: transparent; border-bottom: 1px solid #b7bdbb; border-radius: 0; min-height: 44px; padding-block: 8px; }
.hero .button--outline:hover { border-bottom-color: var(--navy); }
.hero__note { font-size: .75rem; }
.photo-placeholder { padding: 35px; border-radius: 0; background: #e7e3d9; align-items: flex-end; min-height: 350px; }
.photo-placeholder--portrait { aspect-ratio: 4 / 4.9; min-height: 430px; }
.photo-placeholder--landscape { aspect-ratio: 1.25; min-height: 340px; background: #e7e8e1; }
.photo-placeholder--architecture { aspect-ratio: 1.1; background: #e8e6dd; }
.photo-placeholder__content { gap: 15px; min-width: 0; }
.photo-placeholder__title, .photo-placeholder--architecture .photo-placeholder__title, .photo-placeholder--landscape .photo-placeholder__title { font-family: var(--serif); font-size: 2rem; line-height: 1.18; max-width: 100%; }
.photo-placeholder__caption { font-size: .74rem; line-height: 1.6; margin: 0; max-width: 100%; }
.photo-placeholder figcaption { left: 35px; top: 27px; bottom: auto; font-size: .63rem; text-transform: none; letter-spacing: .02em; background: none; padding: 0; }
.proof-strip { justify-content: flex-start; gap: 36px; border-top: 0; padding-block: 0 27px; font-size: .78rem; font-weight: 400; }
.proof-strip span { flex: none; text-align: left; }
.proof-strip span + span { border: 0; }
.section { padding-block: 92px; }
.section--compact { padding-block: 55px; }
.section-heading { max-width: 620px; margin-bottom: 40px; }
.section-heading .section-intro { margin-top: 24px; line-height: 1.8; }
.split { gap: 90px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.paths-section { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.6fr); gap: 0 85px; }
.paths-intro .section-heading { margin: 0; }
.paths-intro .section-intro { font-size: .94rem; }
.path-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 47px; }
.path-card { display: block; background: none; padding: 0; border: 0; border-radius: 0; transition: none; }
.path-card:hover { transform: none; }
.path-card .path-label { margin-top: 0; font-size: .76rem; color: var(--muted); margin-bottom: 22px; padding-top: 3px; }
.path-card h3 { font-size: 2rem; line-height: 1.16; }
.path-card p:not(.path-label) { font-size: .94rem; line-height: 1.8; margin-top: 23px; }
.path-card .text-link { margin-top: 25px; font-size: .82rem; }
.path-card:hover .text-link { border-color: var(--navy); }
.more-paths { grid-column: 2; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 47px; margin-top: 38px; }
.more-paths a { border-top: 1px solid var(--line); border-bottom: 0; padding: 23px 0 0; flex-wrap: wrap; font-size: .84rem; }
.more-paths a > span:first-child { flex-basis: 100%; font-size: .74rem; }
.more-paths a > span:last-child { margin-left: auto; }
.section--support { background: #f0f2ef; }
.split--services { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 100px; }
.supporting-copy > div { display: block; border: 0; padding: 0; }
.supporting-copy > div + div { margin-top: 31px; }
.supporting-copy h3 { font-size: 1.08rem; }
.supporting-copy p { margin-top: 8px; font-size: .96rem; line-height: 1.8; max-width: 540px; }
.split--person { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 95px; }
.split--person h2 { max-width: 420px; }
.large-copy { font-size: 1.14rem; line-height: 1.75; }
.copy-note { border: 0; padding: 0; font-size: .76rem !important; }
.section--process { padding-block: 20px 90px; }
.process-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 0 100px; padding-top: 67px; border-top: 1px solid var(--line); }
.process-grid { display: block; margin: 0; }
.process-grid li + li { margin-top: 32px; }
.process-grid h3 { font-size: 1.08rem; }
.process-grid p { margin-top: 9px; font-size: .96rem; line-height: 1.8; }
.service-note { grid-column: 2; display: block; margin-top: 35px; padding-top: 25px; border-color: var(--line); }
.service-note > span { font-family: inherit; font-size: .91rem; color: var(--navy); }
.service-note p { font-size: .84rem; margin-top: 11px; line-height: 1.8; }
.section--tools { background: #eeeae1; }
.tool-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, .75fr); gap: 100px; align-items: center; }
.calculator-teaser { border: 0; background: none; padding: 0; }
.calculator-teaser h2 { font-size: 2.6rem; max-width: 560px; }
.calculator-teaser > p:not(.eyebrow) { font-size: .96rem; }
.teaser-result { background: none; padding: 22px 0; margin-block: 29px; border-block: 1px solid #d4d2c9; }
.teaser-result span { font-size: .75rem; }
.teaser-result small { font-size: .68rem; }
.offer-teaser { border: 0; border-left: 1px solid #d4d2c9; padding: 7px 0 7px 43px; background: none; border-radius: 0; }
.offer-teaser h3 { font-size: 2rem; }
.offer-teaser p:not(.eyebrow) { font-size: .94rem; line-height: 1.8; }
.split--faq { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.split--faq h2 { max-width: 360px; }
.section--soft:has(.split--faq) { background: var(--cream); }
.faq summary { font-size: .95rem; font-weight: 400; padding-block: 23px; }
.faq__answer { font-size: .91rem; line-height: 1.8; }
.region { grid-template-columns: 190px minmax(0, 1fr); border-top: 1px solid var(--line); padding-block: 60px 75px; gap: 35px; }
.region h2 { font-size: 2.2rem; max-width: 660px; }
.region p { font-size: .94rem; max-width: 660px; }
.contact-cta { padding-block: 65px; }
.contact-cta h2 { font-size: 2.5rem; }
.contact-cta .eyebrow { display: none; }
.contact-cta__inner { gap: 60px; }
.contact-cta__inner > div:last-child > span { font-size: .7rem; }
.footer-top > div > a:not(.brand) { font-size: .8rem; }
.footer-bottom { font-size: .7rem; }
.page-hero { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 100px; padding-block: 62px 85px; }
.page-hero h1 { font-size: clamp(2.7rem, 4.1vw, 3.8rem); }
.page-hero .photo-placeholder { min-height: 370px; }
.editorial-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 90px; }
.editorial-grid article { border: 0; padding: 0; max-width: 490px; }
.editorial-grid h3 { font-family: inherit; font-size: 1.12rem; font-weight: 550; letter-spacing: -.015em; }
.editorial-grid article > p:not(.eyebrow) { font-size: .97rem; line-height: 1.8; margin-top: 12px; }
.steps-list li { display: block; border: 0; padding: 0; }
.steps-list li + li { margin-top: 34px; }
.steps-list h3 { font-size: 1.08rem; }
.steps-list p { margin-top: 9px; font-size: .96rem; line-height: 1.8; }
.related-links { gap: 30px; }
.related-link { border: 0; border-bottom: 1px solid var(--line); background: none; border-radius: 0; padding: 15px 0; }
.related-heading h2 { font-size: 1.75rem; }
.timeline li > span { font-family: inherit; font-size: .85rem; color: var(--muted); }
.timeline li { border: 0; }
.form-card, .result-card { border-radius: 2px; }
.draft-tag { font-size: .65rem; }
.form-hint, .demo-label { font-size: .78rem; }
.form-card .eyebrow { margin-bottom: 15px; }
.initials { border: 0; border-radius: 0; width: auto; height: auto; font-size: 1.4rem; padding-right: 6px; }

@media (max-width: 1120px) {
  .wrap { width: calc(100% - 72px); }
  .hero, .page-hero { gap: 55px; }
  .hero__copy h1 { font-size: 3.3rem; }
  .paths-section { grid-template-columns: minmax(0, .75fr) minmax(0, 1.5fr); gap: 0 45px; }
  .path-grid, .more-paths { gap: 30px; }
  .path-card h3 { font-size: 1.8rem; }
  .split, .split--services, .split--person, .process-layout, .tool-grid { gap: 55px; }
  .photo-placeholder--portrait { min-height: 400px; }
}
@media (max-width: 900px) {
  .wrap { width: calc(100% - 48px); }
  .hero { gap: 38px; grid-template-columns: minmax(0, 1.2fr) minmax(0, .9fr); }
  .hero__copy h1 { font-size: 2.8rem; }
  .hero .actions { align-items: flex-start; gap: 10px; }
  .photo-placeholder { padding: 26px; }
  .photo-placeholder--portrait { min-height: 370px; }
  .photo-placeholder figcaption { left: 26px; top: 24px; }
  .photo-placeholder__title, .photo-placeholder--architecture .photo-placeholder__title, .photo-placeholder--landscape .photo-placeholder__title { font-size: 1.75rem; }
  .section { padding-block: 70px; }
  .paths-section { display: block; }
  .paths-intro .section-heading { max-width: 570px; margin-bottom: 42px; }
  .path-grid, .more-paths { gap: 45px; }
  .path-card h3 { font-size: 2rem; }
  .proof-strip { gap: 25px; font-size: .73rem; }
  .split, .split--services, .split--person, .process-layout, .tool-grid { gap: 38px; }
  .split h2 { font-size: 2.2rem; }
  .process-layout { padding-top: 0; border: 0; }
  .section--process { padding-top: 0; }
  .calculator-teaser h2 { font-size: 2.2rem; }
  .offer-teaser { padding-left: 30px; }
  .offer-teaser h3 { font-size: 1.8rem; }
  .page-hero { gap: 40px; }
  .page-hero h1 { font-size: 2.8rem; }
  .editorial-grid { gap: 35px 45px; }
  .region { grid-template-columns: 135px minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .wrap { width: calc(100% - 40px); }
  .hero { grid-template-columns: minmax(0, 1fr); padding-block: 35px; gap: 30px; }
  .hero__copy h1 { font-size: clamp(2.3rem, 8.5vw, 3.1rem); }
  .hero__intro { font-size: 1rem; margin-top: 22px; }
  .hero .actions { gap: 9px; align-items: flex-start; margin-top: 26px; }
  .hero .button { min-height: 50px; padding-inline: 24px; }
  .hero .button--outline { padding-inline: 0; min-height: 44px; }
  .hero__copy .eyebrow { font-size: .71rem; }
  .hero__note { margin-top: 19px; }
  .photo-placeholder, .photo-placeholder--portrait, .photo-placeholder--landscape, .page-hero .photo-placeholder, .split--person .photo-placeholder { aspect-ratio: 1.2; min-height: 250px; max-height: none; padding: 27px; }
  .photo-placeholder figcaption { left: 27px; top: 23px; font-size: .67rem; }
  .photo-placeholder__caption { font-size: .75rem; }
  .proof-strip { display: flex; flex-wrap: wrap; gap: 10px 24px; font-size: .74rem; padding-bottom: 25px; }
  .proof-strip span, .proof-strip span + span { border: 0; padding: 0; }
  .section { padding-block: 56px; }
  .section--compact { padding-block: 35px; }
  h2, .split h2 { font-size: 2.1rem; }
  .eyebrow { font-size: .75rem; letter-spacing: .025em; margin-bottom: 17px; }
  .paths-intro .section-heading { margin-bottom: 36px; }
  .path-grid { grid-template-columns: minmax(0, 1fr); gap: 35px; }
  .path-card + .path-card { border-top: 1px solid var(--line); padding-top: 29px; }
  .path-card .path-label { margin-bottom: 15px; font-size: .76rem; }
  .path-card h3 { font-size: 2rem; }
  .path-card p:not(.path-label) { font-size: .97rem; margin-top: 18px; }
  .path-card .text-link { margin-top: 18px; font-size: .87rem; }
  .more-paths { grid-template-columns: minmax(0, 1fr); gap: 22px; margin-top: 35px; }
  .more-paths a { font-size: .88rem; padding-top: 20px; }
  .split, .split--services, .split--person, .process-layout, .tool-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .supporting-copy > div + div { margin-top: 26px; }
  .supporting-copy p, .process-grid p, .steps-list p { font-size: .96rem; }
  .section--process { padding-top: 6px; }
  .process-layout .section-heading { margin: 0; }
  .process-grid { margin-top: 0; }
  .process-grid li + li { margin-top: 27px; }
  .service-note { grid-column: auto; margin-top: 0; padding-top: 27px; }
  .calculator-teaser h2 { font-size: 2.1rem; }
  .calculator-teaser, .offer-teaser { padding: 0; }
  .teaser-result { gap: 18px; padding-block: 20px; margin-block: 24px; }
  .teaser-result span { font-size: .73rem; }
  .teaser-result strong { font-size: 1.95rem; }
  .teaser-result small { font-size: .68rem; }
  .offer-teaser { padding-top: 31px; border-left: 0; border-top: 1px solid #d4d2c9; }
  .offer-teaser h3 { font-size: 2rem; }
  .offer-teaser .text-link { margin-top: 24px; }
  .faq summary { font-size: .94rem; padding-block: 22px; }
  .faq__answer { font-size: .9rem; }
  .region { display: block; padding-block: 43px 55px; }
  .region h2 { font-size: 2rem; }
  .region p { font-size: .96rem; }
  .contact-cta { padding-block: 45px; }
  .contact-cta h2 { font-size: 2.1rem; }
  .contact-cta__inner { gap: 28px; }
  .contact-cta p:not(.eyebrow) { font-size: .94rem; }
  .page-hero { grid-template-columns: minmax(0, 1fr); gap: 30px; padding-block: 37px 50px; }
  .page-hero h1 { font-size: clamp(2.3rem, 8.4vw, 2.8rem); }
  .editorial-grid { grid-template-columns: minmax(0, 1fr); gap: 29px; }
  .editorial-grid h3 { font-size: 1.1rem; }
  .editorial-grid article > p:not(.eyebrow) { font-size: .96rem; }
  .steps-list li + li { margin-top: 29px; }
  .related-links { gap: 12px; }
  .footer-top > div > a:not(.brand) { font-size: .77rem; }
  .footer-top { gap: 33px 20px; }
  .footer-bottom { font-size: .7rem; }
}

/* Desktop-Feinschliff 29.10.: breite Bänder, gemeinsame Flächen, lesbare Textbreiten. */
:root {
  --line: #dedbd3;
  --soft: #f2efe8;
  --page-gutter: clamp(36px, 4vw, 96px);
}
.section--support, .section--tools { background: var(--cream); }
.section--support { padding-top: 0; }
.section--support > .wrap { border-top: 1px solid var(--line); padding-top: 72px; }
.section--person, .section--process, .section--navy { background: var(--soft); }
.section--navy { color: var(--ink); }
.section--navy h2, .section--navy h3, .section--navy .text-link { color: var(--navy); }
.section--navy p, .section--navy .eyebrow { color: var(--muted); }
.statement { background: transparent; border-block: 1px solid var(--line); border-radius: 0; padding-inline: 0; }
.statement p { color: var(--navy); }
.statement span { color: var(--muted); }
.split > div > p:not(.eyebrow), .process-grid p { max-width: 62ch; }
.split--person > div { max-width: 62ch; }
.split--person h2 { max-width: 570px; }
.paths-section { display: block; }
.paths-intro .section-heading { max-width: none; }
.path-grid { border-top: 1px solid var(--line); padding-top: 38px; }
.path-card p:not(.path-label) { max-width: 55ch; font-size: 1rem; }
.more-paths { grid-column: auto; }
.contact-cta { background: var(--navy); color: var(--cream); }
.contact-cta h2 { color: var(--cream); }
.contact-cta p:not(.eyebrow), .contact-cta__inner > div:last-child > span { color: #c6d1d7; }
.contact-cta .button { background: var(--cream); border-color: var(--cream); color: var(--navy); }
.contact-cta .button:hover { background: #e9e3d7; border-color: #e9e3d7; }
.site-footer { padding-top: 0; }
.footer-top { border-top: 1px solid #365064; padding-top: 54px; }
.calculator-layout, .contact-layout { max-width: 1440px; }

@media (min-width: 901px) {
  .wrap { width: min(1760px, calc(100% - var(--page-gutter) * 2)); }
  .hero, .page-hero { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: clamp(48px, 5vw, 100px); }
  .hero { padding-block: 72px 54px; }
  .hero__copy h1 { font-size: clamp(3.1rem, 4.2vw, 5rem); max-width: 840px; }
  .hero__intro { max-width: 58ch; font-size: 1.08rem; }
  .hero .photo-placeholder { height: clamp(480px, 33vw, 620px); min-height: 0; max-height: 620px; aspect-ratio: auto; }
  .split--person .photo-placeholder { height: clamp(430px, 30vw, 560px); min-height: 0; aspect-ratio: auto; }
  .page-hero .photo-placeholder { height: clamp(420px, 30vw, 560px); min-height: 0; aspect-ratio: auto; }
  .page-hero h1 { font-size: clamp(2.7rem, 4.1vw, 4.6rem); max-width: 850px; }
  .paths-intro .section-heading { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(48px, 6vw, 120px); margin: 0 0 52px; }
  .paths-intro .eyebrow { grid-column: 1 / -1; }
  .paths-intro h2 { max-width: 600px; }
  .paths-intro .section-intro { font-size: 1rem; margin-top: 0; max-width: 55ch; align-self: end; }
  .path-grid, .more-paths { gap: clamp(48px, 6vw, 120px); }
  .path-card h3 { font-size: clamp(2rem, 2.7vw, 3rem); }
  .more-paths { margin-top: 45px; }
  .split--person { gap: clamp(48px, 6vw, 120px); }
  .contact-cta { padding-block: 85px; }
  .contact-form { width: 100%; max-width: 680px; justify-self: end; }
}
@media (max-width: 900px) {
  .paths-intro .section-heading { max-width: 650px; }
  .section--support > .wrap { padding-top: 52px; }
}
@media (max-width: 640px) {
  .section--support > .wrap { padding-top: 40px; }
  .path-grid { padding-top: 28px; }
  .split--person > div { max-width: none; }
}

/* Bannerfassung: ein randloser Einstieg, eigenständige Komposition je Abschnitt. */
.hero-banner {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--navy);
  color: var(--cream);
}
.hero-banner__media, .hero-banner__shade {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.hero-banner__media { z-index: -2; }
.hero-banner__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 56%; }
.hero-banner__shade {
  z-index: -1;
  background: linear-gradient(90deg, rgba(13,31,46,.97) 0%, rgba(13,31,46,.9) 32%, rgba(13,31,46,.58) 54%, rgba(13,31,46,.08) 80%);
}
.hero-banner__inner { min-height: clamp(620px, 42vw, 740px); display: flex; align-items: center; padding-block: 78px; }
.hero-banner__copy { width: min(900px, 58%); }
.hero-banner .eyebrow { color: #ded2b8; font-size: .82rem; letter-spacing: .025em; max-width: 600px; margin-bottom: 28px; }
.hero-banner h1 { font-size: clamp(3.15rem, 4.2vw, 5.5rem); line-height: 1.08; letter-spacing: -.035em; color: var(--cream); }
.hero-banner .hero__intro { max-width: 570px; color: #dce3e7; font-size: 1.08rem; line-height: 1.75; margin-top: 30px; }
.hero-banner .actions { gap: 28px; margin-top: 36px; }
.hero-banner .button { min-height: 54px; background: var(--cream); border-color: var(--cream); color: var(--navy); padding-inline: 28px; }
.hero-banner .button:hover { background: #e9e3d7; border-color: #e9e3d7; }
.hero-banner .text-link { color: var(--cream); border-color: #8c9ba5; font-size: .87rem; }
.hero-banner .text-link:hover { border-color: #e3d0a9; }
.hero-banner__note { color: #c9d3d9; font-size: .8rem; margin-top: 27px; }
.hero-banner__bottom { background: rgba(13,31,46,.88); border-top: 1px solid rgba(240,240,230,.18); }
.hero-banner__meta { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 74px; padding-block: 19px; }
.hero-banner__facts { display: flex; flex-wrap: wrap; gap: 14px 40px; font-size: .8rem; color: #dde3e6; }
.hero-banner__image-note { font-size: .7rem; color: #c3cdd4; }
.page-home .paths-section { padding-block: clamp(72px, 6vw, 116px); }
.page-home .paths-intro h2, .page-home .section--support h2, .page-home .process-layout h2 { font-size: clamp(2.2rem, 3vw, 3.4rem); line-height: 1.13; }
.page-home .paths-intro .section-heading { margin-bottom: 58px; }
.page-home .section--support { padding-block: 0 110px; }
.page-home .split--services { display: block; padding-top: 80px; }
.page-home .split--services .section-heading { display: grid; grid-template-columns: 1.15fr 1fr; gap: 0 100px; max-width: none; margin-bottom: 54px; }
.page-home .split--services .section-heading .eyebrow { grid-column: 1 / -1; }
.page-home .split--services .section-heading h2 { max-width: 710px; }
.page-home .split--services .section-intro { margin: 0; align-self: end; max-width: 55ch; }
.page-home .supporting-copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 100px; }
.page-home .supporting-copy > div, .page-home .supporting-copy > div + div { margin: 0; border-top: 1px solid var(--line); padding-top: 25px; }
.page-home .supporting-copy h3 { font-size: 1.2rem; }
.page-home .supporting-copy p { max-width: 56ch; margin-top: 12px; }
.page-home .section--person { padding-block: 104px 90px; }
.page-home .section--process { padding-block: 0 100px; }
.page-home .process-layout { display: block; padding-top: 70px; }
.page-home .process-layout .section-heading { max-width: 790px; margin-bottom: 30px; }
.page-home .process-grid { --process-gap: 60px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--process-gap); }
.page-home .process-grid li, .page-home .process-grid li + li { position: relative; display: grid; grid-template-rows: auto 1fr auto; min-width: 0; margin: 0; padding-top: 26px; border-top: 1px solid #b4a17e; }
.page-home .process-grid h3 { font-size: 1.17rem; max-width: 24ch; }
.page-home .process-grid p { max-width: 44ch; margin-top: 14px; }
.process-illustration { display: grid; place-items: center; height: 120px; margin-top: 38px; }
.process-symbol { display: block; width: 180px; height: 120px; stroke: var(--navy); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.process-symbol__walls { opacity: .72; }
.process-symbol__roof { stroke: var(--gold); opacity: .8; }
.process-symbol__euro { opacity: .78; }
.process-symbol__euro--light { opacity: .23; }
.process-symbol__euro--medium { opacity: .47; }
.process-connector { position: absolute; right: calc(var(--process-gap) / -2 - 44px); bottom: 48px; width: 88px; height: 24px; color: var(--gold); pointer-events: none; }
.page-home .service-note { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(0, 1.7fr); gap: 60px; margin-top: 52px; padding-top: 32px; }
.page-home .service-note p { margin: 0; max-width: 100ch; }
.page-home .section--tools { padding-block: 110px; }
.page-home .section--soft:has(.split--faq) { padding-top: 0; }
.page-home .split--faq { border-top: 1px solid var(--line); padding-top: 80px; }

@media (max-width: 1120px) {
  .hero-banner__copy { width: min(720px, 68%); }
  .hero-banner h1 { font-size: clamp(3.1rem, 5vw, 4rem); }
  .hero-banner__shade { background: linear-gradient(90deg, rgba(13,31,46,.97), rgba(13,31,46,.83) 48%, rgba(13,31,46,.2)); }
  .page-home .split--services .section-heading, .page-home .supporting-copy { column-gap: 55px; }
  .page-home .process-grid { --process-gap: 35px; }
}
@media (max-width: 900px) {
  .hero-banner { display: flex; flex-direction: column; }
  .hero-banner__inner { order: 0; min-height: 0; padding-block: 52px 46px; }
  .hero-banner__copy { width: 100%; max-width: 720px; }
  .hero-banner h1 { font-size: clamp(2.7rem, 5.8vw, 3.9rem); max-width: 720px; }
  .hero-banner .hero__intro { max-width: 58ch; }
  .hero-banner__media { order: 1; position: relative; inset: auto; z-index: 0; display: block; height: 260px; }
  .hero-banner__media img { object-position: right 58%; }
  .hero-banner__shade { display: none; }
  .hero-banner__bottom { order: 2; }
  .hero-banner__meta { flex-wrap: wrap; gap: 14px; }
  .hero-banner__facts { gap: 12px 26px; }
  .page-home .split--services .section-heading { display: block; max-width: 680px; }
  .page-home .split--services .section-intro { margin-top: 24px; }
  .page-home .process-grid { grid-template-columns: minmax(0, 1fr); gap: 78px; }
  .page-home .process-grid h3, .page-home .process-grid p { max-width: 60ch; }
  .process-illustration { margin-top: 28px; }
  .process-connector { left: 50%; right: auto; bottom: -51px; width: 58px; transform: translateX(-50%) rotate(90deg); }
  .page-home .process-layout { border-top: 1px solid var(--line); }
  .page-home .service-note { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}
@media (max-width: 640px) {
  .hero-banner__inner { padding-block: 43px 38px; }
  .hero-banner h1 { font-size: clamp(2.3rem, 8.4vw, 3.25rem); }
  .hero-banner .eyebrow { font-size: .73rem; margin-bottom: 23px; }
  .hero-banner .hero__intro { font-size: 1rem; margin-top: 24px; }
  .hero-banner .actions { flex-direction: column; align-items: flex-start; gap: 22px; margin-top: 29px; }
  .hero-banner__note { max-width: 32ch; font-size: .75rem; line-height: 1.65; margin-top: 24px; }
  .hero-banner__media { height: 190px; }
  .hero-banner__facts { font-size: .73rem; gap: 9px 21px; }
  .hero-banner__image-note { font-size: .67rem; }
  .page-home .paths-section { padding-block: 58px; }
  .page-home .paths-intro .section-heading { margin-bottom: 36px; }
  .page-home .section--support { padding-bottom: 60px; }
  .page-home .split--services { padding-top: 44px; }
  .page-home .split--services .section-heading { margin-bottom: 35px; }
  .page-home .supporting-copy { grid-template-columns: minmax(0, 1fr); gap: 25px; }
  .page-home .supporting-copy h3 { font-size: 1.08rem; }
  .page-home .section--person { padding-block: 60px; }
  .page-home .section--process { padding-bottom: 60px; }
  .page-home .process-layout { padding-top: 44px; }
  .page-home .process-layout .section-heading { margin-bottom: 28px; }
  .page-home .process-grid h3 { font-size: 1.08rem; }
  .page-home .service-note { margin-top: 33px; padding-top: 28px; }
  .page-home .section--tools { padding-block: 60px; }
  .page-home .split--faq { padding-top: 48px; }
}

/* Gemeinsamer Abstandsrhythmus und fluchtende Achsen für die gesamte Website. */
:root {
  --section-space: clamp(64px, 6vw, 104px);
  --section-compact: clamp(40px, 3.5vw, 56px);
  --grid-gap: clamp(40px, 5vw, 96px);
  --heading-gap: 40px;
  --card-inset: 36px;
}
.section { padding-block: var(--section-space); }
.section--compact { padding-block: var(--section-compact); }
.section-heading { margin-bottom: var(--heading-gap); }
.eyebrow { margin-bottom: 20px; }
.split, .page-hero, .editorial-grid { column-gap: var(--grid-gap); }
.split { row-gap: 36px; }
.split--person, .split--faq { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.split--person > div { max-width: none; }
.split > .section-heading { margin-bottom: 0; }
.split--person > div > p, .editorial-grid article > p { max-width: 62ch; }
.editorial-grid { row-gap: 40px; }
.editorial-grid article { max-width: none; min-width: 0; }
.editorial-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.page-hero { padding-block: var(--section-compact) var(--section-space); }
.intro { padding-block: var(--section-compact) var(--section-space); }
.intro + .section--compact { padding-top: 0; }
.legal-page { padding-block: var(--section-compact) var(--section-space); }
.page-contact main > .wrap, .page-contact main > .section > .wrap, .page-calculator main > .wrap { max-width: 1440px; }
.page-legal main > .wrap { max-width: 900px; }
.related-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.related-link { min-width: 0; gap: 16px; padding: 16px 0; }
.related-link > span { flex-shrink: 0; }
.form-card, .result-card { padding: var(--card-inset); }
.form-heading { align-items: center; min-height: 26px; margin-bottom: 16px; }
.form-heading .eyebrow, .form-heading .draft-tag { margin: 0; }
.form-card > .eyebrow, .result-card > .eyebrow, .contact-copy > .eyebrow { display: flex; align-items: center; min-height: 26px; margin-bottom: 16px; }
.calculator-layout .form-card h2, .calculator-layout .result-card h2 { font-size: clamp(1.7rem, 2.1vw, 2rem); line-height: 1.2; }
.calculator-layout { gap: var(--grid-gap); padding-bottom: 0; }
.contact-layout { gap: var(--grid-gap); padding-block: var(--section-compact) var(--section-space); }
.contact-copy { padding-top: var(--card-inset); }
.contact-cta { padding-block: var(--section-space); }
.contact-cta .button, .calculator-teaser .button { justify-content: center; }
.footer-top { column-gap: var(--grid-gap); padding-block: var(--section-compact); }
.footer-bottom { padding-block: 24px; }

.page-home .paths-section { padding-block: var(--section-space); }
.page-home .paths-intro .section-heading { margin-bottom: var(--heading-gap); column-gap: var(--grid-gap); }
.page-home .path-grid, .page-home .more-paths { column-gap: var(--grid-gap); }
.page-home .path-grid { padding-top: 32px; }
.page-home .path-card { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; }
.page-home .path-card > div { display: flex; flex-direction: column; align-items: flex-start; }
.page-home .path-card .text-link { margin-top: auto; padding-top: 24px; }
.page-home .path-card p:not(.path-label) { margin-bottom: 0; }
.page-home .more-paths { margin-top: 40px; }
.page-home .section--support { padding-block: 0 var(--section-space); }
.page-home .section--support > .wrap { padding-top: var(--section-space); }
.page-home .split--services .section-heading { column-gap: var(--grid-gap); margin-bottom: var(--heading-gap); }
.page-home .supporting-copy { gap: 32px var(--grid-gap); }
.page-home .supporting-copy > div, .page-home .supporting-copy > div + div { padding-top: 24px; }
.page-home .section--person { padding-block: var(--section-space); }
.page-home .section--process { padding-block: 0 var(--section-space); }
.page-home .process-layout { padding-top: var(--section-space); }
.page-home .process-layout .section-heading { max-width: 1120px; margin: 0 auto 32px; text-align: center; }
.page-home .process-grid { --process-gap: var(--grid-gap); }
.page-home .process-grid li, .page-home .process-grid li + li { padding-top: 24px; text-align: center; }
.page-home .process-grid h3 { width: 100%; max-width: 32ch; margin-inline: auto; }
.page-home .process-grid p { max-width: 36ch; margin: 16px auto 0; }
.process-illustration { margin-top: 32px; }
.page-home .service-note { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); margin-top: 40px; padding-top: 32px; }
.page-home .service-note p { max-width: 62ch; }
.page-home .section--tools { padding-block: var(--section-space); }
.page-home .tool-grid { gap: var(--grid-gap); align-items: start; }
.offer-teaser { padding: 0 0 0 var(--card-inset); }
.page-home .section--soft:has(.split--faq) { padding-block: 0 var(--section-space); }
.page-home .split--faq { padding-top: var(--section-space); }
.region { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); padding-block: var(--section-space); }
.region .eyebrow { margin: 0 0 20px; font-size: .76rem; }
.region > p { margin: 0; align-self: end; max-width: 55ch; }

@media (min-width: 901px) {
  .page-home .paths-intro .section-heading, .page-home .split--services .section-heading { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split .photo-placeholder { height: clamp(400px, 30vw, 560px); min-height: 0; aspect-ratio: auto; }
}
@media (max-width: 1120px) {
  :root { --grid-gap: 40px; --card-inset: 28px; }
  .related-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  :root { --section-space: 64px; --section-compact: 40px; --grid-gap: 32px; --heading-gap: 32px; }
  .calculator-layout, .contact-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .contact-copy { padding-top: 0; }
  .form-heading { align-items: flex-start; gap: 12px; }
  .contact-form { max-width: none; }
  .result-card { position: static; }
  .editorial-grid--three { grid-template-columns: minmax(0, 1fr); }
  .page-home .process-grid { gap: 78px; }
  .page-home .process-grid h3, .page-home .process-grid p { max-width: 38ch; }
  .page-home .service-note { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .region { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .region > p { max-width: 62ch; }
}
@media (max-width: 640px) {
  :root { --section-space: 56px; --section-compact: 32px; --grid-gap: 24px; --card-inset: 24px; }
  .split, .split--person, .split--faq { grid-template-columns: minmax(0, 1fr); row-gap: 32px; }
  .editorial-grid, .related-links { grid-template-columns: minmax(0, 1fr); }
  .editorial-grid { row-gap: 32px; }
  .page-home .path-grid { row-gap: 32px; padding-top: 28px; }
  .page-home .path-card + .path-card { padding-top: 28px; }
  .page-home .more-paths { margin-top: 32px; }
  .page-home .supporting-copy { row-gap: 28px; }
  .page-home .process-layout .section-heading { margin-bottom: 28px; }
  .process-illustration { margin-top: 28px; }
  .page-home .service-note { margin-top: 32px; padding-top: 28px; }
  .page-home .tool-grid { row-gap: 32px; }
  .offer-teaser { padding: 32px 0 0; }
  .contact-cta__inner { gap: 32px; }
  .contact-cta__inner > div:last-child { align-items: center; text-align: center; }
  .footer-top { row-gap: 32px; }
  .footer-top > div:last-child { padding-top: 32px; }
}

/* Vorhaben: zwei Bildwege, Bestandsfinanzierungen und eine gemeinsame Beratungsübersicht. */
.financing-section { background: var(--cream); }
.financing-intro { max-width: 760px; margin: 0 auto 44px; text-align: center; }
.financing-intro .eyebrow { margin-bottom: 14px; }
.financing-intro h2 { font-size: clamp(2.3rem, 3.3vw, 3.5rem); }
.financing-intro > p:last-child { margin-top: 20px; font-size: 1rem; line-height: 1.8; }
.financing-routes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 3vw, 56px); }
.finance-route { display: grid; grid-template-rows: auto 1fr; min-width: 0; }
.finance-route__image { display: block; aspect-ratio: 2.15; overflow: hidden; background: var(--sand); }
.finance-route__image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 54%; }
.finance-route__copy { display: flex; flex-direction: column; align-items: flex-start; padding: 28px 0 0; }
.finance-route__label { color: var(--muted); font-size: .8rem; margin: 0 0 10px; }
.finance-route h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.8rem, 2.5vw, 2.6rem); line-height: 1.18; letter-spacing: -.025em; }
.finance-route__copy > p:not(.finance-route__label) { max-width: 55ch; margin: 16px 0 24px; font-size: 1rem; line-height: 1.8; }
.finance-route .text-link { margin-top: auto; padding-bottom: 8px; font-size: .87rem; }
.finance-route:hover .text-link { border-color: var(--navy); }
.financing-image-note { margin: 24px 0 0; text-align: right; font-size: .7rem; color: var(--muted); }
.existing-property { display: grid; grid-template-columns: .9fr 1.1fr 1.1fr; gap: 32px; align-items: center; padding-top: 32px; margin-top: 32px; border-top: 1px solid var(--line); }
.existing-property h3 { font-family: var(--serif); font-size: clamp(1.35rem, 1.7vw, 1.65rem); font-weight: 400; line-height: 1.3; }
.existing-property > a { display: block; padding: 8px 0 8px 32px; border-left: 1px solid var(--line); min-width: 0; }
.existing-property__question { display: block; font-size: .78rem; color: var(--muted); margin-bottom: 6px; }
.existing-property__link { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; font-size: .94rem; color: var(--navy); }
.existing-property__link > span { flex-shrink: 0; }
.existing-property > a:hover .existing-property__link { text-decoration: underline; text-underline-offset: 5px; }
.advice-section { padding-top: 0; background: var(--cream); }
.advice-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: var(--grid-gap); align-items: start; border-top: 1px solid var(--line); padding-top: var(--section-space); }
.advice-intro h2 { max-width: 17ch; font-size: clamp(2.1rem, 2.9vw, 3rem); line-height: 1.15; }
.advice-intro > p:last-child { max-width: 47ch; margin-top: 24px; line-height: 1.8; }
.advice-list { margin: 0; padding: 0; }
.advice-list > div { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr); gap: 28px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.advice-list > div:first-child { padding-top: 0; }
.advice-list > div:last-child { padding-bottom: 0; border-bottom: 0; }
.advice-list dt { margin: 0; color: var(--navy); font-size: 1.05rem; font-weight: 550; line-height: 1.5; }
.advice-list dd { margin: 0; color: var(--muted); font-size: .96rem; line-height: 1.8; max-width: 52ch; }
@media (max-width: 1120px) {
  .advice-layout { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
  .advice-list > div { grid-template-columns: minmax(0, 1fr); gap: 8px; padding-block: 20px; }
  .existing-property { gap: 24px; }
  .existing-property > a { padding-left: 24px; }
}
@media (max-width: 900px) {
  .financing-intro { margin-bottom: 32px; }
  .financing-routes { gap: 28px; }
  .finance-route__image { aspect-ratio: 1.65; }
  .finance-route__copy { padding-top: 24px; }
  .existing-property { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 28px; }
  .existing-property h3 { grid-column: 1 / -1; }
  .existing-property h3 br { display: none; }
  .existing-property > a { border-left: 0; padding: 0; }
  .advice-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .advice-intro h2 { max-width: 24ch; }
  .advice-intro > p:last-child { max-width: 65ch; }
  .advice-list > div { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 32px; padding-block: 24px; }
}
@media (max-width: 640px) {
  .financing-intro { text-align: left; }
  .financing-intro > p:last-child { margin-top: 16px; }
  .financing-intro br { display: none; }
  .financing-routes { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .finance-route__image { aspect-ratio: 1.85; }
  .finance-route__copy { padding-top: 20px; }
  .finance-route h3 { font-size: 1.9rem; }
  .finance-route__copy > p:not(.finance-route__label) { margin: 14px 0 20px; font-size: .96rem; }
  .financing-image-note { text-align: left; margin-top: 24px; }
  .existing-property { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-top: 28px; margin-top: 28px; }
  .existing-property > a + a { border-top: 1px solid var(--line); padding-top: 20px; }
  .advice-intro .eyebrow { margin-bottom: 16px; }
  .advice-intro > p:last-child { margin-top: 20px; }
  .advice-list > div { grid-template-columns: minmax(0, 1fr); gap: 8px; }
}

/* Lukas' neue Inhalte: Leselängen und ruhige Übergänge im vorhandenen Raster. */
.page-home .process-followup { max-width: 82ch; margin: 40px auto 0; padding-top: 28px; border-top: 1px solid var(--line); text-align: center; font-size: .94rem; line-height: 1.8; }
.page-home .section--visit { background: var(--soft); padding-top: 0; }
.page-home .section--visit > .wrap { padding-top: var(--section-compact); border-top: 1px solid var(--line); }
.page-home .section--visit p:not(.eyebrow) { max-width: 62ch; }
.service-transition { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--line); max-width: 88ch; }
.service-transition p { margin: 0; }
.service-scope { max-width: 92ch; margin: 16px 0 0; }
.intro .offer-document-note { max-width: 66ch; margin: 22px auto 0; font-size: .8rem; line-height: 1.75; }
.faq__answer p + p { margin-top: 16px; }
@media (max-width: 640px) {
  .page-home .process-followup { margin-top: 32px; text-align: left; }
  .service-transition { margin-top: 32px; padding-top: 24px; }
}

/* Die Bildreihe behält ihre vollständigen Motive, auch auf schmalen Displays. */
.editorial-photo { width: 100%; min-width: 0; margin: 0; }
.editorial-photo__media { width: 100%; background: var(--sand); }
.editorial-photo__media img { display: block; width: 100%; height: auto; }
.editorial-photo figcaption { margin-top: 10px; color: var(--muted); font-size: .72rem; line-height: 1.6; }
