/* Local fonts: included in this theme; no external font service. */
h1,h2,h3,p{margin-bottom:var(--text-space)}.hero h1{margin-bottom:calc(var(--text-space) + 4px)}.page-hero .button{margin-top:12px}.contact-band{padding-block:clamp(88px,8vw,132px)}.contact-band h2{margin-bottom:calc(var(--text-space) + 8px)}.contact-band p{margin-bottom:var(--cta-space)}.contact-band .check-entry{margin-top:28px;margin-bottom:0}.page-body>p{margin-bottom:var(--text-space)}.page-body>h2{margin-top:76px;margin-bottom:var(--text-space)}
.service-groups{margin-top:48px}.service-group{padding:32px 0;border-top:1px solid var(--line)}.service-group-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;margin-bottom:24px}.service-group-heading h2{margin-bottom:12px}.service-group-heading p{font-size:calc((var(--body-size)) * var(--display-scale,1));max-width:760px;margin:0}.service-group-heading>.text-link{flex-shrink:0;margin-top:12px;font-size:calc((var(--body-size)) * var(--display-scale,1))}.service-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.service-tile{display:flex;flex-direction:column;padding:30px;background:var(--surface);border:1px solid var(--line);border-radius:var(--button-radius);text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease}.service-tile:hover{border-color:var(--red);box-shadow:0 4px 16px #11121608}.service-tile h3{font-size:calc((var(--h3-size)) * var(--display-scale,1));line-height:1.15;margin-bottom:16px}.service-tile p{font-size:calc((var(--body-size)) * var(--display-scale,1));margin-bottom:26px}.tile-more{display:flex;align-items:center;gap:12px;color:var(--red);font-size:calc((16px) * var(--display-scale,1));margin-top:auto}.tile-more svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.5;fill:none}
@media(max-width:1100px){.service-group-heading{display:block}.service-group-heading>.text-link{margin-top:18px}.service-tile{padding:22px}.service-tile h3{font-size:calc((26px) * var(--display-scale,1))}}
@media(max-width:640px){.service-groups{margin-top:30px}.service-tiles{grid-template-columns:1fr;gap:14px}.service-group{padding-block:28px}.service-tile h3{font-size:calc((var(--h3-mobile)) * var(--display-scale,1))}.service-tile p,.service-group-heading p{font-size:calc((var(--body-mobile)) * var(--display-scale,1))}.service-tile p{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){.service-tile{transition:none}}
.cookie-joke[hidden]{display:none}.cookie-joke{position:fixed;left:24px;bottom:24px;z-index:35;width:360px;max-width:calc(100vw - 48px);background:var(--background);color:var(--ink);border:1px solid var(--line);border-top:4px solid var(--red);border-radius:var(--button-radius);padding:24px;box-shadow:0 8px 32px #1112161a}.cookie-joke h2{font-size:calc((24px) * var(--display-scale,1));line-height:1.15;letter-spacing:-.035em;margin-bottom:12px}.cookie-joke p{font-size:calc((16px) * var(--display-scale,1));line-height:1.5;margin-bottom:18px}.cookie-joke-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.cookie-joke .button{font-size:calc((14px) * var(--display-scale,1));padding:11px 15px}.cookie-joke-actions>a{font-size:calc((13px) * var(--display-scale,1));color:var(--muted)}
@media(max-width:640px){.cookie-joke{left:12px;bottom:78px;width:calc(100% - 24px);max-width:none;padding:20px;max-height:calc(100dvh - 140px);overflow:auto}.cookie-joke h2{font-size:calc((23px) * var(--display-scale,1))}}
@font-face{font-family:"KK Manrope";src:url("fonts/manrope.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"KK Fira Sans";src:url("fonts/fira-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"KK Fira Sans";src:url("fonts/fira-bold.woff2") format("woff2");font-weight:700 900;font-style:normal;font-display:swap}
@font-face{font-family:"KK Fira Sans";src:url("fonts/fira-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
body{background:var(--background);font-family:var(--font-body);font-size:calc((var(--body-size)) * var(--display-scale,1));line-height:var(--body-leading)}
h1,h2,h3,h4,.stats dt{font-family:var(--font-heading);font-weight:var(--heading-weight);color:var(--heading-color)}
h1{font-size:calc((clamp(var(--h1-mobile),6.1vw,var(--h1-size))) * var(--display-scale,1))}
h1,h2,h3{overflow-wrap:anywhere}
h2,.services h2{font-size:calc((clamp(var(--h2-mobile),3.25vw,var(--h2-size))) * var(--display-scale,1))}
h3{font-size:calc((var(--h3-size)) * var(--display-scale,1))}
.hero-intro,.page-hero .hero-intro{font-size:calc((clamp(var(--intro-mobile),2.05vw,var(--intro-size))) * var(--display-scale,1));color:var(--ink)}
.services p,.contact-band p{font-size:calc((calc(var(--body-size) + 4px)) * var(--display-scale,1))}
.services article{display:flex;flex-direction:column}.services .service-art{margin-top:auto;flex-shrink:0}.services .text-link{align-self:flex-start}
.personal p,.location,.page-body summary{font-size:calc((calc(var(--body-size) + 3px)) * var(--display-scale,1))}
.page-body p,.page-body li,.text-link{font-size:calc((calc(var(--body-size) + 2px)) * var(--display-scale,1))}
.steps p,.call-note{font-size:calc((calc(var(--body-size) - 1px)) * var(--display-scale,1))}
.site-header nav{font-size:calc((var(--nav-size)) * var(--display-scale,1))}
.button,.site-header .button,.floating-consultation{font-size:calc((var(--button-size)) * var(--display-scale,1));color:var(--button-text);background:var(--red);border-radius:var(--button-radius)}
.button:hover,.floating-consultation:hover{color:var(--button-text);background:var(--accent-hover)}
.floating-consultation{border-radius:var(--button-radius) 0 0 var(--button-radius)}
.floating-consultation:focus-visible{outline-color:var(--button-text)}
.brand{color:var(--heading-color)}.brand img{width:var(--logo-width);max-width:var(--logo-width);max-height:100px}
.contact-band,.notice{background:var(--surface)}
.skip-link,.menu-toggle,.site-header nav,.contact-form input,.contact-form textarea{background:var(--background)}
.contact-form input,.contact-form textarea{border-color:var(--line)}
.section{padding-block:clamp(var(--section-mobile),7vw,var(--section-space))}
.proof h3,.web-proof h3{font-size:calc((calc(var(--h3-size) + 8px)) * var(--display-scale,1))}
.web-examples h3{font-size:calc((calc(var(--h3-size) + 6px)) * var(--display-scale,1))}
.steps h3{font-size:calc((calc(var(--h3-size) - 5px)) * var(--display-scale,1))}
.workflow-frame h3{font-size:calc((calc(var(--h3-size) - 2px)) * var(--display-scale,1))}
.training h2{font-size:calc((calc(var(--h2-size) * .68)) * var(--display-scale,1))}
.contact-band h2{font-size:calc((clamp(var(--h2-mobile),4.3vw,calc(var(--h2-size) * 1.32))) * var(--display-scale,1))}
.page-body h2{font-size:calc((calc(var(--h2-size) * .76)) * var(--display-scale,1))}
.page-body h3{font-size:calc((calc(var(--h3-size) - 4px)) * var(--display-scale,1))}
@media(max-width:1200px){.site-header nav{gap:18px}}
@media(max-width:1100px){.site-header nav{font-size:calc((calc(var(--nav-size) + 2px)) * var(--display-scale,1))}}
@media(max-width:640px){
body{font-size:calc((var(--body-mobile)) * var(--display-scale,1))}
h1,.hero h1{font-size:calc((var(--h1-mobile)) * var(--display-scale,1))}
h2,.services h2,.page-body h2{font-size:calc((var(--h2-mobile)) * var(--display-scale,1))}
h3,.page-body h3{font-size:calc((var(--h3-mobile)) * var(--display-scale,1))}
.hero-intro,.page-hero .hero-intro{font-size:calc((var(--intro-mobile)) * var(--display-scale,1))}
.services p,.personal p,.page-body summary{font-size:calc((calc(var(--body-mobile) + 2px)) * var(--display-scale,1))}
.contact-band p{font-size:calc((calc(var(--body-mobile) + 3px)) * var(--display-scale,1))}
.page-body p,.page-body li,.text-link{font-size:calc((calc(var(--body-mobile) + 1px)) * var(--display-scale,1))}
.location{font-size:calc((var(--body-mobile)) * var(--display-scale,1))}.steps p{font-size:calc((calc(var(--body-mobile) - 1px)) * var(--display-scale,1))}
.button,.site-header .button,.floating-consultation{font-size:calc((calc(var(--button-size) - 1px)) * var(--display-scale,1))}
.brand img{width:var(--logo-mobile);max-width:var(--logo-mobile);max-height:70px}
.proof h3,.web-proof h3{font-size:calc((calc(var(--h3-mobile) + 8px)) * var(--display-scale,1))}
.steps h3{font-size:calc((calc(var(--h3-mobile) - 3px)) * var(--display-scale,1))}
.contact-band h2{font-size:calc((calc(var(--h2-mobile) + 6px)) * var(--display-scale,1))}
.training h2{font-size:calc((var(--h2-mobile)) * var(--display-scale,1))}
.floating-consultation{border-radius:var(--button-radius)}
.section{padding-block:var(--section-mobile)}
}

/* One central line-height applies to every heading, including cards and dialogs. */
body h1,body h2,body h3,body h4,body h5,body h6{line-height:var(--heading-leading,1.25)!important}
/* Separate homepage proof sections and give every example room to breathe. */
.proof-grid{margin-top:48px;column-gap:72px;row-gap:48px;align-items:start}
.proof{padding-block:12px}.proof h3{margin-bottom:32px}.proof .result{margin-block:36px}.proof>.text-link{margin-top:12px}
.workflow-frame{padding:32px}.workflow-frame>h3{margin-bottom:32px}.workflow-steps{gap:22px}.workflow-steps h4{margin-top:0;margin-bottom:22px}.workflow-panel{padding:22px 14px}
.web-examples{margin-top:88px;padding-top:64px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.65fr;gap:64px;align-items:start}
.web-examples>div:first-child h3{margin-bottom:28px}.web-examples>div:first-child p{margin-bottom:32px}.example-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.example-list>article{padding:22px;border:1px solid var(--line);border-radius:var(--button-radius);background:var(--surface);min-width:0}
.example-list>article .diagram-web{height:auto;width:100%;margin-bottom:28px}.example-list>article h4{margin:0 0 18px;font-size:calc(19px * var(--display-scale,1))}.example-list>article p{margin:0;font-size:calc(16px * var(--display-scale,1))}
@media(max-width:1100px){.web-examples{grid-template-columns:1fr;gap:36px}.proof-grid{gap:40px}.workflow-frame{padding:24px}}
@media(max-width:760px){.proof-grid{grid-template-columns:1fr;margin-top:32px}.web-examples{margin-top:56px;padding-top:40px}.example-list{grid-template-columns:1fr;gap:20px}.example-list>article{padding:26px}.example-list>article .diagram-web{max-width:260px;margin-bottom:24px}.workflow-steps{grid-template-columns:1fr;gap:28px}.workflow-panel{padding:24px}.proof .result{gap:14px;flex-wrap:wrap}}
.site-footer .image-transparency{grid-column:1/-1;max-width:900px;margin-top:12px;font-size:calc(13px * var(--display-scale,1));color:var(--muted)}
@media(min-width:1101px) and (max-width:1380px){.site-header .brand-name{font-size:calc(21px * var(--display-scale,1))}.site-header .brand-person{font-size:calc(12px * var(--display-scale,1))}.site-header{gap:20px}.site-header nav{gap:16px;font-size:calc(14px * var(--display-scale,1))}.site-header .button{font-size:calc(14px * var(--display-scale,1));padding:13px 16px}}
