/* WordPress integration adjustments for the bundled AC-VISIONS HTML design. */
html { scroll-behavior: smooth; }
body { margin: 0; }
.trustindex-widget { width: 100%; min-width: 0; }
.trustindex-widget iframe { max-width: 100%; }

/* DM Sans and Manrope are self-hosted in wp-content/uploads/acv-local-fonts after theme activation. If the server cannot download the files, system sans-serif fallbacks are used. */

/* Kundenstimmen: kompaktere Überschrift */
.reviews-section .reviews-title{font-size:clamp(1.65rem,3.2vw,2.6rem);line-height:1.15;max-width:850px;margin-inline:auto}

/* Einheitliche vollständige Kopfzeile für Impressum, Datenschutz und AGB */
.site-header{position:sticky;top:0;z-index:1000;width:100%;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(17,21,19,.10);box-shadow:0 6px 24px rgba(17,21,19,.06);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.site-header .header-inner{width:min(1200px,calc(100% - 40px));min-height:88px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:28px}
.site-header .footer-logo{display:block;flex:0 0 auto;width:190px;max-width:30vw;line-height:0}
.site-header .footer-logo img{display:block;width:100%;height:auto;max-height:66px;object-fit:contain}
.site-header .main-nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(12px,2vw,28px);flex-wrap:wrap}
.site-header .main-nav a{display:inline-flex;align-items:center;min-height:44px;color:#17201e;text-decoration:none;font-size:14px;font-weight:650;white-space:nowrap;transition:color .2s ease}
.site-header .main-nav a:hover,.site-header .main-nav a:focus-visible{color:#718986}
@media(max-width:760px){.site-header{position:relative}.site-header .header-inner{width:calc(100% - 28px);padding:12px 0;min-height:unset;align-items:center;flex-direction:column;gap:8px}.site-header .footer-logo{width:150px;max-width:70vw}.site-header .footer-logo img{max-height:52px}.site-header .main-nav{width:100%;justify-content:center;gap:4px 15px}.site-header .main-nav a{min-height:36px;font-size:13px}}
@media(max-width:380px){.site-header .main-nav{gap:2px 10px}.site-header .main-nav a{font-size:12px}}

/* Service hero artwork: display the complete generated image without cropping. */
.service-hero-image { background:#101923; }
.service-hero-image img { width:100%; height:auto !important; max-height:none !important; aspect-ratio:3/2; object-fit:contain !important; object-position:center; }
/* Keep shared top navigation and footer consistent on every bundled page. */
.topbar { width:100%; }
.topbar .navlinks { flex-wrap:wrap; }
@media(max-width:900px){ .topbar .navlinks { gap:12px; } }

/* Footer v1.2.4: vollständige Kontakt- und Social-Media-Inhalte wie im ursprünglichen Startseiten-Footer. */
.footer-inner-complete{display:grid!important;grid-template-columns:minmax(220px,1.2fr) minmax(190px,1fr) minmax(150px,.8fr) minmax(130px,.7fr)!important;align-items:center!important;gap:28px!important;padding-top:12px;padding-bottom:12px}
.footer-inner-complete .footer-brand{justify-self:start;min-width:0}
.footer-inner-complete .footer-logo{display:inline-block;max-width:210px;line-height:0}
.footer-inner-complete .footer-logo img{display:block;width:100%;height:auto;max-height:80px;object-fit:contain}
.footer-inner-complete .footer-copyright{margin:12px 0 0!important;font-size:.75rem!important;line-height:1.5;color:#bdc8c0}
.footer-inner-complete .footer-contact,.footer-inner-complete .footer-social{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-self:start!important;gap:10px!important;min-width:0;text-align:left!important}
.footer-inner-complete .footer-label{display:block;font-size:.72rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:#f0f4f1;margin-bottom:3px}
.footer-inner-complete .footer-contact-link,.footer-inner-complete .social-icons a{display:flex!important;align-items:center!important;gap:10px!important;color:#bdc8c0!important;text-decoration:none;font-size:.82rem!important;line-height:1.5}
.footer-inner-complete .footer-contact-link svg,.footer-inner-complete .social-icons svg{width:20px;height:20px;flex:0 0 20px;fill:currentColor}
.footer-inner-complete .social-icons{display:flex;flex-direction:column;flex-wrap:wrap;gap:12px}
.footer-inner-complete .footer-legal{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-self:end!important;gap:9px!important;min-width:0}
.footer-inner-complete .footer-legal a{font-size:.82rem!important;color:#bdc8c0!important;text-decoration:none}
.footer-inner-complete a:hover{color:#fff!important;opacity:.9}
@media(max-width:900px){.footer-inner-complete{grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:start!important;gap:28px 22px!important}.footer-inner-complete .footer-legal{justify-self:start!important}}
@media(max-width:520px){.footer-inner-complete{grid-template-columns:minmax(0,1fr)!important;gap:24px!important}.footer-inner-complete .footer-brand,.footer-inner-complete .footer-contact,.footer-inner-complete .footer-social,.footer-inner-complete .footer-legal{justify-self:start!important}.footer-inner-complete .footer-logo{max-width:185px}}

/* Keep service-page headings from splitting words across lines. */
.service-hero-copy h1{overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:balance}

/* Responsive repair v1.3.1: on phones, stack text before its related image.
   These rules are mobile-only; desktop/tablet layouts above 760px stay unchanged. */
@media (max-width: 760px) {
  .cards,
  .service-hero,
  .service-highlight-grid,
  .about-grid,
  .about-page-grid,
  .trust-grid,
  .photo-service-hero,
  .location-hero-grid,
  .statement-grid,
  .coverage-grid,
  .media-panel,
  .case-study,
  .project-case {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .cards > *,
  .cards > article,
  .cards > .service-hero-image,
  .cards > div,
  .cards > figure {
    grid-column: 1 / -1 !important;
    min-width: 0;
    width: 100%;
  }

  .service-hero,
  .photo-service-hero,
  .about-grid,
  .about-page-grid,
  .trust-grid,
  .location-hero-grid {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .service-hero-copy,
  .service-hero-image,
  .about-grid > *,
  .about-page-grid > *,
  .trust-grid > *,
  .photo-service-hero > *,
  .location-hero-grid > * {
    order: initial;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
  }

  .service-hero-image,
  .photo-service-hero img,
  .about-page-portrait,
  .about-page-portrait img,
  .cards .service-hero-image img,
  main .wrap .cards img {
    display: block;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  .service-hero-image img,
  .cards .service-hero-image img,
  main .wrap .cards img {
    width: 100% !important;
  }

  .cards { gap: 18px; }
  .cards .card[style*="grid-column"] { grid-column: 1 / -1 !important; }
}
