/* Lokales Lato — Light 300 */
@font-face{ font-family:'Lato'; font-style:normal; font-weight:300; font-display:swap;
  src:url('../fonts/Lato-Light.woff2') format('woff2'), url('../fonts/Lato-Light.woff') format('woff'); }
@font-face{ font-family:'Lato'; font-style:normal; font-weight:100; font-display:swap;
  src:url('../fonts/Lato-Thin.woff2') format('woff2'), url('../fonts/Lato-Thin.woff') format('woff'); }

:root{ --cyan:#009EE0; --bg:#FFFFFF; --ink:#17181A; --muted:rgba(23,24,26,.74); --line:#EAEAE7; --nav:rgba(255,255,255,.9); --grad:#EDEFF1; --intro-bg:#F4F5F6; }
  [data-theme="dark"]{ --bg:#141518; --ink:#fff; --muted:rgba(255,255,255,.74); --line:#26272B; --nav:rgba(20,21,24,.9); --grad:#0E0F12; --intro-bg:#141518; }
  [data-theme="contrast"]{ --cyan:#006699; --bg:#FFFFFF; --ink:#000; --muted:#141414; --line:#000; --nav:#fff; --grad:#fff; --intro-bg:#FFFFFF; }
  [data-theme="contrast"] a{ text-decoration:underline; }
  *{ margin:0; padding:0; box-sizing:border-box; }
  html{ scroll-behavior:smooth; } html.intro-on{ overflow:hidden; }
  body{ background-color:var(--bg); background-image:linear-gradient(to top left, var(--grad), transparent 77%); background-repeat:no-repeat; background-attachment:fixed; background-position:bottom; background-size:100% 100vh; color:var(--ink); font-family:'Lato', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; font-weight:300; -webkit-font-smoothing:antialiased; line-height:1.55; transition:background-color .5s, color .5s; }
  a{ text-decoration:none; color:inherit; }
  .wrap{ max-width:1180px; margin:0 auto; padding:0 40px; }

  #intro{ position:fixed; inset:0; z-index:100; background:var(--intro-bg); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px; transition:transform 1s cubic-bezier(.7,0,.15,1); }
  #intro.lift{ transform:translateY(-100%); }
  #intro svg{ width:min(320px,64vw); height:auto; color:var(--cyan); }
  #intro svg g{ opacity:0; transform:translateY(16px); }
  #intro.run svg g{ animation:introL .72s cubic-bezier(.2,.7,.2,1) forwards; }
  #intro.run svg g:nth-of-type(1){ animation-delay:.15s } #intro.run svg g:nth-of-type(2){ animation-delay:.24s }
  #intro.run svg g:nth-of-type(3){ animation-delay:.33s } #intro.run svg g:nth-of-type(4){ animation-delay:.42s }
  #intro.run svg g:nth-of-type(5){ animation-delay:.51s } #intro.run svg g:nth-of-type(6){ animation-delay:.60s }
  @keyframes introL{ to{ opacity:1; transform:none; } }
  #introUnder{ width:min(320px,64vw); height:1px; background:var(--cyan); transform-origin:left; transform:scaleX(0); }
  #intro.run #introUnder{ animation:introU .8s 1.05s cubic-bezier(.2,.7,.2,1) forwards; }
  @keyframes introU{ to{ transform:scaleX(1); } }
  #introTag{ opacity:0; font-size:12px; letter-spacing:.24em; color:var(--muted); text-transform:uppercase; }
  #intro.run #introTag{ animation:introT .9s 1.35s ease forwards; }
  @keyframes introT{ to{ opacity:1; } }

  .nav{ position:fixed; top:0; left:0; right:0; z-index:40; display:flex; justify-content:space-between; align-items:center; padding:22px max(40px, calc(50vw - 550px)); }
  .nav.solid{ background:var(--nav); backdrop-filter:blur(6px); border-bottom:.5px solid var(--line); }
  .nav .logo svg{ height:20px; width:auto; display:block; color:var(--cyan); transition:color .3s ease, filter .3s ease; }
  .nav .menu{ display:flex; gap:24px; align-items:center; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.4); }
  .nav.solid .menu{ color:var(--muted); text-shadow:none; }
  .nav .menu a:hover{ color:var(--cyan); }
  .nav .menu a.active{ color:var(--cyan); }
  .lang{ display:flex; gap:8px; border-left:.5px solid currentColor; padding-left:16px; }
  .lang button{ background:none; border:none; font-family:inherit; font-weight:300; font-size:11px; letter-spacing:.14em; color:inherit; cursor:pointer; padding:0; opacity:.85; }
  .lang button.on{ opacity:1; color:var(--cyan); text-decoration:none; }
  .burger{ display:none; background:none; border:0; cursor:pointer; padding:6px; margin:0; color:#fff; filter:drop-shadow(0 1px 2px rgba(0,0,0,.5)); z-index:50; }
  .burger svg{ width:28px; height:28px; display:block; }
  .nav.solid .burger{ color:var(--ink); filter:none; }
  @media (max-width:900px){
    .nav .menu a{ display:none !important; }
    .burger{ display:block !important; }
    .nav .menu{ margin-left:auto; margin-right:18px; }   /* Sprachen nach rechts, neben den Burger */
    .lang{ border-left:none; padding-left:0; }            /* orphan-| entfernen */
  }

  /* ---- slider on top ---- */
  .slider{ position:relative; height:100vh; overflow:hidden; }
  .slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease; background-size:cover; background-position:center; display:flex; align-items:flex-end; }
  .slide.on{ opacity:1; }
  .slide .scrim{ position:absolute; inset:0; background:linear-gradient(to top, rgba(6,9,12,.6), rgba(6,9,12,.1) 38%, transparent 62%); }
  .slide .cap{ position:relative; z-index:2; width:100%; max-width:1180px; margin:0 auto; padding:0 40px 84px; }
  .slide .eyebrow{ font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:rgba(255,255,255,.82); margin-bottom:12px; }
  .slide .name{ font-weight:100; font-size:clamp(28px,3.6vw,46px); color:#fff; }
  .slide .to{ display:inline-block; margin-top:16px; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#fff; border-bottom:1px solid transparent; transition:border-color .3s, color .3s; }
  .slide .to:hover{ color:var(--cyan); border-color:var(--cyan); }
  .s-nav{ position:absolute; z-index:5; top:50%; transform:translateY(-50%); width:100%; display:flex; justify-content:space-between; padding:0 24px; pointer-events:none; }
  .s-nav button{ pointer-events:auto; background:none; border:none; color:#fff; font-size:30px; font-weight:300; cursor:pointer; opacity:.7; transition:opacity .3s, color .3s; line-height:1; }
  .s-nav button:hover{ opacity:1; color:var(--cyan); }
  .s-dots{ position:absolute; z-index:5; bottom:32px; left:50%; transform:translateX(-50%); display:flex; gap:10px; align-items:center; }
  .s-dots button{ width:8px; height:8px; border-radius:50%; border:1px solid rgba(255,255,255,.7); background:none; cursor:pointer; padding:0; transition:background .3s, border-color .3s; }
  .s-dots button.on{ background:var(--cyan); border-color:var(--cyan); }
  .s-pause{ position:absolute; z-index:5; bottom:28px; right:32px; background:none; border:none; color:rgba(255,255,255,.75); font-size:10px; letter-spacing:.18em; text-transform:uppercase; cursor:pointer; }
  .s-pause:hover{ color:var(--cyan); }

  /* ---- single parallax core ---- */
  .core{ position:relative; height:100vh; min-height:600px; background-size:cover; background-position:center; background-attachment:fixed; display:flex; align-items:center; justify-content:center; text-align:center; }
  .core .scrim{ position:absolute; inset:0; background:rgba(6,9,12,.42); }
  .core .inner{ position:relative; z-index:2; padding:0 30px; }
  .core .big{ font-weight:300; font-size:clamp(30px,4.6vw,60px); color:#fff; letter-spacing:.01em; }
  .core .l1{ font-size:clamp(15px,1.8vw,20px); color:rgba(255,255,255,.9); margin-top:22px; }
  .core .l2{ font-size:clamp(13px,1.5vw,17px); color:rgba(255,255,255,.72); margin-top:8px; }

  .approach{ padding:120px 0; }
  .approach .k{ font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--muted); margin-bottom:22px; }
  .approach .claim{ font-weight:300; font-size:clamp(20px,2.6vw,30px); line-height:1.5; color:var(--cyan); max-width:none; }

  .work{ padding-bottom:40px; }
  .work .head{ font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--muted); margin:0 0 40px; }
  .sector{ margin-bottom:52px; }
  .sector .label{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); padding-bottom:14px; border-bottom:.5px solid var(--line); margin-bottom:26px; }
  .grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px 24px; }
  .case .thumb{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--line); }
  .case .thumb .burn{ position:absolute; inset:0; background:rgba(0,158,224,0); display:flex; align-items:center; justify-content:center; transition:background .45s ease; pointer-events:none; }
  .case:hover .thumb .burn{ background:rgba(0,158,224,.72); }
  .case .thumb .burn svg{ width:38px; height:38px; color:#fff; opacity:0; transform:scale(.35); transition:opacity .45s ease, transform .5s cubic-bezier(.2,.7,.2,1); }
  .case:hover .thumb .burn svg{ opacity:1; transform:scale(1); }
  .case .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s ease, filter .5s ease; filter:saturate(.92); }
  .case:hover .thumb img{ transform:scale(1.04); filter:saturate(1); }
  .case .disc{ font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); margin:15px 0 5px; transition:color .3s; }
  .case:hover .disc{ color:var(--cyan); }
  .case .name{ font-weight:300; font-size:16px; color:var(--ink); display:inline-block; }
  .case .name::after{ content:''; display:block; height:1px; background:var(--cyan); transform:scaleX(0); transform-origin:left; transition:transform .4s ease; margin-top:5px; }
  .case:hover .name::after{ transform:scaleX(1); }

  .band{ padding:56px 0; border-top:.5px solid var(--line); border-bottom:.5px solid var(--line); margin-top:40px; font-weight:300; font-size:clamp(14px,1.5vw,16px); color:var(--muted); }
.band span{ white-space:nowrap; }
  .band .s{ padding:0 12px; opacity:.5; }
  .contact{ padding:76px 0 56px; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:20px; }
  .contact .big{ font-weight:300; font-size:clamp(18px,2.2vw,22px); color:#0072A6; letter-spacing:.02em; max-width:34ch; }
  [data-theme="dark"] .contact .big{ color:var(--cyan); }
  .contact a.mail:hover{ color:var(--cyan); }
  footer{ padding:36px 0 48px; margin-top:20px; border-top:.5px solid var(--line); display:flex; flex-wrap:wrap; gap:14px 30px; align-items:center; justify-content:space-between; font-size:11px; letter-spacing:.14em; color:var(--muted); text-transform:uppercase; }
  footer a, footer button{ color:var(--muted); background:none; border:none; font-family:inherit; font-weight:300; font-size:11px; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; padding:0; transition:color .3s; }
  footer a:hover, footer button:hover{ color:var(--cyan); }
  .f-legal,.f-a11y{ display:flex; gap:22px; } .f-a11y button.on{ color:var(--cyan); }

  @media (max-width:820px){ .wrap,.slide .cap{ padding-left:22px; padding-right:22px; } .nav{ padding:18px 22px; } .grid{ grid-template-columns:repeat(2,1fr); } .core{ background-attachment:scroll; } }
  @media (max-width:540px){ .grid{ grid-template-columns:1fr; } }
  .mmenu{ position:fixed; inset:0; z-index:60; background:var(--intro-bg); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:20px; padding:44px; transform:translateY(-100%); transition:transform .5s cubic-bezier(.7,0,.15,1); }
  .mmenu.open{ transform:none; }
  .mmenu a{ font-size:30px; font-weight:300; color:var(--ink); letter-spacing:.01em; }
  .mmenu a:hover{ color:var(--cyan); }
  .mmenu a.active{ color:var(--cyan); }
  .mmenu .close{ position:absolute; top:20px; right:22px; background:none; border:none; cursor:pointer; color:var(--ink); }
  .mmenu .close svg{ width:26px; height:26px; display:block; }
  html.mmenu-on{ overflow:hidden; }
  @media (prefers-reduced-motion:reduce){ .scrollhint svg{ animation:none; } }

/* ===== Work-Seite (gescoped) ===== */
body.work header.head{ padding:150px 0 30px; }
body.work header.head h1{ font-weight:300; font-size:clamp(15px,2vw,20px); letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
body:not(.home):not(.detail) .nav{ background:var(--nav); backdrop-filter:blur(6px); border-bottom:.5px solid var(--line); }
body:not(.home):not(.detail) .nav .menu{ color:var(--muted); text-shadow:none; }
.zone{ padding:26px 0 10px; }
.zone .zh{ display:flex; align-items:baseline; gap:14px; border-bottom:.5px solid var(--line); padding-bottom:14px; margin-bottom:22px; }
.zone .zh .t{ font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--cyan); }
.zone .zh .n{ font-size:12px; color:var(--muted); }
.masonry{ column-count:3; column-gap:16px; }
@media (max-width:900px){
  .masonry{ column-count:2; }
}
.proj{ position:relative; display:block; overflow:hidden; margin-bottom:16px; break-inside:avoid; background:var(--line); }
.proj img{ width:100%; display:block; min-height:200px; object-fit:cover; filter:saturate(.9); transition:transform 1s ease, filter .5s ease; }
.proj:hover img{ transform:scale(1.045); filter:saturate(1); }
.proj .burn{ position:absolute; inset:0; background:rgba(0,158,224,0); display:flex; align-items:center; justify-content:center; transition:background .45s ease; pointer-events:none; }
.proj:hover .burn{ background:rgba(0,158,224,.72); }
.proj .burn svg{ width:40px; height:40px; color:#fff; opacity:0; transform:scale(.35); transition:opacity .45s ease, transform .5s cubic-bezier(.2,.7,.2,1); }
.proj:hover .burn svg{ opacity:1; transform:scale(1); }
.proj .ov{ position:absolute; inset:0; background:linear-gradient(to top, rgba(6,9,12,.72), rgba(6,9,12,.05) 46%, transparent 66%); display:flex; align-items:flex-end; padding:18px; z-index:2; }
.proj .eyebrow{ font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.88); text-shadow:0 1px 4px rgba(0,0,0,.6); margin-bottom:6px; transition:color .3s; }
.proj:hover .eyebrow{ color:var(--cyan); }
.proj .name{ font-weight:300; font-size:17px; line-height:1.15; color:#fff; text-shadow:0 1px 6px rgba(0,0,0,.55); display:inline-block; }
.proj .name::after{ content:''; display:block; height:1px; background:var(--cyan); transform:scaleX(0); transform-origin:left; transition:transform .4s ease; margin-top:5px; }
.proj:hover .name::after{ transform:scaleX(1); }
.proj .xlink{ display:block; margin-top:8px; font-size:11px; letter-spacing:.1em; color:rgba(255,255,255,.85); }
.proj .xlink b{ color:var(--cyan); }
.placeholder{ break-inside:avoid; margin-bottom:16px; border:1px dashed var(--line); border-radius:4px; padding:22px; font-size:13px; color:var(--muted); }
.placeholder b{ color:var(--ink); }


/* ===== Legal & Contact ===== */
.page{ max-width:820px; margin:0 auto; padding:150px 40px 40px; }
.page h1{ font-weight:300; font-size:clamp(28px,4vw,44px); margin-bottom:18px; }
.page h2{ font-weight:300; font-size:18px; color:var(--cyan); margin:32px 0 8px; }
.page h3{ font-weight:300; font-size:15px; color:var(--ink); margin:18px 0 6px; }
.page p,.page li{ font-size:15px; color:var(--muted); margin-bottom:8px; line-height:1.62; }
.page ul{ margin:6px 0 8px 20px; }
.page a.link{ color:var(--cyan); }
.page .flag{ border:1px solid #C8102E; border-radius:4px; padding:16px 18px; margin:20px 0 36px; font-size:13px; color:var(--ink); line-height:1.55; }
.page .flag b{ color:#C8102E; }
.page .lead{ font-size:clamp(18px,2.4vw,26px); font-weight:300; color:var(--ink); max-width:26ch; margin-bottom:30px; }
.contactgrid{ display:flex; flex-wrap:wrap; gap:44px; margin-top:10px; }
.contactgrid .col b{ display:block; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; font-weight:300; }
.contactgrid a{ color:var(--cyan); }

/* ===== Projekt-Detailseite ===== */
/* gemeinsame Inhaltskante fuer ALLES: Header-Caption, Text, Meta, Galerie, Back */
.detailhead{ position:relative; height:64vh; min-height:380px; width:100%; overflow:hidden; background:#0e1116; }
.detailhead img{ width:100%; height:100%; object-fit:cover; display:block; }
.detailhead .cap{ position:absolute; left:0; right:0; bottom:0; }
.detailhead .capinner{ max-width:1180px; margin:0 auto; padding:0 40px 44px; }
.detailhead .eyebrow{ font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:#fff; opacity:.85; text-shadow:0 1px 4px rgba(0,0,0,.5); margin-bottom:12px; }
.detailhead h1{ font-weight:100; font-size:clamp(36px,6.5vw,68px); line-height:1.05; color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.35); overflow-wrap:break-word; hyphens:auto; }
.detailhead::after{ content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(6,9,12,.55), transparent 42%); pointer-events:none; }
.detailhead .cap{ z-index:2; }

.detailwrap{ max-width:1180px; margin:0 auto; padding:52px 40px 0; }
.detailwrap .sub{ font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin-bottom:24px; }
.detailwrap p{ font-size:17px; color:var(--ink); line-height:1.7; margin-bottom:16px; max-width:62ch; font-weight:300; }
.detailwrap .credit{ font-size:12px; color:var(--muted); margin-top:10px; }
.detailmeta{ display:flex; flex-wrap:wrap; gap:8px 22px; align-items:baseline; margin:34px 0 0; padding-top:24px; border-top:.5px solid var(--line); }
.detailmeta .disc{ font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); }
.detailmeta a.ext{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--cyan); }

.gallery{ max-width:1180px; margin:40px auto 0; padding:0 40px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:900px){ .gallery{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px){ .gallery{ grid-template-columns:1fr; } }
.gallery.cols4{ grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:1000px){ .gallery.cols4{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:720px){ .gallery.cols4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px){ .gallery.cols4{ grid-template-columns:repeat(2,1fr); gap:10px; } }
.gallery img{ width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:4/3; }

.backbar{ max-width:1180px; margin:36px auto 0; padding:0 40px; position:relative; display:flex; align-items:center; min-height:76px; }
.backbar::before{ content:""; position:absolute; top:0; left:40px; right:40px; height:.5px; background:var(--line); }
.backbar + .wrap footer{ margin-top:0; }
.backbar a{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.backbar a:hover{ color:var(--cyan); }

@media (max-width:540px){ footer .cty{ display:none; } }


/* ===== Galerie-Zoom / Lightbox ===== */
.gitem{ position:relative; overflow:hidden; cursor:zoom-in; }
.gitem img{ width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:4/3; transition:transform .8s ease; }
.gitem:hover img{ transform:scale(1.05); }
.gitem .gburn{ position:absolute; inset:0; background:rgba(0,158,224,0); display:flex; align-items:center; justify-content:center; transition:background .4s ease; pointer-events:none; }
.gitem:hover .gburn{ background:rgba(0,158,224,.38); }
.gitem .gburn svg{ width:38px; height:38px; color:#fff; opacity:0; transform:scale(.4); transition:opacity .4s ease, transform .5s cubic-bezier(.2,.7,.2,1); }
.gitem:hover .gburn svg{ opacity:1; transform:scale(1); }
.lightbox{ position:fixed; inset:0; z-index:200; background:rgba(6,9,12,.93); display:none; align-items:center; justify-content:center; }
.lightbox.open{ display:flex; }
.lightbox img{ max-width:92vw; max-height:88vh; object-fit:contain; box-shadow:0 12px 60px rgba(0,0,0,.55); }
.lightbox button{ position:absolute; background:none; border:none; color:#fff; cursor:pointer; padding:12px; opacity:.82; transition:opacity .2s, color .2s; }
.lightbox button:hover{ opacity:1; color:var(--cyan); }
.lightbox .lbclose{ top:16px; right:20px; }
.lightbox .lbprev{ left:14px; top:50%; transform:translateY(-50%); }
.lightbox .lbnext{ right:14px; top:50%; transform:translateY(-50%); }
.lightbox svg{ width:30px; height:30px; display:block; }


/* ===== Header als externer Video-Link (optional, z.B. Forza) ===== */
.detailhead .heromedia{ position:absolute; inset:0; display:block; }
.detailhead .heromedia img{ width:100%; height:100%; object-fit:cover; display:block; }
.detailhead .playbtn{ position:absolute; top:44%; left:50%; transform:translate(-50%,-50%); width:78px; height:78px; border-radius:50%; background:rgba(0,158,224,.85); display:flex; align-items:center; justify-content:center; transition:transform .3s ease, background .3s ease; z-index:3; }
.detailhead .heromedia:hover .playbtn{ transform:translate(-50%,-50%) scale(1.08); background:var(--cyan); }
.detailhead .playbtn svg{ width:30px; height:30px; color:#fff; margin-left:4px; }

@media (max-width:640px){
  footer{ flex-direction:column; align-items:flex-start; gap:18px; }
  .f-legal,.f-a11y{ flex-wrap:wrap; gap:14px 22px; }
  footer button, footer a{ padding:6px 0; display:inline-block; }
  footer > div:last-child{ padding:6px 0; }
}

/* ===== Optionale Hero-Zone (großes Bild unter dem Header) ===== */
.detailhero{ max-width:1180px; margin:40px auto 0; padding:0 40px; }
.detailhero img{ width:100%; display:block; }

.detailhead img.abottom{ object-position:center bottom; }

/* ===== Touch-Geräte: kein klebender Hover-Zustand ===== */
@media (hover: none){
  .proj:hover .burn, .case:hover .thumb .burn{ background:rgba(0,158,224,0) !important; }
  .proj:hover .burn svg, .case:hover .thumb .burn svg{ opacity:0 !important; transform:scale(.35) !important; }
  .case:hover .thumb img, .proj:hover img{ transform:none !important; filter:saturate(.92) !important; }
  .case:hover .name::after{ transform:scaleX(0) !important; }
  .case:hover .disc{ color:var(--muted) !important; }
  .gitem:hover .gburn{ background:rgba(0,158,224,0) !important; }
  .gitem:hover .gburn svg{ opacity:0 !important; transform:scale(.4) !important; }
  .gitem:hover img{ transform:none !important; }
}
@media (max-width:767px){ .detailhead h1{ font-weight:300; font-size:clamp(26px,7vw,40px); } }
@media (max-width:767px){ .slide .name{ font-weight:300; } }
/* Logo: weiß über dem Slider, cyan sobald der Header sticky wird */
body.home .nav:not(.solid) .logo svg{ color:#fff; filter:drop-shadow(0 1px 3px rgba(0,0,0,.35)); }
body.home .nav.solid .logo svg{ color:var(--cyan); filter:none; }

/* ===== Contact: Header wie Detail + Text im Goldenen Schnitt ===== */
.contactwrap{ max-width:1180px; margin:0 auto; padding:64px 40px 48px; display:grid; grid-template-columns:1.618fr 1fr; gap:56px; align-items:start; }
.contactwrap .c-lead{ font-weight:100; font-size:clamp(24px,3.2vw,40px); line-height:1.25; color:var(--ink); margin:0; }
.contactwrap .c-meta{ display:flex; flex-direction:column; gap:26px; }
.contactwrap .c-meta .col{ font-size:15px; color:var(--cyan); line-height:1.6; }
.contactwrap .c-meta .col b{ display:block; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; font-weight:300; }
.contactwrap .c-meta a{ color:var(--cyan); }
@media (max-width:767px){ .contactwrap{ grid-template-columns:1fr; gap:30px; padding:40px 22px 40px; } .contactwrap .c-lead{ max-width:none; font-weight:300; } }

/* ===== Agency (verwoben in #agency) ===== */
.agencywrap{ max-width:1180px; margin:0 auto; padding:60px 40px 56px; }
.agency-lead{ font-weight:300; font-size:clamp(18px,2vw,24px); line-height:1.4; color:var(--ink); max-width:38ch; margin:0 0 48px; }
.pillars{ display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-bottom:56px; }
.pillar .ico{ display:inline-flex; color:var(--cyan); margin-bottom:16px; }
.pillar .ico svg{ width:34px; height:34px; }
.pillar h3{ font-weight:300; font-size:18px; color:var(--ink); margin:0 0 8px; }
.pillar p{ font-size:15px; color:var(--muted); line-height:1.6; margin:0; max-width:34ch; }
.agency-owner .k{ margin-bottom:16px; }
.agency-owner p{ font-size:15px; color:var(--muted); line-height:1.7; max-width:64ch; margin:0 0 14px; }
.agency-owner .essence{ color:var(--ink); }
@media (max-width:767px){ .agencywrap{ padding:40px 22px 40px; } .pillars{ grid-template-columns:1fr; gap:36px; margin-bottom:44px; } }

/* Sticky-Nav auf Detailseiten (Contact/Agency/Referenzen) dauerhaft solide & sichtbar — NICHT Startseite */
body.detail .nav{ background:var(--nav); backdrop-filter:blur(8px); border-bottom:.5px solid var(--line); }
body.detail .nav .logo svg{ color:var(--cyan); filter:none; }
body:not(.home) .nav .burger{ color:var(--muted); filter:none; }
body:not(.home) .nav .burger svg{ stroke-width:0.9; }
body.detail .nav .menu{ color:var(--muted); text-shadow:none; }
body.detail .lang a{ color:var(--muted); }
body.detail .lang a.on{ color:var(--cyan); }
@media (max-width:900px){
  /* Header etwas niedriger, damit Intro-Titel + Beginn des Inhalts früher sichtbar sind */
  body.detail .detailhead{ height:52vh; min-height:340px; }
}


/* ===== Work-Teaser: Logo-Kacheln (weiß, Graustufen -> Farbe bei Hover) ===== */
.logogrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; margin-top:10px; }
.logotile{ background:#fff; border:.5px solid var(--line); aspect-ratio:16/10; display:flex; align-items:center; justify-content:center; padding:34px; transition:box-shadow .35s ease, transform .35s ease; }
.logotile img{ max-width:100%; max-height:100%; object-fit:contain; filter:grayscale(1); opacity:.62; transition:filter .45s ease, opacity .45s ease; }
.logotile:hover{ box-shadow:0 12px 32px rgba(0,0,0,.10); transform:translateY(-2px); }
.logotile:hover img{ filter:grayscale(0); opacity:1; }
@media (hover:none){ .logotile img{ filter:grayscale(0); opacity:1; } }
@media (max-width:600px){ .logogrid{ grid-template-columns:1fr 1fr; gap:12px; } .logotile{ padding:22px; } }

/* Slider: animierter Scroll-Down-Hinweis */
.scrollhint{ position:absolute; left:40px; bottom:30px; z-index:5; color:#fff; opacity:.85; text-decoration:none; transition:opacity .3s ease, color .3s ease; }
.scrollhint:hover{ opacity:1; color:var(--cyan); }
.scrollhint svg{ width:24px; height:24px; display:block; animation:scrollbounce 1.9s ease-in-out infinite; }
@keyframes scrollbounce{ 0%,100%{ transform:translateY(0); opacity:.55; } 50%{ transform:translateY(6px); opacity:1; } }
@media (max-width:820px){ .scrollhint{ left:22px; bottom:24px; } }
@media (prefers-reduced-motion:reduce){ .scrollhint svg{ animation:none; } }

/* Work-Kacheln mit Kundenlogo: weiße Kachel, Graustufe -> Farbe bei Hover, Logo groß */
.case.logo .thumb{ background:#fff; border:.5px solid var(--line); }
.case.logo .thumb .burn{ display:none; }
.case.logo .thumb img{ object-fit:contain; padding:8%; filter:grayscale(1); opacity:.6; transition:filter .45s ease, opacity .45s ease; }
.case.logo:hover .thumb img{ filter:grayscale(0); opacity:1; transform:none; }

/* Theme-Toggle-Button (Sonne/Mond) */
.themebtn{ background:none; border:0; cursor:pointer; padding:6px; margin-right:14px; color:#999; display:inline-flex; align-items:center; opacity:.82; transition:opacity .2s ease, color .2s ease; vertical-align:middle; }
.themebtn:hover{ opacity:1; color:var(--cyan); }
body.home .nav:not(.solid) .themebtn{ color:#fff; filter:drop-shadow(0 1px 2px rgba(0,0,0,.35)); }
body.home .nav:not(.solid) .themebtn:hover{ color:#fff; }
.themebtn svg{ width:18px; height:18px; display:block; stroke-width:1.2; }
.themebtn .ico-sun{ display:none; }
.themebtn.dark .ico-sun{ display:block; }
.themebtn.dark .ico-moon{ display:none; }
/* Logo-Kacheln: Hintergrund themenabhängig + Dark-Logo-Varianten */
[data-theme="dark"] .case.logo .thumb{ background:transparent; }
.case.logo .thumb img{ position:absolute; inset:0; }
.case.logo .l-dark{ display:none; }
[data-theme="dark"] .case.logo .l-light{ display:none; }
[data-theme="dark"] .case.logo .l-dark{ display:block; }

/* ===== Mobil-Parallax via transform (iOS-sicher, GPU) ===== */
@media (max-width:820px){
  .core{ overflow:hidden; background-image:none !important; }
  .core::before{ content:""; position:absolute; left:0; right:0; top:-22%; bottom:-22%; background-image:var(--pbg); background-size:cover; background-position:center; transform:translate3d(0,var(--py,0px),0); will-change:transform; z-index:0; }
  .core .scrim{ z-index:1; }
  .core .inner{ position:relative; z-index:2; }
}
