/* ==========================================================================
   Pizzeria da Gino – Design-System für Divi 5 (native Module)
   Alle Seiten bestehen aus normalen Divi-Modulen. Dieses Stylesheet gibt ihnen über
   CSS-Klassen (Modul → Erweitert → Attribute) den da-Gino-Look. Farben, Abstände und
   Hintergründe der Abschnitte sind direkt im Builder eingestellt und dort änderbar.
   ========================================================================== */

@font-face { font-family: 'DM Serif Display'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/dm-serif-display-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'DM Serif Display'; font-style: italic; font-weight: 400; font-display: swap; src: url(fonts/dm-serif-display-latin-400-italic.woff2) format('woff2'); }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/jost-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/jost-latin-500-normal.woff2) format('woff2'); }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/jost-latin-600-normal.woff2) format('woff2'); }
@font-face { font-family: 'Parisienne'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/parisienne-latin-400-normal.woff2) format('woff2'); }

:root {
	--dg-green: #4f6228;
	--dg-green-dark: #3a481c;
	--dg-green-soft: #e9eedb;
	--dg-cream: #f6efe2;
	--dg-paper: #fffaf2;
	--dg-sand: #efe5d3;
	--dg-ink: #2b2118;
	--dg-muted: #75685a;
	--dg-line: #e6dac5;
	--dg-red: #b23a2a;
	--dg-serif: 'DM Serif Display', Georgia, 'Times New Roman', serif;
	--dg-sans: 'Jost', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--dg-script: 'Parisienne', 'Brush Script MT', cursive;
	--dg-wrap: 1240px;
	--dg-gutter: clamp(18px, 4vw, 40px);
	--dg-sec: clamp(72px, 9vw, 128px);
	--dg-radius: 18px;
	--dg-shadow: 0 30px 70px -35px rgba(43, 33, 24, .45);
	/* Dekor (SVG als Daten-URI, damit nichts im Editor verloren geht) */
	--dg-branch: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 120' fill='none' stroke='%234f6228' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M6 114C60 96 120 60 214 8'/%3E%3Cg fill='%234f6228' fill-opacity='.12'%3E%3Cpath d='M40 100c-6-16 2-30 16-36-2 16-6 28-16 36z'/%3E%3Cpath d='M44 98c14-10 30-8 40 2-16 4-28 4-40-2z'/%3E%3Cpath d='M80 80c-4-17 5-30 19-35-1 16-6 28-19 35z'/%3E%3Cpath d='M84 78c15-8 30-5 39 6-16 3-28 2-39-6z'/%3E%3Cpath d='M120 58c-3-16 7-29 21-33-2 16-8 27-21 33z'/%3E%3Cpath d='M124 56c15-7 30-3 38 8-16 2-28 0-38-8z'/%3E%3Cpath d='M160 36c-2-15 8-27 22-30-3 15-9 25-22 30z'/%3E%3Cpath d='M164 34c14-6 28-2 36 9-15 1-27-1-36-9z'/%3E%3C/g%3E%3Cellipse cx='104' cy='92' rx='6' ry='8' fill='%233a481c' stroke='none' transform='rotate(-30 104 92)'/%3E%3Cellipse cx='146' cy='70' rx='5.5' ry='7.5' fill='%233a481c' stroke='none' transform='rotate(-30 146 70)'/%3E%3C/svg%3E");
	--dg-divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 16' fill='none' stroke='%234f6228' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M2 8h40M78 8h40'/%3E%3Cpath d='M60 8c-6-6-14-6-18 0 4 6 12 6 18 0zM60 8c6-6 14-6 18 0-4 6-12 6-18 0z' fill='%234f6228' fill-opacity='.15'/%3E%3C/svg%3E");
	--dg-torn: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V18l40 6 38-10 52 8 44-12 36 9 58-7 41 10 50-11 46 8 39-6 55 9 42-12 47 10 38-5 54 8 45-10 40 7 52-9 39 11 48-8 44 6 53-10 41 9 46-7 52 10 38-6V40z' fill='%23000'/%3E%3C/svg%3E");
	--dg-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 60' preserveAspectRatio='none'%3E%3Cpath d='M0 60V30C200 0 400 0 600 30s400 30 600 0v30z' fill='%23000'/%3E%3C/svg%3E");
	--dg-blob: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 560'%3E%3Cpath d='M118 44C210-4 352-12 456 30s150 150 138 262-52 206-150 246-262 30-352-28S-8 380 4 260 26 92 118 44z'/%3E%3C/svg%3E");
}



/* ---------- Grundtypografie ---------- */
body.dg-site { background: var(--dg-cream); color: var(--dg-ink); font-family: var(--dg-sans); font-size: 17px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
.dg-site #page-container, .dg-site #main-content { background: transparent; }
.dg-site .et_pb_text, .dg-site .et_pb_blurb_description, .dg-site .et_pb_text_inner { color: var(--dg-ink); font-size: 17px; line-height: 1.7; }
.dg-site .et_pb_text p, .dg-site .et_pb_blurb_description p { padding-bottom: 0; margin: 0 0 .9em; }
.dg-site .et_pb_text p:last-child, .dg-site .et_pb_blurb_description p:last-child { margin-bottom: 0; }
.dg-site h1, .dg-site h2, .dg-site h3, .dg-site h4,
.dg-site .et_pb_module_heading, .dg-site .et_pb_module_header {
	font-family: var(--dg-serif); font-weight: 400; color: var(--dg-ink); line-height: 1.1; letter-spacing: -.005em; padding-bottom: 0; margin: 0 0 .45em; text-wrap: balance;
}
.dg-site h1 em, .dg-site h2 em { color: var(--dg-green); font-style: italic; }
.dg-site .et_pb_text a, .dg-site .et_pb_blurb_description a { color: var(--dg-green); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.dg-site .et_pb_text ul, .dg-site .et_pb_blurb_description ul { list-style: none; padding: 0 !important; margin: 0; }
.dg-site .et_pb_text ul li, .dg-site .et_pb_blurb_description ul li { padding: 0; }
.dg-site .et_pb_column > .et_pb_module:not(:last-child) { margin-bottom: 26px; }
.dg-site .et_pb_module { margin-bottom: 0; }
.dg-site .et_pb_image .et_pb_image_wrap { display: block; width: 100%; }
.dg-site .et_pb_image img { display: block; width: 100%; background: var(--dg-sand); }

/* Lange deutsche Wörter sauber trennen statt über den Rand laufen lassen */
.dg-site :is(h1, h2, h3, h4, p, li, td) { overflow-wrap: break-word; }
@media (max-width: 980px) { .dg-site :is(h3, h4, p, li, td) { hyphens: auto; -webkit-hyphens: auto; } }

/* ---------- Überschriften-Block (.dg-head): Kicker · Überschrift · Ornament · Einleitung ---------- */
.dg-head .et_pb_text_inner > p:first-child:has(+ h1, + h2) {
	font-family: var(--dg-script); font-size: clamp(30px, 3vw, 40px); line-height: 1.1; color: var(--dg-green); margin: 0 0 12px;
}
.dg-head h1 { font-size: clamp(44px, 5.6vw, 80px); }
.dg-head h2 { font-size: clamp(34px, 4.1vw, 56px); }
.dg-head h1::after, .dg-head h2::after { content: ''; display: block; width: 120px; height: 16px; background: var(--dg-divider) left center / contain no-repeat; margin-top: 24px; }
.dg-head h1 + p, .dg-head h2 + p { font-size: clamp(17px, 1.35vw, 19px); color: #4d4237; max-width: 34em; margin-top: 8px; }
.dg-center, .dg-center .et_pb_text_inner { text-align: center; }
.dg-center h1::after, .dg-center h2::after { background-position: center; margin-left: auto; margin-right: auto; }
/* Zentrierte Blöcke: Absätze mit Maximalbreite wirklich mittig (schlägt den Absatz-Reset .dg-site .et_pb_text p) */
.dg-site .dg-center .et_pb_text_inner > p, .dg-site .dg-center .et_pb_text_inner > h1, .dg-site .dg-center .et_pb_text_inner > h2, .dg-site .dg-center .et_pb_text_inner > h3 { margin-left: auto !important; margin-right: auto !important; }
.dg-head-hero h1 { font-size: clamp(44px, 6vw, 84px); }
.dg-head-hero .et_pb_text_inner > p:first-child:has(+ h1)::after { content: ''; display: inline-block; vertical-align: middle; width: 76px; height: 3px; margin-left: 14px; background: linear-gradient(90deg, var(--dg-green) 0 33%, #fff 33% 66%, var(--dg-red) 66%); }
.dg-head-xl h1 { font-size: clamp(42px, 5.2vw, 76px); }
.dg-sign { font-family: var(--dg-script); font-size: 44px !important; line-height: 1; color: var(--dg-green); margin-top: 24px !important; }
.dg-sec-gap .et_pb_row + .et_pb_row { margin-top: clamp(36px, 4.5vw, 60px); }

/* Auf dunklem Grund */
.dg-on-dark, .dg-on-dark .et_pb_text_inner, .dg-on-dark p { color: rgba(251, 246, 236, .85) !important; }
.dg-on-dark h1, .dg-on-dark h2 { color: #fff !important; }
.dg-on-dark h1 em, .dg-on-dark h2 em { color: #d5dea6 !important; }
.dg-on-dark .et_pb_text_inner > p:first-child:has(+ h1, + h2) { color: #e9dfc7 !important; }
.dg-on-dark h1::after, .dg-on-dark h2::after { filter: brightness(0) invert(1); opacity: .55; }
.dg-on-dark a { color: #fff !important; }

/* ---------- Buttons (.dg-b-primary / -ghost / -light) ---------- */
:is(.dg-site a.et_pb_button.dg-b, .dg-site .dg-b a.et_pb_button, .dg-site .dg-b .et_pb_button) {
	display: inline-flex !important; align-items: center; justify-content: center; gap: 10px;
	padding: 17px 30px !important; border-radius: 6px !important; border: 1.5px solid var(--dg-green) !important;
	background: var(--dg-green) !important; color: #fff !important;
	font-family: var(--dg-sans) !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: .14em !important; text-transform: uppercase; line-height: 1 !important;
	box-shadow: 0 16px 30px -18px rgba(58, 72, 28, .9); transition: background .25s, color .25s, transform .25s !important; text-decoration: none !important;
}
:is(.dg-site a.et_pb_button.dg-b, .dg-site .dg-b .et_pb_button)::after { display: none !important; }
:is(.dg-site a.et_pb_button.dg-b, .dg-site .dg-b .et_pb_button):hover { background: var(--dg-green-dark) !important; border-color: var(--dg-green-dark) !important; transform: translateY(-2px); padding: 17px 30px !important; }
:is(.dg-site a.et_pb_button.dg-b-ghost, .dg-site .dg-b-ghost .et_pb_button) { background: transparent !important; color: var(--dg-green) !important; box-shadow: none; }
:is(.dg-site a.et_pb_button.dg-b-ghost, .dg-site .dg-b-ghost .et_pb_button):hover { background: var(--dg-green) !important; color: #fff !important; }
:is(.dg-site a.et_pb_button.dg-b-light, .dg-site .dg-b-light .et_pb_button) { background: var(--dg-paper) !important; border-color: var(--dg-paper) !important; color: var(--dg-green) !important; }
:is(.dg-site a.et_pb_button.dg-b-light, .dg-site .dg-b-light .et_pb_button):hover { background: #fff !important; color: var(--dg-green-dark) !important; }
.dg-site .et_pb_button_module_wrapper { margin: 0 !important; }
.dg-btns { margin-top: 8px; }
.dg-btns-center { justify-content: center !important; width: 100%; }

/* ---------- Header (Theme Builder) ---------- */
.et-l--header:has(.dg-header) { position: sticky; top: 0; z-index: 999; }
.admin-bar .et-l--header:has(.dg-header) { top: 32px; }
.dg-header { background: rgba(246, 239, 226, .93) !important; -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid rgba(230, 218, 197, .8); }
.dg-menu .et-menu > li > a, .dg-menu .et_pb_menu__menu a { font-family: var(--dg-sans) !important; font-size: 13.5px !important; font-weight: 600 !important; letter-spacing: .12em !important; text-transform: uppercase; color: var(--dg-ink) !important; }
.dg-menu .et-menu > li.current-menu-item > a, .dg-menu .et-menu > li > a:hover { color: var(--dg-green) !important; }
.dg-menu .et-menu > li.current-menu-item > a { box-shadow: inset 0 -2px 0 var(--dg-green); }
.dg-menu .et_mobile_nav_menu .mobile_menu_bar::before { color: var(--dg-ink) !important; }
.dg-menu .et_mobile_menu { border-top-color: var(--dg-green) !important; background: var(--dg-paper) !important; }
.dg-menu .et_mobile_menu a { font-family: var(--dg-sans) !important; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: 14px !important; color: var(--dg-ink) !important; }

/* ---------- Hero ---------- */
.dg-hero { overflow: hidden; background-image: radial-gradient(70% 60% at 85% 30%, rgba(255, 250, 242, .9), transparent 70%) !important; }
.dg-facts ul { display: flex; flex-wrap: wrap; gap: 8px 26px; padding-top: 24px !important; margin-top: 10px !important; border-top: 1px solid var(--dg-line); font-size: 15px; color: var(--dg-muted); }
.dg-facts li { position: relative; padding-left: 16px !important; }
.dg-facts li::before { content: ''; position: absolute; left: 0; top: .65em; width: 7px; height: 7px; border-radius: 50%; background: var(--dg-green); }
.dg-facts strong { color: var(--dg-ink); font-weight: 600; }
.dg-hero-media { position: relative; }
.dg-hero-media::before { content: ''; position: absolute; inset: -4% -8% -6% -3%; background: var(--dg-paper); -webkit-mask: var(--dg-blob) center / 100% 100% no-repeat; mask: var(--dg-blob) center / 100% 100% no-repeat; transform: rotate(-4deg); z-index: 0; }
.dg-hero-media::after { content: ''; position: absolute; left: -14%; bottom: -8%; width: 56%; aspect-ratio: 220 / 120; background: var(--dg-branch) center / contain no-repeat; z-index: 3; pointer-events: none; }
.dg-hero-img { position: relative; z-index: 1; }
.dg-hero-img img { aspect-ratio: 600 / 560; object-fit: cover; -webkit-mask: var(--dg-blob) center / 100% 100% no-repeat; mask: var(--dg-blob) center / 100% 100% no-repeat; }
.dg-badge { position: absolute !important; z-index: 4; top: 1%; right: 1%; width: clamp(116px, 11vw, 152px); aspect-ratio: 1; border-radius: 50%; background: var(--dg-green); display: grid; place-items: center; text-align: center; box-shadow: 0 0 0 7px var(--dg-cream), 0 0 0 8px rgba(79, 98, 40, .35), var(--dg-shadow); transform: rotate(8deg); margin: 0 !important; }
.dg-badge .et_pb_text_inner { color: #fbf6ec; }
.dg-badge p { margin: 0 !important; font-size: 10px !important; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; line-height: 1.4 !important; color: #fbf6ec !important; }
.dg-badge p:nth-child(2) { font-family: var(--dg-serif); font-size: clamp(30px, 3vw, 40px) !important; letter-spacing: 0; line-height: 1 !important; margin: 2px 0 !important; text-transform: none; }

/* ---------- Vorteile (Blurbs mit Icon links) ---------- */
.dg-features-sec { border-top: 1px solid var(--dg-line); border-bottom: 1px solid var(--dg-line); }
.dg-feature .et_pb_blurb_content, .dg-tile .et_pb_blurb_content, .dg-info .et_pb_blurb_content { max-width: none !important; text-align: left !important; }
.dg-feature .et_pb_blurb_content { display: flex; gap: 16px; align-items: flex-start; }
.dg-site .dg-blurb .et_pb_main_blurb_image { margin: 0 0 14px; width: auto !important; text-align: left; }
.dg-feature .et_pb_main_blurb_image { margin: 0 !important; flex: none; }
.dg-site .dg-blurb .et-pb-icon { color: var(--dg-green) !important; font-size: 30px !important; }
.dg-feature .et_pb_module_header { font-family: var(--dg-sans) !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: .14em; text-transform: uppercase; margin: 2px 0 6px !important; }
.dg-feature .et_pb_blurb_description, .dg-feature .et_pb_blurb_description p { font-size: 15px !important; line-height: 1.6 !important; color: var(--dg-muted) !important; }

/* ---------- Bilder mit Form ---------- */
.dg-media-col { position: relative; }
.dg-arch .et_pb_image_wrap, .dg-arch img { border-radius: 320px 320px 18px 18px; }
.dg-arch img { aspect-ratio: 5 / 6; object-fit: cover; }
.dg-arch { box-shadow: var(--dg-shadow); border-radius: 320px 320px 18px 18px; overflow: hidden; }
.dg-photo { border-radius: var(--dg-radius); overflow: hidden; box-shadow: var(--dg-shadow); }
.dg-photo img { aspect-ratio: 4 / 5; object-fit: cover; }
.dg-photo-wide img { aspect-ratio: 16 / 11; }
.dg-note { position: absolute !important; right: -5%; bottom: 8%; max-width: 250px; background: var(--dg-paper); border-radius: 14px; padding: 20px 22px; box-shadow: var(--dg-shadow); z-index: 2; margin: 0 !important; }
.dg-note p { font-size: 15px !important; line-height: 1.5 !important; }
.dg-note strong { display: block; font-family: var(--dg-serif); font-weight: 400; font-size: 34px; color: var(--dg-green); line-height: 1; margin-bottom: 4px; }

/* ---------- Karten (Spezialitäten) ---------- */
.dg-card { background: var(--dg-paper); border-radius: var(--dg-radius); overflow: hidden; box-shadow: 0 1px 0 var(--dg-line), 0 24px 50px -38px rgba(43, 33, 24, .6); transition: transform .3s, box-shadow .3s; }
.dg-card:hover { transform: translateY(-5px); }
.dg-site .dg-card > .et_pb_module:not(:last-child) { margin-bottom: 0; }
.dg-card-img img { aspect-ratio: 4 / 3; object-fit: cover; }
.dg-card-text { padding: 22px 24px 26px; flex: 1; }
.dg-card-text p:first-child { font-size: 11px !important; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--dg-red) !important; margin-bottom: 6px !important; }
.dg-card-text h3 { font-size: 24px; margin-bottom: 6px; }
.dg-card-text p { font-size: 15px !important; color: var(--dg-muted) !important; line-height: 1.55 !important; }
.dg-card-text p:last-child strong { font-family: var(--dg-sans); font-size: 18px; color: var(--dg-green); font-weight: 600; }

/* ---------- Reservierungs-Band ---------- */
.dg-band { position: relative; isolation: isolate; }
.dg-band::after { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 120% at 0% 100%, rgba(0, 0, 0, .22), transparent 60%), radial-gradient(50% 100% at 100% 0%, rgba(255, 255, 255, .09), transparent 60%); pointer-events: none; }
.dg-band::before { content: ''; position: absolute; left: 0; right: 0; top: -40px; height: 41px; background: var(--dg-green); -webkit-mask: var(--dg-wave) center / 100% 100% no-repeat; mask: var(--dg-wave) center / 100% 100% no-repeat; pointer-events: none; }
.dg-band .dg-head h2 { font-size: clamp(32px, 3.6vw, 50px); }
.dg-band .gr-bar-field label { color: #fbf6ec !important; }

/* ---------- Zitat & Versprechen ---------- */
.dg-quote blockquote { margin: 0; padding: 0 0 0 30px; border-left: 3px solid var(--dg-green); }
.dg-quote blockquote p:first-child { font-family: var(--dg-serif); font-size: clamp(24px, 2.4vw, 34px) !important; line-height: 1.3 !important; color: var(--dg-ink) !important; }
.dg-quote blockquote p:last-child { font-size: 13px !important; letter-spacing: .16em; text-transform: uppercase; color: var(--dg-muted) !important; }
.dg-promises .et_pb_text_inner { display: grid; grid-template-columns: 1fr 1fr; gap: 0 26px; }
.dg-promises h3 { font-size: 21px; margin: 18px 0 4px; padding-left: 30px !important; position: relative; }
.dg-promises h3::before, .dg-checks li::before { content: ''; position: absolute; left: 0; top: .2em; width: 20px; height: 20px; border-radius: 50%; background: var(--dg-green-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%234f6228' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 10.5l3 3 6-7'/%3E%3C/svg%3E") center / 14px no-repeat; }
.dg-promises p { font-size: 15px !important; color: var(--dg-muted) !important; padding-left: 30px; }
.dg-promises h3:nth-of-type(1) { grid-column: 1; grid-row: 1; } .dg-promises p:nth-of-type(1) { grid-column: 1; grid-row: 2; }
.dg-promises h3:nth-of-type(2) { grid-column: 2; grid-row: 1; } .dg-promises p:nth-of-type(2) { grid-column: 2; grid-row: 2; }
.dg-promises h3:nth-of-type(3) { grid-column: 1; grid-row: 3; } .dg-promises p:nth-of-type(3) { grid-column: 1; grid-row: 4; }
.dg-promises h3:nth-of-type(4) { grid-column: 2; grid-row: 3; } .dg-promises p:nth-of-type(4) { grid-column: 2; grid-row: 4; }
.dg-checks li { position: relative; padding: 0 0 0 34px !important; margin-bottom: 12px; }

/* ---------- Kacheln (Blurbs in Spalten) ---------- */
.dg-tile-col { display: flex; }
.dg-tile { background: var(--dg-paper); border: 1px solid var(--dg-line); border-radius: var(--dg-radius); padding: 32px 30px !important; width: 100%; }
.dg-tile .et_pb_module_header { font-size: 25px !important; margin-bottom: 8px !important; }
.dg-tile .et_pb_blurb_description p { font-size: 16px !important; color: var(--dg-muted) !important; }
.dg-tile .et_pb_blurb_description p:first-child:has(> strong:only-child) strong { font-family: var(--dg-serif); font-weight: 400; font-size: 40px; color: var(--dg-green); line-height: 1.1; }
.dg-tile-dark { background: var(--dg-green); border-color: var(--dg-green); }
.dg-tile-dark .et_pb_module_header, .dg-tile-dark .et_pb_blurb_description p:first-child strong { color: #fff !important; }
.dg-tile-dark .et_pb_blurb_description p, .dg-tile-dark a { color: rgba(251, 246, 236, .85) !important; }
.dg-site .dg-tile-dark .et-pb-icon { color: #e9dfc7 !important; }
.dg-stack { gap: 20px; }
.dg-site .dg-stack > .et_pb_module:not(:last-child) { margin-bottom: 0; }

/* ---------- Bewertungen ---------- */
.dg-review-col { display: flex; }
.dg-review { background: var(--dg-paper); border: 1px solid var(--dg-line); border-radius: var(--dg-radius); padding: 30px 26px 24px; width: 100%; }
.dg-review .et_pb_text_inner { display: flex; flex-direction: column; height: 100%; }
.dg-review p:first-child { flex: 1; font-size: 16px !important; color: #43392f !important; }
.dg-review p:first-child::before { content: '\201C'; display: block; font-family: var(--dg-serif); font-size: 70px; line-height: .6; height: 30px; color: var(--dg-green); }
.dg-review p:last-child { margin-top: 16px !important; font-size: 12.5px !important; letter-spacing: .12em; text-transform: uppercase; color: var(--dg-muted) !important; }

/* ---------- Galerie ---------- */
.dg-gal { border-radius: 14px; overflow: hidden; }
.dg-gal img { height: clamp(150px, 17vw, 250px); object-fit: cover; transition: transform .7s ease; }
.dg-gal:hover img { transform: scale(1.05); }
.dg-gallery + .dg-gallery { margin-top: 14px !important; }

/* ---------- Infos / Öffnungszeiten ---------- */
.dg-info-row { background: var(--dg-paper); border: 1px solid var(--dg-line); border-radius: var(--dg-radius); overflow: hidden; }
.dg-info-col { padding: 32px 28px; }
.dg-info-col + .dg-info-col { border-left: 1px solid var(--dg-line); }
.dg-info .et_pb_module_header { font-family: var(--dg-sans) !important; font-size: 13px !important; font-weight: 600 !important; letter-spacing: .18em; text-transform: uppercase; color: var(--dg-green) !important; margin-bottom: 10px !important; }
.dg-info .et_pb_blurb_description, .dg-info .et_pb_blurb_description p { font-size: 16px !important; }
.dg-info ul li { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px dashed var(--dg-line); padding: 4px 0 !important; }
.dg-info ul li strong { font-weight: 500; }

/* ---------- Seitenkopf ---------- */
.dg-pagehead { position: relative; overflow: hidden; background-image: radial-gradient(60% 80% at 50% 0%, rgba(255, 250, 242, .95), transparent 70%) !important; }
.dg-pagehead::before, .dg-pagehead::after { content: ''; position: absolute; width: min(320px, 34vw); aspect-ratio: 220 / 120; background: var(--dg-branch) center / contain no-repeat; opacity: .55; pointer-events: none; }
.dg-pagehead::before { left: -40px; bottom: 10px; }
.dg-pagehead::after { right: -40px; top: 20px; transform: scale(-1, -1); }
.dg-crumbs p { text-align: center; font-size: 13px !important; letter-spacing: .14em; text-transform: uppercase; color: var(--dg-muted) !important; }
.dg-crumbs a { color: var(--dg-muted) !important; text-decoration: none !important; }

/* ---------- Speise- & Getränkekarte ---------- */
.dg-menu-nav { position: sticky; top: 113px; transition: top .35s ease; z-index: 50; border-top: 1px solid var(--dg-line); border-bottom: 1px solid var(--dg-line); background: rgba(246, 239, 226, .94) !important; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.admin-bar .dg-menu-nav { top: 145px; }
body.dg-scrolled .dg-menu-nav { top: 85px; }
.admin-bar.dg-scrolled .dg-menu-nav { top: 117px; }
.dg-chips p { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.dg-chips a { display: inline-block; white-space: nowrap; padding: 8px 18px; border-radius: 40px; border: 1px solid var(--dg-line); background: var(--dg-paper); font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--dg-ink) !important; text-decoration: none !important; }
.dg-chips a:hover { background: var(--dg-green); border-color: var(--dg-green); color: #fff !important; }
.dg-menu-sec { scroll-margin-top: 170px; }
.dg-menu-meta p { text-align: right; font-size: 15px !important; color: var(--dg-muted) !important; }
.dg-menu-list h3 { display: flex; align-items: baseline; gap: 10px; font-size: 23px; margin: 0 0 4px; padding-top: 18px !important; border-top: 1px dashed var(--dg-line); }
.dg-menu-list h3:first-child { border-top: 0; padding-top: 0 !important; }
.dg-menu-list h3::after { content: ''; order: 1; flex: 1; min-width: 20px; border-bottom: 2px dotted #cbbda6; transform: translateY(-5px); }
.dg-menu-list h3:not(:has(strong))::after { display: none; }
.dg-menu-list h3 strong { order: 2; font-family: var(--dg-sans); font-weight: 600; font-size: 17px; color: var(--dg-green); white-space: nowrap; }
.dg-menu-list h3 em { font-family: var(--dg-sans); font-style: normal; font-size: 10.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--dg-red); border: 1px solid rgba(178, 58, 42, .35); border-radius: 30px; padding: 2px 9px; white-space: nowrap; align-self: center; }
.dg-menu-list p { font-size: 15px !important; color: var(--dg-muted) !important; line-height: 1.55 !important; margin: 0 0 18px !important; max-width: 32em; }
.dg-build { background: var(--dg-paper); border: 1px solid var(--dg-line); border-radius: var(--dg-radius); padding: clamp(24px, 4vw, 42px) !important; }
.dg-build-intro p:first-child { font-size: 13px !important; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--dg-green) !important; }
.dg-build-intro h3 { font-size: 28px; }
.dg-build-intro p strong { font-family: var(--dg-serif); font-weight: 400; font-size: 60px; color: var(--dg-green); line-height: 1; }
.dg-build-table table { width: 100%; border-collapse: collapse; border: 0; font-size: 15px; }
.dg-build-table td { padding: 10px 0; border: 0; border-bottom: 1px dashed var(--dg-line); vertical-align: top; }
.dg-build-table td:last-child { text-align: right; font-weight: 600; color: var(--dg-green); white-space: nowrap; padding-left: 16px; }
.dg-allergen { background: var(--dg-sand); border-radius: 14px; padding: 20px 24px; }
.dg-allergen p { font-size: 15px !important; color: #4d4237 !important; }

/* ---------- Zeitleiste (animiert; jeder Eintrag = eigenes Textmodul .dg-tl-item) ---------- */
.dg-timeline2 { position: relative; padding: 10px 0 !important; --tl: 0; }
.dg-timeline2::before, .dg-timeline2::after { content: ''; position: absolute; left: 50%; top: 0; width: 2px; margin-left: -1px; border-radius: 2px; pointer-events: none; }
.dg-timeline2::before { bottom: 0; background: repeating-linear-gradient(to bottom, #d8cbb2 0 6px, transparent 6px 12px); }
.dg-timeline2::after { height: calc(var(--tl) * 100%); background: var(--dg-green); transition: height .15s linear; }
.dg-site .dg-timeline2 > .dg-tl-item { position: relative; width: calc(50% - 64px); margin: 0 0 54px !important; align-self: flex-start; background: var(--dg-paper); border: 1px solid var(--dg-line); border-radius: var(--dg-radius); padding: 30px 32px 28px; box-shadow: 0 24px 50px -40px rgba(43, 33, 24, .55); }
.dg-site .dg-timeline2 > .dg-tl-item:nth-child(even) { align-self: flex-end; }
.dg-site .dg-timeline2 > .dg-tl-item:last-child { margin-bottom: 0 !important; }
.dg-tl-item::before { content: ''; position: absolute; top: 36px; right: -77px; width: 22px; height: 22px; border-radius: 50%; background: var(--dg-cream); box-shadow: 0 0 0 2px #d8cbb2; transition: background .5s, box-shadow .5s, transform .5s; z-index: 2; }
.dg-tl-item:nth-child(even)::before { right: auto; left: -77px; }
.dg-tl-item::after { content: ''; position: absolute; top: 46px; right: -16px; width: 16px; height: 2px; background: var(--dg-line); }
.dg-tl-item:nth-child(even)::after { right: auto; left: -16px; }
.dg-tl-item.is-in::before { background: var(--dg-green); box-shadow: 0 0 0 6px var(--dg-green-soft); transform: scale(1.05); }
.dg-tl-item p:first-child { font-family: var(--dg-serif); font-size: clamp(40px, 4vw, 56px) !important; line-height: 1 !important; color: var(--dg-green) !important; margin: 0 0 8px !important; }
.dg-tl-item h3 { font-size: 26px; margin-bottom: 8px; }
.dg-tl-item p { font-size: 16px !important; color: #4d4237 !important; }
html.dg-js .dg-tl-item { opacity: 0; transform: translate3d(-36px, 24px, 0); transition: opacity .8s ease, transform .8s cubic-bezier(.2, .7, .2, 1); }
html.dg-js .dg-tl-item:nth-child(even) { transform: translate3d(36px, 24px, 0); }
html.dg-js .dg-tl-item.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html.dg-js .dg-tl-item { opacity: 1; transform: none; transition: none; } .dg-timeline2::after { transition: none; } }

/* ---------- Kontakt ---------- */
.dg-mapcard { background: var(--dg-green); border-radius: var(--dg-radius); padding: 40px 36px; justify-content: flex-end; min-height: 420px; box-shadow: var(--dg-shadow); background-image: radial-gradient(circle at 30% 20%, rgba(255, 255, 255, .1), transparent 60%); }
.dg-mapcard h2 { font-size: clamp(30px, 3vw, 40px); }

/* ---------- Footer (Theme Builder) ---------- */
.dg-footer { position: relative; overflow: visible !important; isolation: isolate; color: rgba(251, 246, 236, .78); background-image: radial-gradient(60% 90% at 50% 0%, rgba(255, 255, 255, .07), transparent 70%) !important; }
.dg-footer::before { content: ''; position: absolute; left: 0; right: 0; top: -40px; height: 41px; background: #33401b; -webkit-mask: var(--dg-wave) center / 100% 100% no-repeat; mask: var(--dg-wave) center / 100% 100% no-repeat; pointer-events: none; }
.dg-footer::after { content: ''; position: absolute; right: 0; bottom: 30px; width: min(420px, 44vw); aspect-ratio: 220 / 120; background: var(--dg-branch) center / contain no-repeat; filter: brightness(0) invert(1); opacity: .06; transform: scaleX(-1); z-index: -1; pointer-events: none; }
.dg-flogo-img { width: 150px; margin: -58px auto 0 !important; position: relative; z-index: 5; border-radius: 50%; box-shadow: 0 0 0 6px #33401b, 0 18px 40px -16px rgba(0, 0, 0, .55); }
.dg-flogo-img img { background: transparent !important; border-radius: 50%; }
.dg-fhead { text-align: center; margin-top: 18px !important; }
.dg-fhead p:first-child { font-family: var(--dg-script); font-size: clamp(36px, 4vw, 52px) !important; line-height: 1.1 !important; color: #fbf6ec !important; margin-bottom: 10px !important; }
.dg-fhead p { font-size: 16px !important; color: rgba(251, 246, 236, .72) !important; max-width: 30em; margin-left: auto !important; margin-right: auto !important; }
.dg-fcols { border-top: 1px solid rgba(251, 246, 236, .14); border-bottom: 1px solid rgba(251, 246, 236, .14); padding: 46px 0 !important; margin-top: 46px !important; }
.dg-fcol h4 { font-family: var(--dg-sans); font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: #c9d39b !important; margin-bottom: 16px; }
.dg-fcol, .dg-fcol p, .dg-fcol li { font-size: 15.5px !important; color: rgba(251, 246, 236, .8) !important; line-height: 1.7 !important; }
.dg-fcol li { margin-bottom: 4px; }
.dg-fcol a { color: #fbf6ec !important; text-decoration: none !important; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .3s; }
.dg-fcol a:hover { background-size: 100% 1px; }
.dg-fcol a[href^='tel:'] { font-family: var(--dg-serif); font-size: 26px; line-height: 1.2; }
.dg-fsocial { margin-top: 6px !important; }
.dg-footer .dg-b-light .et_pb_button, .dg-footer a.et_pb_button.dg-b-light { margin-top: 6px; }
.dg-fbottom { padding-top: 22px; }
.dg-fbottom .et_pb_text_inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; }
.dg-fbottom p { font-size: 13.5px !important; color: rgba(251, 246, 236, .55) !important; margin: 0 !important; }
.dg-fbottom a { color: rgba(251, 246, 236, .75) !important; text-decoration: none !important; }

/* ---------- Header: Menü links | Logo | Menü rechts + Reservieren ---------- */
/* Divi-Standards des Menü-Moduls neutralisieren (weißer Hintergrund, negative Ränder, Umbruch) */
.dg-site .dg-menu, .dg-site .dg-fmenu { background-color: transparent !important; }
.dg-site .dg-menu .et_pb_menu__menu > nav > ul.et-menu, .dg-site .dg-fmenu .et_pb_menu__menu > nav > ul.et-menu { margin: 0 !important; }
.dg-site .dg-menu .et_pb_menu__menu > nav > ul.et-menu { flex-wrap: nowrap !important; align-items: center !important; }
.dg-site .dg-menu-l .et_pb_menu__menu > nav > ul.et-menu { justify-content: flex-end !important; }
.dg-site .dg-menu-r .et_pb_menu__menu > nav > ul.et-menu { justify-content: flex-start !important; }
.dg-site .dg-menu-l .et_pb_menu__menu, .dg-site .dg-menu-l .et-menu-nav { margin-left: auto; }
.dg-site :is(.dg-center, .dg-fhead, .dg-crumbs) :is(.et_pb_text_inner, p, h1, h2, h3) { text-align: center !important; }
.dg-header { border-bottom: 1px solid rgba(230, 218, 197, .9); box-shadow: 0 10px 30px -26px rgba(43, 33, 24, .5); }
.dg-site .dg-header .et_pb_row { padding: 0 !important; }
.dg-hdr-desk { align-items: center !important; min-height: 112px; transition: min-height .35s ease; }
.dg-hdr-l, .dg-hdr-r, .dg-hdr-c { justify-content: center; }
.dg-menu-l .et_pb_menu_inner_container, .dg-menu-l .et_pb_menu__wrap { justify-content: flex-end !important; }
.dg-menu-r .et_pb_menu_inner_container, .dg-menu-r .et_pb_menu__wrap { justify-content: flex-start !important; }
.dg-menu-l .et_pb_menu__wrap, .dg-menu-r .et_pb_menu__wrap { flex: 1 1 auto; }
.dg-menu .et-menu { align-items: center; flex-wrap: nowrap; }
/* EIN Header-Menü für beide Seiten: Einträge 1–3 links vom Logo, ab Eintrag 4 rechts */
.dg-menu-l .et-menu > li:nth-child(n+4) { display: none !important; }
.dg-menu-r .et-menu > li:nth-child(-n+3) { display: none !important; }
.dg-menu .et-menu > li { padding: 0 clamp(10px, 1.25vw, 20px) !important; }
.dg-menu .et-menu > li > a { white-space: nowrap; padding-top: 10px !important; padding-bottom: 10px !important; position: relative; }
.dg-menu .et-menu > li:not(.dg-nav-cta) > a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 2px; height: 2px; background: var(--dg-green); transform: scaleX(0); transform-origin: center; transition: transform .3s ease; }
.dg-menu .et-menu > li:not(.dg-nav-cta) > a:hover::after, .dg-menu .et-menu > li.current-menu-item:not(.dg-nav-cta) > a::after { transform: scaleX(1); }
.dg-menu .et-menu > li.current-menu-item > a { box-shadow: none !important; }
.dg-menu .et-menu > li.dg-nav-cta { padding-left: clamp(14px, 1.6vw, 26px) !important; }
.dg-menu .et-menu > li.dg-nav-cta > a { padding: 14px 22px !important; border-radius: 6px; background: var(--dg-green); color: #fff !important; box-shadow: 0 14px 26px -16px rgba(58, 72, 28, .9); transition: background .25s, transform .25s; }
.dg-menu .et-menu > li.dg-nav-cta > a:hover { background: var(--dg-green-dark); transform: translateY(-1px); color: #fff !important; }
.dg-hdr-logo { width: 104px; margin: 6px auto !important; transition: width .35s ease; }
.dg-hdr-logo img { background: transparent !important; border-radius: 50%; box-shadow: 0 8px 22px -12px rgba(43, 33, 24, .45); }
.dg-hdr-logo a { display: block; }
body.dg-scrolled .dg-hdr-desk { min-height: 84px; }
body.dg-scrolled .dg-hdr-logo { width: 76px; }
@media (max-width: 1180px) { .dg-menu .et-menu > li { padding: 0 9px !important; } .dg-menu .et-menu > li > a { font-size: 12.5px !important; letter-spacing: .1em !important; } .dg-menu .et-menu > li.dg-nav-cta > a { padding: 12px 16px !important; } }
/* Tablet & Handy: Logo mittig, Hamburger rechts */
.dg-hdr-mob .et_pb_menu_inner_container { position: relative; justify-content: center !important; min-height: 76px; }
.dg-hdr-mob .et_pb_menu__logo-wrap { margin: 0 auto !important; width: auto !important; padding: 0 !important; justify-content: center; }
.dg-hdr-mob .et_pb_menu__logo { margin: 0 !important; padding: 0 !important; }
.dg-hdr-mob .et_pb_menu__logo img { max-height: 64px !important; width: auto; border-radius: 50%; }
.dg-hdr-mob .et_pb_menu__wrap { flex: 0 0 auto !important; }
.dg-hdr-mob .et_mobile_nav_menu { position: absolute; right: 0; top: 50%; transform: translateY(-50%); margin: 0 !important; }
.dg-hdr-mob .et_mobile_menu { left: -5.6vw !important; right: -5.6vw !important; width: auto !important; padding: 10px 0 18px !important; text-align: center; box-shadow: 0 30px 40px -30px rgba(43, 33, 24, .5); }
.dg-hdr-mob .et_mobile_menu li a { padding: 14px 5% !important; border-bottom: 1px solid var(--dg-line) !important; }
.dg-hdr-mob .et_mobile_menu li.dg-nav-cta a { margin: 14px 5% 0; border: 0 !important; border-radius: 6px; background: var(--dg-green) !important; color: #fff !important; }
@media (min-width: 981px) { .dg-hdr-mob { display: none !important; } }
@media (max-width: 980px) { .dg-hdr-desk { display: none !important; } }

/* ---------- Footer-Menü (Menü-Modul, immer als Liste) ---------- */
.dg-site .dg-fcol-menu > .dg-fcol { margin-bottom: 0 !important; }
.dg-fmenu .et_pb_menu_inner_container, .dg-fmenu .et_pb_menu__wrap { display: block !important; }
.dg-fmenu .et_pb_menu__menu { display: block !important; }
.dg-fmenu .et_mobile_nav_menu { display: none !important; }
.dg-fmenu .et-menu { display: block !important; }
.dg-site .dg-fmenu .et-menu > li { display: block !important; padding: 0 !important; margin: 0 0 6px !important; }
.dg-site .dg-fmenu .et-menu > li > a { display: inline-block !important; padding: 0 !important; font-family: var(--dg-sans) !important; font-size: 15.5px !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; color: #fbf6ec !important; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .3s; }
.dg-fmenu .et-menu > li > a:hover { background-size: 100% 1px; }
.dg-site .dg-fmenu .et-menu > li.current-menu-item > a { box-shadow: none !important; color: #c9d39b !important; }
.dg-fmenu .et-menu > li > a::after { display: none !important; }

/* ---------- Empfehlungskarte ([gino_empfehlung]) ---------- */
.dg-emp-sec { position: relative; isolation: isolate; }
.dg-emp-sec--start::after { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(50% 80% at 10% 100%, rgba(0, 0, 0, .2), transparent 60%), radial-gradient(40% 70% at 95% 0%, rgba(255, 255, 255, .08), transparent 60%); pointer-events: none; }
.dg-emp-media { position: relative; }
.dg-emp-photo { border-radius: 320px 320px 18px 18px; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .55); transform: rotate(-2deg); }
.dg-emp-photo img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: inherit; }
.dg-emp-aside { margin-top: 26px !important; text-align: center; }
.dg-emp-aside p:first-child { font-family: var(--dg-script); font-size: 34px !important; line-height: 1.1 !important; color: #fbf6ec !important; margin-bottom: 4px !important; }
.dg-emp-aside p { font-size: 15px !important; color: rgba(251, 246, 236, .78) !important; max-width: 20em; margin-left: auto !important; margin-right: auto !important; }
.dg-emp-sec:not(.dg-emp-sec--start) .dg-emp-aside p:first-child { color: var(--dg-green) !important; }
.dg-emp-sec:not(.dg-emp-sec--start) .dg-emp-aside p { color: var(--dg-muted) !important; }
.dg-emp { position: relative; background: var(--dg-paper); border-radius: 22px; padding: clamp(30px, 4.4vw, 58px) clamp(22px, 4.4vw, 58px) clamp(28px, 3.6vw, 46px); box-shadow: 0 40px 80px -40px rgba(20, 24, 8, .65); }
.dg-emp::before { content: ''; position: absolute; inset: 12px; border: 1px solid rgba(79, 98, 40, .28); border-radius: 14px; pointer-events: none; }
.dg-emp-head { text-align: center; margin-bottom: 26px; }
.dg-site .dg-emp p { margin: 0; padding: 0; }
.dg-emp-kicker { font-family: var(--dg-script); font-size: clamp(28px, 2.8vw, 36px); line-height: 1.1; color: var(--dg-green); }
.dg-site .dg-emp-title { font-size: clamp(32px, 3.6vw, 50px); margin: 4px 0 0; }
.dg-emp-month { margin-top: 14px !important; }
.dg-emp-month span { display: inline-block; padding: 5px 16px; border-radius: 40px; border: 1px solid rgba(178, 58, 42, .4); color: var(--dg-red); font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.dg-emp-sub { margin-top: 12px !important; color: var(--dg-muted); font-size: 16px; }
.dg-emp-group + .dg-emp-group { margin-top: 26px; }
.dg-site .dg-emp-gname { display: flex; align-items: center; gap: 14px; font-family: var(--dg-sans); font-size: 12.5px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--dg-green); margin: 0 0 12px; }
.dg-emp-gname::before, .dg-emp-gname::after { content: ''; flex: 1; height: 1px; background: var(--dg-line); }
.dg-site .dg-emp-list { list-style: none; margin: 0; padding: 0; columns: 2 300px; column-gap: 46px; }
.dg-site .dg-emp-list li { break-inside: avoid; padding: 12px 0 13px !important; border-bottom: 1px dashed var(--dg-line); }
.dg-emp-dish { display: flex; align-items: baseline; gap: 10px; }
.dg-emp-name { font-family: var(--dg-serif); font-size: 21px; line-height: 1.2; color: var(--dg-ink); }
.dg-emp-dish::after { content: ''; order: 1; flex: 1; min-width: 16px; border-bottom: 2px dotted #cbbda6; transform: translateY(-4px); }
.dg-emp-price { order: 2; font-weight: 600; font-size: 16px; color: var(--dg-green); white-space: nowrap; }
.dg-site .dg-emp-desc { margin-top: 4px; font-size: 14.5px; line-height: 1.5; color: var(--dg-muted); }
.dg-site .dg-emp-note { margin-top: 24px; background: var(--dg-sand); border-radius: 12px; padding: 16px 20px; font-size: 15px; color: #4d4237; text-align: center; }
.dg-site .dg-emp-cta { margin-top: 26px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 26px; }
.dg-emp-btn { display: inline-flex; align-items: center; padding: 16px 28px; border-radius: 6px; background: var(--dg-green); color: #fff !important; font-size: 14px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; text-decoration: none !important; box-shadow: 0 16px 30px -18px rgba(58, 72, 28, .9); transition: background .25s, transform .25s; }
.dg-emp-btn:hover { background: var(--dg-green-dark); transform: translateY(-2px); }
.dg-emp-link { color: var(--dg-green) !important; font-weight: 600; font-size: 15px; text-underline-offset: 4px; }
.dg-empwrap { width: 100%; }

/* ---------- Unterüberschriften, Duo, Mosaik, Terrassen-Teaser ---------- */
.dg-subhead { margin-top: 10px !important; }
.dg-subhead p:first-child:has(+ h3) { font-family: var(--dg-script); font-size: 28px !important; line-height: 1.1 !important; color: var(--dg-green) !important; margin-bottom: 2px !important; }
.dg-subhead h3 { font-size: clamp(26px, 2.4vw, 32px); margin: 0 0 6px; display: flex; align-items: center; gap: 18px; }
.dg-subhead h3::after { content: ''; flex: 1; height: 1px; background: var(--dg-line); }
.dg-subhead h3 + p { font-size: 15.5px !important; color: var(--dg-muted) !important; max-width: 46em; }
.dg-duo .dg-photo { margin-bottom: 30px !important; }
.dg-head-sm h2 { font-size: clamp(30px, 3vw, 42px); }
.dg-tall { border-radius: 16px; overflow: hidden; box-shadow: var(--dg-shadow); }
.dg-tall img { aspect-ratio: 4 / 5; object-fit: cover; transition: transform .8s ease; }
.dg-tall:hover img { transform: scale(1.04); }
@media (min-width: 768px) { .dg-mosaic > .et_pb_column:nth-child(2) { transform: translateY(42px); } .dg-mosaic + .dg-mosaic { margin-top: 18px !important; } .dg-sec-gap .dg-mosaic:last-child { margin-bottom: 42px; } }
.dg-terrace-teaser { position: relative; isolation: isolate; overflow: hidden; }
.dg-terrace-teaser::after { content: ''; position: absolute; left: -60px; bottom: -20px; width: min(460px, 48vw); aspect-ratio: 220 / 120; background: var(--dg-branch) center / contain no-repeat; filter: brightness(0) invert(1); opacity: .07; z-index: -1; }
.dg-terrace-teaser .dg-arch { box-shadow: 0 40px 70px -40px rgba(0, 0, 0, .6); }
:is(.dg-site .dg-btns-dark a.et_pb_button.dg-b-ghost, .dg-site .dg-btns-dark .dg-b-ghost .et_pb_button) { color: #fbf6ec !important; border-color: rgba(251, 246, 236, .6) !important; }
:is(.dg-site .dg-btns-dark a.et_pb_button.dg-b-ghost, .dg-site .dg-btns-dark .dg-b-ghost .et_pb_button):hover { background: #fbf6ec !important; color: var(--dg-green) !important; }

/* ---------- Impressum & Datenschutz ---------- */
.dg-site .dg-legal-sec .et_pb_column > .et_pb_module:not(:last-child) { margin-bottom: 34px; }
.dg-legal h2 { font-size: clamp(23px, 2.2vw, 30px); margin-bottom: 10px; }
.dg-legal p { font-size: 16px !important; color: #4d4237 !important; }
.dg-legal a { word-break: break-word; }

/* ---------- Mobile Aktionsleiste ---------- */
.dg-actionbar { display: none; }
@media (max-width: 767px) {
	.dg-actionbar { display: grid; grid-template-columns: 1fr 1fr 1.3fr; position: fixed; z-index: 9998; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); background: var(--dg-ink); border-radius: 14px; overflow: hidden; box-shadow: 0 18px 40px -10px rgba(0, 0, 0, .45); font-family: var(--dg-sans); }
	.dg-actionbar a { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 15px 6px; color: #fbf6ec; font-size: 12.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; border-left: 1px solid rgba(255, 255, 255, .1); }
	.dg-actionbar a:first-child { border-left: 0; }
	.dg-actionbar a.main { background: var(--dg-green); }
	body:has(.dg-actionbar) { padding-bottom: 80px; }
}



/* ---------- Responsive ---------- */
@media (max-width: 980px) {
	.dg-hero-media { max-width: 620px; margin: 0 auto; width: 100%; }
	.dg-info-col + .dg-info-col { border-left: 0; }
	.dg-info-col:nth-child(even) { border-left: 1px solid var(--dg-line); }
	.dg-info-col:nth-child(n+3) { border-top: 1px solid var(--dg-line); }
	.dg-site .dg-info-row > .et_pb_column, .dg-site .dg-tiles > .et_pb_column[class*='6_24'], .dg-site .dg-reviews > .et_pb_column, .dg-site .dg-gallery > .et_pb_column { width: calc(50% - 12px) !important; max-width: calc(50% - 12px) !important; flex: 0 0 calc(50% - 12px) !important; }
	.dg-site .dg-info-row > .et_pb_column { width: 50% !important; max-width: 50% !important; flex-basis: 50% !important; }
	.dg-note { right: 4%; }
	.dg-menu-meta p { text-align: left; }
	.dg-site .dg-features > .et_pb_column { width: calc(50% - 16px) !important; max-width: calc(50% - 16px) !important; flex: 0 0 calc(50% - 16px) !important; }
	.dg-tile { padding: 26px 22px !important; }
	.dg-tile .et_pb_module_header { font-size: 21px !important; }
	.dg-tile .et_pb_blurb_description p { font-size: 15px !important; }
	.dg-menu-nav, body.dg-scrolled .dg-menu-nav { top: 77px; }
		.dg-site .dg-fcols > .et_pb_column { width: calc(50% - 20px) !important; max-width: calc(50% - 20px) !important; flex: 0 0 calc(50% - 20px) !important; }
	.dg-emp-photo { max-width: 360px; margin: 0 auto !important; }
}
@media (max-width: 767px) {
	body.dg-site, .dg-site .et_pb_text { font-size: 16px; }
	.dg-site .dg-info-row > .et_pb_column, .dg-site .dg-tiles > .et_pb_column, .dg-site .dg-tiles > .et_pb_column[class*='6_24'], .dg-site .dg-features > .et_pb_column, .dg-site .dg-reviews > .et_pb_column { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
	.dg-info-col, .dg-info-col:nth-child(even) { border-left: 0 !important; }
	.dg-info-col + .dg-info-col { border-top: 1px solid var(--dg-line); }
	.dg-promises .et_pb_text_inner { display: block; }
	.dg-note { position: relative !important; right: auto; bottom: auto; margin: -50px 16px 0 !important; max-width: none; }
	.dg-timeline2::before, .dg-timeline2::after { left: 16px; }
	.dg-site .dg-timeline2 > .dg-tl-item, .dg-site .dg-timeline2 > .dg-tl-item:nth-child(even) { width: auto; align-self: stretch; margin-left: 46px !important; margin-bottom: 30px !important; padding: 24px 22px; }
	.dg-tl-item::before, .dg-tl-item:nth-child(even)::before { left: -41px; right: auto; top: 30px; width: 18px; height: 18px; }
	.dg-tl-item::after, .dg-tl-item:nth-child(even)::after { left: -16px; right: auto; top: 39px; }
	html.dg-js .dg-tl-item, html.dg-js .dg-tl-item:nth-child(even) { transform: translate3d(0, 24px, 0); }
	.dg-site .dg-fcols > .et_pb_column { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
	.dg-fbottom .et_pb_text_inner { justify-content: center; text-align: center; }
	.dg-emp-name { font-size: 19px; }
	.dg-site .dg-cards { flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; width: 100% !important; padding: 4px 5% 24px !important; scroll-padding: 0 5%; scrollbar-width: none; }
	.dg-site .dg-cards > .et_pb_column { width: 80% !important; max-width: 80% !important; flex: 0 0 80% !important; scroll-snap-align: start; }
	.dg-sec-gap .dg-cards + .dg-cards { margin-top: 4px !important; }
	.dg-mosaic > .et_pb_column { width: calc(50% - 9px) !important; max-width: calc(50% - 9px) !important; flex: 0 0 calc(50% - 9px) !important; }
	.dg-mosaic { flex-wrap: wrap !important; gap: 12px 18px !important; }
	.dg-mosaic + .dg-mosaic { margin-top: 12px !important; }
	.dg-site .dg-mosaic > .et_pb_column:nth-child(3) { width: 100% !important; max-width: 100% !important; flex-basis: 100% !important; }
	.dg-mosaic > .et_pb_column:nth-child(3) .dg-tall img { aspect-ratio: 16 / 10; }
	.dg-btns .et_pb_button_module_wrapper, .dg-btns .dg-b { width: 100%; }
	.dg-btns .et_pb_button { width: 100%; }
	.dg-badge { top: -2%; right: 0; }
	.dg-feature .et_pb_blurb_content { gap: 14px; }
	.dg-menu-list h3 { font-size: 20px; flex-wrap: wrap; }
	.dg-chips p { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
}
