/* ==========================================================================
   ANYA POLEZHAEVA · FOTOGRAFIN IN MÜNCHEN · Gestaltung "Weißraum"
   Eine weiße Galeriewand an einem sonnigen Tag. Die Fotos tragen die Seite,
   alles andere tritt zurück.

   PALETTE (Tokens unten in :root)
     --paper   #FFFFFF  Grundfläche
     --warm    #F8F6F2  warmes Off-White für jeden zweiten Abschnitt
     --ink     #24211E  Text, Buttons
     --muted   #6A635C  Sekundärtext (5,9:1 auf Weiß, 5,5:1 auf --warm)
     --line    #E6E0D8  Haarlinien
     --clay    #9C6B4E  einziger Akzent, nur im Kleinen: aktiver Filter-Strich,
                        Fokusring, Link-Hover, Häkchen (4,5:1 auf Weiß)

   SCHRIFT
     Jost 400-600      Navigation, Labels, Fließtext (geometrisch, ruhig)
     Newsreader 500    Überschriften und Preise, Buchschrift mit optischen
                       Größen, kein Haarstrich; Kursive für ein Wort je Headline
     Wortmarke         Jost 500, Versalien, Sperrung 0.28em
     Kicker            Jost 500, 12px, Versalien, Sperrung 0.24em, --muted

   LAYOUT
     max. 1240px Inhalt, 12-Spalten-Raster ab 960px, strikt linksbündig.
     Abschnitte werden durch Raum getrennt, nicht durch Kästen.
     Hero: Band aus hohen 2:3-Fotos von Rand zu Rand, darunter Headline + Link.
     Portfolio: Text-Tabs mit gleitendem Unterstrich, CSS-Spalten-Mauerwerk.
     Preise: vier Spalten mit Haarlinien, keine Karten.
     Kontakt: Felder nur mit Unterlinie.

   SIGNATUR
     Das Fotoband im Hero wandert ganz langsam seitwärts (Endlosband). Hält an
     bei Hover, Fokus, Berührung und bei prefers-reduced-motion; lässt sich
     wischen und ziehen. Unter dem aktiven Foto erscheint ein winziges
     Galerie-Etikett "03 / 08 · Paare". Dazu eine weiße Vollbild-Lightbox mit
     dünnen Pfeilen, Kategorie und "01 / 12".
   ========================================================================== */
:root{
  --paper:#FFFFFF; --warm:#F8F6F2; --ink:#24211E; --muted:#6A635C; --line:#E6E0D8;
  --clay:#9C6B4E; --error:#A3392B;
  --sans:'Jost', ui-sans-serif, system-ui, sans-serif;
  --serif:'Newsreader', Georgia, 'Times New Roman', serif;
  --max:1240px;
  --gut:clamp(16px, 4.2vw, 48px);
  --gap:24px;
  --sec:clamp(88px, 11vw, 168px);
  --ease:cubic-bezier(.22,.61,.36,1);
  --head-h:64px;
}
@media (min-width:960px){ :root{ --head-h:80px; } }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-weight:400;
  font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
@media (min-width:960px){ body{ font-size:18px; } }
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; }
button{ font:inherit; color:inherit; }
:focus-visible{ outline:2px solid var(--clay); outline-offset:3px; }
.sr-only{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip{ position:absolute; left:16px; top:-100px; z-index:100; background:var(--ink); color:#fff; padding:12px 18px; font-size:15px; text-decoration:none; }
.skip:focus{ top:12px; }
section[id]{ scroll-margin-top:calc(var(--head-h) + 8px); }

.wrap{ width:100%; max-width:calc(var(--max) + 2 * var(--gut)); margin-inline:auto; padding-inline:var(--gut); }
.grid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); column-gap:16px; }
@media (min-width:960px){ .grid{ grid-template-columns:repeat(12, minmax(0,1fr)); column-gap:var(--gap); } }

.kicker{ font:500 12px/1.4 var(--sans); letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin:0 0 20px; }
.kicker .n{ color:var(--ink); margin-right:.9em; }
h1,h2,h3{ font-family:var(--serif); font-weight:500; font-optical-sizing:auto; margin:0; color:var(--ink); }
h1 em,h2 em,h3 em{ font-style:italic; }
h1,h2,h3{ text-wrap:balance; }
h2{ font-size:clamp(2.1rem, 1.4rem + 2.6vw, 3.4rem); line-height:1.06; letter-spacing:-.012em; }
p{ margin:0 0 1em; }
.muted{ color:var(--muted); }

/* text link with hairline underline */
.tlink{ text-decoration:none; background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat; padding-bottom:2px; transition:color .25s, background-size .35s var(--ease); }
.tlink:hover{ color:var(--clay); }

/* ---------- Header ---------- */
.head{ position:sticky; top:0; z-index:40; background:rgba(255,255,255,.94); backdrop-filter:saturate(1.2) blur(8px); border-bottom:1px solid transparent; transition:border-color .3s; }
.head.scrolled{ border-bottom-color:var(--line); }
.head .wrap{ display:flex; align-items:center; justify-content:space-between; height:var(--head-h); gap:24px; }
.brand{ text-decoration:none; display:flex; flex-direction:column; gap:2px; padding:6px 0; }
.brand b{ font:500 13px/1.2 var(--sans); letter-spacing:.22em; white-space:nowrap; text-transform:uppercase; margin-right:-.28em; }
.brand span{ font-size:12px; line-height:1.2; color:var(--muted); letter-spacing:.04em; }
@media (min-width:960px){ .brand b{ font-size:15px; letter-spacing:.28em; } .brand span{ font-size:13px; } }
.nav{ display:none; }
.nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:clamp(20px, 2.6vw, 40px); }
.nav a{ text-decoration:none; font-size:15px; letter-spacing:.04em; display:inline-block; padding:12px 0; position:relative; }
.nav a::after{ content:""; position:absolute; left:0; right:0; bottom:8px; height:1px; background:var(--clay); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
.nav a:hover::after,.nav a[aria-current="true"]::after{ transform:scaleX(1); }
.head-right{ display:flex; align-items:center; gap:clamp(4px, 3vw, 48px); }
.menu-btn{ background:none; border:0; min-height:44px; padding:0 0 0 8px; font-size:13px; letter-spacing:.2em; text-transform:uppercase; font-weight:500; cursor:pointer; display:flex; align-items:center; gap:10px; }
@media (max-width:420px){ .menu-btn{ letter-spacing:.14em; gap:8px; } .menu-btn svg{ width:18px; } }
/* Sprachumschalter DE / RU (site/lang.js merkt sich die Wahl) */
.lang{ display:flex; align-items:center; font:500 12px/1 var(--sans); letter-spacing:.16em; }
.lang a{ position:relative; display:inline-flex; align-items:center; min-height:44px; padding:0 8px; text-decoration:none; color:var(--muted); transition:color .25s; }
.lang a:hover{ color:var(--clay); }
.lang a[aria-current]{ color:var(--ink); }
/* Sprachumschalter und Anmeldung für Anya (/admin/) als eine Gruppe */
.tools{ display:flex; align-items:center; }
.admin-link{ display:inline-grid; place-items:center; width:36px; min-height:44px; color:var(--muted); transition:color .25s; }
.admin-link:hover{ color:var(--clay); }
.admin-link svg{ width:13px; height:15px; }
/* Auf dem Handy ist im Kopf kein Platz: dort steht das Schloss im Menü (.sheet-foot) */
@media (max-width:959px){ .head .admin-link{ display:none; } }
/* Sehr schmale Handys (360 px und weniger): Wortmarke, DE/RU und Menü passen nur etwas enger */
@media (max-width:400px){ .brand b{ letter-spacing:.16em; } .lang a{ padding:0 6px; } .head-right{ gap:2px; } }
/* 320 px: nur noch das Menü-Symbol, der Name des Knopfs bleibt für Screenreader */
@media (max-width:340px){ .head .menu-btn{ font-size:0; gap:0; padding-left:12px; } }
.lang a + a::before{ content:""; position:absolute; left:0; top:50%; width:1px; height:12px; margin-top:-6px; background:#CFC7BC; }
.menu-btn svg{ width:22px; height:10px; }
@media (min-width:960px){ .nav{ display:block; } .menu-btn{ display:none; } }

/* mobile menu */
.sheet{ position:fixed; inset:0; z-index:60; background:var(--paper); display:flex; flex-direction:column; opacity:0; visibility:hidden; transition:opacity .3s, visibility 0s .3s; }
.sheet.open{ opacity:1; visibility:visible; transition:opacity .3s; }
.sheet .bar{ display:flex; justify-content:space-between; align-items:center; height:64px; padding-inline:var(--gut); }
.sheet nav{ padding:32px var(--gut); flex:1; }
.sheet ul{ list-style:none; margin:0; padding:0; }
.sheet li{ border-top:1px solid var(--line); }
.sheet li:last-child{ border-bottom:1px solid var(--line); }
.sheet nav a{ display:flex; justify-content:space-between; align-items:baseline; padding:18px 0; text-decoration:none; font:500 2rem/1.1 var(--serif); }
.sheet nav a small{ font:500 12px var(--sans); letter-spacing:.2em; color:var(--muted); }
.sheet-foot{ padding:24px var(--gut) calc(24px + env(safe-area-inset-bottom)); display:flex; justify-content:space-between; align-items:center; color:var(--muted); font-size:15px; }

/* ---------- Hero strip (signature) ---------- */
.hero{ padding-top:clamp(12px, 2vw, 24px); }
.strip{ --w:64vw; --g:8px; position:relative; overflow:clip; touch-action:pan-y; cursor:grab; user-select:none; -webkit-user-select:none; }
@media (min-width:600px){ .strip{ --w:38vw; } }
@media (min-width:960px){ .strip{ --w:clamp(240px, 19.6vw, 400px); --g:10px; } }
.strip.dragging{ cursor:grabbing; }
.strip-track{ display:flex; gap:var(--g); width:max-content; will-change:transform; }
.strip figure{ margin:0; width:var(--w); flex:none; }
.strip figcaption span.lab{ display:flex; gap:10px; align-items:baseline; white-space:nowrap; }
.strip button{ display:block; width:100%; padding:0; border:0; background:var(--warm); cursor:inherit; }
.strip img{ width:100%; aspect-ratio:2/3; object-fit:cover; pointer-events:none; -webkit-user-drag:none; transition:filter .6s; }
.strip button:hover img{ filter:brightness(1.03); }
.strip figcaption{ display:flex; gap:10px; align-items:baseline; height:36px; padding-top:12px; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); opacity:0; transform:translateY(-4px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.strip figcaption b{ font-weight:500; color:var(--ink); letter-spacing:.08em; }
.strip figcaption .dash{ width:18px; height:1px; background:var(--clay); align-self:center; }
.strip figure.is-active figcaption{ opacity:1; transform:none; }

.hero-text{ padding-top:clamp(28px, 4vw, 56px); padding-bottom:clamp(40px, 6vw, 88px); row-gap:28px; align-items:end; }
.hero h1{ grid-column:1/-1; font-size:clamp(2.6rem, 1.7rem + 3.2vw, 4.6rem); line-height:1.03; letter-spacing:-.018em; max-width:14ch; }
.hero-cta{ grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:16px 32px; }
.hero-side{ grid-column:1/-1; color:var(--muted); max-width:34ch; }
.hero-side p{ margin:0 0 14px; }
.cta{ display:inline-flex; align-items:center; gap:14px; min-height:44px; font-weight:500; font-size:15px; letter-spacing:.2em; text-transform:uppercase; text-decoration:none; color:var(--ink); }
.cta span{ background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat; padding-bottom:4px; }
.cta svg{ width:28px; height:10px; transition:transform .35s var(--ease); }
.cta:hover{ color:var(--clay); }
.cta:hover svg{ transform:translateX(5px); }
.pause{ background:none; border:0; padding:0; min-height:44px; display:inline-flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); cursor:pointer; }
.pause:hover{ color:var(--clay); }
.pause svg{ width:10px; height:10px; }
.pause .i-play,.pause.paused .i-pause{ display:none; }
.pause.paused .i-play{ display:block; }
@media (min-width:960px){
  .hero h1{ grid-column:1/9; grid-row:1; }
  .hero-cta{ grid-column:1/9; grid-row:2; }
  .hero-side{ grid-column:9/13; grid-row:1/3; align-self:end; padding-bottom:4px; }
}
@media (prefers-reduced-motion:reduce){ .pause{ display:none; } }

/* ---------- Sections ---------- */
.sec{ padding-block:var(--sec); }
.sec.warm{ background:var(--warm); }
.sec-head{ margin-bottom:clamp(36px, 5vw, 64px); }
.sec-head h2{ grid-column:1/-1; max-width:16ch; }
.sec-head .kicker{ grid-column:1/-1; }

/* ---------- Portfolio ---------- */
.pf .sec-head{ align-items:end; row-gap:28px; }
.pf-title-wrap{ grid-column:1/-1; }
@media (min-width:960px){ .pf-title-wrap{ grid-column:1/7; } .pf-title-wrap h2{ margin-bottom:0; } }
.filters{ grid-column:1/-1; position:relative; display:flex; gap:clamp(18px, 2.4vw, 36px); overflow-x:auto; scrollbar-width:none; margin-inline:calc(-1 * var(--gut)); padding-inline:var(--gut); }
.filters::-webkit-scrollbar{ display:none; }
@media (min-width:960px){ .filters{ grid-column:7/13; justify-content:flex-end; margin:0; padding:0; overflow:visible; } }
.filters button{ background:none; border:0; padding:10px 0 12px; min-height:44px; font-size:15px; letter-spacing:.06em; color:var(--muted); cursor:pointer; white-space:nowrap; transition:color .25s; }
.filters button:hover{ color:var(--ink); }
.filters button[aria-pressed="true"]{ color:var(--ink); font-weight:500; }
.filters button sup{ font-size:10px; margin-left:3px; letter-spacing:0; color:var(--muted); font-weight:400; }
.filters .bar{ position:absolute; left:0; bottom:4px; height:2px; width:10px; background:var(--clay); transform-origin:left; transition:transform .45s var(--ease), width .45s var(--ease); pointer-events:none; }
.gal{ columns:2; column-gap:12px; transition:opacity .28s var(--ease), transform .28s var(--ease); }
@media (min-width:700px){ .gal{ columns:3; column-gap:var(--gap); } }
.gal.fading{ opacity:0; transform:translateY(8px); }
.gal figure{ margin:0 0 clamp(20px, 2.4vw, 36px); break-inside:avoid; }
.gal figure[hidden]{ display:none; }
.gal button{ display:block; width:100%; padding:0; border:0; background:var(--warm); cursor:zoom-in; overflow:hidden; }
.gal img{ width:100%; transition:transform 1.2s var(--ease), opacity .6s; }
.gal button:hover img{ transform:scale(1.025); }
.gal figcaption{ display:flex; justify-content:space-between; gap:8px; padding-top:10px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.gal figcaption b{ font-weight:500; color:var(--ink); }
@media (max-width:699px){ .gal figcaption span{ display:none; } .gal figcaption{ letter-spacing:.12em; font-size:11px; padding-top:8px; } .gal figure{ margin-bottom:16px; } }
.pf-foot{ display:flex; flex-wrap:wrap; gap:12px 28px; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding-top:24px; margin-top:clamp(8px, 2vw, 24px); color:var(--muted); font-size:15px; }

/* ---------- Über mich ---------- */
.about .grid{ row-gap:40px; align-items:center; }
.about figure{ grid-column:1/-1; margin:0; }
.about figure img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.about figure figcaption{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); padding-top:10px; }
.about .txt{ grid-column:1/-1; }
.about h2{ margin-bottom:28px; }
.about .txt p{ max-width:36em; }
.about .sig{ font:italic 500 1.6rem/1 var(--serif); margin-top:28px; display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.about .sig a{ font:400 15px var(--sans); font-style:normal; letter-spacing:.04em; }
@media (min-width:700px){ .about figure{ grid-column:1/3; } .about .txt{ grid-column:3/5; } }
@media (min-width:960px){ .about figure{ grid-column:1/6; } .about .txt{ grid-column:7/13; } }

/* ---------- Ablauf ---------- */
.steps{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr; row-gap:0; }
.steps li{ border-top:1px solid var(--line); padding:24px 0 28px; display:grid; grid-template-columns:56px 1fr; column-gap:8px; }
.steps .no{ font:500 1.5rem/1.1 var(--serif); color:var(--muted); font-style:italic; }
.steps h3{ font:500 18px/1.35 var(--sans); margin:2px 0 8px; letter-spacing:.01em; }
.steps p{ margin:0; color:var(--muted); font-size:16px; }
@media (min-width:700px){ .steps{ grid-template-columns:repeat(2,1fr); column-gap:var(--gap); } }
@media (min-width:1100px){ .steps{ grid-template-columns:repeat(4,1fr); } .steps li{ grid-template-columns:1fr; padding-top:28px; } .steps .no{ font-size:2.4rem; margin-bottom:28px; } }
.decide{ margin-top:clamp(48px, 6vw, 88px); border-top:1px solid var(--ink); padding-top:28px; row-gap:16px; }
.decide h3{ grid-column:1/-1; font-size:clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem); line-height:1.1; }
.decide .d-txt{ grid-column:1/-1; }
.decide p{ color:var(--muted); max-width:36em; }
@media (min-width:960px){ .decide h3{ grid-column:1/7; padding-right:24px; } .decide .d-txt{ grid-column:7/13; } }

/* ---------- Preise ---------- */
.prices{ display:grid; grid-template-columns:1fr; }
.price{ border-top:1px solid var(--line); padding:28px 0 32px; display:flex; flex-direction:column; }
.price .cat{ font:500 12px/1.4 var(--sans); letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
.price h3{ font-size:clamp(1.5rem, 1.2rem + .9vw, 1.9rem); line-height:1.15; }
.price .amt{ font:500 clamp(2.8rem, 2rem + 2.6vw, 4rem)/1 var(--serif); margin:18px 0 6px; letter-spacing:-.02em; font-variant-numeric:lining-nums; }
.price .amt small{ font-size:.42em; font-style:italic; letter-spacing:0; color:var(--muted); margin-right:.2em; }
.price .unit{ font-size:14px; color:var(--muted); margin-bottom:22px; }
.price ul{ list-style:none; margin:0 0 28px; padding:0; font-size:16px; }
.price li{ padding:9px 0; border-bottom:1px solid var(--line); }
.price li:first-child{ border-top:1px solid var(--line); }
.price .ask{ margin-top:auto; align-self:flex-start; font-size:14px; letter-spacing:.02em; padding:12px 0; background:none; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }
@media (max-width:699px){
  .price{ display:grid; grid-template-columns:1fr auto; align-items:baseline; column-gap:12px; padding:24px 0 20px; }
  .price .cat,.price .unit,.price ul,.price .ask{ grid-column:1/-1; }
  .price .cat{ margin-bottom:8px; }
  .price .amt{ margin:0; font-size:2.5rem; text-align:right; }
  .price .unit{ margin:4px 0 14px; }
  .price ul{ margin-bottom:6px; font-size:15px; display:flex; flex-wrap:wrap; }
  .price li,.price li:first-child{ border:0; padding:0; }
  .price li:not(:last-child)::after{ content:"·"; margin:0 .5em; color:var(--muted); }
}
@media (min-width:700px){ .prices{ grid-template-columns:repeat(2,1fr); column-gap:var(--gap); } }
@media (min-width:1100px){
  .prices{ grid-template-columns:repeat(4,1fr); column-gap:0; border-top:1px solid var(--line); }
  .price{ border-top:0; padding:36px 28px 8px; border-left:1px solid var(--line); }
  .price:first-child{ border-left:0; padding-left:0; }
  .price:last-child{ padding-right:0; }
}
.p-notes{ margin-top:clamp(36px, 4vw, 56px); display:flex; flex-wrap:wrap; gap:12px 40px; justify-content:space-between; font-size:15px; color:var(--muted); border-top:1px solid var(--line); padding-top:22px; }
.p-notes p{ margin:0; }
.p-notes .common{ color:var(--ink); }
.p-notes .common span{ color:var(--line); margin:0 .5em; }

/* ---------- Kontakt ---------- */
.contact .grid{ row-gap:48px; }
.c-intro{ grid-column:1/-1; }
.c-intro h2{ margin-bottom:24px; }
.c-intro p{ color:var(--muted); max-width:30em; }
.c-direct{ margin-top:36px; border-top:1px solid var(--line); }
.c-direct a{ display:flex; justify-content:space-between; align-items:center; padding:16px 0; border-bottom:1px solid var(--line); text-decoration:none; transition:color .25s; }
.c-direct a:hover{ color:var(--clay); }
.c-direct small{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.c-form{ grid-column:1/-1; }
.c-photo{ margin:40px 0 0; display:none; }
.c-photo img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
@media (min-width:960px){ .c-photo{ display:block; } }
@media (min-width:960px){ .c-intro{ grid-column:1/5; } .c-form{ grid-column:6/13; } }

.form{ display:grid; grid-template-columns:1fr; column-gap:var(--gap); row-gap:34px; }
@media (min-width:600px){ .form{ grid-template-columns:1fr 1fr; } .form .full{ grid-column:1/-1; } }
.field{ position:relative; }
.field label,.field legend{ display:block; font:500 12px/1.4 var(--sans); letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; padding:0; }
.field label i,.field legend i{ font-style:normal; color:var(--clay); }
.field .opt{ text-transform:none; letter-spacing:.02em; font-weight:400; }
.field input,.field textarea{ width:100%; border:0; border-bottom:1px solid #8F877E; border-radius:0; background:transparent; padding:10px 0 12px; font:400 19px/1.4 var(--sans); color:var(--ink); transition:border-color .25s; -webkit-appearance:none; appearance:none; }
.field textarea{ resize:vertical; min-height:120px; }
.field input::placeholder,.field textarea::placeholder{ color:#7A7168; }
.field input:focus,.field textarea:focus{ outline:none; border-bottom-color:var(--ink); box-shadow:0 1px 0 0 var(--ink); }
.field input:focus-visible,.field textarea:focus-visible{ box-shadow:0 2px 0 0 var(--clay); border-bottom-color:var(--clay); }
.field .err{ display:none; color:var(--error); font-size:14px; margin-top:8px; }
.field.invalid input,.field.invalid textarea{ border-bottom-color:var(--error); }
.field.invalid .err{ display:block; }
fieldset.field{ border:0; margin:0; padding:0; min-width:0; }
.chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.chips label{ margin:0; position:relative; }
.chips input{ position:absolute; opacity:0; width:1px; height:1px; }
.chips span{ display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 18px; border:1px solid #8F877E; font:400 16px var(--sans); letter-spacing:.01em; text-transform:none; color:var(--ink); cursor:pointer; transition:border-color .2s, background .2s; }
.chips span::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--line); transition:background .2s; }
.chips label:hover span{ border-color:var(--ink); }
.chips input:checked + span{ border-color:var(--ink); background:var(--warm); }
.chips input:checked + span::before{ background:var(--clay); }
.chips input:focus-visible + span{ outline:2px solid var(--clay); outline-offset:2px; }
.field .check,.check{ display:flex; gap:14px; align-items:flex-start; cursor:pointer; font-size:16px; text-transform:none; letter-spacing:0; color:var(--ink); padding:4px 0; }
.check input{ appearance:none; -webkit-appearance:none; flex:none; width:24px; height:24px; margin:0; border:1px solid #8F877E; background:var(--paper); display:grid; place-content:center; cursor:pointer; transition:background .2s, border-color .2s; }
.check input::after{ content:""; width:12px; height:7px; border-left:2px solid #fff; border-bottom:2px solid #fff; transform:translateY(-2px) rotate(-45deg) scale(0); transition:transform .2s var(--ease); }
.check input:checked{ background:var(--clay); border-color:var(--clay); }
.check input:checked::after{ transform:translateY(-2px) rotate(-45deg) scale(1); }
.check a:hover{ color:var(--clay); }
.form-end{ display:flex; flex-wrap:wrap; align-items:center; gap:16px 28px; }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:56px; padding:0 36px; border:1px solid var(--ink); background:var(--ink); color:#fff; font:500 14px var(--sans); letter-spacing:.2em; text-transform:uppercase; cursor:pointer; transition:background .25s, color .25s; text-decoration:none; }
.btn:hover{ background:transparent; color:var(--ink); }
.btn svg{ width:26px; height:10px; }
.form-end small{ color:var(--muted); font-size:14px; }
.form.busy .btn{ opacity:.55; cursor:progress; }
.send-err{ flex-basis:100%; margin:0; padding-left:14px; border-left:2px solid var(--error); color:var(--error); font-size:15px; }
.hp{ position:absolute!important; left:-10000px; width:1px; height:1px; overflow:hidden; }
[hidden]{ display:none!important; }
.thanks{ border-top:1px solid var(--ink); padding-top:36px; }
.thanks h3{ font-size:clamp(2rem, 1.4rem + 2vw, 3rem); line-height:1.08; margin-bottom:20px; }
.thanks p{ color:var(--muted); max-width:32em; }
.thanks .again{ border:0; padding:0; min-height:44px; cursor:pointer; font-size:15px; }

/* ---------- optional photo consent inside the enquiry (voluntary, Art. 7(4) DSGVO) ---------- */
.pc{ border-top:1px solid var(--line)!important; padding-top:26px!important; }
.pc > legend{ float:left; width:100%; padding:0; margin:0 0 6px; font:500 18px/1.35 var(--sans); letter-spacing:.005em; text-transform:none; color:var(--ink); }
.pc > legend + *{ clear:both; }
.pc .tag{ display:inline-block; vertical-align:2px; margin-left:10px; font:500 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; color:var(--clay); border:1px solid currentColor; padding:4px 8px 3px; white-space:nowrap; }
.pc-sub{ color:var(--muted); font-size:15px; line-height:1.5; margin:0 0 4px; max-width:34em; }
.reveal{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .4s var(--ease), opacity .4s var(--ease); opacity:0; }
.reveal > div{ overflow:hidden; min-height:0; }
.reveal.open{ grid-template-rows:1fr; opacity:1; }
.pc-inner{ padding-top:22px; }
.pc-head{ display:flex; justify-content:space-between; align-items:center; gap:12px; }
.pc-head .kicker{ margin:0; }
.pc-all{ background:none; border:0; padding:0 0 0 12px; min-height:44px; font-size:14px; color:var(--muted); cursor:pointer; }
.pc-all span{ background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat; padding-bottom:2px; }
.pc-all:hover{ color:var(--clay); }
.pc-perms{ list-style:none; margin:4px 0 0; padding:0; display:grid; grid-template-columns:1fr; border-top:1px solid var(--line); }
.pc-perms li{ border-bottom:1px solid var(--line); }
.pc-perms .check{ padding:14px 0; gap:16px; }
.pc-perms .check b{ display:block; font-weight:500; font-size:16px; line-height:1.35; }
.pc .check{ font-weight:400; }
.pc-perms .check small{ font-weight:400; display:block; color:var(--muted); font-size:14px; line-height:1.4; margin-top:2px; }
.pc-perms .check input{ margin-top:1px; }
@media (min-width:640px){ .pc-perms{ grid-template-columns:1fr 1fr; column-gap:var(--gap); } }
.pc-err,.pc-kerr{ display:none; margin:12px 0 0; padding-left:14px; border-left:2px solid var(--clay); color:var(--clay); font-size:14px; }
.pc.warn .pc-err,.pc.warn-kids .pc-kerr{ display:block; }
.pc-custody{ margin:12px 0 0 38px; }
.pc-kerr{ margin-left:38px!important; }
.pc-art9{ margin:14px 0 0; }
.pc-kids{ margin-top:14px; }
.pc-note{ margin:6px 0 0 38px; color:var(--muted); font-size:14px; line-height:1.5; max-width:34em; }
.pc-details{ margin-top:16px; }
.pc-details summary{ list-style:none; display:inline-flex; align-items:center; gap:10px; min-height:44px; cursor:pointer; font-size:14px; color:var(--muted); }
.pc-details summary::-webkit-details-marker{ display:none; }
.pc-details summary:hover{ color:var(--clay); }
.pc-details summary span{ background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat; padding-bottom:2px; }
.pc-details summary i{ position:relative; width:10px; height:10px; }
.pc-details summary i::before,.pc-details summary i::after{ content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:currentColor; transition:transform .3s var(--ease); }
.pc-details summary i::after{ transform:rotate(90deg); }
.pc-details[open] summary i::after{ transform:rotate(0); }
.pc-details ul{ list-style:none; margin:6px 0 0; padding:0; font-size:14px; color:var(--muted); max-width:40em; }
.pc-details li{ display:grid; grid-template-columns:20px 1fr; gap:6px; padding:7px 0; border-top:1px solid var(--line); }
.pc-details li::before{ content:""; width:10px; height:1px; background:var(--clay); margin-top:.75em; }
.thanks .t-consent{ color:var(--ink); border-left:2px solid var(--clay); padding-left:14px; }

/* ---------- Footer ---------- */
.foot{ background:var(--warm); border-top:1px solid var(--line); padding:clamp(56px, 7vw, 96px) 0 calc(28px + env(safe-area-inset-bottom)); font-size:15px; }
.foot .grid{ row-gap:36px; }
.foot .f-brand{ grid-column:1/-1; }
.foot .f-brand p{ color:var(--muted); margin-top:14px; max-width:26em; }
.foot .f-col{ grid-column:span 2; }
.foot h4{ font:500 12px/1.4 var(--sans); letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin:0 0 12px; }
.foot ul{ list-style:none; margin:0; padding:0; }
.foot li a{ display:inline-block; padding:8px 0; text-decoration:none; }
.foot li a:hover{ color:var(--clay); }
.foot .copy{ grid-column:1/-1; border-top:1px solid var(--line); padding-top:20px; color:var(--muted); font-size:13px; display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }
@media (min-width:960px){ .foot .f-brand{ grid-column:1/6; } .foot .f-col{ grid-column:span 3; } .foot .f-col:nth-of-type(2){ grid-column:7/10; } }

/* ---------- Lightbox ---------- */
.lb{ position:fixed; inset:0; z-index:80; background:var(--paper); display:grid; grid-template-rows:auto 1fr auto; opacity:0; visibility:hidden; transition:opacity .35s var(--ease), visibility 0s .35s; touch-action:pan-y; }
.lb.open{ opacity:1; visibility:visible; transition:opacity .35s var(--ease); }
.lb-top{ display:flex; justify-content:space-between; align-items:center; height:72px; padding-inline:var(--gut); }
.lb-top .brand{ pointer-events:none; }
.lb-close{ background:none; border:0; width:48px; height:48px; margin-right:-12px; cursor:pointer; display:grid; place-items:center; }
.lb-close svg{ width:22px; height:22px; }
.lb[hidden]{ display:none; }
.lb-stage{ display:grid; place-items:center; min-height:0; padding:0 var(--gut); }
.lb-stage img{ max-width:100%; max-height:calc(100dvh - 72px - 84px); width:auto; height:auto; object-fit:contain; transition:opacity .3s var(--ease), transform .3s var(--ease); background:var(--warm); }
.lb-stage img.swap{ opacity:0; transform:scale(.99); }
.lb-nav{ position:absolute; top:50%; transform:translateY(-50%); background:none; border:0; width:64px; height:96px; display:grid; place-items:center; cursor:pointer; color:var(--ink); transition:color .25s; }
.lb-nav:hover{ color:var(--clay); }
.lb-nav svg{ width:40px; height:16px; }
.lb-prev{ left:max(8px, calc(var(--gut) - 24px)); }
.lb-next{ right:max(8px, calc(var(--gut) - 24px)); }
.lb-bot{ display:flex; justify-content:space-between; align-items:center; height:84px; padding-inline:var(--gut); font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.lb-bot b{ color:var(--ink); font-weight:500; }
.lb-bot .cnt{ font:500 15px var(--sans); letter-spacing:.1em; color:var(--ink); font-variant-numeric:tabular-nums; }
.lb-bot .cnt span{ color:var(--muted); }
@media (max-width:959px){
  .lb-nav{ top:auto; bottom:0; transform:none; height:84px; width:56px; }
  .lb-stage{ padding:0 12px; }
  .lb-bot{ flex-direction:column; justify-content:center; gap:2px; }
  .lb-prev{ left:4px; } .lb-next{ right:4px; }
}


@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ transition-duration:.01ms!important; animation-duration:.01ms!important; }
}
/* Version der Website im Fuß (_tools/version.py erhöht sie überall) */
.ver{ margin-left:.9em; padding-left:.9em; border-left:1px solid var(--line); letter-spacing:.06em; font-variant-numeric:tabular-nums; }
