:root{
  --paper:#fbf8f3;
  --ivory:#f4eee7;
  --powder:#dce8f2;
  --powder-strong:#bfd3e4;
  --lavender:#ded8ea;
  --rose:#e8c8c2;
  --coral:#d98376;
  --navy:#17345a;
  --navy-deep:#102844;
  --gold:#c8ad62;
  --ink:#253044;
  --muted:#657084;
  --white:#fff;
  --line:rgba(37,48,68,.16);
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Inter",Arial,sans-serif;
  --content-max:1120px;
  --gutter:clamp(22px,5vw,64px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.7}
a{color:inherit}
img{display:block;width:100%;height:auto;border-radius:0}
h1,h2,h3{margin-top:0;line-height:1.04}
h1,h2,h3,.brand span{font-family:var(--serif)}
h1{font-size:clamp(3.25rem,6.1vw,5.8rem);font-weight:500;letter-spacing:-.035em;margin-bottom:1.4rem}
h2{font-size:clamp(2.35rem,3.9vw,4.15rem);font-weight:500;letter-spacing:-.025em}
h3{font-size:clamp(1.45rem,1.9vw,2rem);font-weight:600}
p{margin-top:0}
.section{padding:8rem var(--gutter)}
.section>*{width:min(100%,var(--content-max));margin-left:auto;margin-right:auto}
.eyebrow,.section-label{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--coral)}
.section-label.light{color:#e8d69a}

.site-header{
  position:sticky;top:0;z-index:20;min-height:86px;
  padding-left:max(var(--gutter),calc((100vw - var(--content-max))/2));
  padding-right:max(var(--gutter),calc((100vw - var(--content-max))/2));
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(251,248,243,.96);border-bottom:1px solid var(--line)
}
.brand{display:flex;flex-direction:column;text-decoration:none;line-height:1.1}
.brand span{font-size:1.95rem;font-weight:600;color:var(--navy)}
.brand small{margin-top:.38rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.main-nav{display:flex;align-items:center;gap:1.45rem}
.main-nav a{text-decoration:none;font-size:.76rem;font-weight:600;letter-spacing:.05em}
.nav-cta{padding:.8rem 1rem;border:1px solid var(--navy);color:var(--navy)}
.menu-button{display:none}

.hero{
  width:min(calc(100% - (2 * var(--gutter))),var(--content-max));
  min-height:850px;
  margin:5rem auto;
  display:grid;
  grid-template-columns:1.02fr .98fr;
  align-items:center;
  gap:4rem;
}
.hero-copy{
  padding:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.hero-abstract{max-width:690px;color:var(--muted)}
.hero-abstract p{font-size:1.08rem;line-height:1.78;margin-bottom:1rem}
.hero-abstract p:last-child{margin-bottom:0}
.hero-actions{display:flex;gap:1.4rem;align-items:center;margin-top:2rem}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.9rem 1.35rem;border:0;border-radius:0;font:600 .9rem var(--sans);text-decoration:none;cursor:pointer}
.primary{color:#fff;background:var(--navy)}
.primary:hover{background:var(--navy-deep)}
.text-link{text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:.2rem}
.hero-image{
  margin:0;
  position:relative;
  align-self:center;
}
.hero-image img{
  width:100%;
  height:850px;
  object-fit:cover;
}
.hero-image figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.1rem 1.4rem;background:rgba(16,40,68,.84);color:#fff;font-family:var(--serif);font-style:italic;font-size:1.2rem}

.statement{background:var(--powder)}
.statement-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;margin-top:2.3rem}
.statement-grid p{font-size:1.08rem}

.toolbox{background:var(--navy);color:#fff}
.toolbox-intro{display:grid;grid-template-columns:1fr .7fr;gap:8vw;align-items:end}
.toolbox-intro p{color:rgba(255,255,255,.78);font-size:1.08rem}
.journey{margin-top:5rem;border-top:1px solid rgba(255,255,255,.22)}
.journey-step{display:grid;grid-template-columns:110px 1fr;gap:2rem;padding:3.2rem 0;border-bottom:1px solid rgba(255,255,255,.22)}
.step-number{font-family:var(--serif);font-size:3.2rem;color:var(--rose)}
.step-kicker{margin-bottom:.5rem;color:#e7d7a4;font-size:.74rem;font-weight:600;letter-spacing:.15em}
.journey-step h3{margin-bottom:1.2rem}
.journey-step ul{margin:0;padding-left:1.1rem;color:rgba(255,255,255,.78);max-width:980px}

.services{background:#fff}
.services-head{display:grid;grid-template-columns:1.15fr .55fr;gap:8vw;align-items:end;margin:2rem auto 4rem}
.services-head p{color:var(--muted)}
.services-list{border-top:1px solid var(--line)}
.services-list article{display:grid;grid-template-columns:80px minmax(260px,.9fr) 1.1fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line);align-items:start}
.services-list span{color:var(--coral);font-weight:600}
.services-list h3{margin-bottom:0;color:var(--navy)}
.services-list p{color:var(--muted);margin-bottom:0}


.path-section{
  position:relative;
  min-height:680px;
  display:flex;
  align-items:center;
  padding:8rem var(--gutter);
  color:#fff;
  background-image:
    linear-gradient(90deg,rgba(16,40,68,.82) 0%,rgba(16,40,68,.66) 42%,rgba(16,40,68,.25) 72%,rgba(16,40,68,.12) 100%),
    url("assets/strand-spuren.jpg");
  background-size:cover;
  background-position:center 58%;
  background-repeat:no-repeat;
}
.path-content{width:min(100%,var(--content-max));margin:0 auto}
.path-content>*{max-width:650px}
.path-section .section-label{color:#f0dca1;margin-bottom:1.5rem}
.path-section h2{margin-bottom:2rem;font-size:clamp(2.55rem,4vw,4.2rem)}
.path-copy p{margin-bottom:1rem;color:rgba(255,255,255,.92);font-size:1.08rem;line-height:1.8}
.path-copy p:last-child{margin-bottom:0}
.path-quote{margin-top:2rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.45);color:rgba(255,255,255,.94);font-family:var(--serif);font-size:1.55rem;font-style:italic}

.about{background:var(--powder-strong);color:var(--ink)}
.about{
  display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:start;
  padding-left:max(var(--gutter),calc((100vw - var(--content-max))/2));
  padding-right:max(var(--gutter),calc((100vw - var(--content-max))/2))
}
.about>div{width:auto;max-width:none;margin:0}
.about .section-label{color:var(--coral)}
.about-visual{position:sticky;top:120px}
.portrait-placeholder{
  height:480px;
  overflow:hidden;
}
.portrait-placeholder img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.about-quote{padding:1.2rem 0;font-family:var(--serif);font-size:2rem;font-style:italic;color:var(--navy)}
.about-copy p{color:#425066}
.about-block{padding:2rem 0;border-top:1px solid rgba(16,40,68,.22)}
.about-block h3{margin-bottom:.8rem;color:var(--navy)}

.quote-section{background:var(--navy-deep);color:#fff;text-align:center}
.quote-section blockquote{max-width:var(--content-max);margin:0 auto;font-family:var(--serif);font-size:clamp(2.5rem,5vw,5rem);line-height:1.1;font-style:italic}

.contact{background:var(--ivory)}
.contact{
  display:grid;grid-template-columns:1fr .8fr;gap:9vw;
  padding-left:max(var(--gutter),calc((100vw - var(--content-max))/2));
  padding-right:max(var(--gutter),calc((100vw - var(--content-max))/2))
}
.contact>div,.contact>form{width:auto;max-width:none;margin:0}
.contact-copy p{color:var(--muted)}
.closing{font-family:var(--serif);font-size:2.2rem;color:var(--navy)!important}
.contact-form{display:grid;gap:1rem;padding:2rem;background:#fff;border-top:8px solid var(--coral)}
.contact-form label{display:grid;gap:.35rem;font-size:.78rem;font-weight:600}
.contact-form input,.contact-form textarea{width:100%;padding:.9rem;border:1px solid var(--line);border-radius:0;background:#fcfbf8;font:inherit}
.contact-form small{color:var(--muted)}

.legal-hero{
  padding:5rem var(--gutter) 1.5rem;
  background:var(--powder);
}
.legal-hero>*{width:min(100%,780px);margin-left:auto;margin-right:auto}
.legal-hero h1{font-size:clamp(2.6rem,4.6vw,4rem);margin-bottom:.6rem}
.legal-hero p{color:var(--muted);font-size:1.05rem}

.legal{background:#fff}
.legal>*{width:min(100%,780px)}
.legal-block{padding:2.4rem 0;border-top:1px solid var(--line)}
.legal-block:first-child{border-top:0;padding-top:0}
.legal-block h2{font-size:clamp(1.5rem,2.2vw,1.9rem);color:var(--navy);margin-bottom:1rem}
.legal-block h3{font-size:1.35rem;color:var(--navy);margin-top:1.8rem;margin-bottom:.7rem}
.legal-block p,.legal-block li{color:var(--muted);font-size:1rem;line-height:1.75}
.legal-block p{margin-bottom:.9rem}
.legal-block ul{margin:0 0 .9rem;padding-left:1.2rem}
.legal-block .meta{color:var(--ink)}
.legal-block a{color:var(--navy);text-decoration:underline}
.legal-note{margin-top:.5rem;padding:1.2rem 1.4rem;background:var(--ivory);border-left:3px solid var(--coral);font-size:.92rem;color:var(--muted)}

.site-footer{
  padding:2rem max(var(--gutter),calc((100vw - var(--content-max))/2));
  display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;background:var(--navy-deep);color:#fff
}
.site-footer div:first-child{display:flex;flex-direction:column}
.site-footer strong{font-family:var(--serif);font-size:1.95rem;font-weight:600;color:#fff}
.site-footer span{margin-top:.38rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.footer-links{display:flex;gap:1.2rem}
.footer-links a{font-size:.8rem}

@media(max-width:980px){
  .menu-button{display:block;border:1px solid var(--navy);background:transparent;padding:.6rem .8rem}
  .main-nav{display:none;position:absolute;top:86px;left:0;right:0;padding:1.5rem var(--gutter);background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start}
  .main-nav.open{display:flex}
  .hero{grid-template-columns:1fr;width:100%}
  .hero-copy{padding:7rem var(--gutter) 4rem}
  .hero-image{min-height:460px}
  .statement-grid,.toolbox-intro,.services-head,.about,.contact{grid-template-columns:1fr}
  .about,.contact{padding-left:var(--gutter);padding-right:var(--gutter)}
  .about-visual{position:relative;top:auto}
  .portrait-placeholder{height:420px}
}
@media(max-width:680px){
  .path-section{min-height:620px;padding-top:6rem;padding-bottom:6rem;background-image:linear-gradient(rgba(16,40,68,.75),rgba(16,40,68,.58)),url("assets/strand-spuren.jpg");background-position:58% center}
  .path-section h2{font-size:clamp(2.45rem,12vw,3.45rem)}
  .path-copy p{font-size:1rem}
  .path-quote{font-size:1.3rem}
  .section{padding-top:5.5rem;padding-bottom:5.5rem}
  h1{font-size:3.05rem}
  .journey-step{grid-template-columns:1fr;gap:.5rem}
  .services-list article{grid-template-columns:45px 1fr}
  .services-list article p{grid-column:2}
  .hero-actions{align-items:flex-start;flex-direction:column}
  .site-footer{flex-direction:column}
}
