/* Lebensziel / TT4 – 1.2.0, 12.10.2026.
 * Standalone stylesheet. No theme files or content are changed.
 * !important is limited to existing inline styles and plugin overrides.
 * No overflow-x:hidden: content must fit, not be clipped.
 */
@media (max-width: 1023px) {
  body.wp-theme-twentytwentyfour {
    --wp--style--root--padding-left: clamp(16px, 4vw, 32px);
    --wp--style--root--padding-right: clamp(16px, 4vw, 32px);
  }
  .wp-site-blocks :where(.wp-block-group, .wp-block-column, .wp-block-post-template > li) { min-width: 0; }
  .wp-site-blocks :where(h1, h2, h3, h4, p, li, figcaption, a) { overflow-wrap: anywhere; }
  .wp-site-blocks :where(h1, h2, h3, h4) { hyphens: auto; }
  .wp-site-blocks header .wp-block-site-title { line-height: 1.35; }
  .wp-site-blocks header > .wp-block-group > .wp-block-group {
    flex-wrap: nowrap;
    gap: 12px;
  }
  .wp-site-blocks header > .wp-block-group > .wp-block-group > .wp-block-group:first-child {
    flex: 1 1 auto;
    flex-wrap: nowrap;
    gap: 12px;
  }
  .wp-site-blocks header .wp-block-site-logo { flex: 0 0 48px; }
  .wp-site-blocks header .wp-block-site-logo img { width: 48px; height: auto; }
  .wp-site-blocks header > .wp-block-group > .wp-block-group > .wp-block-group:last-child { flex: 0 0 auto; }
  /* Use WordPress' existing accessible menu and event handlers. */
  .wp-site-blocks header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .wp-site-blocks header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
  .wp-site-blocks header .wp-block-navigation__responsive-container-open,
  .wp-site-blocks header .wp-block-navigation__responsive-container-close {
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
  }
  .wp-site-blocks header .wp-block-navigation__responsive-container.is-menu-open {
    padding: max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
    overflow-y: auto;
  }
  .wp-site-blocks header .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 64px; align-items: stretch; }
  .wp-site-blocks header .is-menu-open .wp-block-navigation__container { align-items: stretch; width: 100%; gap: 8px; }
  .wp-site-blocks header .is-menu-open .wp-block-navigation-item__content { display: block; padding: 12px 8px !important; min-height: 44px; box-sizing: border-box; font-size: 1.125rem; line-height: 1.4; }
  .wp-site-blocks :where(.wp-block-button__link, .slb-button, .oxi-image-btn) { min-height: 44px; white-space: normal; }
  .wp-site-blocks :where(input, textarea, select, button) { max-width: 100%; box-sizing: border-box; }
  .wp-site-blocks .wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], textarea, select),
  .wp-site-blocks .mailpoet_form :is(.mailpoet_text, .mailpoet_textarea, .mailpoet_select) {
    width: 100% !important;
    min-width: 0;
    min-height: 44px;
    font-size: 16px !important;
    line-height: 1.5;
    padding: 12px;
    box-sizing: border-box;
  }
  .wp-site-blocks .wpcf7 textarea { resize: vertical; }
  .wp-site-blocks .wpcf7 .row { gap: 12px; }
  .wp-site-blocks .wpcf7 .row > div { min-width: 0; }
  .wp-site-blocks .wpcf7 .ds { gap: 10px; align-items: flex-start; }
  .wp-site-blocks .wpcf7 .ds > div:first-child { flex: 0 0 28px; }
  .wp-site-blocks .wpcf7 .ds > div:last-child { min-width: 0; }
  .wp-site-blocks .wpcf7 .wpcf7-list-item { margin-left: 0; }
  .wp-site-blocks .wpcf7 input[type="checkbox"] { width: 24px; height: 24px; }
  .wp-site-blocks :is(.wpcf7-submit, .mailpoet_submit) { min-height: 48px; font-size: 16px; white-space: normal; }
  .wp-site-blocks #mailpoet_form_1 { box-sizing: border-box; }
  .wp-site-blocks #mailpoet_form_1 .mailpoet_form_columns { flex-direction: column; }
  .wp-site-blocks #mailpoet_form_1 .mailpoet_form_column { flex-basis: auto !important; width: 100%; margin-left: 0; min-width: 0; }
  .wp-site-blocks #mailpoet_form_1 .mailpoet_form_paragraph { color: #515151; }
  .wp-site-blocks #mailpoet_form_1 input.mailpoet_text { color: #333 !important; }
  .wp-site-blocks #mailpoet_form_1 input.mailpoet_text::placeholder { color: #595959 !important; opacity: 1; }
  .wp-site-blocks .wp-block-query-title { font-size: clamp(1.75rem, 5vw, 2.75rem); line-height: 1.2 !important; }
  .wp-site-blocks .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wp-site-blocks .wp-block-table { max-width: 100%; overflow-x: auto; }
  .wp-site-blocks :where(pre, iframe, video, .slb-company-meta) { max-width: 100%; }
  .wp-site-blocks pre { white-space: pre-wrap; overflow-wrap: anywhere; }
  .wp-site-blocks :where(.slb-branch-card, .slb-company-card, .slb-company-meta) { min-width: 0; overflow-wrap: anywhere; }
  .wp-site-blocks footer .wp-block-navigation-item__content { display: inline-block; padding-block: 10px; }
}

@media (max-width: 781px) {
  .wp-site-blocks .wpcf7 .row { flex-direction: column; gap: 4px; }
  .wp-site-blocks .wpcf7 .row > div:nth-child(n) { width: 100%; }
  .wp-site-blocks .wpcf7 .row p { margin-block: 4px; }
  .wp-site-blocks .wpcf7 .row + p:has(> label > br:only-child) { margin-block: 4px; }
  .wp-site-blocks .wp-block-media-text.is-stacked-on-mobile { grid-template-columns: 100% !important; gap: 20px; }
  .wp-site-blocks .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__media { grid-column: 1; grid-row: 1; }
  .wp-site-blocks .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content { grid-column: 1; grid-row: 2; padding: 0; }
  .wp-site-blocks .wp-block-column.has-background { padding: 24px 20px !important; }
  .wp-site-blocks .wp-block-buttons { flex-wrap: wrap; }
  .wp-site-blocks .wp-block-buttons > .wp-block-button { min-width: 0; max-width: 100%; }
  .wp-site-blocks .wp-block-button__link { padding-inline: 16px !important; }
  /* Actual front-page cover: reduce fixed inset, remove 75% heading constraint. */
  body.home .entry-content > .wp-block-cover { padding: 32px 20px !important; min-height: 420px !important; }
  body.home .entry-content > .wp-block-cover .wp-block-heading {
    max-width: 100% !important;
    font-size: clamp(1.875rem, 7vw, 3.25rem) !important;
    line-height: 1.12 !important;
    hyphens: none;
  }
  body.home .entry-content > .wp-block-cover .wp-block-spacer { height: 32px !important; }
  body.home .entry-content > .wp-block-cover .wp-block-button__link { padding: 16px !important; line-height: 1.55; }
  .wp-site-blocks footer .wp-block-group.is-content-justification-space-between { gap: 24px; }
  .wp-site-blocks footer .wp-block-group.is-content-justification-space-between > .wp-block-group { flex: 1 1 160px; }
}

@media (max-width: 599px) {
  .wp-site-blocks header .wp-block-site-title { font-size: 13px; }
  .wp-site-blocks header .has-small-font-size { font-size: 12px; }
  .wp-site-blocks header .wp-block-site-logo { flex-basis: 40px; }
  .wp-site-blocks header .wp-block-site-logo img { width: 40px; }
  .wp-site-blocks .wp-block-post-template.is-layout-grid,
  .wp-site-blocks :is(.slb-branch-grid, .slb-company-grid) { grid-template-columns: minmax(0, 1fr); }
  .wp-site-blocks .wp-block-latest-posts > li { margin-block: 16px; }
  .wp-site-blocks .wp-block-latest-posts__post-title { display: inline-block; padding-block: 8px; }
  .wp-site-blocks .wp-block-buttons > .wp-block-button { width: 100%; flex-basis: 100%; }
  .wp-site-blocks .wp-block-button__link { width: 100%; }
}

/* Touch devices: hover-only cards become normal image + text cards.
 * Auto height keeps long descriptions and zoomed text reachable. */
@media (max-width: 781px), (hover: none) {
  .wp-site-blocks .oxi-addons-container .oxi-image-hover-style-caption::after { display: none; }
  .wp-site-blocks .oxi-addons-container .oxi-image-hover-style-caption .oxi-image-caption-hover,
  .wp-site-blocks .oxi-addons-container .oxi-image-caption-hover :is(.oxi-image-hover-figure, .oxi-image-hover-image, .oxi-image-hover-figure-caption, .oxi-image-hover-caption-tab) {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: auto !important;
    transform: none !important;
    clip-path: none !important;
    border-radius: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
  }
  .wp-site-blocks .oxi-addons-container .oxi-image-caption-hover::before,
  .wp-site-blocks .oxi-addons-container .oxi-image-caption-hover::after { display: none !important; }
  .wp-site-blocks .oxi-addons-container .oxi-image-caption-hover .oxi-image-hover-image img {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    transform: none !important;
    opacity: 1 !important;
    display: block;
  }
  .wp-site-blocks .oxi-addons-container .oxi-image-caption-hover .oxi-image-hover-caption-tab { padding: 20px !important; background: #fff !important; color: #111 !important; }
  .wp-site-blocks .oxi-addons-container .oxi-image-caption-hover :is(.oxi-image-hover-heading, .oxi-image-hover-content, .oxi-image-hover-button) {
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    color: #111 !important;
    transition: none !important;
  }
  .wp-site-blocks .oxi-addons-container .oxi-image-caption-hover a.oxi-image-btn { color: #fff !important; background: #111 !important; padding: 12px 16px !important; font-size: 16px !important; }
}

.wp-site-blocks :where(a, button, input, select, textarea):focus-visible { outline: 3px solid #35653a; outline-offset: 3px; }

/* Small visual refinements, using the site's existing natural palette. */
.wp-site-blocks .wpcf7 .cf_wrapper {
  box-sizing: border-box;
  padding: clamp(18px, 3vw, 32px);
  background: #fff;
  border: 1px solid #dce2d7;
  border-top: 3px solid #a8b69a;
  border-radius: 12px;
  box-shadow: 0 5px 20px rgb(48 65 39 / 4%);
}
.wp-site-blocks .wpcf7 .cf_wrapper .row { gap: 12px; }
.wp-site-blocks .wpcf7 .cf_wrapper .row > div { min-width: 0; }
.wp-site-blocks .wpcf7 .cf_wrapper .row > div:first-child > p { font-weight: 600; }
.wp-site-blocks .wpcf7 .cf_wrapper .cf > p:has(> label > br:only-child) { display: none; }
.wp-site-blocks .wpcf7 .cf_wrapper .row ~ .row { margin-top: 20px; }
.wp-site-blocks .wpcf7 .cf_wrapper .row p { margin-block: 4px; }
.wp-site-blocks .wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], textarea, select) {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid #b7c2b0;
  border-radius: 6px;
  background: #fafbf8;
  color: #252d22;
  font: inherit;
  font-size: 16px;
  line-height: 1.5;
}
.wp-site-blocks .wpcf7 textarea { min-height: 160px; resize: vertical; }
.wp-site-blocks .wpcf7 :is(input, textarea, select):focus-visible { background-color: #fff; outline-color: #526a43; }
.wp-site-blocks .wpcf7 :is(input[type="checkbox"], input[type="radio"]) { accent-color: #526a43; }
.wp-site-blocks .wpcf7 input.wpcf7-submit {
  padding: 12px 26px;
  min-height: 46px;
  border: 1px solid #435738;
  border-radius: 6px;
  background: #435738;
  color: #fff;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.wp-site-blocks .wpcf7 input.wpcf7-submit:hover:not(:disabled) { background: #34462b; }
.wp-site-blocks .wpcf7 input.wpcf7-submit:disabled { background: #e6eae1; border-color: #ccd4c5; color: #59644f; cursor: not-allowed; }
.wp-site-blocks > footer.wp-block-template-part {
  background: #edf0e8;
  border-top: 1px solid #d2dacb;
  margin-top: clamp(40px, 6vw, 72px);
}
.wp-site-blocks > footer > .wp-block-group { padding-block: clamp(32px, 5vw, 56px) !important; }
.wp-site-blocks > footer .wp-block-heading { color: #435738; }
.wp-site-blocks > footer .wp-block-site-logo img { border-radius: 50%; }
.wp-site-blocks > footer .wp-block-navigation-item__content:hover { text-decoration: underline; text-underline-offset: 4px; }
.wp-site-blocks > footer > .wp-block-group > .wp-block-group:last-child {
  border-top: 1px solid #d2dacb;
  margin-top: 28px;
  padding-top: 20px !important;
}
@media (max-width: 781px) {
  .wp-site-blocks .wpcf7 .cf_wrapper .row { gap: 4px; }
  .wp-site-blocks > footer .wp-block-column:empty { display: none; }
}

/* Logged-in phones: keep the account menu in the toolbar's first row.
 * Plugin shortcuts otherwise push it over the site's hamburger menu.
 * Scope to the front end; preserve dropdowns and avoid clipping the page. */
@media screen and (max-width: 600px) {
  body.admin-bar:not(.wp-admin) #wpadminbar #wp-admin-bar-duplicate-post,
  body.admin-bar:not(.wp-admin) #wpadminbar #wp-admin-bar-wpseo-menu {
    display: none;
  }
  body.admin-bar:not(.wp-admin) #wpadminbar #wp-admin-bar-root-default {
    display: flex;
    flex-wrap: nowrap;
    max-width: calc(100% - 52px);
  }
  body.admin-bar:not(.wp-admin) #wpadminbar #wp-admin-bar-top-secondary {
    position: absolute;
    top: 0;
    right: 0;
    margin: 0;
  }
}


/* Header navigation: deliberate second row with generous click targets. */
.wp-site-blocks header .wp-block-navigation-item__content {
  border-radius: 7px;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease;
}
.wp-site-blocks header .wp-block-navigation-item__content:hover,
.wp-site-blocks header .wp-block-navigation-item__content[aria-current="page"] {
  background: #dce4d5;
  color: #34462b;
}
@media (min-width: 1024px) {
  .wp-site-blocks header > .wp-block-group > .wp-block-group {
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
  }
  .wp-site-blocks header > .wp-block-group > .wp-block-group > .wp-block-group:first-child {
    flex-wrap: nowrap;
    gap: 20px;
  }
  .wp-site-blocks header > .wp-block-group > .wp-block-group > .wp-block-group:last-child {
    width: 100%;
    box-sizing: border-box;
    padding: 6px;
    background: #edf0e8;
    border: 1px solid #dce2d7;
    border-radius: 11px;
  }
  .wp-site-blocks header .wp-block-navigation { width: 100%; }
  .wp-site-blocks header .wp-block-navigation__container {
    justify-content: flex-start;
    gap: 4px;
  }
  .wp-site-blocks header .wp-block-navigation-item__content {
    display: flex;
    align-items: center;
    min-height: 44px;
    box-sizing: border-box;
    padding: 10px 16px;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.4;
    color: #35412f;
  }
  .wp-site-blocks header .wp-block-navigation-item:first-child > .wp-block-navigation-item__content {
    background: #435738;
    color: #fff;
    font-weight: 600;
  }
  .wp-site-blocks header .wp-block-navigation-item:first-child > .wp-block-navigation-item__content:hover {
    background: #34462b;
  }
}
@media (max-width: 1023px) {
  .wp-site-blocks header .wp-block-navigation__responsive-container-open {
    border: 1px solid #d2dacb;
    border-radius: 8px;
    background: #edf0e8;
    color: #435738;
  }
  .wp-site-blocks header .is-menu-open .wp-block-navigation-item__content { padding-inline: 14px !important; }
  .wp-site-blocks header .is-menu-open .wp-block-navigation-item:first-child > .wp-block-navigation-item__content {
    background: #435738;
    color: #fff;
  }
}
@media (prefers-reduced-motion: reduce) {
  .wp-site-blocks header .wp-block-navigation-item__content { transition: none; }
}


/* Center the desktop links; use a clear three-line mobile menu icon. */
@media (min-width: 1024px) {
  .wp-site-blocks header .wp-block-navigation__responsive-container-content,
  .wp-site-blocks header .wp-block-navigation__container { justify-content: center; }
}
.wp-site-blocks header .wp-block-navigation__responsive-container-open svg { display: none; }
.wp-site-blocks header .wp-block-navigation__responsive-container-open::before {
  content: "";
  display: block;
  width: 22px;
  height: 16px;
  background: linear-gradient(currentColor, currentColor) top / 100% 2px no-repeat,
              linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat,
              linear-gradient(currentColor, currentColor) bottom / 100% 2px no-repeat;
}

@media (min-width: 1024px) {
  .wp-site-blocks header > .wp-block-group > .wp-block-group > .wp-block-group:first-child {
    justify-content: center;
  }
  .wp-site-blocks header > .wp-block-group > .wp-block-group > .wp-block-group:last-child {
    background: transparent;
    border: 0;
    padding: 0;
  }
}

/* Newsletter: readable invitation and consistent form controls. */
.wp-site-blocks #mailpoet_form_1 {
  box-sizing: border-box;
  border: 1px solid #d2dacb;
  border-top: 3px solid #a8b69a;
  border-radius: 12px;
  background: #edf0e8;
  color: #35412f;
  padding: clamp(20px, 4vw, 40px);
}
.wp-site-blocks #mailpoet_form_1 .mailpoet_form_columns { gap: 28px; margin-bottom: 0; }
.wp-site-blocks #mailpoet_form_1 .mailpoet_form_column { min-width: 0; margin-left: 0; }
.wp-site-blocks #mailpoet_form_1 .mailpoet_form_column .mailpoet_form_columns {
  flex-direction: column;
  gap: 0;
}
.wp-site-blocks #mailpoet_form_1 .mailpoet_form_column .mailpoet_form_column { flex-basis: auto !important; width: 100%; }
.wp-site-blocks #mailpoet_form_1 h1.mailpoet-heading {
  color: #35412f !important;
  font-size: clamp(24px, 2.4vw, 30px) !important;
  line-height: 1.3 !important;
  margin-bottom: 16px;
}
.wp-site-blocks #mailpoet_form_1 .mailpoet-heading img { display: none; }
.wp-site-blocks #mailpoet_form_1 .mailpoet_form_paragraph { color: #46533f; font-size: 15px !important; line-height: 1.65 !important; }
.wp-site-blocks #mailpoet_form_1 .mailpoet_form_paragraph :is(em, span) { font-family: inherit !important; font-style: normal; }
.wp-site-blocks #mailpoet_form_1 a { color: #354c2b; text-decoration: underline; text-underline-offset: 3px; }
.wp-site-blocks #mailpoet_form_1 input.mailpoet_text {
  width: 100% !important;
  min-height: 48px;
  border: 1px solid #aebda5 !important;
  border-radius: 6px !important;
  background: #fff !important;
  color: #252d22 !important;
  padding: 12px 14px !important;
  font-family: inherit !important;
  font-size: 16px !important;
}
.wp-site-blocks #mailpoet_form_1 input.mailpoet_text::placeholder { color: #59644f !important; opacity: 1; }
.wp-site-blocks #mailpoet_form_1 .mailpoet_paragraph { margin-bottom: 12px; }
.wp-site-blocks #mailpoet_form_1 input.mailpoet_submit {
  min-height: 48px;
  padding: 12px 18px !important;
  border: 1px solid #435738 !important;
  border-radius: 6px;
  background: #435738;
  color: #fff;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 600;
  cursor: pointer;
}
.wp-site-blocks #mailpoet_form_1 input.mailpoet_submit:hover { background: #34462b; }
@media (max-width: 1023px) {
  .wp-site-blocks #mailpoet_form_1 .mailpoet_form_columns { gap: 20px; }
  .wp-site-blocks #mailpoet_form_1 .mailpoet_form_column .mailpoet_form_columns { gap: 0; }
}
