/*
Copyright 2018 The Manrope Project Authors (https://github.com/googlefonts/manrope)

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
*/

/*
Copyright 2010-2020 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.

This Font Software is licensed under the SIL Open Font License, Version 1.1.

This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
*/

@font-face {
  font-family: 'Manrope';
  src: url('../fonts/manrope-variable-latin.a30ddcd34970.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

@font-face {
  font-family: 'Source Sans 3';
  src: url('../fonts/source-sans-3-italic-variable-latin.5fbc14d56cea.woff2') format('woff2');
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
}

@font-face {
  font-family: 'Source Sans 3';
  src: url('../fonts/source-sans-3-variable-latin.19143dca0759.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

:root {
  --green: #3aaa35;
  --green-dark: #237d22;
  --ink: #15201f;
  --muted: #58615e;
  --pale: #f3f7f4;
  --line: #dfe7e1;
  --white: #fff;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
}
body {
  margin: 0;
  color: var(--ink);
  font-family: 'Source Sans 3', Arial, sans-serif;
  font-synthesis: none;
  font-size: 17px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
nav,
.menu-toggle,
.btn,
.footer-grid ul,
.aside ul {
  font-family: 'Source Sans 3', Arial, sans-serif;
}
a,
a:visited,
a:hover,
a:focus,
a:active {
  text-decoration: none;
}
a {
  color: var(--green-dark);
}
a:hover {
  color: #125410;
}
button,
input,
textarea {
  font: inherit;
}
button,
a,
input,
textarea {
  touch-action: manipulation;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid #238b22;
  outline-offset: 5px;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
h1,
h2,
h3,
h4,
p {
  margin: 0 0 1rem;
}
h1,
h2,
h3,
h4 {
  font-family: 'Manrope', Arial, sans-serif;
  line-height: 1.13;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
h1 {
  font-size: clamp(2.4rem, 4.6vw, 4.4rem);
  font-weight: 700;
}
h2 {
  font-size: clamp(2rem, 3.1vw, 3rem);
  font-weight: 700;
}
h3 {
  font-size: 1.4rem;
}
h4 {
  font-size: 1.1rem;
}
p:last-child {
  margin-bottom: 0;
}
.container {
  width: min(1200px, calc(100% - 80px));
  margin-inline: auto;
}
.section {
  padding: 76px 0;
}
.pale {
  background: var(--pale);
}
.eyebrow {
  display: block;
  color: var(--green-dark);
  font-size: 0.73rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 15px;
}
.topbar {
  background: #14231f;
  color: #fff;
  font-size: 12px;
  padding: 7px 0;
}
.topbar .container {
  display: flex;
  justify-content: space-between;
}
.topbar a {
  color: #fff;
}
.status-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  background: var(--green);
  border-radius: 50%;
  margin-right: 8px;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: #fff;
  border-bottom: 1px solid var(--line);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-height: 84px;
}
.brand {
  flex-shrink: 1;
  min-width: 0;
  max-width: 100%;
}
.brand img {
  width: 265px;
  height: auto;
}
.main-nav {
  display: flex;
  align-items: center;
  gap: 28px;
  font-size: 14px;
  font-weight: 600;
}
.main-nav a {
  color: var(--ink);
}
.main-nav a:hover,
.main-nav a[aria-current='page'] {
  color: var(--green-dark);
}
.main-nav a[aria-current='page'] {
  border-bottom: 2px solid var(--green);
  padding-block: 9px;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  border: 1px solid transparent;
  background: var(--green-dark);
  color: #fff !important;
  border-radius: 5px;
  padding: 13px 23px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  cursor: pointer;
}
.btn:hover {
  background: #125410;
}
.btn.secondary {
  background: transparent;
  border-color: #b4c2b8;
}
.btn.secondary:hover {
  background: #203d2e;
}
.icon {
  width: 26px;
  height: 26px;
  display: inline-block;
  flex-shrink: 0;
}
.btn .icon,
.text-link .icon {
  width: 17px;
  height: 17px;
}
.btn .icon {
  filter: brightness(0) invert(1);
}
.text-link {
  font-weight: 700;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
}
.menu-toggle {
  display: none;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 9px;
}
.hero {
  position: relative;
  isolation: isolate;
  background: #11211c;
  min-height: 570px;
  display: flex;
  align-items: center;
  color: #fff;
  overflow: hidden;
}
.hero > .hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.hero-copy {
  padding: 68px 0;
  max-width: 670px;
}
.hero .eyebrow {
  color: #fff;
}
.hero h1 {
  max-width: 660px;
}
.hero h1 span {
  display: block;
  color: #a5d9a3;
}
.hero a:focus-visible,
.wide-header a:focus-visible {
  outline-color: #fff;
}
.hero .btn.secondary {
  background: #11211c;
}
.hero .btn.secondary:focus-visible {
  outline-offset: -6px;
}
.hero .lead {
  font-size: 21px;
  text-wrap: balance;
  max-width: 550px;
  margin: 24px 0;
}
.actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 28px;
}
.hero-badge {
  position: absolute;
  right: 6%;
  bottom: 30px;
  background: #fff;
  color: var(--ink);
  border-radius: 8px;
  padding: 18px 22px;
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 13px;
  line-height: 1.45;
  max-width: 230px;
}
.hero-badge .icon {
  width: 40px;
  height: 40px;
}
.trust .container {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding-block: 18px;
}
.trust-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 23px;
  font-weight: 700;
  font-size: 16px;
  min-width: 0;
  padding: 8px 20px;
  border-right: 1px solid var(--line);
}
.trust-item:last-child {
  border: 0;
}
.trust .icon {
  width: 37px;
  height: 37px;
}
.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 28px;
}
.section-heading h2 {
  margin-bottom: 0;
  max-width: 780px;
}
.service-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.service-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
  color: var(--ink) !important;
  display: flex;
  flex-direction: column;
}
.service-card:hover {
  background: #eaf5e9;
}
.service-card > .ai-image > picture > img {
  width: 100%;
  aspect-ratio: 1.65;
  object-fit: cover;
}
.card-content {
  padding: 20px 22px;
  flex: 1;
}
.card-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.card-title h3 {
  font-size: 19px;
  letter-spacing: -0.02em;
  margin: 0;
}
.number {
  color: var(--green-dark);
  font-size: 12px;
  font-weight: 700;
}
.card-content p {
  font-size: 15px;
  color: var(--muted);
  margin-top: 13px;
}
.small-services {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
  margin-top: 22px;
}
.small-service {
  min-width: 0;
  overflow-wrap: anywhere;
  hyphens: auto;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  padding: 22px 18px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
}
.small-service .icon {
  display: block;
  width: 34px;
  height: 34px;
  margin-bottom: 14px;
}
.small-service:hover {
  background: #eaf5e9;
}
.split {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  align-items: center;
  gap: 60px;
}
.split > .ai-image > picture > img {
  width: 100%;
  height: 100%;
  min-height: 380px;
  max-height: 550px;
  object-fit: cover;
  border-radius: 5px;
}
.split p {
  color: var(--muted);
}
.facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 38px;
}
.fact {
  display: flex;
  gap: 20px;
  border-right: 1px solid var(--line);
  padding-right: 20px;
}
.fact:last-child {
  border: 0;
}
.fact strong {
  font-size: 46px;
  line-height: 1;
  color: #a5d9a3;
}
.fact h3 {
  font-size: 19px;
}
.fact p {
  font-size: 15px;
  color: var(--muted);
}
.cta {
  --cta-phone-font-size: 18px;
  --cta-gap-opacity: 0.68;
  border-bottom: 1px solid #3b4943;
  padding: 64px 0;
  background: #11211c;
  isolation: isolate;
  color: #fff;
}
.cta.cta-standard-text {
  --cta-gap-opacity: 0.12;
}
.cta .container {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  justify-items: start;
  gap: 24px;
  text-align: left;
}
.cta-copy {
  max-width: 740px;
}
.cta h2 {
  font-size: clamp(30px, 3.4vw, 44px);
  line-height: 1.2;
  text-wrap: balance;
  margin-bottom: 16px;
}
.cta h2 span {
  color: #a5d9a3;
}
.cta a:focus-visible {
  outline-color: #fff;
}
.cta .eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #fff;
  font-size: 11px;
  margin-bottom: 22px;
}
.cta .eyebrow:before {
  content: '';
  width: 40px;
  height: 3px;
  background: var(--green);
}
.cta .btn {
  white-space: normal;
}
.cta-action {
  display: grid;
  justify-items: center;
  justify-self: end;
  gap: 12px;
  min-width: 0;
  max-width: 100%;
}
.cta-phone {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-size: var(--cta-phone-font-size);
  font-weight: 600;
  line-height: 1.5;
  white-space: normal;
  max-width: 100%;
}
.cta-phone:hover,
.cta-phone:focus-visible {
  color: #fff;
}
.cta-phone .icon {
  width: 18px;
  height: 18px;
}
@media (max-width: 999px) {
  .cta {
    /* Absorb the 27px telephone line and 12px gap without growing the banner. */
    padding-block: calc(64px - 19.5px);
  }
}
@media (min-width: 1000px) {
  .cta .container {
    grid-template-columns: minmax(0, 740px) auto;
    column-gap: 48px;
  }
  .cta-copy {
    grid-column: 1;
  }
  .cta-action {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
  }
}
.footer .footer-logo {
  color: var(--green);
}
.footer .emergency {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.footer .emergency .icon {
  width: 19px;
  height: 19px;
}
.footer {
  background: #142020;
  color: #e5eae7;
  padding: 54px 0 22px;
  font-size: 14px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 1.2fr 0.8fr 1.2fr;
  gap: 45px;
}
.footer-grid > div + div {
  border-left: 1px solid #3b4943;
  padding-left: 35px;
}
.footer h3 {
  font-size: 16px;
  color: #fff;
  letter-spacing: 0;
}
.footer a {
  color: #e5eae7;
}
.footer a:hover {
  color: #78d272;
}
.footer-logo {
  font-size: 38px;
  font-weight: 700;
  line-height: 1.05;
  color: var(--green);
  letter-spacing: -2px;
}
.footer-logo span {
  display: block;
  font-size: 23px;
  letter-spacing: -1px;
  color: #fff;
  margin-top: 5px;
}
.brand,
.footer-logo,
.company-name {
  font-family: 'Manrope', Arial, sans-serif;
}
.company-name {
  font-weight: 700;
}
.footer ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer ul a {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
}
.footer .emergency {
  font-size: 19px;
  color: #6ad660;
  font-weight: 700;
}
.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px;
  margin-top: 45px;
  padding-top: 22px;
  border-top: 1px solid #3b4943;
  font-size: 12px;
}
.footer-bottom nav {
  display: flex;
  flex-wrap: wrap;
  gap: 25px;
}
.subhero {
  background: var(--pale);
  padding: 46px 0 52px;
}
.error-page {
  background: var(--pale);
  padding-block: 84px 92px;
}
.error-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  align-items: center;
  gap: 48px;
}
.error-copy h1 {
  max-width: 15ch;
  margin-bottom: 28px;
  font-size: clamp(2.2rem, 4.6vw, 4rem);
  text-wrap: balance;
}
.error-description {
  font-size: 20px;
  line-height: 1.5;
}
.error-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 32px;
}
.error-actions .error-contact {
  color: var(--ink) !important;
  background: var(--white);
  border-color: var(--green-dark);
}
.error-actions .error-contact:hover {
  background: #e4eee5;
  border-color: #125410;
}
.error-number {
  position: relative;
  padding-bottom: 32px;
  color: var(--ink);
  font-family: 'Manrope', Arial, sans-serif;
  font-size: min(19vw, 16.5rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.06em;
  text-align: center;
  text-shadow: 10px 10px 0 #d7e5d8;
}
.error-number::after {
  position: absolute;
  inset: auto 32% 0;
  height: 2px;
  background: #86a28a;
  content: '';
}
@media (max-width: 900px) {
  .error-page {
    padding-block: 56px 64px;
  }
  .error-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
  }
  .error-copy h1 {
    max-width: 18ch;
    font-size: clamp(2.2rem, 6vw, 3.4rem);
  }
  .error-number {
    font-size: min(26vw, 13rem);
    padding-bottom: 24px;
  }
}
@media (max-width: 600px) {
  .error-page {
    padding-block: 40px 48px;
  }
  .error-description {
    font-size: 18px;
  }
  .error-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .error-number {
    font-size: min(32vw, 11rem);
    text-shadow: 6px 6px 0 #d7e5d8;
  }
}
.subhero h1 {
  max-width: 1050px;
}
.subhero .intro {
  font-size: 20px;
  max-width: 760px;
  color: var(--muted);
}
.detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 65px;
  align-items: start;
}
.prose {
  max-width: 840px;
  overflow-wrap: anywhere;
}
.prose h2 {
  font-size: 29px;
  margin-top: 38px;
}
.prose h3 {
  font-size: 23px;
  margin-top: 28px;
}
.prose h4 {
  font-size: 19px;
  margin-top: 24px;
}
.prose p {
  margin-bottom: 20px;
}
.prose li {
  padding-left: 5px;
  margin-bottom: 9px;
}
.prose ul {
  padding-left: 22px;
}
.prose a {
  font-weight: 600;
}
.aside {
  background: var(--pale);
  padding: 28px;
  border-radius: 6px;
}
.aside h2 {
  font-size: 22px;
}
.aside a {
  display: block;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
}
.aside .btn {
  display: flex;
  margin-top: 25px;
  border: 0;
  color: #fff;
}
.logo-gallery {
  padding: 64px 0 80px;
  background: var(--pale);
}
.logo-gallery-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.65fr);
  gap: 56px;
  align-items: start;
}
.logo-gallery-intro {
  padding-top: 24px;
}
.logo-gallery-intro h1::before {
  content: '';
  display: block;
  width: 44px;
  height: 3px;
  margin-bottom: 30px;
  background: var(--green);
}
.logo-gallery-intro h1 {
  font-size: clamp(2.5rem, 4vw, 3.25rem);
  letter-spacing: -1.5px;
}
.logo-gallery-intro p {
  font-size: 21px;
  line-height: 1.5;
  color: var(--muted);
  margin-bottom: 0;
}
.logo-gallery-intro p + p {
  margin-top: 24px;
}
.logo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: start;
  padding-bottom: 40px;
}
.logo-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 28px;
  border-radius: 5px;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 8px 28px rgb(21 32 31 / 6%);
}
.logo-card:nth-child(even) {
  position: relative;
  top: 40px;
}
.logo-card > img {
  height: 140px;
  width: 100%;
  max-width: 260px;
  object-fit: contain;
  margin: 0 auto 28px;
}
.logo-card h2 {
  font-size: 22px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.logo-card p {
  font-size: 16px;
  color: var(--muted);
}
.logo-card .text-link {
  border-top: 1px solid var(--line);
  padding-top: 16px;
  margin-top: auto;
  color: var(--green-dark);
}
.logo-card:hover {
  color: var(--green-dark);
}
.logo-card:hover .text-link {
  color: #125410;
}
@media (max-width: 1100px) {
  .logo-gallery-layout {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .logo-gallery-intro {
    padding-top: 0;
    max-width: 650px;
  }
}
@media (max-width: 600px) {
  .logo-gallery {
    padding: 30px 0 48px;
  }
  .logo-gallery-intro h1 {
    font-size: 2.45rem;
  }
  .logo-gallery-intro h1::before {
    margin-bottom: 22px;
  }
  .logo-gallery-intro p {
    font-size: 18px;
  }
  .logo-grid {
    padding-bottom: 0;
  }
  .logo-card:nth-child(even) {
    top: 0;
  }
}
.contact-page {
  background: var(--pale);
  padding-block: 54px 60px;
}
.contact-page h1 {
  margin-bottom: 40px;
  font-size: clamp(2.5rem, 4.6vw, 4rem);
}
.contact-channels {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-bottom: 28px;
}
.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}
.contact-item {
  background: var(--white);
  padding: 28px;
  border-radius: 7px;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  column-gap: 18px;
  align-content: start;
}
.contact-item h2 {
  font-size: 21px;
  grid-column: 2;
  margin-bottom: 12px;
  position: relative;
}
.contact-item h2 .icon {
  position: absolute;
  left: -48px;
  top: 1px;
  width: 30px;
  height: 30px;
}
.contact-item > p,
.contact-item > a {
  grid-column: 2;
  margin-bottom: 0;
  overflow-wrap: anywhere;
}
.contact-item p {
  color: var(--muted);
}
.contact-form,
.contact-location,
.contact-emergency {
  background: var(--white);
  padding: 36px;
  border-radius: 7px;
}
.contact-location-column {
  display: grid;
  gap: 24px;
  min-width: 0;
}
.contact-location h2 {
  font-size: 21px;
  line-height: 1.45;
}
.contact-emergency h2 {
  font-size: 28px;
}
.contact-emergency p {
  margin-bottom: 0;
}
.contact-emergency a {
  display: block;
}
.contact-form h2 {
  font-size: 27px;
}
.contact-form-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 24px;
}
.contact-form input:focus-visible,
.contact-form select:focus-visible,
.contact-form textarea:focus-visible {
  outline: 2px solid var(--green-dark);
  outline-offset: 1px;
  border-color: var(--green-dark);
}
@media (max-width: 900px) {
  .contact-layout,
  .contact-channels {
    grid-template-columns: minmax(0, 1fr);
  }
}
.fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.field.full {
  grid-column: 1/-1;
}
label {
  font-size: 14px;
  font-weight: 600;
}
input,
textarea {
  border: 1px solid #718675;
  padding: 12px;
  background: #fff;
  border-radius: 4px;
  min-width: 0;
  width: 100%;
  color: var(--ink);
}
textarea {
  min-height: 145px;
  resize: vertical;
}
.form-status {
  margin-top: 18px;
  font-weight: 600;
  font-size: 14px;
}
.form-status:empty,
.form-errors:empty,
.field-error:empty {
  margin: 0;
}
.form-errors,
.field-error {
  color: #9b2020;
  font-size: 15px;
  line-height: 1.5;
}
.field-error {
  margin: 8px 0 0;
}
.form-errors:not(:empty) {
  margin-top: 18px;
  padding: 12px;
  border-left: 3px solid #9b2020;
}
.form-errors:focus-visible,
.form-status:focus-visible {
  outline: 3px solid #238b22;
  outline-offset: 5px;
}
.form-status.error {
  color: #9b2020;
}
.honeypot {
  position: absolute;
  left: -9999px;
}
.skip {
  position: fixed;
  left: 20px;
  top: -100px;
  z-index: 50;
  background: #fff;
  padding: 12px;
}
.skip:focus {
  top: 12px;
}
.legal .prose {
  margin-inline: auto;
}
.credits {
  font-size: 14px;
}
.stock-credits-heading {
  display: inline-block;
  margin-top: 24px;
}

.mobile-note {
  display: none;
}
.copyright {
  white-space: normal;
}
@media (min-width: 1450px) {
  .hero {
    min-height: 650px;
  }
}
@media (max-width: 1100px) {
  .container {
    width: calc(100% - 48px);
  }
  .header-inner {
    gap: 18px;
  }
  .brand img {
    width: 225px;
  }
  .main-nav {
    gap: 18px;
    font-size: 13px;
  }
  .main-nav .btn {
    padding: 11px 16px;
  }
  .small-services {
    grid-template-columns: repeat(3, 1fr);
  }
  .split {
    gap: 35px;
  }
  .footer-grid {
    gap: 25px;
  }
  .footer-grid > div + div {
    padding-left: 20px;
  }
  .detail-grid {
    gap: 35px;
    grid-template-columns: minmax(0, 1fr) 280px;
  }
}
@media (max-width: 900px) {
  .menu-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .header-inner {
    min-height: 76px;
  }
  .main-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    padding: 15px 0;
  }
  .header-inner {
    flex-wrap: wrap;
  }
  .js .main-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 1px solid var(--line);
    padding: 20px 25px;
    max-height: calc(100vh - 90px);
    overflow: auto;
  }
  .js .main-nav.is-open {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .main-nav a {
    padding: 10px;
  }
  .hero h1 {
    font-size: 3.4rem;
  }
  .hero-badge {
    display: none;
  }
  .hero-copy {
    max-width: 620px;
  }
  .service-grid {
    gap: 15px;
  }
  .card-content {
    padding: 16px;
  }
  .card-title h3 {
    font-size: 17px;
  }
  .split {
    gap: 28px;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .footer-grid > div + div {
    border: 0;
    padding: 0;
  }
  .contact-layout {
    gap: 24px;
  }
  .contact-form,
  .contact-location,
  .contact-emergency {
    padding: 28px;
  }
  .contact-item {
    padding: 22px;
    grid-template-columns: 26px minmax(0, 1fr);
    column-gap: 14px;
  }
  .contact-item h2 .icon {
    left: -40px;
    width: 26px;
    height: 26px;
  }
  .detail-grid {
    grid-template-columns: 1fr;
  }
  .aside {
    position: static;
  }
  .aside nav {
    columns: 2;
  }
  .facts {
    gap: 22px;
  }
  .fact {
    display: block;
  }
  .fact strong {
    display: block;
    margin-bottom: 20px;
  }
}
@media (max-width: 600px) {
  body {
    font-size: 16px;
  }
  .container {
    width: calc(100% - 36px);
  }
  .topbar {
    font-size: 10px;
  }
  .brand img {
    width: 220px;
  }
  .menu-toggle span {
    display: none;
  }
  .hero {
    min-height: 565px;
  }
  .hero-copy {
    padding: 58px 0 65px;
  }
  .hero h1 {
    font-size: clamp(2rem, 10vw, 2.8rem);
    max-width: 370px;
  }
  .hero .lead {
    font-size: 19px;
    max-width: 330px;
  }

  .hero .eyebrow {
    font-size: 10px;
  }
  .actions {
    gap: 11px;
  }
  .btn {
    font-size: 13px;
    padding: 13px 16px;
  }
  .trust .container {
    gap: 10px;
    padding-block: 20px;
  }
  .trust-item {
    font-size: 12px;
    gap: 8px;
    flex-direction: column;
    text-align: center;
  }
  .trust .icon {
    width: 28px;
    height: 28px;
  }
  .section {
    padding: 48px 0;
  }
  .section-heading {
    display: block;
  }
  .section-heading .text-link {
    margin-top: 20px;
  }
  .service-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .service-card > .ai-image > picture > img {
    aspect-ratio: 1.8;
  }
  .card-content {
    padding: 19px 20px;
  }
  .card-title h3 {
    font-size: 20px;
  }
  .small-services {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .small-service {
    padding: 20px 15px;
  }
  .small-service:last-child {
    grid-column: 1/-1;
  }
  .split {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .split > .ai-image > picture > img {
    min-height: 0;
    aspect-ratio: 1.35;
    max-height: none;
  }
  .facts {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .fact {
    display: flex;
    border: 0;
    padding: 0;
  }
  .fact strong {
    margin: 0;
    font-size: 40px;
    min-width: 65px;
  }
  .footer-grid {
    gap: 35px 20px;
  }
  .footer-grid > div:first-child {
    grid-column: 1/-1;
  }
  .footer-grid > div:last-child {
    grid-column: 1/-1;
  }
  .footer-bottom {
    display: block;
    padding-bottom: 48px;
  }
  .footer-bottom nav {
    margin-bottom: 20px;
    gap: 20px;
    flex-wrap: wrap;
  }
  .subhero {
    padding: 30px 0 40px;
  }
  .subhero h1 {
    font-size: 2.45rem;
    overflow-wrap: anywhere;
  }
  .subhero .intro {
    font-size: 18px;
  }
  .logo-grid {
    grid-template-columns: 1fr;
  }
  .contact-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .contact-channels {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .contact-page {
    padding-block: 32px;
  }
  .contact-page h1 {
    margin-bottom: 26px;
  }
  .fields {
    grid-template-columns: 1fr;
  }
  .contact-form,
  .contact-location,
  .contact-emergency {
    padding: 24px 20px;
  }
  .aside nav {
    columns: 1;
  }
  .prose h2 {
    font-size: 26px;
  }
  .section-heading h2 {
    font-size: 2.05rem;
  }
  .legal h1 {
    font-size: 2.2rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

.brand {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px;
  color: var(--ink);
}
.brand-mark {
  font-size: 40px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: -2px;
  color: var(--green);
}
.brand-name {
  font-size: 21px;
  font-weight: 700;
  letter-spacing: -0.7px;
  overflow-wrap: anywhere;
}
.number {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.number .icon {
  width: 18px;
  height: 18px;
}
.small-description {
  display: block;
  font-weight: 400;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
  margin-top: 12px;
}
.fact {
  align-items: center;
}
.fact h3 {
  margin: 0;
}
.fact strong {
  color: var(--green-dark);
}
@media (max-width: 1100px) {
  .brand-mark {
    font-size: 34px;
  }
  .brand-name {
    font-size: 18px;
  }
  .brand {
    gap: 8px;
  }
}
@media (max-width: 600px) {
  .brand-mark {
    font-size: 36px;
  }
  .brand-name {
    font-size: 19px;
  }
  .brand {
    gap: 10px;
  }
  .small-description {
    font-size: 12px;
  }
  .fact {
    align-items: center;
  }
  .fact strong {
    min-width: 120px;
  }
  .small-service:last-child {
    grid-column: auto;
  }
}

.process .fact {
  align-items: flex-start;
}
.process .fact strong {
  color: var(--green-dark);
  font-size: 54px;
  font-weight: 700;
  line-height: 1;
  min-width: 66px;
}
.process .fact h3 {
  margin: 0 0 12px;
  font-size: 20px;
}
.process .fact p {
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink);
}
@media (max-width: 600px) {
  .process .fact strong {
    min-width: 62px;
    font-size: 46px;
  }
  .process .fact h3 {
    font-size: 19px;
  }
  .process .facts {
    gap: 30px;
  }
}

@media (max-width: 600px) {
  .cta {
    padding: calc(48px - 19.5px) 0;
  }
  .cta h2 {
    font-size: 30px;
  }
}

/* Disclosure navigation, company pages and local contact map. */
.nav-group {
  position: relative;
}
.nav-heading {
  display: flex;
  align-items: center;
  gap: 2px;
}
.submenu-toggle {
  display: none;
  background: transparent;
  border: 0;
  border-radius: 4px;
  padding: 9px 4px;
  min-width: 24px;
  margin-right: -6px;
  justify-content: center;
  cursor: pointer;
  color: var(--ink);
}
.submenu-toggle .icon {
  width: 15px;
  height: 15px;
}
.js .submenu-toggle {
  display: inline-flex;
}
.nav-group.active > .nav-heading > a {
  color: var(--green-dark);
}
.submenu {
  list-style: none;
  margin: 0;
  padding: 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  min-width: 280px;
}
.submenu li {
  margin: 0;
}
.main-nav .submenu a {
  display: block;
  padding: 10px 14px;
  line-height: 1.4;
  border: 0;
  border-radius: 3px;
  font-size: 14px;
}
.main-nav .submenu a:hover,
.main-nav .submenu a[aria-current='page'] {
  background: var(--pale);
  color: var(--green-dark);
}
.js .submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  box-shadow: 0 12px 30px #1420201c;
  max-height: calc(100vh - 140px);
  overflow: auto;
}
.js .nav-group.is-open > .submenu {
  display: block;
}
.nav-group.is-open .submenu-toggle .icon {
  transform: rotate(180deg);
}
.company-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.company-card {
  display: block;
  padding: 35px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
}
.company-card > .icon {
  width: 40px;
  height: 40px;
  margin-bottom: 20px;
}
.company-card h2 {
  font-size: 28px;
}
.company-card:hover {
  background: #eaf5e9;
}
.location-map {
  margin: 20px 0 16px;
}
.location-map > img {
  width: 100%;
  height: auto;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.location-map figcaption {
  font-size: 12px;
  line-height: 1.5;
  margin-top: 8px;
  color: var(--muted);
}
.privacy-notice {
  margin-top: 24px;
  padding: 18px 20px;
  border: 1px solid #bddcbb;
  border-left: 4px solid var(--green);
  border-radius: 5px;
  background: #eaf5e9;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.6;
}
.footer-contact p {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 9px;
}
.footer-contact p:first-child {
  margin-bottom: 18px;
}
.footer-contact .icon {
  width: 18px;
  height: 18px;
  margin-top: 3px;
}
.footer-contact span,
.footer-contact a {
  min-width: 0;
  overflow-wrap: anywhere;
}
.back-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 30;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #79c675;
  background: var(--green-dark);
  border-radius: 6px;
  box-shadow: 0 4px 14px #14202026;
  cursor: pointer;
}
.back-to-top[hidden] {
  display: none;
}
.back-to-top:hover {
  background: #125410;
}
.back-to-top .icon {
  filter: brightness(0) invert(1);
  width: 24px;
  height: 24px;
}
@media (max-width: 900px) {
  .nav-group {
    width: 100%;
  }
  .nav-heading {
    justify-content: space-between;
  }
  .nav-heading > a {
    flex: 1;
  }
  .submenu-toggle {
    margin-right: 0;
    padding: 12px;
    min-width: 44px;
    min-height: 44px;
    justify-content: center;
    align-items: center;
  }
  .js .submenu {
    position: static;
    box-shadow: none;
    max-height: none;
    min-width: 0;
    margin-top: 4px;
  }
  .main-nav .submenu a {
    padding: 11px 16px;
  }
  .main-nav > a {
    align-self: stretch;
  }
}
@media (max-width: 600px) {
  .company-links {
    grid-template-columns: 1fr;
  }
  .back-to-top {
    right: 14px;
    bottom: 14px;
    width: 44px;
    height: 44px;
  }
  .footer-contact p {
    gap: 7px;
  }
  .footer-grid {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  }
}

.contact-emergency a {
  font-size: 23px;
  font-weight: 700;
  border: 0;
  padding: 0;
  margin: 8px 0;
  line-height: 1.35;
}

/* Leistungsübersicht: großzügige Bild-Text-Abschnitte mit Sprungnavigation. */
.services-editorial-intro {
  padding: 46px 0 44px;
  background: #11211c;
  color: var(--white);
}
.services-editorial-intro h2 {
  margin: 0 0 24px;
  font-size: clamp(1.65rem, 2.7vw, 2.2rem);
  line-height: 1.25;
}
.services-editorial-intro h1,
.service-feature h2 {
  font-weight: 700;
}
.services-editorial-lead {
  font-weight: 400;
}
.services-editorial-intro h1 {
  font-size: clamp(2.5rem, 4.7vw, 4.2rem);
  line-height: 1.12;
  margin: 28px 0 12px;
}
.services-editorial-lead {
  font-size: clamp(1.2rem, 2vw, 1.65rem);
  line-height: 1.5;
  max-width: 1060px;
}
.services-jump-nav {
  margin: 0;
}
.services-jump-nav ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.services-jump-nav a {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 14px;
  min-height: 90px;
  height: 100%;
  padding: 16px;
  border: 1px solid #79c675;
  border-radius: 6px;
  background: #172e24;
  color: var(--white);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.35;
  transition:
    background-color 160ms ease,
    border-color 160ms ease;
}
.services-jump-label {
  hyphens: auto;
  overflow-wrap: break-word;
}
.services-jump-nav a:hover,
.services-jump-nav a:focus-visible {
  background: #244434;
  border-color: #a5d9a3;
  color: var(--white);
}
.services-jump-nav a:focus-visible {
  outline: 3px solid #a5d9a3;
  outline-offset: 3px;
}
.services-jump-icon,
.services-jump-arrow {
  display: flex;
  align-items: center;
}
.services-jump-icon .icon {
  width: 32px;
  height: 32px;
}
.services-jump-arrow .icon {
  width: 18px;
  height: 18px;
  transform: rotate(90deg);
}
.services-jump-nav .icon {
  filter: brightness(1.5) saturate(0.65);
}
.service-feature {
  padding: 62px 0;
  scroll-margin-top: 14px;
}
.service-feature-reverse {
  background: var(--pale);
}
.service-feature-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  align-items: center;
  gap: 58px;
}
.service-feature-visual,
.service-feature-copy {
  min-width: 0;
}
.service-feature-visual img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.service-feature-reverse .service-feature-visual {
  grid-column: 2;
  grid-row: 1;
}
.service-feature-reverse .service-feature-copy {
  grid-column: 1;
  grid-row: 1;
}
.service-feature-number {
  display: inline-block;
  color: var(--green-dark);
  font-size: 20px;
  line-height: 1.4;
  padding-bottom: 7px;
  margin-bottom: 17px;
  border-bottom: 1px solid var(--green);
}
.service-feature h2 {
  font-size: clamp(1.9rem, 2.8vw, 2.7rem);
  line-height: 1.15;
  margin-bottom: 16px;
  overflow-wrap: break-word;
}
.service-feature-description {
  font-size: 17px;
  line-height: 1.6;
  margin-bottom: 22px;
}
.service-feature h3 {
  font-size: 16px;
  letter-spacing: 0;
  line-height: 1.5;
  margin-bottom: 10px;
}
.service-feature-benefits {
  list-style: none;
  margin: 0 0 26px;
  padding: 0;
}
.service-feature-benefits li {
  display: flex;
  align-items: start;
  gap: 10px;
  font-size: 15px;
  line-height: 1.55;
  margin-bottom: 8px;
}
.service-feature-benefits .icon {
  width: 19px;
  height: 19px;
  margin-top: 2px;
}
.service-feature .btn {
  max-width: 100%;
}
@media (max-width: 1000px) {
  .service-feature-grid {
    gap: 32px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .services-jump-nav ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 800px) {
  .service-feature {
    padding: 40px 0;
  }
  .service-feature-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .service-feature-reverse .service-feature-visual,
  .service-feature-reverse .service-feature-copy {
    grid-column: auto;
    grid-row: auto;
  }
}
@media (max-width: 600px) {
  .services-editorial-intro {
    padding: 32px 0;
  }
  .services-editorial-intro h1 {
    font-size: clamp(1.95rem, 8.5vw, 2.9rem);
    overflow-wrap: break-word;
  }
  .services-jump-nav ul {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .services-jump-nav a {
    min-height: 76px;
    padding: 14px 16px;
  }
  .services-jump-icon .icon {
    width: 28px;
    height: 28px;
  }
  .service-feature .btn {
    padding-inline: 16px;
    text-align: left;
  }
}
@media (prefers-reduced-motion: reduce) {
  .services-jump-nav a {
    transition: none;
  }
}

/* Leistungsdetails: Variante „Ruhig & großzügig“, ausschließlich Detailseiten. */
.service-detail-hero {
  position: relative;
  isolation: isolate;
  background: var(--white);
  display: grid;
  max-width: 1920px;
  margin-inline: auto;
}
.service-detail-hero-visual {
  position: relative;
  grid-area: 1 / 1;
  width: min(62%, 975px);
  justify-self: end;
  align-self: center;
  z-index: auto;
}
.service-detail-hero-visual img {
  width: 100%;
  height: auto;
}
.service-detail-hero-visual::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    #fff 0%,
    rgb(255 255 255 / 80%) 6%,
    rgb(255 255 255 / 35%) 14%,
    transparent 25%
  );
}
.service-detail-hero-inner {
  position: relative;
  grid-area: 1 / 1;
  z-index: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding-block: 46px 92px;
  pointer-events: none;
}
.service-detail-hero-copy {
  max-width: 51%;
  margin-block: auto;
  padding-top: 42px;
}
.service-detail-hero h1 {
  font-size: clamp(2.5rem, 4.2vw, 4rem);
  line-height: 1.13;
  overflow-wrap: anywhere;
  hyphens: manual;
  margin-bottom: 22px;
}
.service-detail-hero-copy p {
  max-width: 450px;
  font-size: clamp(1.2rem, 1.7vw, 1.5rem);
  line-height: 1.45;
  color: var(--muted);
  margin-bottom: 36px;
}
.service-detail-information {
  background: var(--pale);
  padding-block: 76px;
}
.service-detail-information-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(36px, 5.4vw, 80px);
}
.service-detail-photo {
  position: sticky;
  top: 130px;
}
.service-detail-photo img {
  width: 100%;
  aspect-ratio: 0.84;
  object-fit: cover;
  border-radius: 5px;
}
.service-detail-prose {
  min-width: 0;
  padding-block: 12px;
  font-size: 18px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.service-detail-label {
  color: var(--green-dark);
  font-family: 'Source Sans 3', Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 22px;
}
.service-detail-prose p {
  margin-bottom: 24px;
}
.service-detail-prose h3 {
  font-size: 21px;
  line-height: 1.35;
  margin-block: 28px 14px;
}
.service-detail-prose > :last-child {
  margin-bottom: 0;
}
.service-detail-checks {
  list-style: none;
  margin: 28px 0;
  padding: 0;
}
.service-detail-checks li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  margin-block: 0 20px;
}
.service-detail-checks .icon {
  width: 28px;
  height: 28px;
  margin-top: 1px;
}
.service-detail-benefits {
  padding-block: 88px 96px;
  background: var(--white);
}
.service-detail-benefits-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 64px;
}
.service-detail-benefits-heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.service-detail-benefits h2 {
  max-width: 370px;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  line-height: 1.2;
  margin-bottom: 40px;
}
.service-detail-benefits .text-link {
  margin-top: auto;
  padding-block: 10px;
}
.service-detail-benefit-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.service-detail-benefit-list li {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  align-items: center;
  gap: 28px;
  padding-block: 28px;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.5;
  border-bottom: 1px solid var(--line);
}
.service-detail-benefit-list li:first-child {
  padding-top: 6px;
}
.service-detail-benefit-list li:last-child {
  border: 0;
  padding-bottom: 6px;
}
.service-detail-benefit-list .icon {
  width: 48px;
  height: 48px;
}
@media (max-width: 1100px) {
  .service-detail-hero-inner {
    padding-bottom: 70px;
  }
  .service-detail-benefits-grid {
    gap: 36px;
  }
}
@media (max-width: 800px) {
  .service-detail-hero {
    display: flex;
    flex-direction: column;
  }
  .service-detail-hero-inner {
    min-height: 0;
    padding-block: 32px 38px;
  }
  .service-detail-hero-copy {
    max-width: 640px;
    padding-top: 12px;
  }
  .service-detail-hero-copy p {
    max-width: 600px;
    margin-bottom: 26px;
  }
  .service-detail-hero-visual {
    position: relative;
    inset: auto;
    order: 1;
    z-index: 0;
    width: 100%;
    height: auto;
  }
  .service-detail-hero-visual::after {
    background: none;
  }
  .service-detail-information,
  .service-detail-benefits {
    padding-block: 48px;
  }
  .service-detail-information-grid,
  .service-detail-benefits-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
  .service-detail-photo {
    position: static;
    order: 1;
  }
  .service-detail-photo img {
    aspect-ratio: 1.45;
    max-height: 440px;
  }
  .service-detail-prose {
    padding: 0;
  }
  .service-detail-benefits h2 {
    max-width: 540px;
    margin-bottom: 16px;
  }
  .service-detail-benefit-list li {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 20px;
    padding-block: 23px;
  }
  .service-detail-benefit-list .icon {
    width: 40px;
    height: 40px;
  }
}
@media (max-width: 600px) {
  .service-detail-hero h1 {
    font-size: clamp(2rem, 8.5vw, 2.7rem);
  }
  .service-detail-prose,
  .service-detail-benefit-list li {
    font-size: 17px;
  }
}

/* Kennzeichnung der KI-Fotomotive, einschließlich dekorativer Hintergründe. */
.ai-image,
.cta,
.service-card {
  position: relative;
}
.ai-image {
  min-width: 0;
}
.ai-image > picture > img {
  display: block;
}
.split > .ai-image {
  height: 100%;
}
.service-card-link {
  color: inherit;
}
.service-card-link::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}
.service-card:has(.service-card-link:focus-visible) {
  outline: 3px solid var(--green-dark);
  outline-offset: 4px;
}
.ai-notice {
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 3;
  color: #fff;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  text-align: left;
}
.ai-notice > summary {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.03em;
  list-style: none;
  cursor: pointer;
}
.ai-notice > summary::-webkit-details-marker {
  display: none;
}
.ai-notice > summary:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 6px #14231f;
}
.ai-notice .ai-notice-text {
  position: absolute;
  right: 0;
  bottom: 100%;
  width: 190px;
  max-width: calc(100vw - 48px);
  margin: 0;
  padding: 8px 10px;
  border: 1px solid #fff;
  border-radius: 7px;
  background: #14231f;
  color: #fff;
  font-size: 12px;
  line-height: 1.4;
  font-weight: 400;
  box-shadow: 0 3px 14px rgb(0 0 0 / 18%);
}

/* The EU icon is already in each raster file; the summary is a transparent hit area. */
.ai-image > picture {
  display: contents;
}
.ai-image > picture > img {
  object-position: right bottom;
}
.hero > .hero-image > picture > img,
.cta-image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Header files are final crops. Preserve their ratio at every window width. */
.service-hero-image,
.service-hero-image > picture > img {
  display: block;
  width: 100%;
  height: auto;
}
.cta-image {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero > .container {
  position: relative;
  z-index: 1;
}
.hero > .container a {
  pointer-events: auto;
}
.cta-image .ai-notice {
  z-index: 3;
}
.cta:has(.ai-notice[open]),
.hero:has(.ai-notice[open]) {
  z-index: 2;
}
.ai-notice > summary {
  width: var(--hit-size, 30px);
  height: var(--hit-size, 30px);
  background: transparent;
}
.photo-credit {
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 3px 6px;
  background: #fff;
  color: #14231f;
  font-size: 12px;
}
.service-detail-hero-visual::after {
  pointer-events: none;
}
.service-detail-hero-copy {
  pointer-events: auto;
}
.cta > .container {
  position: relative;
  z-index: 1;
}
.cta > .container a {
  pointer-events: auto;
}
/* Keep disclosure text above foreground links without lifting the background image. */
.hero > .hero-image,
.cta-image {
  z-index: auto;
}
.hero-image > picture > img,
.cta-image > img {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.photo-credit {
  z-index: 2;
}

/* Licensed stock photo: requested focal point and readable CTA copy. */
.cta-stock > img {
  object-position: right center;
}
.cta-stock::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(17, 33, 28, 0.72) 0%,
    rgba(17, 33, 28, 0.68) 52%,
    rgba(17, 33, 28, var(--cta-gap-opacity)) 65%,
    rgba(17, 33, 28, 0.68) 80%,
    rgba(17, 33, 28, 0.68) 100%
  );
  pointer-events: none;
}
@media (min-width: 1356px) {
  .cta-stock::after {
    background: linear-gradient(
      90deg,
      rgba(17, 33, 28, 0),
      rgba(17, 33, 28, 0.72) 60px,
      rgba(17, 33, 28, 0.68) 52%,
      rgba(17, 33, 28, var(--cta-gap-opacity)) 65%,
      rgba(17, 33, 28, 0.68) 80%,
      rgba(17, 33, 28, 0.68) calc(100% - 60px),
      rgba(17, 33, 28, 0)
    );
    background-size: 1320px 100%;
    background-position: center;
    background-repeat: no-repeat;
  }
}
@media (max-width: 999px) {
  .cta-stock::after {
    background: linear-gradient(
      to bottom,
      rgba(17, 33, 28, 0.15),
      rgba(17, 33, 28, 0.68) 24px,
      rgba(17, 33, 28, 0.65) calc(100% - 24px),
      rgba(17, 33, 28, 0.15)
    );
  }
}

/* Unternehmensbereich U3: gleich hohe Bild- und Textflächen. */
.company-layout {
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  align-items: stretch;
  gap: 48px;
}
.company-layout > .company-photo {
  min-height: 600px;
  border-radius: 6px;
}
.company-layout > .company-photo > picture > img {
  position: absolute;
  inset: 0;
  min-height: 0;
  max-height: none;
  height: 100%;
  border-radius: 6px;
}
.company-copy {
  padding-block: 16px;
}
.company-copy h2 {
  font-size: clamp(28px, 2.7vw, 36px);
  line-height: 1.2;
  text-wrap: balance;
}
@media (max-width: 1279px) {
  .company-layout {
    max-width: 800px;
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
  .company-layout > .company-photo {
    min-height: 0;
    height: auto;
  }
  .company-layout > .company-photo > picture > img {
    position: static;
    height: auto;
  }
  .company-copy {
    padding-block: 0;
  }
}

/* Freigegebene Karriereübersicht K1 und Stellenanzeige S2. */
.career-heading {
  padding-block: 48px 52px;
  background: var(--pale);
}
.career-heading h1 {
  font-size: clamp(2.5rem, 4.8vw, 4rem);
  margin: 0;
}
.career-list {
  padding-block: 42px 48px;
  background: #edf4ee;
}
.career-intro {
  max-width: 900px;
  margin-bottom: 36px;
}
/* Freigegebene Karriereübersicht K1. */
.career-overview-layout .career-intro {
  display: grid;
  grid-template-columns: minmax(0, 0.55fr) minmax(0, 1fr);
  align-items: start;
  gap: 56px;
  max-width: none;
  margin-bottom: 40px;
  font-size: 18px;
  line-height: 1.65;
}
.career-intro h2 {
  font-size: clamp(1.9rem, 3vw, 2.65rem);
  line-height: 1.2;
  margin-bottom: 0;
}
.career-intro h2::before {
  content: '';
  display: block;
  width: 44px;
  height: 3px;
  margin-bottom: 24px;
  background: var(--green);
}
.career-overview-layout .career-card .btn {
  width: 100%;
  justify-content: center;
}
@media (max-width: 900px) {
  .career-overview-layout .career-intro {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
.career-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.96fr);
  align-items: center;
  gap: 42px;
  padding: 30px;
  border-radius: 8px;
  background: var(--white);
}
.career-card-photo img {
  width: 100%;
  height: auto;
  border-radius: 5px;
}
.career-card-copy h2 {
  font-size: clamp(1.65rem, 2.7vw, 2.5rem);
  line-height: 1.16;
  margin-bottom: 24px;
}
.career-card-copy h2 a {
  color: var(--ink);
}
.career-card-copy h2 a:hover {
  color: var(--green-dark);
}
.career-preview-facts {
  margin: 0 0 24px;
}
.career-preview-facts > div,
.career-facts > div {
  display: block;
}
.career-preview-facts dt,
.career-facts dt {
  position: relative;
}
.career-preview-facts dt {
  padding-left: 48px;
}
.career-preview-facts dd {
  margin-left: 48px;
}
.career-preview-facts .icon,
.career-facts .icon {
  position: absolute;
  left: 0;
  top: 3px;
}
.career-preview-facts > div {
  padding-block: 14px;
  border-top: 1px solid var(--line);
}
.career-preview-facts .icon {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
}
.career-preview-facts dt {
  font-size: 14px;
  color: var(--muted);
}
.career-information-facts dd {
  margin: 0;
}
.career-hero {
  position: relative;
  isolation: isolate;
  background: var(--white);
  display: grid;
  max-width: 1920px;
  margin-inline: auto;
}
.career-hero-visual {
  position: relative;
  grid-area: 1 / 1;
  width: min(56%, 780px);
  justify-self: end;
  align-self: center;
}
.career-hero-photo,
.career-hero-photo img {
  width: 100%;
  height: auto;
}
.career-hero-photo > picture > img {
  display: block;
}
.career-hero-visual::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    #fff 0%,
    rgb(255 255 255 / 80%) 6%,
    rgb(255 255 255 / 35%) 14%,
    transparent 25%
  );
  pointer-events: none;
}
.career-hero-inner {
  position: relative;
  grid-area: 1 / 1;
  z-index: 1;
  min-height: 0;
  display: flex;
  align-items: center;
  pointer-events: none;
}
.career-hero-copy {
  width: 53%;
  padding-block: 58px;
  pointer-events: auto;
}
.career-hero-copy .eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--ink);
  margin-bottom: 32px;
}
.career-hero-copy .eyebrow::before {
  content: '';
  width: 40px;
  height: 2px;
  background: var(--green);
}
.career-hero h1 {
  font-size: clamp(2.4rem, 4.05vw, 3.6rem);
  line-height: 1.13;
  margin: 0;
}
.career-facts-band {
  background: var(--pale);
  padding-block: 40px;
}
.career-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-block: 0;
}
.career-facts > div {
  padding-inline: 28px;
  border-left: 1px solid #cbded0;
}
.career-facts > div:first-child {
  padding-left: 0;
  border-left: 0;
}
.career-facts > div:last-child {
  padding-right: 0;
}
.career-facts .icon {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
}
.career-facts dd {
  margin: 0 0 0 56px;
}
.career-facts dt {
  padding-left: 56px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.career-description {
  padding-block: 64px 36px;
}
.career-description-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
  gap: 52px;
  margin-bottom: 36px;
}
.career-roles h2 {
  font-size: clamp(1.6rem, 2.4vw, 2rem);
  line-height: 1.25;
  margin-bottom: 34px;
}
.career-roles h3 {
  font-size: 1.4rem;
  line-height: 1.3;
  margin-bottom: 10px;
}
.application-form {
  margin-top: 36px;
  background: var(--pale);
}
.application-email {
  margin-top: 24px;
}
.application-email .email-word {
  white-space: nowrap;
}
.application-form select {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid #718675;
  border-radius: 4px;
  background: var(--white);
  color: var(--ink);
  font: inherit;
}
.custom-dropdown {
  position: relative;
}
.dropdown-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid #718675;
  border-radius: 4px;
  background: var(--white);
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.dropdown-trigger[hidden],
.dropdown-options[hidden] {
  display: none;
}
.dropdown-trigger .icon {
  width: 20px;
  height: 20px;
}
.dropdown-trigger[aria-expanded='true'] {
  border-color: var(--green-dark);
}
.dropdown-options {
  position: absolute;
  inset: calc(100% + 6px) 0 auto;
  z-index: 5;
  padding: 6px;
  margin: 0;
  border: 1px solid #718675;
  border-radius: 6px;
  background: var(--white);
  box-shadow: 0 8px 24px rgb(21 32 31 / 12%);
  list-style: none;
}
.dropdown-options li {
  padding: 12px;
  border-radius: 4px;
  cursor: pointer;
}
.dropdown-options li:hover,
.dropdown-options li.is-active {
  background: #eaf5e9;
  color: var(--green-dark);
}
.dropdown-options li[aria-selected='true'] {
  font-weight: 700;
}
.upload-dropzone {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 16px;
  padding: 28px 20px;
  border: 2px dashed #79c675;
  border-radius: 7px;
  background: var(--white);
  text-align: center;
}
.upload-dropzone p {
  margin: 0;
}
.upload-dropzone.is-dragover,
.upload-dropzone:focus-within {
  border-color: var(--green-dark);
  background: #eaf5e9;
}
.upload-input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  opacity: 0;
}
.upload-choose {
  cursor: pointer;
  border: 0;
}
.upload-hint,
.upload-status {
  font-size: 15px;
  margin: 0;
}
.upload-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.upload-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.upload-list span {
  overflow-wrap: anywhere;
}
.upload-list button {
  flex-shrink: 0;
  border: 1px solid var(--green-dark);
  border-radius: 4px;
  padding: 5px 10px;
  color: var(--green-dark);
  background: var(--white);
  cursor: pointer;
}
.upload-status.error {
  color: #9b2020;
}
.career-requirements {
  border-left: 1px solid #cbded0;
  padding-left: 42px;
}
.career-information-row {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 22px;
  padding-block: 24px;
  border-bottom: 1px solid #cbded0;
}
.career-information-row:first-child {
  padding-top: 0;
}
.career-information-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.career-information-row > .icon {
  width: 40px;
  height: 40px;
}
.career-information-row h2 {
  font-size: 1.2rem;
  line-height: 1.3;
  margin-bottom: 10px;
}
.career-information-row ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.career-information-row li + li {
  margin-top: 8px;
}
.career-information-facts dl {
  margin: 0;
}
.career-information-facts dl > div {
  display: grid;
  grid-template-columns: minmax(110px, 0.8fr) minmax(0, 1.1fr);
  gap: 16px;
  margin-bottom: 14px;
}
.career-information-facts dt {
  font-weight: 700;
}
.career-information-facts dd {
  color: var(--muted);
}
.career-application {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: 28px;
  padding: 30px 36px;
  border-radius: 7px;
  background: var(--pale);
}
.career-application > .icon {
  width: 54px;
  height: 54px;
}
.career-application p {
  font-weight: 700;
  margin-bottom: 4px;
}
.career-application p span {
  white-space: nowrap;
}
.career-email {
  font-size: clamp(1.15rem, 2vw, 1.7rem);
  font-weight: 700;
  overflow-wrap: anywhere;
}
.career-back {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 22px;
}
.career-back .icon {
  transform: rotate(180deg);
}
@media (max-width: 1050px) {
  .career-facts > div {
    padding-inline: 18px;
  }
  .career-facts dt {
    padding-left: 40px;
  }
  .career-facts dd {
    margin-left: 40px;
  }
  .career-facts .icon {
    flex-basis: 28px;
    width: 28px;
    height: 28px;
  }
  .career-description-grid {
    gap: 32px;
  }
  .career-requirements {
    padding-left: 28px;
  }
  .career-information-row {
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 14px;
  }
  .career-information-row > .icon {
    width: 32px;
    height: 32px;
  }
}
@media (max-width: 800px) {
  .career-card {
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
    padding: 24px;
  }
  .career-card-copy h2 {
    font-size: 2rem;
  }
  .career-hero-inner {
    min-height: 0;
  }
  .career-hero-copy {
    width: 100%;
    padding-block: 42px;
  }
  .career-hero h1 {
    font-size: clamp(2rem, 5.5vw, 2.8rem);
    max-width: 650px;
  }
  .career-hero-visual {
    position: relative;
    inset: auto;
    width: 100%;
  }
  .career-hero {
    display: flex;
    flex-direction: column-reverse;
  }
  .career-hero-photo img {
    height: auto;
  }
  .career-hero-visual::after {
    display: none;
  }
  .career-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 0;
  }
  .career-facts > div:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }
  .career-facts > div:nth-child(even) {
    padding-right: 0;
  }
  .career-description-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 36px;
  }
  .career-requirements {
    border-left: 0;
    padding-left: 0;
  }
  .career-application {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 20px;
    padding: 26px;
  }
  .career-application > .icon {
    width: 44px;
    height: 44px;
  }
  .career-application .btn {
    grid-column: 2;
    justify-self: start;
  }
}
@media (max-width: 600px) {
  .career-heading {
    padding-block: 32px;
  }
  .career-list {
    padding-block: 24px 32px;
  }
  .career-card {
    padding: 18px;
    gap: 24px;
  }
  .career-card-copy h2 {
    font-size: 1.6rem;
  }
  .career-hero-copy {
    padding-block: 34px;
  }
  .career-hero-copy .eyebrow {
    margin-bottom: 22px;
  }
  .career-facts-band {
    padding-block: 28px;
  }
  .career-facts > div {
    display: block;
    padding-inline: 14px;
  }
  .career-facts .icon {
    position: static;
    display: block;
    margin-bottom: 10px;
  }
  .career-facts dd {
    margin-left: 0;
  }
  .career-facts dt {
    padding-left: 0;
    font-size: 10px;
    letter-spacing: 0.08em;
  }
  .career-description {
    padding-block: 36px 28px;
  }
  .career-roles h2 {
    font-size: 1.5rem;
  }
  .career-roles h3 {
    font-size: 1.2rem;
  }
  .career-information-facts dl > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }
  .career-application {
    grid-template-columns: minmax(0, 1fr);
    padding: 24px;
    gap: 16px;
  }
  .career-application .btn {
    grid-column: 1;
  }
}

/* Consistent photographic page headers; AI crops already contain the shading and symbol. */
section.wide-header {
  position: relative;
  isolation: isolate;
  display: grid;
  aspect-ratio: auto;
  min-height: min-content;
  color: #fff;
  background: #11211c;
}
.wide-header-image,
.wide-header-image > picture > img {
  display: block;
  width: 100%;
  height: auto;
}
.wide-header-image,
.wide-header-inner {
  grid-area: 1 / 1;
}
.wide-header-inner {
  position: relative;
  min-width: 0;
  inset: 0;
  display: flex;
  align-items: center;
  pointer-events: none;
}
.wide-header-copy {
  max-width: 640px;
  width: 52%;
  padding-block: 32px;
  pointer-events: auto;
}
.wide-header h1 {
  font-size: clamp(2rem, 4.2vw, 4rem);
  line-height: 1.12;
  margin-bottom: 0;
  overflow-wrap: anywhere;
  hyphens: manual;
}
.wide-header-statement h1 {
  font-size: clamp(2rem, 4.2vw, 3.5rem);
}
.wide-header-title-tail {
  white-space: nowrap;
}
.wide-header .eyebrow {
  color: #fff;
  margin-bottom: 14px;
}
.wide-header-description {
  font-size: clamp(1.125rem, 1.5vw, 1.4rem);
  line-height: 1.4;
  text-wrap: balance;
  max-width: 570px;
  overflow-wrap: anywhere;
  margin: 20px 0 0;
}
.wide-header-copy .btn {
  margin-top: 24px;
}
.logo-gallery-with-photo .logo-gallery-intro::before {
  content: '';
  display: block;
  width: 44px;
  height: 3px;
  margin-bottom: 30px;
  background: var(--green);
}
@media (min-width: 1920px) {
  .wide-header-copy {
    width: 48%;
  }
}
@media (max-width: 800px) {
  .wide-header-copy {
    width: 74%;
    max-width: 580px;
    padding-block: 22px;
  }
  .wide-header h1 {
    font-size: clamp(1.7rem, 4.4vw, 2.6rem);
  }
  .wide-header-description {
    font-size: 17px;
    margin-top: 14px;
  }
  .wide-header-copy .btn {
    margin-top: 18px;
  }
}
@media (max-width: 600px) {
  .wide-header-copy {
    width: 100%;
    padding-block: 18px;
  }
  .wide-header h1 {
    font-size: clamp(1.5rem, 7vw, 2rem);
  }
  .wide-header-description {
    font-size: 16px;
    line-height: 1.35;
    margin-top: 12px;
  }
  .wide-header-copy .btn {
    margin-top: 16px;
  }
}

/* Keep the legal heading readable when users enlarge text. */
.wide-header-privacy .wide-header-copy {
  width: 100%;
  max-width: none;
}
.wide-header-privacy h1 {
  white-space: normal;
  overflow-wrap: anywhere;
  font-size: clamp(1.2rem, 5vw, 4rem);
}
/* One shared height for every page at each viewport, without cropping AI marks in CSS. */
.wide-header {
  aspect-ratio: 2.5;
  height: auto;
  min-height: 0;
}
.hero {
  aspect-ratio: auto;
  min-height: 40vw;
}
.hero-copy {
  padding-block: 24px;
}
.hero h1 {
  font-size: clamp(1.5rem, 4.4vw, 3.5rem);
}
.hero .lead {
  font-size: clamp(1rem, 1.5vw, 1.3rem);
  margin-block: 18px;
}
.hero .actions {
  margin-top: 18px;
}
@media (max-width: 800px) {
  .wide-header {
    aspect-ratio: 1.5;
  }
  .hero {
    min-height: 66.6667vw;
  }
  .hero .eyebrow {
    font-size: 10px;
  }
  .hero-copy {
    padding-block: 18px;
  }
  .hero .actions {
    gap: 8px;
  }
  .hero .actions .btn {
    font-size: 11px;
    padding: 10px 12px;
    gap: 8px;
  }
}
@media (max-width: 600px) {
  .wide-header {
    aspect-ratio: 1;
  }
  .hero {
    min-height: 100vw;
  }
  .hero h1 {
    font-size: clamp(1.3rem, 7vw, 2rem);
  }
  .hero .lead {
    margin-block: 14px;
  }
}
@media (max-width: 600px) {
  .hero-copy {
    padding-block: 16px;
  }
  .cta-action {
    justify-self: start;
    justify-items: start;
  }
}
@media (max-width: 480px) {
  .trust .container {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding-block: 8px;
  }
  .trust-item {
    flex-direction: row;
    justify-content: flex-start;
    gap: 16px;
    padding: 16px 12px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
    font-size: 16px;
    text-align: left;
  }
}
