/* Nilab Fotografie – final UI normalization layer
   Keeps the existing visual identity while making spacing, typography,
   responsive behavior and interaction states consistent across pages. */

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  font-synthesis:none;
  scroll-padding-top:calc(var(--header-h) + 12px);
  background:var(--paper);
}
body{background:var(--paper);color:var(--ink);font-size:clamp(.96rem,.94rem + .08vw,1rem);line-height:1.72;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;}
::selection{background:rgba(173,130,80,.2);color:var(--ink)}
img{max-width:100%;height:auto}
button,input,textarea,select{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a{overflow-wrap:anywhere}

.container{
  width:min(calc(100% - (2 * var(--gutter))),var(--maxwidth)) !important;
  max-width:none !important;
  margin-inline:auto !important;
  padding-inline:0 !important;
}

h1,h2,h3,h4,h5,h6{
  color:var(--ink);
  text-wrap:balance;
}
p{widows:2;orphans:2}
.eyebrow,.hero-kicker{
  letter-spacing:.18em !important;
  line-height:1.45;
}
.eyebrow{margin-bottom:14px !important}

:focus{outline:none}
:focus-visible{
  outline:2px solid var(--gold) !important;
  outline-offset:4px !important;
  box-shadow:none !important;
}
input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:none !important;
  border-color:rgba(173,130,80,.62) !important;
  box-shadow:var(--focus) !important;
}

/* Header / navigation */
.site-header{
  height:calc(var(--header-h) + env(safe-area-inset-top)) !important;
  padding-top:env(safe-area-inset-top);
  background:transparent !important;
  border-bottom:1px solid transparent !important;
  box-shadow:none !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
  transition:background-color .28s ease,border-color .28s ease,box-shadow .28s ease !important;
}
.site-header .container.header-inner{height:var(--header-h) !important;width:min(calc(100% - (2 * var(--gutter))),var(--maxwidth)) !important}
.site-header .brand img{
  width:auto !important;
  max-width:150px;
  max-height:50px !important;
  filter:brightness(0) invert(1) !important;
  transition:filter .28s ease,opacity .28s ease !important;
}
.site-header .brand a{min-width:44px;min-height:44px}
.site-header .main-nav{gap:clamp(18px,2vw,30px) !important}
.site-header .main-nav a{
  color:rgba(255,255,255,.9) !important;
  font-size:.69rem !important;
  line-height:1.35;
  letter-spacing:.145em !important;
  font-weight:500;
  padding:11px 0 !important;
  text-underline-offset:5px;
}
.site-header .main-nav a::after{height:1px !important;bottom:4px !important;background:currentColor !important}
.site-header .main-nav a:hover,.site-header .main-nav a.active,.site-header .main-nav a[aria-current="page"]{color:#fff !important}
.site-header .nav-toggle{
  width:44px;height:44px;display:none;place-items:center;
  color:#fff !important;border-radius:50%;
}
.site-header.scrolled,.page-legal .site-header{
  background:rgba(248,244,237,.94) !important;
  border-color:var(--line-soft) !important;
  -webkit-backdrop-filter:blur(18px) saturate(1.15) !important;
  backdrop-filter:blur(18px) saturate(1.15) !important;
  box-shadow:0 8px 28px rgba(43,39,35,.035) !important;
}
.site-header.scrolled .brand img,.page-legal .site-header .brand img{filter:none !important}
.site-header.scrolled .main-nav a,.page-legal .site-header .main-nav a{color:var(--ink) !important}
.site-header.scrolled .main-nav a:hover,.site-header.scrolled .main-nav a.active,.site-header.scrolled .main-nav a[aria-current="page"],
.page-legal .site-header .main-nav a:hover,.page-legal .site-header .main-nav a.active,.page-legal .site-header .main-nav a[aria-current="page"]{color:var(--gold-hover) !important}
.site-header.scrolled .nav-toggle,.page-legal .site-header .nav-toggle{color:var(--ink) !important}

/* Hero */
.hero{
  width:100% !important;
  margin:0 !important;
  height:100svh !important;
  min-height:620px !important;
  max-height:1080px;
  background:var(--ink);
}
.hero-media,.hero-media img,.hero-shade{height:100% !important}
.hero-media img{will-change:auto !important}
.hero-shade{
  background:linear-gradient(90deg,rgba(23,19,15,.50),rgba(23,19,15,.10) 58%,rgba(23,19,15,.19)) !important;
}
.hero-content{padding-top:var(--header-h) !important}
.hero-kicker{font-size:clamp(.62rem,.59rem + .14vw,.74rem) !important;margin-bottom:18px !important}
.hero-scroll{bottom:calc(22px + env(safe-area-inset-bottom)) !important;min-width:44px;min-height:56px}

/* Main page rhythm */
.about-section,.category-section,.portfolio-section{padding:var(--section-y) 0 !important}
.section-heading{margin-bottom:clamp(34px,4.5vw,52px) !important}
.section-heading h2,.about-copy h2,.contact-copy h2,
.about-image-heading h2{
  font-size:clamp(2.75rem,5vw,4.9rem) !important;
  line-height:1.02 !important;
  letter-spacing:-.038em !important;
}
.about-copy p,.contact-copy p{
  color:var(--muted) !important;
  line-height:1.86 !important;
}

#about .about-grid{
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) !important;
  column-gap:clamp(56px,7vw,96px) !important;
  row-gap:clamp(24px,3vw,34px) !important;
}
#about .about-portrait{
  width:100%;
  height:auto !important;
  aspect-ratio:4/5;
  overflow:hidden;
  background:#ddd2c5;
}
#about .about-portrait img{width:100%;height:100% !important;object-fit:cover}
#about .about-copy{max-width:42rem !important;padding:0 !important}
#about .about-copy p{margin:0 0 1.3rem !important}

.category-section{background:#eee5d9 !important}
.category-grid{gap:10px !important}
.category-card{
  border-radius:var(--radius-sm) !important;
  background:#d7c9ba;
  isolation:isolate;
}
.category-card::after{background:linear-gradient(0deg,rgba(20,16,13,.62),rgba(20,16,13,.06) 62%,transparent) !important}
.category-overlay{padding:clamp(22px,2.8vw,32px) !important}
.category-overlay strong{font-size:clamp(2rem,2.9vw,3rem) !important}
.category-overlay small{margin-top:.5rem !important}
.section-link{margin-top:clamp(28px,3vw,38px) !important}

.cinematic-quote-section{padding:clamp(110px,10vw,150px) 0 !important}
.cinematic-quote-inner{max-width:900px !important}
.cinematic-quote-inner blockquote{font-size:clamp(2.3rem,4.6vw,4.6rem) !important;line-height:1.08 !important}

/* Contact */
.contact-section{
  padding:clamp(94px,8.8vw,132px) 0 !important;
  background:#ddd0bf !important;
}
.contact-grid{gap:clamp(48px,6vw,82px) !important;align-items:center !important}
.contact-backdrop{opacity:.16 !important;filter:saturate(.82) contrast(.98) !important}
.contact-copy h2{font-size:clamp(2.8rem,4.7vw,4.7rem) !important;margin-bottom:24px !important}
.contact-copy p{max-width:48ch !important}
.contact-form-container{
  padding:clamp(28px,3.5vw,46px) !important;
  background:rgba(250,247,242,.88) !important;
  border:1px solid rgba(43,39,35,.09) !important;
  border-radius:var(--radius-md) !important;
  box-shadow:var(--shadow-soft) !important;
  -webkit-backdrop-filter:blur(16px) !important;
  backdrop-filter:blur(16px) !important;
}
.contact-form-container h3{font-size:clamp(1.75rem,2.4vw,2.15rem) !important;margin-bottom:24px !important}
.form-group{margin-bottom:17px !important}
.form-group label{
  display:block;margin-bottom:7px;
  font-size:.68rem !important;line-height:1.4;
  letter-spacing:.12em !important;font-weight:600;
}
.form-group input,.form-group textarea,.form-group select{width:100%;min-height:50px;border:1px solid rgba(43,39,35,.13) !important;border-radius:var(--radius-sm) !important;padding:13px 14px !important;background:rgba(255,255,255,.78) !important;color:var(--ink) !important;}
.form-group textarea{min-height:130px;resize:vertical}
.form-group input::placeholder,.form-group textarea::placeholder{color:#968d84;opacity:1}
.form-actions{display:grid;gap:10px}
.btn-primary,.outline-link{
  letter-spacing:.12em !important;
  line-height:1.2;
}
/* Funktionale Aktion: klarer Button, aber keine App-Pille. */
.btn-primary{
  min-height:48px !important;
  border-radius:4px !important;
  padding:13px 22px !important;
  background:var(--gold) !important;
  border-color:var(--gold) !important;
}
.btn-primary::before{display:none !important}
.btn-primary:hover{background:var(--gold-hover) !important;border-color:var(--gold-hover) !important;transform:none !important}
/* Editorial CTA: Linie + Pfeil statt umrandeter Pill-Button. */
.outline-link{
  min-height:0 !important;
  display:inline-flex !important;
  align-items:center;
  gap:.6rem;
  margin-top:30px;
  padding:7px 0 6px !important;
  border:0 !important;
  border-bottom:1px solid rgba(43,39,35,.68) !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--ink) !important;
  box-shadow:none !important;
}
.outline-link::after{
  content:"→";
  color:var(--gold);
  font-size:.9em;
  transition:transform .22s ease;
}
.outline-link:hover{background:transparent !important;color:var(--gold) !important;border-bottom-color:var(--gold) !important;box-shadow:none !important}
.outline-link:hover::after{transform:translateX(3px)}

/* Shared social buttons */
.contact-links .social-link,.footer-social-icons .social-link{
  width:46px !important;height:46px !important;flex-basis:46px !important;
  border-radius:50% !important;
}

/* Footer */
footer{padding:0 !important;background:var(--cream) !important}
.footer-modern{
  padding:42px 0 26px !important;
  grid-template-columns:minmax(180px,1fr) minmax(320px,1.7fr) minmax(180px,1fr) !important;
  gap:28px !important;
}
.footer-brand img{width:142px !important;margin-bottom:9px !important;}
.footer-brand p,.footer-nav a,.footer-social{font-size:.68rem !important}
.footer-nav{gap:18px 22px !important}
.footer-nav a{padding:7px 0;line-height:1.3}

/* Legal pages */
.page-legal main{padding-top:calc(var(--header-h) + env(safe-area-inset-top))}
.page-legal .impressum-section,.page-legal .datenschutz-section{
  padding:clamp(72px,7vw,106px) 0 clamp(88px,8vw,120px) !important;
  background:var(--paper) !important;
}
.page-legal .impressum-container,.page-legal .datenschutz-container{max-width:900px !important;margin-inline:auto !important}
.page-legal .impressum-title,.page-legal .datenschutz-title{
  font-size:clamp(2.8rem,5.2vw,4.7rem) !important;
  line-height:1.04 !important;
  margin-bottom:clamp(28px,4vw,42px) !important;
}
.page-legal .impressum-content,.page-legal .datenschutz-content{
  padding:clamp(24px,4vw,46px) !important;
  background:var(--surface) !important;
  border:1px solid var(--line-soft) !important;
  border-radius:var(--radius-md) !important;
  box-shadow:var(--shadow-soft) !important;
}
.page-legal .impressum-content h2,.page-legal .datenschutz-content h2{
  font-size:clamp(1.5rem,2.6vw,2rem) !important;
  color:var(--gold-hover) !important;
  margin:1.8rem 0 .75rem !important;
}
.page-legal .impressum-content h2:first-child,.page-legal .datenschutz-content h2:first-child{margin-top:0 !important}
.page-legal .impressum-content p,.page-legal .datenschutz-content p,
.page-legal .datenschutz-content li{line-height:1.78 !important}
.page-legal .impressum-content a,.page-legal .datenschutz-content a{color:var(--gold-hover) !important;text-underline-offset:3px}

/* Gallery page – only normalize shell and chapter controls, keep layout concept intact */
.story-nav{scrollbar-width:none;-webkit-overflow-scrolling:touch}
.story-nav::-webkit-scrollbar{display:none}
.next-chapter{min-height:44px}
.editorial-grid img{background:#ddd3c8}

/* Scroll top */
html body #scrollToTop{
  width:46px !important;height:46px !important;
  right:calc(14px + env(safe-area-inset-right)) !important;
  bottom:calc(14px + env(safe-area-inset-bottom)) !important;
  background:rgba(43,39,35,.9) !important;
  border:1px solid rgba(255,255,255,.22) !important;
  box-shadow:0 10px 30px rgba(43,39,35,.16) !important;
}
html body #scrollToTop:hover{background:var(--gold-hover) !important}

/* Tablet: the old 768px breakpoint let the seven-item nav overflow badly. */
@media(max-width:1040px){
  :root{--header-h:72px}
  .site-header .nav-toggle{display:grid !important}
  .site-header .main-nav{
    position:fixed !important;
    top:calc(var(--header-h) + env(safe-area-inset-top)) !important;
    left:var(--gutter) !important;
    right:var(--gutter) !important;
    width:auto !important;
    max-height:calc(100svh - var(--header-h) - env(safe-area-inset-top) - 20px);
    overflow:auto;
    display:none !important;
    grid-template-columns:1fr !important;
    align-items:stretch !important;
    gap:0 !important;
    padding:10px !important;
    background:rgba(248,244,237,.98) !important;
    border:1px solid var(--line) !important;
    border-radius:var(--radius-md) !important;
    box-shadow:0 22px 60px rgba(43,39,35,.16) !important;
    -webkit-backdrop-filter:blur(18px) !important;
    backdrop-filter:blur(18px) !important;
  }
  .site-header .main-nav.active{display:grid !important}
  .site-header .main-nav a{
    color:var(--ink) !important;
    min-height:46px;
    display:flex;align-items:center;justify-content:center;
    padding:12px 14px !important;
    border-radius:9px;
  }
  .site-header .main-nav a::after{display:none !important}
  .site-header .main-nav a:hover,.site-header .main-nav a.active,.site-header .main-nav a[aria-current="page"]{
    color:var(--gold-hover) !important;
    background:rgba(173,130,80,.08);
  }
  .site-header .brand img{max-height:46px !important}
  .footer-modern{grid-template-columns:1fr !important;text-align:center !important}
  .footer-brand img{margin-inline:auto !important}
  .footer-nav{order:2 !important}
  .footer-social{order:3 !important;justify-items:center !important;text-align:center !important}
  .footer-social-icons{justify-content:center !important}
  #about .about-grid{grid-template-columns:1fr !important;grid-template-areas:"heading" "portrait" "copy" !important;gap:0 !important}
  #about .about-image-heading{grid-area:heading !important;margin-bottom:28px !important}
  #about .about-portrait{grid-area:portrait !important;aspect-ratio:5/6;max-height:720px}
  #about .about-copy{grid-area:copy !important;max-width:46rem !important;margin-top:30px !important}
  .contact-grid{grid-template-columns:1fr !important;gap:46px !important}
  .contact-copy{max-width:680px}
  .contact-backdrop{inset:0 !important;opacity:.08 !important}
}

@media(max-width:768px){
  :root{
    --header-h:66px;
    --gutter:18px;
    --section-y:68px;
    --section-y-compact:60px;
  }
  .site-header .brand img{max-width:126px !important;max-height:44px !important}
  .site-header .main-nav{left:12px !important;right:12px !important}
  .hero{min-height:560px !important;max-height:none}
  .hero-content{justify-content:flex-end !important;padding-bottom:clamp(96px,16vh,132px) !important}
  .hero-kicker{font-size:.61rem !important;max-width:28rem}
  .hero-title span{font-size:clamp(4.35rem,24vw,6.4rem) !important}
  .hero-title small{font-size:clamp(2rem,10vw,2.9rem) !important}
  .hero-scroll{bottom:calc(16px + env(safe-area-inset-bottom)) !important}

  .section-heading h2,.about-copy h2,.contact-copy h2,.about-image-heading h2{
    font-size:clamp(2.45rem,11.2vw,3.45rem) !important;
    line-height:1.03 !important;
  }
  #about .about-image-heading{margin-bottom:22px !important}
  #about .about-portrait{aspect-ratio:4/5;max-height:none}
  #about .about-copy{margin-top:24px !important}
  #about .about-copy p{margin-bottom:1.08rem !important;line-height:1.78 !important}
  .category-grid{gap:9px !important}
  .category-card,.category-card:last-child:nth-child(odd){border-radius:var(--radius-sm) !important;aspect-ratio:4/5 !important}
  .cinematic-quote-section{padding:82px 0 !important}
  .cinematic-quote-inner blockquote{font-size:clamp(2rem,9.6vw,3.05rem) !important}

  .contact-section{padding:74px 0 !important}
  .contact-grid{gap:34px !important}
  .contact-copy h2{font-size:clamp(2.5rem,11vw,3.5rem) !important}
  .contact-form-container{padding:22px !important;border-radius:12px !important}
  .btn-primary,.outline-link{width:auto;min-width:0}

  .footer-modern{padding:34px 0 22px !important;gap:22px !important}
  .footer-nav{display:flex !important;justify-content:center !important;gap:6px 18px !important}
  .footer-nav a{min-height:36px;display:inline-flex;align-items:center}
  .footer-brand p{max-width:26rem;margin-inline:auto}

  .page-legal main{padding-top:calc(var(--header-h) + env(safe-area-inset-top))}
  .page-legal .impressum-section,.page-legal .datenschutz-section{padding:58px 0 72px !important}
  .page-legal .impressum-title,.page-legal .datenschutz-title{font-size:clamp(2.45rem,12vw,3.4rem) !important}
  .page-legal .impressum-content,.page-legal .datenschutz-content{padding:22px !important;border-radius:12px !important}
}

@media(max-width:420px){
  :root{--gutter:16px}
  .contact-form-container{padding:20px !important}
  .footer-nav{gap:4px 14px !important}
  .footer-nav a{font-size:.64rem !important;letter-spacing:.1em !important}
}

@media(hover:hover) and (pointer:fine){
  .category-card:hover img{transform:scale(1.025) !important}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto !important}
  .hero-media .hero-slide,.portfolio-item img,.category-card img{transition:none !important;transform:none !important}
}

/* Mini portal bridge – same navigation system across main site and booking portal */
.site-header .main-nav .nav-minis{white-space:nowrap}
@media(min-width:1041px){
  .site-header .main-nav .nav-minis{padding-inline:2px!important}
}

/* 2026-08-17 – shared editorial finishing layer */
body{font-family:var(--font-body) !important;font-kerning:normal;}
h1,h2,h3,h4,h5,h6,
.hero-title span,.hero-title small,
.category-overlay strong,
.cinematic-quote-inner blockquote{
  font-family:var(--font-display) !important;
}
.hero-title span,.hero-title small{font-weight:400 !important}
.about-copy>p,.contact-copy>p,.section-intro{max-width:60ch}
.contact-form-container,.page-legal .impressum-content,.page-legal .datenschutz-content{
  -webkit-backdrop-filter:blur(14px) saturate(1.05) !important;
  backdrop-filter:blur(14px) saturate(1.05) !important;
}
.form-group input,.form-group textarea,.form-group select{transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;}
.form-group input:hover,.form-group textarea:hover,.form-group select:hover{border-color:rgba(43,39,35,.22) !important}
.form-group input:-webkit-autofill,.form-group textarea:-webkit-autofill{
  -webkit-text-fill-color:var(--ink) !important;
  box-shadow:0 0 0 1000px rgba(255,255,255,.92) inset !important;
}
@media(hover:hover) and (pointer:fine){
  .btn-primary:hover,.outline-link:hover{box-shadow:none !important}
}
@media(max-width:768px){
  .site-header .main-nav{overscroll-behavior:contain}
  .section-heading{margin-bottom:32px !important}
  .contact-form-container{box-shadow:0 12px 34px rgba(43,39,35,.055) !important}
}

/* FINAL5 polish – interaction, mobile input stability and small layout safeguards */
a,button,[role="button"]{touch-action:manipulation}
section[id],div[id][data-anchor]{scroll-margin-top:calc(var(--header-h) + 14px)}
.btn-primary:disabled,.outline-link[aria-disabled="true"],button:disabled{
  cursor:not-allowed !important;
  opacity:.58;
  box-shadow:none !important;
}
form[aria-busy="true"]{cursor:progress}
form[aria-busy="true"] input,form[aria-busy="true"] textarea,form[aria-busy="true"] select{cursor:progress}
.form-group [aria-invalid="true"]{border-color:rgba(165,75,69,.72) !important}
.footer-brand img{aspect-ratio:1200/486;}
@media(max-width:768px){
  .form-group input,.form-group textarea,.form-group select{font-size:16px !important}
}

/* FINAL18 – targeted device fixes without changing the established layout */
.page-legal .datenschutz-title{
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:normal;
  hyphens:auto;
}

/* Smartphone landscape > 768 px: mirror the Mini-Shootings hero exactly.
   Narrow landscape (<=768 px), portrait, tablet and desktop keep their existing rules. */
@media (orientation:landscape) and (min-width:769px) and (max-width:932px) and (max-height:520px){
  body.public-home .hero{
    height:100svh !important;
    min-height:600px !important;
    max-height:none !important;
  }
  body.public-home .hero-content{
    justify-content:center !important;
    padding-top:var(--header-h) !important;
    padding-bottom:0 !important;
  }
  body.public-home .hero-kicker{
    margin-bottom:20px !important;
    font-size:.78rem !important;
    line-height:normal !important;
    letter-spacing:.24em !important;
  }
  body.public-home .hero-title span{
    font-size:clamp(5rem,12vw,10.5rem) !important;
    line-height:.72 !important;
  }
  body.public-home .hero-title small{
    font-size:clamp(2rem,5vw,4.5rem) !important;
    line-height:1 !important;
    margin-top:0 !important;
  }
  body.public-home .hero-scroll{display:grid !important}
}

/* web(4) To-do 1 – dezente 2026-Interaktionen, ohne Layout-Umbau */

/* News: direkt unter dem Hero, über die volle Breite, als ruhiger Ticker. */
.site-news.site-news-ticker{
  position:relative;
  width:100%;
  overflow:hidden;
  background:rgba(248,244,237,.96);
  border-top:1px solid rgba(43,39,35,.08);
  border-bottom:1px solid rgba(43,39,35,.10);
}
.site-news.site-news-ticker[hidden]{display:none!important}
.site-news-viewport{width:100%;overflow:hidden}
.site-news-track{
  --news-duration:26s;
  display:flex;
  width:max-content;
  min-width:200%;
  align-items:center;
  animation:siteNewsTicker var(--news-duration) linear infinite;
  will-change:transform;
}
.site-news-group{
  flex:0 0 auto;
  min-width:100vw;
  min-height:46px;
  padding:10px clamp(24px,5vw,72px);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(10px,1.6vw,20px);
  white-space:nowrap;
}
.site-news-title{
  margin:0!important;
  flex:none;
  font-family:var(--font-body)!important;
  color:var(--gold)!important;
  font-size:.65rem!important;
  line-height:1.2!important;
  font-weight:600!important;
  letter-spacing:.18em!important;
  text-transform:uppercase;
}
.site-news-dot{color:rgba(43,39,35,.34);font-size:.72rem}
.site-news-text{
  margin:0!important;
  max-width:none!important;
  color:var(--ink)!important;
  font-size:.78rem!important;
  line-height:1.35!important;
  letter-spacing:.025em;
  white-space:nowrap!important;
}
@keyframes siteNewsTicker{to{transform:translate3d(-50%,0,0)}}

/* Scroll-Tiefe: nur wenige Pixel, Seitenverhältnis und Zuschnitt bleiben unverändert. */
.editorial-scroll-image{
  --editorial-scroll-y:0px;
  transform:translate3d(0,var(--editorial-scroll-y),0) scale(1.025)!important;
  transform-origin:center center;
  will-change:transform;
}
.category-card:hover .editorial-scroll-image{
  transform:translate3d(0,var(--editorial-scroll-y),0) scale(1.045)!important;
}
#storyRoot .editorial-scroll-image{transition:transform .14s linear!important}
#categoryCards .editorial-scroll-image{transition:transform .18s linear!important}
.story-card:hover .editorial-scroll-image{
  transform:translate3d(0,var(--editorial-scroll-y),0) scale(1.04)!important;
}

/* Kontextabhängiger Kontakt-CTA: sichtbar nur zwischen Hero und Kontaktbereich. */
.dynamic-contact-cta{
  position:fixed;
  z-index:1060;
  left:50%;
  bottom:calc(18px + env(safe-area-inset-bottom));
  display:flex;
  align-items:center;
  gap:14px;
  max-width:min(calc(100vw - 32px),420px);
  padding:8px 8px 8px 14px;
  color:var(--ink);
  background:rgba(248,244,237,.72);
  border:1px solid rgba(43,39,35,.10);
  border-radius:7px;
  box-shadow:0 10px 28px rgba(43,39,35,.075);
  -webkit-backdrop-filter:blur(18px) saturate(1.08);
  backdrop-filter:blur(18px) saturate(1.08);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate3d(-50%,14px,0);
  transition:opacity .3s ease,transform .3s ease,visibility .3s ease;
}
.dynamic-contact-cta.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate3d(-50%,0,0);
}
.dynamic-contact-cta-copy{display:flex;align-items:center;gap:12px;min-width:0}
.dynamic-contact-cta-copy>span{display:none}
.dynamic-contact-cta a{
  color:var(--ink);
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.64rem;
  font-weight:600;
  white-space:nowrap;
}
.dynamic-contact-cta a span{color:var(--gold);margin-left:4px}
.dynamic-contact-cta-close{
  width:32px;
  height:32px;
  flex:0 0 32px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:4px;
  background:rgba(43,39,35,.045);
  color:var(--muted);
  font:300 1.15rem/1 var(--font-body);
  cursor:pointer;
}
.dynamic-contact-cta-close:hover{background:rgba(43,39,35,.09);color:var(--ink)}

@media(max-width:768px){
  #storyRoot .editorial-scroll-image{transform:none!important;will-change:auto}
  .site-news-group{min-height:44px;padding:9px 20px;gap:10px}
  .site-news-title{font-size:.6rem!important}
  .site-news-text{font-size:.73rem!important}
  .dynamic-contact-cta{bottom:calc(12px + env(safe-area-inset-bottom));padding:8px 8px 8px 14px;gap:9px}
  .dynamic-contact-cta-copy{gap:8px}
  .dynamic-contact-cta-copy>span{display:none}
  .dynamic-contact-cta a{font-size:.62rem;letter-spacing:.11em}
  .dynamic-contact-cta-close{width:30px;height:30px;flex-basis:30px}
}

@media(prefers-reduced-motion:reduce){
  .site-news-track{animation:none!important;min-width:100%;width:100%;will-change:auto}
  .site-news-group{min-width:100%;white-space:normal;text-align:center;flex-wrap:wrap}
  .site-news-group[data-news-clone]{display:none!important}
  .editorial-scroll-image{transform:none!important;will-change:auto}
  .dynamic-contact-cta{transition:none!important}
}

/* 2026-09-16 – Safari/iOS: keep the large Hero wordmark from clipping at the baseline.
   Extra paint room is cancelled with a negative margin, so the existing Hero spacing stays unchanged. */
.hero-title > span{
  padding-bottom:.08em;
  margin-bottom:-.08em;
  overflow:visible;
}
