/* Public content helpers; WCMS layout grids and third-party booking embeds stay independent. */
#content .msf-table-scroll {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: auto;
    scrollbar-color: #456b7b #e4edf1;
}

#content .msf-table-scroll:focus-visible {
    outline: 3px solid var(--title-color, #087786);
    outline-offset: 3px;
}

#content .msf-table-scroll-hint {
    margin: 0 0 8px;
    padding: 9px 12px;
    border-left: 3px solid #456b7b;
    background: #e4edf1;
    color: #173b50;
    font: 400 14px/1.5 var(--body-font, Arial, sans-serif);
}

#content .msf-table-scroll-hint[hidden] {
    display: none;
}

#content iframe[src*="google.com/maps"],
#content iframe[src*="maps.google."] {
    box-sizing: border-box;
    display: block;
    max-width: 100%;
}

@media (max-width: 760px) {
    #content .msf-table-scroll--wide > table.table_basic {
        min-width: calc(var(--msf-table-columns) * 9rem);
    }
}

/* The legacy 320px body minimum otherwise extends beyond the body margins. */
@media (max-width: 360px) {
    body { min-width: 0; }
}

@media print {
    #content .msf-table-scroll { overflow: visible; }
    #content .msf-table-scroll--wide > table.table_basic { min-width: 0; }
    #content .msf-table-scroll-hint { display: none; }
}
