/* Floating navigation: clear glass over photography, solid white on scroll. */
.header {
  z-index: 2000;
  inset: 16px 20px auto;
  width: auto;
  max-width: 1320px;
  margin-inline: auto;
  border: 0;
  border-radius: 18px;
  background: #ffffff0d;
  color: #fff;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 8px 32px #07182d14;
  transition: background .25s, color .25s, box-shadow .25s;
}
.header-inner { height: 80px; padding-inline: 24px; max-width: none; gap: 20px; }
.header.scrolled, .legal-page .header {
  background: #fff;
  color: #20354b;
  box-shadow: 0 8px 32px #102b471c;
}
.header.scrolled .brand img, .legal-page .header .brand img { filter: none; }
.legal-page { padding-top: 112px; }
.header .nav-links > a, .about-toggle { min-height: 44px; }
.services-home { min-height: 44px; align-items: center; }
.services-toggle { width: 44px; min-height: 44px; }
.header .nav-links > a:hover, .about-toggle:hover, .services-home:hover { color: inherit; background: #ffffff20; }
.header.scrolled .nav-links > a:hover, .header.scrolled .about-toggle:hover, .header.scrolled .services-home:hover,
.legal-page .header .nav-links > a:hover, .legal-page .about-toggle:hover, .legal-page .services-home:hover { background: #edf4fc; color: var(--red); }
.header .nav-links > a[aria-current="page"], .header .about-toggle.current,
.header .services-menu-heading:has([aria-current="page"]) { background: #ffffff22; color: white; }
.header.scrolled .nav-links > a[aria-current="page"], .header.scrolled .about-toggle.current,
.header.scrolled .services-menu-heading:has([aria-current="page"]) { background: #eaf2fc; color: var(--red); }
.header-actions a { border-radius: 10px; padding-inline: 18px; }
.header-phone { background: #ffffff12; color: white; border: 1px solid #ffffff70; }
.header-phone svg { color: inherit; }
.header-phone:hover { color: #fff; background: #ffffff26; }
.header.scrolled .header-phone, .legal-page .header-phone { background: #f1f6fc; border-color: #dce5ef; color: var(--red); }
.header-booking { box-shadow: 0 3px 12px #002f6826; }
.header .services-links, .header .about-links {
  top: calc(100% + 14px); padding: 8px;
  background: #fff; color: #20354b; border: 1px solid #dce5ef;
  border-radius: 14px; box-shadow: 0 16px 40px #102b4729;
}
.header .services-links a, .header .about-links a { border-radius: 8px; min-height: 44px; }
.header .services-links a:hover, .header .services-links a:focus-visible,
.header .about-links a:hover, .header .about-links a:focus-visible { color: var(--red); background: #edf4fc; }
.header :is(a,button):focus-visible { outline: 3px solid #84b8ff; outline-offset: 3px; }
.hero-widgets { display: flex; justify-content: center; margin-top: 36px; }
.hero-rating { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 20px; padding: 10px 16px; background: transparent; color: #fff; border: 0; border-radius: 14px; text-align: center; transition: background .2s; }
.hero-rating:hover { background: #ffffff0d; }
.hero-rating:focus-visible { outline: 3px solid #84b8ff; outline-offset: 3px; }
.rating-summary { display: flex; align-items: center; gap: 16px; }
.rating-score { font-size: 26px; line-height: 32px; font-weight: 700; letter-spacing: -.03em; }
.rating-score > span { font-size: 15px; font-weight: 400; color: #dce8f5; letter-spacing: 0; }
.rating-stars { font-size: 21px; letter-spacing: 2px; line-height: 28px; background: linear-gradient(90deg,#facc15 94%,#ffffff66 94%); background-clip: text; -webkit-background-clip: text; color: transparent; }
.rating-description { display: flex; align-items: center; gap: 4px; font-size: 14px; line-height: 22px; color: #eef4fc; }
.rating-description strong { font-weight: 600; }
.google-name { display: inline-flex; font-size: 19px; letter-spacing: -.04em; margin-right: 8px; }
.google-name span:nth-child(1), .google-name span:nth-child(4) { color: #8ab4f8; }
.google-name span:nth-child(2), .google-name span:nth-child(6) { color: #ff9d94; }
.google-name span:nth-child(3) { color: #fdd663; }
.google-name span:nth-child(5) { color: #81c995; }
.rating-description svg { width: 16px; height: 16px; margin-left: 4px; transform: rotate(-45deg); }
.opening-widget { display: flex; align-items: flex-start; gap: 10px; text-align: left; font-size: 14px; line-height: 22px; }
.opening-widget strong, .opening-widget span[data-opening-message], .opening-widget small { display: block; }
.opening-widget strong { font-size: 15px; font-weight: 600; }
.opening-widget small { font-size: 11px; line-height: 18px; opacity: .8; margin-top: 3px; }
.opening-dot { width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; margin-top: 7px; background: #d1d9e5; box-shadow: 0 0 0 4px #ffffff12; }
.opening-widget[data-open="true"] .opening-dot { background: #6de4af; }
.footer .opening-widget { margin: 0 0 18px; color: #e5edf6; }
.footer-bottom { flex-wrap: wrap; gap: 16px 24px; align-items: center; }
.footer-bottom .design-credit { display: inline; font-size: 12px; }
.footer-bottom .design-credit a { display: inline; margin: 0; color: #d6e7ff; text-decoration: none; }
.footer-bottom .design-credit { display: inline-flex; align-items: center; gap: 6px; }
.footer-bottom .design-credit a { display: inline-flex; align-items: center; gap: 4px; color: #f0f0f0; }
.design-credit .feinschliff-mark { width: 22px; height: 20px; stroke: none; }
.design-credit .feinschliff-mark .mark-white { fill: currentColor; }
.design-credit .feinschliff-mark .mark-green { fill: #276345; }
.design-credit .feinschliff-mark .mark-line { fill: none; stroke: #276345; }
.design-credit .feinschliff-wordmark { font: 600 13px/1.1 "Open Sans", Arial, sans-serif; letter-spacing: -.04em; }
.design-credit .feinschliff-wordmark span { font-weight: 400; }
.home-page .business-hours { background: #0006; backdrop-filter: none; -webkit-backdrop-filter: none; }
/* Small visible disc and chevron, with a 44px touch target like feinschliff.digital. */
.back-to-top {
  width: 44px; height: 44px; padding: 6px; right: 32px; bottom: 18px;
  border: 0; background: transparent; color: var(--red);
  backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none;
  transition: color .22s, transform .3s cubic-bezier(.23,1,.32,1);
}
.back-to-top svg {
  width: 32px; height: 32px; padding: 6px; border-radius: 50%;
  background: #d6e7f7eb; border: 1px solid #01489e38;
  filter: drop-shadow(0 2px 10px #0b264847);
  fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
  transition: background .22s, border-color .22s;
}
.back-to-top:hover { background: transparent; color: var(--red-dark); }
.back-to-top:hover svg { background: #e8f2ff; border-color: #01489e66; }
@media (max-width: 767px) { .back-to-top { right: 16px; bottom: calc(84px + env(safe-area-inset-bottom)); } }
@media (prefers-reduced-motion: reduce) { .back-to-top, .back-to-top svg { transition: none; } }
@media (min-width: 768px) and (max-width: 1279px) {
  .header-inner { padding-inline: 16px; gap: 12px; }
  .header nav { gap: 12px; }
  .header-actions a { padding: 10px; }
  .nav-links > a, .about-toggle { padding-inline: 10px; }
  .services-home { padding-left: 10px; }
  .header .brand img { width: 140px; }
}
@media (max-width: 767px) {
  .header { inset: 10px 12px auto; border-radius: 15px; }
  .header-inner { height: 72px; padding-inline: 14px; }
  .header .brand img { width: 145px; height: 60px; }
  .header .menu-toggle { border-radius: 10px; background: #ffffff14; }
  .header.scrolled .menu-toggle, .legal-page .menu-toggle { color: var(--red); background: #edf4fc; }
  .header nav { top: calc(100% + 10px); border: 1px solid #dce5ef; border-radius: 15px; background: #fff; color: #20354b; max-height: calc(100svh - 172px); box-shadow: 0 16px 40px #102b4729; }
  .header .nav-links > a[aria-current="page"], .header .services-menu-heading:has([aria-current="page"]) { background: #eaf2fc; color: var(--red); }
  .header .nav-links > a:hover, .header .services-home:hover { color: var(--red); background: #edf4fc; }
  .header .about-links { border: 0; box-shadow: none; padding: 0; }
  .header .services-links { border: 0; box-shadow: none; background: #f1f6fc; padding: 4px; }
  .header .header-phone { color: var(--red); background: #f1f6fc; border-color: #dce5ef; }
  .home-page .hero-content { margin-top: 0; padding-top: 126px; padding-bottom: 52px; }
  .home-page .hero h1 { font-size: clamp(30px, 7.8vw, 48px); line-height: 1.12; }
  .home-page .hero-intro { font-size: 18px; line-height: 28px; margin-bottom: 28px; }
  .hero-widgets { flex-direction: column; gap: 24px; margin-top: 30px; }
  .footer-bottom > span:last-child { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { .header { transition: none; } }
.header, .header.scrolled, .legal-page .header { border: 0; }
.header .services-links a { display: flex; align-items: center; gap: 12px; }
.services-links a > svg { width: 18px; height: 18px; flex: 0 0 18px; color: var(--red); }
@media (max-width: 767px) { .services-links a > svg { width: 20px; height: 20px; flex-basis: 20px; } }

@media (max-width: 639px) { .hero-rating { max-width: 290px; } }

.hero-scroll-cue {
  position: absolute; left: 50%; bottom: 18px; z-index: 2;
  transform: translateX(-50%); display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 8px;
  min-width: 144px; min-height: 64px; padding: 6px 14px;
  color: #c8ddff; border-radius: 12px;
}
.hero-scroll-cue > span { font-size: 11px; line-height: 14px; font-weight: 700; letter-spacing: 1.76px; text-transform: uppercase; }
.hero-scroll-cue svg {
  width: 32px; height: 32px; padding: 6px; border-radius: 50%;
  background: #c8ddff0f; border: 1px solid #c8ddff57;
  fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  animation: hero-scroll-hint 1.8s cubic-bezier(.45,0,.2,1) infinite;
}
.hero-scroll-cue:hover { color: #fff; }
.hero-scroll-cue:focus-visible { outline: 2px solid #c8ddff; outline-offset: 3px; }
@keyframes hero-scroll-hint { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(4px); } }
@media (max-width: 767px) {
  .home-page .hero-content { padding-bottom: 148px; }
  .hero-scroll-cue { bottom: 78px; }
}
@media (prefers-reduced-motion: reduce) { .hero-scroll-cue svg { animation: none; } }

.contact-hero .hero-scroll-cue { bottom: 18px; }
@media (max-width: 767px) { .contact-hero { min-height: max(60vh, 360px); } }

.footer-brand .footer-logo { display: block; width: 190px; max-width: 100%; height: auto; margin: 0 0 20px; background: transparent; filter: brightness(0) invert(1); }

@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('medien/fonts/caveat-medium.woff2') format('woff2');
}
.signature .owner-signature {
  display: block;
  margin-bottom: 8px;
  font-family: 'Caveat', cursive;
  font-size: clamp(34px, 4vw, 44px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: normal;
  color: #20354b;
}

/* Keep the pointer inside each menu while crossing the visual dropdown gap. */
@media (min-width: 768px) {
  .nav-services:has(.services-links.open)::after, .nav-about:has(.about-links.open)::after {
    content: ''; position: absolute; left: 0; top: 100%; height: 14px;
  }
  .nav-services:has(.services-links.open)::after { width: 256px; }
  .nav-about:has(.about-links.open)::after { width: 224px; }
}
.services-home { border-radius: 8px 0 0 8px; }
.services-toggle { border-radius: 0 8px 8px 0; }
.header .services-menu-heading:hover { background: #ffffff20; }
.header.scrolled .services-menu-heading:hover, .legal-page .header .services-menu-heading:hover { background: #edf4fc; color: var(--red); }
.header .services-home:hover, .header .services-toggle:hover { background: transparent; color: inherit; }
@media (max-width: 767px) { .header .services-menu-heading:hover { background: #edf4fc; color: var(--red); } }

.trust-grid svg { width: 36px; height: 36px; margin-bottom: 12px; color: #a9c9f5; stroke-width: 1.75; }

/* Quiet status line within the hero, with the weekly schedule opening upwards. */
.business-status { position: absolute; z-index: 30; bottom: 50px; right: 32px; transform: translateY(50%); width: max-content; max-width: calc(50% - 104px); color: #f1f6fc; font-size: 13px; line-height: 20px; }
.business-status-toggle { display: flex; align-items: center; justify-content: flex-end; gap: 10px; min-height: 44px; padding: 10px 6px; border: 0; border-radius: 6px; background: transparent; color: inherit; font: inherit; text-align: right; text-shadow: 0 1px 6px #07182d; cursor: pointer; }
.business-status-toggle:hover [data-opening-compact] { text-decoration: underline; text-underline-offset: 5px; text-decoration-color: #ffffff70; }
.business-status-toggle:focus-visible { outline: 2px solid #c8ddff; outline-offset: 3px; }
.business-status .opening-dot { margin-top: 0; width: 6px; height: 6px; flex-basis: 6px; background: #cbd5e1; box-shadow: 0 0 0 4px #ffffff0d; }
.business-status[data-open="true"] .opening-dot { background: #6de4af; box-shadow: 0 0 0 4px #6de4af14; }
.business-status-toggle svg { width: 13px; height: 13px; flex-shrink: 0; transform: rotate(180deg); opacity: .75; }
.business-status-toggle[aria-expanded="true"] svg { transform: none; }
.business-hours { position: absolute; bottom: 100%; right: 0; width: 300px; max-width: calc(100vw - 48px); padding: 20px; border: 1px solid #ffffff26; border-radius: 14px; background: rgba(9, 24, 42, .5); backdrop-filter: blur(8px) saturate(110%); -webkit-backdrop-filter: blur(8px) saturate(110%); color: #f1f6fc; text-align: left; box-shadow: 0 12px 40px #07182d26; }
.business-hours > strong { display: block; font-size: 16px; margin-bottom: 14px; }
.business-hours dl { margin: 0; }
.business-hours dl > div { display: flex; justify-content: space-between; gap: 12px; padding-block: 10px; border-top: 1px solid #ffffff26; }
.business-hours dd { margin: 0; text-align: right; white-space: nowrap; }
.business-hours p { margin: 12px 0 0; font-size: 12px; line-height: 18px; color: #cbd5e1; }
.business-hours[hidden] { display: none; }
.contact-hero > .business-status { bottom: 40px; animation: none; }
.service-hero .business-status { bottom: 40px; }
.service-hero-controls { bottom: 37px; }
.service-hero-content { padding-bottom: 96px; }
.sub-hero .business-status { bottom: 40px; }
.sub-hero:has(.business-status) { padding-bottom: 76px; }
.home-page .hero-content { padding-bottom: 112px; }
.footer-hours p { margin: 0 0 8px; }
.footer-hours small { display: block; max-width: 220px; margin: 12px 0 20px; font-size: 12px; line-height: 18px; color: #9ca3af; }
.legal-page .business-status { position: relative; bottom: auto; right: auto; transform: none; width: fit-content; max-width: 100%; margin: 0 auto 24px; color: #20354b; }
.legal-page .business-status-toggle { text-shadow: none; }
.legal-page .business-status-toggle svg { transform: none; }
.legal-page .business-status-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.legal-page .business-hours { bottom: auto; top: 100%; }
@media (max-width: 767px) {
  .business-status { font-size: 12px; }
  .home-page .business-status { bottom: 110px; }
  .home-page .hero-content { padding-bottom: 168px; }
}

@media (max-width: 1023px) {
  .business-status { right: 16px; max-width: calc(100% - 96px); }
  .hero-scroll-cue { left: 16px; transform: none; width: 44px; min-width: 44px; padding-inline: 6px; }
  .hero-scroll-cue > span { position: absolute; bottom: 100%; left: 0; width: 150px; text-align: left; }
  .contact-hero > .business-status { bottom: 50px; }
  .service-hero-controls { left: 24px; right: auto; justify-content: flex-start; }
  .service-hero .business-status { max-width: calc(100% - 136px); }
  .legal-page .business-status { right: auto; max-width: 100%; }
}

.header .brand img { transition: transform .22s ease, filter .2s ease; transform-origin: center; }
.header .brand:hover img, .header .brand:focus-visible img { transform: translateY(-2px) scale(1.025); }
@media (prefers-reduced-motion: reduce) { .header .brand img { transition: none; } .header .brand:hover img, .header .brand:focus-visible img { transform: none; } }

.footer-grid { align-items: start; }
.footer-grid h2 { margin-bottom: 16px; }
.footer-grid address { margin-bottom: 16px; color: #bcc5d1; line-height: 22px; }
.footer .footer-grid > div > a { display: block; width: fit-content; margin: 0 0 9px; color: #bcc5d1; font-size: 14px; line-height: 22px; text-decoration: none; }
.footer .footer-grid > div > a:hover, .footer .footer-grid > div > a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.footer-contact-links { display: grid; gap: 8px; }
.footer .footer-contact-links a { display: inline-flex; align-items: center; gap: 10px; width: fit-content; min-height: 28px; color: #bcc5d1; font-size: 14px; line-height: 20px; text-decoration: none; transition: color .2s; }
.footer .footer-contact-links a:hover, .footer .footer-contact-links a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.footer-contact-links svg { width: 18px; height: 18px; stroke-width: 2; }
.footer-contact-links svg[data-icon="simpleicons-whatsapp"] { fill: currentColor; stroke: none; }

.home-page .history h2 { text-wrap: balance; }
.home-page .history h2 em { display: block; }
@media (min-width: 768px) {
  .home-page .history h2 { font-size: clamp(30px, 3.3vw, 42px); line-height: 1.12; }
}
@media (max-width: 560px) {
  .home-page .history h2 { font-size: clamp(28px, 8vw, 32px); line-height: 1.2; }
}
