/* A spacious product menu beneath the existing Voth header. */
.header .models-menu-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; white-space: nowrap; }
.models-menu-toggle svg { transition: transform 220ms ease; }
.models-menu-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.header .models-menu-toggle:hover, .header .models-menu-toggle[aria-expanded="true"] { color: #c7c7c7; }
.header .models-menu-toggle:focus-visible { outline: 2px solid #fff; outline-offset: 5px; }
.model-menu, .model-menu-backdrop { position: fixed; top: var(--model-menu-top, 86px); left: 0; right: 0; }
.model-menu[hidden], .model-menu-backdrop[hidden] { display: none; }
.model-menu-backdrop { bottom: 0; background: rgba(10, 13, 15, .46); z-index: 1; }
.model-menu { z-index: 2; max-height: calc(100vh - var(--model-menu-top, 86px)); max-height: calc(100dvh - var(--model-menu-top, 86px)); overflow-y: auto; overscroll-behavior: contain; background: #f1f1f3; color: #171719; box-shadow: 0 18px 32px #0002; animation: model-menu-enter 260ms ease-out; }
.model-menu-inner { max-width: 1280px; margin: 0 auto; padding: 26px 48px 32px; }
.model-menu-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.model-menu-top h2 { font: 500 24px/1.2 var(--font); letter-spacing: -.5px; margin: 0; }
.model-menu-top > div { display: flex; align-items: center; gap: 24px; }
.model-menu-all { font-size: 14px; text-underline-offset: 4px; text-decoration: underline; white-space: nowrap; }
.model-menu-close { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; background: transparent; border: 0; border-radius: 50%; color: inherit; cursor: pointer; }
.model-menu-close:hover { background: #dedee1; }
.model-menu-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px 28px; list-style: none; padding: 0; margin: 0; }
.model-menu-grid > li { min-width: 0; }
.model-menu-link { display: flex; flex-direction: column; padding: 14px 18px 10px; border-radius: 8px; text-decoration: none; color: inherit; transition: background 220ms ease; }
.model-menu-name { font-size: 20px; font-weight: 500; line-height: 1.3; letter-spacing: -.3px; }
.model-menu-figure { --menu-door-height: 251px; position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; height: calc(var(--menu-door-height) + 25px); padding: 15px 0 10px; perspective: 800px; }
/* A dark contact shadow and a broader floor shadow keep the doors grounded. */
.model-menu-figure::before, .model-menu-figure::after { content: ""; position: absolute; left: 50%; pointer-events: none; border-radius: 50%; transform: translateX(-50%); transition: transform 460ms cubic-bezier(.22, 1, .36, 1), opacity 460ms ease; }
.model-menu-figure::before { bottom: -3px; width: calc(var(--menu-door-height) * .85); max-width: 100%; height: 26px; background: radial-gradient(ellipse at center, rgb(0 0 0 / .58) 0%, rgb(0 0 0 / .36) 32%, rgb(0 0 0 / .15) 51%, transparent 72%); filter: blur(2px); }
.model-menu-figure::after { bottom: 6px; width: calc(var(--menu-door-height) * .56); max-width: 85%; height: 9px; background: radial-gradient(ellipse at center, rgb(0 0 0 / .95) 0%, rgb(0 0 0 / .78) 35%, rgb(0 0 0 / .3) 62%, transparent 78%); }
.model-menu-door { display: block; position: relative; z-index: 1; height: 100%; aspect-ratio: 945 / 2048; overflow: hidden; transform-origin: center bottom; transition: transform 460ms cubic-bezier(.22, 1, .36, 1); }
.model-menu-door img { display: block; width: 100%; height: 100%; object-fit: contain; }
.model-menu-link[href$="modell=berlin"] .model-menu-door { aspect-ratio: 1919 / 3872; }
.model-menu-catalogue img { position: absolute; left: 50%; width: auto; max-width: none; transform: translateX(-50%); }
.model-menu a:focus-visible, .model-menu button:focus-visible { outline: 2px solid #2167b3; outline-offset: 3px; }
.model-menu-link:focus-visible { background: #e5e5e8; }
.model-menu-link:focus-visible .model-menu-door { transform: scale(1.08); }
.model-menu-link:focus-visible .model-menu-figure::before, .model-menu-link:focus-visible .model-menu-figure::after { transform: translateX(-50%) scaleX(1.08); }
@media (hover: hover) and (pointer: fine) {
  .model-menu-link:hover { background: #e5e5e8; }
  .model-menu-link:hover .model-menu-door { transform: scale(1.08); }
  .model-menu-link:hover .model-menu-figure::before, .model-menu-link:hover .model-menu-figure::after { transform: translateX(-50%) scaleX(1.08); }
}
body.models-menu-open { overflow: hidden; }
@keyframes model-menu-enter { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 980px) {
  .model-menu, .model-menu-backdrop { --model-menu-top: 72px; }
  .model-menu-inner { padding: 20px 6% 28px; }
  .model-menu-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
}
@media (max-width: 600px) {
  .model-menu-top h2 { font-size: 20px; }
  .model-menu-top > div { gap: 10px; }
  .model-menu-all { font-size: 13px; }
  .model-menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .model-menu-link { padding: 12px 10px 8px; }
  .model-menu-name { font-size: 18px; }
  .model-menu-figure { --menu-door-height: 211px; }
}
@media (prefers-reduced-motion: reduce) {
  .model-menu { animation: none; }
  .models-menu-toggle svg, .model-menu-link, .model-menu-door, .model-menu-figure::before, .model-menu-figure::after { transition: none; }
  .model-menu-link:hover .model-menu-door, .model-menu-link:focus-visible .model-menu-door { transform: none; }
  .model-menu-link:is(:hover, :focus-visible) .model-menu-figure::before, .model-menu-link:is(:hover, :focus-visible) .model-menu-figure::after { transform: translateX(-50%); }
}

/* Mobile header with a little extra vertical space. */
@media (max-width: 760px) {
  html { scroll-padding-top: 64px; }
  .header { height: 60px; }
  .header .brand-voth { position: relative; flex-basis: 96px; width: 96px; height: 23px; }
  .header .brand-voth img { position: absolute; top: 0; left: 0; width: 118.623962%; height: auto; object-fit: initial; transform: translate(-7.8%, -24.1%); }
  .header .mobile-menu { height: 44px; }
  .header nav { top: 100%; }
  .model-menu, .model-menu-backdrop { --model-menu-top: 60px; }
  .visual-panel { top: 60px; }
}

/* Native system type and lightweight header hover states. */
.header nav { font-size: 16px; line-height: 1.5; color: #ccc; }
.header nav .action-nav { color: inherit; }
.header nav > a, .header .models-menu-toggle { transition: color 160ms ease; }
.header nav > a:is(:hover, :focus-visible),
.header .models-menu-toggle:is(:hover, :focus-visible, [aria-expanded="true"]) { color: #fff; }
.header nav > a::after { display: none; content: none; }
.header .models-menu-toggle svg,
.header .action-nav span[aria-hidden="true"] { display: none; }
.header .brand-voth img { opacity: .78; transition: opacity 160ms ease; }
.header .brand-voth:is(:hover, :focus-visible) img { opacity: 1; }
@media (max-width: 980px) {
  .header nav, .header.menu-open nav { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .header nav > a, .header .models-menu-toggle, .header .brand-voth img { transition: none; }
}

/* Identical footer layout on every static page. */
footer.site-footer.unified-footer { display:block; padding:48px 6% 30px; background:#000; color:#c5c5c5; font:400 16px/1.65 var(--font); }
.unified-footer .original-footer-top { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) 160px; gap:40px; max-width:980px; margin:0 auto; align-items:start; }
.unified-footer .original-footer-top > div { min-width:0; margin:0; }
.unified-footer h3 { margin:0 0 30px; font:500 18px/1.4 var(--font); color:#eee; letter-spacing:0; }
.unified-footer address, .unified-footer p { margin:0; max-width:none; width:auto; order:initial; font:inherit; color:#aaa; }
.unified-footer address { font-style:normal; color:#c5c5c5; }
.unified-footer .original-footer-brand { display:flex; flex-direction:column; align-items:center; gap:20px; }
.unified-footer .original-anniversary { display:block; width:90px; height:90px; object-fit:contain; margin:0; transform:translateY(-14px); }
.unified-footer .footer-google-rating { display:flex; flex-direction:column-reverse; align-items:flex-start; gap:12px; margin:0; color:#aaa; font:400 12px/1.4 var(--font); text-decoration:none; transition:color 160ms ease; }
.unified-footer .footer-google-line { display:flex; align-items:center; gap:10px; }
.unified-footer .footer-google-line strong { display:none; }
.unified-footer .footer-google-stars { color:#ed8b23; font-size:23px; letter-spacing:1px; transition:color 160ms ease,text-shadow 160ms ease; }
.unified-footer .footer-google-rating:is(:hover,:focus-visible) { color:#fff; text-decoration:none; text-shadow:0 0 8px #ffffff65; }
.unified-footer .footer-google-rating:is(:hover,:focus-visible) .footer-google-stars { color:#ffb94d; text-shadow:0 0 10px #ffb94d80; }
.unified-footer .footer-google-rating::after, .unified-footer .footer-socials a::after { display:none; content:none; }
.unified-footer .footer-socials { display:flex; justify-content:center; align-items:center; gap:14px; margin:0; }
.unified-footer .footer-socials a { display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; text-decoration:none; }
.unified-footer .footer-socials img { width:38px; height:38px; object-fit:contain; opacity:.8; transition:opacity 160ms ease,filter 160ms ease; }
.unified-footer .footer-socials a:is(:hover,:focus-visible) img { opacity:1; filter:brightness(1.3) drop-shadow(0 0 5px #ffffff70); }
.unified-footer .original-footer-partner { display:block; margin:44px auto 0; width:170px; }
.unified-footer .original-footer-partner img { width:100%; height:70px; object-fit:contain; }
.unified-footer .original-copyright { text-align:center; color:#999; font-size:15px; margin:45px auto 0; }
.unified-footer .original-footer-legal { display:flex; flex-direction:column; align-items:center; gap:1px; margin:50px auto 0; font-size:14px; color:#aaa; }
.unified-footer .original-footer-legal a { padding:4px 0; }
.page-source-tools { display:flex; flex-wrap:wrap; justify-content:center; gap:20px; padding:14px 6%; background:#000; color:#aaa; font:400 12px/1.5 var(--font); }
@media(max-width:760px) {
 .unified-footer .original-footer-top { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
 .unified-footer h3 { font-size:17px; margin-bottom:18px; }
}
@media(max-width:420px) {
 .unified-footer .original-footer-top { gap:28px 18px; }
 .unified-footer address,.unified-footer .original-footer-top p { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) {
 .unified-footer .footer-google-rating,.unified-footer .footer-google-stars,.unified-footer .footer-socials img { transition:none; }
}
