/* ==========================================================================
   sloane — ModelHub-Vorlage, Entwurf 06.10.2026

   Richtung: Dribbble „Atelier Noir" (von Mathias geschickt). Schwarz-Weiss-
   Fotografie mit Architektur und EINER Signalfarbe — Zitronen-Pastellgelb
   (Wunsch Mathias/Jule; zwischendurch Flieder). Fette, eng gesetzte Grotesk (Inter Tight), der Name riesig
   unten im Bild. Startet in S/W (data-mh-default-bw), Regler schaltet auf Farbe.
   ========================================================================== */

:root{
  /* Zitronen-Pastellgelb (Wahl Mathias + Jule 06.10.: „wie das helle Instagram-Gelb"),
     vorher Flieder #c9b6ff. Zugleich Haken fuer den Vorschau-Regler. */
  --accent:#f7f3a1;
  --accent-deep:#efe87a;
  --ink:#0f0f0f;
  --ink-2:#161616;
  --paper:#f5f4ee;          /* warm, passend zum Gelb (vorher fliederstichig #f4f2f7) */
  --light:rgba(255,255,255,.62);
  --accent-rgb:247,243,161;  /* dieselbe Farbe als Zahlen, fuer halbtransparente Stellen */
  --line:rgba(var(--accent-rgb),.22);
  --sans:"Inter Tight","Helvetica Neue",Arial,sans-serif;
  --gut:clamp(18px,3vw,48px);
  --max:1480px;
  --ease:cubic-bezier(.2,.7,.1,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:#fff;font:400 16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
figure{margin:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
::selection{background:var(--accent);color:var(--ink)}
.skip{position:absolute;left:12px;top:-60px;z-index:300;background:var(--accent);color:var(--ink);padding:10px 16px;text-decoration:none}
.skip:focus{top:12px}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}

/* Grosse Saetze: fett, eng */
.big{margin:0;font:700 clamp(38px,5.4vw,84px)/.98 var(--sans);letter-spacing:-.045em;color:var(--accent)}
.big--ink{color:var(--ink)}
.pfeil,.more{font:600 15px/1 var(--sans);letter-spacing:-.01em;text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:4px}

/* ------------------------------------------------------------------ Start */
.hero{position:relative;height:100vh;height:100svh;min-height:620px;overflow:hidden;background:#111;isolation:isolate}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transform:scale(1.08);animation:ruhe 2.6s var(--ease) both}
@keyframes ruhe{to{transform:scale(1)}}
.hero__rings{position:absolute;inset:0;width:100%;height:100%;z-index:-1;fill:none;stroke:rgba(255,255,255,.22);stroke-width:1;
  animation:kreise 2s ease .4s both}
@keyframes kreise{from{opacity:0}}
.hero__shade{position:absolute;inset:0;z-index:-1;background:
  radial-gradient(62% 58% at 100% 0%,rgba(0,0,0,.82),rgba(0,0,0,.5) 45%,rgba(0,0,0,0) 78%),
  linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,0) 28%,rgba(0,0,0,0) 58%,rgba(0,0,0,.55))}
.hero__top{display:flex;justify-content:space-between;gap:30px;padding:clamp(22px,3vw,42px) var(--gut) 0}
.claim{margin:0;font:700 clamp(30px,3.4vw,52px)/.98 var(--sans);letter-spacing:-.045em;color:var(--accent)}
.mini{display:grid;gap:4px;margin:22px 0 0 clamp(14px,1.6vw,26px)}
.mini a{text-decoration:none;font:500 14px/1.35 var(--sans);color:var(--accent);transition:transform .4s var(--ease)}
.mini a:hover{transform:translateX(6px)}
.hero__side{display:grid;justify-items:end;align-content:start;gap:16px;max-width:300px;margin-top:8vh}
.avatars{display:flex}
.avatars img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--ink);margin-left:-10px}
.hero__text{margin:0;font:600 14.5px/1.45 var(--sans);color:var(--accent);text-shadow:0 1px 12px rgba(0,0,0,.5);text-align:justify;text-align-last:left}
.lang{display:flex;gap:10px;font:600 12px/1 var(--sans);color:var(--accent)}
.lang button{opacity:.45}.lang button.is-active,.lang button:hover{opacity:1}

/* Der Name: riesig, unten, schiebt sich hoch. Groesse setzt script.js (--ns), damit
   er die Breite fuellt — egal wie lang der Name ist. */
/* Zeilenhoehe 1.04 und unten buendig: die Unterlaenge (y in Reyes) bleibt sichtbar */
.hero__name{position:absolute;left:0;right:0;bottom:0;margin:0;overflow:hidden;
  font:800 var(--ns,15.5vw)/1.04 var(--sans);letter-spacing:-.065em;color:var(--accent);white-space:nowrap;text-align:center;
  padding-top:.05em}
.hero__name-in{display:inline-block}
/* Auftritt: erst Claim, Navi, Text — dann der Name. Ruhelage = sichtbar. */
html.js .a1{animation:auf .9s var(--ease) .3s both}
html.js .a2{animation:auf .9s var(--ease) .65s both}
html.js .a3{animation:auf .9s var(--ease) 1s both}
html.js .hero__name-in{animation:hoch 1.2s var(--ease) 1.35s both}
@keyframes auf{from{opacity:0;transform:translateY(14px)}}
@keyframes hoch{from{transform:translateY(100%)}}

/* ------------------------------------------------------------------ Farbkarte */
.intro{padding:clamp(22px,3vw,48px) var(--gut)}
.card{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(20px,3vw,48px);
  background:var(--accent);color:var(--ink);padding:clamp(22px,3vw,46px)}
.card__text{display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.card__lede{margin:0;font:700 clamp(34px,4.4vw,70px)/1 var(--sans);letter-spacing:-.045em}
/* Der Satz wird beim Scrollen Wort fuer Wort dunkel (script.js setzt .an) */
.card__lede .w{transition:color .35s}
.card__lede .w:not(.an){color:rgba(15,15,15,.28)}
.card__foot{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;font:500 clamp(16px,1.4vw,21px)/1.3 var(--sans)}
.card__foot p{margin:0}
.card__img{overflow:hidden;align-self:stretch;min-height:360px;outline:clamp(8px,1vw,14px) solid var(--accent)}
.card__img img{width:100%;height:100%;object-fit:cover}

/* ------------------------------------------------------------------ Dunkel: Daten + Aktuell */
.dark{padding:clamp(90px,10vw,150px) 0}
.dark__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,100px)}
.dark__left{display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.dark__text{margin:-10px 0 0;max-width:420px;color:var(--accent);opacity:.9}
.stats{margin:0;border-top:1px solid var(--line)}
.stats div{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);color:var(--accent);
  font:500 clamp(18px,1.6vw,24px)/1.2 var(--sans)}
.stats dt{opacity:.9}.stats dd{margin:0}
.dark__img{overflow:hidden}
.dark__img img{width:100%;aspect-ratio:16/9;object-fit:cover}
.news{margin-top:clamp(40px,5vw,70px)}
.news__label{margin:0 0 6px;font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--light)}
.item{display:grid;grid-template-columns:minmax(0,1fr) clamp(130px,14vw,210px);gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);
  text-decoration:none}
.item time{display:block;margin-bottom:10px;font:400 14px/1 var(--sans);color:rgba(var(--accent-rgb),.6)}
.item h3{margin:0;font:500 clamp(19px,1.6vw,24px)/1.22 var(--sans);letter-spacing:-.015em;color:var(--accent);transition:transform .5s var(--ease)}
.item img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform 1s var(--ease)}
.item:hover h3{transform:translateX(8px)}
.item:hover img{transform:scale(1.05)}
.news .more{display:inline-block;margin-top:30px;color:var(--accent)}

/* ------------------------------------------------------------------ Bereiche (hell, Flieder-Grund) */
.areas{background:var(--paper);color:var(--ink);padding:clamp(90px,10vw,150px) 0}
.areas .big{max-width:900px;margin-bottom:clamp(40px,5vw,70px)}
.areas__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,30px)}
.area{text-decoration:none;display:block}
.area figure{overflow:hidden;margin-bottom:16px}
.area img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.2s var(--ease)}
.area:hover img{transform:scale(1.04)}
.area__n{font:600 12px/1 var(--sans);letter-spacing:.12em;color:rgba(15,15,15,.45)}
.area h3{margin:6px 0 4px;font:700 clamp(28px,2.8vw,42px)/1 var(--sans);letter-spacing:-.04em}
.area p{margin:0;color:rgba(15,15,15,.6)}

/* ------------------------------------------------------------------ Kontakt (Flieder) */
.contact{background:var(--accent);color:var(--ink);padding:clamp(90px,10vw,150px) 0}
.contact__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(40px,6vw,100px);align-items:start}
.contact__meta{margin:40px 0 0;display:grid;gap:10px;max-width:480px}
.contact__meta div{display:grid;grid-template-columns:110px 1fr;gap:14px;padding-top:12px;border-top:1px solid rgba(15,15,15,.25)}
.contact__meta dt{font:600 11px/1.6 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:rgba(15,15,15,.6)}
.contact__meta dd{margin:0;font-weight:500}
.form{display:grid;gap:20px}
.field{display:grid;gap:8px}
.field label{font:600 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:rgba(15,15,15,.6)}
.field input,.field textarea{width:100%;font:500 17px/1.4 var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:1.5px solid rgba(15,15,15,.4);
  border-radius:0;padding:6px 0 10px;outline:0;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--ink)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5;color:rgba(15,15,15,.75)}
.consent input{margin-top:3px;accent-color:var(--ink)}
.btn{justify-self:start;padding:18px 30px;border-radius:99px;background:var(--ink);color:var(--accent);font:600 15px/1 var(--sans);transition:transform .4s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.demo-note{margin:0;font-size:13.5px;font-weight:500}

/* ------------------------------------------------------------------ Fuss */
.foot{padding:clamp(60px,7vw,100px) 0 26px;overflow:hidden}
.foot__name{margin:0 0 30px;text-align:center;white-space:nowrap;font:800 var(--ns,15.5vw)/1.04 var(--sans);letter-spacing:-.065em;color:var(--accent)}
.foot__row{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:20px 0;border-top:1px solid var(--line);color:var(--accent)}
.foot__nav{display:flex;flex-wrap:wrap;gap:10px 26px}
.foot a{text-decoration:none;font:500 15px/1 var(--sans)}
.foot__legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 24px;padding-top:16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--light)}
.foot__legal a{font:inherit;color:inherit}

/* ------------------------------------------------------------------ Menue (Handy) */
.menu-btn{display:none;position:fixed;z-index:60;top:18px;right:18px;width:48px;height:48px;border-radius:50%;background:var(--accent);color:var(--ink);
  place-items:center}
.menu-btn span{display:grid;gap:4px;width:16px}
.menu-btn i{display:block;height:2px;background:currentColor;transition:transform .4s var(--ease),opacity .3s}
.menu-btn[aria-expanded="true"] i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-btn[aria-expanded="true"] i:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:55;background:var(--accent);color:var(--ink);display:flex;align-items:center;padding:0 var(--gut);
  clip-path:circle(0px at calc(100% - 42px) 42px);transition:clip-path .8s cubic-bezier(.77,0,.18,1)}
.menu.is-open{clip-path:circle(150vmax at calc(100% - 42px) 42px)}
.menu nav{display:grid;gap:2px}
.menu a{text-decoration:none;font:700 clamp(40px,11vw,70px)/1.05 var(--sans);letter-spacing:-.045em;overflow:hidden;display:block}
.menu a span{display:inline-block}

/* ------------------------------------------------------------------ Einblenden */
html.js .rise{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:var(--d,0s)}
html.js .rise.is-in{opacity:1;transform:none}

/* ------------------------------------------------------------------ Pro-Unterseiten (ops/bau-pro-sloane.py) */
.pro-head{padding:clamp(110px,12vw,170px) 0 clamp(30px,4vw,50px)}
.pro-head__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:30px;align-items:end;padding-bottom:26px;border-bottom:1px solid var(--line)}
.pro-head h1{margin:0;font:800 clamp(64px,11vw,190px)/.86 var(--sans);letter-spacing:-.06em;color:var(--accent)}
.pro-lede{margin:0 0 10px;font:500 clamp(17px,1.4vw,21px)/1.4 var(--sans);color:var(--accent)}
.pro-nav{display:flex;flex-wrap:wrap;gap:6px 22px;margin-bottom:10px}
.pro-nav a{text-decoration:none;font:500 15px/1 var(--sans);color:var(--accent)}
.filter{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 40px}
.filter button{padding:11px 20px;border-radius:99px;border:1px solid var(--accent);color:var(--accent);font:600 13px/1 var(--sans);transition:background .3s,color .3s}
.filter button i{font-style:normal;opacity:.6;margin-left:6px}
.filter button[aria-pressed="true"]{background:var(--accent);color:var(--ink)}
.pf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.8vw,26px);align-items:start;padding-bottom:clamp(70px,8vw,120px)}
.pf-col{display:grid;gap:clamp(14px,1.8vw,26px)}
.pf-col:nth-child(2){margin-top:clamp(40px,6vw,100px)}
.pf{cursor:pointer;overflow:hidden}
.pf img{width:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.pf--45 img{aspect-ratio:4/5}.pf--23 img{aspect-ratio:2/3}
.pf:hover img{transform:scale(1.035)}
.pf:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.pf.is-hidden{display:none}
.pf figcaption{display:flex;justify-content:space-between;gap:10px;padding-top:12px;background:var(--ink);position:relative;color:var(--accent);font:500 18px/1.2 var(--sans)}
.pf figcaption i{font:400 13px/1.4 var(--sans);font-style:normal;color:rgba(var(--accent-rgb),.6)}
.lb{position:fixed;inset:0;z-index:2147483600;display:grid;place-items:center;padding:70px clamp(14px,7vw,110px);background:rgba(15,15,15,.97)}
.lb__fig{display:grid;justify-items:center;gap:14px}
.lb__fig img{max-width:100%;max-height:calc(100svh - 190px);width:auto;height:auto}
.lb__fig figcaption{display:flex;gap:18px;align-items:baseline;color:var(--accent);font:500 20px/1 var(--sans)}
.lb__fig figcaption i{font:400 13px/1 var(--sans);font-style:normal;opacity:.6}
.lb__btn{position:absolute;top:50%;width:54px;height:54px;margin-top:-27px;border-radius:50%;background:var(--accent);color:var(--ink);font-size:20px}
.lb__prev{left:clamp(10px,2.5vw,36px)}.lb__next{right:clamp(10px,2.5vw,36px)}
.lb__close{position:absolute;top:24px;right:var(--gut);color:var(--accent);font:600 15px/1;border-bottom:1.5px solid currentColor;padding-bottom:4px}
.lb__count{position:absolute;top:28px;left:var(--gut);margin:0;color:var(--accent);font:600 13px/1 var(--sans)}
.bio{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:clamp(40px,7vw,120px);align-items:start;padding:clamp(20px,3vw,40px) 0 clamp(70px,8vw,120px)}
.bio__img{position:sticky;top:40px;overflow:hidden}
.bio__img img{width:100%;aspect-ratio:3/4;object-fit:cover}
.bio__text .big{margin-bottom:30px}
.bio__text > p{max-width:560px;margin:0 0 18px;color:var(--accent);opacity:.88}
.pro-sub{margin:44px 0 6px;font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--light)}
.wide{padding-bottom:clamp(70px,8vw,120px)}
.wide img{width:100%;aspect-ratio:21/9;object-fit:cover}
.wide figcaption{display:flex;justify-content:space-between;padding-top:12px;color:var(--accent);font:500 18px/1.2 var(--sans)}
.wide figcaption i{font:400 13px/1.4 var(--sans);font-style:normal;opacity:.6}

/* ------------------------------------------------------------------ Tablet */
@media (max-width:1000px){
  .card,.dark__grid,.contact__grid,.pro-head__grid,.bio{grid-template-columns:1fr}
  .card__img{min-height:0}.card__img img{aspect-ratio:4/3}
  .bio__img{position:static;max-width:560px}
}
/* ------------------------------------------------------------------ Handy */
@media (max-width:700px){
  .menu-btn{display:grid}
  .mini,.hero__side .lang{display:none}
  .hero__top{flex-direction:column;gap:20px}
  .hero__side{justify-items:start;margin-top:0;max-width:260px}
  .claim{font-size:34px;max-width:240px}
  .areas__grid{grid-template-columns:1fr 1fr}
  .areas__grid .area:last-child{grid-column:1/-1}
  .item{grid-template-columns:minmax(0,1fr) 110px;gap:16px}
  .pf-grid{grid-template-columns:1fr 1fr}
  .pf-col{display:contents}
  .pf-col:nth-child(2){margin-top:0}
}
@media (hover:none) and (pointer:coarse){ .field input,.field textarea{font-size:16px} }
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  html.js .rise{opacity:1;transform:none}
  .card__lede .w:not(.an){color:inherit}
}
