/* Approved desktop/mobile drawing: one text axis per column, compact notice cards. */
[data-lemp-module="footer"] { color:#f4eddf; padding:56px 0 20px; background:linear-gradient(rgba(32,35,32,.96),rgba(32,35,32,.96)),url('../../img/schiefertafel.webp') center/cover; }
[data-lemp-module="footer"] .site-footer__main { display:grid; grid-template-columns:minmax(160px,.78fr) repeat(2,minmax(0,1.15fr)); gap:48px; align-items:start; }
[data-lemp-module="footer"] .site-footer__brand { text-align:center; }
[data-lemp-module="footer"] .site-footer__logo-link { display:inline-block; }
[data-lemp-module="footer"] .site-footer__logo { display:block; width:184px; max-width:100%; height:auto; }
[data-lemp-module="footer"] .site-footer__tagline { margin:24px 0 0; font-family:var(--lemp-font-hand); font-size:30px; line-height:1.2; }
[data-lemp-module="footer"] .site-footer__tagline::after { content:""; display:block; width:66px; height:2px; margin:16px auto 0; background:#b8313d; transform:rotate(-5deg); }
[data-lemp-module="footer"] .site-footer__heading { margin:0 0 20px; padding-bottom:14px; border-bottom:1px solid rgba(244,237,223,.32); font-family:var(--lemp-font-heading); font-size:24px; font-weight:500; line-height:1.25; letter-spacing:.07em; text-transform:uppercase; }
[data-lemp-module="footer"] .site-footer__icon { width:24px; height:24px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.6; margin-top:3px; color:#e4dfd5; }
[data-lemp-module="footer"] .site-footer__contact-item { display:grid; grid-template-columns:24px minmax(0,1fr); align-items:start; gap:16px; margin-bottom:20px; font-size:18px; line-height:1.5; }
[data-lemp-module="footer"] .site-footer__contact-item span { display:block; }
[data-lemp-module="footer"] .site-footer__contact-item a { justify-self:start; max-width:100%; overflow-wrap:anywhere; text-decoration:none; min-height:32px; }
[data-lemp-module="footer"] .site-footer__route { display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin:12px 0 0 40px; }
[data-lemp-module="footer"] a.site-footer__route-link { display:inline-flex; align-items:center; gap:12px; max-width:100%; min-height:44px; padding:6px 0; color:#f4eddf; font-size:18px; font-weight:600; line-height:1.4; text-decoration:none; overflow-wrap:anywhere; }
[data-lemp-module="footer"] .site-footer__route-link > span[aria-hidden] { flex-shrink:0; }
[data-lemp-module="footer"] a.site-footer__route-link:is(:hover,:focus-visible) { color:#fff; text-decoration:none; }
[data-lemp-module="footer"] a.site-footer__route-link:is(:hover,:focus-visible) .site-footer__route-label { text-decoration:underline; text-underline-offset:4px; }
[data-lemp-module="footer"] .site-footer__hours-list { margin:0; }
[data-lemp-module="footer"] .site-footer__hours-list > div { display:grid; grid-template-columns:minmax(0,1fr) max-content; gap:6px 16px; align-items:baseline; padding:7px 0; border-bottom:1px solid rgba(244,237,223,.2); }
[data-lemp-module="footer"] .site-footer__hours-list > div:first-child { padding-top:0; }
[data-lemp-module="footer"] .site-footer__hours-list > div:last-child { padding-bottom:0; border:0; }
[data-lemp-module="footer"] .site-footer__hours-list dt,
[data-lemp-module="footer"] .site-footer__hours-list dd { margin:0; font-size:17px; font-weight:400; line-height:1.4; }
[data-lemp-module="footer"] .site-footer__hours-list dd { text-align:right; font-variant-numeric:tabular-nums; }
[data-lemp-module="footer"] .site-footer__special { display:grid; gap:12px; margin-top:22px; container-type:inline-size; }
[data-lemp-module="footer"] .footer-notice { display:grid; grid-template-columns:24px minmax(0,1fr); gap:0 12px; padding:16px; border-radius:10px; background:#f4eddf; color:#292622; }
[data-lemp-module="footer"] .footer-notice__icon { margin-top:3px; color:#a5242d; }
[data-lemp-module="footer"] .footer-notice__copy { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; align-items:center; }
[data-lemp-module="footer"] .footer-notice__message, [data-lemp-module="footer"] .footer-notice__schedule { display:grid; gap:6px; min-width:0; }
[data-lemp-module="footer"] .footer-notice__title { margin:0; color:#8f1f27; font-family:var(--lemp-font-body); font-size:20px; font-weight:600; line-height:1.25; overflow-wrap:anywhere; }
[data-lemp-module="footer"] .footer-notice__date { margin:0; font-size:15px; line-height:1.4; }
[data-lemp-module="footer"] .footer-notice__time { margin:0; color:#8f1f27; font-size:20px; font-weight:700; line-height:1.4; font-variant-numeric:tabular-nums; }
[data-lemp-module="footer"] .footer-notice__time span { display:block; }
[data-lemp-module="footer"] .footer-notice__note { margin:0; font-size:15px; line-height:1.45; overflow-wrap:anywhere; }

[data-lemp-module="footer"] .site-footer__bottom { margin-top:40px; padding-top:18px; border-top:1px solid rgba(244,237,223,.32); }
[data-lemp-module="footer"] .site-footer__legal { display:flex; justify-content:center; flex-wrap:wrap; gap:4px 28px; font-size:15px; line-height:1.5; }
[data-lemp-module="footer"] .site-footer__legal a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; }
[data-lemp-module="footer"] a,
[data-lemp-module="footer"] a:visited { color:inherit; }
[data-lemp-module="footer"] a:focus-visible { outline:2px solid #f4eddf; outline-offset:4px; }
@media (max-width:1199px) {
  [data-lemp-module="footer"] .site-footer__main { grid-template-columns:160px repeat(2,minmax(0,1fr)); gap:32px; }
  [data-lemp-module="footer"] .site-footer__logo { width:150px; }
  [data-lemp-module="footer"] .site-footer__tagline { font-size:27px; }
  [data-lemp-module="footer"] .site-footer__contact-item { font-size:17px; }
  [data-lemp-module="footer"] a.site-footer__route-link { font-size:17px; }
}
@media (max-width:991px) {
  [data-lemp-module="footer"] .site-footer__main { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
  [data-lemp-module="footer"] .site-footer__brand { grid-column:1/-1; display:flex; align-items:center; justify-content:center; gap:24px; padding:0; }
  [data-lemp-module="footer"] .site-footer__logo { width:108px; }
  [data-lemp-module="footer"] .site-footer__tagline { margin:0; font-size:29px; }
}
@media (max-width:767px) {
  [data-lemp-module="footer"] { padding-top:32px; }
  [data-lemp-module="footer"] .site-footer__main { grid-template-columns:minmax(0,1fr); gap:28px; }
  [data-lemp-module="footer"] .site-footer__brand { justify-content:flex-start; gap:22px; }
  [data-lemp-module="footer"] .site-footer__logo { width:92px; }
  [data-lemp-module="footer"] .site-footer__tagline { font-size:27px; }
  [data-lemp-module="footer"] .site-footer__tagline::after { margin-top:10px; }
  [data-lemp-module="footer"] .site-footer__heading { margin-bottom:10px; padding-bottom:10px; font-size:22px; }
  [data-lemp-module="footer"] .site-footer__contact-item { margin-bottom:4px; font-size:17px; line-height:1.5; }
  [data-lemp-module="footer"] .site-footer__contact-item a { display:flex; align-items:center; min-height:44px; }
  [data-lemp-module="footer"] .site-footer__route { margin-top:4px; gap:0; }
  [data-lemp-module="footer"] .site-footer__hours-list > div { padding:6px 0; }
  [data-lemp-module="footer"] .site-footer__special { margin-top:18px; }
  [data-lemp-module="footer"] .footer-notice { padding:14px; }
  [data-lemp-module="footer"] .site-footer__bottom { margin-top:24px; padding-top:12px; }
  [data-lemp-module="footer"] .site-footer__legal { gap:0 20px; font-size:14px; }
}
@media (max-width:359px) {
  [data-lemp-module="footer"] .site-footer__brand { gap:16px; }
  [data-lemp-module="footer"] .site-footer__logo { width:76px; }
  [data-lemp-module="footer"] .site-footer__tagline { font-size:23px; }
  [data-lemp-module="footer"] .site-footer__hours-list > div { gap:4px 10px; }
  [data-lemp-module="footer"] .site-footer__hours-list dt,
  [data-lemp-module="footer"] .site-footer__hours-list dd { font-size:16px; }
}
@media (max-width:767px) {
  [data-lemp-module="footer"] .site-footer__legal { display:grid; grid-template-columns:repeat(2,max-content); justify-content:center; column-gap:20px; text-align:center; }
  [data-lemp-module="footer"] .site-footer__legal a { justify-content:center; }
}
/* Reflow also remains usable with increased user-defined text spacing. */
[data-lemp-module="footer"] .site-footer__hours-list dt { min-width:0; overflow-wrap:anywhere; }
@media (max-width:767px) {
  [data-lemp-module="footer"] .site-footer__legal { grid-template-columns:repeat(2,minmax(0,1fr)); }
  [data-lemp-module="footer"] .site-footer__legal a { min-width:0; overflow-wrap:anywhere; }
}

/* Full-width special periods form a compact shared footer row. */
@media (min-width:992px) {
  [data-lemp-module="footer"] .site-footer__main:not(.site-footer__main--regular) { row-gap:24px; }
  [data-lemp-module="footer"] .site-footer__main > .site-footer__special { grid-column:1/-1; margin-top:0; }
}
@media (min-width:768px) and (max-width:991px) {
  [data-lemp-module="footer"] .site-footer__main > .site-footer__special { grid-column:1/-1; margin-top:0; }
}
@media (max-width:767px) {
  [data-lemp-module="footer"] .site-footer__main > .site-footer__special { margin-top:0; }
}
@container (min-width:550px) {
  [data-lemp-module="footer"] .footer-notice__schedule { text-align:right; }
  [data-lemp-module="footer"] .footer-notice { grid-template-columns:24px minmax(0,1fr); padding:16px 20px; }
  [data-lemp-module="footer"] .footer-notice__copy { grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); column-gap:32px; }
}

/* Match the contact rhythm to the hours; keep each arrival link in its own column. */
[data-lemp-module="footer"] .site-footer__transit { margin-left:0; }
@media (min-width:768px) {
  [data-lemp-module="footer"] .site-footer__main { align-items:stretch; }
  [data-lemp-module="footer"] :is(.site-footer__contact,.site-footer__hours) { display:grid; grid-template-rows:auto 1fr auto; min-width:0; }
  [data-lemp-module="footer"] .site-footer__contact-details { display:flex; flex-direction:column; justify-content:space-between; gap:8px; }
  [data-lemp-module="footer"] .site-footer__contact-item { margin-bottom:0; }
  [data-lemp-module="footer"] .site-footer__hours-list { align-self:start; }
  [data-lemp-module="footer"] .site-footer__route { margin-top:14px; }
}
@media (min-width:992px) {
  [data-lemp-module="footer"] .site-footer__brand { grid-row:1; align-self:center; display:flex; flex-direction:column; align-items:center; gap:20px; }
  [data-lemp-module="footer"] .site-footer__tagline { margin:0; }
}

/* Keep both arrival options together in the single-column mobile footer. */
[data-lemp-module="footer"] .site-footer__transit--mobile { display:none; }
@media (max-width:767px) {
  [data-lemp-module="footer"] .site-footer__transit--mobile { display:block; max-width:100%; }
  [data-lemp-module="footer"] .site-footer__transit--desktop { display:none; }
}

/* A decorative host draws attention to special opening hours on desktop. */
[data-lemp-module="footer"] .footer-notice__figure { display:none; }
@media (min-width:992px) {
  [data-lemp-module="footer"] .footer-notice { grid-template-columns:64px minmax(0,1fr); column-gap:20px; }
  [data-lemp-module="footer"] .footer-notice__calendar { display:none; }
  [data-lemp-module="footer"] .footer-notice__figure { display:block; width:60px; height:100%; min-height:64px; max-height:104px; align-self:center; color:#a5242d; }
}

/* On phones, exceptions precede the regular weekly schedule. */
@media (max-width:767px) {
  [data-lemp-module="footer"] .site-footer__hours { order:1; }
}
