/* Fonts are served locally; no Google Fonts or Font Awesome CDN requests. */
@font-face { font-family: "Plus Jakarta Sans"; src: url(../Fonts/PlusJakartaSans/PlusJakartaSans-Regular.ttf) format("truetype"); font-style: normal; font-weight: 200 800; font-display: swap; }
@font-face { font-family: "Plus Jakarta Sans"; src: url(../Fonts/PlusJakartaSans/PlusJakartaSans-Italic.ttf) format("truetype"); font-style: italic; font-weight: 200 800; font-display: swap; }
@font-face { font-family: "Font Awesome 6 Free"; src: url(../Fonts/FontAwesome/fa-solid-900.woff2) format("woff2"); font-style: normal; font-weight: 900; font-display: block; }
/* Herzog frontend design, adopted from the approved local prototype. */
body.herzog-modern {
  --herzog-blue: #00447C;
  --herzog-ink: #29333b;
  --herzog-muted: #5d6a75;
  --herzog-line: #dce4e9;
  --herzog-soft: #f2f5f7;
  margin: 0; background: #fff; color: var(--herzog-ink);
  font-family: "Plus Jakarta Sans", Arial, sans-serif;
  font-size: clamp(18px, 1rem + .3vw, 20px); line-height: 1.5;
}
.herzog-modern *, .herzog-modern *::before, .herzog-modern *::after { box-sizing: border-box; }
.herzog-modern a { color: var(--herzog-blue); text-underline-offset: .2em; transition: background-color 180ms, color 180ms, border-color 180ms; }
.herzog-modern :focus-visible { outline: 2px solid var(--herzog-blue); outline-offset: 4px; }
.herzog-modern button { font: inherit; cursor: pointer; }
.herzog-modern .page-margin { background: none; }
.herzog-modern .page { width: min(1160px, calc(100% - 64px)); margin-inline: auto; }
.herzog-modern #header { width: auto; height: auto; padding: 36px 0 28px; }
.herzog-modern #header .logo { float: none; width: 275px; max-width: 80%; padding: 0; }
.herzog-modern #header .logo img { display: block; width: 100%; height: auto; }
.herzog-modern div.navi { height: auto; min-height: 58px; border-top: 1px solid var(--herzog-line); border-bottom: 1px solid var(--herzog-line); margin-bottom: 32px; }
.herzog-modern ul.mainnavi { display: flex; align-items: center; gap: 0; float: none; width: 100%; padding: 0; margin: 0; background: none; }
.herzog-modern ul.mainnavi > li { float: none; width: auto; margin: 0; padding: 0; background: none; position: relative; }
.herzog-modern ul.mainnavi > li > a { padding: 15px 18px; font-family: inherit; font-size: clamp(18px, 1rem + .3vw, 20px); font-weight: 500; line-height: 26px; color: var(--herzog-blue); background: none; }
.herzog-modern ul.mainnavi > li:hover > a, .herzog-modern ul.mainnavi > li > a:hover, .herzog-modern ul.mainnavi > li > a.active, .herzog-modern ul.mainnavi > li > a:focus-visible { color: var(--herzog-blue); background: var(--herzog-soft); }
.herzog-modern ul.mainnavi li.instagram-nav { position: static; margin-left: auto; }
.herzog-modern ul.mainnavi li.instagram-nav a { width: 54px; height: 54px; padding: 12px; }
.herzog-modern ul.navilevel2 { display: none; left: 0; top: 100%; width: 288px; margin: 0; padding: 12px; background: #fff; border: 1px solid var(--herzog-line); box-shadow: 0 8px 20px #00447c12; }
.herzog-modern ul.mainnavi li:hover > ul.navilevel2, .herzog-modern ul.mainnavi li:focus-within > ul.navilevel2 { display: block; left: 0; }
.herzog-modern ul.mainnavi ul.navilevel2 li, .herzog-modern ul.mainnavi ul.navilevel2 li.last { background: none; padding: 0; }
.herzog-modern ul.mainnavi ul.navilevel2 li a, .herzog-modern ul.mainnavi li:hover ul.navilevel2 li a { color: var(--herzog-blue); font-family: inherit; font-size: 15px; line-height: 1.5; padding: 10px; margin: 0; border: 0; background: none; }
.herzog-modern ul.mainnavi ul.navilevel2 li a:hover { background: var(--herzog-soft); }
.herzog-modern .herzog-menu-toggle { display: none; }
.herzog-modern div.subnavi { width: auto; height: auto; left: auto; padding: 0; margin: -8px 0 36px; }
.herzog-modern ul.sub { display: flex; flex-wrap: wrap; gap: 8px 24px; padding: 0; }
.herzog-modern ul.sub li { float: none; }
.herzog-modern ul.sub li a { padding: 0 0 6px; font-family: inherit; font-size: 14px; background: none; border-bottom: 2px solid transparent; text-decoration: none; }
.herzog-modern ul.sub li.active a { color: var(--herzog-blue); border-bottom: 2px solid var(--herzog-blue); background: none; }
.herzog-modern div.content-container { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 64px; background: none; margin: 56px 0 80px; }
.herzog-modern div.content-container:not(:has(.contentright)) { grid-template-columns: minmax(0,1fr); }
.herzog-modern #content { width: auto; max-width: 100%; float: none; margin: 0; color: var(--herzog-ink); font-size: inherit; line-height: 1.5; overflow: visible; height: auto !important; }
.herzog-modern .homesite #content { max-width: 850px; }
.herzog-modern #content h1, .herzog-modern #content h2, .herzog-modern #content h3, .herzog-modern #content h4, .herzog-modern .contentright h4, .herzog-modern .slide h1 { font-family: inherit; color: var(--herzog-blue); font-weight: 500; margin: 0 0 24px; }
.herzog-modern #content h1 { font-size: clamp(30px, 3vw, 42px); line-height: 1.22; }
.herzog-modern #content h2 { font-size: clamp(25px, 2.5vw, 32px); line-height: 1.3; }
.herzog-modern #content h4, .herzog-modern .contentright h4 { font-size: 20px; line-height: 1.5; }
.herzog-modern #content h3 { font-size: 22px; line-height: 1.4; }
.herzog-modern p { margin: 0 0 24px; }
.herzog-modern #content .frame + .frame { margin-top: 40px; }
.herzog-modern .contentright { width: auto; float: none; margin: 0; padding: 5%; background: var(--herzog-soft); align-self: start; border-top: 3px solid var(--herzog-blue); font-size: inherit; }
.herzog-modern .contentright h2 { font-family: inherit; font-weight: 500; line-height: 1.4; color: var(--herzog-blue); font-size: 20px; margin: 0 0 16px; }
.herzog-modern ul.navi-right { margin: 0; padding: 0; }
.herzog-modern ul.navi-right li a { display: block; padding: 8px 0; background: none; font-size: 16px; line-height: 1.5; }
.herzog-modern .clearer { grid-column: 1 / -1; }
.herzog-modern .content-container > .clearer { display: none; }
.herzog-modern #slideshow, .herzog-modern #slideshow #slidesContainer { width: 100%; height: auto; padding: 0; overflow: hidden; }
.herzog-modern #slideInner { width: 100% !important; margin-left: 0 !important; }
.herzog-modern #slideshow #slidesContainer .slide { float: none !important; width: 100% !important; height: auto; min-height: 350px; margin: 0; display: none; background: var(--herzog-soft); }
.herzog-modern #slideshow #slidesContainer .slide.is-active { display: grid; grid-template-columns: 42% 58%; }
.herzog-modern #slideshow #slidesContainer .slide .left { width: auto; float: none; top: auto !important; padding: 44px 36px; align-self: center; }
.herzog-modern #slideshow #slidesContainer .slide .right { width: auto; float: none; min-width: 0; }
.herzog-modern .slide h1 { font-size: clamp(30px, 3.2vw, 44px); line-height: 1.18; }
.herzog-modern #slideshow #slidesContainer .slide p { font-family: inherit; font-size: inherit; line-height: 1.5; color: var(--herzog-ink); }
.herzog-modern .slide .right img { width: 100%; height: auto; display: block; }
.herzog-modern .slide .left a { display: inline-block; margin-top: 12px; font-weight: 500; }
.herzog-modern .herzog-slide-controls { display: flex; justify-content: flex-end; align-items: center; gap: 20px; padding: 16px 0; font-size: 13px; color: var(--herzog-muted); }
.herzog-modern .herzog-slide-controls button { width: 42px; height: 36px; border: 1px solid var(--herzog-line); background: #fff; color: var(--herzog-blue); border-radius: 3px; }
.herzog-modern .herzog-slide-controls button:hover { background: var(--herzog-soft); }
.herzog-modern #content img, .herzog-modern .contentright img { width: 100%; max-width: 100%; height: auto; border-radius: 3px; }
.herzog-modern .ce-gallery, .herzog-modern .ce-column, .herzog-modern figure { max-width: 100%; }
.herzog-modern .herzog-card-content > ul { list-style: none; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 24px 0; padding: 0; }
.herzog-modern .herzog-card-content > ul > li { padding: 24px; border: 1px solid var(--herzog-line); border-top: 3px solid var(--herzog-blue); border-radius: 3px; background: #fff; font-size: inherit; transition: background-color 180ms; }
.herzog-modern .herzog-card-content > ul > li:hover { background: var(--herzog-soft); }
.herzog-modern .immo #content { padding: 0; border: 0; background: transparent; }
.herzog-modern div.frei-anfrage { width: auto; padding: 0; margin: 24px 0 0; }
.herzog-modern .anfrage { float: none; }
.herzog-modern .anfrage a, .herzog-modern input[type=submit] { display: inline-block; width: auto; height: auto; padding: 12px 24px; border: 1px solid var(--herzog-blue); border-radius: 3px; background: var(--herzog-blue); color: #fff; font-family: inherit; font-size: 16px; font-weight: 500; line-height: 1.5; text-decoration: none; cursor: pointer; transition: background-color 180ms, color 180ms; }
.herzog-modern .anfrage a:hover, .herzog-modern input[type=submit]:hover { background: #fff; color: var(--herzog-blue); }
.herzog-modern .trennlinie { height: 1px; margin: 32px 0; border-color: var(--herzog-line); }
.herzog-modern .powermail_form { width: 100%; max-width: 800px; }
.herzog-modern .powermail_form .row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin: 0; }
.herzog-modern .powermail_fieldwrap { float: none; width: auto; padding: 0; margin: 0 0 24px; min-width: 0; }
.herzog-modern .powermail_fieldwrap_type_textarea { grid-column: 1/-1; }
.herzog-modern .powermail_form label { display: block; font-size: 15px; font-weight: 500; margin-bottom: 8px; }
.herzog-modern .powermail_form input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=hidden]), .herzog-modern .powermail_form textarea, .herzog-modern .powermail_form select { width: 100%; max-width: 100%; height: auto; min-height: 48px; padding: 10px 12px; border: 1px solid #aabac6; border-radius: 3px; background: #fff; color: var(--herzog-ink); font: inherit; }
.herzog-modern .powermail_form textarea { min-height: 160px; }
.herzog-modern .herzog-footer { background: var(--herzog-blue); color: #fff; padding: 56px 0; }
.herzog-modern .herzog-footer-inner { width: min(1160px,calc(100% - 64px)); margin: auto; display: grid; grid-template-columns: 1.5fr repeat(4,1fr); gap: 32px; }
.herzog-modern .herzog-footer a { color: #fff; text-decoration: none; font-size: 14px; }
.herzog-modern .herzog-footer a:hover { text-decoration: underline; }
.herzog-modern .herzog-footer :focus-visible { outline-color: #fff; }
.herzog-modern .herzog-footer h2 { color: #fff; font: inherit; font-weight: 500; font-size: 16px; margin: 0 0 16px; }
.herzog-modern .herzog-footer ul { list-style: none; margin: 0; padding: 0; }
.herzog-modern .herzog-footer li { margin-bottom: 8px; }
.herzog-modern .herzog-footer-brand { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.herzog-modern .herzog-footer-brand img { width: 210px; max-width: 100%; height: auto; background: #fff; padding: 12px; border-radius: 2px; }
.herzog-modern .herzog-footer-social { display: flex; align-items: center; gap: 10px; }
.herzog-modern .herzog-footer-social .instagram-icon { width: 22px; height: 22px; }
.herzog-modern #colorbox { max-width: 96vw; }
@media (max-width: 1000px) {
  .herzog-modern ul.mainnavi { gap: 0; }
  .herzog-modern ul.mainnavi > li > a { padding-inline: 12px; }
  .herzog-modern .content-container { gap: 32px; }
  .herzog-modern .herzog-footer-inner { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .herzog-modern .page { width: calc(100% - 40px); }
  .herzog-modern #header { padding: 28px 0; }
  .herzog-modern #header .logo { width: 245px; }
  .herzog-modern div.navi { margin-bottom: 24px; padding: 8px 0; }
  .herzog-modern .herzog-menu-toggle { display: block; padding: 10px 14px; border: 1px solid var(--herzog-line); border-radius: 3px; background: #fff; color: var(--herzog-blue); }
  .herzog-modern ul.mainnavi { display: none; padding-top: 12px; }
  .herzog-modern .is-open ul.mainnavi { display: flex; flex-direction: column; align-items: stretch; }
  .herzog-modern ul.mainnavi > li > a { text-align: left; padding: 12px; }
  .herzog-modern ul.mainnavi li.instagram-nav { margin: 8px 0 0; }
  .herzog-modern ul.navilevel2, .herzog-modern ul.mainnavi li:hover > ul.navilevel2 { display: block; position: static; width: auto; padding: 0 12px 8px; border: 0; box-shadow: none; background: none; }
  .herzog-modern div.content-container { display: block; margin: 36px 0 48px; }
  .herzog-modern .contentright { margin-top: 32px; }
  .herzog-modern #content { font-size: inherit; }
  .herzog-modern #slideshow #slidesContainer .slide.is-active { grid-template-columns: 1fr; }
  .herzog-modern #slideshow #slidesContainer .slide .left { padding: 28px 24px; }
  .herzog-modern .slide .right img { height: auto; }
  .herzog-modern .herzog-card-content > ul { grid-template-columns: 1fr; }
  .herzog-modern .powermail_form .row { grid-template-columns: 1fr; gap: 0; }
  .herzog-modern .herzog-footer-inner { width: calc(100% - 40px); grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 24px; }
  .herzog-modern .herzog-footer-brand { grid-column: 1/-1; }
}
@media (prefers-reduced-motion: reduce) { .herzog-modern * { transition: none !important; scroll-behavior: auto !important; } }


.herzog-modern .powermail_field { width: 100%; max-width: 100%; float: none; }
.herzog-modern .powermail_form label { color: var(--herzog-blue); }
.herzog-modern .powermail_form input, .herzog-modern .powermail_form textarea { box-shadow: none; }

/* Refinement: retain the original Herzog texture and clearer navigation states. */
body.herzog-modern { background: linear-gradient(rgb(255 255 255 / 70%), rgb(255 255 255 / 70%)), #fff url(/fileadmin/templates/img/bg_10x10.jpg) repeat; }
.herzog-modern #slideshow #slidesContainer .slide { background: rgb(255 255 255 / 70%); }
.herzog-modern .herzog-card-content > ul > li { background-color: rgb(255 255 255 / 85%); }
body.herzog-modern .navi ul.mainnavi > li > a { background: transparent; color: var(--herzog-blue); }
body.herzog-modern .navi ul.mainnavi > li > a.active { background: #e5edf3; box-shadow: inset 0 -3px var(--herzog-blue); }
body.herzog-modern .navi ul.mainnavi > li:hover > a,
body.herzog-modern .navi ul.mainnavi > li > a:hover,
body.herzog-modern .navi ul.mainnavi > li > a:focus-visible { background: var(--herzog-blue); color: #fff; }
body.herzog-modern .navi ul.mainnavi > li:hover > a.active,
body.herzog-modern .navi ul.mainnavi > li > a.active:focus-visible { box-shadow: inset 0 -3px #fff; }
body.herzog-modern .navi ul.mainnavi ul.navilevel2 li a { background: #fff; color: var(--herzog-blue); border: 0; border-left: 3px solid transparent; }
body.herzog-modern .navi ul.mainnavi ul.navilevel2 li.active > a { background: #e5edf3; border-left-color: var(--herzog-blue); font-weight: 500; }
body.herzog-modern .navi ul.mainnavi ul.navilevel2 li a:hover,
body.herzog-modern .navi ul.mainnavi ul.navilevel2 li a:focus-visible { background: var(--herzog-blue); color: #fff; }
body.herzog-modern .navi ul.mainnavi ul.navilevel2 li.active > a:hover,
body.herzog-modern .navi ul.mainnavi ul.navilevel2 li.active > a:focus-visible { border-left-color: #fff; }
.herzog-modern ul.navi-right li a { color: var(--herzog-muted); padding: 10px 12px; border-left: 3px solid transparent; background: transparent; }
.herzog-modern ul.navi-right li.active a { color: var(--herzog-blue); background: #e5edf3; border-left-color: var(--herzog-blue); font-weight: 500; }
.herzog-modern ul.navi-right li a:hover, .herzog-modern ul.navi-right li a:focus-visible { color: #fff; background: var(--herzog-blue); }
.herzog-modern ul.navi-right li.active a:hover, .herzog-modern ul.navi-right li.active a:focus-visible { border-left-color: #fff; }
.herzog-modern ul.sub li a:hover, .herzog-modern ul.sub li a:focus-visible { color: var(--herzog-blue); background: transparent; border-bottom-color: var(--herzog-blue); text-decoration: none; }
.herzog-modern a.herzog-cta { display: inline-block; max-width: 100%; padding: 12px 22px; border: 1px solid var(--herzog-blue); border-radius: 3px; background: var(--herzog-blue); color: #fff; text-decoration: none; font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; }
.herzog-modern a.herzog-cta:hover, .herzog-modern a.herzog-cta:focus-visible { background: #fff; color: var(--herzog-blue); }
.herzog-modern .herzog-inquiry { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--herzog-line); }
.herzog-modern .herzog-inquiry-reference { white-space: pre-line; overflow-wrap: anywhere; font-size: 14px; color: var(--herzog-muted); }
.herzog-modern .herzog-inquiry-frame { display: block; width: 100%; height: 650px; border: 0; background: transparent; }
body.herzog-modern--inquiry { background: transparent; }
.herzog-modern--inquiry .page-margin.empty { width: 100%; padding: 0; margin: 0; }
.herzog-modern--inquiry .page-margin.empty > .content { width: 100%; padding: 0; margin: 0; }
.herzog-modern--inquiry .powermail_form { margin: 0; }
.herzog-modern--inquiry .powermail_form label { max-width: 100%; }
.herzog-modern--inquiry .powermail_create { overflow-wrap: anywhere; }
.herzog-modern--inquiry .powermail_create table { width: 100%; table-layout: fixed; }
.herzog-modern .herzog-burger { display: flex; flex-direction: column; gap: 5px; width: 24px; }
.herzog-modern .herzog-burger span { display: block; height: 2px; width: 24px; background: currentColor; transition: transform 180ms, opacity 180ms; }
.herzog-modern .herzog-menu-toggle[aria-expanded=true] .herzog-burger span:first-child { transform: translateY(7px) rotate(45deg); }
.herzog-modern .herzog-menu-toggle[aria-expanded=true] .herzog-burger span:nth-child(2) { opacity: 0; }
.herzog-modern .herzog-menu-toggle[aria-expanded=true] .herzog-burger span:last-child { transform: translateY(-7px) rotate(-45deg); }
@media (max-width: 760px) {
  .herzog-modern #header { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--herzog-line); }
  .herzog-modern #header .logo { width: min(245px, calc(100% - 64px)); max-width: none; }
  .herzog-modern .herzog-menu-toggle { display: flex; align-items: center; justify-content: center; flex: 0 0 48px; width: 48px; height: 48px; padding: 12px; }
  .herzog-modern .herzog-menu-toggle:hover, .herzog-modern .herzog-menu-toggle:focus-visible { background: var(--herzog-blue); color: #fff; }
  .herzog-modern div.navi { min-height: 0; border: 0; padding: 0; }
  .herzog-modern div.navi.is-open { padding-bottom: 16px; border-bottom: 1px solid var(--herzog-line); }
  .herzog-modern--inquiry .powermail_form .row { display: block; }
}

.herzog-modern #header > #top { position: absolute; }

/* Match inactive horizontal section links to the right-hand navigation. */
.herzog-modern ul.sub li:not(.active) a:not(:hover):not(:focus-visible) {
  color: var(--herzog-muted);
}

/* Shared header: desktop contacts above the navigation, mobile contact CTA. */
body.herzog-modern #header { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 24px; }
.herzog-modern .header-contacts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px 28px; align-self: start; padding-top: 4px; }
.herzog-modern .header-contacts a { display: inline-flex; align-items: center; gap: 10px; color: #00447C; font-size: 16px; line-height: 1.5; text-decoration: none; }
.herzog-modern .header-contacts a { position: relative; }
.herzog-modern .header-contacts a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; opacity: 0; }
.herzog-modern .header-contacts a:hover::after, .herzog-modern .header-contacts a:focus-visible::after { opacity: 1; }
.herzog-modern .contact-icon::before { font-family: "Font Awesome 6 Free"; font-style: normal; font-weight: 900; }
.herzog-modern .contact-icon--email::before { content: "\f0e0"; }
.herzog-modern .contact-icon--phone::before { content: "\f095"; }
.herzog-modern a.header-contact-mobile { display: none; }
.herzog-modern #header .logo img { max-width: 100%; }
.herzog-modern #slideshow #slidesContainer .slide:first-child:not([hidden]) { display: grid; }
.herzog-modern:not(.has-js) ul.mainnavi { display: flex; }
@media (max-width: 760px) {
  body.herzog-modern #header { grid-template-columns: minmax(0,1fr) 48px; gap: 20px 16px; padding: 16px 0 24px; }
  .herzog-modern .header-contacts { display: none; }
  .herzog-modern a.header-contact-mobile { display: inline-block; grid-column: 1 / -1; grid-row: 1; justify-self: end; padding: 9px 14px; margin: 0; font-size: 16px; }
  .herzog-modern #header .logo { grid-column: 1; grid-row: 2; width: min(245px,100%); }
  .herzog-modern .herzog-menu-toggle { grid-column: 2; grid-row: 2; }
}

/* Separate disclosure controls for mobile shortcut pages; desktop dropdowns stay intact. */
.herzog-modern .herzog-submenu-toggle { display: none; }
@media (max-width: 760px) {
  .herzog-modern.has-js ul.mainnavi > li.has-submenu { display: grid; grid-template-columns: minmax(0,1fr) 48px; }
  .herzog-modern .herzog-submenu-toggle { display: flex; align-items: center; justify-content: center; width: 48px; min-height: 48px; padding: 0; border: 0; background: transparent; color: var(--herzog-blue); }
  .herzog-modern .herzog-submenu-toggle::before { content: ""; width: 10px; height: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform 180ms; }
  .herzog-modern .herzog-submenu-toggle[aria-expanded=true]::before { transform: rotate(45deg); }
  .herzog-modern .herzog-submenu-toggle:hover { background: var(--herzog-soft); }
  .herzog-modern.has-js ul.mainnavi > li.has-submenu > ul.navilevel2 { display: none; grid-column: 1 / -1; }
  .herzog-modern.has-js ul.mainnavi > li.has-submenu.is-expanded > ul.navilevel2 { display: block; }
}

/* Images keep their intrinsic proportions within their existing containers. */
.herzog-modern img { width: 100%; height: auto; }
.herzog-modern .herzog-footer-brand > a:has(img) { width: 210px; max-width: 100%; }
.herzog-modern .herzog-footer-brand img { width: 100%; }

/* Hero image layout: remove the default centered, shrink-wrapped gallery geometry. */
.herzog-modern .frame-type-image.frame-layout-100 .ce-gallery,
.herzog-modern .frame-type-image.frame-layout-100 .ce-outer,
.herzog-modern .frame-type-image.frame-layout-100 .ce-inner,
.herzog-modern .frame-type-image.frame-layout-100 .ce-row,
.herzog-modern .frame-type-image.frame-layout-100 .ce-column,
.herzog-modern .frame-type-image.frame-layout-100 figure {
  width: 100%; max-width: 100%; float: none; left: auto; right: auto; margin-inline: 0;
}
.herzog-modern .frame-type-image.frame-layout-100 img { display: block; width: 100%; height: auto; }

/* All slides share one grid cell, so the tallest text defines a stable stage.
   Inactive slides reserve space but remain hidden and non-interactive. */
.herzog-modern #slideInner { display: grid; }
.herzog-modern #slideshow #slidesContainer .slide {
  display: grid; grid-area: 1 / 1; grid-template-columns: 42% 58%;
}
.herzog-modern #slideshow #slidesContainer .slide[hidden] { visibility: hidden; pointer-events: none; }
.herzog-modern #slideshow #slidesContainer .slide .right { position: relative; overflow: hidden; min-height: 0; }
.herzog-modern #slideshow #slidesContainer .slide .right img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center;
}
@media (max-width: 760px) {
  .herzog-modern #slideshow #slidesContainer .slide { grid-template-columns: minmax(0,1fr); grid-template-rows: 1fr clamp(200px, 55vw, 340px); }
}

.herzog-modern:not(.has-js) #slideshow #slidesContainer .slide:not(:first-child) { display: none; }

.herzog-modern .herzog-offer { margin-top: 40px; padding: clamp(20px, 3vw, 32px); border: 1px solid var(--herzog-line); border-radius: 3px; background: rgb(255 255 255 / 85%); }
.herzog-modern .herzog-offer + .herzog-offer { margin-top: 48px; }
.herzog-modern .herzog-inquiry-toggle { margin-top: 24px; padding: 12px 22px; border: 1px solid var(--herzog-blue); border-radius: 3px; background: var(--herzog-blue); color: #fff; font-weight: 500; }
.herzog-modern .herzog-inquiry-toggle:hover, .herzog-modern .herzog-inquiry-toggle:focus-visible { background: #fff; color: var(--herzog-blue); }
.herzog-modern .herzog-inquiry[hidden] { display: none; }
.herzog-modern--inquiry .page-margin.empty, .herzog-modern--inquiry .page-margin.empty > .content { height: auto !important; max-height: none; overflow: visible; display: flow-root; }
.herzog-modern--inquiry .frame-type-header { display: none; }
.herzog-modern .herzog-privacy { grid-column: 1 / -1; }
.herzog-modern .herzog-privacy .form-check { display: flex; align-items: flex-start; gap: 12px; }
.herzog-modern .herzog-privacy input[type=checkbox] { flex: 0 0 20px; width: 20px; height: 20px; margin-top: 4px; }
.herzog-modern .herzog-privacy .form-check-label { width: auto; font-weight: 400; font-size: 16px; line-height: 1.5; }

/* The lightbox magnifier is a control icon, not a content image. */
.herzog-modern #content img.colorbox { width: auto; height: auto; }

/* The embedded form grows in the parent page and has no separate scroll viewport. */
html.herzog-inquiry-document, html.herzog-inquiry-document body {
  overflow: clip; height: auto; min-height: 0; max-height: none;
}

/* Keep Instagram beside the mobile contact button, outside the collapsed menu. */
.herzog-modern .header-mobile-actions { display: none; }
.herzog-modern .header-instagram-mobile { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: 0 0 44px; color: var(--herzog-blue); border-radius: 3px; }
.herzog-modern .header-instagram-mobile:hover,
.herzog-modern .header-instagram-mobile:focus-visible { color: #fff; background: var(--herzog-blue); }
.herzog-modern .header-instagram-mobile:focus-visible { outline: 2px solid var(--herzog-blue); outline-offset: 3px; }
@media (max-width: 760px) {
  .herzog-modern .header-mobile-actions { display: flex; align-items: center; justify-self: end; grid-column: 1 / -1; grid-row: 1; gap: 12px; }
  .herzog-modern ul.mainnavi li.instagram-nav { display: none; }
}

/* Inset focus rings remain visible inside the full-width embedded form. */
.herzog-modern .powermail_form input:focus-visible,
.herzog-modern .powermail_form textarea:focus-visible,
.herzog-modern .powermail_form select:focus-visible { outline: 2px solid var(--herzog-blue); outline-offset: -2px; }
.herzog-modern .powermail-errors-list,
.herzog-modern .powermail-errors-list li,
.herzog-modern .powermail_message_error,
.herzog-modern .powermail_message_error li { color: #b42318; list-style: none; padding-left: 0; }
.herzog-modern .powermail-errors-list { margin: 8px 0 0; font-size: 16px; }
.herzog-modern .herzog-send-status { margin: 16px 0 0; color: var(--herzog-blue); font-size: 16px; }

/* Hide controls without disabling their values in the submitted payload. */
.herzog-modern .powermail_form.is-sending > :not(.herzog-send-status) { display: none !important; }
.herzog-modern .powermail_form.is-sending .herzog-send-status { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; min-height: 220px; padding: 24px; text-align: center; outline: none; }
.herzog-send-spinner { display: block; width: 40px; height: 40px; border: 4px solid #dbe5ed; border-top-color: var(--herzog-blue); border-radius: 50%; animation: herzog-send-spin .8s linear infinite; }
@keyframes herzog-send-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .herzog-send-spinner { animation: none; } }
