/* ============================================
   DESIREE SCHNEIDER - Brand CSS
   ============================================ */

:root {
  --sage:         #4A5958;
  --sage-deep:    #2A3432;
  --sage-mid:     #3B4746;
  --terra:        #D3967D;
  --terra-muted:  #C48A6B;
  --cream:        #EEE9E5;
  --cream-soft:   #F7F4F1;
  --ink:          #101115;
  --ink-soft:     #3A3D42;
  --pink:         #C9748B;
  --pink-light:   #DC899E;
  --rose:         #F6E9ED;
  --rose-soft:    #FBF4F6;
  --white:        #FFFFFF;
  --serif:        'Playfair Display', Georgia, serif;
  --sans:         'Montserrat', -apple-system, Segoe UI, sans-serif;
  --maxw:         1200px;
  --pad:          clamp(20px, 5.5vw, 80px);
  --r:            10px;
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html { scroll-behavior: smooth; }

body {
  font-family: var(--sans);
  color: var(--ink);
  background: var(--cream);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  font-size: 16px;
}

img { max-width: 100%; display: block; }
a   { color: inherit; text-decoration: none; }

.wrap {
  display: block;
  max-width: var(--maxw);
  margin: 0 auto;
  padding-left: var(--pad);
  padding-right: var(--pad);
}

h1, h2, h3, h4 {
  font-family: var(--serif);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: .008em;
}

.eyebrow {
  font-family: var(--sans);
  font-weight: 600;
  font-size: .68rem;
  letter-spacing: .3em;
  text-transform: uppercase;
}

.lead {
  font-size: clamp(1rem, 1.4vw, 1.12rem);
  line-height: 1.8;
  color: var(--ink-soft);
}

em { font-style: italic; }

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sans);
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: 40px;
  transition: all .25s ease;
  cursor: pointer;
  border: 1.5px solid transparent;
  white-space: nowrap;
  line-height: 1;
}
.btn-terra            { background: var(--terra); color: var(--ink); border-color: var(--terra); }
.btn-terra:hover      { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.btn-outline-cream    { border-color: rgba(238,233,229,.6); color: var(--cream); }
.btn-outline-cream:hover { background: var(--cream); color: var(--ink); }
.btn-outline-terra    { border-color: var(--terra); color: var(--terra); }
.btn-outline-terra:hover { background: var(--terra); color: var(--ink); }
.btn-pink             { background: var(--pink); color: var(--white); border-color: var(--pink); }
.btn-pink:hover       { background: var(--pink-light); color: var(--ink); }
.btn-outline-pink     { border-color: var(--pink); color: var(--pink); }
.btn-outline-pink:hover { background: var(--pink); color: var(--white); }

/* Reveal-Animation */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity .72s ease, transform .72s ease; }
.reveal.in { opacity: 1; transform: none; }
.reveal.d1 { transition-delay: .1s; }
.reveal.d2 { transition-delay: .2s; }
.reveal.d3 { transition-delay: .3s; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity:1; transform:none; transition:none; } }

/* Mobile Nav global hidden (Bug-Fix) */
.mobile-nav { display: none; }

@media (max-width: 640px) {
  :root { --pad: 20px; }
}
/* ============================================
   HEADER + NAVIGATION
   ============================================ */

header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--sage-deep);
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.nav-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-height: 74px;
  flex-wrap: nowrap;
  padding-left: var(--pad);
  padding-right: var(--pad);
  max-width: var(--maxw);
  margin: 0 auto;
}

/* Logo */
.nav-logo img {
  height: 58px;
  width: auto;
  display: block;
  mix-blend-mode: screen;
}

/* Desktop Menu */
.nav-menu-wrap {
  flex: 1;
  display: flex;
  justify-content: center;
}

.menu {
  display: flex;
  align-items: center;
  list-style: none;
  gap: 0;
  margin: 0;
  padding: 0;
  flex-wrap: nowrap;
}

.menu > li {
  position: relative;
  display: flex;
  align-items: center;
}

.menu > li > a {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--cream);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 10px 13px;
  transition: .2s;
  white-space: nowrap;
  line-height: 1;
}

.menu > li > a:hover,
.menu > li > a.active { color: var(--terra); }

.chevron {
  width: 8px;
  height: 8px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  transition: transform .2s;
  flex-shrink: 0;
}

.has-sub:hover .chevron { transform: rotate(180deg); }

/* Dropdowns */
.submenu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 220px;
  background: var(--cream);
  border-radius: var(--r);
  box-shadow: 0 18px 44px rgba(16,17,21,.24);
  padding: 8px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: all .2s;
  list-style: none;
}

.has-sub:hover .submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.submenu li a {
  display: block;
  color: var(--ink-soft);
  font-size: .82rem;
  letter-spacing: .04em;
  padding: 11px 20px;
  transition: .18s;
}

.submenu li a:hover { background: var(--terra); color: var(--ink); }

.sub-label {
  font-size: .6rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--terra);
  padding: 12px 20px 6px;
  font-weight: 600;
}

/* CTA Pills */
.nav-ctas {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.btn-nav-m {
  background: var(--pink-light);
  color: var(--white);
  border-color: var(--pink-light);
  font-size: .67rem;
  padding: 11px 20px;
}
.btn-nav-m:hover { background: var(--pink); color: var(--white); }

.btn-nav-blog {
  background: var(--cream);
  color: var(--sage-deep);
  border-color: var(--cream);
  font-size: .67rem;
  padding: 11px 20px;
}
.btn-nav-blog:hover { background: var(--sage-deep); color: var(--cream); border-color: var(--sage-deep); }

.btn-nav-k {
  background: var(--terra);
  color: var(--ink);
  border-color: var(--terra);
  font-size: .67rem;
  padding: 11px 20px;
}
.btn-nav-k:hover { background: var(--ink); color: var(--cream); }

/* Mentoring Submenu (rechts ausgerichtet) */
.mentoring-sub { left: auto; right: 0; }

/* Burger */
.burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 10px;
  flex-shrink: 0;
}

.burger span {
  width: 24px;
  height: 1.5px;
  background: var(--cream);
  transition: .25s;
  display: block;
}

.burger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.burger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.burger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* ============================================
   MOBILE NAVIGATION
   ============================================ */
@media (max-width: 960px) {
  .nav-menu-wrap,
  .nav-ctas { display: none; }

  .burger { display: flex; }

  .mobile-nav {
    position: fixed;
    inset: 74px 0 0 0;
    background: var(--sage-deep);
    overflow-y: auto;
    z-index: 99;
    flex-direction: column;
    padding: 16px 0 40px;
  }

  .mobile-nav.open { display: flex; }

  .mobile-nav .menu {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .mobile-nav .menu > li {
    flex-direction: column;
    align-items: stretch;
  }

  .mobile-nav .menu > li > a {
    padding: 15px var(--pad);
    font-size: .85rem;
    border-bottom: 1px solid rgba(255,255,255,.04);
  }

  .mobile-nav .submenu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    background: rgba(0,0,0,.22);
    border-radius: 0;
    padding: 4px 0;
    display: none;
  }

  .mobile-nav .has-sub.open-sub .submenu { display: block; }

  .mobile-nav .submenu li a {
    color: rgba(238,233,229,.8);
    padding-left: calc(var(--pad) + 18px);
  }

  .mobile-nav .sub-label  { display: none; }
  .mobile-nav .chevron    { display: none; }

  .mobile-nav-ctas {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 24px var(--pad) 0;
    margin-top: 12px;
    border-top: 1px solid rgba(255,255,255,.07);
  }

  .mobile-nav-ctas .btn {
    text-align: center;
    justify-content: center;
    padding: 16px;
  }
}

@media (max-width: 1280px) and (min-width: 961px) {
  .menu > li > a         { padding: 8px 8px; font-size: .63rem; letter-spacing: .04em; }
  .btn-nav-m, .btn-nav-k { padding: 9px 14px; font-size: .62rem; letter-spacing: .08em; }
}

/* ============================================
   FOOTER
   ============================================ */

footer {
  background: var(--sage-deep);
  border-top: 1px solid rgba(211,150,125,.2);
  padding: 38px 0;
}

.foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.foot-logo img {
  height: 42px;
  width: auto;
  opacity: .95;
  mix-blend-mode: screen;
}

.foot-links {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}

.foot-links a {
  font-size: .76rem;
  font-weight: 500;
  letter-spacing: .08em;
  color: rgba(238,233,229,.6);
  transition: .2s;
}

.foot-links a:hover { color: var(--terra); }

.foot-copy {
  font-size: .7rem;
  color: rgba(238,233,229,.3);
  width: 100%;
  text-align: center;
  padding-top: 16px;
  border-top: 1px solid rgba(238,233,229,.07);
  margin-top: 6px;
}

/* Astra-Overrides: eigene Header/Footer durchsetzen */
.ast-header-break-point .ast-mobile-header-wrap,
.ast-above-header-section,
.ast-main-header-wrap,
.ast-footer-area,
#ast-fixed-footer,
.footer-widget-area {
  display: none !important;
}

#ds-content {
  min-height: 60vh;
}

@media (max-width: 640px) {
  .foot {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .foot-links { justify-content: center; }
}
/* ============================================
   ASTRA OVERRIDES - alles supprimieren
   ============================================ */

/* Astras eigene Header-Strukturen */
#masthead,
.ast-above-header-section,
.ast-primary-header-bar,
.main-header-bar,
.ast-below-header-section,
.ast-desktop-header,
.ast-builder-header-element,
.ast-mobile-header-wrap,
#ast-mobile-header,
.ast-mobile-menu-trigger,
.ast-masthead-custom-menu-items,
/* Astra Page Banner */
.ast-archive-description,
.page-header.ast-header-without-markup,
.site-main .ast-breadcrumbs-wrapper,
.entry-header,
.ast-single-post-order .entry-header,
/* Astra Footer */
#ast-fixed-footer,
#colophon,
.footer-widget-area,
.ast-above-footer-section,
.ast-footer-section,
.footer-bar-wrap,
.ast-small-footer {
  display: none !important;
}

/* Astra Content-Padding zuruecksetzen */
.ast-no-sidebar #primary,
#primary,
.site-content,
#content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* Astra .site Wrapper neutralisieren */
.site {
  display: block;
}

/* Kein Astra-Padding oben durch Sticky-Header */
.admin-bar .site-content {
  padding-top: 0 !important;
}

/* ============================================
   LOGO FIX - nie verzerren
   ============================================ */

.nav-logo img {
  height: 58px !important;
  width: auto !important;
  max-width: 220px;
  object-fit: contain;
  object-position: left center;
  display: block;
  mix-blend-mode: screen;
  flex-shrink: 0;
}

.foot-logo img {
  height: 42px !important;
  width: auto !important;
  max-width: 160px;
  object-fit: contain;
  object-position: left center;
  opacity: .95;
  mix-blend-mode: screen;
}
/* Logo - nie verzerren (Klasse auf img-Tag) */
.ds-logo-img {
  height: 58px !important;
  width: auto !important;
  max-width: 220px;
  object-fit: contain;
  object-position: left center;
  display: block;
  mix-blend-mode: screen;
  flex-shrink: 0;
}
/* ── SOCIALS ── */
.socials{display:flex;gap:12px;flex-wrap:wrap}
.socials a{width:44px;height:44px;border:1.5px solid currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .22s;opacity:.85}
.socials a:hover{opacity:1;background:currentColor}
.socials.light a:hover svg *{stroke:var(--sage-deep)}
.socials svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* ── LEISTUNGSSEITEN (shared) ── */
.em-hero{background:var(--sage-deep);padding:clamp(60px,8vw,110px) 0;position:relative;overflow:hidden}
.em-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 100% at -10% 50%,rgba(211,150,125,.14) 0%,transparent 55%);pointer-events:none}
.em-hero-inner{position:relative;z-index:1}
.em-hero .eyebrow{color:var(--terra);margin-bottom:20px;display:flex;align-items:center;gap:14px}
.em-hero .eyebrow::after{content:"";flex:0 0 40px;height:1px;background:var(--terra);opacity:.55}
.em-hero h1{font-size:clamp(2.2rem,5vw,4.4rem);color:var(--cream);max-width:820px;margin-bottom:28px;line-height:1.08}
.em-hero h1 em{color:var(--terra)}
.em-hero .sub{font-size:clamp(1rem,1.5vw,1.12rem);color:rgba(238,233,229,.7);max-width:600px;line-height:1.75;margin-bottom:40px}
.photo-grid-sec{background:var(--terra);padding:clamp(44px,6vw,72px) 0}
.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.photo-ph{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.5);font-family:var(--sans);border:1px solid rgba(255,255,255,.12)}
.photo-real{border-radius:var(--r);aspect-ratio:4/3;overflow:hidden}
.photo-real img{width:100%;height:100%;object-fit:cover;display:block}
.em-statement{background:var(--sage);padding:clamp(60px,8vw,100px) 0}
.em-stmt-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,80px);align-items:center}
.em-stmt-left h2{font-size:clamp(1.9rem,3.5vw,3.1rem);color:var(--cream);margin-bottom:20px;line-height:1.1}
.em-stmt-left h2 em{color:var(--terra)}
.em-stmt-right p{font-size:.97rem;color:rgba(238,233,229,.78);line-height:1.82;margin-bottom:18px}
.em-desc-sec{background:var(--cream-soft);padding:clamp(68px,9vw,120px) 0}
.em-desc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,84px);align-items:start}
.em-desc-sec h2{font-size:clamp(1.7rem,3vw,2.65rem);color:var(--ink);margin-bottom:18px;line-height:1.15}
.em-desc-sec h2 em{color:var(--terra)}
.em-desc-sec p{font-size:.97rem;color:var(--ink-soft);line-height:1.8;margin-bottom:16px}
.em-desc-sec .link-line{font-size:.66rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--terra);margin-bottom:16px;display:block}
.topics-sec{background:var(--sage-deep);padding:clamp(48px,6vw,72px) 0;text-align:center}
.topics-sec h3{font-size:clamp(1rem,1.5vw,1.25rem);color:rgba(238,233,229,.55);font-family:var(--sans);font-weight:400;letter-spacing:.08em;margin-bottom:20px}
.topics-flow{font-family:var(--serif);font-size:clamp(1rem,1.6vw,1.3rem);color:rgba(238,233,229,.8);line-height:2;max-width:780px;margin:0 auto}
.topics-flow em{color:var(--terra);font-style:normal}
.em-cta{background:var(--terra);padding:clamp(60px,8vw,100px) 0}
.em-cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,72px);align-items:center}
.em-cta h2{font-size:clamp(1.8rem,3.2vw,2.8rem);color:var(--ink);margin-bottom:20px;line-height:1.15}
.em-cta h2 em{font-style:italic;color:var(--sage-deep)}
.em-cta p{font-size:.97rem;color:rgba(16,17,21,.72);line-height:1.78;margin-bottom:26px}
.em-cta-arch{border-radius:clamp(14px,2.5vw,36px) clamp(14px,2.5vw,36px) var(--r) var(--r);aspect-ratio:4/5;background:rgba(16,17,21,.2);display:flex;align-items:flex-end;justify-content:center;overflow:hidden;position:relative}
.em-cta-arch .wm{position:absolute;top:24px;left:50%;transform:translateX(-50%);width:46px;opacity:.3;mix-blend-mode:screen}
.em-cta-arch .plabel{color:rgba(16,17,21,.55);font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;padding:20px;text-align:center;line-height:1.5}
@media(max-width:960px){.em-stmt-grid,.em-desc-grid,.em-cta-grid{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(2,1fr)}.em-cta-arch{aspect-ratio:3/2}}
@media(max-width:640px){.photo-grid{grid-template-columns:1fr 1fr}}

/* ── REFERENZEN ── */
.ref-hero{background:var(--sage-deep);padding:clamp(56px,7vw,96px) 0;position:relative;overflow:hidden}
.ref-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 110% 50%,rgba(211,150,125,.14) 0%,transparent 55%);pointer-events:none}
.ref-hero-inner{position:relative;z-index:1}
.ref-hero .eyebrow{color:var(--terra);margin-bottom:20px;display:flex;align-items:center;gap:14px}
.ref-hero .eyebrow::after{content:"";flex:0 0 40px;height:1px;background:var(--terra);opacity:.55}
.ref-hero h1{font-size:clamp(2rem,4.5vw,3.8rem);color:var(--cream);margin-bottom:16px;line-height:1.1}
.ref-hero h1 em{color:var(--terra)}
.ref-hero .sub{font-size:1rem;color:rgba(238,233,229,.6);max-width:520px;line-height:1.7}
.ref-photos{background:var(--terra);padding:clamp(40px,5vw,64px) 0}
.ref-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.ref-photo-ph{border-radius:var(--r);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.45);border:1px solid rgba(255,255,255,.1)}
.testi-sec{padding:clamp(60px,8vw,100px) 0}
.testi-inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,64px);align-items:center;max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.testi-inner.flip .testi-img{order:2}.testi-inner.flip .testi-text{order:1}
.testi-sec-sage{background:var(--sage-deep)}
.testi-sec-terra{background:var(--terra)}
.testi-sec-sage blockquote{color:var(--cream);border-left-color:rgba(211,150,125,.5)}
.testi-sec-sage .testi-name{color:var(--cream)}
.testi-sec-sage .testi-role{color:rgba(238,233,229,.6)}
.testi-sec-terra blockquote{color:var(--ink);border-left-color:rgba(16,17,21,.25)}
.testi-sec-terra .testi-name{color:var(--ink)}
.testi-sec-terra .testi-role{color:rgba(16,17,21,.65)}
.testi-sec-terra .testi-tag{background:var(--sage-deep);color:var(--cream);border-color:transparent}
.testi-img-ph{border-radius:clamp(12px,2vw,28px) clamp(12px,2vw,28px) var(--r) var(--r);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.1)}
.testi-img-wrap{border-radius:clamp(12px,2vw,28px) clamp(12px,2vw,28px) var(--r) var(--r);aspect-ratio:4/3;overflow:hidden;display:block}
.testi-img-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.ref-photo-real{border-radius:var(--r);aspect-ratio:4/3;overflow:hidden}
.ref-photo-real img{width:100%;height:100%;object-fit:cover;display:block}
blockquote{font-family:var(--serif);font-size:clamp(1rem,1.6vw,1.25rem);font-style:italic;color:var(--ink);line-height:1.7;margin-bottom:20px;padding-left:20px;border-left:3px solid rgba(211,150,125,.6)}
blockquote::before{display:none}
.testi-name{font-family:var(--sans);font-weight:600;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin-bottom:4px}
.testi-role{font-size:.82rem;color:var(--ink-soft)}
.testi-tag{display:inline-block;background:var(--terra);color:var(--ink);font-size:.6rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:5px 14px;border-radius:30px;margin-bottom:16px;opacity:.85}
.ref-cta{background:var(--sage);padding:clamp(60px,8vw,100px) 0;text-align:center}
.ref-cta h2{font-size:clamp(1.8rem,3vw,2.8rem);color:var(--cream);margin-bottom:16px}
.ref-cta h2 em{color:var(--terra)}
.ref-cta p{color:rgba(238,233,229,.7);max-width:540px;margin:0 auto 36px;line-height:1.75}
@media(max-width:960px){.ref-photo-grid{grid-template-columns:repeat(2,1fr)}.testi,.testi.flip{grid-template-columns:1fr}.testi.flip .testi-img,.testi.flip .testi-text{order:unset}}

/* ── REF-CTA-CONTACT (shared: Referenzen Video + Showreel) ── */
.ref-cta-contact{background:var(--sage-deep);padding:clamp(60px,8vw,100px) 0}
.ref-cta-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,72px);align-items:center}
.ref-cta-contact h2{font-size:clamp(2.4rem,5vw,4rem);color:var(--cream);margin-bottom:28px;line-height:1.05}
.ref-cta-contact h2 em{color:var(--terra);font-style:normal}
.ref-cta-contact-right{display:flex;flex-direction:column;gap:0}
.ref-contact-arch{border-radius:clamp(12px,2vw,24px) clamp(12px,2vw,24px) var(--r) var(--r);aspect-ratio:4/3;background:rgba(74,89,88,.4);display:flex;align-items:flex-end;justify-content:center;overflow:hidden;position:relative;margin-bottom:24px}
.ref-contact-arch .plabel{color:rgba(238,233,229,.5);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;padding:18px;text-align:center}
.ref-contact-row{display:flex;align-items:baseline;gap:24px;padding:14px 0;border-bottom:1px solid rgba(238,233,229,.1)}
.ref-contact-label{font-family:var(--sans);font-size:.62rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--terra);min-width:64px;flex-shrink:0}
.ref-contact-val{font-size:.97rem;color:rgba(238,233,229,.85)}
/* ── SHOWREEL ── */
.showreel-sec{background:var(--terra);padding:clamp(44px,6vw,72px) 0}
.showreel-sec+.showreel-sec{border-top:1px solid rgba(16,17,21,.08)}
.showreel-eyebrow{font-size:.62rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--sage-deep);opacity:.7;display:block;margin-bottom:6px}
.showreel-title{font-size:clamp(.95rem,1.6vw,1.3rem);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-bottom:22px}
.showreel-video-wrap{max-width:720px;margin:0 auto;position:relative}
.showreel-video{aspect-ratio:16/9;background:rgba(16,17,21,.55);border-radius:12px;overflow:hidden;position:relative}
.showreel-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.showreel-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;cursor:pointer}
.showreel-ph svg{width:56px;height:56px;fill:rgba(255,255,255,.25);transition:.2s}
.showreel-ph:hover svg{fill:rgba(255,255,255,.5)}
.showreel-ph-label{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.35);font-family:var(--sans)}
.showreel-caption{position:absolute;bottom:16px;left:16px;display:flex;flex-direction:column;gap:5px;pointer-events:none}
.showreel-caption .sr-city{font-size:.68rem;color:rgba(255,255,255,.65);font-family:var(--sans);letter-spacing:.1em}
.showreel-caption .sr-event{background:var(--ink);color:var(--cream);font-size:.7rem;font-weight:600;padding:5px 13px;border-radius:5px;display:inline-block;letter-spacing:.04em}
@media(max-width:960px){.ref-cta-contact-grid{grid-template-columns:1fr}}

/* ── SHOWREEL BG MODIFIER ── */
.showreel-sec.sr-dark{background:var(--sage-deep)}
.showreel-sec.sr-sage{background:var(--sage)}
.showreel-sec.sr-dark .showreel-eyebrow,.showreel-sec.sr-sage .showreel-eyebrow{color:var(--terra);opacity:1}
.showreel-sec.sr-dark .showreel-title,.showreel-sec.sr-sage .showreel-title{color:var(--cream)}
.showreel-sec.sr-dark .sr-event,.showreel-sec.sr-sage .sr-event{background:var(--terra);color:var(--ink)}
.showreel-sec.sr-dark .showreel-ph svg,.showreel-sec.sr-sage .showreel-ph svg{fill:rgba(238,233,229,.2)}
.showreel-sec.sr-dark .showreel-ph-label,.showreel-sec.sr-sage .showreel-ph-label{color:rgba(238,233,229,.3)}
/* ── KONTAKT-CTA ── */
.kontakt-cta{background:var(--sage-deep);padding:clamp(68px,9vw,120px) 0}
.kontakt-cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,96px);align-items:center}
.kontakt-cta h2{font-family:var(--serif);font-size:clamp(2.4rem,4.5vw,3.8rem);color:var(--cream);line-height:1.1;margin-bottom:0}
.kontakt-cta h2 em{color:var(--terra);font-style:italic;display:block}
.kontakt-cta-rule{width:40px;height:2px;background:var(--terra);margin:22px 0;border:0}
.kontakt-cta p{font-size:1rem;color:rgba(238,233,229,.82);line-height:1.75;margin-bottom:8px}
.kontakt-cta .sub-text{font-size:.9rem;color:rgba(238,233,229,.5);margin-bottom:28px}
.kontakt-card{display:flex;flex-direction:column}
.kontakt-card-img{aspect-ratio:4/3;background:rgba(255,255,255,.05);border-radius:clamp(16px,2.5vw,32px);display:flex;align-items:flex-end;justify-content:center;overflow:hidden;position:relative;margin-bottom:22px;border:1px solid rgba(255,255,255,.06)}
.kontakt-card-img .plabel{color:rgba(238,233,229,.35);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;padding:18px;text-align:center;line-height:1.5}
.kontakt-card-img .wm{position:absolute;top:20px;left:50%;transform:translateX(-50%);width:38px;opacity:.2;mix-blend-mode:screen}
.kontakt-card-name{font-family:var(--serif);font-size:clamp(1.4rem,2.2vw,1.8rem);color:var(--terra);margin-bottom:4px}
.kontakt-card-title{font-size:.88rem;color:rgba(238,233,229,.6);margin-bottom:18px}
.kontakt-card-divider{height:1px;background:rgba(238,233,229,.12);margin-bottom:18px}
.kontakt-row{display:flex;align-items:baseline;gap:24px;padding:13px 0;border-bottom:1px solid rgba(238,233,229,.08)}
.kontakt-row-label{font-size:.62rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--terra);min-width:72px;flex-shrink:0}
.kontakt-row-val{font-size:.97rem;color:rgba(238,233,229,.85)}
@media(max-width:960px){.kontakt-cta-grid{grid-template-columns:1fr}}

/* showreel white bg */
.showreel-sec.sr-white{background:var(--white)}
.showreel-sec.sr-white .showreel-eyebrow{color:var(--terra);opacity:1}
.showreel-sec.sr-white .showreel-title{color:var(--ink)}
.showreel-sec.sr-white .showreel-video{background:rgba(16,17,21,.6)}
.showreel-sec.sr-white+.showreel-sec{border-top:0}

/* ── LEGAL PAGES ── */
.legal-page{background:var(--sage-deep);padding:clamp(52px,7vw,88px) 0;min-height:80vh}
.legal-back{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(238,233,229,.6);margin-bottom:28px;transition:.2s;text-decoration:none}
.legal-back:hover{color:var(--terra)}
.legal-back svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.legal-card{background:var(--cream-soft);border-radius:clamp(14px,2vw,24px);padding:clamp(36px,5vw,64px);max-width:820px;margin:0 auto}
.legal-eyebrow{color:var(--terra);font-size:.66rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;display:block;margin-bottom:28px}
.legal-card h2{font-family:var(--serif);font-size:clamp(1.1rem,1.8vw,1.4rem);color:var(--ink);margin:28px 0 8px;line-height:1.3}
.legal-card h2:first-of-type{margin-top:0}
.legal-card h3{font-family:var(--sans);font-size:.9rem;font-weight:600;color:var(--ink);margin:20px 0 6px}
.legal-card p{font-size:.93rem;color:var(--ink-soft);line-height:1.8;margin-bottom:12px}
.legal-card a{color:var(--terra);text-decoration:underline;text-underline-offset:3px}
.legal-card ul{padding-left:20px;margin-bottom:12px}
.legal-card ul li{font-size:.93rem;color:var(--ink-soft);line-height:1.8;margin-bottom:4px}
.legal-card hr{border:0;border-top:1px solid rgba(74,89,88,.15);margin:28px 0}
.legal-toc{background:rgba(74,89,88,.08);border-radius:10px;padding:20px 24px;margin-bottom:32px}
.legal-toc ol{padding-left:18px;margin:0}
.legal-toc li{font-size:.88rem;color:var(--ink-soft);line-height:2;margin:0}
.legal-toc a{color:var(--ink-soft);text-decoration:none;transition:.15s}
.legal-toc a:hover{color:var(--terra)}


/* ── ASTRA BLUE OVERRIDES ──────────────────────────── */
/* Scroll-to-top button: Astra default blue → terra */
#ast-scroll-top {
  background-color: var(--terra) !important;
  border-radius: 50%;
  opacity: 0.88;
  transition: background-color .2s, opacity .2s;
}
#ast-scroll-top:hover {
  background-color: var(--sage-deep) !important;
  opacity: 1;
}

/* Generic link hover/focus: Astra blue → terra */
a:hover:not([class]),
a:focus:not([class]) {
  color: var(--terra);
}
a:focus {
  outline-color: var(--terra);
}
.arch-portrait,.arch-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;display:block}

/* ════════════════════════════════════════

/* MOBILE FIXES */

/* Footer logo */
.foot-logo img { height: 84px !important; max-width: 320px; }

/* Nav Admin-Bar */
.admin-bar header { top: 32px; }
@media (max-width: 782px) { .admin-bar header { top: 46px; } }

/* Mobile Hero Padding */
@media (max-width: 480px) {
  .wrap { padding-left: 20px !important; padding-right: 20px !important; }
  .hero-h1 .statement { font-size: clamp(1.9rem, 9.5vw, 2.5rem); }
  .hero-h1 .intro { font-size: clamp(1.2rem, 5.5vw, 1.6rem); }
}

/* Testimonials Mobile - Bild oben, Text unten */
@media (max-width: 720px) {
  .testi-inner, .testi-inner.flip { display: flex !important; flex-direction: column !important; grid-template-columns: unset !important; gap: 0 !important; }
  .testi-inner .testi-img, .testi-inner.flip .testi-img { order: -1 !important; width: 100% !important; aspect-ratio: 4/3 !important; }
  .testi-inner .testi-img-wrap, .testi-inner.flip .testi-img-wrap { width: 100% !important; height: 100% !important; }
  .testi-inner .testi-text, .testi-inner.flip .testi-text { order: 1 !important; padding: clamp(24px,5vw,36px) var(--pad); }
  .testi-inner blockquote { font-size: clamp(.88rem,3.8vw,1.05rem) !important; line-height: 1.72 !important; }
}

/* Show-More Blockquote (einheitlich, alle Viewports, laengenbasiert statt breitenbasiert) */
.testi-text blockquote.bq-collapse { max-height: 170px; overflow: hidden; position: relative; transition: max-height .45s cubic-bezier(.4,0,.2,1); }
.testi-text blockquote.bq-collapse::after { content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 64px; pointer-events: none; transition: opacity .35s; }
.testi-sec-terra .testi-text blockquote.bq-collapse::after { background: linear-gradient(transparent, var(--terra)); }
.testi-sec-sage .testi-text blockquote.bq-collapse::after { background: linear-gradient(transparent, var(--sage-deep)); }
.bq-toggle-btn { display: inline-block; margin-top: 12px; font-family: var(--sans); font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; background: none; border: none; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.testi-sec-terra .bq-toggle-btn { color: var(--ink); }
.testi-sec-sage .bq-toggle-btn { color: var(--cream); }

/* About-Arch Mobile: aspect-ratio NICHT erzwingen, Original-Format (4/5) behalten - Focal Points steuern den Ausschnitt */

/* Mobile G&F Dropdown */
.mob-gf-wrap { width: 100%; }
.mob-gf-btn { width: 100%; justify-content: space-between; }
.mob-gf-chevron { font-size: 1.1rem; transition: transform .2s; display: inline-block; }
.mob-gf-btn[aria-expanded="true"] .mob-gf-chevron { transform: rotate(180deg); }
.mob-gf-sub { display: none; list-style: none; background: rgba(201,116,139,.15); border-radius: 0 0 10px 10px; padding: 6px 0; margin-top: -4px; }
.mob-gf-sub.open { display: block; }
.mob-gf-sub li a { display: block; padding: 13px 24px; color: rgba(238,233,229,.85); font-size: .83rem; letter-spacing: .06em; border-bottom: 1px solid rgba(255,255,255,.05); transition: .18s; }
.mob-gf-sub li:last-child a { border-bottom: 0; }
.mob-gf-sub li a:hover { background: rgba(201,116,139,.2); color: var(--cream); }
/* -- Image Zoom Utility (versteckt Logos/Schriftzuege im Bild) -- */
.img-zoom-110 { transform: scale(1.18); transform-origin: center 30%; }

/* -- G&F Social Grid: Mobile 2x2 statt 4x1 (Karten wurden abgeschnitten) -- */
@media (max-width: 640px) {
  .gf-social-grid { grid-template-columns: repeat(2, 1fr) !important; max-width: 320px; }
}

/* -- Mobile: weitere Kopf-Crops korrigieren -- */
@media (max-width: 720px) {
  .em-cta-arch { aspect-ratio: 3/4 !important; }
}
/* -- Zertifikat-Bild (about-arch) auf Mobile etwas groesser -- */
@media (max-width: 640px) {
  .about-arch { aspect-ratio: 3/4; min-height: 420px; }
}