/* One shared compact footer; short pages fill the available viewport naturally. */
@media(max-width:760px){
 body .footer-grid h3{font-size:.9rem}
 body .footer-grid p,body .footer-grid>div>a:not(.brand){font-size:.875rem;line-height:1.6}
 body .footer-grid>div>a:not(.brand){display:flex;align-items:center;min-height:44px;margin-block:0}
 body .footer-bottom{font-size:.8rem;gap:12px;flex-wrap:wrap}
 body .footer-bottom a{min-height:44px;display:inline-flex;align-items:center}
}
body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
body>.topbar,body>.header,body>footer{flex-shrink:0}
body>#main{flex:1 0 auto;min-width:0}
/* Let the content, not an empty main box, occupy the space above the footer. */
body>#main:not([data-rendered=booking]){display:flex;flex-direction:column}
body>#main:not([data-rendered=booking])>*{flex-shrink:0}
body>#main:not([data-rendered=booking])>:last-child{flex-grow:1;margin-bottom:0;padding-bottom:24px}
#main[data-rendered=favourites]>.section{display:flex;flex-direction:column}
#main[data-rendered=favourites] #favourites{flex:1;align-content:start}
#main[data-rendered=favourites] #favourites:has(>.empty){align-content:stretch}
#main[data-rendered=favourites] .empty{display:flex;flex-direction:column;align-items:center;justify-content:center}
#main[data-rendered=ticket]>.ticket-section{display:flex;flex-direction:column}
#main[data-rendered=ticket] .ticket-access-card{width:100%;flex:1;align-content:center}
body>footer{padding:14px 0 0}
.footer-grid{gap:24px}
.footer-grid .brand{display:flex}
.footer-grid .brand img{width:180px;height:auto}
.footer-grid h3{font-size:.8rem;margin:0 0 6px}
.footer-grid p{font-size:.75rem;line-height:1.5;margin-top:6px}
.footer-grid>div>a:not(.brand){font-size:.75rem;line-height:1.5;margin-block:3px;overflow-wrap:anywhere}
.footer-bottom{margin-top:10px;padding:8px 0;font-size:.7rem}
@media(min-width:1000px){
 body>#main[data-rendered=contact]>.content-grid{align-items:stretch;padding-block:20px 24px}
 body>#main[data-rendered=contact] .contact-card{display:flex;flex-direction:column;justify-content:space-between;gap:8px;padding-block:20px}
 body>#main[data-rendered=contact] .contact-form{align-content:stretch;grid-template-rows:auto auto auto auto minmax(100px,1fr) auto}
 body>#main[data-rendered=contact] .contact-form>label:has(textarea){display:flex;flex-direction:column;min-height:100px}
 body>#main[data-rendered=contact] .contact-form textarea{flex:1;min-height:76px;height:auto;resize:vertical}
 body>#main[data-rendered=contact] .contact-form>.button,#main[data-rendered=contact] .contact-form>.fine{align-self:end}
}
@media(max-width:760px){
 body>footer{padding-top:22px}
 .footer-grid{gap:20px}
 .footer-grid h3{font-size:.85rem}
 .footer-grid p,.footer-grid>div>a:not(.brand){font-size:.8rem}
 .footer-grid>div>a:not(.brand){margin-block:6px}
 .footer-bottom{gap:8px 18px;margin-top:18px;padding-block:12px}
}
