/* web-designer.shop
   Dunkler Grund in Marineblau, Gold als Licht, die Arbeiten als leuchtende Bildschirme.
   Schriften: Cormorant Garamond und Jost, beide vom eigenen Webspace.
   Die Seite läuft unter einer strengen Content-Security-Policy: keine Stile im HTML. */

@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/cormorant-garamond.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 700;font-display:swap;src:url(../fonts/cormorant-garamond-kursiv.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/jost.woff2) format('woff2')}

:root{
  --nacht:#0a1018;       /* Grund */
  --navy:#111e2a;        /* Flächen */
  --navy-hell:#1b2a38;   /* erhabene Flächen */
  --gold:#c9a96e;
  --gold-tief:#a8803a;
  --gold-hell:#ecdcb4;
  --elfenbein:#f3eee3;   /* Überschriften */
  --grau:#a9b2bc;        /* Lauftext */
  --grau-leise:#74808c;
  --creme:#f7f5f0;       /* heller Abschnitt */
  --tinte:#16212c;
  --haar:rgba(201,169,110,.3);
  --haar-leise:rgba(255,255,255,.1);
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Jost','Helvetica Neue',Arial,sans-serif;
  --rand:clamp(22px,5vw,76px);
  --max:1320px;
  --h:0; --seite:0;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--nacht);color:var(--grau);font-family:var(--sans);font-weight:350;font-size:18px;line-height:1.7;overflow-x:clip;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
img{height:auto}
[hidden]{display:none!important}
a{color:inherit}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3,p,ul,ol,figure,address,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
address{font-style:normal}
:focus-visible{outline:2px solid var(--gold-hell);outline-offset:4px}
.hell :focus-visible{outline-color:var(--tinte)}

h1,h2,h3{font-family:var(--serif);font-weight:300;color:var(--elfenbein);line-height:1.02;letter-spacing:-.012em;text-wrap:balance}
h1{font-size:clamp(50px,6.5vw,104px)}
h2{font-size:clamp(40px,5.2vw,82px)}
h3{font-size:clamp(28px,2.7vw,38px);font-weight:400;line-height:1.1}
em{font-style:italic}
.goldschrift{background:linear-gradient(100deg,var(--gold-tief) 0%,var(--gold-hell) 36%,var(--gold) 58%,var(--gold-tief) 100%);background-size:220% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;padding-right:.08em}
.lauf{max-width:33em;font-size:19px}
.marke-klein{font-size:12.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}

.innen{width:min(var(--max),100% - 2*var(--rand));margin-inline:auto}
section{position:relative;padding:clamp(72px,10vw,150px) 0}
.skip{position:absolute;left:14px;top:-90px;z-index:60;background:var(--gold);color:var(--nacht);padding:12px 18px}
.skip:focus{top:14px}

.knopf{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 28px;border:1px solid var(--gold);border-radius:2px;background:var(--gold);color:var(--nacht);font-weight:500;font-size:15.5px;letter-spacing:.05em;line-height:1.2;text-decoration:none;text-align:center;transition:background .25s,color .25s,border-color .25s}
.knopf:hover{background:var(--gold-hell);border-color:var(--gold-hell)}
.knopf.linie{background:transparent;color:var(--gold-hell)}
.knopf.linie:hover{background:var(--gold);color:var(--nacht)}
.knopf.klein{min-height:44px;padding:9px 20px;font-size:14.5px;white-space:nowrap}
.textlink{display:inline-flex;align-items:center;min-height:44px;color:var(--elfenbein);text-decoration:none;background:linear-gradient(var(--gold),var(--gold)) 0 calc(100% - 9px)/100% 1px no-repeat;transition:color .25s}
.textlink:hover{color:var(--gold-hell)}

/* ── Kopf: liegt über der Seite, wird beim Scrollen zur Leiste ── */
.kopf{position:fixed;inset:0 0 auto 0;z-index:40;transition:background .35s,border-color .35s;border-bottom:1px solid transparent}
.kopf.fest{background:rgba(10,16,24,.78);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border-bottom-color:var(--haar-leise)}
.kopf.offen{background:var(--nacht);-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:var(--haar-leise)}
.kopf .innen{display:flex;align-items:center;gap:clamp(14px,2.6vw,40px);min-height:84px}
.logo{margin-right:auto;display:flex;align-items:center;min-height:44px}
.logo svg{width:clamp(190px,17vw,236px);height:auto}
.haupt{display:flex;gap:clamp(18px,2.2vw,36px);font-size:15.5px;font-weight:400;color:var(--elfenbein)}
.haupt a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;text-decoration:none;opacity:.82;transition:opacity .2s,color .2s}
.haupt a:hover,.haupt a[aria-current]{opacity:1;color:var(--gold-hell)}
.haupt .nur-menue,.menue-knopf{display:none}
.fortschritt{position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--gold);transform:scaleX(var(--seite));transform-origin:left}
@media(max-width:900px){
  .kopf .innen{min-height:70px}
  .js .menue-knopf{order:3;display:inline-flex;align-items:center;gap:11px;min-width:44px;min-height:44px;padding:0;background:none;border:0;color:var(--elfenbein);font-size:13.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
  .menue-striche{position:relative;display:block;width:26px;height:11px}
  .menue-striche::before,.menue-striche::after{content:'';position:absolute;left:0;right:0;height:1px;background:var(--gold);transition:transform .3s}
  .menue-striche::before{top:0}.menue-striche::after{bottom:0}
  .menue-knopf[aria-expanded="true"] .menue-striche::before{transform:translateY(5px) rotate(45deg)}
  .menue-knopf[aria-expanded="true"] .menue-striche::after{transform:translateY(-5px) rotate(-45deg)}
  /* Das Menü hängt unter der Leiste. Bewusst absolut statt fixed: die Leiste hat einen Weichzeichner,
     und der würde ein fixed-Kind an die Leiste statt an den Bildschirm binden. */
  .haupt{display:none}
  .js .haupt{position:absolute;left:0;right:0;top:100%;height:calc(100vh - 70px);height:calc(100dvh - 70px);display:flex;flex-direction:column;gap:0;padding:10px var(--rand) 44px;overflow-y:auto;overscroll-behavior:contain;background:var(--nacht);visibility:hidden;opacity:0;transform:translateY(-10px);transition:opacity .25s,transform .25s,visibility 0s .25s}
  .js .kopf.offen .haupt{visibility:visible;opacity:1;transform:none;transition:opacity .25s,transform .25s}
  .haupt a{justify-content:flex-start;min-height:64px;font-family:var(--serif);font-weight:300;font-size:32px;line-height:1.1;opacity:1;border-bottom:1px solid var(--haar-leise)}
  .haupt .nur-menue{display:inline-flex}
  .haupt .menue-ruf{margin-top:26px;border:0;font-family:var(--sans);font-weight:400;font-size:19px;color:var(--gold-hell)}
  .menue-offen{overflow:hidden}
}
@media(max-width:620px){.kopf .knopf.klein{display:none}}
@media(max-width:480px){.logo svg{width:158px}}

/* ── Einstieg: drei Bildschirme im Raum ── */
.held{padding:clamp(128px,15vh,180px) 0 clamp(70px,9vw,120px);overflow:hidden;overflow:clip;min-height:min(100vh,980px);display:flex;align-items:center;
  background:radial-gradient(58% 60% at 76% 42%,rgba(201,169,110,.17),transparent 68%),linear-gradient(180deg,#0c141d,var(--nacht))}
.held .innen{display:grid;grid-template-columns:minmax(0,11fr) minmax(0,12fr);gap:clamp(24px,3vw,56px);align-items:center}
.held .innen>div:first-child{position:relative;z-index:2}
@media(min-width:1001px){.held h1 .zeile{white-space:nowrap}}
h1 .zeile{display:block;overflow:hidden;padding-bottom:.2em;margin-bottom:-.2em}
h1 .zeile>span{display:block}
.held .lauf{margin-top:clamp(22px,2.6vw,34px)}
.held-wege{display:flex;flex-wrap:wrap;align-items:center;gap:14px 30px;margin-top:clamp(26px,3vw,40px)}
.held-fuss{margin-top:clamp(30px,4vw,56px);padding-top:20px;border-top:1px solid var(--haar-leise);display:flex;flex-wrap:wrap;gap:8px 34px;font-size:15px;color:var(--grau-leise)}
.held-fuss strong{color:var(--elfenbein);font-weight:400}

.stapel{position:relative;height:clamp(360px,56vh,600px);perspective:1700px;perspective-origin:20% 45%;margin-right:calc(-1*var(--rand) - 6vw)}
.ebene{position:absolute;aspect-ratio:16/10;border-radius:9px;background-color:var(--navy);background-size:cover;background-position:top center;background-repeat:no-repeat;border:1px solid rgba(236,220,180,.3);box-shadow:0 60px 120px -40px rgba(0,0,0,.9),0 0 90px -30px rgba(201,169,110,.28);will-change:transform;backface-visibility:hidden}
.ebene::after{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,rgba(255,255,255,.14),transparent 32%);pointer-events:none}
.ebene.hinten{width:66%;left:26%;top:0;background-image:url(../img/arbeiten/held-jagd.webp);filter:brightness(.72);
  transform:translate3d(calc(var(--h)*9%),calc(var(--h)*-14%),-260px) rotateY(calc(-27deg + var(--h)*9deg)) rotateX(calc(7deg - var(--h)*3deg))}
.ebene.mitte{width:66%;left:12%;top:15%;background-image:url(../img/arbeiten/held-lexikon.webp);filter:brightness(.88);
  transform:translate3d(0,calc(var(--h)*-7%),-120px) rotateY(calc(-27deg + var(--h)*9deg)) rotateX(calc(7deg - var(--h)*3deg))}
.ebene.vorn{width:66%;left:-2%;top:31%;background-image:url(../img/arbeiten/held-seen.webp);
  transform:translate3d(calc(var(--h)*-9%),calc(var(--h)*2%),0) rotateY(calc(-27deg + var(--h)*9deg)) rotateX(calc(7deg - var(--h)*3deg))}

/* Einmalige Abfolge beim Laden: Zeilen steigen auf, die Bildschirme kommen aus dem Dunkel, Licht zieht über das Gold */
@media(prefers-reduced-motion:no-preference){
  .js h1 .zeile>span{animation:steig 1.1s cubic-bezier(.2,.75,.2,1) both}
  .js h1 .zeile:nth-child(2)>span{animation-delay:.14s}
  .js .held .lauf,.js .held-wege,.js .held-fuss,.js .seitenkopf .lauf,.js .seitenkopf .marke-klein{animation:auf .9s ease .55s both}
  .js .seitenkopf .marke-klein{animation-delay:.05s}
  .js .held-wege{animation-delay:.68s}.js .held-fuss{animation-delay:.8s}
  .js .ebene{animation:hervor 1.5s cubic-bezier(.2,.75,.2,1) both}
  .js .ebene.mitte{animation-delay:.18s}.js .ebene.vorn{animation-delay:.36s}
  .js h1 .goldschrift{animation:licht 2.6s ease .7s both}
  @keyframes steig{from{transform:translateY(108%)}to{transform:none}}
  @keyframes auf{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  @keyframes hervor{from{opacity:0;translate:0 70px}to{opacity:1;translate:0 0}}
  @keyframes licht{from{background-position:100% 0}to{background-position:0 0}}
}
@media(max-width:1000px){
  .held{min-height:0;padding-top:118px}
  .held .innen{grid-template-columns:minmax(0,1fr)}
  .stapel{height:clamp(250px,58vw,460px);margin:10px calc(-1*var(--rand)) 0 0;perspective-origin:30% 40%}
  .ebene.hinten{left:30%}.ebene.mitte{left:16%}.ebene.vorn{left:2%}
}

/* ── Leitsatz: die Wörter werden beim Scrollen hell ── */
.leitsatz{padding:clamp(80px,12vw,190px) 0}
.satz{font-family:var(--serif);font-weight:300;font-size:clamp(31px,4.5vw,68px);line-height:1.17;letter-spacing:-.01em;color:var(--elfenbein);max-width:19em;text-wrap:pretty}
.js .satz span{color:rgba(243,238,227,.16);transition:color .45s ease}
.js .satz span.an{color:var(--elfenbein)}
.nur-vorlesen{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ── Arbeiten: eine Bühne, die stehen bleibt, während die Stücke wechseln ── */
.werke{padding-bottom:0}
.kopfzeile{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:20px 60px;margin-bottom:clamp(30px,4vw,60px)}
.kopfzeile .lauf{max-width:25em}
.buehne-innen{position:relative}
.stueck{display:grid;grid-template-columns:minmax(0,13fr) minmax(0,7fr);gap:clamp(30px,4.4vw,76px);align-items:center}
.stueck-text{padding-right:34px;min-width:0}
.stueck-text h3{overflow-wrap:anywhere}
.vitrine{position:relative;padding:0 9% 7% 0}
.fenster{position:relative;aspect-ratio:16/10;overflow:hidden;border-radius:10px;background:var(--navy);border:1px solid rgba(236,220,180,.26);box-shadow:0 70px 140px -50px #000,0 0 110px -40px rgba(201,169,110,.3)}
.fenster-bild,.telefon-bild{display:block;width:100%;height:auto;will-change:transform}
.vitrine.allein{padding-right:0}
.telefon{position:absolute;right:0;bottom:0;width:21%;aspect-ratio:9/18.6;overflow:hidden;border-radius:clamp(14px,1.8vw,26px);background:var(--navy);border:clamp(4px,.45vw,7px) solid #060a0f;outline:1px solid rgba(236,220,180,.34);box-shadow:0 40px 80px -24px #000}
.stueck-text h3{font-size:clamp(44px,5vw,78px);font-weight:300;line-height:.98;margin:14px 0 22px}
.stueck-text p{font-size:17.5px}
.preis,.ruf,.stueck-zahl,.held-fuss{font-variant-numeric:lining-nums}
.stueck-zahl{font-family:var(--serif);font-style:italic;font-size:clamp(23px,2vw,28px);line-height:1.25;color:var(--gold-hell);margin:22px 0 18px}
.zeiger{display:none}

/* Breite Bildschirme mit Bewegung: die Bühne haftet, die Stücke liegen übereinander */
@media(min-width:1000px) and (prefers-reduced-motion:no-preference){
  .js .buehne{height:calc(5 * 78vh + 100vh)}
  .js .buehne-fest{position:sticky;top:0;height:100vh}
  .js .buehne-innen{height:100%}
  .js .stueck{position:absolute;inset:0;padding-top:84px;opacity:0;visibility:hidden;transition:opacity .55s ease,visibility 0s .55s}
  .js .stueck.aktiv{opacity:1;visibility:visible;transition:opacity .55s ease}
  .js .stueck .stueck-text>*{transform:translateY(22px);opacity:0;transition:transform .7s cubic-bezier(.2,.75,.2,1),opacity .7s}
  .js .stueck.aktiv .stueck-text>*{transform:none;opacity:1}
  .js .stueck.aktiv .stueck-text>*:nth-child(2){transition-delay:.06s}
  .js .stueck.aktiv .stueck-text>*:nth-child(3){transition-delay:.12s}
  .js .stueck.aktiv .stueck-text>*:nth-child(4){transition-delay:.18s}
  .js .stueck.aktiv .stueck-text>*:nth-child(5){transition-delay:.24s}
  .js .fenster::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 38%,rgba(255,244,214,.2) 50%,transparent 62%);transform:translateX(-120%);pointer-events:none}
  .js .stueck.aktiv .fenster::after{animation:glanz 1.5s ease .15s both}
  @keyframes glanz{from{transform:translateX(-120%)}to{transform:translateX(120%)}}
  .js .zeiger{display:flex;flex-direction:column;gap:12px;position:absolute;right:0;top:50%;transform:translateY(-50%)}
  .js .zeiger i{display:block;width:1px;height:34px;background:var(--haar-leise);transition:background .4s,height .4s}
  .js .zeiger i.an{background:var(--gold);height:56px}
}
@media(max-width:999px),(prefers-reduced-motion:reduce){
  .stueck{grid-template-columns:minmax(0,1fr);gap:30px;padding-bottom:clamp(60px,10vw,100px)}
  .stueck-text{padding-right:0}
}
@media(prefers-reduced-motion:reduce){.fenster-bild,.telefon-bild{transform:none!important}}
html:not(.js) .stueck{padding-bottom:90px}
.stueck-ort{display:inline-flex;align-items:center;min-height:44px;color:var(--grau-leise);font-size:16px}

.weitere{padding:clamp(60px,8vw,110px) 0 clamp(72px,10vw,150px)}
.weitere h3{margin-bottom:26px}
.weitere .hinweis-link{color:var(--gold-hell)}
.weitere ul{border-top:1px solid var(--haar)}
.weitere li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr) auto;gap:8px 30px;align-items:center;padding:20px 0;border-bottom:1px solid var(--haar-leise)}
.weitere strong{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.6vw,36px);line-height:1.1;color:var(--elfenbein)}
.weitere span{font-size:16px}
.weitere a{justify-self:start}
@media(max-width:700px){.weitere li{grid-template-columns:minmax(0,1fr);gap:0}}

/* ── Leistungen ── */
.leistungen{background:linear-gradient(180deg,var(--nacht),var(--navy) 30%,var(--navy) 70%,var(--nacht))}
.leist-raster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(30px,6vw,110px)}
.leist{padding:30px 0 34px;border-top:1px solid var(--haar)}
.leist h3{margin-bottom:10px}
.leist p{font-size:17px;max-width:30em}
@media(max-width:760px){.leist-raster{grid-template-columns:minmax(0,1fr)}}

/* ── Wer dahinter steht ── */
.wer .innen{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:28px clamp(30px,6vw,110px);align-items:end}
.wer h2{font-size:clamp(38px,5.4vw,84px)}
.unterschrift{margin-top:30px;font-family:var(--serif);font-size:30px;font-style:italic;color:var(--gold-hell);line-height:1.2}
.unterschrift span{display:block;font-family:var(--sans);font-style:normal;font-size:15px;color:var(--grau-leise);margin-top:6px}
@media(max-width:800px){.wer .innen{grid-template-columns:minmax(0,1fr)}}

/* ── Ablauf: eine goldene Linie wächst mit dem Scrollen ── */
.ablauf .innen{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(30px,6vw,110px);align-items:start}
.ablauf-kopf{position:sticky;top:120px}
.ablauf-kopf .lauf{margin-top:24px}
.schritte{position:relative;padding-left:46px;--a:1}
.schritte::before,.schritte::after{content:'';position:absolute;left:5px;top:10px;bottom:10px;width:1px;background:var(--haar-leise)}
.schritte::after{background:var(--gold);transform:scaleY(var(--a));transform-origin:top}
.schritt{position:relative;padding:0 0 46px}
.schritt:last-child{padding-bottom:0}
.schritt::before{content:'';position:absolute;left:-46px;top:9px;width:11px;height:11px;border-radius:50%;background:var(--nacht);border:1px solid var(--gold);transition:background .4s,box-shadow .4s}
.schritt.an::before,html:not(.js) .schritt::before{background:var(--gold);box-shadow:0 0 0 6px rgba(201,169,110,.14)}
.schritt .marke-klein{display:block;margin-bottom:6px}
.schritt h3{margin-bottom:8px}
.schritt p{font-size:17px;max-width:30em}
.js .schritt{opacity:.42;transition:opacity .5s}
.js .schritt.an{opacity:1}
@media(max-width:900px){.ablauf .innen{grid-template-columns:minmax(0,1fr)}.ablauf-kopf{position:static}}
@media(prefers-reduced-motion:reduce){.js .schritt{opacity:1}}

/* ── Preise: der eine helle Abschnitt ── */
.preise{background:var(--creme);color:#4a5560}
.preise h2,.preise h3{color:var(--tinte)}
.preise .marke-klein{color:var(--gold-tief)}
.pakete{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(34px,5vw,70px);border-top:1px solid rgba(22,33,44,.2)}
.paket{padding:40px clamp(20px,2.6vw,40px) 40px;display:flex;flex-direction:column}
.paket+.paket{border-left:1px solid rgba(22,33,44,.14)}
.paket.mitte{background:var(--navy);color:var(--grau);margin-top:-22px;padding-top:62px;box-shadow:0 40px 80px -40px rgba(17,30,42,.7)}
.paket.mitte .paketname,.paket.mitte .preis{color:var(--elfenbein)}
.paketname{font-style:italic;font-size:38px;font-weight:400;line-height:1.1}
.paket .fuer{font-size:16px;margin-top:8px;min-height:3.4em}
.preis{font-family:var(--serif);font-weight:300;font-size:clamp(52px,5.4vw,80px);line-height:1;color:var(--tinte);margin-top:18px;letter-spacing:-.02em;white-space:nowrap}
.preis small{font-size:.4em;letter-spacing:0;margin-right:.2em}
.preis-zusatz{font-size:14.5px;margin-top:8px}
.paket ul{margin:26px 0 32px;flex:1;font-size:16.5px}
.paket li{position:relative;padding:7px 0 7px 26px}
.paket li::before{content:'';position:absolute;left:0;top:1.1em;width:14px;height:1px;background:var(--gold-tief)}
.paket.mitte li::before{background:var(--gold)}
.preise .knopf{background:var(--tinte);border-color:var(--tinte);color:var(--creme)}
.preise .knopf:hover{background:var(--gold-tief);border-color:var(--gold-tief)}
.preise .paket.mitte .knopf{background:var(--gold);border-color:var(--gold);color:var(--nacht)}
.preise .paket.mitte .knopf:hover{background:var(--gold-hell);border-color:var(--gold-hell)}
.laufend{margin-top:34px;padding-top:22px;border-top:1px solid rgba(22,33,44,.2);display:flex;flex-wrap:wrap;gap:8px 44px;font-size:16.5px}
.laufend strong{color:var(--tinte);font-weight:500}
@media(max-width:900px){.pakete{grid-template-columns:minmax(0,1fr)}.paket+.paket{border-left:0;border-top:1px solid rgba(22,33,44,.14)}.paket.mitte{margin-top:0;padding-top:40px}.paket .fuer{min-height:0}}

/* ── Kontakt ── */
.kontakt{background:radial-gradient(52% 70% at 22% 30%,rgba(201,169,110,.16),transparent 70%),var(--nacht)}
.kontakt .innen{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(34px,6vw,110px);align-items:start}
.kontakt .lauf{margin-top:26px}
.ruf{display:inline-block;margin-top:34px;padding-block:3px;font-family:var(--serif);font-weight:300;font-size:clamp(40px,5vw,76px);line-height:1.05;text-decoration:none;letter-spacing:-.01em}
.kontakt address{margin-top:22px;font-size:16.5px;line-height:1.8}
.formular{background:var(--navy);border:1px solid var(--haar);padding:clamp(24px,3vw,42px);color-scheme:dark}
.formular h3{margin-bottom:22px}
.feld-raster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px}
.feld{display:grid;gap:8px;margin-bottom:20px;align-content:start}
.feld.ganz{grid-column:1/-1}
.feld label{font-size:14.5px;color:var(--grau)}
.feld input,.feld textarea,.feld select{width:100%;min-height:52px;padding:12px 14px;background-color:#16232f;border:1px solid var(--haar-leise);border-radius:2px;color:var(--elfenbein);font-size:17px}
.feld select{-webkit-appearance:none;appearance:none;padding-right:44px;background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.feld textarea{min-height:130px;resize:vertical;line-height:1.5}
.feld input::placeholder,.feld textarea::placeholder{color:var(--grau-leise);opacity:1}
.feld input:focus,.feld textarea:focus,.feld select:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.formular .knopf{width:100%}
.formular .knopf[disabled]{opacity:.6;cursor:default}
.klein{font-size:14.5px;line-height:1.6;color:var(--grau)}
.klein a,.notice a{color:var(--gold-hell)}
/* Verweise im Fließtext: Tippfläche nach oben und unten vergrößert, ohne die Zeilen zu verschieben */
.klein a,.notice a,.meldung a{display:inline-block;padding:12px 0;margin:-12px 0}
.formular .klein{margin-bottom:20px}
.honig{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.meldung{margin-top:16px;padding:14px 16px;border:1px solid var(--haar);font-size:15.5px;color:var(--elfenbein)}
.notice{margin-bottom:22px;padding:18px 20px;border:1px solid var(--gold);background:rgba(201,169,110,.09);font-size:16.5px;color:var(--elfenbein)}
.notice:focus{outline:0}
.notice strong{display:block;font-weight:500;color:var(--gold-hell)}
.notice ul{margin-top:8px;padding-left:20px;list-style:disc}
.notice.error{border-color:#e39a8b;background:rgba(227,154,139,.09)}
.notice.error strong{color:#f1b8ac}
.pflicht{color:var(--gold)}
.ohne-js{display:none}
html:not(.js) .ohne-js{display:block}
html:not(.js) form[data-rueckruf]{display:none}
@media(max-width:900px){.kontakt .innen{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.feld-raster{grid-template-columns:minmax(0,1fr)}}

/* ── Unterseiten ── */
.seitenkopf{padding:clamp(150px,21vh,230px) 0 clamp(54px,7vw,104px);overflow:hidden;background:radial-gradient(56% 90% at 84% 12%,rgba(201,169,110,.15),transparent 70%),linear-gradient(180deg,#0c141d,var(--nacht))}
.seitenkopf h1{margin-top:20px;font-size:clamp(46px,6vw,96px)}
.seitenkopf .lauf{margin-top:clamp(22px,2.6vw,34px)}
.seitenkopf.kurz{padding-bottom:clamp(30px,4vw,56px)}

/* Stimmungsbilder. Sie liegen als Licht auf dem dunklen Grund (screen): Schwarz im Bild bleibt Marineblau,
   deshalb gibt es keine sichtbare Bildkante. Zum Text hin blendet eine Maske aus. */
.mit-bild{isolation:isolate}
.mit-bild::before{content:'';position:absolute;z-index:-1;top:0;right:0;bottom:0;width:min(70%,1180px);background:no-repeat right center/cover;mix-blend-mode:screen;pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse 100% 56% at 100% 50%,#000 30%,transparent 82%);mask-image:radial-gradient(ellipse 100% 56% at 100% 50%,#000 30%,transparent 82%)}
.bild-glas::before{background-image:url(../img/stimmung/glas.webp)}
.bild-stoffe::before{background-image:url(../img/stimmung/stoffe.webp);width:min(64%,1100px);opacity:.92}
.bild-faden::before{background-image:url(../img/stimmung/faden.webp);background-position:right 30% center}
.bild-tisch::before{background-image:url(../img/stimmung/tisch.webp);background-position:right bottom}
.leitsatz.mit-bild{overflow:hidden;overflow:clip}
.leitsatz.mit-bild::before{top:-8%;bottom:-8%;width:min(46%,800px);background-position:60% center;-webkit-mask-image:radial-gradient(ellipse 100% 44% at 100% 50%,#000 30%,transparent 86%);mask-image:radial-gradient(ellipse 100% 44% at 100% 50%,#000 30%,transparent 86%);transform:translate3d(0,calc((var(--l,.5) - .5) * -90px),0);will-change:transform}
@media(min-width:1000px){.leitsatz.mit-bild .satz{max-width:12.5em}}
@media(max-width:900px){
  /* Schmal: das Bild liegt nur oben über der Überschrift und läuft vor dem Text aus */
  .mit-bild::before{width:100%;height:330px;bottom:auto;opacity:.7;-webkit-mask-image:linear-gradient(180deg,#000 30%,transparent);mask-image:linear-gradient(180deg,#000 30%,transparent)}
  .bild-stoffe::before{width:100%;opacity:.6}
  .bild-tisch::before{height:230px;background-position:right 12%}
  .leitsatz.mit-bild::before{display:none}
}
@media(prefers-reduced-motion:reduce){.leitsatz.mit-bild::before{transform:none}}
.ohne-oben{padding-top:0}
.verweis{margin-top:clamp(26px,3vw,44px)}

/* Leistungen im Einzelnen */
.fach{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:20px clamp(30px,6vw,110px);padding:clamp(44px,6vw,88px) 0;border-top:1px solid var(--haar);scroll-margin-top:84px}
.fach-kopf{position:sticky;top:118px;align-self:start}
.fach-nr{display:block;font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(70px,9vw,140px);line-height:.86;font-variant-numeric:lining-nums}
.fach-kopf .marke-klein{margin-top:14px}
.fach h2{font-size:clamp(34px,4vw,60px)}
.fach p{margin-top:20px;max-width:34em}
.striche{margin-top:24px;max-width:34em}
.striche li{position:relative;padding:10px 0 10px 30px;border-bottom:1px solid var(--haar-leise);color:var(--elfenbein)}
.striche li::before{content:'';position:absolute;left:0;top:1.35em;width:16px;height:1px;background:var(--gold)}
.fach .textlink{margin-top:20px}
@media(max-width:800px){.fach{grid-template-columns:minmax(0,1fr)}.fach-kopf{position:static;display:flex;align-items:end;gap:18px}.fach-nr{font-size:64px}}

/* Raster für Branchen und Grundsätze */
.leist h2{font-size:clamp(30px,3.1vw,44px);margin:6px 0 12px}
.leist .striche{margin-top:16px}
.leist .striche li{padding:8px 0 8px 30px;font-size:16.5px;color:var(--grau)}
.leist-raster.drei{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(24px,4vw,64px)}
@media(max-width:860px){.leist-raster.drei{grid-template-columns:minmax(0,1fr)}}
.schritt h2{font-size:clamp(28px,2.7vw,38px);font-weight:400;line-height:1.1;margin-bottom:8px}
.preise .textlink{color:var(--tinte);background-image:linear-gradient(var(--gold-tief),var(--gold-tief))}
.preise .textlink:hover{color:var(--gold-tief)}

/* Ablauf ausführlich */
.schritt .notiz{margin-top:10px;font-family:var(--serif);font-style:italic;font-size:21px;line-height:1.3;color:var(--gold-hell)}

/* Pflege und Hosting */
.pflege{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(24px,4vw,64px)}
.pflege-karte{padding:30px 0 10px;border-top:1px solid var(--haar)}
.pflege-karte h3{font-style:italic}
.pflege-karte .pflege-preis{font-family:var(--serif);font-weight:300;font-size:clamp(38px,3.6vw,54px);line-height:1.1;color:var(--elfenbein);margin:10px 0 12px;font-variant-numeric:lining-nums;white-space:nowrap}
.pflege-karte .pflege-preis small{font-family:var(--sans);font-size:15px;color:var(--grau-leise);margin-left:6px}
.pflege-karte p{font-size:17px}
.fussnote{margin-top:30px;font-size:15px;color:var(--grau-leise)}
.preise .fussnote{color:#5d6975}
@media(max-width:860px){.pflege{grid-template-columns:minmax(0,1fr)}}

/* Fragen: aufklappbar ohne Skript */
.fragen{max-width:920px}
.fragen details{border-bottom:1px solid var(--haar-leise)}
.fragen details:first-child{border-top:1px solid var(--haar)}
.fragen summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:72px;padding:16px 0;font-family:var(--serif);font-size:clamp(24px,2.4vw,32px);line-height:1.15;color:var(--elfenbein)}
.fragen summary::-webkit-details-marker{display:none}
.fragen summary::after{content:'';flex:none;width:12px;height:12px;margin:0 6px 6px 0;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);transform:rotate(45deg);transition:transform .3s}
.fragen details[open] summary::after{transform:translateY(6px) rotate(225deg)}
.fragen details p{padding:0 44px 28px 0;max-width:42em}

/* Kontakt- und Anfrageseiten */
.anfrage .innen{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(34px,6vw,110px);align-items:start}
.anfrage h2{font-size:clamp(34px,3.8vw,56px)}
.anfrage .lauf{margin-top:22px}
.anfrage .ruf{font-size:clamp(36px,3.8vw,56px);margin-top:28px}
.anfrage address{margin-top:18px;font-size:16.5px;line-height:1.8}
.danach{margin-top:34px;padding-top:22px;border-top:1px solid var(--haar);font-size:16.5px;max-width:30em}
.danach strong{display:block;margin-bottom:6px;font-weight:500;color:var(--gold);font-size:12.5px;letter-spacing:.2em;text-transform:uppercase}
#anfrage{scroll-margin-top:110px}
@media(max-width:900px){.anfrage .innen{grid-template-columns:minmax(0,1fr)}}

/* Rechtstexte */
.text{max-width:820px}
.text h2{font-size:clamp(28px,3vw,40px);font-weight:400;margin:54px 0 14px}
.text h2:first-child{margin-top:0}
.text p{margin-top:14px}
.text a{color:var(--gold-hell)}
.text p a{display:inline-block;padding:10px 0;margin:-10px 0}
.text .sprung{display:flex;flex-wrap:wrap;gap:0 28px;margin-bottom:44px;padding-bottom:18px;border-bottom:1px solid var(--haar-leise)}
.text .sprung a{display:inline-flex;align-items:center;min-height:44px}
.text [id]{scroll-margin-top:110px}

/* Der frische Blick und der Schluss jeder Seite */
.blick{padding:clamp(56px,7vw,104px) 0;border-bottom:1px solid var(--haar-leise)}
.blick .innen,.schluss .innen{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:26px clamp(30px,6vw,110px);align-items:end}
.blick h2{font-size:clamp(34px,4vw,60px)}
.blick .lauf,.schluss .lauf{font-size:18px}
.blick .held-wege,.schluss .held-wege{margin-top:22px}
.schluss{background:radial-gradient(52% 90% at 20% 40%,rgba(201,169,110,.16),transparent 70%),var(--nacht);border-top:1px solid var(--haar-leise)}
.ruf-klein{font-family:var(--serif);font-size:27px;font-variant-numeric:lining-nums}
@media(max-width:860px){.blick .innen,.schluss .innen{grid-template-columns:minmax(0,1fr)}}

/* Seite nicht gefunden */
.fehlseite{min-height:100vh;display:flex;align-items:center;padding-top:150px}
.fehlzahl{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(120px,22vw,300px);line-height:.8;font-variant-numeric:lining-nums}
.fehlseite h1{font-size:clamp(40px,5vw,76px);margin-top:26px}

/* ── Fuß ── */
.fuss{border-top:1px solid var(--haar-leise);padding:clamp(48px,6vw,84px) 0 30px;font-size:16px;color:var(--grau)}
.fuss-raster{display:grid;grid-template-columns:minmax(0,5fr) repeat(3,minmax(0,3fr));gap:34px clamp(24px,4vw,64px)}
.fuss .logo{margin-right:0}
.fuss-raster>div>p{margin-top:16px;max-width:22em;font-size:15.5px;color:var(--grau-leise)}
.fuss-titel{font-family:var(--sans);font-size:12.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);line-height:1.6;margin-bottom:8px}
.fuss li a{display:inline-flex;align-items:center;min-width:44px;min-height:44px;text-decoration:none}
.fuss li a:hover{color:var(--gold-hell)}
.fuss li.ruhig{padding:4px 0;color:var(--grau-leise)}
.fuss-zeile{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 30px;margin-top:clamp(34px,4vw,56px);padding-top:22px;border-top:1px solid var(--haar-leise);font-size:14.5px;color:var(--grau-leise)}
@media(max-width:900px){.fuss-raster{grid-template-columns:repeat(2,minmax(0,1fr))}.fuss-raster>div:first-child{grid-column:1/-1}}
@media(max-width:480px){.fuss-raster{grid-template-columns:minmax(0,1fr)}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.js .satz span{color:var(--elfenbein)}}
