/*!
 * WAB Footer – vier Spalten (Firmendaten, Öffnungszeiten, Navigation, Service) und Copyright-Zeile.
 * Farben aus der globalen root.css (--wab-color-*), Inhaltsbreite aus dem Layout-Plugin (--wab-container, --wab-gutter).
 */

.wab-footer {
    --wab-max: var(--wab-container, 1200px);
    --wab-footer-line: color-mix(in srgb, currentColor 14%, transparent);
    background: var(--wab-footer-bg, var(--wab-color-dark, #1f2a24));
    color: var(--wab-footer-text, var(--wab-color-dark-text, #fff));
    font-size: .9375rem;
    line-height: 1.6;
}

.wab-footer--wide { --wab-max: var(--wab-container-wide, 1600px); }
.wab-footer--full { --wab-max: 100%; }

.wab-footer__inner {
    box-sizing: border-box;
    padding: clamp(2.5rem, 6vw, 4.5rem) max(var(--wab-gutter, 16px), calc((100% - var(--wab-max)) / 2)) 0;
}

/* Spalten: Desktop alle nebeneinander, Tablet höchstens 2, Smartphone 1 (--wab-footer-cols = Anzahl sichtbarer Spalten) */
.wab-footer__columns {
    display: grid;
    grid-template-columns: repeat(var(--wab-footer-cols, 4), minmax(0, 1fr));
    gap: 2.5rem clamp(1.5rem, 4vw, 3.5rem);
}

@media (max-width: 1023.98px) {
    .wab-footer__columns {
        grid-template-columns: repeat(min(var(--wab-footer-cols, 4), 2), minmax(0, 1fr));
    }
}

@media (max-width: 599.98px) {
    .wab-footer__columns {
        grid-template-columns: minmax(0, 1fr);
    }
}

.wab-footer__col > :last-child {
    margin-bottom: 0;
}

.wab-footer__title {
    position: relative;
    margin: 0 0 1.25rem;
    padding-bottom: .75rem;
    color: inherit;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: .02em;
}

/* Kurzer Akzentstrich unter der Überschrift */
.wab-footer__title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 2.5rem;
    height: 3px;
    border-radius: 3px;
    background: var(--wab-footer-accent, var(--wab-color-secondary, #4f9d69));
}

.wab-footer a {
    color: inherit;
    text-decoration: none;
    transition: color .2s ease;
}

.wab-footer a:hover,
.wab-footer a:focus-visible {
    color: var(--wab-footer-accent, var(--wab-color-secondary, #4f9d69));
}

.wab-footer a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
    border-radius: 2px;
}

/* ------------------------------------------------------------------ */
/* Firmendaten                                                         */
/* ------------------------------------------------------------------ */

.wab-footer__name {
    margin: 0 0 .5rem;
    font-weight: 700;
}

.wab-footer__address {
    margin: 0 0 1.25rem;
    font-style: normal;
}

.wab-footer__contacts {
    display: grid;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.wab-footer__contact {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 .375rem;
    padding-left: 1.75rem;
    position: relative;
}

/* Icons (eingefärbt per currentColor bzw. Akzentfarbe) */
.wab-footer__contact::before {
    content: "";
    position: absolute;
    left: 0;
    top: .3em;
    width: 1.05em;
    height: 1.05em;
    background: var(--wab-footer-accent, var(--wab-color-secondary, #4f9d69));
    -webkit-mask: var(--wab-footer-icon) center / contain no-repeat;
    mask: var(--wab-footer-icon) center / contain no-repeat;
}

.wab-footer__contact--phone,
.wab-footer__contact--mobile,
.wab-footer__contact--emergency-phone {
    --wab-footer-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E");
}

.wab-footer__contact--fax {
    --wab-footer-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 8h-1V3H6v5H5a3 3 0 0 0-3 3v6h4v4h12v-4h4v-6a3 3 0 0 0-3-3zM8 5h8v3H8zm8 14H8v-5h8zm3-7a1 1 0 1 1 0-2 1 1 0 0 1 0 2z'/%3E%3C/svg%3E");
}

.wab-footer__contact--whatsapp {
    --wab-footer-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm5.3 14.1c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .2-3.3-.7a11.6 11.6 0 0 1-4.5-4c-.4-.5-1-1.5-1-2.8s.7-2 1-2.3c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.3 0 .5l-.4.6-.4.4c-.1.2-.3.3-.1.6.2.3.8 1.3 1.7 2.1 1.2 1 2.1 1.4 2.4 1.5.3.1.5.1.6-.1l.9-1c.2-.3.4-.2.6-.1l1.9.9c.3.1.5.2.5.3.1.1.1.7-.2 1.3z'/%3E%3C/svg%3E");
}

.wab-footer__contact--email {
    --wab-footer-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 4-8 5-8-5V6l8 5 8-5z'/%3E%3C/svg%3E");
}

.wab-footer__contact--maps {
    --wab-footer-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
}

.wab-footer__label {
    opacity: .75;
}

.wab-footer__label::after {
    content: ":";
}

/* ------------------------------------------------------------------ */
/* Öffnungszeiten ({{company::opening_hours}} → dl.company-opening-hours) */
/* ------------------------------------------------------------------ */

.wab-footer .company-opening-hours {
    display: grid;
    grid-template-columns: auto 1fr;
    /* Kein Spaltenabstand, sonst hätte die Trennlinie eine Lücke – Abstand per padding */
    gap: .5rem 0;
    margin: 0;
}

.wab-footer .company-opening-hours dt {
    padding-right: 1.25rem;
    font-weight: 600;
}

.wab-footer .company-opening-hours dd {
    margin: 0;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Trennlinie zwischen den Tagen */
.wab-footer .company-opening-hours dt:not(:first-of-type),
.wab-footer .company-opening-hours dt:not(:first-of-type) + dd {
    padding-top: .5rem;
    border-top: 1px solid var(--wab-footer-line);
}

.wab-footer__note {
    margin: 1rem 0 0;
    font-size: .875rem;
    opacity: .8;
}

/* ------------------------------------------------------------------ */
/* Navigationen                                                        */
/* ------------------------------------------------------------------ */

.wab-footer__nav .mod_navigation,
.wab-footer__nav .mod_customnav {
    margin: 0;
}

.wab-footer__nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.wab-footer__nav li {
    margin: 0;
}

/* :not(.invisible) – Contaos versteckten Link „Navigation überspringen“ nicht anfassen */
.wab-footer__nav :is(a, strong):not(.invisible) {
    position: relative;
    display: inline-block;
    padding: .3rem 0 .3rem 1.125rem;
    font-weight: 400;
    transition: color .2s ease, transform .25s cubic-bezier(.4, 0, .2, 1);
}

/* Pfeil vor jedem Eintrag, der Eintrag rückt beim Überfahren etwas nach rechts */
.wab-footer__nav :is(a, strong):not(.invisible)::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: .35em;
    height: .35em;
    border: solid var(--wab-footer-accent, var(--wab-color-secondary, #4f9d69));
    border-width: 2px 2px 0 0;
    transform: translateY(-50%) rotate(45deg);
}

.wab-footer__nav a:not(.invisible):is(:hover, :focus-visible) {
    transform: translateX(.25rem);
}

.wab-footer__nav strong.active,
.wab-footer__nav a.trail {
    color: var(--wab-footer-accent, var(--wab-color-secondary, #4f9d69));
    font-weight: 600;
}

/* Unterebenen eingerückt */
.wab-footer__nav ul ul {
    padding-left: 1rem;
    font-size: .9em;
}

/* ------------------------------------------------------------------ */
/* Copyright-Zeile                                                     */
/* ------------------------------------------------------------------ */

.wab-footer__bottom {
    margin-top: clamp(2rem, 5vw, 3.5rem);
    padding: 1.25rem 0;
    border-top: 1px solid var(--wab-footer-line);
    font-size: .875rem;
}

.wab-footer__copyright {
    margin: 0;
    opacity: .8;
}

@media (max-width: 767.98px) {
    .wab-footer__bottom {
        text-align: center;
    }
}
