/* Coordinated business shell. Geometry is shared; palette follows the project theme. */
body.app-shell-header--center-split-logo-topbar { --app-header-composition-layout-height:186px; }
#header.app-business-header--solid .header-body { background:var(--app-color-header-bg, #212529); }
#header.app-business-header--no-topbar { --app-header-composition-layout-height:122px; }
body.app-shell-page-header-overlap.app-shell-header--center-split-logo-topbar.app-shell-header--without-topbar { --app-page-header-shell-offset:7.625rem; }
#header.app-business-header .header-nav-main nav > ul > li > a { color:var(--app-color-header-text, #fff); }
#header.app-business-header .header-nav-main nav > ul > li > a:hover,
#header.app-business-header .header-nav-main nav > ul > li > a:focus-visible { color:var(--primary); }
/* Raise the dropdown's ancestor, not only the menu trapped within that stacking context. */
#header.app-business-header .app-header-composition__topbar:has(.business-hours-menu.show),
#header.app-business-header .app-header-composition__topbar:focus-within { z-index:2; }
#header.app-business-header .header-nav-main nav > ul > li > a[aria-current="page"] { color:var(--primary); text-decoration:none; }
#header.app-business-header .business-hours-summary { display:inline-flex; align-items:center; gap:.5rem; border:0; background:transparent; color:inherit; font:inherit; font-size:1.125rem; padding:0; white-space:nowrap; }
#header.app-business-header .business-hours-summary::after { display:none; }
#header.app-business-header .business-hours-summary:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
#header.app-business-header .business-hours-menu { min-width:25rem; max-width:calc(100vw - 2rem); padding:1rem; color:var(--app-color-text, #fff); background:var(--app-color-header-bg, #212529); border:1px solid var(--app-color-border, #555); }
#header.app-business-header .business-hours-menu table { width:100%; font-size:.8125rem; }
#header.app-business-header .business-hours-menu caption { caption-side:top; color:inherit; font-weight:600; }
#header.app-business-header .business-hours-menu th,
#header.app-business-header .business-hours-menu td { padding:.4rem; text-align:left; white-space:nowrap; }
#header.app-business-header .business-hours-menu [aria-current="date"] { font-weight:700; background:var(--app-color-surface-alt, #333); }
#footer.feature-footer-contact-rails { color:var(--app-color-footer-muted, #ccc); background:var(--app-color-footer, #101010) !important; }
#footer.feature-footer-contact-rails .feature-footer-contact-rails__brand-link { display:inline-flex; }
#footer.feature-footer-contact-rails .feature-footer-contact-rails__logo { display:block; width:152px; height:152px; object-fit:contain; }
#footer.feature-footer-contact-rails .feature-footer-contact-rails__contact { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; align-items:center; padding-bottom:1.5rem; border-bottom:1px solid var(--light-rgba-20, #ffffff33); }
#footer.feature-footer-contact-rails .feature-footer-contact-rails__contact > a,
#footer.feature-footer-contact-rails .feature-footer-contact-rails__hours { display:flex; align-items:center; gap:.75rem; min-width:0; color:inherit; text-decoration:none; }
#footer.feature-footer-contact-rails .feature-footer-contact-rails__contact i { font-size:1.75rem; flex-shrink:0; }
#footer.feature-footer-contact-rails .feature-footer-contact-rails__contact small { color:var(--app-color-footer-muted, #ccc); display:block; font-size:.6875rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
#footer.feature-footer-contact-rails .feature-footer-contact-rails__value { color:var(--light, #fff); display:block; font-size:.875rem; overflow-wrap:anywhere; }
#footer.feature-footer-contact-rails .feature-footer-contact-rails__status { font-weight:700; }
#footer.feature-footer-contact-rails .feature-footer-contact-rails__nav ul { display:flex; flex-wrap:wrap; gap:1rem 1.5rem; margin:1.5rem 0 0; padding:0; list-style:none; }
#footer.feature-footer-contact-rails .feature-footer-contact-rails__nav a { color:var(--light, #fff); text-decoration:none; }
#footer.feature-footer-contact-rails .feature-footer-contact-rails__contact > a:hover .feature-footer-contact-rails__value,
#footer.feature-footer-contact-rails .feature-footer-contact-rails__contact > a:focus-visible .feature-footer-contact-rails__value,
#footer.feature-footer-contact-rails a:hover,
#footer.feature-footer-contact-rails a:focus-visible { color:var(--primary); }
#footer.feature-footer-contact-rails .footer-copyright { background:var(--app-color-footer-copyright, var(--app-color-footer, #101010)); }
@media(max-width:991px) {
 body.app-shell-header--center-split-logo-topbar { --app-header-composition-layout-height:134px; }
 #header.app-business-header--no-topbar { --app-header-composition-layout-height:78px; }
 body.app-shell-page-header-overlap.app-shell-header--center-split-logo-topbar.app-shell-header--without-topbar { --app-page-header-shell-offset:4.875rem; }
 #footer.feature-footer-contact-rails .feature-footer-contact-rails__brand { text-align:center; }
}
@media(max-width:575px) {
 body.app-shell-header--center-split-logo-topbar { --app-header-composition-layout-height:78px; }
 #header.app-business-header .business-hours-menu { min-width:0; width:calc(100vw - 2rem); overflow-x:auto; }
 #footer.feature-footer-contact-rails .feature-footer-contact-rails__contact { grid-template-columns:1fr; }
}

#header.app-business-header .app-business-header__hours{display:flex;align-items:center;gap:1rem}
#header.app-business-header .app-business-header__hours > i{font-size:1.75rem}
#header.app-business-header .app-business-header__hours-label{display:block;font-size:.75rem;line-height:1.2}

#header.app-business-header .business-hours-summary strong{color:var(--primary)}

@media(min-width:992px) {
 #header.app-business-header #mainNav{column-gap:clamp(.1rem,.55vw,.55rem)}
 #header.app-business-header #mainNav > .app-header-composition__nav-item--left{margin-left:0}
}

/* Optional brand-above layout reuses the centered shell's navigation and More menu. */
#header.app-business-header--brand-above { --app-header-composition-layout-height:auto; }
#header.app-business-header--brand-above .app-business-header__brand-row { display:flex; justify-content:center; padding:1.5rem 1rem; }
@media (min-width:992px) { #header.app-business-header--brand-row-mobile-only .app-business-header__brand-row { display:none; } }
#header.app-business-header--brand-above .app-brand { color:var(--app-color-header-text, var(--primary)); text-decoration:none; }
#header.app-business-header--brand-above .app-brand__name { font-family:var(--mp-heading-font, var(--app-font-display, inherit)); font-size:var(--app-brand-display-size,3.125rem); line-height:1.1; }
#header.app-business-header--brand-above .app-brand__logo { width:auto; max-width:min(70vw,22rem); max-height:5rem; object-fit:contain; }
#header.app-business-header--brand-above .app-header-composition__nav-tier { height:auto; min-height:5rem; border-top:1px solid var(--app-color-border,#ddd); }
#header.app-business-header--brand-above .app-header-composition__nav-column { flex:1; }
#header.app-business-header--brand-above .app-header-composition__nav-column > .header-row { width:100%; justify-content:center; }
#header.app-business-header--brand-above #mainNav { display:flex; justify-content:center; flex-wrap:nowrap; gap:clamp(.25rem,1vw,1rem); }
#header.app-business-header--brand-above #mainNav > .app-header-composition__nav-item { flex:0 0 auto; margin:0; }
#header.app-business-header--brand-above #mainNav > li > a { letter-spacing:.15em; font-weight:400; }
@media(max-width:991px) {
 #header.app-business-header--brand-above .app-business-header__brand-row { justify-content:flex-start; padding:1rem 4.5rem 1rem 1rem; }
 #header.app-business-header--brand-above .app-brand__name { font-size:clamp(1.6rem,7vw,2.5rem); }
 #header.app-business-header--brand-above .app-header-composition__nav-tier { min-height:0; border:0; }
 #header.app-business-header--brand-above .app-header-composition__menu-toggle { position:absolute; right:1rem; top:1rem; margin:0; }
 #header.app-business-header--brand-above #mainNav { display:block; }
}

/* Opt-in full-screen mobile menu (shell header option mobileMenu: fullscreen). */
@media (max-width:991px) {
 #header.app-header--mobile-fullscreen .header-body { overflow:visible; }
 #header.app-header--mobile-fullscreen .header-nav-main { position:static; transform:none; transition:none; }
 #header.app-header--mobile-fullscreen .header-nav-main nav.collapse.show,
 #header.app-header--mobile-fullscreen .header-nav-main nav.collapsing { position:fixed; inset:0; z-index:1040; display:flex; flex-direction:column; align-items:center; justify-content:center; width:100vw; height:100vh !important; height:100dvh !important; max-height:none !important; margin:0; padding:5rem 1.5rem 3rem; overflow-y:auto; background:var(--app-color-header-background,#fff); transition:none; }
 #header.app-header--mobile-fullscreen .header-nav-main nav.collapsing { opacity:0; }
 #header.app-header--mobile-fullscreen .header-nav-main nav.collapse.show #mainNav { display:flex; flex-direction:column; align-items:center; gap:1.5rem; width:100%; margin:0; padding:0; text-align:center; }
 #header.app-header--mobile-fullscreen .header-nav-main nav.collapse.show #mainNav > li > a { display:block; padding:.5rem 1rem; font-size:1.75rem; line-height:1.3; letter-spacing:.1em; text-align:center; border:0; color:var(--primary); }
 #header.app-header--mobile-fullscreen .header-nav-main nav.collapse.show #mainNav > li > a.active { color:var(--primary-inverse,#fff); }
 #header.app-header--mobile-fullscreen .app-header-composition__menu-toggle { position:fixed; top:.75rem; right:.75rem; z-index:1050; margin:0; box-shadow:0 0 0 2px #fff, 0 2px 10px rgba(0,0,0,.35); }
 #header.app-header--mobile-fullscreen .app-header-composition__menu-toggle[aria-expanded="true"] { top:1rem; right:1rem; }
 #header.app-header--mobile-fullscreen .app-header-composition__menu-toggle[aria-expanded="true"] i::before { content:"\f00d"; }
 html.app-mobile-menu-open, html.app-mobile-menu-open body { overflow:hidden; }
}

/* Full-screen mobile menu: the toggle is fixed, so collapse the empty navigation strip and keep subpage title and breadcrumbs on one row. */
@media (max-width:991px) {
 #header.app-header--mobile-fullscreen .app-header-composition__nav-tier,
 #header.app-header--mobile-fullscreen .app-header-composition__nav-tier .header-row,
 #header.app-header--mobile-fullscreen .app-header-composition__nav-tier .header-column,
 #header.app-header--mobile-fullscreen .app-header-composition__nav-tier .header-nav { height:0; min-height:0; }
}
@media (max-width:767.98px) {
 body:has(#header.app-header--mobile-fullscreen) .app-page-header .row { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; column-gap:1rem; }
 body:has(#header.app-header--mobile-fullscreen) .app-page-header .row { margin-inline:0; column-gap:.75rem; }
 body:has(#header.app-header--mobile-fullscreen) .app-page-header .row > [class*="col-"] { flex:0 1 auto; width:auto; max-width:100%; padding-inline:0; }
 body:has(#header.app-header--mobile-fullscreen) .app-page-header .row > .order-2 { order:1 !important; }
 body:has(#header.app-header--mobile-fullscreen) .app-page-header .row > .order-1 { order:2 !important; margin-left:auto; }
 body:has(#header.app-header--mobile-fullscreen) .app-page-header .breadcrumb { text-align:right; white-space:nowrap; }
}
