.main-nav { font-size: 1rem; }
.main-nav > a:not(.shop-link),
.nav-services-link { display: inline-block; transition: color .18s ease, transform .18s ease; }
.main-nav > a:not(.shop-link):hover,
.main-nav > a:not(.shop-link):focus-visible,
.main-nav > a:not(.shop-link):active,
.nav-services:hover .nav-services-link,
.nav-services:focus-within .nav-services-link { color: var(--red); transform: translateY(-2px); }
.nav-services { position: relative; display: flex; align-items: center; }
.nav-services::after { content: ''; position: absolute; top: 100%; right: -18px; left: -18px; height: 18px; }
.nav-services-link { padding: 10px 0; }
.nav-services-toggle { width: 22px; height: 30px; margin: 0 0 0 3px; padding: 0; display: grid; place-items: center; border: 0; background: transparent; color: var(--gray); cursor: pointer; }
.nav-services-toggle span { display: block; font-size: 1rem; line-height: 1; transform: translateY(-2px); transition: color .18s ease, transform .2s ease; }
.nav-services:hover .nav-services-toggle span,
.nav-services:focus-within .nav-services-toggle span,
.nav-services.is-open .nav-services-toggle span { color: var(--red); transform: translateY(0) rotate(180deg); }
.nav-services-menu { position: absolute; z-index: 40; top: calc(100% + 14px); left: 50%; width: 360px; padding: 9px; border: 1px solid var(--line); background: #fff; box-shadow: 0 18px 42px rgba(18,20,24,.14); opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%,-7px); transition: opacity .18s ease, transform .18s ease, visibility 0s linear .22s; }
.nav-services:hover .nav-services-menu,
.nav-services:focus-within .nav-services-menu,
.nav-services.is-open .nav-services-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%,0); transition-delay: 0s; }
.nav-services-menu a { position: relative; display: block; padding: 12px 14px 12px 22px; color: var(--ink); font-size: .9rem; font-weight: 650; line-height: 1.25; transition: color .18s ease, background-color .18s ease, transform .18s ease; }
.nav-services-menu a::before { content: ''; position: absolute; top: 50%; left: 9px; width: 2px; height: 15px; background: var(--red); opacity: 0; transform: translateY(-50%) scaleY(.45); transition: opacity .18s ease, transform .18s ease; }
.nav-services-menu a:hover,
.nav-services-menu a:focus-visible,
.nav-services-menu a[aria-current="page"] { color: var(--red); background: #f7f7f5; transform: translateX(3px); }
.nav-services-menu a:hover::before,
.nav-services-menu a:focus-visible::before,
.nav-services-menu a[aria-current="page"]::before { opacity: 1; transform: translateY(-50%) scaleY(1); }
.shop-link { position: relative; overflow: hidden; isolation: isolate; }
.shop-link::before { content: ''; position: absolute; inset: 0; z-index: 0; background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.38) 50%, transparent 65%); transform: translateX(-130%); pointer-events: none; }
.shop-link:hover::before, .shop-link:focus-visible::before, .shop-link:active::before { animation: shop-sheen .75s ease-out; }
.shop-link span, .button span, .service-card b { display: inline-flex; width: 1em; align-items: center; justify-content: center; font: 700 1rem/1 'DM Sans', sans-serif; transform: scaleX(1.08); }
@keyframes shop-sheen { from { transform: translateX(-130%); } to { transform: translateX(130%); } }
.hero-actions .button { position: relative; overflow: hidden; isolation: isolate; }
.hero-actions .button { transition: color .18s ease, transform .18s ease, border-color .18s ease; }
.hero-actions .button:hover, .hero-actions .button:focus-visible, .hero-actions .button:active { color: var(--red); transform: translateY(-2px); border-color: var(--red); }
.hero-actions .button-primary:hover, .hero-actions .button-primary:focus-visible, .hero-actions .button-primary:active { color: #fff; border-color: transparent; }
.hero-actions .button::before { content: ''; position: absolute; inset: 0; z-index: 0; background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.38) 50%, transparent 65%); transform: translateX(-130%); pointer-events: none; }
.hero-actions .button-plain::before { display: none; }
.hero-actions .button-plain { transition: color .18s ease, transform .18s ease, border-color .18s ease; }
.hero-actions .button-plain:hover, .hero-actions .button-plain:focus-visible, .hero-actions .button-plain:active { color: var(--red); transform: translateY(-2px); border-color: var(--red); }
.hero-actions .button:hover::before, .hero-actions .button:focus-visible::before, .hero-actions .button:active::before { animation: shop-sheen .75s ease-out; }
.site-header { position: sticky; top: 0; width: 100%; max-width: none; background: rgb(253, 253, 255); box-shadow: 0 5px 18px rgba(32,35,40,.08); }
.site-header .brand { height: 100%; display: flex; align-items: center; overflow: hidden; }
.site-header .brand img { width: auto; max-height: calc(100% - 10px); }
.site-header { transition: height .6s cubic-bezier(.22,.75,.24,1), padding .6s cubic-bezier(.22,.75,.24,1), box-shadow .6s ease; }
.site-header .brand img { transform: none; transition: max-height .6s cubic-bezier(.22,.75,.24,1); }
.site-header .main-nav { transition: gap .6s cubic-bezier(.22,.75,.24,1), font-size .6s cubic-bezier(.22,.75,.24,1); }
.site-header .shop-link { transition: padding .6s cubic-bezier(.22,.75,.24,1), background .18s ease; }
.site-header:not(.is-compact) { height: 126px; padding-left: 52px; padding-right: 52px; }
.site-header:not(.is-compact) .brand img { max-height: calc(100% - 18px); }
.site-header.is-compact { height: 104px; }
.site-header.is-compact .brand img { max-height: calc(100% - 10px); }
.site-header:not(.is-compact) .main-nav { gap: 38px; font-size: 1.08rem; }
.site-header:not(.is-compact) .shop-link { padding: 15px 22px; }
.service-card a { align-self: flex-start; margin-top: auto; padding: 10px 13px; background: var(--red); color: #fff; }
.service-card a { transition: transform .22s ease, box-shadow .22s ease, background .22s ease, color .22s ease; }
.service-card.featured a { background: transparent; color: #fff; border-color: #fff; }
.service-card.featured { background: #fff; color: var(--ink); }
.service-card.featured p { color: var(--gray); }
.service-card.featured a { background: var(--red); color: #fff; }
.service-card.featured { background: var(--red); color: #fff; }
.service-card.featured p { color: #fff; }
.service-card.featured span { color: var(--gray); }
.service-card h3 { min-height: 86px; }
.service-grid { grid-template-columns: repeat(5, 1fr); }
.service-card.featured a { background: transparent; color: #fff; border-color: #fff; }
@media (hover: hover) { .service-card { transition: background .22s ease, color .22s ease; }.service-card:hover, .service-card:focus-within { background: var(--red); color: #fff; }.service-card:hover p, .service-card:focus-within p, .service-card:hover span, .service-card:focus-within span { color: #fff; }.service-card:hover a, .service-card:focus-within a { background: transparent; color: #fff; border-color: #fff; transform: scale(1.1); box-shadow: 0 8px 18px rgba(0,0,0,.18); }.service-grid:has(.service-card:hover) .service-card.featured:not(:hover) { background: #fff; color: var(--ink); }.service-grid:has(.service-card:hover) .service-card.featured:not(:hover) p { color: var(--gray); }.service-grid:has(.service-card:hover) .service-card.featured:not(:hover) a { background: var(--red); color: #fff; border-color: transparent; } }
.seo-note { position: relative; width: 100%; max-width: 1100px; min-width: 0; margin: 0 auto; padding: 28px 36px 36px; color: var(--gray); font-size: 1rem; }
.seo-note > details,
.seo-content,
.seo-accordions,
.seo-accordion-columns,
.seo-accordion-column,
.seo-accordion-wide,
.seo-accordions details,
.seo-accordions details > div { width: 100%; min-width: 0; }
.seo-note summary { display: block; width: max-content; max-width: 100%; margin: 0 auto; padding: 11px 18px; background: var(--light); color: var(--ink); font-weight: 700; cursor: pointer; text-align: center; }
.seo-note summary::-webkit-details-marker { display: none; }
.seo-content { max-width: 860px; margin: 28px auto 0; text-align: center; }
.seo-note h2 { margin: 0 auto 24px; color: var(--ink); font: normal clamp(2.3rem, 4vw, 3.8rem)/1.04 'DM Serif Display', serif; }
.seo-note p { margin: 0 auto 18px; }
.seo-accordions { max-width: 860px; margin: 12px auto 0; }
.seo-accordion-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 34px; align-items: start; }
.seo-compact-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 34px; width: 100%; min-width: 0; }
.seo-compact-pair > details { display: contents; }
.seo-compact-pair > details > summary { min-width: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.seo-compact-pair > #preise > summary { grid-column: 1; grid-row: 1; }
.seo-compact-pair > #anlaesse > summary { grid-column: 2; grid-row: 1; }
.seo-compact-pair > #preise > .pricing-guide { grid-column: 1 / -1; grid-row: 2; }
.seo-compact-pair > #anlaesse > .seo-occasion-content { grid-column: 1 / -1; grid-row: 3; }
.seo-accordions details { border-top: 1px solid var(--line); }
.seo-accordions details:last-child { border-bottom: 1px solid var(--line); }
.seo-accordions summary { width: 100%; margin: 0; padding: 15px 4px; background: transparent; text-align: left; transition: color .18s ease; }
.seo-accordions summary:hover,
.seo-accordions summary:focus-visible { color: var(--red); }
.seo-accordions summary::after { content: '+'; float: right; color: var(--red); font-size: 1.3rem; line-height: .8; }
.seo-accordions details[open] summary::after { content: '−'; }
.seo-accordions details > div { padding: 2px 4px 20px; color: var(--gray); }
.seo-accordions details[open] > div { animation: seo-panel-in .24s ease-out; }
@keyframes seo-panel-in { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: none; } }
.seo-occasions { padding-top: 0; }
.seo-note { padding-bottom: 0; }
.employee-choice { max-width: 1380px; margin: 0 auto; padding: 14px 36px 28px; }
.employee-section-heading { max-width: 1200px; margin: 0 auto 24px; text-align: center; }
.employee-section-heading .eyebrow { margin: 0 0 10px; }
.employee-section-heading h2 { margin: 0; font: normal clamp(2.75rem, 6.2vw, 5.7rem)/1 'DM Serif Display', serif; letter-spacing: -.035em; }
.employee-choice-grid { position: relative; max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, 1fr); align-items: stretch; border: 1px solid var(--line); background: linear-gradient(to right, var(--red) 0 59.2%, #fff 59.2% 100%); box-shadow: 0 16px 44px rgba(18, 20, 24, .08); }
.employee-choice-grid::before { content: ''; position: absolute; z-index: 4; top: 0; left: 59.2%; width: 2px; height: 100%; background: rgba(255, 255, 255, .5); transform: scaleY(0); transform-origin: center; pointer-events: none; }
.employee-choice.is-visible .employee-choice-grid::before { animation: choice-route-draw .62s .18s ease-out forwards; }
.employee-choice-card { position: relative; min-width: 0; min-height: 224px; overflow: hidden; padding: clamp(24px, 2.5vw, 32px); display: flex; border: 0; background: #fff; color: var(--ink); text-decoration: none; cursor: pointer; }
.employee-choice-card:hover,
.employee-choice-card:focus-visible { z-index: 3; }
.employee-choice-card:focus-visible { z-index: 6; outline: 3px solid rgba(228, 32, 38, .28); outline-offset: -3px; }
.employee-choice-content { min-width: 0; flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 20px; transform-origin: center; transition: transform .26s cubic-bezier(.22, .72, .25, 1); }
.employee-choice-card:hover .employee-choice-content,
.employee-choice-card:focus-visible .employee-choice-content { transform: translateY(-3px) scale(1.04); }
.employee-choice-card h3 { max-width: 520px; margin: 7px 0 10px; font: normal clamp(1.8rem, 2.5vw, 2.4rem)/1 'DM Serif Display', serif; letter-spacing: -.035em; }
.employee-choice-card p { max-width: 560px; margin: 0; color: var(--gray); line-height: 1.55; }
.employee-choice-label { color: var(--red) !important; font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.employee-choice-primary { background: var(--red); color: #fff; }
.employee-choice-primary:hover,
.employee-choice-primary:focus-visible { background: var(--red); }
.employee-choice-primary p { color: rgba(255, 255, 255, .86); }
.employee-choice-primary .employee-choice-label { color: #fff !important; opacity: .78; }
.employee-choice-shop:hover,
.employee-choice-shop:focus-visible { background: #fff; }
.employee-choice-button { position: relative; overflow: hidden; isolation: isolate; align-self: flex-start; pointer-events: none; background: var(--red); color: #fff; transition: transform .24s ease, box-shadow .24s ease, background-color .24s ease, color .24s ease; }
.employee-choice-primary .employee-choice-button { background: #fff; color: var(--red); }
.employee-choice-button::after { content: ''; position: absolute; top: -35%; bottom: -35%; left: -42%; width: 24%; pointer-events: none; transform: skewX(-22deg); background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .68), transparent); opacity: 0; }
.employee-choice-primary .employee-choice-button::after { background: linear-gradient(90deg, transparent, rgba(228, 32, 38, .18), transparent); }
.employee-choice-card:hover .employee-choice-button::after,
.employee-choice-card:focus-visible .employee-choice-button::after { animation: choice-button-sheen-hover .78s ease-out both; }
.employee-choice-card:hover .employee-choice-button,
.employee-choice-card:focus-visible .employee-choice-button { box-shadow: 0 12px 26px rgba(18, 20, 24, .18); }
.employee-choice-shop:hover .employee-choice-button,
.employee-choice-shop:focus-visible .employee-choice-button { background: #cf1a20; box-shadow: 0 12px 28px rgba(228, 32, 38, .23); }
.employee-choice-primary:hover .employee-choice-button,
.employee-choice-primary:focus-visible .employee-choice-button { background: #fff; box-shadow: 0 12px 28px rgba(18, 20, 24, .2); }
.employee-choice-divider { position: absolute; z-index: 5; top: 50%; left: 59.2%; display: grid; place-items: center; transform: translate(-50%, -50%); pointer-events: none; }
.employee-choice-divider span { width: 50px; height: 50px; display: grid; place-items: center; border: 1px solid rgba(228, 32, 38, .34); border-radius: 50%; background: #fff; color: var(--red); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 8px 24px rgba(18, 20, 24, .09); }
.employee-choice.is-visible .employee-choice-card:first-child { animation: choice-in-left .58s ease; }
.employee-choice.is-visible .employee-choice-card:last-child { animation: choice-in-right .58s ease; }
.employee-choice.is-visible .employee-choice-divider span { animation: choice-divider-in .55s .12s ease backwards; }
.reveal-section { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s ease; }
.reveal-section.is-visible { opacity: 1; transform: none; }
@keyframes choice-in-left { from { opacity: 0; transform: translateX(-18px); } to { opacity: 1; transform: none; } }
@keyframes choice-in-right { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
@keyframes choice-divider-in { from { opacity: 0; transform: scale(.78); } to { opacity: 1; transform: scale(1); } }
@keyframes choice-route-draw { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes choice-button-sheen-hover { 0% { left: -42%; opacity: 0; } 18% { opacity: .82; } 84% { opacity: .2; } 100% { left: 120%; opacity: 0; } }
@media (max-width: 900px) {
  .employee-choice-grid { grid-template-columns: 1fr; }
  .employee-choice-grid::before { display: none; }
  .employee-choice-card { min-height: 0; }
  .employee-choice-divider { position: relative; top: auto; left: auto; width: 100%; height: 42px; transform: none; display: flex; justify-content: center; background: linear-gradient(to right, var(--red) 0 50%, #fff 50% 100%); }
  .employee-choice-divider span { position: relative; top: -4px; }
}
@media (max-width: 800px) { .employee-choice { padding-right: 20px; padding-left: 20px; } }
@media (max-width: 560px) {
  .employee-choice { padding-top: 12px; padding-bottom: 28px; }
  .employee-choice-card { padding: 25px 24px; }
  .employee-choice-card h3 { font-size: 2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .reveal-section { opacity: 1; transform: none; transition: none; }
  .employee-choice-card,
  .employee-choice-content,
  .employee-choice-grid::before { transition: none; }
  .employee-choice-card:hover .employee-choice-content,
  .employee-choice-card:focus-visible .employee-choice-content { transform: none; }
  .employee-choice.is-visible .employee-choice-card,
  .employee-choice.is-visible .employee-choice-divider span,
  .employee-choice.is-visible .employee-choice-grid::before,
  .employee-choice-card:hover .employee-choice-button::after,
  .employee-choice-card:focus-visible .employee-choice-button::after { animation: none; }
  .seo-accordions details[open] > div { animation: none; }
}
.people-gallery { margin: 22px auto 0; max-width: 660px; }
.people-gallery summary { cursor: pointer; color: #ffd2d4; font-size: .78rem; font-weight: 700; }
.people-gallery > div { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin-top: 14px; }
.people-gallery > div > button { display: grid; min-height: 85px; place-items: center; border: 0; background: rgba(255,255,255,.16); color: #ffe3e4; font: inherit; font-size: .72rem; cursor: zoom-in; }
.people-gallery > div > button { overflow: hidden; transition: transform .22s ease; }
.people-gallery > div > button img { display: block; width: 100%; height: 100%; min-height: 85px; object-fit: cover; filter: grayscale(1); transition: filter .22s ease, transform .22s ease; }
.people-gallery > div > button:hover, .people-gallery > div > button:focus-visible, .people-gallery > div > button:active { transform: scale(1.06); z-index: 1; }
.people-gallery > div > button:hover img, .people-gallery > div > button:focus-visible img, .people-gallery > div > button:active img { filter: grayscale(0); transform: scale(1.04); }
.team .people-gallery { margin: 56px auto 0; max-width: 660px; text-align: center; }
.team .people-gallery summary { display: inline-block; padding: 10px 16px; background: var(--red); color: #fff; }
.team .people-gallery summary::after { content: '↓'; display: inline-block; width: 1em; margin-left: 9px; font: 700 1rem/1 'DM Sans', sans-serif; text-align: center; animation: gallery-arrow 1.7s ease-in-out infinite; }
.team .people-gallery[open] summary::after { transform: rotate(180deg); animation: none; }
.people-gallery .gallery-label-open, .people-gallery[open] .gallery-label-closed { display: none; }
.people-gallery[open] .gallery-label-open { display: inline; }
@keyframes gallery-arrow { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(3px); } }
.team .people-gallery > div > button { background: var(--light); color: var(--gray); }
.gallery-note { margin: 18px auto 0; max-width: 560px; color: var(--gray); font-size: .93rem; }
.gallery-note span { color: var(--red); font-weight: 700; }
.gallery-cta { margin-top: 18px; padding: 8px 12px; font-size: .78rem; }
.team-contact { display: flex; flex-wrap: wrap; gap: 3px 10px; margin-top: 14px; font-size: .77rem; }
.team-grid article { display: flex; flex-direction: column; }
.team-grid article .team-contact { min-height: 56px; margin-top: auto; padding-top: 14px; }
.team-contact a { color: var(--gray); overflow-wrap: anywhere; transition: color .18s ease, font-weight .18s ease; }
.team-contact a[href^="mailto:"], .team-contact a.team-email-request { flex-basis: 100%; }
.team-contact a:hover, .team-contact a:focus-visible, .team-contact a:active { color: var(--red); font-weight: 700; text-decoration: underline; }
.contact-placeholder { align-items: flex-start; }
.contact { background: var(--light); color: var(--ink); }
.contact .eyebrow { color: var(--red); }
.contact .contact-copy > p:not(.eyebrow) { color: var(--gray); }
.contact-placeholder { color: var(--gray); }
.contact-placeholder strong, .contact-placeholder a { color: var(--ink); }
.contact-placeholder a { font-size: 1.06rem; font-weight: 700; }
.contact-placeholder p { line-height: 1.7; }
.contact-form input, .contact-form textarea { color: var(--ink); border-bottom-color: var(--line); }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--red); }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: #aeb1b5; opacity: 1; }
.contact-form select { width: 100%; margin-top: 7px; padding: 13px 0; border: 0; border-bottom: 1px solid #777; border-radius: 0; outline: 0; appearance: auto; background: transparent; color: #aeb1b5; color-scheme: light; font-family: 'DM Sans', sans-serif; font-size: 16px; font-weight: 400; transition: border-color .18s ease; }
.contact-form select:hover, .contact-form select:focus { border-color: var(--red); }
.contact-form select:has(option[value=""]:checked) { color: #aeb1b5; }
.contact-form select option { background: #fff; color: var(--ink); font-family: 'DM Sans', sans-serif; font-weight: 400; }
.contact-form .focus-label { font-size: .8rem; font-weight: 700; color: var(--ink); }
.contact-form .privacy-consent { display: flex; align-items: flex-start; gap: 10px; color: var(--gray); font-size: .82rem; font-weight: 400; line-height: 1.5; }
.contact-form .privacy-consent input { width: 17px; height: 17px; min-width: 17px; margin: 2px 0 0; padding: 0; accent-color: var(--red); }
.contact-form .privacy-consent a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.contact-form .website-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-form button:disabled { cursor: wait; opacity: .7; }
.shop-banner { margin-top: 96px; width: 100%; max-width: none; background: var(--red); }
.service-card.featured p { text-wrap: balance; }
.service-card a { margin-top: auto; transform: translateY(26px); }
@media (min-width: 801px) { .service-card { min-height: 354px; } }
@media (min-width: 1100px) {
  .service-grid { grid-template-columns: repeat(5, 1fr); }
  .service-card { padding: 24px 20px 50px; }
  .service-card h3 { font-size: 1.27rem; }
}
.photo-dialog { width: fit-content; max-width: 92vw; padding: 0; border: 0; background: transparent; box-shadow: none; overflow: visible; }
.photo-dialog::backdrop { background: rgba(0,0,0,.7); }
.dialog-close { position: fixed; top: 20px; right: 24px; z-index: 2; border: 0; background: transparent; color: #fff; font-size: 2.4rem; line-height: 1; cursor: pointer; }
.dialog-image { line-height: 0; }
.dialog-image img { display: block; width: auto; height: auto; max-width: 92vw; max-height: 92vh; }
.dialog-arrow { position: fixed; top: 50%; z-index: 2; width: 52px; height: 52px; border: 0; border-radius: 50%; background: rgba(0,0,0,.46); color: #fff; font: 2.7rem/.8 'DM Sans', sans-serif; cursor: pointer; transform: translateY(-50%); transition: background .2s ease, transform .2s ease; }
.dialog-arrow:hover, .dialog-arrow:focus-visible { background: var(--red); transform: translateY(-50%) scale(1.08); }
.dialog-prev { left: 22px; }.dialog-next { right: 22px; }
@media (max-width: 600px) { .dialog-arrow { width: 42px; height: 42px; font-size: 2.2rem; }.dialog-prev { left: 10px; }.dialog-next { right: 10px; }.dialog-close { top: 10px; right: 14px; } }
@media (prefers-reduced-motion: reduce) { .shop-link::before, .hero-actions .button::before { animation: none; } }
@media (max-width: 800px) { .shop-banner { margin-top: 68px; } }
main { display: flex; flex-direction: column; }
.hero { order: 1; }.services { order: 2; }.team { order: 3; }.logistics { order: 4; }.contact { order: 5; }.shop-banner { order: 6; }.seo-note { order: 7; }
.logistics { width: 100%; max-width: none; min-height: min(610px,calc(100svh - 76px)); padding-top: clamp(24px,2.8vh,34px); padding-bottom: clamp(24px,2.8vh,34px); padding-left: max(36px,calc((100vw - 1380px)/2 + 36px)); padding-right: max(36px,calc((100vw - 1380px)/2 + 36px)); display: grid; grid-template-columns: minmax(0,.92fr) minmax(460px,1.08fr); align-items: center; gap: clamp(28px,3.2vw,48px); background: #fff; border-top: 1px solid var(--line); }
.logistics h2 { margin: 0; font: normal clamp(2rem,2.9vw,3.1rem)/1.03 'DM Serif Display',serif; letter-spacing: -.04em; }
.logistics-copy > p:not(.eyebrow) { max-width: 650px; margin: 14px 0 16px; color: var(--gray); font-size: .93rem; line-height: 1.58; }
.logistics-copy > p + p:not(.logistics-lead) { margin-top: -12px; }
.logistics-copy .logistics-lead { max-width: 650px; margin: 0 0 16px; padding: 11px 15px; border-left: 4px solid var(--red); background: var(--light); }
.logistics-lead strong, .logistics-lead span { display: block; }
.logistics-lead strong { margin-bottom: 5px; color: var(--ink); }
.logistics-points { position: relative; isolation: isolate; min-height: 258px; padding-top: 62px; display: grid; grid-template-columns: repeat(2,1fr); gap: 14px clamp(38px,4.4vw,66px); align-content: center; background: #fff; }
.logistics-points p { position: relative; z-index: 2; min-height: 91px; margin: 0; padding: 13px 12px 12px 18px; display: flex; flex-direction: column; justify-content: space-between; border-top: 1px solid var(--line); background: rgba(255,255,255,.9); transition: background-color .24s ease; }
.logistics-points p::before { content: ''; position: absolute; top: 17px; bottom: 17px; left: 0; width: 2px; border-radius: 2px; background: var(--red); opacity: 0; transform: scaleY(.2); transition: opacity .24s ease, transform .24s ease; }
.logistics-points strong { color: var(--ink); font-size: 1.02rem; transition: color .24s ease, transform .24s ease; }
.logistics-points span { color: var(--gray); font-size: .88rem; line-height: 1.45; transition: color .24s ease, transform .24s ease; }
.logistics-points.is-animated p { opacity: 0; transform: translateY(10px); transition: opacity .42s ease, transform .42s ease, background-color .24s ease, box-shadow .24s ease; }
.logistics-points.is-animated.is-visible p { opacity: 1; transform: none; }
.logistics-points.is-visible p:nth-of-type(2) { transition-delay: .12s; }
.logistics-points.is-visible p:nth-of-type(3) { transition-delay: .24s; }
.logistics-points.is-visible p:nth-of-type(4) { transition-delay: .36s; }
@media (hover: hover) and (pointer: fine) {
  .logistics-points.is-visible p:hover { background: linear-gradient(90deg,rgba(228,32,38,.045),transparent 78%); }
  .logistics-points.is-visible p:hover::before { opacity: 1; transform: scaleY(1); }
  .logistics-points.is-visible p:hover strong { color: var(--red); transform: translateX(3px); }
  .logistics-points.is-visible p:hover span { color: var(--ink); transform: translateX(3px); }
}
@media (prefers-reduced-motion: reduce) {
  .logistics-points.is-animated p { opacity: 1; transform: none; transition: none; }
  .logistics-points strong, .logistics-points span { transition: none; }
  .logistics-points.is-visible p:hover strong, .logistics-points.is-visible p:hover span { transform: none; }
}
@media (max-width: 1000px) { .logistics { grid-template-columns: 1fr; min-height: auto; }.logistics-points { width: 100%; max-width: 760px; } }
@media (max-width: 800px) { .logistics { padding: 52px 20px; } }
@media (max-width: 560px) { .logistics-points { min-height: auto; padding-top: 0; grid-template-columns: 1fr; gap: 0; }.logistics-points p { min-height: 96px; }}
@media (max-width: 480px) { .seo-note { padding: 24px 20px 10px; } }
@media (max-width: 800px) {
  main, .seo-note { min-width: 0; }
  .seo-note { width: 100%; }
  .seo-accordion-columns { grid-template-columns: 1fr; gap: 0; }
  .seo-compact-pair { grid-template-columns: 1fr; column-gap: 0; }
  .seo-compact-pair > #preise > summary { grid-column: 1; grid-row: 1; }
  .seo-compact-pair > #anlaesse > summary { grid-column: 1; grid-row: 2; }
  .seo-compact-pair > #preise > .pricing-guide { grid-column: 1; grid-row: 3; }
  .seo-compact-pair > #anlaesse > .seo-occasion-content { grid-column: 1; grid-row: 4; }
  .seo-accordion-column + .seo-accordion-column details:first-child,
  .seo-accordion-wide .pricing-accordion:first-child { border-top: 0; }
}
@media (max-width: 800px) { .service-grid { grid-template-columns: repeat(2, 1fr); } }

/* Einheitlicher, kompakter Seitenabschluss */
footer { min-height: 62px; padding: 8px 36px; }
footer .brand { flex: 0 0 118px; }
footer .brand img { width: 118px; height: 42px; object-fit: contain; object-position: left center; }
footer p { margin: 0; }
@media (max-width: 800px) { footer { min-height: 58px; padding: 8px 20px; row-gap: 8px; } footer .brand { flex-basis: 108px; } footer .brand img { width: 108px; height: 38px; } }
@media (max-width: 480px) { .service-grid { grid-template-columns: 1fr; } }
@media (max-width: 800px) { .site-header:not(.is-compact) { height: 94px; padding-left: 20px; padding-right: 20px; }.site-header:not(.is-compact) .main-nav { font-size: 1rem; }.site-header:not(.is-compact) .brand img { max-height: calc(100% - 14px); } }
@media (max-width: 800px) { .site-header.is-compact { height: 72px; }.site-header.is-compact .brand img { max-height: calc(100% - 10px); } }

/* Zwei klare Wege je Leistung: informieren oder direkt anfragen. */
.service-card .service-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; margin-top: auto; padding-top: 24px; }
.service-card .service-actions a { margin-top: 0; }
.service-card .service-more { padding: 2px 0; background: transparent; color: var(--ink); border-bottom: 1px solid currentColor; }
.service-card .service-request { padding: 10px 13px; background: var(--red); color: #fff; }
.service-card.featured .service-more { background: transparent; color: #fff; }
.service-card.featured .service-request { background: #fff; color: var(--red); }
@media (hover: hover) {
  .service-card { transition: background .22s ease, color .22s ease; }
  .service-card:hover .service-more, .service-card:focus-within .service-more { background: transparent; color: #fff; }
  .service-card:hover .service-request, .service-card:focus-within .service-request { background: #fff; color: var(--red); }
  .service-grid:has(.service-card:hover) .service-card.featured:not(:hover) .service-more { background: transparent; color: var(--ink); }
  .service-grid:has(.service-card:hover) .service-card.featured:not(:hover) .service-request { background: var(--red); color: #fff; }
}
@media (prefers-reduced-motion: reduce) { .service-card, .service-card .service-actions a { transition: none; }.service-card:hover .service-actions a, .service-card:focus-within .service-actions a { transform: none; } }
@media (min-width: 801px) { .service-card { min-height: 430px; } }

@media (max-width: 800px) {
  .nav-services { width: 100%; display: grid; grid-template-columns: minmax(0,1fr) 42px; align-items: center; }
  .nav-services::after { display: none; }
  .nav-services-link { padding: 10px; }
  .nav-services-toggle { width: 42px; height: 42px; margin: 0; }
  .nav-services-menu,
  .nav-services:hover .nav-services-menu,
  .nav-services:focus-within .nav-services-menu { position: static; grid-column: 1 / -1; width: auto; margin: 0 10px 8px; padding: 4px 0 4px 10px; display: none; border: 0; border-left: 1px solid rgba(228,32,38,.32); box-shadow: none; opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition: none; }
  .nav-services.is-open .nav-services-menu { display: block; }
  .nav-services-menu a { padding: 10px 12px 10px 18px; font-size: .9rem; }
}

@media (prefers-reduced-motion: reduce) {
  .nav-services-menu,
  .nav-services-menu a,
  .nav-services-menu a::before,
  .nav-services-toggle span { transition: none; }
}

/* Preserve header clearance for direct links to the service overview as well. */
#leistungen { scroll-margin-top: 138px; }
.site-header.is-compact ~ main #leistungen { scroll-margin-top: 116px; }
@media (max-width: 800px) {
  #leistungen { scroll-margin-top: 106px; }
  .site-header.is-compact ~ main #leistungen { scroll-margin-top: 84px; }
}

/* Leistungen auf großen Bildschirmen vollständig in einer Ansicht zeigen. */
@media (min-width: 1100px) {
  .services {
    padding-top: clamp(24px, 3.4vh, 42px);
    padding-bottom: clamp(24px, 3.4vh, 42px);
  }

  .services .section-heading {
    max-width: 820px;
    margin-bottom: clamp(18px, 2.4vh, 28px);
  }

  .services .section-heading .eyebrow {
    margin-bottom: 8px;
  }

  .services .section-heading h2 {
    font-size: clamp(2.35rem, 3.25vw, 3.35rem);
    line-height: 1;
  }

  .services .section-heading > p:last-child {
    margin: 12px 0 0;
    font-size: .96rem;
    line-height: 1.42;
  }

  .services .service-card {
    min-height: clamp(342px, 47vh, 372px);
    padding: 17px 16px 22px;
  }

  .services .service-card h3 {
    min-height: 54px;
    margin: 24px 0 10px;
    font-size: 1.12rem;
    line-height: 1.16;
  }

  .services .service-card p {
    font-size: .88rem;
    line-height: 1.43;
  }

  .services .service-card .service-actions {
    gap: 6px;
    padding-top: 14px;
  }

  .services .service-card .service-actions a {
    transform: none;
    font-size: .82rem;
  }

  .services .service-card .service-request {
    padding: 8px 11px;
  }
}

/* Anfragebereich auf Desktop vollständig und ohne Funktionsverlust zeigen. */
@media (min-width: 1100px) {
  .contact {
    min-height: calc(100svh - 104px);
    padding-top: clamp(26px, 3.5vh, 42px);
    padding-bottom: clamp(26px, 3.5vh, 42px);
    grid-template-columns: minmax(360px, .82fr) minmax(600px, 1.18fr);
    gap: clamp(48px, 5.5vw, 82px);
    align-items: center;
  }

  .contact .eyebrow {
    margin-bottom: 9px;
  }

  .contact h2 {
    max-width: 560px;
    font-size: clamp(2.45rem, 3.55vw, 3.55rem);
    line-height: 1;
  }

  .contact-copy > p:not(.eyebrow) {
    margin: 16px 0 0;
    font-size: .94rem;
    line-height: 1.5;
  }

  .contact-placeholder {
    margin-top: 24px;
    gap: clamp(24px, 3vw, 42px);
    font-size: .88rem;
  }

  .contact-placeholder p {
    line-height: 1.52;
  }

  .contact-placeholder a {
    font-size: .96rem;
  }

  .contact-form {
    gap: 10px 18px;
    align-content: center;
  }

  .contact-form input,
  .contact-form select,
  .contact-form textarea {
    margin-top: 4px;
    padding-top: 8px;
    padding-bottom: 8px;
    font-size: .94rem;
  }

  .contact-form textarea {
    min-height: 62px;
    max-height: 78px;
    resize: vertical;
  }

  .contact-form .privacy-consent {
    font-size: .76rem;
    line-height: 1.38;
  }

  .contact-form button {
    margin-top: 2px;
    padding: 12px 18px;
  }
}

/* Einheitliche Größenhierarchie der Hauptabschnitte. */
@media (min-width: 1100px) {
  .services .section-heading h2,
  .team .section-heading h2,
  .contact h2 {
    font-size: clamp(2.35rem, 3.25vw, 3.35rem);
    line-height: 1;
  }

  .logistics h2 {
    font-size: clamp(2.25rem, 3vw, 3.15rem);
    line-height: 1.03;
  }
}
