/*
 * heiringhoff.info
 * Project-specific CSS for Bootstrap Package 16
 */


/* ==========================================================================
   CARDS – allgemeine Kartenoptik
   ========================================================================== */

.card {
    background-color: #fff;
    border: 0;
    border-radius: .375rem;
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);

    transition:
        box-shadow .25s ease;
}

@media (hover: hover) and (pointer: fine) {

    .card:hover {
        box-shadow: 0 .75rem 1.5rem rgba(0, 0, 0, .18);
    }
}


/* ==========================================================================
   CARDS – Typografie
   gilt für Projektkarten, Teamkarten usw.
   ========================================================================== */

.card .card-title {
    margin-bottom: .25rem;
}

.card .card-subtitle {
    margin-top: 0;
    margin-bottom: .75rem;

    font-size: .875rem;
    line-height: 1.35;
    font-weight: 400;

    color: #6f6f6f;
}


/* ==========================================================================
   CARDS OF SUBPAGES
   komplette Karte klickbar
   ========================================================================== */

.card-menu-item .card {
    position: relative;
    cursor: pointer;

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.card-menu-item .card-footer {
    position: absolute;
    inset: 0;

    padding: 0;
    border: 0;
    background: transparent;

    z-index: 2;
}

.card-menu-item .card-link {
    position: absolute;
    inset: 0;

    display: block;

    font-size: 0;
    text-indent: -9999px;

    z-index: 2;
}

.card-menu-item .card-link::after {
    content: none;
}

@media (hover: hover) and (pointer: fine) {

    .card-menu-item .card:hover {
        transform: translateY(-4px);
        box-shadow: 0 .75rem 1.5rem rgba(0, 0, 0, .18);
    }
}

.card-menu-item .card:has(.card-link:focus-visible) {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}


/* ==========================================================================
   TIMELINE
   ========================================================================== */

.timeline-item {
    background: transparent;
    border: 0;
    box-shadow: none;
}

.timeline-item-inner {
    background-color: #fff;

    border: 0 !important;
    border-radius: .375rem;

    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);

    transition:
        box-shadow .25s ease;
}

@media (hover: hover) and (pointer: fine) {

    .timeline-item-inner:hover {
        box-shadow: 0 .75rem 1.5rem rgba(0, 0, 0, .18);
    }
}


/* ==========================================================================
   TIMELINE – Linie / Marker
   ========================================================================== */

.timeline::before {
    background-color: #cfcfd1;
}

.timeline-point,
.timeline-marker {
    border-color: #cfcfd1;
}


/* ==========================================================================
   SITEMAP
   ========================================================================== */

.frame-type-menu_sitemap .frame-inner > ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.75rem;

    list-style: none;

    margin: 0;
    padding: 0;
}

.frame-type-menu_sitemap .frame-inner > ul > li {
    margin: 0;
    padding: 1.5rem 1.75rem;

    background-color: #fff;

    border: 0;
    border-radius: .375rem;

    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);

    transition:
        box-shadow .25s ease;
}

@media (hover: hover) and (pointer: fine) {

    .frame-type-menu_sitemap .frame-inner > ul > li:hover {
        box-shadow: 0 .75rem 1.5rem rgba(0, 0, 0, .18);
    }
}

.frame-type-menu_sitemap .frame-inner > ul > li > a {
    display: block;

    margin-bottom: 1rem;

    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.3;

    color: inherit;
    text-decoration: none;
}

.frame-type-menu_sitemap ul ul {
    list-style: none;

    margin: .75rem 0 0;
    padding: 0;
}

.frame-type-menu_sitemap ul ul li {
    margin: 0;
    padding: 0;
}

.frame-type-menu_sitemap ul ul a {
    display: block;

    padding: .25rem 0;

    color: inherit;
    text-decoration: none;

    transition:
        color .2s ease,
        transform .2s ease;
}

.frame-type-menu_sitemap .frame-inner > ul > li > ul > li > a {
    margin-top: .65rem;
    font-weight: 500;
}

.frame-type-menu_sitemap ul ul ul {
    margin-top: .25rem;
    padding-left: 1rem;
}

.frame-type-menu_sitemap ul ul ul a {
    font-size: .925rem;
    opacity: .75;
}

@media (hover: hover) and (pointer: fine) {

    .frame-type-menu_sitemap a:hover {
        text-decoration: none;
    }

    .frame-type-menu_sitemap ul ul a:hover {
        transform: translateX(3px);
    }
}

@media (max-width: 767.98px) {

    .frame-type-menu_sitemap .frame-inner > ul {
        grid-template-columns: 1fr;
    }
}


/* ==========================================================================
   HERO VIDEO
   ========================================================================== */

.hh-hero-video {
    position: relative;

    width: 100%;

    height: 100vh;
    height: 100svh;

    overflow: hidden;

    background: #222;
}

.hh-hero-video video {
    position: absolute;
    inset: 0;

    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center center;
}


/* ==========================================================================
   SCROLL ANIMATIONS
   ========================================================================== */

.hh-animate,
.hh-animate-left,
.hh-animate-right,
.hh-animate-up,
.hh-animate-zoom {
    opacity: 0;

    transition:
        opacity .75s ease,
        transform .75s cubic-bezier(.2, .7, .2, 1);

    will-change: opacity, transform;
}

.hh-animate,
.hh-animate-up {
    transform: translateY(36px);
}

.hh-animate-left {
    transform: translateX(-48px);
}

.hh-animate-right {
    transform: translateX(48px);
}

.hh-animate-zoom {
    transform: scale(.96);
}

.hh-is-visible {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {

    .hh-animate,
    .hh-animate-left,
    .hh-animate-right,
    .hh-animate-up,
    .hh-animate-zoom {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.panel-heading,
.card-header {
    background: #f1f1f1;
    color: #222;
    border: 0;
    font-weight: 600;
}

/* ==========================================================================
   HERO – dezente Abdunklung hinter der Navigation
   ========================================================================== */

.page-1 .carousel-fullscreen::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;

    height: 120px;

    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, .20) 0%,
        rgba(0, 0, 0, .08) 55%,
        rgba(0, 0, 0, 0) 100%
    );

    pointer-events: none;
    z-index: 2;
}