/* Shared page geometry. Keep theme columns from adding a second outer gutter. */
:root {
    --sonnhalde-page-width: 1030px;
    --sonnhalde-page-gutter: 35px;
}
body #wrapper, body #footer {
    box-sizing: border-box;
    width: calc(100% - 32px);
    max-width: var(--sonnhalde-page-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--sonnhalde-page-gutter);
    padding-right: var(--sonnhalde-page-gutter);
}
body #wrapper .container, body #footer .container {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 960px;
    margin-left: auto;
    margin-right: auto;
}
body .container > .sixteen.columns {
    box-sizing: border-box;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    float: none;
}
body #header {
    display: flex;
    align-items: center;
    gap: 24px;
    width: 100%;
}
body #header > .columns {
    box-sizing: border-box;
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    margin: 0;
    float: none;
}
body #navigation { width: 100%; box-sizing: border-box; }
body #footer .footer-info-grid {
    grid-template-columns: minmax(0, 2fr) minmax(0, 2fr) minmax(0, 1.5fr);
}
body #footer .footer-info-grid > div { min-width: 0; }
@media (max-width: 959px) {
    :root { --sonnhalde-page-gutter: 24px; }
    body #footer .footer-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    :root { --sonnhalde-page-gutter: 16px; }
    body #header { flex-direction: column; align-items: stretch; gap: 0; }
    body #header > .columns { flex: auto; width: 100%; }
    body #contact-details { text-align: left; }
    body #footer .footer-info-grid { grid-template-columns: minmax(0, 1fr); }
}
/* Parent mobile rules force a full-viewport footer; keep the shared outer edges. */
body #footer {
    width: calc(100% - 32px) !important;
    max-width: var(--sonnhalde-page-width);
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Extend Download Manager's native link across the complete default card. */
.w3eden .link-template-default.card { position: relative; }
.w3eden .link-template-default.card .card-body,
.w3eden .link-template-default.card .media,
.w3eden .link-template-default.card .media-body,
.w3eden .link-template-default.card .ml-3,
.w3eden .link-template-default.card .wpdm-download-link { position: static; }
.w3eden .link-template-default.card .wpdm-download-link::after {
    content: ""; position: absolute; inset: 0; z-index: 10; cursor: pointer;
}
.w3eden .link-template-default.card:hover { background-color: #f7f7f8; }
.w3eden .link-template-default.card .wpdm-download-link:focus-visible::after {
    outline: 2px solid #1d254e; outline-offset: 2px;
}
/* Hover transforms would shrink the stretched link back to the button. */
.w3eden .link-template-default.card:hover,
.w3eden .link-template-default.card .wpdm-download-link,
.w3eden .link-template-default.card .wpdm-download-link:hover { transform: none; }

/* Press gallery: four full-width previews, insulated from legacy ID rules. */
.sonnhalde-richtext .gallery[id] {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px; max-width: none !important; width: 100%; margin: 0 0 32px !important;
    align-items: start;
}
.sonnhalde-richtext .gallery[id] .gallery-item {
    float: none; width: 100% !important; max-width: none !important;
    margin: 0 !important; padding: 0 !important;
}
.sonnhalde-richtext .gallery[id] .gallery-icon,
.sonnhalde-richtext .gallery[id] .gallery-icon a {
    display: block; width: 100% !important; max-width: none !important; margin: 0;
}
.sonnhalde-richtext .gallery[id] .gallery-item img {
    display: block; width: 100% !important; max-width: 100% !important; height: auto !important;
    box-sizing: border-box; border: 1px solid #ddd;
}
.sonnhalde-richtext .gallery[id] > br { display: none; }
@media (max-width: 767px) {
    .sonnhalde-richtext .gallery[id] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
.sonnhalde .sonnhalde-gallery-content { max-width: none; }

/* Consistent content tables, overriding old editor-generated row heights. */
#wrapper table.standard-table { width: 100%; height: auto !important; border-collapse: collapse; }
#wrapper table.standard-table tr { height: auto !important; }
#wrapper table.standard-table th,
#wrapper table.standard-table td {
    box-sizing: border-box; height: 48px !important;
    padding: 12px 14px; vertical-align: middle;
    text-align: left; line-height: 1.5;
}
#wrapper table.standard-table th > :last-child,
#wrapper table.standard-table td > :last-child { margin-bottom: 0; }

/* Linked newspaper previews respond without changing their size or position. */
.sonnhalde-richtext .gallery[id] .gallery-icon a:hover,
.sonnhalde-richtext .gallery[id] .gallery-icon a:focus-visible {
    outline: 2px solid #aeb4c1; outline-offset: 3px;
    box-shadow: 0 4px 14px rgba(29, 37, 78, .18);
}
.sonnhalde-richtext .gallery[id] .gallery-icon a:hover img { opacity: .92; }
@media (prefers-reduced-motion: no-preference) {
    .sonnhalde-richtext .gallery[id] .gallery-icon a { transition: box-shadow .15s ease; }
    .sonnhalde-richtext .gallery[id] .gallery-icon img { transition: opacity .15s ease; }
}
