/* FEINWERK auf Basis von Namari v1.1.0, ShapingRain.
   Originalbausteine: namari-layout.css. Herkunft: licences/namari.txt. */
@font-face {
  font-family:Manrope; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('/assets/fonts/manrope-latin.woff2') format('woff2');
}
:root {
  --fs-h1:clamp(2.25rem,4.3vw,3.875rem);
  --fs-h2:clamp(1.8rem,2.7vw,2.125rem);
  --fs-h3:clamp(1.25rem,1.8vw,1.4rem);
  --fs-text:1.0625rem; --fs-klein:.875rem;
  --schwarz:#111; --grau:#5C5C5C; --linie:#E5E5E5; --weiss:#fff;
  --gruen:#285C43; --gruen-dunkel:#1E4633; --papier:#F7F7F5; --salbei:#F7F7F5;
  --font:Manrope,Arial,sans-serif; --max:1200px; --header-h:92px;
  --radius:28px; --pill:999px; --intro-columns:.85fr 1.6fr; --intro-gap:64px;
  color-scheme:light;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 24px); -webkit-text-size-adjust:100%; }
body { padding:20px; margin:0; color:var(--schwarz); background:var(--weiss); font:400 var(--fs-text)/1.7 var(--font); -webkit-font-smoothing:antialiased; }
[hidden] { display:none!important; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-weight:700; overflow-wrap:break-word; text-wrap:balance; }
h1 { font-size:var(--fs-h1); font-weight:700; line-height:1.06; letter-spacing:-.025em; }
h2 { font-size:var(--fs-h2); line-height:1.2; letter-spacing:-.025em; }
h3 { font-size:var(--fs-h3); line-height:1.3; letter-spacing:-.025em; }
p { text-wrap:pretty; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
a { color:inherit; text-underline-offset:4px; }
img,video,svg { display:block; max-width:100%; }
ul,ol { margin:0; }
::selection { color:white; background:var(--gruen); }
:focus-visible { outline:3px solid var(--gruen); outline-offset:5px; }
.wrap { width:calc(100% - 104px); max-width:var(--max); margin-inline:auto; }
.row { max-width:var(--max); padding:0; }
.page-border { inset:20px; z-index:40; border-radius:var(--radius); box-shadow:0 0 0 40px #ccc; }
.page-border > div { display:none; }
.section-heading { padding:0; }
.section-heading h2:after { background:var(--gruen); margin-top:24px; }
.work-heading h2:after,.faq-heading h2:after,.kontakt-copy h2:after,#ablauf .section-heading h2:after { content:none; }
.gruen { color:var(--gruen); }
.muted { color:var(--grau); }
.small,.klein,.micro,.media-caption { font-size:var(--fs-klein); }
.icon { width:24px; height:24px; flex:none; }
.eyebrow { font-size:var(--fs-klein); font-weight:600; color:var(--gruen); line-height:1.5; margin-bottom:16px; }
.skip { position:fixed; left:24px; top:-100px; z-index:100; padding:12px 20px; background:white; border:2px solid var(--gruen); }
.skip:focus { top:12px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:52px; padding:12px 24px; border:2px solid var(--schwarz); border-radius:var(--pill); margin:0; background:var(--weiss); font-size:var(--fs-klein); font-weight:600; line-height:1.5; text-decoration:none; transition:background .18s,border-color .18s; }
.btn .icon { width:20px; height:20px; }
.btn-primary { background:var(--weiss); border-color:var(--schwarz); color:var(--schwarz); }
.btn-primary:hover { background:var(--weiss); border-color:var(--gruen); color:var(--gruen); }
.btn-ghost:hover { background:var(--weiss); border-color:var(--gruen); color:var(--gruen); }
.btn-sm { min-height:44px; padding:10px 16px; }
.textlink { display:inline-flex; align-items:center; gap:12px; min-height:44px; padding:10px 18px; border:1px solid var(--linie); border-radius:var(--pill); font-size:var(--fs-klein); font-weight:600; text-decoration:none; }
.textlink .icon { width:20px; height:20px; color:var(--gruen); }
.textlink:hover { color:var(--gruen); border-color:var(--gruen); }
.marke { display:inline-flex; width:3.97em; height:.927em; }
.marke img { display:block; width:100%; height:100%; }
.logo { display:inline-flex; flex:none; font-size:48px; text-decoration:none; }
.kopf { position:sticky; top:20px; z-index:30; background:var(--weiss); }
.kopf-inner { min-height:var(--header-h); display:flex; align-items:center; gap:40px; }
.kopf-nav { margin-left:auto; }
.nav-links { display:flex; align-items:center; gap:8px; padding:0; list-style:none; }
.nav-links a { display:block; padding:12px 14px; border-radius:var(--pill); font-size:var(--fs-klein); font-weight:500; letter-spacing:.04em; text-transform:uppercase; text-decoration:none; }
.nav-links a:hover,.nav-links a[aria-current] { color:var(--gruen); background:var(--papier); }
.kopf-rechts { display:flex; align-items:center; gap:12px; }
.menu-button { display:none; width:44px; height:44px; align-items:center; justify-content:center; padding:10px; border:2px solid var(--schwarz); border-radius:var(--pill); background:white; color:var(--schwarz); }
.menu-dialog { width:100%; max-width:none; height:100%; max-height:none; margin:0; padding:28px 0; border:0; color:var(--schwarz); background:var(--weiss); }
.menu-dialog::backdrop { background:rgba(24,35,29,.3); }
.menu-top { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.menu-content { padding-top:48px; }
.menu-content ul { list-style:none; padding:0; margin-bottom:32px; }
.menu-content li { margin-bottom:8px; }
.menu-content li a { display:block; padding:18px 24px; border-radius:var(--pill); background:var(--papier); font-size:var(--fs-h3); text-decoration:none; }
main > section { padding-block:80px; }
.home-hero { min-height:690px; padding-block:64px 88px; }
.home-hero > .wrap { max-width:var(--max); display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.hero-panel { width:100%; max-width:600px; padding:0; text-align:left; }
.hero-art { width:100%; max-height:520px; object-fit:contain; }
.hero-panel h1 { max-width:600px; margin:0; text-transform:uppercase; }
.hero-panel h1 .gruen { display:block; }
.hero-lead { max-width:620px; color:var(--grau); margin-top:24px; }
.hero-panel .hero-lead { margin-inline:0; max-width:490px; }
.hero-cta { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:28px; }
.hero-panel .hero-cta { justify-content:flex-start; margin-top:32px; }
.hero-note { margin-top:28px; font-size:var(--fs-klein); color:var(--grau); }
.work-section { padding-block:64px 0; }
.work-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:24px; }
.work-heading h2 { font-size:var(--fs-h2); }
/* Namari-Galerie: offene Medienflächen; Beschriftungen für echte Arbeitsbeispiele. */
.work-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.work-card { min-width:0; }
.work-media { display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:16/10; overflow:hidden; border-radius:var(--radius); padding:0; }
.website-media { background:#DFE7DB; }
.website-media picture { display:block; width:100%; height:100%; overflow:hidden; border-radius:0; }
.website-media img { width:100%; height:100%; object-fit:cover; object-position:top; }
.video-media { background:#EDE9F5; position:relative; }
.video-media video { width:100%; height:auto; border-radius:var(--radius); }
.video-play { position:absolute; left:50%; top:75%; transform:translate(-50%,-50%); display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:10px 22px; border:2px solid var(--schwarz); border-radius:var(--pill); color:var(--schwarz); background:white; font:600 var(--fs-klein)/1.5 var(--font); white-space:nowrap; }
.video-play:hover { border-color:var(--gruen); color:var(--gruen); }
.video-play .icon { width:20px; height:20px; }
.work-caption { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:20px; }
.work-caption h3 { font-size:var(--fs-h3); }
.work-caption p { margin-top:6px; color:var(--grau); font-size:var(--fs-klein); }
.circle-link { display:flex; align-items:center; justify-content:center; flex:none; width:44px; height:44px; background:white; border:2px solid var(--schwarz); border-radius:var(--pill); }
.circle-link:hover { color:var(--gruen); border-color:var(--gruen); }
.circle-link .icon { width:20px; height:20px; }
.section-head { max-width:740px; margin-bottom:40px; }
.section-description { max-width:620px; margin-top:20px; color:var(--grau); }
.services-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
#leistungen > .wrap { display:grid; grid-template-columns:var(--intro-columns); gap:var(--intro-gap); }
.service-card { display:flex; flex-direction:column; align-items:flex-start; padding:0; border-radius:0; background:white; }
.service-card:nth-child(2) { background:white; }
.service-title { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; width:100%; margin-bottom:20px; }
.service-title .icon { color:var(--gruen); width:40px; height:40px; padding:9px; border-radius:var(--pill); background:var(--papier); }
.service-card h3 { min-height:2.6em; }
.service-card p { color:var(--grau); }
.service-card .textlink { margin-top:24px; }
.agency-section { padding-top:80px; }
.agency-panel { display:grid; grid-template-columns:var(--intro-columns); gap:40px var(--intro-gap); padding:0; border:0; }
.agency-copy p { color:var(--grau); margin-bottom:20px; }
.schritte { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; }
.schritt > .icon { color:var(--gruen); width:48px; height:48px; padding:12px; border-radius:var(--pill); background:var(--papier); margin-bottom:20px; }
.schritt h3 { margin-bottom:14px; }
.schritt p { color:var(--grau); font-size:var(--fs-text); }
#ablauf { padding-top:80px; }
.faq-layout { display:grid; grid-template-columns:1fr 1.2fr; gap:80px; }
.faq-heading > p:last-child { margin-top:20px; color:var(--grau); max-width:35ch; }
.faq { border-top:1px solid var(--linie); }
.faq details { border-bottom:1px solid var(--linie); }
.faq summary { padding-block:22px; cursor:pointer; font-size:var(--fs-text); font-weight:600; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:20px; line-height:1.5; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:'+'; display:grid; place-items:center; flex:none; width:32px; height:32px; border-radius:var(--pill); background:var(--papier); font-size:var(--fs-h3); font-weight:400; color:var(--gruen); transition:transform .26s ease; }
.faq details[open]:not([data-collapsing]) summary::after { transform:rotate(45deg); }
.faq details p { padding-bottom:24px; color:var(--grau); font-size:var(--fs-text); }
#faq { border-top:1px solid var(--linie); }
#kontakt { background:var(--papier); }
.kontakt-box { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; }
.kontakt-copy > p:not(.eyebrow) { color:var(--grau); margin-top:24px; }
.mail-row { margin-top:32px; display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.mail-addr { font-weight:600; font-size:var(--fs-text); overflow-wrap:anywhere; }
.mail-row .btn { min-height:40px; padding:8px 12px; }
.form { display:grid; gap:22px; align-content:start; }
.form fieldset { border:0; padding:0; min-width:0; margin:0; }
.form legend,.feld label { font-size:var(--fs-klein); font-weight:400; margin-bottom:10px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.feld { display:flex; flex-direction:column; min-width:0; }
.feld input,.feld textarea { width:100%; min-height:48px; padding:12px 20px; border:1px solid #A6B4A7; border-radius:var(--pill); background:white; color:var(--schwarz); font-size:var(--fs-text); line-height:1.5; }
.feld textarea { resize:vertical; min-height:132px; border-radius:24px; }
.feld input::placeholder,.feld textarea::placeholder { color:var(--grau); opacity:1; }
.choices { display:flex; flex-wrap:wrap; gap:8px; }
.choice { position:relative; display:flex; cursor:pointer; }
.choice input { position:absolute; opacity:0; }
.choice span { display:block; padding:10px 18px; border:1px solid #A6B4A7; border-radius:var(--pill); background:white; font-size:var(--fs-klein); }
.choice input:checked + span { color:white; background:var(--gruen); border-color:var(--gruen); }
.choice input:focus-visible + span { outline:3px solid var(--gruen); outline-offset:4px; }
.form .micro { color:var(--grau); line-height:1.6; }
.form > .btn { justify-self:start; }
.form > .btn:disabled { cursor:default; opacity:.6; }
.form-out { white-space:pre-wrap; overflow-wrap:anywhere; padding:20px; border:2px solid var(--schwarz); border-radius:var(--radius); background:white; font-size:var(--fs-klein); }
.form-actions { display:flex; gap:12px; flex-wrap:wrap; }
#formStatus:empty,#copyStatus:empty { display:none; }
#formStatus { color:var(--gruen); font-size:var(--fs-klein); }
.fuss { padding-block:64px 24px; }
.footer-info { display:grid; grid-template-columns:1fr 1fr 1fr; gap:40px; padding-block:40px; }
.footer-info p { margin-top:18px; color:var(--grau); font-size:var(--fs-klein); }
.footer-info p.footer-label { margin-top:0; margin-bottom:16px; font-weight:600; color:var(--schwarz); }
.footer-info a:not(.logo) { font-size:var(--fs-klein); overflow-wrap:anywhere; }
.footer-info nav { display:flex; flex-direction:column; gap:12px; }
.footer-info nav a { text-decoration:none; }
.footer-info nav a:hover { text-decoration:underline; }
.fuss-zeile { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; padding-top:24px; border-top:1px solid var(--linie); font-size:var(--fs-klein); color:var(--grau); }
.fuss-zeile nav { grid-column:3; display:flex; flex-wrap:wrap; gap:24px; }
.sticky-cta { display:none; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:12px; color:var(--grau); font-size:var(--fs-klein); margin-bottom:44px; }
.service-hero { padding-top:40px; }
.service-hero-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:56px; align-items:center; }
.service-hero h1 { font-size:clamp(2.5rem,4.2vw,3.8rem); }
.service-hero .hero-lead { margin-top:24px; }
.service-hero .hero-note { margin-top:24px; }
.service-visual { display:flex; align-items:center; justify-content:center; aspect-ratio:4/3; padding:0; border-radius:var(--radius); overflow:hidden; }
.service-visual picture { display:block; width:100%; height:100%; }
.media-caption { margin-top:16px; color:var(--grau); }
.content-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.content-card { padding-top:24px; border-top:1px solid var(--linie); }
.content-card p { margin-top:16px; color:var(--grau); }
.split { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.split h2 { margin-bottom:24px; }
.split p { color:var(--grau); margin-top:20px; }
.scope { padding:32px; border-radius:var(--radius); background:var(--papier); }
.list { list-style:none; padding:0; margin-top:24px; }
.list li { position:relative; padding-left:26px; margin-bottom:14px; color:var(--grau); }
.list li::before { content:'✓'; position:absolute; left:0; color:var(--gruen); }
.scope p { font-size:var(--fs-text); }
.tinted-section { background:var(--salbei); margin-block:0 88px; }
.legal { padding-block:64px 88px; }
.legal .wrap { max-width:850px; }
.legal h1 { margin-block:24px 40px; }
.legal h2 { font-size:var(--fs-h3); margin-block:40px 20px; }
.legal p { margin-block:18px; }
.legal .lead { color:var(--grau); }
.entwurf { padding:24px; background:var(--salbei); border-radius:var(--radius); }
.todo { padding:2px 4px; outline:1px dashed var(--grau); }
.knoepfe { display:flex; gap:16px; flex-wrap:wrap; margin-top:32px; }
@media (max-width:959px) {
  .kopf-inner { flex-wrap:wrap; gap:20px; padding-block:16px; }
  .kopf-rechts { margin-left:auto; }
  .kopf-nav { width:100%; order:3; margin:0; }
  .nav-links { flex-wrap:wrap; justify-content:space-between; }
  .js .kopf-nav { display:none; }
  .js .menu-button { display:flex; }
  .schritte { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
  .service-hero-grid { gap:32px; }
  .agency-panel { padding:0; gap:32px; }
  .faq-layout,.kontakt-box,.split { gap:40px; }
  .footer-info { grid-template-columns:1fr 1fr; }
  .footer-info nav { grid-column:1/-1; flex-direction:row; flex-wrap:wrap; gap:24px; }
  .fuss-zeile { grid-template-columns:1fr 1fr; }
  .fuss-zeile nav { grid-column:1/-1; }
}
@media (max-width:720px) {
  :root { --header-h:80px; }
  .wrap { width:calc(100% - 40px); }
  .logo { font-size:36px; }
  .kopf-inner { min-height:80px; }
  .kopf-rechts { gap:8px; }
  .kopf-rechts .btn .icon { display:none; }
  main > section { padding-block:56px; }
  .home-hero { min-height:0; padding-block:40px 48px; background-image:none; }
  .home-hero > .wrap { width:calc(100% - 40px); }
  .hero-panel { padding:0; width:100%; }
  .hero-panel h1 { font-size:clamp(2.2rem,6.8vw,3rem); letter-spacing:-.025em; }
  .desktop-break { display:none; }
  .hero-cta { gap:20px; }
  .hero-note { max-width:26ch; margin-inline:auto; }
  .work-section { padding-block:32px 0; }
  .work-heading { display:block; }
  .work-grid,.services-grid,.agency-panel,.faq-layout,.kontakt-box,.split,.service-hero-grid { grid-template-columns:minmax(0,1fr); }
  .work-grid { gap:36px; }
  .work-media { padding:0; }
  .work-caption { margin-top:16px; }
  .section-head { margin-bottom:32px; }
  .service-card { padding:0; }
  .service-card h3 { min-height:0; }
  .agency-section { padding-top:56px; }
  .agency-panel { padding:0; gap:28px; }
  #ablauf { padding-top:80px; }
  .faq-layout,.kontakt-box,.split { gap:32px; }
  .content-grid { grid-template-columns:1fr; gap:28px; }
  .content-card { padding-top:20px; }
  .content-card p { margin-top:12px; }
  .service-hero { padding-top:24px; }
  .breadcrumbs { margin-bottom:32px; }
  .service-hero .hero-note { margin-left:0; }
  .service-visual { aspect-ratio:16/10; padding:20px; }
  .tinted-section { margin-bottom:56px; }
  .footer-info { grid-template-columns:1fr; gap:28px; padding-block:32px; }
  .footer-info nav { flex-direction:column; gap:12px; }
  .fuss-zeile { grid-template-columns:1fr; gap:16px; }
  .fuss { padding-top:48px; }
}
@media (max-width:520px) {
  .schritte,.form-row { grid-template-columns:1fr; gap:24px; }
  .hero-panel .hero-cta { align-items:flex-start; gap:16px; }
  .hero-panel .hero-cta > .btn { min-width:205px; }
  .hero-lead { margin-top:20px; }
  .hero-note { margin-top:20px; }
  .service-card { padding:0; }
  .agency-panel { padding:0; }
  .schritt > .icon { margin-bottom:16px; }
  .form > .btn { justify-self:stretch; }
  .sticky-cta.zeigen { position:fixed; display:block; bottom:0; left:0; right:0; z-index:20; padding:10px 20px calc(10px + env(safe-area-inset-bottom,0px)); background:white; border-top:1px solid var(--linie); }
  .sticky-cta .btn { display:flex; width:100%; }
  .fuss { padding-bottom:100px; }
  .scope { padding:24px; }
}
@media (max-width:360px) {
  .kopf-inner.wrap { width:calc(100% - 24px); gap:8px; }
  .kopf-inner .logo { font-size:32px; }
  .menu-top { gap:12px; }
  #menuClose .icon { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}

/* FEINWERK-Ergänzungen zum Namari-Raster. */
@media (max-width:1100px) and (min-width:960px) {
  .nav-links { gap:0; }
  .nav-links a { padding-inline:10px; }
  .kopf-inner { gap:24px; }
  .home-hero { min-height:640px; }
}
@media (max-width:959px) {
  #leistungen > .wrap { grid-template-columns:1fr; gap:24px; }
  .agency-panel { grid-template-columns:1fr; }
  .home-hero > .wrap { grid-template-columns:1fr; gap:40px; }
  .hero-art { width:auto; max-width:100%; height:auto; max-height:400px; justify-self:center; }
  .hero-panel { width:100%; max-width:650px; }
  .home-hero { min-height:0; background-image:none; }
}
@media (max-width:520px) {
  .hero-art { max-height:320px; }
}
@media (max-width:720px) {
  body { padding:8px; }
  .page-border { inset:8px; }
  .kopf { top:8px; }
  .hero-panel { width:100%; }
  #leistungen > .wrap { gap:24px; }
  .service-hero-grid { gap:32px; }
  .service-visual { padding:0; }
  .sticky-cta.zeigen { bottom:8px; left:8px; right:8px; padding:10px 20px calc(10px + env(safe-area-inset-bottom,0px)); }
}
