/* One family, five editorial roles. Branding and animated name retain their geometry. */
:root{--type-display:clamp(2.625rem,5.1vw,4.5rem);--type-section:clamp(2rem,3.2vw,2.75rem);--type-title:1.5rem;--type-body:1.125rem;--type-ui:1rem;--type-small:.875rem;--leading-body:1.6;--tracking-title:-.025em}
body{font-size:var(--type-body);line-height:var(--leading-body);letter-spacing:0}
button,input,select,textarea{font-family:var(--font)}
main :is(h1,h2,h3,h4,h5){font-family:var(--font);font-weight:500;letter-spacing:var(--tracking-title);text-wrap:balance}
main :is(.hero h1,.page-hero h1){font-size:var(--type-display);line-height:1.08;letter-spacing:-.045em}
main :is(h2,.about-heading h2,.generation h2,.contact-intro h2,.offer-long h2,.case-end h2){font-size:var(--type-section);line-height:1.18}
main :is(h3,.service h3,.offer-entry h3,.case-content h3,.case-secondary h3,.agency-statement h3,.approach-grid h3,.contact-chat-entry h3,.offer-article h3,.agenda-list h3,.case-reading h2,.offer-article h2,.opening-title,.collaborations h2){font-size:var(--type-title);line-height:1.3;letter-spacing:var(--tracking-title)}
main .collaborations h2{font-weight:700}
main :is(p,.hero-sub,.hero-question,.hero-question+.hero-sub,.section-heading>p:not(.eyebrow),.service .question,.offer-entry p,.case-content>p:not(.case-category),.case-secondary>p:not(.case-category),.large-copy,.personal-line,.agency-statement p,.page-hero>p:not(.eyebrow),.reading p,.case-reading section p,.offer-article p,.agenda-list p,.outcomes-list,.offer-sidebar>.question){font-size:var(--type-body);line-height:var(--leading-body);letter-spacing:0;font-weight:400;text-wrap:pretty}
main .hero-question{font-weight:500;margin-top:28px;max-width:100%}
main .hero-question+.hero-sub{margin-top:12px;max-width:48ch}
main :is(.reading,.case-reading,.offer-article){max-width:65ch}
main p+p{margin-top:1.25em}
main :is(.eyebrow,.small,.offer-entry-meta,.case-category,.service .service-note,.offer-facts,.agenda-time,.case-note,.full-name,.format-label,.offer-duration,.contact-intro .eyebrow){font-size:var(--type-small);line-height:1.5;letter-spacing:0;font-weight:400}
main .eyebrow{font-weight:500;letter-spacing:.06em;margin-bottom:20px}
main :is(.button,.text-link,.email-link,.contact-intro>.email-link,.offer-sidebar .button,.offer-sidebar nav a,.back-link),.site-header nav a,.menu-toggle>.menu-label{font-size:var(--type-ui);line-height:1.5;letter-spacing:0}
main :is(.button,.text-link){font-weight:500;white-space:normal}
main :is(.offer-entry h3,.case-content h3,.case-secondary h3,.approach-grid h3,.contact-chat-entry h3){margin-bottom:16px}
main .section-heading{margin-bottom:40px}
main .section-heading>p:not(.eyebrow){margin-top:20px}
main .hero-name{line-height:1.5;letter-spacing:0;font-weight:400;margin-bottom:24px}
/* UI text uses one readable size; supporting labels are deliberately secondary. */
.conversation-dialog :is(p,.chat-message p,.chat-topic-options button,.conversation-heading .small,#chat-recommendations>p,.chat-offer-card p){font-size:var(--type-ui);line-height:1.6;letter-spacing:0}
.conversation-dialog :is(.conversation-heading h3,#chat-recommendations h4,.chat-offer-card h5){font-size:var(--type-title);line-height:1.3;font-weight:500;letter-spacing:var(--tracking-title)}
.conversation-dialog :is(.chat-disclosure,.chat-speaker,.small,#chat-recommendations>.small,.text-button,.chat-progress,.chat-window-bar,label),.conversation-dialog .chat-reply-actions .text-button{font-size:var(--type-small);line-height:1.5;letter-spacing:0}
.conversation-dialog :is(.button,.chat-offer-card .button,.chat-next-actions .button),.chat-launcher{font-size:var(--type-ui);line-height:1.5;font-weight:500}
.site-footer :is(p,a,.footer-note),.replay-intro{font-size:var(--type-small);line-height:1.5}
@media(max-width:767px){:root{--type-display:clamp(2.5rem,10.4vw,4rem);--type-body:1rem}.hero h1{white-space:normal}.hero-line{max-width:100%}main .section-heading{margin-bottom:32px}main .hero-actions .button{font-size:var(--type-ui)}}
/* The opening statement shares the collaboration heading's title role. */
main .opening .opening-title{font-size:var(--type-title);line-height:1.3;letter-spacing:var(--tracking-title);font-weight:500}
/* Compact, persistent language choice. */
 .language-switch{position:relative;flex-shrink:0;font-size:.875rem;margin-left:auto}
.language-switch>summary{display:flex;align-items:center;justify-content:center;gap:8px;min-width:52px;min-height:44px;padding:8px;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-weight:500;list-style:none}
.language-switch>summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.language-switch[open]>summary{background:var(--soft)}
.language-options{position:absolute;right:0;top:calc(100% + 8px);min-width:140px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--bg);box-shadow:0 8px 24px #06163820;z-index:12}
.language-options a{display:flex;align-items:center;min-height:44px;padding:8px 12px;border-radius:6px;text-decoration:none;color:var(--muted);font-weight:400}
.language-options a[aria-current]{color:var(--accent);font-weight:600;background:var(--soft)}
.language-options a:hover{color:var(--accent);background:var(--surface)}
.menu-toggle .menu-icon{display:block;width:20px;height:16px;flex-shrink:0;background:linear-gradient(currentColor,currentColor) top/100% 2px no-repeat,linear-gradient(currentColor,currentColor) center/100% 2px no-repeat,linear-gradient(currentColor,currentColor) bottom/100% 2px no-repeat}
html[lang="de"]{--type-display:clamp(2.25rem,4.15vw,3.75rem)}
html[lang="de"] .hero h1{white-space:normal}
html[lang="de"] main :is(h2,h3,p,li){overflow-wrap:break-word;hyphens:auto}
html[lang="de"] .brand-descriptor{hyphens:none}
@media(min-width:768px) and (max-width:1150px){.nav-wrap{gap:12px}.site-header nav{gap:16px}.site-header nav a{font-size:.875rem}}
@media(max-width:767px){.language-switch{margin-left:0}.nav-wrap{gap:8px}html[lang="de"]{--type-display:clamp(1.875rem,8.2vw,3.75rem)}}
@media(max-width:420px){.menu-label{display:none}.enhanced .menu-toggle{min-width:32px;justify-content:center}.nav-wrap{gap:4px}.language-switch>summary{min-width:48px}}
/* Keep the fitted name on one line; avoid distracting hyphenation in short copy. */
html[lang="de"] main .hero-name{white-space:nowrap;hyphens:none;overflow-wrap:normal}
html[lang="de"] main .hero-sub{hyphens:none}
@media(max-width:767px){.enhanced .menu-toggle{min-width:44px;min-height:44px}}
/* A compact set of touch-friendly conversation tiles. */
.conversation-dialog .chat-topic-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
.conversation-dialog .chat-topic-options button{display:flex;align-items:center;justify-content:center;text-align:center;min-height:76px;padding:10px 7px;border-radius:10px;font-size:.875rem;line-height:1.35;font-weight:500;overflow-wrap:anywhere;hyphens:auto}
.conversation-dialog .conversation-heading h3{margin-bottom:6px}
.conversation-dialog .conversation-heading p{margin:0}
.conversation-dialog .chat-disclosure{margin:10px 0 16px;padding-bottom:12px;font-size:.75rem;line-height:1.5}
.conversation-dialog #chat-more>summary{font-size:.875rem}
/* Consent choices have equal prominence and never gate the page content. */
.storage-banner{position:fixed;z-index:45;left:20px;right:20px;bottom:20px;max-width:1040px;margin-inline:auto;padding:24px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 40px #06163825}
.storage-banner h2{font-size:1.125rem;font-weight:500;line-height:1.3;letter-spacing:0;margin:0 0 8px}
.storage-banner p,.storage-banner a{font-size:.875rem;line-height:1.5}.storage-banner a{display:inline-flex;align-items:center;min-height:36px;color:var(--accent)}
.storage-actions{display:flex;flex-direction:column;gap:10px}.storage-actions .button{font-size:.875rem;min-width:190px;white-space:normal}
body:has(.storage-banner:not([hidden])) .chat-launcher{visibility:hidden}
.site-footer>div{flex-wrap:wrap}.site-footer .text-button{padding:0}
.legal-page{padding-top:56px;padding-bottom:80px}.legal-page>h1{margin-bottom:32px;font-size:var(--type-section)}
.legal-page section{margin-top:36px}.legal-page section h2{font-size:var(--type-title);margin-bottom:16px}.legal-page address{font-style:normal;line-height:1.7}.legal-page li{margin-block:8px}.legal-page a{overflow-wrap:anywhere}
@media(max-width:767px){.storage-banner{left:12px;right:12px;bottom:12px;padding:18px;grid-template-columns:1fr;gap:14px;max-height:calc(100dvh - 24px);overflow-y:auto}.storage-actions{flex-direction:row}.storage-actions .button{min-width:0;flex:1;padding-inline:12px}.conversation-dialog .chat-topic-options button{min-height:72px;font-size:.8125rem}}
.conversation-dialog .chat-topic-options button{hyphens:none;overflow-wrap:normal;word-break:normal}
@media(max-width:767px){.conversation-dialog .chat-topic-options button{font-size:.875rem;line-height:1.4}}
/* Blue conversation tiles, matching the established action color in both themes. */
.conversation-dialog .chat-topic-options button{background:#1555d8;border-color:#1555d8;color:#fff;transition:background .18s ease,border-color .18s ease}
.conversation-dialog .chat-topic-options button:hover{background:#1045b2;border-color:#1045b2;color:#fff}
.conversation-dialog .chat-topic-options button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
/* Audience routes keep the existing editorial layout and type scale. */
.audience-themes{margin-top:28px;color:var(--muted);max-width:65ch}
.service .audience-talent{margin-top:20px}.service .text-link{display:flex;width:fit-content;margin-top:12px}
.audience-jump{display:flex;flex-wrap:wrap;gap:12px 28px;padding-bottom:30px}
.audience-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
main .offer-long .audience-label{font-size:var(--type-title);font-weight:500;line-height:1.3;color:var(--ink);margin-bottom:20px}
.route-anchor{display:block;scroll-margin-top:112px}
.generation .text-link{display:flex;width:fit-content}
.offer-directory>.offer-entry:last-child:nth-child(odd){grid-column:1/-1}
.offer-directory>.offer-entry:last-child:nth-child(odd) p{max-width:65ch}
.conversation-dialog #chat-audience{margin-bottom:20px}
/* Themes are the primary hierarchy; audience labels describe each offer. */
.theme-offerings .section-heading{margin-bottom:28px}
.offer-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}
.offer-filters button{font:inherit;font-size:var(--type-ui);font-weight:500;line-height:1.4;min-height:44px;padding:10px 17px;background:var(--bg);color:var(--muted);border:1px solid var(--line);border-radius:8px}
.offer-filters button[aria-pressed="true"]{background:var(--button);color:var(--button-text);border-color:var(--button)}
.offer-filters button:hover{border-color:var(--accent)}
.theme-section{padding:32px 0 40px;border-top:1px solid var(--line)}
main .theme-section h3{font-size:var(--type-title);line-height:1.3;color:var(--accent);margin-bottom:12px}
main .theme-section .theme-summary{font-size:var(--type-body);line-height:1.6;color:var(--muted);margin:0 0 24px;max-width:65ch}
.theme-offer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.theme-offer{padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
main .theme-offer .theme-audience{font-size:var(--type-small);font-weight:500;line-height:1.5;letter-spacing:.02em;color:var(--muted);margin:0 0 16px}
main .theme-offer h4{font-size:var(--type-title);line-height:1.3;font-weight:500;margin:0 0 14px}
main .theme-offer .theme-description{font-size:var(--type-ui);line-height:1.6;color:var(--muted);margin:0 0 24px}
.theme-offer .text-link{margin-top:auto;white-space:normal}
.audience-detail-section{padding-bottom:60px}.audience-detail-section>h2{margin-bottom:32px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:1000px){.theme-offer{padding:22px}}
@media(max-width:767px){.theme-offer-grid{grid-template-columns:1fr}.theme-section{padding:28px 0 32px}.offer-filters{margin-bottom:28px;gap:8px}.offer-filters button{font-size:var(--type-small);padding-inline:12px}.theme-offer{padding:24px}.theme-offer .theme-audience{margin-bottom:12px}}
main .theme-offer h4{font-size:var(--type-body)}
.theme-offerings[data-selected-audience]:not([data-selected-audience="all"]) .theme-offer-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.theme-offer .theme-description{max-width:65ch}
/* One learning cycle, expressed in the language of each engagement. */
.approach-loop{color:#fff;max-width:65ch;font-size:var(--type-body);line-height:1.6;margin-top:24px}
.approach-section.wrap .agency-statement{margin-top:32px}
.offer-method{margin-top:32px}
.work-cycle{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-direction:column;gap:24px}
.work-cycle li{padding-left:20px;border-left:2px solid var(--line)}
main .work-cycle h4{font-size:var(--type-body);line-height:1.4;font-weight:500;margin:0 0 8px;letter-spacing:0}
main .work-cycle p,main .case-reading .work-cycle p{font-size:var(--type-body);line-height:1.6;margin:0;color:var(--muted)}
main .case-method h2{font-size:var(--type-title)}
.reading h3{margin-block:32px 16px}.reading h3+p{margin-top:0}.reading .text-link{margin-block:14px 8px}
@media(max-width:767px){.work-cycle{gap:20px}.work-cycle li{padding-left:16px}}
.approach-outcome{margin-top:28px;padding:28px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:14px}
.approach-outcome .approach-loop{color:var(--ink);margin:0}
.approach-section.wrap .approach-outcome .agency-statement{margin-top:24px;padding-top:24px;border-color:var(--line)}
.approach-outcome .agency-statement h3{color:var(--accent)}
.approach-outcome .agency-statement p{color:var(--muted)}
.chat-recap{padding-left:20px;margin:16px 0 24px}.chat-recap li{font-size:var(--type-ui);line-height:1.6;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.chat-recap li+li{margin-top:12px}
@media(max-width:767px){.approach-outcome{padding:24px}}

/* The full name has its own type size, independent of translated headlines. */
main .hero .hero-copy .hero-name{font-size:clamp(1rem,1.6vw,1.375rem);white-space:nowrap;hyphens:none;overflow-wrap:normal;width:max-content;max-width:none}
