/**
 * Theme Name:     Sudhaus Theme
 * Author:         Sudhaus
 * Template:       Divi
 * Text Domain:	   Sudhaus Theme
 * Description:    Child-Theme für sudhaus-sha.de
 */

/* ===== Rechtstexte (Impressum, Datenschutz, Cookies, AGB) ===== */
.sudhaus-legal { max-width: 860px; margin: 0 auto; padding: 72px 0 120px; color: #1E1B18; font-family: 'Wuerth Sans Book', sans-serif; font-size: 17px; line-height: 1.65; }
.sudhaus-legal h1 { font-family: 'Wuerth Sans Black Condensed', sans-serif; font-size: clamp(40px, 6vw, 76px); line-height: .9; text-transform: uppercase; margin: 0 0 56px; padding: 0; -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
.sudhaus-legal h2 { font-family: 'Wuerth Sans Black Condensed', sans-serif; font-size: 28px; line-height: 1.1; text-transform: uppercase; margin: 56px 0 16px; padding: 0; }
.sudhaus-legal p { margin: 0 0 16px; padding: 0; }
.sudhaus-legal ul { margin: 0 0 16px 20px; padding: 0; }
.sudhaus-legal li { margin-bottom: 6px; }
.sudhaus-legal a { color: #9B6756; text-decoration: underline; text-underline-offset: 3px; word-break: break-word; }
.sudhaus-legal__table { overflow-x: auto; margin: 0 0 16px; }
.sudhaus-legal table { border-collapse: collapse; min-width: 720px; font-size: 14px; line-height: 1.5; border: 0; }
.sudhaus-legal th, .sudhaus-legal td { text-align: left; vertical-align: top; padding: 12px 14px 12px 0; border: 0; border-bottom: 1px solid #D8CBBE; }
.sudhaus-legal th { font-family: 'Wuerth Sans DemiBold', sans-serif; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #9B6756; }
@media (max-width: 767px) {
	.sudhaus-legal { padding: 48px 0 80px; font-size: 16px; }
	.sudhaus-legal h1 { margin-bottom: 40px; }
	.sudhaus-legal h2 { font-size: 22px; margin-top: 44px; -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
}

/* ===== Header, Mobil-Menü, Reservieren-Leiste, Reservierung ===== */
:root {
	--sh-kupfer: #9B6756; --sh-kupfer-dunkel: #7E5244; --sh-malz: #F4EFE8; --sh-sud: #D8CBBE;
	--sh-gruen: #26302A; --sh-tinte: #1E1B18; --sh-stein: #5E544C;
	--sh-cond: 'Wuerth Sans Black Condensed', 'Arial Narrow', sans-serif;
	--sh-book: 'Wuerth Sans Book', Helvetica, Arial, sans-serif;
	--sh-bold: 'Wuerth Sans DemiBold', Helvetica, Arial, sans-serif;
	--sh-pad: clamp(20px, 4vw, 56px);
	--sh-ease: cubic-bezier(.2, .7, .2, 1);
}
.sh-topbar, .sh-header, .sh-menu, .sh-dock, .sh-res { box-sizing: border-box; font-synthesis: none; -webkit-font-smoothing: antialiased; }
.sh-topbar *, .sh-header *, .sh-menu *, .sh-dock *, .sh-res * { box-sizing: border-box; }
html.sh-lock, html.sh-lock body { overflow: hidden; }

/* Buttons */
.sh-btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 50px; padding: 0 28px; border-radius: 999px; font-family: var(--sh-bold); font-weight: 400; font-size: 13px; line-height: 1; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background .35s var(--sh-ease), color .35s var(--sh-ease), border-color .35s var(--sh-ease), transform .35s var(--sh-ease); }
.sh-btn:active { transform: scale(.98); }
.sh-btn--k { background: var(--sh-kupfer); color: var(--sh-malz); }
.sh-btn--k:hover { background: var(--sh-kupfer-dunkel); color: var(--sh-malz); }
.sh-btn--plain { background: transparent; color: var(--sh-malz); }
.sh-icon-btn { width: 48px; height: 48px; padding: 0; border-radius: 999px; border: 1px solid currentColor; background: transparent; color: inherit; display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; }
.sh-kicker { font-family: var(--sh-bold); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--sh-kupfer); margin: 0; padding: 0; }
.sh-header :focus-visible, .sh-menu :focus-visible, .sh-dock :focus-visible, .sh-res :focus-visible { outline: 2px solid var(--sh-kupfer); outline-offset: 3px; }

/* Topbar */
.sh-topbar { position: relative; z-index: 9989; background: var(--sh-kupfer); color: var(--sh-malz); font-family: var(--sh-book); font-weight: 400; font-size: 14px; line-height: 1.5; letter-spacing: .01em; text-align: center; padding: 10px var(--sh-pad); }
.sh-topbar a { color: var(--sh-malz); font-family: var(--sh-bold); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; margin-left: 6px; white-space: nowrap; }
.sh-topbar a:hover { text-decoration-thickness: 2px; color: var(--sh-malz); }

/* Header: oben transparent über dem Hero, nach dem ersten Scrollen fest mit leichtem Blur */
.sh-header { position: fixed; top: 38px; left: 0; right: 0; z-index: 9990; background: transparent; transition: background .5s var(--sh-ease), box-shadow .5s, -webkit-backdrop-filter .5s, backdrop-filter .5s; }
.sh-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: 1600px; margin: 0 auto; padding: 22px var(--sh-pad); transition: padding .5s var(--sh-ease); }
.sh-brand { display: block; line-height: 0; }
.sh-brand svg { width: 128px; height: auto; display: block; fill: var(--sh-malz); transition: fill .5s; }
.sh-nav { display: flex; gap: 30px; }
.sh-nav a { position: relative; font-family: var(--sh-cond); font-weight: 400; font-size: 17px; line-height: 1.3; letter-spacing: .07em; text-transform: uppercase; text-decoration: none; color: var(--sh-malz); transition: color .3s; }
.sh-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .45s var(--sh-ease); }
.sh-nav a:hover::after, .sh-nav a[aria-current="page"]::after { transform: scaleX(1); }
.sh-header__cta { flex-shrink: 0; }
.sh-menu-btn { display: none; width: 48px; height: 48px; padding: 0; border-radius: 999px; border: 1px solid rgba(244, 239, 232, .7); background: transparent; cursor: pointer; align-items: center; justify-content: center; }
.sh-menu-btn span, .sh-menu-btn span::before, .sh-menu-btn span::after { display: block; width: 18px; height: 1.5px; background: var(--sh-malz); transition: background .3s; }
.sh-menu-btn span { position: relative; }
.sh-menu-btn span::before, .sh-menu-btn span::after { content: ""; position: absolute; left: 0; }
.sh-menu-btn span::before { top: -6px; }
.sh-menu-btn span::after { top: 6px; }

.sh-header.is-solid { background: rgba(244, 239, 232, .78); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%); box-shadow: 0 1px 0 rgba(216, 203, 190, .8); }
.sh-header.is-scrolled .sh-header__inner { padding-top: 14px; padding-bottom: 14px; }
.sh-header.is-solid .sh-brand svg { fill: var(--sh-kupfer); }
.sh-header.is-solid .sh-nav a { color: var(--sh-tinte); }
.sh-header.is-solid .sh-menu-btn { border-color: var(--sh-tinte); }
.sh-header.is-solid .sh-menu-btn span, .sh-header.is-solid .sh-menu-btn span::before, .sh-header.is-solid .sh-menu-btn span::after { background: var(--sh-tinte); }

/* Platzhalter, damit Seiten ohne Hero-Bild nicht unter dem Header beginnen */
.sh-header-spacer { height: 94px; }
html.sh-has-hero .sh-header-spacer { display: none; }

/* Mobil-Menü */
.sh-menu { position: fixed; inset: 0; z-index: 9995; background: var(--sh-gruen); color: var(--sh-malz); padding: calc(env(safe-area-inset-top, 0px) + 22px) var(--sh-pad) calc(env(safe-area-inset-bottom, 0px) + 28px); display: flex; flex-direction: column; justify-content: space-between; clip-path: inset(0 0 100% 0); visibility: hidden; transition: clip-path .7s var(--sh-ease), visibility 0s .7s; }
.sh-menu.is-open { clip-path: inset(0 0 0 0); visibility: visible; transition: clip-path .7s var(--sh-ease), visibility 0s; }
.sh-menu__top { display: flex; justify-content: space-between; align-items: center; }
.sh-menu__logo { line-height: 0; }
.sh-menu__logo svg { width: 110px; height: auto; display: block; fill: var(--sh-malz); }
.sh-menu__mark { position: absolute; right: var(--sh-pad); top: 50%; transform: translateY(-50%); height: 62vh; pointer-events: none; }
.sh-menu__mark svg { height: 100%; width: auto; display: block; fill: rgba(244, 239, 232, .1); }
.sh-menu__nav { position: relative; display: flex; flex-direction: column; }
.sh-menu__nav a { font-family: var(--sh-cond); font-weight: 400; text-transform: uppercase; font-size: clamp(40px, 11vw, 72px); line-height: 1; color: var(--sh-malz); text-decoration: none; padding: 10px 0; border-bottom: 1px solid rgba(244, 239, 232, .18); -webkit-hyphens: auto; hyphens: auto; }
.sh-menu__cta { align-self: stretch; }

/* Reservieren-Leiste (nur mobil) */
.sh-dock { position: fixed; z-index: 9980; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); display: none; gap: 6px; padding: 6px; background: var(--sh-tinte); border-radius: 999px; box-shadow: 0 12px 30px rgba(0, 0, 0, .28); transform: translateY(160%); transition: transform .6s var(--sh-ease); }
.sh-dock.is-visible { transform: none; }
.sh-dock .sh-btn { flex: 1; min-height: 48px; padding: 0 10px; font-size: 12px; }

/* Reservierung */
.sh-res { position: fixed; inset: 0; z-index: 9998; display: flex; align-items: center; justify-content: center; padding: 24px; visibility: hidden; transition: visibility 0s .6s; }
.sh-res.is-open { visibility: visible; transition: visibility 0s; }
.sh-res__backdrop { position: absolute; inset: 0; background: rgba(20, 18, 16, .6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transition: opacity .5s; }
.sh-res.is-open .sh-res__backdrop { opacity: 1; }
.sh-res__panel { position: relative; width: min(1080px, 100%); height: min(820px, calc(100vh - 48px)); background: var(--sh-malz); color: var(--sh-tinte); display: grid; grid-template-columns: 360px 1fr; overflow: hidden; opacity: 0; transform: translateY(30px) scale(.98); transition: opacity .5s var(--sh-ease), transform .6s var(--sh-ease); }
.sh-res.is-open .sh-res__panel { opacity: 1; transform: none; }
.sh-res__panel:focus { outline: none; }
.sh-res__aside { position: relative; background: var(--sh-tinte); color: var(--sh-malz); overflow: hidden; }
.sh-res__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; }
.sh-res__aside::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(30, 27, 24, 0) 40%, rgba(30, 27, 24, .88) 100%); }
.sh-res__info { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 28px; font-family: var(--sh-book); font-size: 14px; line-height: 1.6; }
.sh-res__info svg { display: block; width: 130px; height: auto; fill: var(--sh-malz); margin-bottom: 14px; }
.sh-res__info a { color: var(--sh-malz); }
.sh-res__main { position: relative; display: flex; flex-direction: column; gap: 14px; min-height: 0; padding: 40px 48px 28px; font-family: var(--sh-book); font-size: 16px; line-height: 1.6; }
.sh-res__close { position: absolute; top: 20px; right: 20px; color: var(--sh-tinte); }
.sh-res__title { font-family: var(--sh-cond); font-weight: 400; text-transform: uppercase; font-size: clamp(40px, 4.4vw, 56px); line-height: .9; color: var(--sh-tinte); margin: 0; padding: 0; }
.sh-res__widget { position: relative; flex: 1 1 auto; min-height: 0; margin: 0 -8px; }
.sh-res__widget > div, .sh-res__widget iframe { display: block; width: 100%; height: 100%; border: 0; }
.sh-res__status { position: absolute; top: 8px; left: 8px; margin: 0; padding: 0; color: var(--sh-stein); font-size: 14px; }
.sh-res__note { margin: 0; padding: 14px 0 0; border-top: 1px solid var(--sh-sud); font-size: 13px; line-height: 1.6; color: var(--sh-stein); }
.sh-res__note a { color: var(--sh-kupfer); }

/* Responsive */
@media (max-width: 1080px) {
	.sh-nav, .sh-header__cta { display: none; }
	.sh-menu-btn { display: flex; }
}
@media (max-width: 860px) {
	.sh-hide-m { display: none; }
	.sh-topbar { font-size: 13px; padding: 9px 16px; }
	.sh-dock { display: flex; }
	.sh-res { padding: 0; align-items: flex-end; }
	.sh-res__panel { grid-template-columns: 1fr; height: 92vh; height: 92dvh; border-radius: 22px 22px 0 0; transform: translateY(100%); }
	.sh-res__aside { display: none; }
	.sh-res__main { padding: 26px 20px calc(16px + env(safe-area-inset-bottom, 0px)); }
	.sh-res__title { padding-right: 56px; }
}
@media (prefers-reduced-motion: reduce) {
	.sh-header, .sh-header *, .sh-menu, .sh-dock, .sh-res, .sh-res * { transition-duration: .01ms !important; }
}

/* ===== Footer ===== */
.sh-footer { box-sizing: border-box; background: var(--sh-tinte); color: var(--sh-malz); padding: clamp(80px, 9vw, 110px) 0 36px; font-family: var(--sh-book); font-synthesis: none; -webkit-font-smoothing: antialiased; }
.sh-footer * { box-sizing: border-box; }
.sh-footer__wrap { max-width: 1320px; margin: 0 auto; padding: 0 var(--sh-pad); }
.sh-footer__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; font-size: 15px; line-height: 1.7; }
.sh-footer h3 { font-family: var(--sh-bold); font-weight: 400; font-size: 12px; line-height: 1.4; letter-spacing: .2em; text-transform: uppercase; color: #C9A08F; margin: 0 0 12px; padding: 0; }
.sh-footer p { margin: 0; padding: 0; }
.sh-footer a { color: var(--sh-malz); text-decoration: none; transition: color .3s; }
.sh-footer a:hover { color: #C9A08F; }
.sh-footer__nav { display: flex; flex-direction: column; align-items: flex-start; }
.sh-footer__muted { margin-top: 16px !important; color: #C8BFB4; }
.sh-footer__mark { margin: 72px 0 26px; line-height: 0; }
.sh-footer__mark svg { width: 100%; height: auto; display: block; fill: var(--sh-kupfer); }
.sh-footer__legal { display: flex; justify-content: space-between; align-items: center; gap: 16px 24px; flex-wrap: wrap; font-size: 13px; line-height: 1.5; color: #C8BFB4; border-top: 1px solid rgba(244, 239, 232, .15); padding-top: 22px; }
.sh-footer__group { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.sh-footer__group img { display: block; height: 34px; width: auto; padding: 7px 12px; background: var(--sh-malz); border-radius: 4px; }
.sh-footer__links { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.sh-footer__links a { color: #C8BFB4; }
@media (max-width: 860px) {
	.sh-footer__grid { grid-template-columns: 1fr 1fr; }
	.sh-footer { padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 520px) {
	.sh-footer__grid { grid-template-columns: 1fr; }
}

/* ===== Startseite ([sudhaus_startseite]) ===== */
.sh-home { --sh-sud: #D8CBBE; --sh-oase: #8B9D7E; --sh-kupfer-hell: #C9A08F; background: var(--sh-malz); color: var(--sh-tinte); font-family: var(--sh-book); font-size: 17px; line-height: 1.6; font-synthesis: none; -webkit-font-smoothing: antialiased; overflow-x: clip; }
.sh-home *, .sh-home *::before, .sh-home *::after { box-sizing: border-box; }
.sh-home h1, .sh-home h2, .sh-home h3, .sh-home p, .sh-home figure, .sh-home ul, .sh-home ol, .sh-home dl, .sh-home dd { margin: 0; padding: 0; font-weight: 400; color: inherit; }
.sh-home img { max-width: 100%; display: block; }
.sh-home a { color: inherit; }
.sh-home .wrap { max-width: 1320px; margin: 0 auto; padding: 0 var(--sh-pad); }
.sh-home .cond { font-family: var(--sh-cond); font-weight: 400; text-transform: uppercase; line-height: .9; letter-spacing: .004em; }
.sh-home .kicker { font-family: var(--sh-bold); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.sh-home .sh-btn--ghost { color: var(--sh-malz); border-color: rgba(244, 239, 232, .7); background: rgba(30, 27, 24, .2); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.sh-home .sh-btn--ghost:hover { background: rgba(244, 239, 232, .16); color: var(--sh-malz); }
.sh-home .sh-btn--line { color: var(--sh-tinte); border-color: var(--sh-tinte); background: transparent; }
.sh-home .sh-btn--line:hover { background: var(--sh-tinte); color: var(--sh-malz); }
.sh-home .link { font-family: var(--sh-bold); font-size: 13px; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; padding-bottom: 6px; background: linear-gradient(var(--sh-kupfer), var(--sh-kupfer)) left bottom / 100% 1px no-repeat; transition: background-size .5s var(--sh-ease), color .3s; align-self: flex-start; }
.sh-home .link:hover { color: var(--sh-kupfer); background-size: 40% 1px; }

/* Reveal-Animationen */
.sh-home .reveal-img { clip-path: inset(100% 0 0 0); transition: clip-path 1.4s var(--sh-ease); }
.sh-home .reveal-img.in { clip-path: inset(0 0 0 0); }
.sh-home .line-mask { display: block; overflow: hidden; padding-bottom: .04em; }
.sh-home .line-mask > span { display: block; transform: translateY(105%); transition: transform 1.1s var(--sh-ease); }
.sh-home .in .line-mask > span, .sh-home .line-mask.in > span { transform: none; }

/* Hero */
.sh-home .hero { position: relative; height: calc(100vh - 41px); height: calc(100svh - 41px); min-height: 640px; max-height: 1040px; overflow: hidden; background: var(--sh-tinte); color: var(--sh-malz); display: flex; flex-direction: column; }
.sh-home .hero-media { position: absolute; inset: -8% 0 0 0; will-change: transform; }
.sh-home .hero-media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); animation: shHeroZoom 2.4s var(--sh-ease) both; }
.sh-home .hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(20, 18, 16, .66) 0%, rgba(20, 18, 16, .5) 35%, rgba(20, 18, 16, .56) 100%); }
.sh-home .hero-content { position: relative; z-index: 2; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 26px; text-align: center; padding: 120px var(--sh-pad) clamp(80px, 11vh, 130px); }
.sh-home .hero-welcome { display: flex; align-items: center; gap: 18px; font-family: var(--sh-bold); font-size: clamp(15px, 1.35vw, 20px); line-height: 1; letter-spacing: .42em; text-transform: uppercase; color: var(--sh-malz); margin-right: -.42em; opacity: 0; animation: shFadeUp 1s .9s var(--sh-ease) both; }
.sh-home .hero-welcome::before, .sh-home .hero-welcome::after { content: ""; width: clamp(28px, 4vw, 56px); height: 1px; background: rgba(244, 239, 232, .7); }
.sh-home .hero-welcome::after { margin-left: -.42em; }
.sh-home .cta-bracket { display: flex; flex-direction: column; gap: 10px; padding: 14px 22px; border-left: 1px solid rgba(244, 239, 232, .65); border-right: 1px solid rgba(244, 239, 232, .65); border-radius: 24px; opacity: 0; animation: shFadeUp 1s 1.1s var(--sh-ease) both; }
.sh-home .cta-bracket .sh-btn { min-width: 240px; }
.sh-home .hero-mark { --lw: min(100vw - 2 * var(--sh-pad), 1240px, max(520px, (100vh - 460px) * 3.37)); position: relative; z-index: 3; flex-shrink: 0; overflow: hidden; }
.sh-home .hero-mark svg { position: relative; z-index: 1; display: block; width: var(--lw); height: auto; margin: 0 auto calc(var(--lw) * -.03); fill: var(--sh-malz); transform: translateY(100%); animation: shMarkRise 1.5s .25s var(--sh-ease) forwards; }
.sh-home .hero-strip { position: relative; z-index: 2; height: calc(var(--lw) * .03 + 26px); background: var(--sh-malz); }
.sh-home .scroll-hint { position: absolute; z-index: 4; right: var(--sh-pad); bottom: 30%; font-family: var(--sh-bold); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; writing-mode: vertical-rl; opacity: .8; display: flex; align-items: center; gap: 12px; }
.sh-home .scroll-hint::after { content: ""; width: 1px; height: 48px; background: var(--sh-malz); animation: shHint 2.2s ease-in-out infinite; }
@keyframes shHeroZoom { from { transform: scale(1.18); } to { transform: scale(1.08); } }
@keyframes shMarkRise { to { transform: none; } }
@keyframes shLineUp { from { transform: translateY(105%); } to { transform: none; } }
@keyframes shFadeUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes shHint { 0%, 100% { transform: scaleY(.3); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } }

/* Intro */
.sh-home .intro { padding: clamp(80px, 10vw, 150px) 0 clamp(80px, 9vw, 130px); }
.sh-home .intro .wrap.intro-grid { display: grid; grid-template-columns: auto minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 100px); align-items: start; }
.sh-home .intro-mark { width: clamp(28px, 2.6vw, 36px); margin-right: calc(clamp(40px, 7vw, 100px) * -.4); align-self: stretch; }
.sh-home .intro-mark svg { width: 100%; height: auto; display: block; fill: var(--sh-kupfer); }
.sh-home .intro h1 { font-size: clamp(46px, 6.4vw, 96px); }
.sh-home .intro .lead { font-size: clamp(18px, 1.5vw, 21px); line-height: 1.6; max-width: 36em; }
.sh-home .hours { margin: 34px 0 36px; border-top: 1px solid var(--sh-sud); }
.sh-home .hours div { display: grid; grid-template-columns: 140px 1fr; padding: 15px 0; border-bottom: 1px solid var(--sh-sud); }
.sh-home .hours dt { font-family: var(--sh-bold); }
.sh-home .btn-row { display: flex; gap: 12px; flex-wrap: wrap; }
.sh-home .intro-figure { position: relative; overflow: hidden; margin-top: clamp(64px, 8vw, 120px); aspect-ratio: 21 / 9; background: var(--sh-sud); }
.sh-home .intro-figure img { position: absolute; inset: -10% 0; width: 100%; height: 120%; max-width: none; object-fit: cover; object-position: 50% 45%; will-change: transform; }

/* Laufband */
.sh-home .band { background: var(--sh-kupfer); color: var(--sh-malz); overflow: hidden; padding: 18px 0; }
.sh-home .band-track { display: flex; width: max-content; will-change: transform; }
.sh-home .band-track span { font-family: var(--sh-cond); text-transform: uppercase; font-size: clamp(30px, 3.4vw, 46px); line-height: 1; padding: 0 28px; white-space: nowrap; display: flex; align-items: center; gap: 56px; }
.sh-home .band-track span::after { content: ""; width: 12px; height: 12px; border-radius: 999px; background: var(--sh-malz); opacity: .55; }

/* Angebote */
.sh-home .offers { padding: clamp(90px, 11vw, 160px) 0 clamp(90px, 11vw, 150px); }
.sh-home .offers .wrap { display: flex; flex-direction: column; gap: clamp(90px, 11vw, 160px); }
.sh-home .offer { display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(36px, 6vw, 90px); align-items: center; }
.sh-home .offer.flip { grid-template-columns: 1fr 1.25fr; }
.sh-home .offer.flip .offer-media { order: 2; }
.sh-home .offer-media { position: relative; overflow: hidden; aspect-ratio: 5 / 4; background: var(--sh-sud); }
.sh-home .offer-media img { position: absolute; inset: -10% 0; width: 100%; height: 120%; max-width: none; object-fit: cover; will-change: transform; }
.sh-home .offer-text { display: flex; flex-direction: column; gap: 22px; max-width: 30em; }
.sh-home .offer-text h2 { font-size: clamp(56px, 6.4vw, 96px); -webkit-hyphens: manual; hyphens: manual; }
.sh-home .offer-text .meta { font-family: var(--sh-bold); font-size: 15px; }

/* Brücke + Events */
.sh-home .bridge { position: relative; height: clamp(420px, 62vw, 760px); overflow: hidden; background: var(--sh-tinte); }
.sh-home .bridge img { position: absolute; inset: -14% 0; width: 100%; height: 128%; max-width: none; object-fit: cover; object-position: 50% 30%; will-change: transform; filter: brightness(1.22) contrast(.92); }
.sh-home .bridge-caption { position: absolute; z-index: 2; top: clamp(36px, 5vw, 64px); left: 0; right: 0; text-align: center; color: var(--sh-malz); text-shadow: 0 1px 12px rgba(0, 0, 0, .45); }
.sh-home .events { background: var(--sh-gruen); color: var(--sh-malz); padding: 0 0 clamp(90px, 11vw, 150px); }
.sh-home .bridge-word { --fs: clamp(130px, 29vw, 430px); position: relative; z-index: 2; display: block; font-size: var(--fs); margin: calc(var(--fs) * -.74) 0 clamp(48px, 6vw, 90px); text-align: center; color: var(--sh-gruen); white-space: nowrap; will-change: transform; }
.sh-home .events .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 7vw, 100px); align-items: center; }
.sh-home .events h2 { font-size: clamp(56px, 6.4vw, 92px); }
.sh-home .event-list { list-style: none; margin: 30px 0 36px; padding: 0; border-top: 1px solid rgba(244, 239, 232, .25); }
.sh-home .event-list li { margin: 0; padding: 0; list-style: none; }
.sh-home .event-list a { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid rgba(244, 239, 232, .25); color: var(--sh-malz); text-decoration: none; font-family: var(--sh-cond); text-transform: uppercase; font-size: clamp(26px, 2.5vw, 36px); line-height: 1; transition: padding .45s var(--sh-ease), color .3s; }
.sh-home .event-list a svg { width: 22px; height: 22px; flex-shrink: 0; transition: transform .45s var(--sh-ease); }
.sh-home .event-list a:hover { padding-left: 14px; color: var(--sh-kupfer-hell); }
.sh-home .event-list a:hover svg { transform: translateX(6px); }
.sh-home .events-media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; }
.sh-home .events-media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); }

/* Geschichte */
.sh-home .history { padding: clamp(90px, 11vw, 160px) 0 clamp(70px, 8vw, 120px); }
.sh-home .history .wrap { display: grid; grid-template-columns: .8fr 1.3fr; gap: clamp(40px, 7vw, 100px); align-items: center; }
.sh-home .history-sketch { mix-blend-mode: multiply; max-width: 440px; width: 100%; height: auto; justify-self: center; }
.sh-home .history h2 { font-size: clamp(56px, 6.4vw, 92px); margin-bottom: 34px; }
.sh-home .timeline { list-style: none; margin: 0; padding: 24px 0 0; border-top: 1px solid var(--sh-tinte); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.sh-home .timeline li { margin: 0; padding: 0; list-style: none; }
.sh-home .timeline .cond { font-size: clamp(34px, 3.2vw, 44px); color: var(--sh-kupfer); display: block; margin-bottom: 8px; }
.sh-home .timeline p { font-size: 15px; line-height: 1.5; }

/* Eindrücke (Bento) */
.sh-home .bento { padding: 0 0 clamp(90px, 11vw, 160px); }
.sh-home .bento-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px 40px; flex-wrap: wrap; margin-bottom: clamp(32px, 4vw, 56px); }
.sh-home .bento-head .kicker { color: var(--sh-kupfer); margin-bottom: 14px; }
.sh-home .bento-head h2 { font-size: clamp(52px, 6vw, 92px); }
.sh-home .bento-head p:not(.kicker) { max-width: 26em; color: var(--sh-stein); }
.sh-home .bento-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 17vw, 250px); gap: clamp(10px, 1.2vw, 16px); }
.sh-home .bento-item { position: relative; overflow: hidden; background: var(--sh-sud); }
.sh-home .bento-item img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transform: scale(1.08); transition: transform 1.6s var(--sh-ease); }
.sh-home .bento-item.in img { transform: scale(1); }
.sh-home .bento-item:hover img { transform: scale(1.05); }
.sh-home .bento-item:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 3; }
.sh-home .bento-item:nth-child(2) { grid-column: 3 / 4; grid-row: 1 / 2; }
.sh-home .bento-item:nth-child(3) { grid-column: 4 / 5; grid-row: 1 / 3; }
.sh-home .bento-item:nth-child(4) { grid-column: 3 / 4; grid-row: 2 / 3; }
.sh-home .bento-item:nth-child(5) { grid-column: 1 / 2; grid-row: 3 / 4; }
.sh-home .bento-item:nth-child(6) { grid-column: 2 / 5; grid-row: 3 / 4; }

/* Responsive */
@media (max-width: 860px) {
	.sh-home { font-size: 16px; }
	.sh-home .hero { height: 82vh; height: 82svh; min-height: 560px; max-height: 740px; }
	.sh-home .hero-mark { --lw: calc(100vw - 24px); }
	.sh-home .hero-content { padding-bottom: 96px; gap: 22px; }
	.sh-home .cta-bracket { border: 0; padding: 0; }
	.sh-home .cta-bracket .sh-btn { min-width: 230px; }
	.sh-home .scroll-hint, .sh-home .intro-mark { display: none; }
	.sh-home .intro .wrap.intro-grid, .sh-home .events .wrap, .sh-home .history .wrap { grid-template-columns: 1fr; }
	.sh-home .intro-figure { aspect-ratio: 4 / 3; }
	.sh-home .offer, .sh-home .offer.flip { grid-template-columns: 1fr; }
	.sh-home .offer.flip .offer-media { order: 0; }
	.sh-home .timeline { grid-template-columns: 1fr 1fr; }
	.sh-home .bento-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 44vw; }
	.sh-home .bento-item:nth-child(n) { grid-column: auto; grid-row: auto; }
	.sh-home .bento-item:nth-child(1), .sh-home .bento-item:nth-child(6) { grid-column: 1 / 3; }
}
@media (max-width: 520px) {
	.sh-home .hours div { grid-template-columns: 110px 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.sh-home *, .sh-home *::before, .sh-home *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.sh-home .hero-mark svg, .sh-home .split-media img { transform: none; }
	.sh-home .reveal-img { clip-path: none; }
	.sh-home .line-mask > span { transform: none; }
}

/* ===== Speisekarte ([sudhaus_speisekarte]) ===== */
.sh-karte { background: var(--sh-malz); color: var(--sh-tinte); font-family: var(--sh-book); font-size: 16px; line-height: 1.6; font-synthesis: none; -webkit-font-smoothing: antialiased; }
.sh-karte *, .sh-karte *::before, .sh-karte *::after { box-sizing: border-box; }
.sh-karte h1, .sh-karte h2, .sh-karte h3, .sh-karte p, .sh-karte figure, .sh-karte ul, .sh-karte dl, .sh-karte dd { margin: 0; padding: 0; font-weight: 400; color: inherit; }
.sh-karte img { max-width: 100%; display: block; }
.sh-karte a { color: var(--sh-kupfer); }
.sk-wrap { max-width: 1320px; margin: 0 auto; padding: 0 var(--sh-pad); }
.sk-kicker { font-family: var(--sh-bold); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--sh-kupfer); margin-bottom: 18px !important; }
.sk-h1, .sk-title { font-family: var(--sh-cond); font-weight: 400; text-transform: uppercase; line-height: .92; letter-spacing: .005em; color: var(--sh-tinte); }
.sk-h1 { font-size: clamp(56px, 8.4vw, 132px); -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
.sk-title { font-size: clamp(40px, 4.4vw, 64px); -webkit-hyphens: auto; hyphens: auto; }
.sk-title--xl { font-size: clamp(52px, 6vw, 92px); }
.sk-sub { font-family: var(--sh-bold); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--sh-stein); margin-top: 14px !important; }
.sk-btn--line { color: var(--sh-tinte); border-color: var(--sh-tinte); background: transparent; }
.sk-btn--line:hover { background: var(--sh-tinte); color: var(--sh-malz); }
.sh-karte .sh-btn svg { width: 16px; height: 16px; margin-left: 2px; }
.sh-karte .sh-btn--k { color: var(--sh-malz); }

/* Hero */
.sk-hero { padding: clamp(56px, 7vw, 100px) 0 clamp(40px, 5vw, 64px); }
.sk-hero__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 40px clamp(40px, 6vw, 90px); align-items: end; }
.sk-hero__aside p { font-size: clamp(17px, 1.3vw, 19px); margin-bottom: 26px !important; max-width: 30em; }
.sk-hero__btns { display: flex; flex-wrap: wrap; gap: 10px; }

/* Kategorie-Leiste */
.sk-tabs { position: sticky; top: 0; z-index: 30; background: rgba(244, 239, 232, .9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-top: 1px solid var(--sh-tinte); border-bottom: 1px solid var(--sh-sud); }
.sk-tabs__track { display: flex; gap: 30px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.sk-tabs__track::-webkit-scrollbar { display: none; }
.sk-tabs a { flex-shrink: 0; padding: 18px 0 16px; font-family: var(--sh-bold); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; color: var(--sh-tinte); border-bottom: 2px solid transparent; transition: color .3s, border-color .3s; white-space: nowrap; }
.sk-tabs a:hover { color: var(--sh-kupfer); }
.sk-tabs a.is-active { color: var(--sh-kupfer); border-bottom-color: var(--sh-kupfer); }

/* Kategorien */
.sk-body { padding-top: clamp(24px, 3vw, 40px); }
.sk-sec, .sk-wine-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.55fr); gap: 36px clamp(40px, 6vw, 90px); padding: clamp(56px, 6vw, 88px) 0; border-bottom: 1px solid var(--sh-tinte); }
.sk-sec__head { align-self: start; position: sticky; top: 160px; }
.sk-img { position: relative; overflow: hidden; aspect-ratio: 4 / 3; margin-top: 28px !important; background: var(--sh-sud); }
.sk-img img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transform: scale(1.1); transition: transform 1.6s var(--sh-ease); }
.sk-reveal { clip-path: inset(100% 0 0 0); transition: clip-path 1.3s var(--sh-ease); }
.sk-reveal.in { clip-path: inset(0 0 0 0); }
.sk-reveal.in img { transform: scale(1); }
.sk-row__text { flex: 1 1 auto; min-width: 0; }
.sk-row { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--sh-sud); }
.sk-row--hl { background: rgba(155, 103, 86, .08); border-bottom-color: transparent; padding: 22px 20px; margin: 14px 0; border-radius: 4px; }
.sk-name { font-family: var(--sh-bold); font-size: 17px; line-height: 1.35; }
.sk-desc { font-size: 15px; color: var(--sh-stein); margin-top: 4px !important; max-width: 38em; }
.sk-a { font-family: var(--sh-book); font-size: 10px; letter-spacing: .02em; color: var(--sh-stein); vertical-align: super; line-height: 0; }
.sk-price { font-family: var(--sh-bold); font-size: 16px; white-space: nowrap; text-align: right; line-height: 1.6; }
.sk-extras { list-style: none; margin: 10px 0 0 !important; padding: 0 !important; font-size: 15px; }
.sk-extras li { display: flex; justify-content: space-between; gap: 20px; padding: 3px 0 3px 16px; list-style: none; }
.sk-extras .sk-extras__label { padding-left: 0; color: var(--sh-stein); }
.sk-extras .sk-price { font-size: 15px; }
.sk-group { font-family: var(--sh-bold); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--sh-kupfer); padding: 34px 0 6px !important; border-bottom: 1px solid var(--sh-tinte); }
.sk-group:first-child { padding-top: 0 !important; }
.sk-note { font-size: 15px; color: var(--sh-stein); padding: 18px 0 !important; border-bottom: 1px solid var(--sh-sud); }
.sk-wine-intro { border-bottom: 1px solid var(--sh-sud); }
.sk-wine-intro__text p { font-size: clamp(17px, 1.3vw, 19px); margin-bottom: 18px !important; max-width: 36em; }
.sk-wine-intro__text .sk-sign { font-family: var(--sh-bold); margin: 26px 0 30px !important; }
.sk-wine-intro__text .sk-sign span { font-family: var(--sh-book); color: var(--sh-stein); }
.sk-wine-intro .sk-sec__head { position: static; }
#weinkarte + .sk-sec { border-top: 0; }

/* Hinweise & Allergene */
.sk-foot { padding: 40px 0 clamp(70px, 8vw, 110px); font-size: 14px; color: var(--sh-stein); }
.sk-allergene { margin-top: 20px; border-top: 1px solid var(--sh-sud); border-bottom: 1px solid var(--sh-sud); }
.sk-allergene summary { cursor: pointer; padding: 18px 0; font-family: var(--sh-bold); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--sh-tinte); list-style: none; display: flex; justify-content: space-between; }
.sk-allergene summary::-webkit-details-marker { display: none; }
.sk-allergene summary::after { content: "+"; font-size: 20px; line-height: 1; transition: transform .3s; }
.sk-allergene[open] summary::after { transform: rotate(45deg); }
.sk-allergene__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding: 10px 0 24px; }
.sk-allergene h3 { font-family: var(--sh-bold); font-size: 13px; color: var(--sh-tinte); margin-bottom: 10px !important; }
.sk-allergene dl { display: grid; grid-template-columns: 34px 1fr; gap: 6px 10px; font-size: 14px; line-height: 1.5; }
.sk-allergene dt { font-family: var(--sh-bold); color: var(--sh-kupfer); }
.sk-allergene__note { padding-bottom: 24px !important; font-size: 13px; max-width: 60em; }

/* Lust bekommen? */
.sk-cta { padding-bottom: clamp(90px, 11vw, 150px); }
.sk-split { display: grid; grid-template-columns: 1fr 1fr; min-height: clamp(380px, 36vw, 520px); overflow: hidden; }
.sk-split__text { position: relative; overflow: hidden; display: flex; align-items: center; padding: clamp(32px, 5vw, 72px); background: var(--sh-kupfer); color: var(--sh-malz); }
.sk-split__blur { position: absolute; inset: -60px; width: calc(100% + 120px); height: calc(100% + 120px); max-width: none !important; object-fit: cover; filter: blur(30px) saturate(1.15); transform: scale(1.05); transition: transform 1.8s var(--sh-ease); }
.sk-split__text::after { content: ""; position: absolute; inset: 0; background: rgba(155, 103, 86, .82); }
.sk-split__body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.sk-split__body .sk-title { color: var(--sh-malz); }
.sk-split__body p { font-size: 17px; max-width: 26em; }
.sk-split__body .sh-btn--k { background: var(--sh-tinte); }
.sk-split__body .sh-btn--k:hover { background: #000; }
.sk-split__media { position: relative; overflow: hidden; min-height: 260px; }
.sk-split__media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 40%; transform: scale(1.14); transition: transform 1.6s var(--sh-ease); }
.sk-split.in .sk-split__media img { transform: scale(1); }
.sk-split.in:hover .sk-split__media img { transform: scale(1.05); }
.sk-split:hover .sk-split__blur { transform: scale(1.22); }

@media (max-width: 860px) {
	.sk-hero__grid, .sk-sec, .sk-wine-intro, .sk-allergene__grid, .sk-split { grid-template-columns: 1fr; }
	.sk-sec__head { position: static; }
	.sk-img { aspect-ratio: 16 / 9; }
	.sk-sec .sk-img { display: none; }
	.sk-tabs__track { gap: 22px; }
	.sk-row--hl { padding: 18px 14px; }
	.sk-split__media { min-height: 260px; order: -1; }
}
@media (prefers-reduced-motion: reduce) {
	.sk-reveal { clip-path: none; }
	.sk-img img, .sk-split__media img { transform: none; }
}

/* ===== Veranstaltungen & Events ([sudhaus_events]) ===== */
.sh-events { --sh-sud: #D8CBBE; --sh-kupfer-hell: #C9A08F; background: var(--sh-malz); color: var(--sh-tinte); font-family: var(--sh-book); font-size: 17px; line-height: 1.6; font-synthesis: none; -webkit-font-smoothing: antialiased; overflow-x: clip; }
.sh-events *, .sh-events *::before, .sh-events *::after { box-sizing: border-box; }
.sh-events h1, .sh-events h2, .sh-events h3, .sh-events p, .sh-events figure, .sh-events fieldset, .sh-events legend { margin: 0; padding: 0; font-weight: 400; color: inherit; border: 0; }
.sh-events img { max-width: 100%; display: block; }
.sh-events a { color: inherit; }
.se-wrap { max-width: 1320px; margin: 0 auto; padding: 0 var(--sh-pad); }
.se-kicker { font-family: var(--sh-bold); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--sh-kupfer); margin-bottom: 16px !important; }
.se-kicker--light { color: var(--sh-malz); margin-bottom: 0 !important; }
.se-kicker--hell { color: var(--sh-kupfer-hell); }
.se-h { font-family: var(--sh-cond); font-weight: 400; text-transform: uppercase; line-height: .92; font-size: clamp(52px, 6.4vw, 92px); color: var(--sh-tinte); }
.se-h--light { color: var(--sh-malz); }
.se-mask { display: block; overflow: hidden; padding-bottom: .04em; }
.se-mask > span { display: block; transform: translateY(105%); transition: transform 1.1s var(--sh-ease); }
.se-reveal-lines.in .se-mask > span { transform: none; }
.se-reveal { clip-path: inset(100% 0 0 0); transition: clip-path 1.3s var(--sh-ease); }
.se-reveal.in { clip-path: inset(0 0 0 0); }
.se-btn--light { color: var(--sh-malz); border-color: rgba(244, 239, 232, .75); background: rgba(30, 27, 24, .15); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.se-btn--light:hover { background: var(--sh-malz); color: var(--sh-tinte); }
.sh-events .sh-btn svg { width: 18px; height: 18px; transition: transform .4s var(--sh-ease); }
.sh-events .sh-btn:hover svg { transform: translateX(4px); }

/* Hero mit Wort-Übergang */
.se-hero { position: relative; height: calc(100vh - 41px); height: calc(100svh - 41px); min-height: 600px; max-height: 1000px; overflow: hidden; background: var(--sh-tinte); color: var(--sh-malz); display: flex; flex-direction: column; }
.se-hero__media { position: absolute; inset: -8% 0 0 0; }
.se-hero__media img { width: 100%; height: 100%; object-fit: cover; will-change: transform; }
.se-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 18, 16, .64) 0%, rgba(20, 18, 16, .46) 45%, rgba(20, 18, 16, .5) 100%); pointer-events: none; }
.se-hero__content { position: relative; z-index: 2; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 22px; padding: 120px var(--sh-pad) clamp(30px, 5vh, 60px); text-align: center; animation: shFadeUp 1s .6s var(--sh-ease) both; }
.se-word-wrap { position: relative; z-index: 3; flex-shrink: 0; text-align: center; line-height: 0; }
.se-word { --fs: clamp(120px, 27vw, 420px); position: relative; z-index: 1; display: block; font-family: var(--sh-cond); text-transform: uppercase; font-size: var(--fs); line-height: .8; color: var(--sh-malz); margin-bottom: calc(var(--fs) * -.14); transform: translateY(100%); animation: shMarkRise 1.5s .2s var(--sh-ease) forwards; }
.se-strip { position: relative; z-index: 2; display: block; height: calc(clamp(120px, 27vw, 420px) * .14 + 26px); background: var(--sh-malz); }

/* Intro */
.se-intro { padding: clamp(70px, 9vw, 130px) 0 clamp(50px, 6vw, 90px); }
.se-intro__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 32px clamp(40px, 6vw, 90px); align-items: end; }
.se-lead { font-size: clamp(17px, 1.4vw, 20px); max-width: 34em; }

/* Anlässe: große Bildkarten untereinander */
.se-occ-list { padding-bottom: clamp(90px, 11vw, 150px); }
.se-occ-list .se-wrap { display: flex; flex-direction: column; gap: clamp(12px, 1.4vw, 20px); }
.se-occ { position: relative; overflow: hidden; height: clamp(380px, 44vw, 640px); background: var(--sh-tinte); color: var(--sh-malz); border-radius: 4px; }
.se-occ > img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transform: scale(1.06); transition: transform 1.6s var(--sh-ease); }
.se-occ::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 18, 16, .25) 0%, rgba(20, 18, 16, .15) 40%, rgba(20, 18, 16, .78) 100%); transition: background .6s; pointer-events: none; }
.se-occ:hover > img { transform: scale(1.1); }
.se-occ:hover::after { background: linear-gradient(180deg, rgba(20, 18, 16, .45) 0%, rgba(20, 18, 16, .35) 40%, rgba(20, 18, 16, .85) 100%); }
.se-occ__panel { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(24px, 3.4vw, 52px); }
.se-occ__num { font-family: var(--sh-bold); font-size: 13px; letter-spacing: .2em; }
.se-occ__body { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px 48px; flex-wrap: wrap; }
.se-occ__title { font-family: var(--sh-cond); text-transform: uppercase; font-size: clamp(60px, 9vw, 150px); line-height: .86; color: var(--sh-malz); }
.se-occ__title .se-mask > span { transform: none; }
.se-occ__l2 > span { transform: translateY(105%) !important; transition: transform .8s var(--sh-ease); }
.se-occ:hover .se-occ__l2 > span, .se-occ:focus-within .se-occ__l2 > span { transform: none !important; }
.se-occ__more { max-width: 22em; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; opacity: 0; transform: translateY(20px); transition: opacity .6s var(--sh-ease), transform .6s var(--sh-ease); }
.se-occ:hover .se-occ__more, .se-occ:focus-within .se-occ__more { opacity: 1; transform: none; }
.se-occ__more p { font-size: 16px; }
@media (hover: none) {
	.se-occ__l2 > span { transform: none !important; }
	.se-occ__more { opacity: 1; transform: none; }
}

/* Tagen */
.se-bridge { position: relative; height: clamp(400px, 56vw, 720px); overflow: hidden; background: var(--sh-tinte); }
.se-bridge img { position: absolute; inset: -14% 0; width: 100%; height: 128%; max-width: none; object-fit: cover; will-change: transform; }
.se-tagen { background: var(--sh-gruen); color: var(--sh-malz); padding: 0 0 clamp(90px, 11vw, 150px); }
.se-bridge-word { --fs: clamp(130px, 29vw, 430px); position: relative; z-index: 2; display: block; font-family: var(--sh-cond); text-transform: uppercase; font-size: var(--fs); line-height: .9; margin: calc(var(--fs) * -.72) 0 clamp(40px, 5vw, 80px); text-align: center; color: var(--sh-gruen); white-space: nowrap; will-change: transform; }
.se-tagen__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 48px clamp(40px, 7vw, 100px); align-items: start; }
.se-tagen__lead { margin: 24px 0 30px !important; max-width: 26em; color: #D9D2C8; }
.se-features { display: grid; grid-template-columns: 1fr 1fr; gap: 40px 36px; }
.se-features div { border-top: 1px solid rgba(244, 239, 232, .3); padding-top: 18px; }
.se-features h3 { font-family: var(--sh-cond); text-transform: uppercase; font-size: clamp(26px, 2.4vw, 34px); line-height: 1; margin-bottom: 10px !important; }
.se-features p { font-size: 15px; color: #D9D2C8; }

/* Eindrücke */
.se-bento { padding: clamp(90px, 11vw, 150px) 0; }
.se-bento__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px 40px; flex-wrap: wrap; margin-bottom: clamp(32px, 4vw, 56px); }
.se-bento__head > p { max-width: 26em; color: var(--sh-stein); }
.se-bento__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 17vw, 250px); gap: clamp(10px, 1.2vw, 16px); }
.se-bento__item { position: relative; overflow: hidden; background: var(--sh-sud); }
.se-bento__item img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transform: scale(1.08); transition: transform 1.6s var(--sh-ease); }
.se-bento__item.in img { transform: scale(1); }
.se-bento__item:hover img { transform: scale(1.05); }
.se-bento__item:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 3; }
.se-bento__item:nth-child(2) { grid-column: 3 / 4; grid-row: 1 / 2; }
.se-bento__item:nth-child(3) { grid-column: 4 / 5; grid-row: 1 / 3; }
.se-bento__item:nth-child(4) { grid-column: 3 / 4; grid-row: 2 / 3; }
.se-bento__item:nth-child(5) { grid-column: 1 / 5; grid-row: 3 / 4; }

/* Anfrage-Formular */
.se-form-sec { background: var(--sh-sud); padding: clamp(80px, 10vw, 140px) 0; }
.se-form__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.3fr); gap: 48px clamp(40px, 6vw, 90px); align-items: start; }
.se-form__aside .se-h { font-size: clamp(44px, 4.8vw, 76px); -webkit-hyphens: auto; hyphens: auto; }
.se-form__intro { margin: 22px 0 32px !important; max-width: 26em; }
.se-contact { border-left: 2px solid var(--sh-kupfer); padding: 4px 0 4px 22px; }
.se-contact .se-kicker { margin-bottom: 10px !important; }
.se-contact__name { font-family: var(--sh-bold); font-size: 20px; }
.se-contact__role { color: var(--sh-stein); font-size: 15px; margin-bottom: 6px !important; }
.se-contact a { color: var(--sh-kupfer); }
.se-form-card { background: var(--sh-malz); border-radius: 6px; padding: clamp(28px, 3.6vw, 52px); box-shadow: 0 24px 60px rgba(30, 27, 24, .1); }
.se-form { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 26px 24px; }
.se-field { position: relative; grid-column: span 3; }
.se-field--full { grid-column: 1 / -1; }
.se-field--third { grid-column: span 2; }
.se-field > input, .se-field > textarea { width: 100%; font: inherit; font-family: var(--sh-book); font-size: 17px; color: var(--sh-tinte); background: transparent; border: 0; border-bottom: 1px solid rgba(30, 27, 24, .35); border-radius: 0; padding: 22px 0 10px; outline: none; transition: border-color .3s; -webkit-appearance: none; appearance: none; }
.se-field textarea { resize: vertical; min-height: 110px; }
.se-field > label { position: absolute; left: 0; top: 22px; font-size: 16px; color: var(--sh-stein); pointer-events: none; transform-origin: left top; transition: transform .3s var(--sh-ease), color .3s; }
.se-field input:focus, .se-field textarea:focus { border-bottom-color: var(--sh-kupfer); }
.se-field > input:focus + label, .se-field > textarea:focus + label, .se-field > input:not(:placeholder-shown) + label, .se-field > textarea:not(:placeholder-shown) + label, .se-field--static > label { transform: translateY(-22px) scale(.72); color: var(--sh-kupfer); font-family: var(--sh-bold); letter-spacing: .08em; text-transform: uppercase; }
.se-field--static input { color: var(--sh-tinte); min-height: 55px; }
.se-field.is-invalid input { border-bottom-color: #B3261E; }
.se-field.is-invalid > label { color: #B3261E; }
.se-field legend { font-family: var(--sh-bold); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--sh-kupfer); margin-bottom: 12px !important; }
.se-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.se-chip { position: relative; cursor: pointer; }
.se-chip input { position: absolute; opacity: 0; pointer-events: none; }
.se-chip span { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border: 1px solid rgba(30, 27, 24, .3); border-radius: 999px; font-size: 14px; transition: background .25s, color .25s, border-color .25s; }
.se-chip:hover span { border-color: var(--sh-tinte); }
.se-chip input:checked + span { background: var(--sh-tinte); border-color: var(--sh-tinte); color: var(--sh-malz); }
.se-chip input:focus-visible + span { outline: 2px solid var(--sh-kupfer); outline-offset: 2px; }
.se-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.se-form__foot { display: flex; justify-content: space-between; align-items: center; gap: 20px 32px; flex-wrap: wrap; margin-top: 6px; }
.se-privacy { font-size: 13px; line-height: 1.5; color: var(--sh-stein); max-width: 30em; }
.se-privacy a { color: var(--sh-kupfer); }
.se-submit.is-loading { opacity: .6; pointer-events: none; }
.se-error { color: #B3261E; font-size: 14px; }
.se-done { padding: 20px 0; }
.se-done__title { font-family: var(--sh-cond); text-transform: uppercase; font-size: clamp(40px, 4.4vw, 60px); line-height: .95; margin: 6px 0 18px !important; }
.se-done a { color: var(--sh-kupfer); }

@media (max-width: 860px) {
	.sh-events { font-size: 16px; }
	.se-hero { height: 82vh; height: 82svh; min-height: 540px; }
	.se-intro__grid, .se-tagen__grid, .se-form__grid, .se-features { grid-template-columns: 1fr; }
	.se-occ { height: 520px; }
	.se-occ__title { font-size: clamp(42px, 12vw, 80px); }
	.se-bento__grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 44vw; }
	.se-bento__item:nth-child(n) { grid-column: auto; grid-row: auto; }
	.se-bento__item:nth-child(1), .se-bento__item:nth-child(5) { grid-column: 1 / 3; }
	.se-form { grid-template-columns: 1fr; }
	.se-field, .se-field--third { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
	.se-reveal { clip-path: none; }
	.se-mask > span, .se-word { transform: none !important; animation: none; }
}

/* ===== Tagesbar ([sudhaus_tagesbar]) ===== */
.tb-hours { font-family: var(--sh-cond); text-transform: uppercase; font-size: clamp(28px, 3vw, 42px); line-height: 1; color: var(--sh-malz); }
.tb-word { --fs: clamp(96px, 20vw, 330px); white-space: nowrap; }
.sh-tb .se-strip { height: calc(clamp(96px, 20vw, 330px) * .14 + 26px); }
.tb-intro { align-items: start; }
.tb-facts { margin: 30px 0 0; border-top: 1px solid var(--sh-sud); }
.tb-facts div { display: grid; grid-template-columns: 160px 1fr; padding: 14px 0; border-bottom: 1px solid var(--sh-sud); }
.tb-facts dt { font-family: var(--sh-bold); }
.tb-facts dd { margin: 0; }

/* Angebot mit Icons */
.tb-offer { padding: 0 0 clamp(90px, 11vw, 150px); }
.tb-offer__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 24px); }
.tb-card { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: clamp(28px, 3vw, 44px); min-height: 380px; border-radius: 6px; background: #fff; border: 1px solid rgba(216, 203, 190, .8); transition: transform .6s var(--sh-ease), box-shadow .6s var(--sh-ease), clip-path 1.3s var(--sh-ease); }
.tb-card::before { content: ""; position: absolute; right: -90px; bottom: -90px; width: 260px; height: 260px; border-radius: 50%; background: var(--tb-c); opacity: .07; transition: transform .9s var(--sh-ease), opacity .6s; }
.tb-card:hover { transform: translateY(-6px); box-shadow: 0 24px 50px rgba(30, 27, 24, .1); }
.tb-card:hover::before { transform: scale(1.5); opacity: .12; }
.tb-card--kupfer { --tb-c: #9B6756; }
.tb-card--oase { --tb-c: #8B9D7E; }
.tb-card--gruen { --tb-c: #26302A; }
.tb-icon { position: relative; width: 104px; height: 104px; border-radius: 50%; background: var(--tb-c); display: grid; place-items: center; margin-bottom: auto; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
.tb-icon img { width: 52%; height: auto; max-width: none; position: relative; z-index: 1; transition: transform .6s var(--sh-ease); }
.tb-icon__ring { position: absolute; inset: -9px; border-radius: 50%; border: 1px dashed var(--tb-c); opacity: .55; animation: tbSpin 22s linear infinite; }
.tb-card:hover .tb-icon img { transform: scale(1.1) rotate(-6deg); }
.tb-card:hover .tb-icon__ring { animation-duration: 6s; }
@keyframes tbSpin { to { transform: rotate(360deg); } }
.tb-card__num { font-family: var(--sh-bold); font-size: 12px; letter-spacing: .2em; color: var(--tb-c); margin-top: 40px !important; }
.tb-card__title { font-family: var(--sh-cond); text-transform: uppercase; font-size: clamp(36px, 3.4vw, 52px); line-height: .92; }
.tb-card p:not(.tb-card__num) { color: var(--sh-stein); font-size: 16px; max-width: 24em; position: relative; }

/* Gruppen-Karte */
.tb-cta { padding-bottom: clamp(90px, 11vw, 150px); }
.sk-split--oase .sk-split__text { background: #8B9D7E; color: var(--sh-tinte); }
.sk-split--oase .sk-split__text::after { background: rgba(139, 157, 126, .84); }
.tb-kicker-dark { color: var(--sh-tinte); margin-bottom: 0 !important; }
.tb-split-h { font-size: clamp(44px, 4.6vw, 72px); }
.tb-btn-dark { background: var(--sh-tinte); color: var(--sh-malz) !important; }
.tb-btn-dark:hover { background: #000; }
.tb-cta .sk-split.in .sk-split__media img { transform: scale(1); }

@media (max-width: 860px) {
	.tb-offer__grid { grid-template-columns: 1fr; }
	.tb-card { min-height: 0; }
	.tb-card__num { margin-top: 18px !important; }
	.tb-facts div { grid-template-columns: 130px 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.tb-icon__ring { animation: none; }
}

/* ===== Ansprechpartner ([sudhaus_ansprechpartner]) ===== */
.ap-head { padding: clamp(56px, 7vw, 100px) 0 clamp(40px, 5vw, 64px); }
.ap-h1 { font-family: var(--sh-cond); text-transform: uppercase; font-weight: 400; line-height: .9; font-size: clamp(56px, 10vw, 150px); margin: 0 0 24px !important; -webkit-hyphens: manual; hyphens: manual; }
.ap-cards { padding-bottom: clamp(70px, 9vw, 120px); }
.ap-cards__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 24px); }
.ap-card { min-height: 0; }
.ap-card .tb-card__num { margin-top: 36px !important; }
.ap-links { list-style: none; margin: 12px 0 8px !important; padding: 16px 0 0 !important; border-top: 1px solid var(--sh-sud); width: 100%; display: flex; flex-direction: column; gap: 10px; position: relative; }
.ap-links li { list-style: none; margin: 0; }
.ap-links a { display: inline-flex; align-items: center; gap: 12px; color: var(--sh-tinte); text-decoration: none; font-size: 17px; transition: color .3s; }
.ap-links svg { width: 20px; height: 20px; color: var(--tb-c); flex-shrink: 0; }
.ap-links a span { background: linear-gradient(var(--tb-c), var(--tb-c)) left bottom / 0 1px no-repeat; transition: background-size .45s var(--sh-ease); padding-bottom: 2px; }
.ap-links a:hover span { background-size: 100% 1px; }
.ap-card__btn { position: relative; margin-top: 8px; }

/* Karte + Anfahrt */
.ap-map-sec { padding-bottom: clamp(90px, 11vw, 150px); }
.ap-map__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(14px, 1.6vw, 24px); }
.ap-map { position: relative; min-height: 460px; border-radius: 6px; overflow: hidden; background: var(--sh-sud); }
.ap-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ap-map__consent { position: absolute; inset: 0; display: grid; place-items: center; padding: 28px; }
.ap-map__sketch { position: absolute; right: 4%; bottom: 0; height: 92%; width: auto; max-width: none; opacity: .22; mix-blend-mode: multiply; }
.ap-map__box { position: relative; max-width: 380px; background: rgba(244, 239, 232, .92); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border-radius: 6px; padding: 28px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; box-shadow: 0 18px 40px rgba(30, 27, 24, .1); }
.ap-map__box p:not(.se-kicker) { font-size: 15px; color: var(--sh-stein); }
.ap-map__box .se-kicker { margin-bottom: 0 !important; }
.ap-map__box a { color: var(--sh-kupfer); }
.ap-route { background: var(--sh-gruen); color: var(--sh-malz); border-radius: 6px; padding: clamp(32px, 4vw, 56px); display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.ap-route .se-h { font-size: clamp(48px, 5vw, 76px); }
.ap-route__addr { font-size: 18px; line-height: 1.6; }
.ap-route__hint { font-size: 15px; color: #D9D2C8; max-width: 24em; }
.ap-route .sh-btn { margin-top: auto; }

@media (max-width: 860px) {
	.ap-cards__grid, .ap-map__grid { grid-template-columns: 1fr; }
	.ap-map { min-height: 380px; }
}

/* ===== Karriere ([sudhaus_karriere]) ===== */
.kr-word { --fs: clamp(100px, 22vw, 360px); white-space: nowrap; }
.sh-kr .se-strip { height: calc(clamp(100px, 22vw, 360px) * .14 + 26px); }

.kr-jobs { background: var(--sh-gruen); color: var(--sh-malz); padding: clamp(80px, 10vw, 140px) 0; }
.kr-jobs__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 40px; flex-wrap: wrap; margin-bottom: clamp(28px, 4vw, 48px); }
.kr-jobs__head p { font-size: 14px; color: #D9D2C8; }
.kr-list { list-style: none; margin: 0 !important; padding: 0 !important; border-top: 1px solid rgba(244, 239, 232, .25); }
.kr-list li { list-style: none; margin: 0; }
.kr-job { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: center; gap: 12px 32px; padding: 24px 0; background: none; border: 0; border-bottom: 1px solid rgba(244, 239, 232, .25); color: var(--sh-malz); text-align: left; cursor: pointer; font: inherit; transition: padding .45s var(--sh-ease), color .3s; }
.kr-job__title { font-family: var(--sh-cond); text-transform: uppercase; font-size: clamp(32px, 3.4vw, 50px); line-height: 1; }
.kr-job__line { font-size: 15px; color: #D9D2C8; }
.kr-job__cta { display: inline-flex; align-items: center; gap: 10px; font-family: var(--sh-bold); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: #C9A08F; white-space: nowrap; }
.kr-job__cta svg { width: 20px; height: 20px; transition: transform .45s var(--sh-ease); }
.kr-job:hover { padding-left: 16px; }
.kr-job:hover .kr-job__title { color: #C9A08F; }
.kr-job:hover .kr-job__cta svg { transform: translateX(6px); }
.kr-job:focus-visible { outline: 2px solid var(--sh-kupfer); outline-offset: 4px; }
.kr-jobs__foot { display: flex; justify-content: space-between; align-items: center; gap: 20px 40px; flex-wrap: wrap; margin-top: 40px; }
.kr-jobs__foot p { color: #D9D2C8; font-size: 16px; }
.kr-jobs__foot span { font-size: 14px; }
.kr-jobs__foot a { color: var(--sh-malz); }

/* Bewerbungs-Pop-up */
.kr-modal { position: fixed; inset: 0; z-index: 9998; display: flex; align-items: center; justify-content: center; padding: 24px; visibility: hidden; transition: visibility 0s .6s; }
.kr-modal.is-open { visibility: visible; transition: visibility 0s; }
.kr-modal__backdrop { position: absolute; inset: 0; background: rgba(20, 18, 16, .6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transition: opacity .5s; }
.kr-modal.is-open .kr-modal__backdrop { opacity: 1; }
.kr-modal__panel { position: relative; width: min(1080px, 100%); max-height: min(860px, calc(100vh - 48px)); background: var(--sh-malz); color: var(--sh-tinte); display: grid; grid-template-columns: 340px 1fr; overflow: hidden; border-radius: 6px; opacity: 0; transform: translateY(30px) scale(.98); transition: opacity .5s var(--sh-ease), transform .6s var(--sh-ease); }
.kr-modal.is-open .kr-modal__panel { opacity: 1; transform: none; }
.kr-modal__panel:focus { outline: none; }
.kr-modal__aside { position: relative; background: var(--sh-tinte); color: var(--sh-malz); overflow: hidden; }
.kr-modal__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none !important; object-fit: cover; }
.kr-modal__aside::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(30, 27, 24, 0) 45%, rgba(30, 27, 24, .88) 100%); }
.kr-modal__info { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 28px; font-size: 15px; line-height: 1.5; }
.kr-modal__info svg { display: block; width: 130px; height: auto; fill: var(--sh-malz); margin-bottom: 14px; }
.kr-modal__main { position: relative; padding: 40px 48px 32px; overflow-y: auto; }
.kr-modal__close { position: absolute; top: 20px; right: 20px; color: var(--sh-tinte); }
.kr-modal__title { font-family: var(--sh-cond); text-transform: uppercase; font-size: clamp(38px, 4vw, 54px); line-height: .92; margin: 0 56px 28px 0 !important; }
.kr-form { gap: 22px 24px; }
.kr-select select { width: 100%; font: inherit; font-family: var(--sh-book); font-size: 17px; color: var(--sh-tinte); background: transparent; border: 0; border-bottom: 1px solid rgba(30, 27, 24, .35); border-radius: 0; padding: 22px 28px 10px 0; outline: none; -webkit-appearance: none; appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--sh-tinte) 50%), linear-gradient(135deg, var(--sh-tinte) 50%, transparent 50%); background-position: calc(100% - 12px) 30px, calc(100% - 6px) 30px; background-size: 6px 6px; background-repeat: no-repeat; cursor: pointer; }
.kr-select select:focus { border-bottom-color: var(--sh-kupfer); }
.kr-file__label { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; cursor: pointer; }
.kr-file__label input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.kr-file__btn { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border: 1px dashed rgba(30, 27, 24, .45); border-radius: 999px; font-family: var(--sh-bold); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; transition: border-color .3s, background .3s; }
.kr-file__label:hover .kr-file__btn { border-color: var(--sh-kupfer); background: rgba(155, 103, 86, .08); }
.kr-file__label input:focus-visible + .kr-file__btn { outline: 2px solid var(--sh-kupfer); outline-offset: 2px; }
.kr-file__name { font-size: 14px; color: var(--sh-stein); }
.kr-file.has-file .kr-file__btn { border-style: solid; border-color: var(--sh-kupfer); color: var(--sh-kupfer); }
.kr-file.has-file .kr-file__name { color: var(--sh-tinte); }

@media (max-width: 860px) {
	.kr-job { grid-template-columns: 1fr auto; }
	.kr-job__line { grid-column: 1 / -1; grid-row: 2; }
	.kr-job__cta { grid-row: 1; grid-column: 2; font-size: 0; gap: 0; }
	.kr-job__cta svg { width: 24px; height: 24px; }
	.kr-modal { padding: 0; align-items: flex-end; }
	.kr-modal__panel { grid-template-columns: 1fr; max-height: 92vh; border-radius: 22px 22px 0 0; transform: translateY(100%); }
	.kr-modal__aside { display: none; }
	.kr-modal__main { padding: 26px 20px calc(24px + env(safe-area-inset-bottom, 0px)); }
}

/* Lenis (sanftes Scrollen) */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* Divi-Standard-Weiß entfernen, damit überall Malz (#F4EFE8) durchscheint */
body, #page-container { background-color: #F4EFE8; }
#main-content, .et_pb_section { background-color: transparent; }
