/* Geometry and responsive compositions matched to the approved desktop/mobile boards. */
@font-face{font-family:'VP Sans';font-style:normal;font-weight:400;font-display:swap;src:url('./fonts/dm-sans-regular.ttf') format('truetype')}
@font-face{font-family:'VP Sans';font-style:normal;font-weight:500;font-display:swap;src:url('./fonts/dm-sans-medium.ttf') format('truetype')}
@font-face{font-family:'VP Sans';font-style:normal;font-weight:600;font-display:swap;src:url('./fonts/dm-sans-semibold.ttf') format('truetype')}
@font-face{font-family:'VP Display';font-style:normal;font-weight:400;font-display:swap;src:url('./fonts/libre-caslon-display.ttf') format('truetype')}
@font-face{font-family:'VP Headline';font-style:normal;font-weight:400;font-display:swap;src:url('./fonts/libre-caslon-text.ttf') format('truetype')}
:root{--paper:#faf8f5;--soft:#f0e9e4;--ink:#15171a;--muted:#616266;--rose:#946b60;--rose-dark:#754e44;--line:#dbc9c0;--serif:'VP Display',Georgia,'Times New Roman',serif;--sans:'VP Sans',Arial,Helvetica,sans-serif}
body{font-family:var(--sans)}
.container{width:min(1360px,92%)}
h1,h2,h3{letter-spacing:-.035em}
.mobile-label,.mobile-fee,.hero-mobile-note,.mobile-carousel-controls{display:none}
.header-inner{min-height:100px;gap:34px}
.brand img{width:clamp(230px,23.5vw,338px)}
.nav{gap:clamp(21px,2.6vw,37px);font-size:1rem}
.nav .btn{font-size:1rem;padding:11px 22px}
.btn{border-radius:3px}
.menu-toggle{border:0;padding:10px 0 10px 12px;width:40px;height:44px}
.menu-toggle span{display:block;background:var(--rose-dark);height:2px;width:28px;margin:6px 0;transition:transform .2s,opacity .2s}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(8px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-8px) rotate(-45deg)}
.home-page .hero{grid-template-columns:39.8% 60.2%;min-height:0;height:auto;max-width:1600px;align-items:stretch}
.home-page .hero-copy{padding:52px 16px 42px max(4vw,calc((100vw - 1472px)/2));align-self:center}
.home-page .hero .eyebrow{font-size:clamp(.625rem,.84vw,.8rem);letter-spacing:.15em;margin-bottom:23px}
.home-page .hero h1{font-family:'VP Headline',Georgia,serif;font-size:clamp(4rem,6.4vw,6.15rem);line-height:.96;letter-spacing:-.044em;margin-bottom:32px;text-wrap:initial}
.home-page .hero h1 span{display:block}
.home-page .hero .lead{font-size:clamp(1rem,1.33vw,1.25rem);line-height:1.45;max-width:none;margin-bottom:20px;letter-spacing:-.035em}
.home-page .hero .actions{display:grid;grid-template-columns:1.08fr .92fr;gap:14px;max-width:515px}
.home-page .hero .btn{font-size:clamp(.875rem,1.12vw,1.0625rem);gap:14px;padding:12px 9px;min-height:50px}
.home-page .hero-note{font-size:1rem;margin:25px 0 0}
.home-page .hero-photo{min-height:560px}
.home-page .hero-photo>img{object-fit:cover;object-position:center;height:100%;position:absolute;inset:0}
.trust-inner{padding:23px 0;min-height:85px}
.trust-item{font-size:1rem;gap:24px}
.trust-item .icon{width:41px;height:41px}
.home-page #leistungen{padding:34px 0 23px}
.home-page #leistungen .section-head{margin-bottom:23px}
.home-page #leistungen .eyebrow{font-size:.78rem;margin-bottom:9px}
.home-page #leistungen h2{font-family:'VP Headline',Georgia,serif;font-size:clamp(2.4rem,4.3vw,4.15rem);letter-spacing:-.05em;line-height:1.08;text-wrap:initial}
.services{gap:24px}
.service{padding:26px 25px 24px;border-radius:4px}
.service-heading{gap:20px;padding-bottom:20px;margin-bottom:14px;min-height:106px}
.service-heading .icon{width:49px;height:49px}
.service h3{font-size:2.55rem;line-height:1;margin:0 0 7px;letter-spacing:-.03em}
.service-heading p{font-size:1rem;line-height:1.4}
.service .topic-links{min-height:186px;margin-bottom:25px}
.topic-links li a{justify-content:flex-start;gap:17px;font-size:1rem;padding:7px 0}
.service-info{font-size:1rem!important;min-height:51px;gap:10px}
.service-request{margin-top:16px;align-self:center;background:none;border-width:0 0 1px;border-style:solid;border-color:#bfa19a;font-size:1rem;padding:0 0 4px}
.service .footnote{font-size:.875rem;white-space:normal;margin:18px 0 0}
.home-page .team-section{padding:24px 0 21px}
.home-page .team-section .section-head{margin-bottom:20px;align-items:center}
.home-page .team-section .eyebrow{font-size:.75rem;margin-bottom:9px}
.home-page .team-section h2{font-size:3.5rem;line-height:1.03;margin:0}
.team-intro{font-size:1.15rem;line-height:1.4;margin:5px 0 0}
.carousel-controls{gap:24px}
.round-btn{width:57px;height:57px;font-size:2.2rem;font-weight:400;color:var(--rose);display:flex;align-items:center;justify-content:center}
.team-track{gap:45px;padding-bottom:0}
.team-track .person-card{flex-basis:calc((100% - 90px)/3)}
.team-track .person-card img{aspect-ratio:1.23;object-fit:cover}
.team-track .person-card h3{font-size:1.8rem;line-height:1.1;margin:11px 0 4px}
.team-track .person-card p{font-size:1rem;line-height:1.35;min-height:48px;margin-bottom:11px}
.team-track .person-card .text-link{font-size:1rem}
.team-bottom{margin:10px 0 0;min-height:28px;display:flex;justify-content:end;position:relative}
.team-bottom>.text-link{font-size:.9rem;max-width:40%;text-align:right}
.carousel-dots{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:13px;align-items:center;bottom:3px}
.carousel-dot{width:13px;height:13px;border:0;background:#dfd3ce;border-radius:50%;padding:0}
.carousel-dot[aria-current=true]{background:var(--rose)}
.home-page .work-band{padding:23px 0 26px;border-top:0;gap:32px}
.home-page .work-band .eyebrow{font-size:.75rem;margin-bottom:9px}
.home-page .work-band h2{font-size:2.7rem;line-height:1.07;letter-spacing:-.038em;margin:0 0 7px}
.home-page .work-band p.muted{font-size:1.1rem;line-height:1.4}
.home-page .work-band>.text-link{font-size:1rem;white-space:nowrap;align-self:end;margin-bottom:10px}
.cta-band{padding:25px 0 23px;background:#2b2c2c}
.cta-band h2{font-size:3rem;margin:0 0 4px}
.cta-band p{font-size:1rem;margin:0 0 15px}
.cta-band .btn{min-width:235px;min-height:48px}
.footer{padding:16px 0;background:var(--paper)}
.footer-compact{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:42px}
.footer-logo{width:210px;margin:0}
.footer-address{font-size:.8rem!important;margin:0;color:var(--muted)}
.footer-primary{display:flex;align-items:center;gap:21px;flex-wrap:wrap}
.footer-primary>a,.footer-more{font-size:.8rem}
.footer-more{position:relative}
.footer-more summary{cursor:pointer;color:var(--muted)}
.footer-more>div{position:absolute;bottom:30px;right:0;min-width:205px;display:grid;gap:8px;padding:20px;background:var(--paper);border:1px solid var(--line);box-shadow:0 6px 25px #0002;z-index:5}
.chat-launch{bottom:95px;right:25px;padding:10px 21px;box-shadow:none;min-height:46px}
.sub-hero h1{font-size:clamp(3rem,5.2vw,5rem)}
.inner-page .prose h2{font-size:2.45rem}
.inner-page .tile h3{font-size:1.95rem}
@media(min-width:1600px){.home-page .hero-copy{padding-left:64px}.home-page .hero-photo{min-height:625px}}
@media(max-width:1150px) and (min-width:651px){
 .header-inner{min-height:82px;gap:22px}.brand img{width:245px}.nav{gap:23px;font-size:.84rem}.nav .btn{font-size:.84rem;padding:10px 14px}
 .home-page .hero-copy{padding-top:37px;padding-bottom:32px}.home-page .hero-photo{min-height:450px}.home-page .hero h1{font-size:6.25vw;margin-bottom:24px}.home-page .hero .eyebrow{font-size:.625rem;margin-bottom:20px}.home-page .hero .btn{font-size:.825rem;padding:10px 7px;min-height:42px;gap:9px}.home-page .hero-note{font-size:.875rem}
 .trust-item{font-size:.875rem;gap:15px}.trust-item .icon{width:33px;height:33px}.trust-inner{min-height:68px;padding:15px 0}
 .service{padding:23px 21px}.service-heading{display:flex;gap:13px;min-height:95px}.service-heading .icon{width:37px;height:37px;margin:0}.service h3{font-size:2rem}.service-heading p{font-size:.875rem}.topic-links li a{font-size:.875rem}.service .topic-links{min-height:164px}.service-info,.service-request{font-size:.85rem!important}.service-info{min-height:44px}.service .footnote{font-size:.8rem}
 .home-page .team-section h2{font-size:2.75rem}.team-intro{font-size:1rem}.team-track{gap:35px}.team-track .person-card{flex-basis:calc((100% - 70px)/3)}.team-track .person-card h3{font-size:1.5rem}.team-track .person-card p,.team-track .person-card .text-link{font-size:.875rem}.round-btn{width:45px;height:45px}
 .home-page .work-band h2{font-size:2.1rem}.home-page .work-band p.muted{font-size:.9rem}.home-page .work-band>.text-link{font-size:.8rem}.cta-band h2{font-size:2.5rem}.cta-band p{font-size:.85rem}.cta-band .btn{min-width:180px;min-height:43px;font-size:.85rem}
 .footer-logo{width:175px}.footer-primary{gap:14px}.footer-address,.footer-primary>a,.footer-more{font-size:.7rem!important}
}
@media(max-width:900px){.header-inner{min-height:78px}.nav{top:78px}.nav a,.nav .btn{font-size:1rem}.header .brand img{width:245px}.services{gap:18px}.home-page .hero .actions{grid-template-columns:1fr}.home-page .hero .lead{font-size:1rem}.footer-compact{gap:20px;flex-wrap:wrap}.footer-primary{gap:18px}.footer-address{font-size:.8rem!important}.footer-primary>a,.footer-more{font-size:.8rem!important}}
@media(min-width:821px) and (max-width:1150px){
 .header-inner{min-height:clamp(64px,7vw,81px);gap:20px}.header .brand img{width:clamp(210px,24vw,270px)}.menu-toggle{display:none}.nav{display:flex;position:static;padding:0;border:0;box-shadow:none;gap:20px}.nav a,.nav .btn{font-size:.8125rem}.nav .btn{min-height:37px;padding:8px 14px}
 .home-page .hero-copy{padding-top:30px;padding-bottom:20px}.home-page .hero-photo{min-height:39.25vw}.home-page .hero h1{font-size:6.4vw;line-height:.91;margin-bottom:18px}.home-page .hero .eyebrow{font-size:.625rem;line-height:1.3;margin-bottom:16px}.home-page .hero .lead{font-size:.9rem;line-height:1.4;margin-bottom:12px}.home-page .hero .actions{grid-template-columns:1.08fr .92fr;gap:10px}.home-page .hero .btn{font-size:.8125rem;min-height:37px;padding:8px 7px}.home-page .hero-note{font-size:.8125rem;line-height:1.4;margin-top:19px}
 .service{padding:18px}.service-heading{min-height:0;padding-bottom:12px;margin-bottom:10px}.service h3{font-size:1.75rem}.service-heading p{font-size:.8125rem;line-height:1.3}.service .topic-links{min-height:120px;margin-bottom:16px}.topic-links li a{font-size:.875rem;line-height:1.4;padding:2px 0}.service-info{min-height:38px;padding:8px 9px}.service .service-request{margin-top:12px;line-height:1.4}.service .footnote{font-size:.75rem;line-height:1.4;margin-top:12px}
}
@media(min-width:651px) and (max-width:820px){.services{grid-template-columns:1fr}.service-heading{min-height:0;display:flex}.service .topic-links{min-height:0}.home-page #leistungen h2{font-size:2.5rem}.home-page .work-band{display:block}.home-page .work-band>.text-link{margin-top:15px}}
@media(max-width:650px){
 .desktop-label,.mobile-fee{display:none!important}.mobile-label{display:inline}
 .container{width:88%}.header-inner{min-height:73px}.header .brand img{width:225px}.nav{top:73px}.menu-toggle{display:block}
 .home-page .hero{display:flex;flex-direction:column;border:0}.home-page .hero-copy{padding:25px 6% 19px;width:100%}.home-page .hero .eyebrow{font-size:.72rem;letter-spacing:.19em;line-height:1.5;margin:0 0 12px;max-width:none}
 .home-page .hero h1{font-size:clamp(3.45rem,15vw,4.5rem);letter-spacing:-.038em;line-height:.91;max-width:none;margin:0 0 20px}.home-page .hero h1 span{display:block}
 .home-page .hero .lead{font-size:1.08rem;letter-spacing:-.035em;line-height:1.45;margin:0 0 17px;max-width:390px}
 .home-page .hero .actions{display:grid;grid-template-columns:1fr;gap:10px;max-width:none}.home-page .hero .btn{min-height:48px;padding:11px 16px;font-size:1.03rem;gap:17px}
 .home-page .hero-note{display:none}.home-page .hero-photo{height:auto;aspect-ratio:1.72;min-height:0;width:100%}.home-page .hero-photo>img{position:static;width:100%;height:100%;object-fit:cover;object-position:center}
 .hero-mobile-note{display:block;margin:0;padding:13px 6% 15px;font-size:1rem;line-height:1.4;color:var(--muted);background:var(--paper)}
 .home-page .trust-strip{display:none}
 .home-page #leistungen{padding:27px 0 12px}.home-page #leistungen .section-head{margin-bottom:13px}.home-page #leistungen h2{font-family:var(--serif);font-size:2.5rem;line-height:1.07;letter-spacing:-.035em}
 .services{grid-template-columns:1fr;gap:13px}.service{padding:20px 18px 16px;background:#f1eae5;border-radius:6px}
 .service-heading{display:flex;gap:19px;padding:0 0 10px;margin:0 0 10px;min-height:0;border-color:#cdb4aa}.service-heading>div{flex:1;min-width:0}.service-heading .icon{width:53px;height:53px;margin:2px 0 0;stroke-width:1.35}
 .service h3{font-size:1.95rem;letter-spacing:-.02em;line-height:1.05;margin:0 0 4px}.service-heading p.mobile-label{display:block;font-size:.9375rem;line-height:1.45;margin:0;letter-spacing:-.02em;color:#585a60}
 .service-heading .mobile-fee{display:block!important;font-size:.75rem;line-height:1.4;margin:5px 0 0;color:var(--muted);letter-spacing:-.025em}
 .service .topic-links,.service .footnote{display:none}.service .service-info{background:var(--rose);color:#fff;min-height:40px;padding:8px 16px;font-size:1rem!important;gap:18px;border-color:var(--rose);margin:0}.service .service-info:hover{background:var(--rose-dark)}
 .service .service-request{margin-top:10px;font-size:.9375rem!important;padding:0;gap:17px;line-height:1.55}
 .home-page .team-section{padding:27px 0 20px;overflow:hidden}.home-page .team-section>.container{position:relative}.home-page .team-section .section-head{margin-bottom:15px;display:block}.home-page .team-section .eyebrow,.home-page .carousel-controls{display:none}.home-page .team-section h2{font-size:2.6rem;line-height:1.05;letter-spacing:-.03em}.team-intro{font-size:1rem;margin:2px 0 0;line-height:1.4}
 .team-stage{position:relative}.team-track{gap:17px;width:calc(100% + 6vw);padding:0 6vw 0 0;scroll-snap-type:x mandatory}.team-track .person-card{flex:0 0 91%;scroll-snap-align:start}.team-track .person-card img{aspect-ratio:1;object-fit:cover;object-position:center top;border-radius:6px}.team-track .person-card h3{margin:37px 0 5px;font-size:1.68rem;line-height:1.1}.team-track .person-card p{font-size:.9375rem;line-height:1.4;min-height:0;margin-bottom:9px}.team-track .person-card .text-link{font-size:.95rem}
 .mobile-carousel-controls{display:flex;position:absolute;left:12px;width:calc(91% - 24px);top:calc((100vw * .88 * .91) - 56px);justify-content:space-between;pointer-events:none}.mobile-carousel-controls .round-btn{width:43px;height:43px;background:var(--paper);border:0;font-size:2rem;color:var(--rose-dark);pointer-events:auto}.mobile-carousel-controls .round-btn:disabled{opacity:.7}
 .team-bottom{display:block;border-top:1px solid var(--line);padding-top:12px;margin-top:13px;position:static;min-height:0}.team-bottom>.text-link{max-width:100%;margin:0;font-size:.95rem;text-align:left}
 .carousel-dots{left:calc(50% - 4.5%);top:calc(100vw * .88 * .91 + 78px);bottom:auto;gap:12px}.carousel-dot{width:12px;height:12px}
 .home-page .work-band{display:block;padding:20px 0 30px}.home-page .work-band .eyebrow{font-size:.75rem;letter-spacing:.17em;margin:0 0 12px}.home-page .work-band h2{font-size:2.55rem;line-height:1.1;margin-bottom:10px}.home-page .work-band p.muted{font-size:1rem}.home-page .work-band>.text-link{font-size:.95rem;margin-top:17px}
 .cta-band{padding:33px 0}.cta-band h2{font-size:2.6rem;line-height:1.1;margin-bottom:10px}.cta-band p{font-size:.9375rem;margin-bottom:18px}.cta-band .btn{width:100%;min-height:47px}.cta-band .actions{gap:10px}
 .footer{padding:23px 0 calc(96px + env(safe-area-inset-bottom))}.footer-compact{display:flex;flex-direction:column;align-items:start;gap:18px}.footer-logo{width:180px}.footer-address{font-size:.8125rem!important}.footer-primary{gap:12px 18px}.footer-primary>a,.footer-more{font-size:.8125rem!important}.footer-more>div{left:0;right:auto}
 .mobile-actions{display:grid;grid-template-columns:minmax(0,1fr) 56px;gap:9px;padding:9px 4% calc(9px + env(safe-area-inset-bottom));background:rgba(250,248,245,.98)}.mobile-actions>.btn{min-height:53px;border-radius:7px;font-size:1.08rem;padding:10px 12px;gap:14px}.mobile-actions .mobile-chat{background:var(--rose-dark);border-color:var(--rose-dark);padding:8px}.mobile-chat .icon{width:29px;height:29px;color:white}
 .chat-launch{display:none}.inner-page .sub-hero h1{font-size:3rem}.inner-page .prose h2{font-size:2.2rem}
}
