/* ============ RESET & BASE ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;background:none;border:none;cursor:pointer;color:inherit;}
ul{list-style:none;}
input,textarea,select{font:inherit;}

:root{
  --ink:#16211B;
  --ink-2:#1E2C22;
  --ink-3:#26362A;
  --parchment:#EFEAE0;
  --parchment-2:#E6DECB;
  --paper:#FBF9F4;
  --brass:#B98B4E;
  --brass-dark:#7A5C2E;
  --brass-light:#D9B87C;
  --granite:#56645A;
  --body-dark:#2C382F;
  --cream:#F3EFE6;
  --signal:#C6433D;
  --line-light: rgba(43,56,47,.14);
  --line-dark: rgba(243,239,230,.16);

  --font-display:'Instrument Serif', 'Georgia', serif;
  --font-body:'Manrope', -apple-system, sans-serif;
  --font-mono:'IBM Plex Mono', monospace;

  --container:1180px;
  --radius:2px;
}

body{
  font-family:var(--font-body);
  background:var(--parchment);
  color:var(--body-dark);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:400;
  line-height:1.08;
  color:var(--ink);
  letter-spacing:-.01em;
}
h1{font-size:clamp(2.6rem,6vw,4.6rem);}
h2{font-size:clamp(2rem,4vw,3rem);}
h3{font-size:clamp(1.3rem,2.2vw,1.7rem);}
p{max-width:60ch;}
.eyebrow{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--brass-dark);
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-weight:500;
}
.eyebrow--onlight{color:var(--brass-light);}

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 1.5rem;
}
@media(min-width:640px){.container{padding:0 2.5rem;}}
.container{margin-left:auto !important;margin-right:auto !important;max-width:var(--container) !important;}
/* Falls WordPress/ein Plugin doch einen Inner-Container-Wrapper ergänzt: unsichtbar machen */
.wp-block-group__inner-container{display:contents;}

section.block,.block{padding:5.5rem 0;}
@media(max-width:640px){section.block,.block{padding:3.75rem 0;}}

.skip-link{
  position:absolute;left:-999px;top:0;background:var(--ink);color:var(--cream);
  padding:.8rem 1.2rem;z-index:999;font-family:var(--font-mono);font-size:.85rem;
}
.skip-link:focus{left:1rem;top:1rem;}

*:focus-visible{outline:2px solid var(--brass);outline-offset:3px;}

/* ============ LIVE DOT / SIGNATURE ============ */
.live-dot{
  width:8px;height:8px;border-radius:50%;background:var(--signal);
  box-shadow:0 0 0 0 rgba(198,67,61,.6);
  animation:pulse 2.2s ease-out infinite;
  flex-shrink:0;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(198,67,61,.55);}
  70%{box-shadow:0 0 0 8px rgba(198,67,61,0);}
  100%{box-shadow:0 0 0 0 rgba(198,67,61,0);}
}

/* Contour / topographic divider — signature motif (Dolomiten-Höhenlinien / Flugrouten) */
.contour{width:100%;height:34px;display:block;overflow:visible;}
.contour path{fill:none;stroke:var(--brass);stroke-width:1;opacity:.4;}
.contour--dark path{stroke:var(--brass-light);opacity:.3;}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.06em;
  text-transform:uppercase;font-weight:500;
  padding:.95rem 1.6rem;border-radius:var(--radius);
  transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
  border:1px solid transparent;white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--brass);color:var(--ink);}
.btn-primary:hover{background:var(--brass-light);}
.btn-ghost-light{border-color:var(--line-dark);color:var(--cream);}
.btn-ghost-light:hover{border-color:var(--brass-light);color:var(--brass-light);}
.btn-ghost-dark{border-color:var(--line-light);color:var(--ink);}
.btn-ghost-dark:hover{border-color:var(--brass-dark);color:var(--brass-dark);}
.btn-block{width:100%;justify-content:center;}
.btn svg{width:14px;height:14px;}

/* ============ HEADER ============ */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(22,33,27,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-dark);
}
.header-inner{
  max-width:var(--container);margin:0 auto;padding:0 1.5rem;
  display:flex;align-items:center;justify-content:space-between;
  height:74px;
}
@media(min-width:640px){.header-inner{padding:0 2.5rem;}}
.logo{
  display:flex;align-items:center;gap:.65rem;
  font-family:var(--font-display);font-style:italic;font-size:1.4rem;color:var(--cream);
}
.logo b{font-style:normal;font-weight:400;}
.main-nav ul{display:flex;gap:2.1rem;}
.main-nav{display:none;}
.nav-link{
  font-family:var(--font-mono);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--cream);opacity:.72;position:relative;padding:.3rem 0;
  transition:opacity .15s ease;
}
.nav-link:hover{opacity:1;}
.main-nav .current-menu-item .nav-link, .main-nav .current_page_item .nav-link{opacity:1;color:var(--brass-light);}
.main-nav .current-menu-item .nav-link::after, .main-nav .current_page_item .nav-link::after{
  content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--brass-light);
}
.header-actions{display:flex;align-items:center;gap:1rem;}
.header-actions .btn-primary{display:none;}
.menu-toggle{
  display:flex;flex-direction:column;justify-content:center;gap:5px;
  width:38px;height:38px;align-items:center;
}
.menu-toggle span{width:20px;height:1.5px;background:var(--cream);transition:transform .25s ease, opacity .25s ease;}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

.mobile-nav{
  position:fixed;inset:74px 0 0 0;background:var(--ink);z-index:99;
  transform:translateY(-8px);opacity:0;pointer-events:none;
  transition:transform .25s ease, opacity .25s ease;
  overflow-y:auto;
}
.mobile-nav.is-open{transform:translateY(0);opacity:1;pointer-events:auto;}
.mobile-nav ul{padding:2.5rem 1.5rem;display:flex;flex-direction:column;gap:1.7rem;}
.mobile-nav a{font-family:var(--font-display);font-size:2rem;color:var(--cream);}
.mobile-nav .btn{margin:0 1.5rem 2.5rem;}

@media(min-width:900px){
  .main-nav{display:block;}
  .header-actions .btn-primary{display:inline-flex;}
  .menu-toggle{display:none;}
  .mobile-nav{display:none;}
}

/* ============ SEITEN (jede WordPress-Seite ist ein eigener Aufruf) ============ */
.site-page{animation:fadeIn .4s ease;}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}

/* ============ HERO ============ */
.hero{
  position:relative;min-height:92vh;display:flex;align-items:flex-end;
  color:var(--cream);
  background:
    linear-gradient(180deg, rgba(22,33,27,.35) 0%, rgba(22,33,27,.55) 55%, rgba(22,33,27,.96) 100%),
    url('https://images.unsplash.com/photo-1414235077428-338989a2e8c0?auto=format&fit=crop&w=1920&q=80') center/cover no-repeat;
  padding-top:74px;
}
.hero-inner{max-width:var(--container);margin:0 auto;padding:4.5rem 1.5rem 4rem;width:100%;}
@media(min-width:640px){.hero-inner{padding:4.5rem 2.5rem 4.5rem;}}
.hero-live{
  display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-mono);
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-light);
  border:1px solid var(--line-dark);padding:.5rem .9rem;border-radius:20px;margin-bottom:1.6rem;
}
.hero-live .timecode{color:var(--cream);opacity:.75;}
.hero h1{color:var(--cream);max-width:14ch;font-style:italic;}
.hero h1 em{color:var(--brass-light);font-style:italic;}
.hero-sub{margin-top:1.4rem;font-size:1.15rem;color:var(--cream);opacity:.86;max-width:46ch;}
.hero-cta{margin-top:2.4rem;display:flex;flex-wrap:wrap;gap:1rem;}
.hero-live{width:fit-content;}
.hero-sub{max-width:46ch;}

/* ============ TRUST STRIP ============ */
.trust-strip{
  background:var(--ink);border-top:1px solid var(--line-dark);
  padding:1.4rem 0;
}
.trust-strip .container{
  display:flex;flex-wrap:wrap;gap:1.2rem 2.6rem;justify-content:space-between;align-items:center;
}
.trust-item{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--cream);opacity:.62;display:flex;align-items:center;gap:.5rem;white-space:nowrap;
}
.trust-item svg{width:14px;height:14px;flex-shrink:0;opacity:.8;}

/* ============ BENEFITS ============ */
.benefits{background:var(--parchment);}
.section-head{max-width:640px;margin-bottom:3rem;}
.section-head .eyebrow{margin-bottom:1rem;}
.benefit-grid{display:grid;gap:2.2rem;grid-template-columns:1fr;}
@media(min-width:760px){.benefit-grid{grid-template-columns:repeat(3,1fr);}}
.benefit-card{border-top:1px solid var(--line-light);padding-top:1.6rem;}
.benefit-icon{
  width:44px;height:44px;border-radius:50%;border:1px solid var(--brass-dark);
  display:flex;align-items:center;justify-content:center;margin-bottom:1.3rem;color:var(--brass-dark);
}
.benefit-icon svg{width:20px;height:20px;}
.benefit-card h3{margin-bottom:.6rem;}
.benefit-card p{color:var(--granite);font-size:.98rem;}

/* ============ SERVICES PREVIEW ============ */
.services-preview{background:var(--parchment-2);}
.card-grid{display:grid;gap:1.6rem;grid-template-columns:1fr;}
@media(min-width:640px){.card-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1000px){.card-grid{grid-template-columns:repeat(4,1fr);}}
.svc-card{background:var(--paper);border:1px solid var(--line-light);overflow:hidden;transition:transform .2s ease, box-shadow .2s ease;}
.svc-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px -18px rgba(22,33,27,.4);}
.svc-card .img-wrap{aspect-ratio:4/3;overflow:hidden;}
.svc-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.svc-card:hover img{transform:scale(1.06);}
.svc-card-body{padding:1.4rem;}
.svc-card-body h3{font-size:1.15rem;margin-bottom:.5rem;}
.svc-card-body p{font-size:.9rem;color:var(--granite);margin-bottom:.9rem;}
.svc-link{
  font-family:var(--font-mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;
  color:var(--brass-dark);display:inline-flex;align-items:center;gap:.4rem;
}
.svc-link svg{width:12px;height:12px;transition:transform .2s ease;}
.svc-card:hover .svc-link svg{transform:translateX(3px);}

/* ============ TESTIMONIALS ============ */
.testimonials{background:var(--ink);color:var(--cream);}
.testimonials .section-head h2{color:var(--cream);}
.testi-grid{display:grid;gap:1.6rem;grid-template-columns:1fr;}
@media(min-width:800px){.testi-grid{grid-template-columns:repeat(3,1fr);}}
.testi-card{background:var(--ink-2);border:1px solid var(--line-dark);padding:1.8rem;}
.testi-mark{font-family:var(--font-display);font-style:italic;font-size:2.2rem;color:var(--brass);line-height:1;margin-bottom:.6rem;}
.testi-quote{font-size:1rem;color:var(--cream);opacity:.9;margin-bottom:1.3rem;}
.testi-name{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--brass-light);}
.testi-role{font-family:var(--font-mono);font-size:.72rem;color:var(--cream);opacity:.55;margin-top:.2rem;}

/* ============ ABOUT PREVIEW (home) ============ */
.about-preview{background:var(--parchment);}
.split{display:grid;gap:2.6rem;align-items:center;grid-template-columns:1fr;}
@media(min-width:840px){.split{grid-template-columns:1fr 1fr;gap:4rem;}}
.split img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;}
.about-preview p{color:var(--body-dark);margin:1.2rem 0 1.6rem;}

/* ============ CTA BANNER ============ */
.cta-banner{
  background:var(--ink);color:var(--cream);text-align:center;padding:5.5rem 0;
  position:relative;
}
.cta-banner h2{color:var(--cream);max-width:20ch;margin:0 auto 1rem;}
.cta-banner p{color:var(--cream);opacity:.75;max-width:44ch;margin:0 auto 2.2rem;}
.cta-banner .btn-row{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}

/* ============ FOOTER ============ */
.site-footer{background:var(--ink);color:var(--cream);border-top:1px solid var(--line-dark);}
.footer-top{padding-top:4rem;padding-bottom:3rem;display:grid;gap:2.6rem;grid-template-columns:1fr;}
@media(min-width:760px){.footer-top{grid-template-columns:1.4fr 1fr 1fr 1fr;}}
.footer-brand .logo{margin-bottom:1rem;}
.footer-brand p{color:var(--cream);opacity:.6;font-size:.9rem;max-width:32ch;}
.footer-col h4{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-light);margin-bottom:1.1rem;}
.footer-col ul{display:flex;flex-direction:column;gap:.7rem;}
.footer-col a, .footer-col span{font-size:.9rem;color:var(--cream);opacity:.72;}
.footer-col a:hover{opacity:1;color:var(--brass-light);}
.socials-row{display:flex;gap:.8rem;margin-top:.3rem;}
.social-btn{
  width:36px;height:36px;border:1px solid var(--line-dark);border-radius:50%;
  display:flex;align-items:center;justify-content:center;transition:border-color .2s ease, color .2s ease;
}
.social-btn svg{width:16px;height:16px;}
.social-btn:hover{border-color:var(--brass-light);color:var(--brass-light);}
.footer-bottom{
  border-top:1px solid var(--line-dark);padding-top:1.4rem;padding-bottom:1.4rem;
  display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between;
  font-family:var(--font-mono);font-size:.72rem;color:var(--cream);opacity:.5;
}

/* ============ ABOUT PAGE ============ */
.page-header{
  background:var(--ink);color:var(--cream);padding-top:calc(74px + 4.5rem);padding-bottom:4rem;
}
.page-header h1{color:var(--cream);max-width:16ch;}
.page-header .eyebrow{margin-bottom:1.2rem;}
.page-header p{color:var(--cream);opacity:.78;margin-top:1.2rem;font-size:1.08rem;max-width:52ch;}

.about-story{background:var(--parchment);}
.about-story .split img{aspect-ratio:1/1;}
.about-story p{color:var(--body-dark);margin-top:1rem;}
.about-story h2{margin-bottom:.4rem;}

.mission-block{background:var(--ink-3);color:var(--cream);text-align:center;}
.mission-text{
  font-family:var(--font-display);font-style:italic;font-size:clamp(1.6rem,3.4vw,2.4rem);
  max-width:24ch;margin:0 auto;color:var(--cream);line-height:1.25;
}
.mission-cite{display:block;max-width:none;margin:1.4rem 0 0;font-family:var(--font-mono);font-size:.78rem;color:var(--brass-light);letter-spacing:.05em;}

.usp-list{display:grid;gap:1.4rem;grid-template-columns:1fr;margin-top:2.6rem;}
@media(min-width:700px){.usp-list{grid-template-columns:repeat(2,1fr);}}
.usp-item{display:flex;gap:1rem;padding:1.4rem;background:var(--paper);border:1px solid var(--line-light);}
.usp-icon{width:30px;height:30px;flex-shrink:0;border-radius:50%;background:var(--ink);color:var(--brass-light);display:flex;align-items:center;justify-content:center;}
.usp-icon svg{width:15px;height:15px;}
.usp-item h4{font-family:var(--font-body);font-weight:700;font-size:.98rem;color:var(--ink);margin-bottom:.3rem;}
.usp-item p{font-size:.88rem;color:var(--granite);}

/* ============ SERVICES PAGE ============ */
.services-grid-page{background:var(--parchment);}
.svc2-grid{display:grid;gap:1.4rem;grid-template-columns:1fr;margin-top:1rem;}
@media(min-width:680px){.svc2-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1020px){.svc2-grid{grid-template-columns:repeat(3,1fr);}}
.svc2-card{background:var(--paper);border:1px solid var(--line-light);padding:1.8rem;transition:border-color .2s ease;}
.svc2-card:hover{border-color:var(--brass-dark);}
.svc2-icon{width:38px;height:38px;color:var(--brass-dark);margin-bottom:1.2rem;}
.svc2-icon svg{width:100%;height:100%;}
.svc2-card h3{margin-bottom:.6rem;font-size:1.2rem;}
.svc2-card p{font-size:.92rem;color:var(--granite);}

.process{background:var(--ink);color:var(--cream);}
.process .section-head h2{color:var(--cream);}
.process .section-head p{color:var(--cream);opacity:.7;}
.process-list{display:grid;gap:0;grid-template-columns:1fr;margin-top:1rem;}
.process-step{
  display:grid;grid-template-columns:auto 1fr;gap:1.6rem;padding:1.8rem 0;
  border-top:1px solid var(--line-dark);
}
.process-step:last-child{border-bottom:1px solid var(--line-dark);}
.step-num{font-family:var(--font-mono);font-size:.85rem;color:var(--brass-light);padding-top:.2rem;}
.process-step h3{color:var(--cream);font-size:1.15rem;margin-bottom:.4rem;}
.process-step p{color:var(--cream);opacity:.68;font-size:.94rem;}

.faq-block{background:var(--parchment);}
.faq-list{margin-top:1rem;border-top:1px solid var(--line-light);}
.faq-item{border-bottom:1px solid var(--line-light);}
.faq-q{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;
  text-align:left;padding:1.5rem 0;font-family:var(--font-body);font-weight:700;color:var(--ink);font-size:1.02rem;
}
.faq-q svg{width:16px;height:16px;flex-shrink:0;color:var(--brass-dark);transition:transform .25s ease;}
.faq-item.is-open .faq-q svg{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq-a p{padding-bottom:1.5rem;color:var(--granite);font-size:.95rem;max-width:65ch;}
.faq-item.is-open .faq-a{max-height:220px;}

/* ============ PORTFOLIO PAGE ============ */
.filter-bar{
  display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem;
}
.filter-btn{
  font-family:var(--font-mono);font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;
  padding:.6rem 1.1rem;border:1px solid var(--line-light);color:var(--body-dark);border-radius:20px;
  transition:all .2s ease;
}
.filter-btn:hover{border-color:var(--brass-dark);}
.filter-btn.is-active{background:var(--ink);color:var(--cream);border-color:var(--ink);}
.portfolio-grid{display:grid;gap:1.4rem;grid-template-columns:1fr;margin-top:2.2rem;}
@media(min-width:640px){.portfolio-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1000px){.portfolio-grid{grid-template-columns:repeat(3,1fr);}}
.port-card{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--ink);}
.port-card.is-hidden{display:none;}
.port-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.port-card:hover img{transform:scale(1.08);}
.port-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(22,33,27,0) 40%, rgba(22,33,27,.92) 100%);
  display:flex;flex-direction:column;justify-content:flex-end;padding:1.4rem;color:var(--cream);
}
.port-tag{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--brass-light);margin-bottom:.4rem;}
.port-title{font-family:var(--font-display);font-style:italic;font-size:1.35rem;color:var(--cream);}
.port-link{
  margin-top:.7rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;
  color:var(--cream);opacity:.75;display:inline-flex;align-items:center;gap:.4rem;
}
.port-link svg{width:11px;height:11px;}

/* ============ CONTACT PAGE ============ */
.contact-block{background:var(--parchment);}
.contact-grid{display:grid;gap:3rem;grid-template-columns:1fr;}
@media(min-width:900px){.contact-grid{grid-template-columns:1.15fr .85fr;gap:4rem;}}
.form-field{margin-bottom:1.3rem;}
.form-field label{
  display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--granite);margin-bottom:.5rem;
}
.form-field .opt{opacity:.8;font-weight:400;text-transform:none;letter-spacing:0;}
.form-field input, .form-field textarea, .form-field select{
  width:100%;background:var(--paper);border:1px solid var(--line-light);padding:.9rem 1rem;
  color:var(--ink);border-radius:var(--radius);transition:border-color .2s ease;
}
.form-field input:focus, .form-field textarea:focus, .form-field select:focus{border-color:var(--brass-dark);}
.form-field textarea{min-height:130px;resize:vertical;}
.form-row{display:grid;gap:1.3rem;grid-template-columns:1fr;}
@media(min-width:560px){.form-row{grid-template-columns:1fr 1fr;}}

.thankyou{
  display:none;background:var(--ink);color:var(--cream);padding:2.6rem;text-align:left;
}
.thankyou.is-visible{display:block;}
.thankyou h3{color:var(--cream);margin-bottom:.7rem;}
.thankyou p{color:var(--cream);opacity:.75;margin-bottom:1.4rem;}
#contact-form.is-hidden{display:none;}

.info-card{background:var(--ink);color:var(--cream);padding:2.2rem;margin-bottom:1.4rem;}
.info-row{display:flex;gap:.9rem;margin-bottom:1.3rem;align-items:flex-start;}
.info-row:last-child{margin-bottom:0;}
.info-row svg{width:17px;height:17px;color:var(--brass-light);flex-shrink:0;margin-top:.15rem;}
.info-row h4{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--brass-light);margin-bottom:.3rem;}
.info-row p, .info-row a{font-size:.94rem;color:var(--cream);opacity:.85;}
.map-wrap{border:1px solid var(--line-light);height:260px;overflow:hidden;}
.map-wrap iframe{width:100%;height:100%;border:0;filter:grayscale(.25) contrast(1.05);}

/* Legal pages */
.legal-content{max-width:70ch;}
.legal-content h2{font-family:var(--font-body);font-weight:700;font-size:1.15rem;color:var(--ink);margin:2.2rem 0 .6rem;}
.legal-content h2:first-child{margin-top:0;}
.legal-content p{color:var(--body-dark);margin-bottom:.9rem;font-size:.96rem;}
.legal-content a{color:var(--brass-dark);text-decoration:underline;}
.legal-updated{font-family:var(--font-mono);font-size:.78rem;color:var(--granite);margin-top:2rem;}
.footer-bottom .legal-links a{text-decoration:underline;text-underline-offset:2px;}
.footer-bottom .legal-links a:hover{color:var(--brass-light);}

/* Cookie banner */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--ink);color:var(--cream);
  border-top:1px solid var(--line-dark);
  transform:translateY(110%);transition:transform .4s ease;
}
.cookie-banner.is-visible{transform:translateY(0);}
.cookie-banner-inner{
  max-width:var(--container);margin:0 auto;padding:1.4rem 1.5rem;
  display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center;justify-content:space-between;
}
.cookie-banner-inner p{color:var(--cream);opacity:.82;font-size:.88rem;max-width:60ch;margin:0;}
.cookie-banner-inner a{color:var(--brass-light);text-decoration:underline;}
.cookie-actions{display:flex;gap:.7rem;flex-wrap:wrap;}
.cookie-actions .btn{padding:.75rem 1.2rem;}

.cookie-modal{
  position:fixed;inset:0;z-index:300;background:rgba(22,33,27,.7);
  display:flex;align-items:center;justify-content:center;padding:1.5rem;
}
.cookie-modal[hidden]{display:none;}
.cookie-modal-box{background:var(--paper);max-width:480px;width:100%;padding:2rem;border-radius:var(--radius);}
.cookie-modal-box h3{margin-bottom:1.2rem;}
.cookie-row{display:flex;justify-content:space-between;gap:1.2rem;align-items:flex-start;padding:1rem 0;border-top:1px solid var(--line-light);}
.cookie-row:first-of-type{border-top:none;}
.cookie-row strong{font-size:.92rem;color:var(--ink);}
.cookie-row p{font-size:.82rem;color:var(--granite);margin-top:.3rem;max-width:32ch;}
.cookie-toggle{flex-shrink:0;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;color:var(--granite);border:1px solid var(--line-light);padding:.4rem .7rem;border-radius:20px;}
.cookie-toggle input{width:16px;height:16px;accent-color:var(--brass-dark);margin-right:.3rem;vertical-align:middle;}
.cookie-modal .cookie-actions{margin-top:1.6rem;justify-content:flex-end;}

.map-wrap{position:relative;}
.map-consent-overlay{
  position:absolute;inset:0;background:rgba(22,33,27,.94);color:var(--cream);
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1rem;padding:1.6rem;
}
.map-consent-overlay p{font-size:.86rem;opacity:.85;max-width:42ch;margin:0;}
.map-consent-overlay.is-hidden{display:none;}

/* Cookie-Auswahl: Ablehnen-Button gleichwertig zu Akzeptieren gestaltet (keine Bevorzugung) */
.btn-cookie-secondary{background:var(--cream);color:var(--ink);}
.btn-cookie-secondary:hover{background:#fff;}

/* Cookie-Tabelle auf der Cookie-Hinweis-Seite */
.legal-table{width:100%;border-collapse:collapse;margin:1rem 0 1.8rem;font-size:.86rem;}
.legal-table caption{text-align:left;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--brass-dark);margin-bottom:.6rem;}
.legal-table th,.legal-table td{text-align:left;padding:.7rem .8rem;border-bottom:1px solid var(--line-light);vertical-align:top;}
.legal-table th{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;color:var(--granite);}
.legal-table td{color:var(--body-dark);}

/* ============ GUTENBERG-BLOCK-KOMPATIBILITÄT ============
   Diese Theme-Version liefert alle Seiteninhalte als echte,
   editierbare Gutenberg-Blöcke (the_content()) statt als ein
   einzelnes Custom-HTML-Feld. Die folgenden Regeln sorgen dafür,
   dass core/columns, core/quote, core/cover, core/table und
   core/button optisch genauso aussehen wie das ursprüngliche,
   handgeschriebene Markup. */

/* Eigene Grid-Layouts statt der Standard-Flex-Darstellung von core/columns */
.wp-block-columns.benefit-grid,
.wp-block-columns.card-grid,
.wp-block-columns.testi-grid,
.wp-block-columns.usp-list,
.wp-block-columns.svc2-grid,
.wp-block-columns.split,
.wp-block-columns.contact-grid{display:grid !important;}
.wp-block-columns.benefit-grid > .wp-block-column,
.wp-block-columns.card-grid > .wp-block-column,
.wp-block-columns.testi-grid > .wp-block-column,
.wp-block-columns.usp-list > .wp-block-column,
.wp-block-columns.svc2-grid > .wp-block-column,
.wp-block-columns.split > .wp-block-column,
.wp-block-columns.contact-grid > .wp-block-column{flex-basis:auto !important;margin:0 !important;min-width:0;}
@media(max-width:699px){
  .wp-block-columns.benefit-grid, .wp-block-columns.card-grid, .wp-block-columns.testi-grid,
  .wp-block-columns.usp-list, .wp-block-columns.svc2-grid, .wp-block-columns.split, .wp-block-columns.contact-grid{grid-template-columns:1fr !important;}
}

/* core/button optisch wie der bisherige .btn.btn-primary */
.wp-block-button__link{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.06em;
  text-transform:uppercase;font-weight:500;
  padding:.95rem 1.6rem;border-radius:var(--radius);
  background:var(--brass);color:var(--ink);
  transition:transform .18s ease, background .18s ease;
  border:1px solid transparent;white-space:nowrap;
}
.wp-block-button__link:hover{background:var(--brass-light);color:var(--ink);transform:translateY(-2px);}
.cta-banner .wp-block-buttons.btn-row{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}
.wp-block-buttons{gap:1rem;}

/* core/quote als Testimonial-Karte: Standard-Zitat-Rahmen entfernen
   (testi-mark/testi-quote/testi-name/testi-role haben ihre eigene,
   bereits im Entwurf vorhandene Formatierung weiter oben) */


/* core/table für die Cookie-Übersicht: Klasse liegt auf dem <figure>-Wrapper */
.wp-block-table.legal-table{margin:1rem 0 1.8rem;}
.wp-block-table.legal-table table{width:100%;border-collapse:collapse;font-size:.86rem;}

/* FAQ-Frage ist jetzt ein <h3> (core/heading), da Gutenberg keinen
   klickbaren Button-Block für Inhalte kennt; Chevron wird per CSS statt
   per inline-SVG nachgebildet, Tastaturfokus kommt aus main.js */
.faq-q{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  margin:0;cursor:pointer;
}
.faq-q::after{
  content:"+";flex-shrink:0;font-family:var(--font-mono);font-size:1.1rem;
  color:var(--brass-dark);transition:transform .25s ease;line-height:1;
}
.faq-item.is-open .faq-q::after{transform:rotate(45deg);}
.faq-q:focus-visible{outline:2px solid var(--brass-dark);outline-offset:3px;}

/* Dekorative Icons (Benefit-/USP-/Service-Icons) wurden beim Umbau auf
   reine Gutenberg-Blöcke bewusst weggelassen, siehe README. Die
   funktionalen Info-Icons auf der Kontaktseite (Adresse/Telefon/E-Mail/
   Öffnungszeiten) bleiben erhalten und sind bereits über .info-row svg
   gestylt. */


/* ============ WORDPRESS-KERN-STYLES NEUTRALISIEREN ============
   Block-Gap / Standard-Abstände des Core sollen das Theme-Layout nicht überschreiben. */
.site-page .is-layout-flow > *,
.site-page .wp-block-group > *{margin-block-start:0;margin-block-end:0;}


/* ============ BLOCK-LAYOUT (v3.3) ============ */
.wp-block-image{margin:0;}
.wp-block-image img{max-width:100%;}
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:1rem;margin:0;}
.wp-block-button.is-ghost .wp-block-button__link{background:transparent;color:var(--cream);border-color:var(--line-dark);}
.wp-block-button.is-ghost .wp-block-button__link:hover{background:transparent;color:var(--brass-light);border-color:var(--brass-light);}
.wp-block-columns{margin:0;}

/* Leistungen (Startseite): gleich hohe Karten, Bild oben, Text unten */
.card-grid{align-items:stretch;}
.card-grid > .wp-block-column.svc-card{display:flex !important;flex-direction:column;height:100%;}
.svc-card .img-wrap{aspect-ratio:4/3;overflow:hidden;flex-shrink:0;}
.svc-card .img-wrap .wp-block-image{height:100%;margin:0;}
.svc-card .img-wrap img{width:100%;height:100%;object-fit:cover;display:block;}
.svc-card-body{flex:1;display:flex;flex-direction:column;}
.svc-card-body p{max-width:none;}
.svc-card-body .svc-link-wrap, .svc-card-body > p:last-child{margin-top:auto;margin-bottom:0;}
a.svc-link::after{content:"\2192";font-size:.95rem;transition:transform .2s ease;display:inline-block;}
.svc-card:hover a.svc-link::after{transform:translateX(3px);}

/* Kundenstimmen: Karte = Spalte aus Absätzen */
.testi-grid{align-items:stretch;}
.testi-grid > .wp-block-column.testi-card{display:flex !important;flex-direction:column;}
.testi-mark{margin:0 0 .6rem;}
.testi-quote{margin:0 0 1.3rem;flex:1;max-width:none;}
.testi-name{margin:0;max-width:none;}
.testi-role{margin:.2rem 0 0;max-width:none;}

/* Vorteile */
.benefit-card h3{margin-top:0;}
.benefit-card p{max-width:none;margin:0;}

/* Seitenköpfe */
.page-header .container > *{max-width:none;}
.page-header p:not(.eyebrow){max-width:52ch;}
.page-header h1{max-width:20ch;}

/* Abschnitte */
.about-preview .split > .wp-block-column p.eyebrow{margin:0 0 1rem;}
.about-preview .split > .wp-block-column h2{margin:0;}
.about-preview .split > .wp-block-column .wp-block-buttons{margin-top:0;}
.filter-wrap{padding-top:2.5rem !important;padding-bottom:0 !important;}

/* Portfolio-Karten (Gruppe aus Bild + Overlay) */
.port-card .wp-block-image{position:absolute;inset:0;margin:0;}
.port-card .wp-block-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.port-card:hover .wp-block-image img{transform:scale(1.08);}
.port-overlay > *{margin:0;max-width:none;}
.port-overlay .port-tag{margin-bottom:.4rem;}

/* Kontaktseite */
.contact-grid{align-items:start;}
.info-row > .info-text > *{margin:0;max-width:none;}
.info-row h4{margin-bottom:.3rem;}
.info-card, .map-wrap{margin-bottom:1.4rem;}
.socials-row{margin-top:0;}

/* Seitenkopf: Eyebrow klein halten (nicht wie Fließtext) */
.page-header p.eyebrow{font-size:.72rem;opacity:1;margin:0 0 1.2rem;color:var(--brass-light);}
.page-header h1{margin:0;}
.page-header .container > p:not(.eyebrow){margin-top:1.2rem;}

/* Ablauf-Schritte */
.process-step > .step-body > *{max-width:none;}
.process-step .step-body h3{margin:0 0 .4rem;}
.process-step p{margin:0;}
.process-step p.step-num{padding-top:.2rem;}
.section-head > *{max-width:none;}
.section-head p:not(.eyebrow){margin-top:1rem;}
.about-story .section-head, .faq-block .section-head, .process .section-head{margin-bottom:2rem;}

/* USP-Karten: gleich hoch */
.usp-list{align-items:stretch;}
.usp-list > .wp-block-column{display:flex !important;}
.usp-list .usp-item{width:100%;margin:0;}
.usp-item .wp-block-group > *{max-width:none;}
.usp-item h4{margin:0 0 .3rem;}
.usp-item p{margin:0;}

/* ============ FARB-KORREKTUREN (v3.4) ============
   Eyebrow-Zeilen (kleine Kategorie-Überschriften) dürfen NIE von
   Abschnitts-Regeln wie ".cta-banner p" oder ".about-story p" überschrieben werden. */
.site-page p.eyebrow{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  color:var(--brass-dark);opacity:1;max-width:none;margin:0 0 1rem;line-height:1.4;
  display:inline-flex;align-items:center;gap:.5em;
}
.site-page p.eyebrow.eyebrow--onlight{color:var(--brass-light);}
.cta-banner p.eyebrow{margin:0 0 1rem;}
.page-header p.eyebrow{margin-bottom:1.2rem;}
.about-story .split p.eyebrow, .about-preview .split p.eyebrow{margin:0 0 1rem;}
.about-story h2, .about-preview h2{margin-top:0;}

/* Ablauf: Nummern in Messing, Titel/Text hell */
.process .process-step p.step-num{color:var(--brass-light);opacity:1;font-family:var(--font-mono);font-size:.85rem;margin:0;}
.process .process-step h3{color:var(--cream);}
.process .process-step .step-body p{color:var(--cream);opacity:.7;}

/* Überschriften auf dunklem Grund immer hell */
.cta-banner h1,.cta-banner h2,.cta-banner h3,
.testimonials h2,.testimonials h3,.process h2,.process h3,
.mission-block h2,.page-header h1{color:var(--cream);}

/* Portfolio: "Ähnliches Projekt anfragen" */
.port-overlay p.port-link-wrap{margin:.7rem 0 0;max-width:none;}
.port-overlay a.port-link{
  font-family:var(--font-mono);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;
  color:var(--cream);opacity:.85;display:inline-flex;align-items:center;gap:.4rem;
}
.port-overlay a.port-link::after{content:"\2192";transition:transform .2s ease;}
.port-overlay a.port-link:hover{color:var(--brass-light);opacity:1;}
.port-overlay a.port-link:hover::after{transform:translateX(3px);}
.port-overlay .port-tag{color:var(--brass-light);}
.port-overlay .port-title{color:var(--cream);}

/* Footer: Container-Seitenabstand nie überschreiben, Spalten dürfen schrumpfen */
.site-footer .container{padding-left:1.5rem;padding-right:1.5rem;}
@media(min-width:640px){.site-footer .container{padding-left:2.5rem;padding-right:2.5rem;}}
.footer-top > *{min-width:0;}
.footer-bottom{max-width:var(--container);margin-left:auto;margin-right:auto;}

/* Lange Wörter/Links/E-Mail-Adressen dürfen nie die Seite verbreitern */
.site-page p, .site-page li, .site-page td, .site-page h1, .site-page h2, .site-page h3, .site-page h4{overflow-wrap:break-word;}
.legal-content a{overflow-wrap:anywhere;}

/* Cookie-Tabelle: auf kleinen Bildschirmen seitlich scrollbar statt zu breit */
.wp-block-table.legal-table{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.wp-block-table.legal-table table{min-width:520px;}
.wp-block-table.legal-table figcaption{text-align:left;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--brass-dark);margin:0 0 .6rem;}

/* Logo mit Zusatzzeile */
.logo .logo-text{display:inline-flex;flex-direction:column;line-height:1.05;}
.logo .logo-tag{font-family:var(--font-mono);font-style:normal;font-weight:500;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin-top:.3rem;}

/* ============ Hero-Slider ============ */
.hero.has-slides{background:var(--ink);overflow:hidden;}
.hero.has-slides::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg, rgba(22,33,27,.35) 0%, rgba(22,33,27,.55) 55%, rgba(22,33,27,.96) 100%);}
.hero.has-slides > .hero-inner, .hero.has-slides .hero-inner{position:relative;z-index:2;}
.hero-slides{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.8s ease-in-out;}
.hero-slide.is-active{opacity:1;}
.hero-slide img, .hero-slide .hero-slide-img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;max-width:none;}
.hero-zoom .hero-slide.is-active img, .hero-zoom .hero-slide.is-leaving img{animation:heroZoom var(--hero-dur,8s) ease-out forwards;}
@keyframes heroZoom{from{transform:scale(1);}to{transform:scale(1.07);}}
@media (prefers-reduced-motion: reduce){
  .hero-slide{transition:none;}
  .hero-zoom .hero-slide.is-active img, .hero-zoom .hero-slide.is-leaving img{animation:none;}
}

/* Wechselnde Headlines (übereinander gestapelt, damit die Höhe stabil bleibt) */
.hero-heads, .hero-subs{display:grid;}
.hero-head, .hero-subtext{grid-area:1/1;opacity:0;transition:opacity 1.2s ease-in-out;}
.hero-head.is-active, .hero-subtext.is-active{opacity:1;transition-delay:.5s;}
@media (prefers-reduced-motion: reduce){.hero-head,.hero-head.is-active,.hero-subtext,.hero-subtext.is-active{transition:none;}}

/* Abstand Beschreibung -> Buttons sicherstellen */
.hero .hero-cta{margin-top:2.4rem !important;}
.hero .hero-sub{margin-top:1.4rem !important;}

/* ============ Kundenstimmen aus Beiträgen (Raster / Slider) ============ */
.testi-card{display:flex;flex-direction:column;}
.testi-static{display:grid;gap:1.6rem;grid-template-columns:1fr;}
@media(min-width:800px){.testi-static{grid-template-columns:repeat(var(--per,3),1fr);}}
.testi-slider{position:relative;}
.testi-track{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:1.6rem;overflow-x:auto;
  scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;}
.testi-track::-webkit-scrollbar{display:none;}
.testi-track > .testi-card{scroll-snap-align:start;min-width:0;}
@media(min-width:800px){.testi-track{grid-auto-columns:calc((100% - (var(--per,3) - 1) * 1.6rem) / var(--per,3));}}
.testi-nav{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin-top:1.8rem;}
.testi-btn{width:44px;height:44px;border:1px solid var(--line-dark);background:transparent;color:var(--cream);
  font-size:1.1rem;cursor:pointer;border-radius:var(--radius);transition:border-color .2s ease,color .2s ease;}
.testi-btn:hover,.testi-btn:focus-visible{border-color:var(--brass);color:var(--brass-light);}
.testi-dots{display:flex;gap:.55rem;}
.testi-dot{width:9px;height:9px;border-radius:50%;background:var(--cream);opacity:.28;transition:opacity .2s ease,background .2s ease;}
.testi-dot.is-active{opacity:1;background:var(--brass);}
