@font-face{font-family:Filson;src:url('assets/filson-soft-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--teal:#00575e;--pink:#fa9bff;--blue:#89c4e2;--pale:#c9e5f4;--footer:#55a8d9}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--teal);font-family:Filson,Arial,sans-serif;font-weight:400;font-size:1.5625vw;line-height:1.2}h1,h2,p{margin:0;font-weight:400}h2{font-size:3.645833vw;line-height:1.2}p+p{margin-top:1.875vw}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}a:focus-visible{outline:3px solid currentColor;outline-offset:6px}img{display:block;max-width:100%}
header{height:6.979167vw;background:var(--teal);padding:1.88154vw 4.1512vw}header img{width:9.768vw;height:auto}
.hero{height:35.208333vw;background:url('assets/confetti.webp') center 49%/cover no-repeat;display:flex;justify-content:center;align-items:center;color:white;text-align:center}.hero h1{font-size:6.25vw;line-height:1.2;margin-top:3.125vw}
.about{height:39.375vw;background:var(--teal);color:white;position:relative}.brand-mark{position:absolute;left:8.2235vw;top:-3.90625vw;width:35vw;height:35vw}.brand-mark .smile{width:30.46875vw;height:33.125vw}.brand-mark .wordmark{position:absolute;width:21.5625vw;left:13.177vw;top:21.09375vw}.about-copy{position:absolute;left:46.979167vw;top:5.208333vw;width:46.770833vw}.about-copy h2{margin-bottom:2.1875vw}.about-copy p{line-height:1.2}
.services{position:relative;padding:0 3.958333vw 4.84375vw 3.4375vw;background:linear-gradient(to bottom,var(--teal) 0 36.041667vw,var(--pink) 36.041667vw 109.84375vw,var(--blue) 109.84375vw 100%)}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.96875vw 5.520833vw;position:relative;z-index:1}.service{height:85.729167vw;background:white;border-radius:21.77vw;position:relative;text-align:center;padding-top:45.052083vw}.service h2{font-size:3.645833vw;line-height:1.2;height:11.614583vw}.service-label{position:absolute;top:7.395833vw;height:4.6875vw;border:5px solid #e356ea;border-radius:100px;display:flex;align-items:center;justify-content:center;font-size:2.083333vw;text-transform:uppercase;color:var(--footer);width:52.083333vw;left:0}.andy .service-label,.william .service-label{left:auto;right:0;width:52.45vw}.andy .service-label{border-color:var(--footer);color:#e355ea}.gaia .service-label{border-color:#bbea56;color:var(--teal)}.portrait{position:absolute;top:13.28125vw;left:5.885417vw;width:30.208333vw;height:26.979167vw}.portrait img{width:100%;height:100%;object-fit:cover}.portrait span{position:absolute;left:21.354167vw;top:3.4375vw;text-align:left;font-size:1.5625vw;line-height:1.2;white-space:nowrap}.andy .portrait span{color:#9cd644}.gaia .portrait{left:5.15625vw;top:13.072917vw;width:31.40625vw;height:28.177083vw}.service-copy{width:31.25vw;margin:0 auto;line-height:1.2}.andy .service-copy{width:29.895833vw}.william .service-copy{width:30.625vw}.service-copy p+p{margin-top:1.875vw}.outline{position:absolute;width:84.635417vw;max-width:none;height:95.833333vw;left:-29.24346vw;top:111.06949vw;z-index:0;pointer-events:none}
.clients{position:relative;background:#ed9ff9;padding:6.041667vw 10.833333vw 5.3125vw 11.25vw}.clients ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:1.5625vw}.clients li{background:white;aspect-ratio:1;border-radius:.833333vw;overflow:hidden;display:flex;align-items:center;justify-content:center}.clients img{width:100%;height:100%;object-fit:contain}
.contact{height:27.291667vw;background:var(--pale);text-align:center;padding-top:6.145833vw}.contact h2{margin-bottom:2.083333vw}.contact address{font-style:normal;font-size:2.083333vw;line-height:1.5}.closing{position:relative;height:36.041667vw;background:var(--teal);color:#e9edef;padding:7.03125vw 12.708333vw}.closing>div{width:52.083333vw}.closing h2{margin-bottom:1.5625vw}.closing p{line-height:1.2}.closing p+p{margin-top:1.875vw}.closing>img{position:absolute;right:3.75vw;top:-6.40625vw;width:35.9375vw;height:39.0625vw;pointer-events:none}
footer{height:25.052083vw;background:var(--footer);color:#e9edef;text-align:center}.footer-brand{height:8.515625vw;border-bottom:1px solid #ffffff30;display:flex;justify-content:center;align-items:center}.footer-brand img{width:9.768vw;height:auto}footer h2{font-size:1.5625vw;line-height:1.2;margin:1.25vw 0 .625vw}.legal{display:grid;grid-template-columns:1fr 1fr 1fr;gap:3vw;padding:0 1.145833vw;font-size:1.5625vw;line-height:1.2}.legal p:first-child{text-align:left}.legal p:last-child{text-align:right}.legal p+p{margin:0}
@media(min-width:901px){body{overflow-x:clip}.service-label{border-width:max(2px,.260417vw)}}
@media(max-width:900px){body{font-size:16px;line-height:1.45;overflow-x:clip}h2{font-size:30px;line-height:1.2}p+p{margin-top:20px}header{height:72px;padding:18px 24px}header img{width:82px}.hero{height:340px;padding:30px 20px}.hero h1{font-size:clamp(32px,6.5vw,55px);line-height:1.2;margin:0}.about{height:auto;min-height:390px;padding:56px 28px 64px;display:flex;gap:30px;align-items:center}.brand-mark{position:relative;left:auto;top:auto;width:34%;height:210px;flex-shrink:0}.brand-mark .smile{width:100%;height:auto}.brand-mark .wordmark{width:80%;left:30%;top:60%}.about-copy{position:static;width:auto}.about-copy h2{margin-bottom:20px}.about-copy p{line-height:1.45}.services{padding:0 24px 48px;background:linear-gradient(var(--teal) 0 15%,var(--pink) 15% 60%,var(--blue) 60%)}.service-grid{gap:28px;grid-template-columns:repeat(2,minmax(0,1fr))}.service{height:auto;min-height:740px;border-radius:180px;padding:72px 20px 80px;display:flex;flex-direction:column;align-items:center}.service-label,.andy .service-label,.william .service-label{position:static;width:calc(100% + 40px);height:auto;min-height:40px;font-size:16px;flex-shrink:0;border-width:2px;line-height:1.2;padding:6px}.portrait,.gaia .portrait{position:relative;left:auto;top:auto;width:100%;height:210px;margin:16px 0 24px}.portrait img{object-fit:contain}.portrait span{font-size:12px;left:68%;top:24px}.service h2{font-size:28px;height:auto;min-height:75px;margin-bottom:22px}.service-copy,.andy .service-copy,.william .service-copy{width:100%;font-size:15px;line-height:1.4}.service-copy p+p{margin-top:20px}.outline{display:none}.clients{padding:38px 28px}.clients ul{gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.clients li{border-radius:10px}.contact{height:auto;padding:50px 20px 70px}.contact h2{margin-bottom:24px}.contact address{font-size:20px;line-height:1.7}.closing{height:auto;min-height:350px;padding:48px 28px}.closing>div{width:70%}.closing h2{margin-bottom:20px}.closing p{line-height:1.45}.closing p+p{margin-top:20px}.closing>img{width:25%;height:auto;right:16px;top:-35px}footer{height:auto;padding-bottom:30px}.footer-brand{height:90px}.footer-brand img{width:90px}footer h2{font-size:16px;margin:24px 0}.legal{font-size:13px;line-height:1.4;gap:16px;padding:0 24px}}
@media(max-width:560px){.hero{height:280px}.about{display:block;padding-top:32px}.brand-mark{width:180px;height:210px;margin:0 auto 24px}.about-copy{max-width:420px;margin:auto}.service-grid{grid-template-columns:1fr;gap:32px}.service{min-height:0;padding:60px 30px 84px;border-radius:180px}.service-label,.andy .service-label,.william .service-label{width:calc(100% + 60px)}.portrait,.gaia .portrait{height:220px;width:260px;max-width:100%;margin-bottom:22px}.portrait span{left:69%;top:28px}.service h2{font-size:29px;min-height:0;margin-bottom:24px}.service-copy,.andy .service-copy,.william .service-copy{font-size:16px;max-width:310px}.clients ul{grid-template-columns:repeat(3,minmax(0,1fr))}.closing>div{width:100%}.closing>img{width:95px;top:-32px;right:20px}.closing{padding-top:88px}.closing h2{font-size:30px}.contact h2{font-size:27px}.legal{grid-template-columns:1fr;font-size:14px;gap:24px}.legal p:first-child,.legal p:last-child{text-align:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Align each service label to the centre of its portrait, retaining the
   original extended outline. Mobile portraits and labels share a flex axis. */
.clients img.goldenes-quartier{width:78%;height:auto;object-fit:contain}
@media(min-width:901px){
 .service-label>span{position:absolute;left:20.989583vw;transform:translateX(-50%);white-space:nowrap}
 .andy .service-label>span,.william .service-label>span{left:calc(100% - 22.552083vw)}
 .gaia .service-label>span{left:20.859375vw}
 .gaia .portrait span{left:24.5vw}
}
@media(max-width:900px){.gaia .portrait span{left:79%;font-size:11px}}

/* Discreet legal navigation and readable standalone privacy page. */
.footer-legal-heading{display:flex;justify-content:center;align-items:baseline;gap:.6em;font-size:1.5625vw}
.footer-legal-heading>a{text-decoration:underline;text-underline-offset:3px}
.privacy-page{font-size:17px;line-height:1.6;background:#f5fbfd}
.privacy-content{max-width:850px;margin:0 auto;padding:48px 28px 64px;overflow-wrap:anywhere}
.privacy-content h1{font-size:clamp(28px,5vw,44px);line-height:1.15;margin:28px 0}
.privacy-content h2{font-size:24px;line-height:1.3;margin:32px 0 12px}
.privacy-content p+p{margin-top:16px}
.privacy-content a{text-decoration:underline;text-underline-offset:3px}
.privacy-content .back-link{font-size:15px}
.privacy-date{margin-top:32px;font-size:14px}
.privacy-footer{height:auto;padding:24px;font-size:15px;line-height:1.5;background:var(--teal);color:white}
.privacy-footer a{display:inline-block;padding:5px}
@media(max-width:900px){.footer-legal-heading{font-size:16px}.privacy-page{font-size:16px}}

/* Compact home footer; legal details live on separate pages. */
footer.compact-footer{height:auto;padding:24px 20px 20px}
.compact-footer .footer-brand{height:auto;border:0;margin:0 auto 16px}
.compact-footer .footer-brand img{width:90px;height:auto}
.compact-footer nav{font-size:14px;line-height:1.5}
.compact-footer nav a{display:inline-block;padding:5px 6px;text-decoration:underline;text-underline-offset:3px}
.imprint-details p{margin:0 0 24px}

.clients img.allianz-logo{width:78%;height:auto;object-fit:contain}
