/* =========================================================
   GRÜNFELD – Stylesheet
   Farben exakt aus der Vorlage (Pixel-Sampling)
   ========================================================= */

@font-face{font-family:"Jost";font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/jost-latin-ext-300-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Jost";font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/jost-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/jost-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/jost-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/jost-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/jost-latin-500-normal.woff2) format("woff2")}

:root{
  /* --- Farben (unverändert lassen!) --- */
  --cream:#f1ece6;      /* Hero / Grundfläche       */
  --cream-2:#e3ded7;    /* Navigationsleiste        */
  --cream-3:#f2eee8;    /* Leistungen / Zitat       */
  --dark:#191a1b;       /* Projekte / Footer        */
  --green:#025148;      /* Anfrage-Button, Kachel   */
  --red:#891f1c;        /* Projektkachel            */
  --red-deep:#691918;   /* Hero-Panel               */
  --gold:#c39c48;       /* Buttons, Kachel          */
  --line:#dedad4;       /* Trennlinien              */
  --ink:#1f1f1f;
  --muted:#5b5854;
  --white:#fff;

  --font:"Jost",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --gutter:clamp(20px,4.6vw,48px);
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --t:.9s;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font);font-weight:300;font-size:16px;line-height:1.6;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,p,figure,blockquote,address{margin:0}
address{font-style:normal}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--gold);color:var(--dark)}

.skip{position:absolute;left:-999px;top:0;background:var(--dark);color:#fff;padding:8px 14px;z-index:999}
.skip:focus{left:8px}

/* ---------- Typo-Helfer ---------- */
.h2{font-weight:300;font-size:clamp(28px,3.4vw,42px);line-height:1.12;letter-spacing:.06em;text-transform:uppercase}
.h2--sm{font-size:clamp(15px,1.5vw,18px);letter-spacing:.2em}
.caps{letter-spacing:.2em;text-transform:uppercase;font-size:12px}
.rule{display:block;width:44px;height:1px;margin:26px 0}
.rule--dark{background:var(--ink)}
.rule--light{background:rgba(255,255,255,.7)}
.ul{border-bottom:1px solid currentColor;padding-bottom:1px;transition:opacity .3s}
.ul:hover{opacity:.6}
.arrow{display:inline-block;transition:transform .5s var(--ease)}
a:hover .arrow,button:hover .arrow{transform:translateX(6px)}

/* Farbklassen */
.c-gold{background:var(--gold)}.c-red{background:var(--red)}.c-green{background:var(--green)}.c-dark{background:var(--dark)}.c-cream{background:var(--cream-3)}
.c-gold-text{color:var(--gold)}.c-red-text{color:var(--red)}.c-green-text{color:var(--green)}

/* ---------- Buttons ---------- */
.cta{display:inline-flex;align-items:center;gap:12px;padding:16px 26px;font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;position:relative;overflow:hidden;isolation:isolate;transition:color .5s var(--ease)}
.cta::before{content:"";position:absolute;inset:0;background:var(--dark);transform:translateY(101%);transition:transform .6s var(--ease);z-index:-1}
.cta:hover::before,.cta:focus-visible::before{transform:translateY(0)}
.cta--gold{background:var(--gold);color:var(--ink)}
.cta--gold:hover{color:#fff}
.cta--green{background:var(--green);color:#fff}
.cta--green::before{background:var(--gold)}
.cta--green:hover{color:var(--ink)}
.cta--outline{border:1px solid var(--ink);color:var(--ink);background:transparent}
.cta--outline:hover{color:#fff}
.link-arrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;display:inline-flex;gap:10px;align-items:center}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:minmax(220px,30%) 1fr auto;height:72px;background:var(--cream);transition:box-shadow .4s,height .4s var(--ease)}
.site-header.is-scrolled{box-shadow:0 1px 0 var(--line),0 12px 40px -20px rgba(0,0,0,.25);height:62px}
.brand{display:flex;flex-direction:column;justify-content:center;padding:0 var(--gutter);line-height:1.15}
.brand__name{font-weight:400;font-size:clamp(22px,2.2vw,26px);letter-spacing:.26em;text-transform:uppercase}
.brand__claim{display:flex;gap:1.2em;font-size:9px;letter-spacing:.2em;text-transform:uppercase;margin-top:2px;font-weight:400}
.brand--light{color:#fff}
.nav{background:var(--cream-2);display:flex;align-items:center;justify-content:center}
.nav ul{display:flex;gap:clamp(18px,3vw,40px)}
.nav a{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:400;position:relative;padding:6px 0}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav a:hover::after,.nav a.is-active::after{transform:scaleX(1);transform-origin:left}
.site-header .cta--green{padding:0 var(--gutter);height:100%;min-width:200px;justify-content:center}
.burger{display:none;width:72px;height:100%;position:relative;z-index:70}
.burger span{position:absolute;left:24px;width:24px;height:1.5px;background:currentColor;transition:transform .5s var(--ease),top .5s var(--ease)}
.burger span:first-child{top:32px}.burger span:last-child{top:40px}
.burger[aria-expanded="true"] span:first-child{top:36px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{top:36px;transform:rotate(-45deg)}

/* Mobile-Nav */
.mobilenav{position:fixed;inset:0;z-index:40;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease)}
.mobilenav.is-open{clip-path:inset(0)}
.mobilenav[hidden]{display:flex;visibility:hidden}
.mobilenav.is-open[hidden]{visibility:visible}
.mobilenav a{font-size:clamp(28px,7vw,44px);font-weight:300;letter-spacing:.14em;text-transform:uppercase;display:block;padding:8px 0;text-align:center;opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease) calc(.3s + var(--i)*.08s),transform .6s var(--ease) calc(.3s + var(--i)*.08s)}
.mobilenav.is-open a{opacity:1;transform:none}
.mobilenav__squares{display:flex;gap:0;margin-top:40px}
.mobilenav__squares i{width:28px;height:28px}
.nav-open .site-header{background:transparent;color:#fff;box-shadow:none}
.nav-open .site-header .brand{color:#fff}

/* ---------- Kachel-Reveal (das Herzstück) ---------- */
.tile{--tile-delay:0s;clip-path:inset(0 100% 0 0);transition:clip-path var(--t) var(--ease) var(--tile-delay)}
.tile.is-in{clip-path:inset(0 0 0 0)}
.tile.tile--down{clip-path:inset(0 0 100% 0)}
.tile.tile--down.is-in{clip-path:inset(0)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease) var(--d,0s),transform .9s var(--ease) var(--d,0s)}
.reveal.is-in{opacity:1;transform:none}
/* Bild-Zoom beim Aufbau */
.tile img{transform:scale(1.12);transition:transform 1.6s var(--ease) var(--tile-delay)}
.tile.is-in img{transform:scale(1)}

/* ---------- Hero ---------- */
.hero{position:relative;display:grid;grid-template-columns:minmax(220px,30%) 1fr;min-height:clamp(480px,60vw,640px);background:var(--cream)}
.hero__text{padding:clamp(40px,7vw,90px) var(--gutter) clamp(40px,5vw,60px);display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
.hero__text.is-in{clip-path:inset(0 -60% 0 0)} /* Headline darf ins Bild ragen (wie in der Vorlage) */
.hero__title{font-weight:300;font-size:clamp(44px,5.2vw,64px);line-height:1;letter-spacing:.04em;text-transform:uppercase;width:150%}
.hero__title .line{display:block;overflow:hidden;white-space:nowrap}
.hero__title .line span{display:inline-block;transform:translateY(110%);transition:transform 1.1s var(--ease);background:var(--cream);padding:0 .28em 0 0;box-decoration-break:clone} /* Wort ragt auf einer Creme-Kachel ins Bild – kein Buchstabe verschwindet */
.hero__title .line:nth-child(2) span{transition-delay:.1s}
.hero__title .line:nth-child(3) span{transition-delay:.2s}
.is-loaded .hero__title .line span{transform:none}
.hero__sub{font-size:12px;letter-spacing:.22em;text-transform:uppercase;line-height:1.75;color:var(--muted);margin-bottom:34px}
.hero__media{position:relative;overflow:hidden;background:var(--cream-2)}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:right center;position:absolute;inset:-6% 0;height:112%}
.hero__panel{position:absolute;right:0;top:0;width:min(22%,240px);height:68%;background:var(--red-deep);color:#f1ece6;padding:clamp(24px,3vw,40px) clamp(18px,2.4vw,32px);display:flex;flex-direction:column;justify-content:center}
.hero__values li{font-size:clamp(11px,1.15vw,14px);letter-spacing:.24em;text-transform:uppercase;line-height:1.9;opacity:0;transform:translateX(-14px);transition:opacity .8s var(--ease) calc(1.1s + var(--i)*.12s),transform .8s var(--ease) calc(1.1s + var(--i)*.12s)}
.is-loaded .hero__values li{opacity:1;transform:none}
.hero__panel .rule{margin:24px 0 0}
.hero__scroll{position:absolute;left:var(--gutter);bottom:20px;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:12px;opacity:0;transition:opacity 1s 1.6s}
.is-loaded .hero__scroll{opacity:1}
.hero__scroll span{width:40px;height:1px;background:var(--muted);position:relative;overflow:hidden}
.hero__scroll span::after{content:"";position:absolute;inset:0;background:var(--gold);transform:translateX(-100%);animation:scrollhint 2s var(--ease-io) infinite}
@keyframes scrollhint{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}

/* ---------- Leistungen ---------- */
.services{background:var(--cream-3);display:grid;grid-template-columns:minmax(220px,30%) 1fr;padding:clamp(40px,5vw,60px) 0 clamp(40px,5vw,60px);border-top:1px solid var(--line)}
.services__intro{padding:0 var(--gutter);border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;gap:36px}
.services__intro p{font-size:14px;line-height:1.7;color:var(--muted)}
.services__list{display:grid;grid-template-columns:repeat(4,1fr)}
.service{padding:0 clamp(16px,2.4vw,36px);border-right:1px solid var(--line);position:relative;cursor:default}
.service:last-child{border-right:0}
.service__icon{display:block;width:40px;height:40px;margin-bottom:28px}
.service__icon svg{width:100%;height:100%;fill:none;stroke:var(--ink);stroke-width:1.4;transition:transform .8s var(--ease),stroke .4s}
.service:hover .service__icon svg{transform:rotate(90deg) scale(1.08);stroke:var(--green)}
.service h3{font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;margin-bottom:14px}
.service p{font-size:14px;line-height:1.55;color:var(--ink)}
.service__more{display:block;font-size:13px;line-height:1.55;color:var(--muted);margin-top:14px;max-height:0;overflow:hidden;opacity:0;transition:max-height .7s var(--ease),opacity .6s var(--ease)}
.service:hover .service__more{max-height:120px;opacity:1}
.service::after{content:"";position:absolute;left:0;bottom:-22px;width:0;height:2px;background:var(--gold);transition:width .7s var(--ease)}
.service:hover::after{width:calc(100% - 1px)}

/* ---------- Marquee ---------- */
.marquee{background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:18px 0}
.marquee__track{display:flex;align-items:center;gap:48px;width:max-content;animation:marquee 28s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee span{font-size:clamp(18px,2.4vw,28px);letter-spacing:.24em;text-transform:uppercase;font-weight:300;white-space:nowrap}
.marquee i{width:18px;height:18px;flex:none}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Projekte ---------- */
.projects{background:var(--dark);color:#f1ece6;padding:clamp(36px,5vw,56px) var(--gutter) clamp(28px,4vw,48px)}
.projects__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}
.projects__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,24px)}
.project{display:block;position:relative}
.project__media{aspect-ratio:3/2;overflow:hidden;background:#222}
.project__media img{width:100%;height:100%;object-fit:cover}
.project:hover .project__media img{transform:scale(1.06)!important;transition:transform 1.4s var(--ease)}
.project__bar{display:grid;grid-template-columns:1fr auto;align-items:center;padding:14px 18px;color:#fff;position:relative;overflow:hidden}
.bar--gold{background:var(--gold);color:var(--ink)}.bar--red{background:var(--red)}.bar--green{background:var(--green)}
.project__title{font-size:14px;letter-spacing:.2em;text-transform:uppercase;font-weight:400;grid-column:1}
.project__meta{font-size:9px;letter-spacing:.24em;text-transform:uppercase;opacity:.85;grid-column:1}
.project__bar .arrow{grid-column:2;grid-row:1/3;font-size:18px}
.project__bar::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:currentColor;opacity:.6;transition:width .8s var(--ease)}
.project:hover .project__bar::after{width:100%}

/* ---------- Zitat / Über uns ---------- */
.quote{display:grid;grid-template-columns:minmax(220px,47%) 1fr 76px;background:var(--cream-3);min-height:clamp(420px,42vw,520px)}
.quote__media{overflow:hidden;position:relative}
.quote__media img{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover}
.quote__text{padding:clamp(40px,6vw,80px) clamp(24px,4vw,56px) clamp(40px,5vw,60px) clamp(24px,4vw,48px);display:flex;flex-direction:column;justify-content:center}
.quote__text blockquote{font-size:clamp(22px,2.6vw,32px);letter-spacing:.06em}
.quote__text p{font-size:14px;line-height:1.75;color:var(--ink);margin-bottom:34px;max-width:38ch}
.quote__squares{display:grid;grid-template-rows:repeat(6,1fr)}
.quote__squares i{display:block}
.quote__squares .tile{clip-path:inset(0 0 100% 0)}
.quote__squares .tile.is-in{clip-path:inset(0)}

/* ---------- Zahlen ---------- */
.numbers{background:var(--green);color:#f1ece6;display:grid;grid-template-columns:repeat(4,1fr);padding:clamp(36px,5vw,56px) var(--gutter)}
.number{text-align:center;border-left:1px solid rgba(255,255,255,.18);padding:8px 0}
.number:first-child{border-left:0}
.number strong{display:block;font-weight:300;font-size:clamp(40px,5vw,64px);line-height:1;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.number span{display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;margin-top:12px;opacity:.8}

/* ---------- Prozess ---------- */
.process{background:var(--cream);padding:clamp(48px,6vw,80px) var(--gutter);display:grid;grid-template-columns:minmax(220px,30%) 1fr;gap:clamp(24px,4vw,48px)}
.process__head p{font-size:14px;color:var(--muted);margin-top:22px;max-width:30ch}
.process__steps{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--line)}
.step{background:var(--cream-3);padding:clamp(24px,3vw,40px);position:relative;overflow:hidden}
.step__no{font-size:11px;letter-spacing:.3em;color:var(--muted);display:block;margin-bottom:18px}
.step h3{font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;margin-bottom:12px}
.step p{font-size:14px;line-height:1.65;color:var(--ink)}
.step__color{position:absolute;right:0;bottom:0;width:18px;height:18px;transition:width .7s var(--ease),height .7s var(--ease)}
.step:hover .step__color{width:100%;height:4px}

/* ---------- Journal ---------- */
.journal{background:var(--cream-3);border-top:1px solid var(--line);padding:clamp(36px,5vw,56px) var(--gutter) clamp(48px,6vw,72px)}
.journal__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,24px)}
.post figure{aspect-ratio:3/2;overflow:hidden;margin-bottom:18px}
.post img{width:100%;height:100%;object-fit:cover}
.post:hover img{transform:scale(1.05)!important;transition:transform 1.4s var(--ease)}
.post__tag{font-size:9px;letter-spacing:.3em;text-transform:uppercase;font-weight:500}
.post h3{font-size:17px;font-weight:400;line-height:1.3;margin:8px 0 8px}
.post p{font-size:14px;color:var(--muted);line-height:1.6}

/* ---------- Kontakt ---------- */
.contact{display:grid;grid-template-columns:minmax(220px,42%) 1fr;background:var(--cream)}
.contact__intro{background:var(--dark);color:#f1ece6;padding:clamp(48px,6vw,80px) var(--gutter)}
.contact__intro p{font-size:14px;line-height:1.75;opacity:.85;max-width:34ch;margin-bottom:22px}
.ul--light{color:#fff}
.contact__form{padding:clamp(40px,5vw,64px) var(--gutter)}
.notice{padding:14px 18px;font-size:14px;margin-bottom:24px;border-left:3px solid}
.notice--ok{background:#fff;border-color:var(--green);color:var(--green)}
.notice--err{background:#fff;border-color:var(--red);color:var(--red)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.field{position:relative;margin-bottom:22px}
.field input,.field textarea,.field select{width:100%;background:transparent;border:0;border-bottom:1px solid #b9b4ad;padding:18px 0 8px;font:inherit;font-size:15px;color:var(--ink);outline:none;border-radius:0;transition:border-color .3s;resize:vertical}
.field label{position:absolute;left:0;top:18px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);pointer-events:none;transition:all .35s var(--ease);transform-origin:left}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--green)}
.field input:focus~label,.field input:not(:placeholder-shown)~label,.field textarea:focus~label,.field textarea:not(:placeholder-shown)~label,.field select:focus~label,.field select:valid~label{top:-2px;font-size:9px;color:var(--green)}
.field::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--green);transition:width .6s var(--ease)}
.field:focus-within::after{width:100%}
.check{display:flex;gap:12px;align-items:flex-start;font-size:12px;color:var(--muted);line-height:1.5;margin:6px 0 28px}
.check input{margin-top:3px;accent-color:var(--green)}
.check a{text-decoration:underline}
.contact__form .cta{border:0}

/* ---------- Footer ---------- */
.site-footer{background:var(--dark);color:#f1ece6}
.site-footer__inner{display:grid;grid-template-columns:minmax(220px,30%) 1fr 1fr auto;gap:24px;padding:clamp(32px,4vw,48px) var(--gutter);align-items:start}
.site-footer__col{font-size:14px;line-height:1.7;padding-top:6px}
.site-footer__right{display:flex;flex-direction:column;align-items:flex-end;gap:30px}
.social{display:flex;gap:16px}
.social a{width:22px;height:22px;display:block;transition:transform .5s var(--ease),color .3s}
.social a:hover{transform:translateY(-3px);color:var(--gold)}
.social svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.legal{display:flex;gap:22px;font-size:9px;letter-spacing:.24em;text-transform:uppercase}
.legal a:hover{color:var(--gold)}
.site-footer__bar{display:flex;justify-content:space-between;align-items:center;padding:14px var(--gutter);border-top:1px solid rgba(255,255,255,.08);font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.7}
.totop{width:32px;height:32px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);transition:background .3s,color .3s}
.totop:hover{background:var(--gold);color:var(--dark);border-color:var(--gold)}

/* ---------- Unterseiten (Impressum/Datenschutz) ---------- */
.page{max-width:820px;margin:0 auto;padding:clamp(48px,7vw,96px) var(--gutter) clamp(64px,8vw,120px)}
.page h1{font-weight:300;font-size:clamp(32px,4.4vw,52px);letter-spacing:.06em;text-transform:uppercase;line-height:1.1;margin-bottom:12px}
.page h2{font-size:13px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;margin:44px 0 12px;padding-top:18px;border-top:1px solid var(--line)}
.page h3{font-size:14px;font-weight:500;margin:22px 0 6px}
.page p,.page li{font-size:15px;line-height:1.75;color:var(--ink);margin-bottom:12px}
.page ul{list-style:disc;padding-left:20px}
.page a{border-bottom:1px solid var(--gold)}
.page .kicker{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-bottom:40px;display:block}
.page-band{height:8px;display:grid;grid-template-columns:repeat(5,1fr)}

/* ---------- Cursor & Fortschritt ---------- */
.cursor{position:fixed;left:0;top:0;pointer-events:none;z-index:1000;mix-blend-mode:difference;display:none}
.cursor__dot{position:absolute;width:6px;height:6px;background:#fff;border-radius:50%;transform:translate(-50%,-50%)}
.cursor__ring{position:absolute;width:36px;height:36px;border:1px solid #fff;border-radius:50%;transform:translate(-50%,-50%) scale(1);transition:transform .35s var(--ease),opacity .3s}
.cursor.is-link .cursor__ring{transform:translate(-50%,-50%) scale(1.7);opacity:.7}
.progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:60;pointer-events:none}
.progress span{display:block;height:100%;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left}
@media (hover:hover) and (pointer:fine){.cursor{display:block}}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .quote{grid-template-columns:minmax(200px,44%) 1fr 56px}
}
@media (max-width:900px){
  .site-header{grid-template-columns:1fr auto}
  .nav,.site-header .cta--green{display:none}
  .burger{display:block}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero__media{aspect-ratio:4/3}
  .hero__panel{position:static;width:100%;height:auto;grid-column:1/-1;padding:28px var(--gutter)}
  .hero__panel .rule{margin-top:18px}
  .hero__values{display:grid;grid-template-columns:1fr 1fr}
  .hero__scroll{display:none}
  .services{grid-template-columns:1fr;gap:36px}
  .services__intro{border-right:0}
  .services__list{grid-template-columns:repeat(2,1fr);row-gap:36px}
  .service:nth-child(2n){border-right:0}
  .projects__grid,.journal__grid{grid-template-columns:1fr 1fr}
  .quote{grid-template-columns:1fr 56px;grid-template-rows:auto auto}
  .quote__media{aspect-ratio:16/10;grid-column:1/-1}
  .numbers{grid-template-columns:1fr 1fr;row-gap:32px}
  .number:nth-child(3){border-left:0}
  .process{grid-template-columns:1fr}
  .contact{grid-template-columns:1fr}
  .site-footer__inner{grid-template-columns:1fr 1fr}
  .site-footer__right{grid-column:1/-1;align-items:flex-start;flex-direction:row;justify-content:space-between}
}
@media (max-width:560px){
  .site-header{height:64px}
  .brand__claim{display:none}
  .hero__title{font-size:clamp(40px,12vw,56px);width:100%}
  .hero__text.is-in{clip-path:inset(0)}
  .services__list{grid-template-columns:1fr}
  .service{border-right:0;padding:0 var(--gutter)}
  .projects__grid,.journal__grid{grid-template-columns:1fr}
  .process__steps{grid-template-columns:1fr}
  .quote__text{padding:36px var(--gutter)}
  .site-footer__inner{grid-template-columns:1fr}
}

/* ---------- Reduzierte Bewegung ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .tile,.reveal,.hero__title .line span,.hero__values li,.hero__scroll{clip-path:none!important;opacity:1!important;transform:none!important}
  .tile img{transform:none!important}
  .cursor{display:none!important}
}
/* Fallback ohne JS: alles sichtbar */
.no-js .tile,.no-js .reveal{clip-path:none;opacity:1;transform:none}
.no-js .tile img{transform:none}
