.page-entry-content h1,
.page-entry-content h2,
.page-entry-content h3 {
    color: var(--dark-blue);
    font-weight: 600;
    line-height: 1.15;
    margin-top: 1.5em;
    margin-bottom: .65em;
}

.page-entry-content h1 {
    font-size: clamp(2.5rem, 2.273rem + 1.14vw, 3.125rem);
}

.page-entry-content h2 {
    font-size: clamp(1.75rem, 1.591rem + .8vw, 2.1875rem);
}

.page-entry-content h3 {
    font-size: clamp(1.25rem, 1.136rem + .57vw, 1.5625rem);
}

[data-long-video-play] {
    --video-play-color: color-mix(in srgb, var(--light-blue) 78%, white);
    border-width: 4px;
    border-color: var(--video-play-color);
    background-color: transparent;
    box-shadow: 0 0 0 1px rgb(255 255 255 / 22%), inset 0 0 0 1px rgb(255 255 255 / 12%);
    scale: 1;
    transition: scale .35s ease;
}

[data-long-video-play] > span {
    width: 34%;
    height: 44%;
    border: 0;
    color: var(--video-play-color);
    filter: drop-shadow(0 1px 2px rgb(9 28 91 / 35%));
}

[data-long-video-play]::before {
    content: "";
    position: absolute;
    inset: calc(-25% - 4px);
    padding: 25%;
    border-radius: 50%;
    background: radial-gradient(closest-side, rgb(58 178 249 / 24%) 60%, rgb(58 178 249 / 46%) 100%);
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
    opacity: 0;
    pointer-events: none;
    transition: opacity .4s ease;
    animation: video-play-glow 1.8s ease-out infinite both;
    animation-play-state: paused;
}

[data-long-video-play]:hover,
[data-long-video-play]:focus-visible {
    scale: 1.03;
}

[data-long-video-play]:hover::before,
[data-long-video-play]:focus-visible::before {
    opacity: 1;
    animation-play-state: running;
}

@keyframes video-play-glow {
    0% {
        inset: -4px;
        padding: 0;
        filter: opacity(0);
    }

    35% {
        filter: opacity(.85);
    }

    100% {
        inset: calc(-32% - 4px);
        padding: 32%;
        filter: opacity(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-long-video-play],
    [data-long-video-play]::before {
        transition: none;
        animation: none;
    }

    [data-long-video-play]:hover,
    [data-long-video-play]:focus-visible {
        animation: none;
        scale: 1;
    }

    [data-long-video-play]:hover::before,
    [data-long-video-play]:focus-visible::before {
        animation: none;
        opacity: .6;
    }
}

.kontakt-page .container {
    max-width: 1180px;
}

.kontakt-page-without-hero {
    padding-top: 128px;
}

.kontakt-hero {
    padding-top: 128px;
    padding-bottom: 80px;
    border-bottom: 2px solid var(--light-blue);
}

.kontakt-hero-with-cards {
    padding-bottom: 176px;
}

.kontakt-hero-logo {
    max-width: 200px;
    max-height: 48px;
    margin-bottom: 24px;
}

.kontakt-hero-title {
    font-size: clamp(48px, 5.56vw, 80px);
    line-height: 1.08;
}

.kontakt-intro-overlap {
    margin-top: -112px;
}

.kontakt-intro {
    padding-bottom: 12px;
}

.kontakt-card-grid > :only-child {
    grid-column: 1 / -1;
}

.kontakt-card {
    padding: 24px;
    border-radius: 16px;
    box-shadow: 0 12px 32px rgb(0 0 0 / 16%);
    overflow-wrap: anywhere;
}

.kontakt-card-partner,
.kontakt-team {
    background: var(--pale-blue);
}

.kontakt-card-title {
    font-size: 22px;
}

.kontakt-card-copy {
    margin-top: 10px;
    font-size: 14px;
}

.kontakt-intro .kontakt-card-copy {
    flex-grow: 1;
}

.kontakt-button {
    --icon: 34px;
}

.kontakt-button .btn-pill-icon img {
    transform: none;
}

.kontakt-button:hover .btn-pill-icon img {
    animation-name: icon-pulse;
}

@media (min-width: 1024px) and (max-width: 1599px) {
    .kontakt-button {
        --icon: 28px;
    }
}

.kontakt-email,
.kontakt-company-name {
    margin-top: 10px;
    font-size: 21px;
    line-height: 1.35;
}

.kontakt-email img,
.kontakt-company-name img {
    width: 24px;
    height: 24px;
}

.kontakt-hover-link {
    color: transparent;
    background-image: linear-gradient(90deg, var(--light-blue) 0 50%, var(--dark-blue) 50% 100%);
    background-size: 200% 100%;
    background-position: 100% 0;
    -webkit-background-clip: text;
    background-clip: text;
    transition: background-position .35s ease;
    overflow-wrap: anywhere;
}

.kontakt-hover-link:hover,
a:hover > .kontakt-hover-link,
.kontakt-hover-link:focus-visible,
a:focus-visible > .kontakt-hover-link {
    background-position: 0 0;
}

.kontakt-section {
    padding-block: 48px;
}

.kontakt-branches {
    padding-top: 64px;
    padding-bottom: 32px;
}

.kontakt-eyebrow {
    font-size: 20px;
}

.kontakt-section-title {
    margin-top: 12px;
    font-size: clamp(30px, 3vw, 40px);
}

.kontakt-branch-grid,
.kontakt-team-grid {
    margin-top: 24px;
}

.kontakt-branch-image {
    aspect-ratio: 1.92;
    border-radius: 24px;
    transition: transform .4s ease;
}

.kontakt-branch-media {
    border-radius: 24px;
}

.kontakt-branch-media:hover .kontakt-branch-image,
.kontakt-branch-media:focus-visible .kontakt-branch-image {
    transform: scale(1.04);
}

@media (prefers-reduced-motion: reduce) {
    .kontakt-branch-image {
        transition: none;
    }

    .kontakt-branch-media:hover .kontakt-branch-image,
    .kontakt-branch-media:focus-visible .kontakt-branch-image {
        transform: none;
    }
}

.kontakt-branch-title {
    margin-top: 18px;
    font-size: 22px;
}

.kontakt-branch-address,
.kontakt-map-link {
    margin-top: 6px;
    font-size: 14px;
}

.kontakt-map-link {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kontakt-company {
    padding-top: 32px;
    padding-bottom: 72px;
}

.kontakt-company-details {
    margin-top: 6px;
    padding-left: 36px;
    font-size: 14px;
}

.kontakt-about-copy {
    margin-top: 10px;
    font-size: 18px;
}

.kontakt-team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 32px;
}

.kontakt-person-image {
    max-width: 200px;
    aspect-ratio: 1;
}

.kontakt-person-name {
    margin-top: 14px;
    font-size: 21px;
    line-height: 1.3;
}

.kontakt-person-role {
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.5;
}

.kontakt-team-copy {
    margin-top: 32px;
    font-size: 18px;
}

.kontakt-security {
    padding-block: 72px;
}

.kontakt-security-copy {
    max-width: 900px;
}

.kontakt-security-image {
    max-width: 680px;
}

@media (min-width: 640px) {
    .kontakt-team-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .kontakt-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kontakt-hero {
        padding-top: 144px;
    }
}

@media (min-width: 1024px) {
    .kontakt-team-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}
