/* BIOM Hours v1.3.0 — final production frontend layout */
.biom-hours-output{width:100%;font-family:inherit;color:inherit;box-sizing:border-box}
.biom-hours-output--homepage{--bh-label-min:145px;--bh-columns-gap:34px}
.biom-hours-output--contact{--bh-label-min:130px;--bh-columns-gap:30px}
.biom-hours-weekly{width:100%;box-sizing:border-box}
.biom-hours-row{display:grid;align-items:start;box-sizing:border-box;padding:2px 0}
.biom-hours-day,.biom-hours-time{min-width:0;font:inherit;color:inherit;line-height:1.4}
.biom-hours-time{display:block;text-align:right}
.biom-hours-period-line{display:block;white-space:nowrap}
.biom-hours-period-then{display:inline-block;margin-right:5px;color:inherit;opacity:.60;font-size:.82em;font-weight:500}
.biom-hours-period{display:inline;white-space:nowrap}
.biom-hours-period--closed{font-weight:600}

/* Homepage + Contact share one schedule grid so Plan Ahead lines up with hours. */
.biom-hours-weekly--homepage{display:block!important;width:100%!important;max-width:none!important;margin-top:18px!important;font-size:16px!important;line-height:1.45!important}
.biom-hours-weekly--homepage .biom-hours-day,.biom-hours-weekly--homepage .biom-hours-time{color:#b6b6b6!important}
.biom-hours-output--homepage .biom-hours-weekly--homepage .biom-hours-row{width:100%!important;grid-template-columns:minmax(0,1fr) max-content!important;column-gap:56px!important}
.biom-hours-output--homepage .biom-hours-weekly--homepage .biom-hours-time{justify-self:end!important;text-align:right!important}
.biom-hours-weekly--contact .biom-hours-row,
.biom-hours-output--homepage .biom-hours-update__schedule-row,
.biom-hours-output--contact .biom-hours-update__schedule-row{grid-template-columns:minmax(var(--bh-label-min),1fr) auto;column-gap:var(--bh-columns-gap)}
.biom-hours-weekly--contact{display:grid;row-gap:0;font-size:13px;line-height:1.4}

/* Footer remains compact and independent of the larger-page column rhythm. */
.biom-hours-weekly--footer{margin:0;padding:0;list-style:none}
.biom-hours-weekly--footer .biom-hours-row{grid-template-columns:minmax(95px,1fr) auto;column-gap:16px;padding:2px 0}

/* Integrated Special Dates. */
.biom-hours-updates{--bh-accent:#8f3b2c;--bh-rule:rgba(87,4,29,.18);--bh-muted:rgba(35,32,32,.62);margin-top:20px;padding-top:14px;border-top:1px solid var(--bh-rule);color:inherit;font-family:inherit}
.biom-hours-output--homepage .biom-hours-updates,.biom-hours-output--footer .biom-hours-updates,.biom-hours-output--standalone .biom-hours-updates{--bh-accent:#c8a55b;--bh-rule:rgba(244,232,204,.19);--bh-muted:rgba(253,247,234,.60)}
.biom-hours-updates__heading{display:flex;align-items:center;gap:9px;margin:0 0 7px;color:var(--bh-accent);font-size:9px;font-weight:700;line-height:1.2;letter-spacing:.18em;text-transform:uppercase}
.biom-hours-updates__heading-line{display:block;width:25px;height:1px;flex:0 0 auto;background:var(--bh-accent)}
.biom-hours-updates__list{display:grid}
.biom-hours-update-groups{display:grid;gap:12px}
.biom-hours-update-group{display:grid;gap:4px}
.biom-hours-update-group + .biom-hours-update-group{padding-top:10px;border-top:1px solid var(--bh-rule)}
.biom-hours-update-group__label{margin:0;color:var(--bh-accent);font-size:9.5px;font-weight:700;line-height:1.35;letter-spacing:.10em;text-transform:uppercase}
.biom-hours-update-group__items{display:grid;gap:4px}
.biom-hours-update{padding:8px 0;border-bottom:1px solid var(--bh-rule);color:inherit}
.biom-hours-update:last-child{border-bottom:0;padding-bottom:0}
.biom-hours-update--grouped{padding:2px 0;border:0}
.biom-hours-update__meta{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin-bottom:5px;color:var(--bh-muted);font-size:9.5px;line-height:1.35;letter-spacing:.03em}
.biom-hours-update__type{color:var(--bh-accent);font-weight:700;letter-spacing:.10em;text-transform:uppercase}
.biom-hours-update__separator{margin:0 7px;color:var(--bh-muted)}
.biom-hours-update__schedule-row{display:grid;align-items:baseline}
.biom-hours-update__identity{display:flex;align-items:baseline;flex-wrap:nowrap;gap:7px;min-width:0}
.biom-hours-update__title{display:block;flex:0 0 auto;margin:0;font:inherit;font-size:13px;font-weight:600;line-height:1.4;color:inherit;white-space:nowrap}
.biom-hours-update__identity-meta{display:inline-flex;align-items:baseline;gap:6px;min-width:0;color:var(--bh-muted);white-space:nowrap}
.biom-hours-update__row-date{color:inherit;font-size:10px;line-height:1.35;white-space:nowrap}
.biom-hours-update__inline-separator{color:inherit;font-size:9.5px;line-height:1.35;opacity:.72}
.biom-hours-update__descriptor{color:inherit;font-size:9.5px;font-weight:500;line-height:1.35;white-space:nowrap}
.biom-hours-update__hours{display:block;margin:0;text-align:right;font-size:13px;font-weight:600;line-height:1.4;color:inherit;white-space:nowrap}
.biom-hours-update__hours .biom-hours-period-line{text-align:right}
.biom-hours-update__hours--closed{color:var(--bh-accent)}
.biom-hours-update__details{margin:4px 0 0;color:var(--bh-muted);font-size:12px;line-height:1.45}
.biom-hours-update--grouped .biom-hours-update__details{margin-top:2px}

/* Keep Plan Ahead's inner content aligned with the schedule above it. */
.biom-hours-output--homepage .biom-hours-updates,
.biom-hours-output--contact .biom-hours-updates{width:100%;box-sizing:border-box}
.biom-hours-output--homepage .biom-hours-updates__heading,
.biom-hours-output--contact .biom-hours-updates__heading{margin-bottom:12px}
.biom-hours-output--homepage .biom-hours-update-group__label,
.biom-hours-output--contact .biom-hours-update-group__label{margin-bottom:1px}

/* Footer Special Dates remain intentionally compressed. */
.biom-hours-output--footer .biom-hours-updates{margin-top:13px;padding-top:10px}
.biom-hours-output--footer .biom-hours-updates__heading{font-size:8px;margin-bottom:4px;gap:8px}
.biom-hours-output--footer .biom-hours-updates__heading-line{width:20px}
.biom-hours-output--footer .biom-hours-updates__list{gap:1px}
.biom-hours-output--footer .biom-hours-update--footer{padding:3px 0;border:0}
.biom-hours-footer-update{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:8px;align-items:baseline;font:inherit;font-size:.9em;line-height:1.35}
.biom-hours-footer-update__date{color:var(--bh-muted);white-space:nowrap;min-width:0}
.biom-hours-footer-update__content{min-width:0;overflow-wrap:anywhere}
.biom-hours-footer-update__title{font-weight:600;color:inherit}
.biom-hours-footer-update__separator{color:var(--bh-muted)}
.biom-hours-footer-update__summary{font-weight:600;color:inherit}
.biom-hours-footer-update__summary .biom-hours-period-line{display:inline}
.biom-hours-footer-update__summary .biom-hours-period-line--continuation:before{content:" then ";opacity:.60;font-size:.82em;font-weight:500}
.biom-hours-footer-update__summary .biom-hours-period-then{display:none}
.biom-hours-footer-update__summary--closed{color:var(--bh-accent)}

/* Tablet: keep desktop alignment while shaving just enough space. */
@media(max-width:767px){
  .biom-hours-output--homepage{--bh-label-min:118px;--bh-columns-gap:20px}
  .biom-hours-output--contact{--bh-label-min:110px;--bh-columns-gap:18px}
  .biom-hours-weekly--homepage,.biom-hours-weekly--contact{font-size:12.5px!important}
  .biom-hours-weekly--footer .biom-hours-row{grid-template-columns:minmax(90px,1fr) auto;column-gap:12px}
  .biom-hours-updates{margin-top:17px;padding-top:12px}
  .biom-hours-updates__heading{margin-bottom:6px}
  .biom-hours-update-groups{gap:10px}
  .biom-hours-update-group + .biom-hours-update-group{padding-top:9px}
  .biom-hours-update-group__items{gap:3px}
  .biom-hours-update__title,.biom-hours-update__hours{font-size:12.5px}
  .biom-hours-update__identity{gap:6px}
  .biom-hours-update__identity-meta{gap:5px}
  .biom-hours-update__row-date{font-size:9.5px}
  .biom-hours-update__descriptor{font-size:9px}
  .biom-hours-update__details{font-size:11.5px}
}

/* Mobile: deliberately stacked instead of squeezing desktop columns narrower. */
@media(max-width:560px){
  .biom-hours-weekly--homepage,.biom-hours-weekly--contact{font-size:12.5px!important}
  .biom-hours-weekly--homepage .biom-hours-row,
  .biom-hours-weekly--contact .biom-hours-row,
  .biom-hours-output--homepage .biom-hours-update__schedule-row,
  .biom-hours-output--contact .biom-hours-update__schedule-row{grid-template-columns:1fr;row-gap:0;padding:4px 0}
  .biom-hours-weekly--homepage .biom-hours-time,
  .biom-hours-weekly--contact .biom-hours-time,
  .biom-hours-output--homepage .biom-hours-update__hours,
  .biom-hours-output--contact .biom-hours-update__hours{text-align:left}
  .biom-hours-output--homepage .biom-hours-update__hours .biom-hours-period-line,
  .biom-hours-output--contact .biom-hours-update__hours .biom-hours-period-line{text-align:left}
  .biom-hours-day{font-weight:500}
  .biom-hours-time{margin-top:0}
  .biom-hours-period-then{margin-right:4px;font-size:.80em}
  .biom-hours-updates{margin-top:18px;padding-top:13px}
  .biom-hours-update-groups{gap:12px}
  .biom-hours-update-group{gap:3px}
  .biom-hours-update-group + .biom-hours-update-group{padding-top:10px}
  .biom-hours-update-group__items{gap:5px}
  .biom-hours-update--grouped{padding:3px 0}
  .biom-hours-update__identity{display:flex;flex-wrap:wrap;gap:3px 7px}
  .biom-hours-update__title{font-size:13px;white-space:nowrap}
  .biom-hours-update__identity-meta{display:inline-flex;flex-wrap:nowrap;white-space:nowrap;gap:5px}
  .biom-hours-update__row-date{font-size:9.5px}
  .biom-hours-update__descriptor{font-size:9px}
  .biom-hours-update__hours{margin-top:1px;font-size:13px}
  .biom-hours-update__details{margin-top:2px;font-size:11.5px;line-height:1.4}
  .biom-hours-weekly--footer .biom-hours-row{grid-template-columns:minmax(84px,1fr) auto;column-gap:10px}
  .biom-hours-footer-update{grid-template-columns:max-content minmax(0,1fr);column-gap:7px}
}

@media(max-width:420px){
  .biom-hours-weekly--homepage,.biom-hours-weekly--contact{font-size:12px!important}
  .biom-hours-updates__heading-line{width:20px}
  .biom-hours-update__identity{gap:2px 6px}
  .biom-hours-update__title,.biom-hours-update__hours{font-size:12.5px}
  .biom-hours-update__identity-meta{gap:4px}
  .biom-hours-update__row-date{font-size:9px}
  .biom-hours-update__descriptor{font-size:8.7px}
}


/* Opening Soon mode: restrained BIOM status treatment with an optional admin note. */
.biom-hours-opening-soon{--bh-os-accent:#8f3b2c;--bh-os-rule:rgba(87,4,29,.18);--bh-os-muted:rgba(35,32,32,.62);box-sizing:border-box;width:100%;max-width:460px;padding:13px 0 2px;border-top:1px solid var(--bh-os-rule);font:inherit;color:inherit;line-height:1.4}
.biom-hours-output--homepage .biom-hours-opening-soon,.biom-hours-output--footer .biom-hours-opening-soon{--bh-os-accent:#c8a55b;--bh-os-rule:rgba(244,232,204,.18);--bh-os-muted:rgba(253,247,234,.58)}
.biom-hours-opening-soon__status{display:flex;align-items:center;gap:7px;margin:0 0 7px;color:var(--bh-os-accent);font-size:8.5px;font-weight:700;line-height:1.2;letter-spacing:.16em;text-transform:uppercase}
.biom-hours-opening-soon__dot{display:block;width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 14%,transparent)}
@supports not (color:color-mix(in srgb,white 10%,transparent)){.biom-hours-opening-soon__dot{box-shadow:none}}
.biom-hours-opening-soon__message{display:block;margin:0;font:inherit;font-size:1.04em;font-weight:600;line-height:1.35;color:inherit}
.biom-hours-opening-soon__note{max-width:390px;margin:6px 0 0;color:var(--bh-os-muted);font:inherit;font-size:.82em;font-weight:400;line-height:1.5}
.biom-hours-output--homepage .biom-hours-opening-soon{margin-top:18px;font-size:16px;color:#b6b6b6}
.biom-hours-output--footer .biom-hours-opening-soon{margin:0;font-size:inherit}
.biom-hours-output--footer .biom-hours-opening-soon__message{font-weight:600}
.biom-hours-output--footer .biom-hours-opening-soon__note{font-size:.78em;line-height:1.45}
.biom-hours-output--contact .biom-hours-opening-soon{font-size:13px}
@media(max-width:767px){.biom-hours-output--homepage .biom-hours-opening-soon,.biom-hours-output--contact .biom-hours-opening-soon{font-size:12.5px}.biom-hours-opening-soon{padding-top:11px}.biom-hours-opening-soon__note{font-size:.88em}}
@media(max-width:420px){.biom-hours-output--homepage .biom-hours-opening-soon{font-size:12px}.biom-hours-opening-soon__status{font-size:8px}}
