/* Start page design system. Detail and legal pages retain their own styles. */
.os-home { --studio-ink:#181818; --studio-muted:#64615d; --studio-line:#deddd9; --studio-orange:#d9430c; --studio-soft:#faf8f5; background:#fff; color:var(--studio-ink); }
.os-home .navbar-logo-left { border-radius:0; background:#ffffffed; border-bottom:1px solid #18181812; backdrop-filter:blur(16px); }
.os-home .navbar-logo-left-container.shadow-three { padding:20px max(6vw,24px); }
.os-home .navbar-brand img { width:245px; height:auto; }
.os-home .nav-link, .os-home .nav-link-accent { font-family:'Google Sans',sans-serif; font-size:15px; letter-spacing:0; }
.os-home .button-primary { background:#ff5a24; color:#181818; padding:15px 24px; border-radius:100px; font:500 15px/1.3 'Google Sans',sans-serif; text-transform:none; letter-spacing:0; }
.os-home .button-primary:hover { background:#ff794c; }
.os-page { font:400 18px/1.65 'Roboto',sans-serif; }
.os-page *, .os-footer * { box-sizing:border-box; }
.os-page h2,.os-page h3,.os-page h4,.os-page summary,.os-page a,.os-page label,.os-footer { font-family:'Google Sans',sans-serif; }
.os-page h2,.os-page h3,.os-page p { margin:0; }
.os-page h2 { font-size:clamp(40px,4.5vw,72px); line-height:1.06; font-weight:500; letter-spacing:-.045em; color:var(--studio-ink); }
.os-page h2 span { color:var(--studio-orange); }
.os-page h3 { font-size:clamp(26px,2.4vw,38px); line-height:1.15; font-weight:500; letter-spacing:-.035em; }
.os-page p { color:var(--studio-muted); }
.os-page a { color:inherit; }
.os-page a:focus-visible,.os-page summary:focus-visible,.os-footer a:focus-visible { outline:2px solid var(--studio-orange); outline-offset:6px; }
.os-section { padding:110px max(6vw,24px); scroll-margin-top:100px; }
.os-wrap { width:100%; max-width:1600px; margin:0 auto; }
.os-section-head { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:end; margin-bottom:55px; }
.os-section-head > p { max-width:390px; justify-self:end; }
.os-kicker { display:flex; align-items:center; gap:14px; font:500 15px/1.4 'Google Sans',sans-serif; margin-bottom:25px; color:var(--studio-muted); }
.os-kicker b { display:inline-flex; align-items:center; justify-content:center; min-width:35px; height:28px; padding:0 7px; border:1px solid #d9430c40; border-radius:100px; color:var(--studio-orange); font-weight:500; font-size:13px; }
.os-projects { border-top:1px solid var(--studio-line); }
.os-project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px 28px; }
.os-project { min-width:0; }
.os-project:nth-child(even) { margin-top:0; }
.os-project-image { display:block; position:relative; overflow:hidden; border-radius:16px; background:#f1efeb; aspect-ratio:1.42; }
.os-project-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .65s cubic-bezier(.2,.7,.2,1); }
.os-project-image:hover img { transform:scale(1.045); }
.os-project-image::after { content:'Projekt ansehen ↗'; position:absolute; bottom:20px; right:20px; background:#fff; padding:12px 18px; border-radius:100px; font-size:14px; opacity:0; transform:translateY(8px); transition:opacity .2s,transform .2s; }
.os-project-image:hover::after,.os-project-image:focus-visible::after { opacity:1; transform:none; }
.os-project-meta { font-size:14px; margin:21px 0 9px !important; }
.os-project-title { display:flex; align-items:center; justify-content:space-between; gap:18px; text-decoration:none; }
.os-project-title h3 { font-size:clamp(22px,2vw,30px); }
.os-arrow { display:inline-flex; width:42px; height:42px; align-items:center; justify-content:center; border:1px solid var(--studio-line); border-radius:50%; flex-shrink:0; transition:background .2s; }
.os-project-title:hover .os-arrow { background:#ff5a24; border-color:#ff5a24; }
.os-testimonials { background:var(--studio-soft); }
.os-quotes { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.os-quote { margin:0; padding:30px 0 0; border-top:1px solid #cbc6bf; display:flex; flex-direction:column; }
.os-stars { color:var(--studio-orange); font-size:19px; letter-spacing:4px; margin-bottom:23px; }
.os-quote blockquote { border:0; margin:0 0 30px; padding:0; font:400 clamp(20px,1.8vw,27px)/1.5 'Google Sans',sans-serif; letter-spacing:-.025em; }
.os-quote figcaption { margin-top:auto; display:flex; align-items:center; gap:14px; font-size:14px; color:var(--studio-muted); }
.os-quote figcaption img { width:48px; height:48px; border-radius:50%; object-fit:cover; }
.os-quote figcaption strong { display:block; color:var(--studio-ink); font:500 16px/1.5 'Google Sans',sans-serif; }
.os-service-list { border-top:1px solid var(--studio-line); }
.os-service { display:grid; grid-template-columns:1fr 1fr 230px; gap:40px; border-bottom:1px solid var(--studio-line); padding:42px 0; align-items:start; }
.os-service-number { display:block; color:var(--studio-orange); font:500 15px/1.5 'Google Sans',sans-serif; margin-bottom:20px; }
.os-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:23px; }
.os-chip { display:inline-block; font:400 13px/1.4 'Google Sans',sans-serif; padding:7px 11px; border:1px solid var(--studio-line); border-radius:100px; color:var(--studio-muted); }
.os-service-copy { padding-top:40px; }
.os-service-copy p { font-size:17px; }
.os-text-link { display:inline-flex; align-items:center; gap:25px; font-weight:500; font-size:16px; text-decoration:none; border-bottom:1px solid #18181855; padding:10px 0; margin-top:20px; }
.os-text-link:hover { color:var(--studio-orange); border-color:var(--studio-orange); }
.os-service-image { width:100%; height:220px; object-fit:cover; border-radius:12px; }
.os-about { background:var(--studio-soft); }
.os-about-grid { display:grid; grid-template-columns:.9fr 1fr; gap:8%; align-items:start; }
.os-portrait { margin:0; }
.os-portrait img { display:block; width:100%; height:auto; max-height:720px; object-fit:cover; object-position:50% 25%; border-radius:16px; }
.os-portrait figcaption { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--studio-line); margin-top:20px; padding-top:16px; font:400 14px/1.5 'Google Sans',sans-serif; color:var(--studio-muted); }
.os-about-copy h2 { margin-bottom:18px; }
.os-about-role { font-family:'Google Sans',sans-serif; color:var(--studio-orange) !important; margin-bottom:28px !important; font-size:19px; }
.os-about-story { font-size:17px; line-height:1.75; }
.os-about-story span { color:var(--studio-ink); font-weight:500; }
.os-values { margin-top:95px; }
.os-values > h3 { margin-bottom:35px; }
.os-value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:35px; }
.os-value { border-top:1px solid var(--studio-line); padding-top:22px; }
.os-value > span { color:var(--studio-orange); font-size:14px; }
.os-value h4 { margin:13px 0 10px; font-size:22px; font-weight:500; letter-spacing:-.025em; }
.os-value p { font-size:16px; }
.os-values-note { margin-top:40px; max-width:720px; font-size:17px; }
.os-invitation { background:#fff1e9; position:relative; overflow:hidden; text-align:center; }
.os-invitation .os-wrap { position:relative; z-index:1; max-width:920px; }
.os-invitation .os-kicker { justify-content:center; }
.os-invitation h2 { font-size:clamp(46px,6vw,92px); }
.os-invitation p { max-width:650px; margin:28px auto 0; }
.os-invitation::before,.os-invitation::after { content:''; position:absolute; border:1px solid #ed865a38; border-radius:50%; width:650px; height:650px; top:-140px; right:-410px; }
.os-invitation::after { width:730px; height:730px; right:-430px; top:-180px; }
.os-button { display:inline-flex; justify-content:space-between; align-items:center; gap:35px; min-height:60px; padding:18px 27px; border-radius:100px; background:#ff5a24; color:#181818 !important; font:500 17px/1.4 'Google Sans',sans-serif; text-decoration:none; border:1px solid #ff5a24; transition:transform .2s,background .2s; }
.os-button:hover { transform:translateY(-3px); background:#ff794c; }
.os-invitation .os-button { margin-top:32px; }
.os-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:9%; align-items:start; }
.os-contact-copy > p { margin:25px 0 30px; max-width:400px; }
.os-contact-links { display:flex; flex-direction:column; align-items:start; gap:17px; }
.os-contact-links a { font-size:clamp(19px,2vw,27px); text-decoration:none; letter-spacing:-.025em; }
.os-contact-links a:hover { color:var(--studio-orange); }
.os-contact-place { margin-top:32px !important; font-size:15px; }
.os-page .uui-contact04_form-wrapper { margin:0; width:100%; max-width:none; }
.os-page .uui-contact04_form { display:flex; flex-direction:column; gap:22px; }
.os-page .form-field-2col { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.os-page .uui-form-field-wrapper { min-width:0; }
.os-page .uui-field-label { color:#181818; font:500 15px/1.5 'Google Sans',sans-serif; margin-bottom:9px; }
.os-page .uui-form_input { width:100%; min-height:55px; margin:0; padding:14px 16px; border:1px solid #d9d6d1; border-radius:10px; background:#faf9f7; box-shadow:none; color:#181818; font:400 16px/1.5 'Roboto',sans-serif; }
.os-page .uui-form_input:focus { border-color:#d9430c; outline:2px solid #ff5a2430; outline-offset:2px; background:#fff; }
.os-page .uui-form_input.text-area { min-height:155px; resize:vertical; }
.os-page .uui-form-button-wrapper { display:flex; flex-direction:column; align-items:stretch; gap:18px; }
.os-page .datenschutzklausel { font:400 13px/1.6 'Roboto',sans-serif; color:var(--studio-muted); }
.os-page .uui-button-2 { width:100%; min-height:60px; padding:18px 25px; background:#ff5a24; border:0; border-radius:100px; box-shadow:none; color:#181818; font:500 17px/1.4 'Google Sans',sans-serif; text-transform:none; letter-spacing:0; }
.os-page .uui-button-2:hover { background:#ff794c; }
.os-faq { background:var(--studio-soft); }
.os-faq-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:9%; align-items:start; }
.os-faq-intro p { margin-top:25px; }
.os-faq-list { border-top:1px solid var(--studio-line); }
.os-faq-item { border-bottom:1px solid var(--studio-line); }
.os-faq-item summary { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:23px 0; font-size:20px; font-weight:500; line-height:1.4; cursor:pointer; list-style:none; }
.os-faq-item summary::-webkit-details-marker { display:none; }
.os-faq-item summary::after { content:'+'; flex-shrink:0; font-size:27px; color:var(--studio-orange); font-weight:400; }
.os-faq-item[open] summary::after { content:'−'; }
.os-faq-item[open] summary { color:var(--studio-orange); }
.os-faq-item > p { font-size:17px; padding:0 35px 25px 0; }
.os-footer { padding:65px max(6vw,24px) 28px; color:#181818; background:#fff; }
.os-footer-top,.os-footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:25px; }
.os-footer nav { display:flex; gap:28px; flex-wrap:wrap; }
.os-footer a { color:#181818; text-decoration:none; font-size:15px; }
.os-footer a:hover { color:#d9430c; }
.os-footer-mark { font-size:clamp(80px,18vw,290px); line-height:1.05; font-weight:600; letter-spacing:-.065em; margin:30px 0; display:flex; justify-content:space-between; align-items:center; }
.os-footer-mark span { color:#ff5a24; font-weight:400; font-size:.65em; }
.os-footer-bottom { border-top:1px solid var(--studio-line); padding-top:23px; color:var(--studio-muted); font-size:14px; }
@media (min-width:1800px) { .os-section,.os-footer { padding-left:max(6vw,calc((100vw - 1600px)/2)); padding-right:max(6vw,calc((100vw - 1600px)/2)); } }
@media (max-width:1100px) { .os-service { grid-template-columns:1fr 1fr; } .os-service-image { display:none; } .os-quotes { gap:25px; } .os-about-grid { gap:5%; } }
@media (max-width:991px) { .os-home .nav-menu-wrapper { background:#fff; border-bottom:1px solid var(--studio-line); } .os-home .nav-menu-two { background:#fff; } .os-section { padding-top:80px; padding-bottom:80px; } .os-section-head { gap:25px; } .os-value-grid { grid-template-columns:1fr 1fr; } .os-contact-grid,.os-faq-grid { gap:40px; } .os-home .navbar-logo-left-container.shadow-three { padding-top:16px; padding-bottom:16px; } }
@media (max-width:700px) {
  .os-section { padding:85px 24px 65px; }
  .os-page { font-size:17px; }
  .os-home .navbar-brand img { width:220px; }
  .os-home .navbar-logo-left-container.shadow-three { padding:15px 24px; }
  .os-section-head,.os-about-grid,.os-contact-grid,.os-faq-grid { grid-template-columns:1fr; gap:28px; }
  .os-section-head { margin-bottom:35px; }
  .os-section-head > p { justify-self:start; }
  .os-kicker { margin-bottom:20px; font-size:14px; }
  .os-project-grid { grid-template-columns:1fr; gap:35px; }
  .os-project:nth-child(even) { margin-top:0; }
  .os-project-image { border-radius:12px; }
  .os-project-image::after { display:none; }
  .os-quotes { grid-template-columns:1fr; gap:35px; }
  .os-quote blockquote { font-size:23px; margin-bottom:24px; }
  .os-service { grid-template-columns:1fr; gap:20px; padding:32px 0; }
  .os-service-copy { padding:0; }
  .os-service-number { margin-bottom:12px; }
  .os-chips { margin-top:17px; }
  .os-about-grid { gap:35px; }
  .os-portrait img { max-height:470px; }
  .os-values { margin-top:55px; }
  .os-value-grid { grid-template-columns:1fr; gap:25px; }
  .os-value h4 { margin-top:8px; }
  .os-invitation { text-align:left; }
  .os-invitation .os-kicker { justify-content:start; }
  .os-invitation p { margin-top:22px; }
  .os-contact-grid { gap:40px; }
  .os-page .form-field-2col { grid-template-columns:1fr; gap:22px; }
  .os-faq-item summary { font-size:18px; }
  .os-faq-item > p { font-size:16px; padding-right:0; }
  .os-footer { padding:40px 24px 25px; }
  .os-footer-top,.os-footer-bottom { align-items:flex-start; flex-direction:column; gap:20px; }
  .os-footer nav { gap:16px 23px; }
  .os-footer-mark { margin:25px 0; font-size:clamp(55px,17vw,110px); }
}
@media (prefers-reduced-motion:reduce) { .os-page * { transition:none !important; } }

.os-home .menu-button { border-radius:50%; }
.os-home .menu-button.w--open { background:#fff1e9; color:#181818; }

.os-section-head:has(> div:only-child) { grid-template-columns:1fr; }
@media (min-width:701px) and (max-width:1000px) { .os-project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Shared interaction timing and responsive footer brand. */
.os-home :is(.button-primary,.os-button,.os-text-link,.os-hero-cta,.os-hero-link,.os-hero-motion,.uui-button-2,.os-service-details > summary,.os-faq-item > summary,.os-arrow) {
  transition:background-color 200ms cubic-bezier(.22,.61,.36,1),color 200ms cubic-bezier(.22,.61,.36,1),border-color 200ms cubic-bezier(.22,.61,.36,1),transform 200ms cubic-bezier(.22,.61,.36,1),box-shadow 200ms cubic-bezier(.22,.61,.36,1);
}
.os-home :is(.button-primary,.uui-button-2):hover { transform:translateY(-2px); }
#sec_hero .os-hero-motion:hover { background:#fff1e9; border-color:#d9430c; color:#d9430c; }
.os-home .os-faq-item > summary:hover { color:#d9430c; background:#fff5ee; }
.os-footer .os-footer-logo { display:block; width:512px; max-width:100%; margin:48px 0; }
.os-footer-logo img { display:block; width:100%; height:auto; }
@media(max-width:700px) { .os-footer .os-footer-logo { margin:32px 0; } }
@media(prefers-reduced-motion:reduce) { .os-home :is(.button-primary,.os-button,.os-text-link,.os-hero-cta,.os-hero-link,.os-hero-motion,.uui-button-2,.os-service-details > summary,.os-faq-item > summary,.os-arrow) { transition:none !important; } }

#sec_hero :is(.os-hero-cta,.os-hero-link,.os-hero-motion) { transition:background-color 200ms cubic-bezier(.22,.61,.36,1),color 200ms cubic-bezier(.22,.61,.36,1),border-color 200ms cubic-bezier(.22,.61,.36,1),transform 200ms cubic-bezier(.22,.61,.36,1); }
@media(prefers-reduced-motion:reduce) { #sec_hero :is(.os-hero-cta,.os-hero-link,.os-hero-motion) { transition:none !important; } }
