/* Functional additions to the imported Liftkonzept presentation. */
html { scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: border-box; }
:focus-visible { outline: 3px solid #046483; outline-offset: 4px; }
.ls-hero :focus-visible, .ls-footer :focus-visible { outline-color: white; }
.form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.form-result:empty { display: none; }
.form-result { padding: 1rem; border: 2px solid #287646; border-radius: 4px; background: #f3faf5; color: #143e25; }
.form-result.is-error { border-color: #b32929; background: #fff5f5; color: #811a1a; }
.form-privacy { max-width: 32rem; font-size: .9rem; }
.wpcf7 input[type=submit]:disabled { opacity: .65; cursor: wait; }
.wpcf7-list-item { display: flex; align-items: center; gap: .65rem; }
.wpcf7-list-item input[type=checkbox] { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; order: -1; margin: 0; }
.wpcf7-checkbox label { text-align: left; cursor: pointer; }
[id] { scroll-margin-top: 1rem; }
.ls-section [class^="gb-element-"] { max-width: 100%; }
.ls-section .gb-element-1178885e,
.ls-section .gb-element-7a6461e0,
.ls-section .gb-element-32bc64e5 { margin-left: 0; }
/* Replace the imported fixed widths and overlapping blocks on small screens. */
@media (max-width: 1024px) {
  .entry-content .alignwide,
  .entry-content .alignfull {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
  }

  .entry-content .wp-block-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
    margin-block: 0;
  }

  .entry-content .wp-block-column { min-width: 0; }

  .entry-content [class^="gb-element-"]:not(.gb-element-d6b706fa) {
    width: auto;
    max-width: 100%;
    margin: 0;
    padding: 0;
  }

  /* The decorative handset is positioned over the desktop hero only. */
  .gb-element-0566dde4 { display: none; }
  .ls-hero .wp-block-column:empty { display: none; }

  .site-main .ls-hero > .wp-block-group__inner-container {
    max-width: 44rem;
    padding: 3rem 1.25rem;
  }

  .ls-hero h1 {
    margin: 0;
    font-size: clamp(1.65rem, 7.5vw, 2.5rem) !important;
    line-height: 1.2;
  }

  .entry-content .ls-hero .gb-element-0f450195 { margin-top: 1.5rem; }
  .ls-hero h2 {
    margin-bottom: 1.5rem;
    font-size: clamp(1.125rem, 4.5vw, 1.5rem) !important;
    line-height: 1.45;
  }

  .ls-hero .wp-block-buttons,
  .ls-hero .wp-block-button { width: 100%; }

  .ls-hero .wp-block-buttons .wp-block-button .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 24rem;
    min-height: 52px;
    padding: .875rem 1rem;
    font-size: 1rem !important;
    line-height: 1.4;
    background-color: #86ea28 !important;
    color: #143b4b !important;
  }

  .ls-hero p { margin: .75rem 0 0; font-size: 1rem; }

  .entry-content .ls-section { padding: 2.75rem 1.25rem; }
  .site-main .ls-section > .wp-block-group__inner-container {
    max-width: 42rem;
    padding: 0;
  }

  .ls-section h2 {
    margin-bottom: 1.25rem;
    font-size: clamp(1.5rem, 6.5vw, 2rem);
    line-height: 1.25;
    overflow-wrap: anywhere;
    text-wrap: balance;
  }

  .ls-section p { font-size: 1rem; line-height: 1.65; hyphens: auto; hyphenate-limit-chars: 8 4 4; }
  .ls-section figure { margin: 0; }
  .ls-section .wp-block-image img { max-width: 100%; height: auto; }
  .ls-how-blended .wp-block-image { max-width: 24rem; margin-inline: auto; }
  .entry-content .ls-who .gb-element-8c5733e8 { margin-bottom: 2rem; }
  .ls-who .gb-element-8c5733e8 p { font-size: 1.125rem !important; }
  .ls-who .wp-block-columns { gap: 2.5rem; }
  .ls-who .hut-icon { margin-bottom: 1.25rem; }
  .ls-who .hut-icon img { width: 8rem; height: 6rem; object-fit: contain; }
  .ls-who .hut-feature h2 { font-size: clamp(1.25rem, 5.5vw, 1.5rem) !important; }
  .ls-who .hut-feature p { margin-bottom: 0; }

  .wpcf7 form { width: 100%; max-width: 32rem; margin-inline: auto; }
  .wpcf7 form > p { width: 100%; margin-bottom: 1rem; }
  .wpcf7 .wpcf7-form-control-wrap { display: block; width: 100%; }
  .wpcf7 input[type=text],
  .wpcf7 input[type=email],
  .wpcf7 input[type=tel],
  .wpcf7 textarea {
    width: 100%;
    max-width: 100%;
    min-height: 48px;
    padding: .75rem;
    font-size: 1rem;
    text-align: left;
  }
  .wpcf7 textarea { min-height: 10rem; height: 12rem; resize: vertical; }
  .wpcf7-checkbox { gap: .25rem; }
  .wpcf7-checkbox .wpcf7-list-item { width: 100%; min-height: 44px; margin: 0; }
  .wpcf7-checkbox .wpcf7-list-item label { flex: 1; min-height: 44px; line-height: 1.4; }
  .wpcf7-checkbox .wpcf7-list-item input[type=checkbox] {
    width: 1.375rem;
    height: 1.375rem;
    margin: 0;
    accent-color: #046483;
  }
  .wpcf7 input[type=submit] { width: 100%; min-height: 48px; font-size: 1rem; }
  .wpcf7 .form-privacy { font-size: .875rem; }
  .wpcf7 .form-result { overflow-wrap: anywhere; }

  .site-main .ls-footer > .wp-block-group__inner-container { padding: 2.5rem 1.25rem; }
  .ls-footer .wp-block-columns { gap: 2rem; }
  .ls-footer h6 { margin-bottom: .75rem; }
  .ls-footer p { margin-bottom: .5rem; overflow-wrap: anywhere; }
  .ls-footer p:empty { display: none; }
}

@media (min-width: 600px) and (max-width: 1024px) {
  .ls-who .wp-block-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ls-footer .wp-block-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  .has-inline-mobile-toggle .inside-header {
    gap: 0 .75rem;
    padding: 1rem 1.25rem;
    align-items: center;
  }
  .site-logo { flex: 1; min-width: 0; max-width: 15rem; }
  .site-logo a { display: block; }
  .site-header .site-logo img { display: block; width: 100%; height: auto; }
  .mobile-menu-control-wrapper { flex: 0 0 auto; }
  .mobile-menu-control-wrapper .menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border-radius: .5rem;
  }
  .mobile-menu-control-wrapper .menu-toggle .gp-icon { margin: 0; }
  .has-inline-mobile-toggle #site-navigation:not(.toggled) { display: none; }
  .has-inline-mobile-toggle #site-navigation.toggled {
    width: 100%;
    margin-top: 1rem;
    border-radius: .5rem;
  }
  #site-navigation .main-nav { width: 100%; }
  #site-navigation .main-nav ul li a { padding: .75rem 1rem; font-size: 1.125rem; line-height: 1.5; }
}

@media (hover: none) {
  .ls-hero .wp-block-buttons .wp-block-button .wp-block-button__link:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }
