/* =====================================================================
   Ethernalink – Stylesheet
   Fonts werden selbst gehostet (keine Anfrage an Google Fonts).
   ===================================================================== */

/* ===================== FONTS (self-hosted, variable) ===================== */
@font-face{
  font-family:'Big Shoulders Display';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('../fonts/big-shoulders-display-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Big Shoulders Display';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('../fonts/big-shoulders-display-latin-ext.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:'Work Sans';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('../fonts/work-sans-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Work Sans';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('../fonts/work-sans-latin-ext.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:'Permanent Marker';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/permanent-marker-400-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* Kyrillische Ersatzschriften (RU/UK): gleicher Familienname, nur für kyrillische Zeichen */
@font-face{
  font-family:'Big Shoulders Display';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('../fonts/oswald-700-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
  font-family:'Work Sans';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('../fonts/manrope-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
  font-family:'Permanent Marker';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/pangolin-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ===================== TOKENS ===================== */
:root{
  --ink:#0c0a08;
  --ink-soft:#17130f;
  --paper:#ece3d2;
  --paper-dim:#a89e8d;
  --blood:#8b101a;
  --blood-bright:#a2131e;
  --brass:#ad8a54;
  --border:rgba(236,227,210,0.12);

  --display:'Big Shoulders Display',sans-serif;
  --body:'Work Sans',sans-serif;
  --marker:'Permanent Marker',cursive;

  --container:1180px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{background:var(--ink);scroll-behavior:smooth;overflow-x:clip;}
body{
  background:var(--ink);
  color:var(--paper);
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
section{position:relative;padding:min(14vw,9rem) 6vw;}
h1,h2,h3{font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:0.92;letter-spacing:0.01em;text-shadow:5px 5px 0 rgba(143,37,29,0.25);}
.eyebrow{
  font-family:var(--body);font-weight:600;font-size:0.78rem;letter-spacing:0.22em;
  text-transform:uppercase;color:var(--brass);margin-bottom:1.1rem;display:inline-block;
}
:focus-visible{outline:2px solid var(--blood-bright);outline-offset:4px;}

/* Barrierefreiheit */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link{position:fixed;left:1rem;top:-6rem;z-index:10001;background:var(--blood);color:var(--paper);padding:0.65rem 1.1rem;border-radius:999px;font-weight:600;font-size:0.9rem;transition:top .2s ease;}
.skip-link:focus{top:1rem;}

/* ===================== GRAIN & MOVING BACKGROUND ===================== */
.grain{
  position:fixed;inset:0;pointer-events:none;z-index:40;opacity:0.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:240px 240px;animation:grainDrift 14s steps(6) infinite;
}
@keyframes grainDrift{
  0%{background-position:0 0;}
  20%{background-position:-6% 4%;}
  40%{background-position:3% -5%;}
  60%{background-position:-4% -3%;}
  80%{background-position:5% 4%;}
  100%{background-position:0 0;}
}
.vignette{position:fixed;inset:0;pointer-events:none;z-index:39;background:radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,0.5) 100%);}

.parallax-bg{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;}
.blot{position:absolute;border-radius:50%;filter:blur(70px);will-change:transform;}
.blot--1{width:42vw;height:42vw;top:-10vh;left:-10vw;background:radial-gradient(circle,var(--blood) 0%,transparent 72%);opacity:0.32;}
.blot--2{width:48vw;height:48vw;top:60vh;right:-16vw;background:radial-gradient(circle,var(--brass) 0%,transparent 72%);opacity:0.22;}
.blot--3{width:36vw;height:36vw;top:140vh;left:12vw;background:radial-gradient(circle,var(--blood) 0%,transparent 72%);opacity:0.2;}
.blot--4{width:40vw;height:40vw;top:220vh;right:6vw;background:radial-gradient(circle,var(--brass) 0%,transparent 72%);opacity:0.18;}

/* ===================== CURSOR ===================== */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;border-radius:50%;transform:translate(-50%,-50%);will-change:transform;}
.cursor-dot{width:7px;height:7px;background:var(--paper);display:none;}
.cursor-ring{
  width:42px;height:42px;border:1px solid var(--paper);display:none;align-items:center;justify-content:center;
  transition:width .3s ease,height .3s ease,border-color .3s ease,background .3s ease;
}
.cursor-ring__text{font-size:0.62rem;letter-spacing:0.08em;text-transform:uppercase;font-weight:600;opacity:0;transition:opacity .2s ease;white-space:nowrap;}
body.has-fine-pointer{cursor:none;}
body.has-fine-pointer .cursor-dot,body.has-fine-pointer .cursor-ring{display:flex;}
.cursor-ring.is-active{width:78px;height:78px;background:var(--blood);border-color:var(--blood);}
.cursor-ring.is-active .cursor-ring__text{opacity:1;color:var(--paper);}

/* ===================== PRELOADER ===================== */
.preloader{
  position:fixed;inset:0;z-index:10000;background:var(--ink);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;
}
.preloader__word{font-family:var(--display);font-weight:900;font-size:clamp(1.6rem,6vw,3rem);letter-spacing:0.05em;text-transform:uppercase;}
.preloader__count{font-family:var(--body);font-size:0.85rem;color:var(--paper-dim);letter-spacing:0.1em;}
.preloader__bar{width:min(60vw,280px);height:2px;background:var(--border);overflow:hidden;}
.preloader__bar-fill{width:0%;height:100%;background:var(--blood-bright);}

/* ===================== NAV ===================== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:900;display:flex;align-items:center;justify-content:space-between;
  padding:1.6rem 6vw;transition:background .35s ease,padding .35s ease,backdrop-filter .35s ease;
}
.nav--scrolled{background:rgba(12,10,8,0.82);backdrop-filter:blur(10px);padding:1rem 6vw;border-bottom:1px solid var(--border);}
.nav__logo{font-family:var(--display);font-weight:900;font-size:1.3rem;letter-spacing:0.04em;text-transform:uppercase;}
.nav__links{display:flex;align-items:center;gap:2.2rem;}
.nav__links a{font-size:0.85rem;font-weight:600;letter-spacing:0.03em;position:relative;padding-bottom:2px;}
.nav__links a:not(.nav__cta)::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--paper);transition:width .3s ease;}
.nav__links a:not(.nav__cta):hover::after,.nav__links a[aria-current="page"]::after{width:100%;}
.nav__cta{border:1px solid var(--paper);padding:0.55rem 1.2rem;border-radius:2px;transition:background .25s ease,color .25s ease;}
.nav__cta:hover{background:var(--paper);color:var(--ink);}
.nav__burger{display:none;width:34px;height:24px;position:relative;background:none;border:none;cursor:pointer;z-index:901;}
.nav__burger span,.nav__burger::before,.nav__burger::after{content:'';position:absolute;left:0;width:100%;height:2px;background:var(--paper);transition:transform .3s ease,opacity .3s ease;}
.nav__burger::before{top:2px;}
.nav__burger span{top:11px;}
.nav__burger::after{top:20px;}
.nav__burger.is-open::before{transform:translateY(9px) rotate(45deg);}
.nav__burger.is-open::after{transform:translateY(-9px) rotate(-45deg);}
.nav__burger.is-open span{opacity:0;}

.mobile-menu{
  position:fixed;inset:0;background:var(--ink);z-index:850;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:2rem;transform:translateY(-100%);transition:transform .5s cubic-bezier(.77,0,.18,1);
}
.mobile-menu.is-open{transform:translateY(0);}
.mobile-menu a{font-family:var(--display);font-weight:800;font-size:2rem;text-transform:uppercase;padding:0.2rem 0.6rem;min-height:44px;display:inline-flex;align-items:center;}
.mobile-menu{overflow-y:auto;padding:5rem 1rem 2rem;}
@media (max-height:720px){.mobile-menu{gap:1.1rem;justify-content:flex-start;}.mobile-menu a{font-size:1.7rem;}}
/* Ein Menuepunkt mehr (Shop): bei mittleren Breiten Abstaende reduzieren, damit nichts umbricht */
@media (max-width:1180px){.nav__links{gap:1.5rem;}.nav__links a{font-size:0.8rem;}.nav__cta{padding:0.5rem 1rem;}}
@media (max-width:1040px){.nav__links{gap:1.1rem;}.nav{padding-left:4vw;padding-right:4vw;}.nav--scrolled{padding-left:4vw;padding-right:4vw;}}

/* ===================== HERO ===================== */
.hero{
  position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  padding:8rem 6vw 6rem;gap:1.6rem;
}
.hero__eyebrow{font-family:var(--marker);color:var(--brass);font-size:1rem;transform:rotate(-2deg);display:inline-block;}
.hero__title{font-size:clamp(3.4rem,14vw,10.5rem);}
/* Eyebrow als Teil der H1 (Keyword + Wortmarke), optisch unveraendert */
.hero__title .hero__eyebrow{
  display:block;width:max-content;max-width:100%;font-size:1rem;font-weight:400;text-transform:none;
  letter-spacing:normal;line-height:1.4;text-shadow:none;margin-bottom:1.6rem;
}
.hero__line{overflow:hidden;display:block;}
.hero__line--accent{color:var(--blood-bright);}
.char{display:inline-block;will-change:transform;}
.hero__sub{max-width:34rem;font-size:clamp(1rem,1.6vw,1.2rem);color:var(--paper-dim);}
.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.6rem;margin-top:0.6rem;}
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;font-weight:600;font-size:0.95rem;
  padding:0.95rem 1.9rem;border-radius:2px;letter-spacing:0.04em;min-height:44px;
  transition:background .25s ease,border-color .25s ease,color .25s ease,transform .3s cubic-bezier(.16,.84,.24,1),box-shadow .3s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn--primary:hover{box-shadow:0 10px 24px -12px rgba(162,19,30,0.9);}
/* Sekundärbutton wie im Shop: transparent, heller Rahmen */
.btn--outline{border:1px solid var(--paper);color:var(--paper);background:transparent;}
.btn--outline:hover{background:rgba(236,227,210,0.08);border-color:#fff;}
/* Textlink-Variante (dritte Aktion im Hero) */
.btn--text{padding:0.6rem 0;border-bottom:1px solid var(--brass);border-radius:0;font-weight:500;}
.btn--text:hover{transform:none;color:#fff;border-color:var(--paper);}
button.btn{cursor:pointer;font-family:var(--body);color:var(--paper);background:transparent;border:0;line-height:1.6;}
button.btn--primary{background:var(--blood);}
button.btn--primary:hover{background:var(--blood-bright);}
.btn--primary{background:var(--blood);color:var(--paper);}
.btn--primary:hover{background:var(--blood-bright);}
.btn--ghost{border:1px solid var(--border);}
button.btn--ghost{border:1px solid var(--border);}
.btn--ghost:hover{border-color:var(--paper);}
.btn__scribble{position:absolute;inset:-16px -26px;width:calc(100% + 52px);height:calc(100% + 32px);pointer-events:none;overflow:visible;}
.btn__scribble path{fill:none;stroke:var(--blood-bright);stroke-width:2.5;stroke-linecap:round;}

.hero__badge{position:absolute;right:6vw;top:7rem;width:130px;height:130px;}
.hero__badge-ring{width:100%;height:100%;animation:spin 22s linear infinite;}
.hero__badge-ring path{fill:none;stroke:var(--brass);stroke-width:1;opacity:0.55;}
.hero__badge-ring text{font-family:var(--marker);font-size:11px;fill:var(--brass);letter-spacing:2px;}
.hero__badge-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.4rem;color:var(--blood-bright);}
@keyframes spin{to{transform:rotate(360deg);}}

.hero__scroll{position:absolute;bottom:2.4rem;left:6vw;font-size:0.75rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--paper-dim);display:flex;align-items:center;gap:0.6rem;}
.hero__scroll span{width:1px;height:34px;background:var(--paper-dim);position:relative;overflow:hidden;}
.hero__scroll span::after{content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--paper);animation:scrollLine 1.8s ease-in-out infinite;}
@keyframes scrollLine{50%{top:100%;}100%{top:100%;}}

/* Kompakter Hero fuer Unterseiten */
.hero--page{min-height:auto;padding:9rem 6vw 4rem;}
.hero--page .hero__title{font-size:clamp(3rem,10vw,7.5rem);}
.breadcrumb{list-style:none;display:flex;flex-wrap:wrap;gap:0.5rem;font-size:0.8rem;color:var(--paper-dim);margin-bottom:0.4rem;}
.breadcrumb li+li::before{content:'/';margin-right:0.5rem;opacity:0.5;}
.breadcrumb a:hover{color:var(--paper);}

/* ===================== MARQUEE ===================== */
.marquee{overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--ink-soft);}
.marquee__track{display:flex;width:max-content;animation:marquee 28s linear infinite;padding:1.1rem 0;}
.marquee__track span{font-family:var(--display);font-weight:900;font-size:clamp(1.4rem,4vw,2.6rem);text-transform:uppercase;white-space:nowrap;padding-right:2rem;color:var(--paper-dim);}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ===================== ÜBER MICH / STUDIO ===================== */
.studio{display:grid;grid-template-columns:0.85fr 1.15fr;gap:5vw;align-items:center;max-width:var(--container);margin:0 auto;}
.studio__media{border-radius:6px;overflow:hidden;aspect-ratio:4/5;}
.studio__media picture{display:block;height:100%;}
.studio__media img{width:100%;height:100%;object-fit:cover;}
.studio h2{font-size:clamp(2.2rem,5vw,3.6rem);margin-bottom:1.4rem;}
.studio__text{color:var(--paper-dim);margin-bottom:1rem;max-width:32rem;}
.studio__text a,.gallery__sub a,.termine__sub a,.kontakt__intro a:not(.chip){color:var(--paper);border-bottom:1px solid var(--brass);}
.studio__count{display:flex;align-items:baseline;gap:0.7rem;margin-top:1.6rem;}
.studio__count .num{font-family:var(--display);font-weight:900;font-size:3rem;color:var(--blood-bright);}
.studio__count .label{font-size:0.85rem;color:var(--paper-dim);text-transform:uppercase;letter-spacing:0.08em;}
.facts{display:flex;flex-wrap:wrap;gap:0.9rem 2rem;margin-top:1.8rem;padding-top:1.4rem;border-top:1px solid var(--border);}
.facts div{display:flex;flex-direction:column;gap:0.1rem;}
.facts dt{font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--brass);font-weight:600;}
.facts dd{font-size:0.92rem;}

/* ===================== STILE ===================== */
.stile{max-width:var(--container);margin:0 auto;}
.stile h2{font-size:clamp(2.2rem,5vw,3.6rem);max-width:30rem;margin-bottom:3rem;}
.stile__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.4rem;}
.stile-card{
  background:var(--ink-soft);border:1px solid var(--border);border-radius:4px;padding:2.2rem 1.6rem;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);transform-style:preserve-3d;will-change:transform;
}
.stile-card__mark{font-family:var(--display);font-weight:800;font-size:1.5rem;text-transform:uppercase;display:block;margin-bottom:1rem;text-shadow:none;line-height:1.1;letter-spacing:0.01em;}
.stile-card p{color:var(--paper-dim);font-size:0.92rem;}
.stile-card__link{display:inline-block;margin-top:1rem;font-size:0.82rem;font-weight:600;color:var(--brass);border-bottom:1px solid transparent;transition:border-color .2s ease;}
.stile-card__link:hover{border-color:var(--brass);}
.stile__more{margin-top:2.4rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;}

/* ===================== ONE OF A KIND ===================== */
.unique{
  max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:0.95fr 1.05fr;gap:3rem 5vw;align-items:start;
  position:relative;
}
.unique::before{
  content:'1/1';position:absolute;right:-2vw;top:50%;transform:translateY(-50%) rotate(-8deg);pointer-events:none;
  font-family:var(--display);font-weight:900;font-size:clamp(10rem,30vw,26rem);line-height:0.8;color:transparent;
  -webkit-text-stroke:1px rgba(236,227,210,0.06);z-index:-1;
}
.unique__title{font-size:clamp(3.2rem,9vw,7rem);margin-bottom:1.4rem;}
.unique__accent{color:var(--blood-bright);}
.unique__lead{font-family:var(--marker);color:var(--brass);font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.35;transform:rotate(-1.5deg);max-width:24rem;}
.unique__edition{
  display:inline-flex;align-items:center;gap:0.8rem;margin-top:2.2rem;padding:0.7rem 1.1rem;
  border:1.5px solid var(--blood-bright);border-radius:3px;transform:rotate(-4deg);
  box-shadow:inset 0 0 0 3px var(--ink),inset 0 0 0 4px rgba(178,50,39,0.5);
}
.unique__edition-num{font-family:var(--display);font-weight:900;font-size:2rem;line-height:1;color:var(--blood-bright);}
.unique__edition-label{font-size:0.72rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--paper);font-weight:600;}
.unique__body{padding-top:0.4rem;}
.unique__body p{color:var(--paper-dim);margin-bottom:1.1rem;max-width:36rem;font-size:1.02rem;}
.unique__body .unique__first{color:var(--paper);font-size:1.2rem;font-weight:600;}
.unique__closing{
  font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(1.6rem,3.2vw,2.3rem) !important;
  line-height:1.05;color:var(--paper) !important;margin-top:1.8rem;padding-top:1.4rem;border-top:1px solid var(--border);
  text-shadow:4px 4px 0 rgba(143,37,29,0.25);
}
.unique__cards{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.4rem;}
.unique-card{
  position:relative;background:var(--ink-soft);border:1px solid var(--border);border-left:3px solid var(--blood);
  border-radius:4px;padding:1.8rem 1.8rem 1.8rem 2rem;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);
}
.unique-card__mark{position:absolute;top:1.2rem;right:1.4rem;font-family:var(--display);font-weight:900;font-size:1.4rem;color:var(--brass);opacity:0.7;}
.unique-card__title{font-family:var(--display);font-weight:800;font-size:1.4rem;text-transform:uppercase;text-shadow:none;line-height:1.1;margin-bottom:0.7rem;padding-right:3rem;}
.unique-card p{color:var(--paper-dim);font-size:0.95rem;}
/* Hinweis "nur einmal gestochen" im Formular und auf der Stil-Seite */
.booking__unique{
  margin-top:0.7rem;font-size:0.82rem;line-height:1.5;color:var(--paper-dim);
  padding:0.6rem 0.8rem;border-left:2px solid var(--blood-bright);background:rgba(143,37,29,0.08);border-radius:0 3px 3px 0;
}
.booking__unique span{font-family:var(--display);font-weight:900;color:var(--blood-bright);margin-right:0.3rem;}
.style-section__unique{max-width:34rem;margin:0.4rem 0 1rem;font-size:0.88rem;}
@media (max-width:900px){
  .unique{grid-template-columns:1fr;gap:2rem;}
  .unique::before{top:18%;right:-8vw;}
}

/* ===================== GALLERY ===================== */
.gallery{max-width:var(--container);margin:0 auto;}
.gallery h2{font-size:clamp(2.2rem,5vw,3.6rem);}
.gallery__sub{color:var(--paper-dim);margin:1rem 0 3rem;}
.flash-wall{column-count:4;column-gap:1.4rem;}
.flash-tile{
  break-inside:avoid;margin-bottom:1.4rem;display:block;width:100%;position:relative;
  background:var(--ink-soft);border-radius:3px;padding:0.5rem;box-shadow:0 14px 30px -14px rgba(0,0,0,0.6);will-change:transform;
}
.flash-tile img{border-radius:2px;width:100%;height:auto;}
.flash-tile__btn{display:block;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:inherit;cursor:zoom-in;}
.flash-tile__btn::after{content:"";position:absolute;inset:0;}/* ganze Polaroid-Kachel klickbar */
.flash-tile__btn:focus-visible{outline:2px solid var(--blood-bright);outline-offset:3px;}
.flash-tile__pin{position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(-4deg);width:34px;height:16px;background:var(--brass);opacity:0.85;border-radius:1px;z-index:1;}
@media (max-width:900px){.flash-wall{column-count:3;}}
@media (max-width:620px){.flash-wall{column-count:2;column-gap:0.8rem;}.flash-tile{margin-bottom:0.8rem;padding:0.35rem;}}

/* ===================== KUNDENBEWERTUNGEN ===================== */
.reviews{max-width:var(--container);margin:0 auto;}
.reviews__head{max-width:46rem;margin-bottom:3rem;}
.reviews__title{font-size:clamp(3rem,8vw,6.2rem);margin-bottom:1.3rem;}
.reviews__accent{color:var(--blood-bright);}
.reviews__sub{font-family:var(--marker);color:var(--brass);font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.35;transform:rotate(-1deg);margin-bottom:1.3rem;}
.reviews__intro{color:var(--paper);font-size:1.08rem;margin-bottom:1rem;}
.reviews__note{color:var(--paper-dim);font-size:0.85rem;padding-left:0.9rem;border-left:2px solid var(--brass);}
.reviews__hint{display:none;color:var(--paper);}
body.has-fine-pointer .reviews__hint--click{display:inline;}
.reviews__wall{column-count:3;column-gap:1.4rem;}
.review-card{break-inside:avoid;margin-bottom:1.4rem;}
.review-card figure{
  background:var(--ink-soft);border:1px solid var(--border);border-radius:10px;padding:0.55rem;
  box-shadow:0 14px 30px -16px rgba(0,0,0,0.7);transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;
}
.review-card__shot{display:block;width:100%;padding:0;border:0;background:#000;border-radius:7px;overflow:hidden;cursor:zoom-in;}
.review-card__shot img{width:100%;height:auto;border-radius:7px;transition:transform .5s ease,filter .3s ease;}
.review-card__caption{padding:0.95rem 0.5rem 0.4rem;}
.review-card blockquote p{font-size:0.95rem;line-height:1.5;color:var(--paper);}
.review-card__label{display:block;font-size:0.66rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--brass);font-weight:600;margin-bottom:0.2rem;}
.review-card__tr{margin-top:0.7rem;padding-top:0.7rem;border-top:1px dashed var(--border);font-size:0.88rem;line-height:1.5;color:var(--paper-dim);}
.review-card__date{margin-top:0.7rem;font-size:0.74rem;color:var(--paper-dim);letter-spacing:0.02em;}
@media (hover:hover) and (pointer:fine){
  .review-card figure:hover{transform:translateY(-5px);border-color:rgba(173,138,84,0.55);box-shadow:0 22px 40px -18px rgba(0,0,0,0.85);}
  .review-card figure:hover .review-card__shot img{transform:scale(1.02);filter:brightness(1.06);}
}
.review-card__shot:focus-visible{outline:2px solid var(--blood-bright);outline-offset:3px;}
.reviews__cta{
  margin-top:2.6rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem 2rem;
  padding:1.6rem 1.8rem;border:1px solid var(--border);border-left:3px solid var(--blood);border-radius:4px;background:var(--ink-soft);
}
.reviews__cta p{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(1.3rem,2.6vw,1.8rem);line-height:1.1;max-width:30rem;}
.btn--caps{text-transform:uppercase;letter-spacing:0.08em;}
@media (max-width:1000px){.reviews__wall{column-count:2;}}
/* Smartphone: horizontal wischbares Karussell */
@media (max-width:620px){
  body .reviews__hint--click{display:none;}
  .reviews__hint--swipe{display:inline;}
  .reviews__head{margin-bottom:2rem;}
  .reviews__wall{
    column-count:auto;display:flex;align-items:stretch;gap:0.9rem;overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;margin:0 -6vw;padding:0.3rem 6vw 1rem;scroll-padding:0 6vw;scrollbar-width:thin;
    scrollbar-color:var(--brass) transparent;-webkit-overflow-scrolling:touch;
  }
  .review-card{flex:0 0 84%;margin-bottom:0;scroll-snap-align:start;display:flex;}
  .review-card figure{flex:1;}
  .reviews__cta{padding:1.3rem;}
  .reviews__cta .btn{width:100%;justify-content:center;}
}

/* Großansicht */
.lightbox{
  width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;
  background:#080605;color:var(--paper);overscroll-behavior:contain;overflow:hidden;touch-action:pan-y pinch-zoom;
}
.lightbox::backdrop{background:rgba(0,0,0,0.7);}
.lightbox,.lightbox *{cursor:auto;}
.lightbox button{cursor:pointer;}
.lightbox__frame{height:100%;display:flex;flex-direction:column;align-items:center;padding:3.8rem 1rem 1rem;gap:0.8rem;}
.lightbox__figure{flex:1;min-height:0;width:100%;max-width:760px;display:flex;flex-direction:column;gap:0.8rem;}
.lightbox__media{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;touch-action:pan-y pinch-zoom;}
.lightbox__media img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:8px;background:#000;user-select:none;-webkit-user-drag:none;}
.lightbox__caption{flex:0 0 auto;max-height:32vh;overflow:auto;text-align:left;padding:0 0.2rem;}
.lightbox__caption blockquote p{font-size:1rem;line-height:1.5;}
.lightbox__caption .review-card__tr{margin-top:0.5rem;padding-top:0.5rem;}
.lightbox__caption .review-card__date{margin-top:0.5rem;}
.lightbox__text{text-align:center;color:var(--paper-dim);font-size:0.95rem;line-height:1.5;}
.lightbox--single .lightbox__nav{display:none;}
.lightbox__nav{display:flex;align-items:center;gap:1.2rem;}
.lightbox__count{min-width:4.5rem;text-align:center;font-family:var(--display);font-weight:800;font-size:1.2rem;letter-spacing:0.06em;color:var(--brass);}
.lightbox__btn{
  width:52px;height:52px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;
  border:1px solid var(--border);background:var(--ink-soft);color:var(--paper);transition:border-color .2s ease,background .2s ease;
}
.lightbox__btn:hover{border-color:var(--paper);background:var(--blood);}
.lightbox__btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.lightbox__close{position:absolute;top:0.8rem;right:0.8rem;z-index:1;}
html.lb-open,html.lb-open body{overflow:hidden;}

/* ===================== TERMINE & PREISE ===================== */
.termine{max-width:var(--container);margin:0 auto;}
.termine h2{font-size:clamp(2.2rem,5vw,3.6rem);margin-bottom:1rem;}
.termine__sub{color:var(--paper-dim);max-width:38rem;margin-bottom:1.8rem;}
.termine__cta{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:3rem;}
.preise{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4rem;margin-bottom:3.5rem;}
.preis-card{background:var(--ink-soft);border:1px solid var(--border);padding:2rem;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);}
.preis-card__title{font-family:var(--display);font-weight:800;font-size:1.4rem;text-transform:uppercase;display:block;text-shadow:none;line-height:1.1;letter-spacing:0.01em;}
.preis-card__price{font-family:var(--display);font-weight:900;font-size:2.6rem;color:var(--blood-bright);display:block;margin:0.4rem 0;text-shadow:none;}
.preis-card__price small{font-family:var(--body);font-weight:500;font-size:0.9rem;color:var(--paper-dim);text-transform:none;}
.preis-card p{color:var(--paper-dim);font-size:0.9rem;}

.steps{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem;margin-bottom:3.5rem;counter-reset:step;}
.steps li{position:relative;padding:1.6rem 1.4rem 1.4rem;border:1px solid var(--border);border-radius:4px;background:var(--ink-soft);box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);}
.steps li::before{counter-increment:step;content:counter(step,decimal-leading-zero);font-family:var(--display);font-weight:900;font-size:2rem;color:var(--blood-bright);display:block;margin-bottom:0.4rem;line-height:1;}
.steps h4{font-family:var(--body);font-weight:600;font-size:1rem;text-transform:none;text-shadow:none;line-height:1.4;letter-spacing:0;margin-bottom:0.4rem;}
.steps p{color:var(--paper-dim);font-size:0.9rem;}
.steps a{color:var(--paper);border-bottom:1px solid var(--brass);}

.booker{background:var(--ink-soft);border:1px solid var(--border);border-radius:4px;padding:2rem;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);}
.booker__title{scroll-margin-top:7rem;font-family:var(--display);font-weight:800;font-size:1.4rem;text-transform:uppercase;text-shadow:none;line-height:1.1;letter-spacing:0.01em;margin-bottom:1.2rem;}
.booker__types{display:flex;gap:0.8rem;margin-bottom:1.8rem;flex-wrap:wrap;}
.booker__type{border:1px solid var(--border);padding:0.6rem 1.1rem;border-radius:999px;font-size:0.85rem;cursor:pointer;background:transparent;color:var(--paper);font-family:var(--body);}
.booker__type.is-active{background:var(--blood);border-color:var(--blood);}
.booker__scroll{overflow-x:auto;padding-bottom:0.4rem;}
.booker__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0.6rem;min-width:480px;}
.booker__day-label{font-size:0.78rem;text-align:center;color:var(--brass);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.6rem;}
.booker__slot{border:1px solid var(--border);background:transparent;color:var(--paper-dim);padding:0.6rem 0.3rem;font-size:0.78rem;border-radius:3px;cursor:pointer;font-family:var(--body);margin-bottom:0.5rem;width:100%;}
.booker__slot:hover{border-color:var(--paper);color:var(--paper);}
.booker__slot.is-selected{background:var(--blood);border-color:var(--blood);color:var(--paper);}
.booker__summary{margin-top:1.4rem;font-size:0.9rem;color:var(--paper-dim);min-height:1.3rem;}
.booker__summary strong{color:var(--paper);}
.booker__actions{display:flex;flex-wrap:wrap;gap:0.9rem;align-items:center;margin-top:0.6rem;}
.booker__note{font-size:0.78rem;color:var(--paper-dim);margin-top:1rem;max-width:34rem;}

/* ===================== FAQ ===================== */
.faq{max-width:var(--container);margin:0 auto;}
.faq h2{font-size:clamp(2.2rem,5vw,3.6rem);margin-bottom:2.4rem;}
.faq__list{max-width:48rem;}
.faq details{border-top:1px solid var(--border);}
.faq details:last-child{border-bottom:1px solid var(--border);}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.2rem 0;font-weight:600;font-size:1.05rem;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:'+';font-family:var(--display);font-weight:800;font-size:1.7rem;line-height:1;color:var(--brass);transition:transform .3s ease;flex-shrink:0;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq summary h4{font-family:var(--body);font-weight:600;font-size:1.05rem;text-transform:none;text-shadow:none;line-height:1.4;letter-spacing:0;}
.faq details p{color:var(--paper-dim);padding:0 0 1.4rem;max-width:40rem;}
.faq details a{color:var(--paper);border-bottom:1px solid var(--brass);}

/* ===================== KONTAKT ===================== */
.kontakt{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:5vw;}
.kontakt h2{font-size:clamp(2.2rem,5vw,3.6rem);margin-bottom:1rem;}
.kontakt__intro p{color:var(--paper-dim);max-width:26rem;}
.kontakt__chips{display:flex;flex-wrap:wrap;gap:0.9rem;margin-top:2rem;}
.chip{border:1px solid var(--border);padding:0.65rem 1.1rem;border-radius:999px;font-size:0.85rem;}
.chip:hover{border-color:var(--paper);}
.chip--primary{background:var(--blood);border-color:var(--blood);color:var(--paper);}
.chip--primary:hover{background:var(--blood-bright);border-color:var(--blood-bright);}
.kontakt__location{margin-top:2rem;font-size:0.85rem;color:var(--paper-dim);}
.kontakt__location strong{color:var(--paper);font-weight:600;}
.kontakt__form{display:flex;flex-direction:column;gap:1.6rem;}
.field{position:relative;}
.field input,.field textarea{
  width:100%;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--paper);
  font-family:var(--body);font-size:1rem;padding:0.7rem 0;resize:vertical;
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--blood-bright);}
.field label{position:absolute;left:0;top:0.7rem;color:var(--paper-dim);pointer-events:none;transform-origin:left top;transition:transform .22s ease,color .22s ease;}
.field input:focus + label,.field input:not(:placeholder-shown) + label,
.field textarea:focus + label,.field textarea:not(:placeholder-shown) + label{
  transform:translateY(-1.3rem) scale(0.78);color:var(--brass);
}
.kontakt__submit{align-self:flex-start;}
.kontakt__hint{font-size:0.78rem;color:var(--paper-dim);}

/* ===================== STIL-SEITE ===================== */
.stile-intro{max-width:var(--container);margin:0 auto;padding-top:0;}
.stile-intro p{color:var(--paper-dim);max-width:40rem;margin-bottom:1rem;}
.stile-guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:2rem;}
.stile-guide a{display:block;padding:1.2rem 1.3rem;border:1px solid var(--border);border-radius:4px;background:var(--ink-soft);font-size:0.9rem;color:var(--paper-dim);transition:border-color .2s ease;}
.stile-guide a:hover{border-color:var(--paper);}
.stile-guide strong{display:block;font-family:var(--display);font-weight:800;font-size:1.25rem;text-transform:uppercase;color:var(--paper);margin-bottom:0.3rem;}
.style-section{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:1.1fr 0.9fr;gap:5vw;align-items:start;padding-top:min(9vw,5.5rem);padding-bottom:min(9vw,5.5rem);}
.style-section--flip{grid-template-columns:0.9fr 1.1fr;}
.style-section--flip .style-section__text{order:2;}
.style-section h2{font-size:clamp(2rem,4.6vw,3.2rem);margin-bottom:1.2rem;}
.style-section p{color:var(--paper-dim);margin-bottom:1rem;max-width:34rem;}
.style-section ul{margin:0.6rem 0 1.4rem;padding-left:1.1rem;list-style:disc;color:var(--paper-dim);max-width:34rem;}
.style-section li{margin-bottom:0.35rem;}
.style-section li strong{color:var(--paper);font-weight:600;}
.style-section__actions{display:flex;flex-wrap:wrap;gap:0.9rem;margin-top:1.4rem;}
.style-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;align-items:start;padding-top:0.6rem;}
.style-gallery--single{grid-template-columns:minmax(0,22rem);}
.style-gallery .flash-tile{margin-bottom:0;}
.style-gallery .flash-tile:nth-child(odd){transform:rotate(-2deg);}
.style-gallery .flash-tile:nth-child(even){transform:rotate(2deg);margin-top:2.2rem;}
.style-gallery figcaption{font-size:0.75rem;color:var(--paper-dim);padding:0.6rem 0.2rem 0.2rem;}
.cta-band{max-width:var(--container);margin:0 auto;text-align:center;}
.cta-band h2{font-size:clamp(2.2rem,5vw,3.6rem);margin-bottom:1rem;}
.cta-band p{color:var(--paper-dim);max-width:34rem;margin:0 auto 2rem;}
.cta-band .hero__actions{justify-content:center;}

/* ===================== 404 ===================== */
.notfound{max-width:var(--container);margin:0 auto;min-height:70vh;display:flex;flex-direction:column;justify-content:center;padding-top:9rem;}
.notfound h1{font-size:clamp(3rem,12vw,8rem);margin-bottom:1.2rem;}
.notfound p{color:var(--paper-dim);max-width:34rem;margin-bottom:1.6rem;}

/* ===================== FOOTER ===================== */
.footer{padding:4rem 6vw 2.4rem;text-align:center;}
.footer__word{font-family:var(--display);font-weight:900;font-size:clamp(2.8rem,12vw,7rem);text-transform:uppercase;line-height:0.9;opacity:0.9;}
.footer__row{display:flex;justify-content:center;gap:1.6rem;margin-top:1.6rem;font-size:0.8rem;color:var(--paper-dim);flex-wrap:wrap;}
.footer__row a:hover{color:var(--paper);}
.footer__meta{margin-top:0.8rem;font-size:0.78rem;color:var(--paper-dim);}

/* ===================== RESPONSIVE ===================== */
@media (max-width:900px){
  .nav__links{display:none;}
  .nav__burger{display:block;}
  .studio,.kontakt{grid-template-columns:1fr;}
  .studio__media{max-width:20rem;}
  .stile__grid{grid-template-columns:repeat(2,1fr);}
  .hero__badge{display:none;}
  .style-section,.style-section--flip{grid-template-columns:1fr;}
  .style-section--flip .style-section__text{order:0;}
}
@media (max-width:480px){
  .stile__grid{grid-template-columns:1fr;}
  section{padding:4.5rem 6vw;}
  .style-gallery{gap:0.8rem;}
}

/* ===================== SPRACHAUSWAHL ===================== */
.nav__right{display:flex;align-items:center;gap:1.4rem;}
.lang{position:relative;z-index:902;}
.lang__btn{
  display:inline-flex;align-items:center;gap:0.45rem;background:transparent;color:var(--paper);
  border:1px solid var(--border);border-radius:999px;padding:0.45rem 0.8rem;font-family:var(--body);
  font-size:0.8rem;font-weight:600;letter-spacing:0.06em;cursor:pointer;transition:border-color .2s ease;
}
.lang__btn:hover,.lang__btn[aria-expanded="true"]{border-color:var(--paper);}
.lang__btn svg{width:16px;height:16px;flex-shrink:0;}
.lang__caret{transition:transform .2s ease;}
.lang__btn[aria-expanded="true"] .lang__caret{transform:rotate(180deg);}
.lang__menu{
  position:absolute;right:0;top:calc(100% + 0.5rem);min-width:12rem;list-style:none;
  background:var(--ink-soft);border:1px solid var(--border);border-radius:6px;padding:0.4rem;
  box-shadow:0 18px 40px -12px rgba(0,0,0,0.8);opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s;
}
.lang.is-open .lang__menu{opacity:1;visibility:visible;transform:translateY(0);}
.lang__menu a{
  display:flex;align-items:center;gap:1rem;padding:0.6rem 0.8rem;
  border-radius:4px;font-size:0.9rem;color:var(--paper-dim);
}
.lang__menu a:hover,.lang__menu a:focus-visible{background:rgba(236,227,210,0.06);color:var(--paper);}
.lang__menu a[aria-current="true"]{color:var(--paper);}
.lang__code{font-size:0.7rem;letter-spacing:0.14em;color:var(--brass);margin-left:auto;}
.lang__menu a[aria-current="true"] .lang__code{color:var(--blood-bright);}
@media (max-width:900px){
  .nav__right{gap:1rem;}
  .lang__btn{padding:0.4rem 0.65rem;}
}

/* ===================== INFO-KARTEN (Preis, Anzahlung) ===================== */
.info-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.4rem;margin-bottom:3.5rem;}
.info-card{background:var(--ink-soft);border:1px solid var(--border);padding:2rem;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);}
.info-card--accent{border-color:rgba(178,50,39,0.55);}
.info-card__big{font-family:var(--display);font-weight:900;font-size:2.6rem;color:var(--blood-bright);display:block;margin:0.4rem 0 0.6rem;line-height:1;}
.info-card .preis-card__title{margin-bottom:0.7rem;}
.info-card p{color:var(--paper-dim);font-size:0.92rem;}
.info-card p+p{margin-top:0.7rem;}
.info-card strong{color:var(--paper);font-weight:600;}

/* ===================== TERMINANFRAGE ===================== */
.booking{background:var(--ink-soft);border:1px solid var(--border);border-radius:4px;padding:clamp(1.3rem,3vw,2.4rem);box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);}
.booking__intro{color:var(--paper-dim);font-size:0.92rem;max-width:40rem;margin-bottom:2rem;}
.booking__grid{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem 3rem;}
.booking__col{display:flex;flex-direction:column;gap:1.6rem;min-width:0;}
.booking fieldset{border:0;min-width:0;}
.booking legend,.booking__label{
  font-size:0.72rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--brass);font-weight:600;
  margin-bottom:0.8rem;display:block;padding:0;
}
.field select{
  width:100%;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--paper);
  font-family:var(--body);font-size:1rem;padding:0.7rem 0;appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--brass) 50%),linear-gradient(135deg,var(--brass) 50%,transparent 50%);
  background-position:calc(100% - 12px) 55%,calc(100% - 7px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
.field select:focus{outline:none;border-color:var(--blood-bright);}
.field select option{background:var(--ink-soft);color:var(--paper);}
.field--static label{position:static;display:block;font-size:0.78rem;color:var(--brass);margin-bottom:0.1rem;transform:none;}
.field__opt{color:var(--paper-dim);font-size:0.85em;}
.field.is-invalid input,.field.is-invalid textarea{border-color:var(--blood-bright);}
.field.is-invalid label{color:var(--blood-bright);}
/* Fehlermeldung direkt unter dem Feld */
.field__error{display:none;color:var(--blood-bright);font-size:0.78rem;margin-top:0.4rem;line-height:1.4;}
.field__error:not(:empty){display:block;}
.field__req{color:var(--blood-bright);margin-left:0.15rem;}
/* Honeypot: fuer Menschen unsichtbar, fuer Bots ein normales Feld */
.booking__hp{position:absolute !important;left:-9999px !important;top:auto;width:1px;height:1px;overflow:hidden;opacity:0;}
/* Ladezustand beim Senden */
.booking.is-sending .btn{pointer-events:none;opacity:0.75;}
.btn.is-loading{position:relative;color:transparent !important;}
.btn.is-loading::after{
  content:'';position:absolute;left:50%;top:50%;width:1.1rem;height:1.1rem;margin:-0.55rem 0 0 -0.55rem;border-radius:50%;
  border:2px solid rgba(236,227,210,0.35);border-top-color:var(--paper);animation:btnSpin .8s linear infinite;
}
@keyframes btnSpin{to{transform:rotate(360deg);}}
.booking__status{font-size:0.88rem;color:var(--paper-dim);margin-top:1rem;}
.booking__req-hint{display:block;margin-top:0.5rem;font-size:0.8rem;color:var(--brass);}
.booking__status:empty{display:none;}
@media (prefers-reduced-motion:reduce){
  .btn.is-loading::after{animation:none;border-color:var(--paper);border-top-color:transparent;}
  .field label{transition:none;}
}
.is-invalid .cal,.is-invalid .slots{outline:1px solid var(--blood-bright);outline-offset:4px;border-radius:4px;}

/* Kalender */
.cal{border:1px solid var(--border);border-radius:4px;padding:1rem;background:rgba(12,10,8,0.35);}
.cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.8rem;gap:0.6rem;}
.cal__title{font-family:var(--display);font-weight:800;font-size:1.25rem;text-transform:uppercase;letter-spacing:0.02em;text-align:center;}
.cal__nav{
  width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--paper);
  cursor:pointer;font-size:1.1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
}
.cal__nav:hover:not(:disabled){border-color:var(--paper);}
.cal__nav:disabled{opacity:0.3;cursor:not-allowed;}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0.3rem;}
.cal__dow{font-size:0.68rem;text-align:center;color:var(--brass);text-transform:uppercase;letter-spacing:0.04em;padding:0.2rem 0 0.4rem;overflow:hidden;}
.cal__day{
  aspect-ratio:1;min-height:34px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--paper);
  font-family:var(--body);font-size:0.88rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;
}
.cal__day:hover:not(:disabled){border-color:var(--paper);}
.cal__day:disabled{color:rgba(236,227,210,0.22);cursor:not-allowed;}
.cal__day.is-today{border-color:var(--border);}
.cal__day.is-selected{background:var(--blood);border-color:var(--blood);color:var(--paper);}
.cal__day--empty{visibility:hidden;}
.cal__hint{font-size:0.75rem;color:var(--paper-dim);margin-top:0.7rem;}

/* Uhrzeit */
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(4.6rem,1fr));gap:0.45rem;}
.slot{
  border:1px solid var(--border);background:transparent;color:var(--paper-dim);padding:0.6rem 0.2rem;font-size:0.82rem;
  border-radius:3px;cursor:pointer;font-family:var(--body);
}
.slot:hover:not(:disabled){border-color:var(--paper);color:var(--paper);}
.slot:disabled{opacity:0.28;cursor:not-allowed;text-decoration:line-through;}
.slot.is-selected{background:var(--blood);border-color:var(--blood);color:var(--paper);}
.slots__empty{font-size:0.85rem;color:var(--paper-dim);grid-column:1/-1;}

.booking__selection{
  margin-top:2rem;padding:1rem 1.2rem;border:1px dashed var(--border);border-radius:4px;font-size:0.92rem;color:var(--paper-dim);
}
.booking__selection strong{color:var(--paper);}
.booking__deposit{margin-top:1.4rem;font-size:0.85rem;color:var(--paper-dim);max-width:46rem;}
.booking__deposit strong{color:var(--paper);}
.booking__actions{display:flex;flex-wrap:wrap;gap:0.9rem;align-items:center;margin-top:1.6rem;}
.booking__error{color:var(--blood-bright);font-size:0.88rem;margin-top:1rem;}
.booking__error:empty{display:none;}
.booking__note{font-size:0.78rem;color:var(--paper-dim);margin-top:1rem;max-width:46rem;}
.booking__note a{color:var(--paper);border-bottom:1px solid var(--brass);}

.booking-success{
  margin-top:1.6rem;padding:1.4rem 1.5rem;border:1px solid rgba(173,138,84,0.6);border-radius:4px;background:rgba(173,138,84,0.08);
}
.booking-success[hidden]{display:none;}
.booking-success__title{font-family:var(--display);font-weight:800;font-size:1.3rem;text-transform:uppercase;margin-bottom:0.5rem;text-shadow:none;line-height:1.1;}
.booking-success p{color:var(--paper-dim);font-size:0.92rem;}
.booking-success p+p{margin-top:0.6rem;}
.booking-success strong{color:var(--paper);}

@media (max-width:900px){
  .booking__grid{grid-template-columns:1fr;}
}

/* Kontakt: Checkliste */
.kontakt__list{background:var(--ink-soft);border:1px solid var(--border);border-radius:4px;padding:2rem;align-self:start;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);}
.kontakt__list h3{font-family:var(--display);font-weight:800;font-size:1.4rem;text-transform:uppercase;text-shadow:none;line-height:1.1;margin-bottom:1rem;}
.kontakt__list ul{list-style:none;margin-bottom:1.6rem;}
.kontakt__list li{color:var(--paper-dim);padding:0.55rem 0 0.55rem 1.6rem;border-bottom:1px solid var(--border);position:relative;font-size:0.95rem;}
.kontakt__list li::before{content:'✷';position:absolute;left:0;color:var(--blood-bright);font-size:0.8rem;top:0.7rem;}
.booking-success__text{width:100%;margin-top:0.8rem;background:rgba(12,10,8,0.5);color:var(--paper);border:1px solid var(--border);border-radius:3px;padding:0.8rem;font-family:var(--body);font-size:0.85rem;resize:vertical;}
.booking-success__text[hidden]{display:none;}

/* ===================== SHOP: PRODUKTVORSCHAU ===================== */
.merch{max-width:var(--container);margin:0 auto;padding:clamp(4rem,9vw,7rem) 6vw;position:relative;}
.merch::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;
  background:radial-gradient(ellipse 60% 50% at 50% 30%,rgba(139,16,26,0.22),transparent 70%);
}
.merch__head{max-width:40rem;margin-bottom:2.6rem;}
.merch__title{font-size:clamp(2.4rem,5.4vw,4.2rem);margin-bottom:1rem;}
.merch__sub{color:var(--paper-dim);font-size:1.05rem;max-width:34rem;}
.merch__grid{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;}
.merch-card{margin:0;}
.merch-card__link{
  display:flex;flex-direction:column;height:100%;background:var(--ink-soft);border:1px solid var(--border);border-radius:2px;
  overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);
  transition:border-color .3s ease,transform .4s cubic-bezier(.16,.84,.24,1),box-shadow .4s ease;
}
.merch-card__link:hover,.merch-card__link:focus-visible{border-color:rgba(236,227,210,0.45);transform:translateY(-4px);box-shadow:0 26px 40px -30px rgba(0,0,0,0.9);}
.merch-card__link:focus-visible{outline:2px solid var(--blood-bright);outline-offset:4px;}
.merch-card__media{
  display:block;aspect-ratio:1/1;overflow:hidden;position:relative;
  background:radial-gradient(circle at 50% 60%,rgba(139,16,26,0.16),transparent 62%),#0a0908;
}
.merch-card__media img{
  display:block;width:100%;height:100%;object-fit:contain;padding:8%;
  filter:drop-shadow(0 18px 22px rgba(0,0,0,0.5));
  transition:transform .65s cubic-bezier(.2,.7,.2,1);
}
.merch-card__link:hover img,.merch-card__link:focus-visible img{transform:scale(1.06);}
.merch-card__body{display:flex;flex-direction:column;gap:0.5rem;padding:1.1rem 1.2rem 1.3rem;flex:1;}
.merch-card__title{font-size:0.86rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;line-height:1.35;color:var(--paper);}
.merch-card__cta{margin-top:auto;font-size:0.82rem;color:var(--brass);display:inline-flex;gap:0.4rem;align-items:center;}
.merch-card__cta span{display:inline-block;transition:transform .3s ease;}
.merch-card__link:hover .merch-card__cta span{transform:translateX(4px);}
.merch__more{margin-top:2.4rem;display:flex;justify-content:center;}
.merch__fallback{color:var(--paper-dim);max-width:34rem;margin-bottom:0.4rem;}
@media (max-width:1000px){.merch__grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.merch__grid{gap:0.8rem;}.merch-card__body{padding:0.8rem 0.8rem 1rem;}.merch-card__title{font-size:0.78rem;}.merch-card__cta{font-size:0.76rem;white-space:nowrap;}}
@media (max-width:360px){.merch__grid{grid-template-columns:1fr;}}
@media (prefers-reduced-motion:reduce){
  .btn,.btn:hover,.merch-card__link,.merch-card__link:hover,.merch-card__media img,.merch-card__link:hover img,.merch-card__cta span{transition:none;transform:none;}
}

/* ===================== FAQ-GRUPPEN ===================== */
.faq__group{margin-bottom:2.6rem;max-width:48rem;}
.faq__group:last-of-type{margin-bottom:0;}
.faq__group-title{
  font-family:var(--body);font-weight:600;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--brass);text-shadow:none;line-height:1.4;margin-bottom:0.6rem;
}
.faq details ul{color:var(--paper-dim);padding:0 0 1.4rem 1.1rem;max-width:40rem;list-style:disc;}
.faq details li{margin-bottom:0.3rem;}
.faq details p+p{margin-top:-0.6rem;}

/* ===================== RECHTSSEITEN ===================== */
.legal{max-width:52rem;margin:0 auto;padding-top:0;}
.legal h2{font-size:clamp(1.6rem,3.4vw,2.2rem);margin:2.6rem 0 1rem;}
.legal h3{font-family:var(--body);font-weight:600;font-size:1.05rem;text-transform:none;text-shadow:none;letter-spacing:0;line-height:1.4;margin:1.6rem 0 0.5rem;}
.legal p,.legal li{color:var(--paper-dim);}
.legal p{margin-bottom:0.8rem;}
.legal ul{padding-left:1.2rem;list-style:disc;margin-bottom:0.8rem;}
.legal a{color:var(--paper);border-bottom:1px solid var(--brass);}
.legal address{font-style:normal;color:var(--paper);margin-bottom:0.8rem;}
.legal__notice{border:1px solid rgba(173,138,84,0.6);background:rgba(173,138,84,0.08);border-radius:4px;padding:1rem 1.2rem;font-size:0.9rem;color:var(--paper-dim);margin-bottom:2rem;}
.legal__notice a{color:var(--paper);}

/* Sprachwahl-Seite unter / */
.langpick{min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:6rem 6vw;max-width:var(--container);margin:0 auto;}
.langpick h1{font-size:clamp(3rem,12vw,8rem);margin-bottom:1.4rem;}
.langpick p{color:var(--paper-dim);margin-bottom:1.6rem;}
.langpick ul{list-style:none;display:flex;flex-wrap:wrap;gap:0.8rem;}

/* ===================== REDUCED MOTION ===================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;}
  html{scroll-behavior:auto;}
}
