/* Globaler Footer – eine Quelle und identische Darstellung auf allen Seiten. */
.nt-footer-section {
    --footer-bg: #d8ebb8;
    --footer-ink: #26351c;
    --footer-muted: #526447;
    --footer-line: rgba(95, 125, 39, 0.24);
    padding-top: clamp(4rem, 8vw, 7rem);
    color: var(--footer-muted);
    background:
        radial-gradient(ellipse 48rem 28rem at 8% 5%, rgba(255,255,255,.44), transparent 62%),
        var(--footer-bg);
    font-family: var(--font-copy);
}

.nt-footer-section .footer-grid {
    display: grid;
    padding-bottom: clamp(3rem, 6vw, 5rem);
    gap: 2rem;
    grid-template-columns: 1.7fr 1fr 1.5fr;
}

.nt-footer-section .footer-intro p {
    max-width: 30rem;
    margin: 1.5rem 0 0;
    color: var(--footer-muted);
}

.nt-footer-section .footer-brand { display: inline-flex; }
.nt-footer-section .footer-brand img { width: 13.75rem; }

.nt-footer-section .footer-heading {
    margin-bottom: 1.25rem;
    color: var(--footer-ink);
    font-family: var(--font-interface);
    font-size: .72rem;
    font-weight: 400;
    letter-spacing: .12em;
    line-height: 1.45;
    text-transform: uppercase;
}

.nt-footer-section .footer-nav ul {
    display: grid;
    margin: 0;
    padding: 0;
    gap: .55rem;
    list-style: none;
}

.nt-footer-section a {
    color: var(--footer-ink);
    text-decoration-color: rgba(95,125,39,.46);
}

.nt-footer-section .footer-nav a,
.nt-footer-section .footer-contact a {
    display: inline-flex;
    min-height: 1.75rem;
    align-items: center;
}

.nt-footer-section a:hover { color: var(--color-accent-dark); }
.nt-footer-section .footer-contact p { margin-bottom: 0; }

.nt-footer-section .footer-bottom {
    display: flex;
    padding-block: 1.4rem;
    border-top: 1px solid var(--footer-line);
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: var(--footer-muted);
    font-family: var(--font-interface);
    font-size: .58rem;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.nt-footer-section .footer-bottom p { margin: 0; }
.nt-footer-section :focus-visible { outline-color: var(--color-accent-dark); box-shadow: 0 0 0 6px var(--color-primary-softer); }


.nt-footer-section .footer-link-columns {
    display: grid;
    min-width: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: clamp(1rem, 3vw, 2.5rem);
}

.back-to-top {
    position: fixed;
    z-index: 2100;
    right: clamp(0.85rem, 2vw, 1.5rem);
    bottom: 4rem;
    display: grid;
    width: clamp(3rem, 4vw, 3.5rem);
    height: clamp(3rem, 4vw, 3.5rem);
    border: 1px solid var(--color-primary);
    border-radius: 50%;
    place-items: center;
    color: var(--color-primary-dark);
    background: rgba(255,255,255,.96);
    box-shadow: var(--shadow-primary);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(.75rem);
    transition: opacity var(--transition), visibility var(--transition), transform var(--transition), background-color var(--transition);
}
.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.back-to-top:hover { color: var(--color-primary-dark); background: var(--color-primary-softer); }
.back-to-top:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
@media (max-width:767px) { .back-to-top { right: .75rem; bottom: 3.35rem; } }

/* Breakpoint 1: Widescreen */
@media (min-width:2400px) { .nt-footer-section .footer-grid { grid-template-columns: 2fr 1fr 1.4fr; } }
/* Breakpoint 2: Laptop */
@media (max-width:1366px) { .nt-footer-section .footer-grid { gap: 1.75rem; } }
/* Breakpoint 3: Tablet Landscape */
@media (max-width:1200px) {
    .nt-footer-section .footer-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .nt-footer-section .footer-link-columns { grid-column: 1 / -1; }
}
/* Breakpoint 4: Tablet Portrait */
@media (max-width:1024px) { .nt-footer-section { padding-top:4.5rem; } }
/* Breakpoint 5: Mobile Landscape */
@media (max-width:880px) { .nt-footer-section .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* Breakpoint 6: Mobile Portrait */
@media (max-width:767px) { .nt-footer-section .footer-bottom { align-items:flex-start; flex-direction:column; } }
/* Breakpoint 7: Small Mobile */
@media (max-width:480px) {
    .nt-footer-section .footer-grid { grid-template-columns:1fr; }
    .nt-footer-section .footer-link-columns { grid-column:auto; }
    .nt-footer-section .footer-brand img { width:11rem; }
}
@media (prefers-reduced-motion:reduce) { .nt-footer-section * { scroll-behavior:auto!important; } }
@media (forced-colors:active) { .nt-footer-section { border-top:1px solid CanvasText; } }
