/* ==========================================================================
   anzip consultants — Stylesheet (alle Seiten teilen diese Datei)
   Schrift: Inter, selbst-gehostet aus /fonts/ — keine externen Anfragen.
   Der "Tick" vor Labels ist eine gezeichnete CSS-Linie, kein Schriftzeichen —
   dadurch schriftunabhängig (kein Doppeldash-Problem).
   ========================================================================== */

@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/inter-400.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;
  src:url("../fonts/inter-500.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;
  src:url("../fonts/inter-600.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;
  src:url("../fonts/inter-700.woff2") format("woff2")}

:root{
  --burgundy:#A6204D; --graphite:#231F20; --slate:#6F6D6B;
  --silver:#BBBDC0; --mute:#9A9893; --line:#E8E7E4;
  --sand:#F2EFE9; --paper:#FBFAF7;
  --font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  scrollbar-gutter:stable;overflow-y:scroll}
body{font-family:var(--font);color:var(--graphite);background:#fff;line-height:1.65;font-size:16px}
.wrap{max-width:1180px;margin:0 auto;padding:0 40px}
a{color:inherit}

/* ---------- Kopfzeile: Menü links, Logo rechts (spiegelt Dokument-Header) ---------- */
header{padding:44px 0 0}
.head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;
  padding-bottom:22px;border-bottom:1.5px solid var(--burgundy)}
.logo{height:52px;width:auto;display:block}
nav{display:flex;gap:30px;font-size:17px;padding-bottom:4px}
nav a{text-decoration:none;color:var(--slate);transition:color .15s}
nav a:hover{color:var(--graphite)}
nav a.active{color:var(--burgundy)}
nav a.disabled{color:var(--silver);pointer-events:none}

/* ---------- Eyebrow / Tick ---------- */
.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.eyebrow .tick{width:26px;height:2px;background:var(--burgundy);flex:none;transition:width .2s}
.eyebrow .label{font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--burgundy);font-weight:600;white-space:nowrap}

/* ---------- Hero (Startseite) ---------- */
.hero{padding:58px 0 30px;border-bottom:1px solid var(--line)}
.hero-inner{display:flex;align-items:center;justify-content:space-between;gap:52px}
.hero-text{max-width:700px}
.hero-line{font-size:23px;line-height:1.52;color:var(--graphite);font-weight:400;margin-top:8px}
.hero-portrait{flex:none;width:130px;text-align:center}
.hero-portrait .pic{width:118px;height:118px;margin:0 auto 12px;
  background:linear-gradient(160deg,#dfdbd6,#cdc9c4);display:flex;align-items:center;justify-content:center}
.hero-portrait .pic span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.hero-portrait .cap{font-size:13px;color:var(--slate);letter-spacing:.03em;line-height:1.4}
.hero-portrait .cap b{color:var(--graphite);font-weight:700;display:block}

/* ---------- Hauptbereich ---------- */
main{padding:46px 0 80px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.tile{aspect-ratio:1/1;background:var(--paper);border:1px solid var(--line);
  display:flex;flex-direction:column;justify-content:space-between;margin-bottom:20px;
  overflow:hidden;padding:26px;position:relative;isolation:isolate;
  text-decoration:none;color:inherit}
.tile:focus-visible{outline:2px solid var(--burgundy);outline-offset:3px}
/* Kacheln ohne Bildmotiv (z.B. Portraet-Platzhalter) zentrieren ihren Inhalt */
.tile:not(.t1):not(.t2):not(.t3){align-items:center;justify-content:center}
/* Bild liegt auf einem Pseudo-Element, damit der Blur den Text nicht erfasst.
   inset:-80px = Überstand, sonst laufen die Ränder durch den Blur weich aus.
   will-change:filter haelt die Compositing-Ebene dauerhaft promotet - ohne das
   rastert der Browser am Ende der Animation neu und die Darstellung springt. */
.tile::before{content:"";position:absolute;inset:-80px;z-index:0;
  background-size:cover;background-position:center;
  filter:blur(20px);transition:filter 1s ease;
  will-change:filter;transform:translateZ(0);backface-visibility:hidden}
.tile > *{position:relative;z-index:2}
/* Heller Verlauf nach unten, damit der dunkle Text auf dem kontrastreichen
   Bild lesbar bleibt. Viele Stuetzpunkte = S-Kurve statt linear, sonst
   entstehen sichtbare Stufen (Banding). Das Rauschen dithert den Rest weg. */
.tile::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E"),
    linear-gradient(to top,
      rgba(252,251,248,1)    0%,
      rgba(252,251,248,.995) 6%,
      rgba(252,251,248,.98)  11%,
      rgba(252,251,248,.955) 15%,
      rgba(252,251,248,.915) 19%,
      rgba(252,251,248,.86)  23%,
      rgba(252,251,248,.79)  27%,
      rgba(252,251,248,.705) 31%,
      rgba(252,251,248,.61)  35%,
      rgba(252,251,248,.51)  39%,
      rgba(252,251,248,.41)  43%,
      rgba(252,251,248,.315) 47%,
      rgba(252,251,248,.23)  51%,
      rgba(252,251,248,.16)  55%,
      rgba(252,251,248,.105) 59%,
      rgba(252,251,248,.062) 63%,
      rgba(252,251,248,.032) 67%,
      rgba(252,251,248,.014) 71%,
      rgba(252,251,248,.004) 75%,
      rgba(252,251,248,0)    80%)}
@media (hover:hover){
  .tile:hover::before{filter:blur(0)}
}
/* Für Geräte ohne Maus (Touch): Schärfe wird per JS beim Scrollen
   gesteuert (siehe Skript am Seitenende), nicht per CSS-Hover. */
.tile.in-view::before{filter:blur(0)}
.tile span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.tile .num{width:150px;height:112px;display:block;margin-left:auto}
.tile .num text{font-family:"Inter",sans-serif;font-weight:700;font-size:96px;
  fill:rgba(251,250,247,.55);stroke:var(--mute);stroke-width:1.6;
  stroke-linejoin:round;stroke-miterlimit:2}
.tile .word{font-size:19px;font-weight:600;color:var(--graphite);line-height:1.3}
.tile.t1::before{background-image:url("../img/sharp-personal.jpg")}
.tile.t2::before{background-image:url("../img/sharp-ma.jpg")}
.tile.t3::before{background-image:url("../img/sharp-projekt.jpg")}
.col p{font-size:15.5px;color:var(--graphite);line-height:1.62}
.col .signed{font-weight:700;margin-top:14px;color:var(--graphite)}

/* ---------- Inhaltsseiten (Profil, Leistungen, …) ---------- */
.page{padding:54px 0 80px;max-width:760px}
.page h1{font-size:30px;font-weight:700;color:var(--graphite);margin-bottom:8px;line-height:1.2}
.page h2{font-size:21px;font-weight:700;color:var(--graphite);margin:34px 0 6px}
.page h3{font-size:16px;font-weight:600;color:var(--graphite);margin:22px 0 4px}
.page p{margin:0 0 14px;color:var(--graphite)}
.page strong{font-weight:700}
.page ul{list-style:none;margin:0 0 14px}
.page li{position:relative;padding-left:20px;margin:6px 0;color:var(--graphite)}
.page li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:1.5px;background:var(--burgundy)}
.lede{font-size:18px;line-height:1.55;color:var(--graphite);margin-bottom:8px}
.subnav{display:flex;gap:24px;margin-bottom:30px;font-size:14px;
  padding-bottom:16px;border-bottom:1px solid var(--line)}
.subnav a{text-decoration:none;color:var(--slate);transition:color .15s}
.subnav a:hover{color:var(--graphite)}
.subnav a.active{color:var(--burgundy);font-weight:600}
.contact-block{font-size:16px;line-height:1.8;margin:18px 0}
.mail-cta{display:inline-block;margin-top:18px;font-size:15px;color:var(--burgundy);
  text-decoration:none;border-bottom:1px solid var(--burgundy);padding-bottom:2px}
.mail-cta:hover{color:var(--graphite);border-color:var(--graphite)}

/* ---------- Footer (CI-clean: keine Burgunder-Fläche) ---------- */
footer{background:var(--sand);border-top:1.5px solid var(--burgundy);padding:54px 0 40px}
.foot-grid{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:40px}
.foot-label{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.foot-label .tick{width:20px;height:2px;background:var(--burgundy);flex:none}
.foot-label .t{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--burgundy);font-weight:600}
footer a{display:block;text-decoration:none;color:var(--slate);font-size:15px;padding:3px 0;transition:color .15s}
footer a:hover{color:var(--graphite)}
.foot-grid .addr{color:var(--graphite);font-size:15px;line-height:1.7}
.copy{margin-top:42px;padding-top:18px;border-top:1px solid var(--line);
  font-size:13px;letter-spacing:.06em;color:var(--mute)}

a:focus-visible,nav a:focus-visible{outline:2px solid var(--burgundy);outline-offset:3px}

@media(max-width:900px){
  .grid{grid-template-columns:repeat(2,1fr);gap:40px}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .wrap{padding:0 22px}
  .head-row{flex-direction:column;align-items:flex-start;gap:18px}
  .grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .hero-inner{flex-direction:column-reverse;align-items:flex-start;gap:24px}
  .hero-line{font-size:21px}
  .subnav{flex-wrap:wrap;gap:14px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
