/* Hero-only theme tokens. A future site theme can set data-theme="dark" on html. */
.bm-scene-hero {
  --hero-ink: #102d36;
  --hero-muted: #334e56;
  --hero-accent: #0b6378;
  --hero-solid: #f5f7f4;
  --hero-surface: rgba(255,255,255,.92);
  --hero-border: rgba(13,61,73,.25);
  --hero-photo-filter: saturate(.9) brightness(1);
  --hero-scrim: linear-gradient(90deg,rgba(247,249,245,.97) 0%,rgba(247,249,245,.94) 28%,rgba(247,249,245,.86) 43%,rgba(247,249,245,.23) 68%,rgba(247,249,245,0) 100%);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--hero-solid);
  color: var(--hero-ink);
}
.bm-scene-stage, .bm-scene-scrim, .bm-panorama-track, .bm-scene { position:absolute; inset:0; pointer-events:none; }
.bm-scene-stage { z-index:0; overflow:hidden; }
.bm-scene { display:none; overflow:hidden; }
.bm-scene[data-hero-scene="vinyl"] { display:block; }
.bm-scene img { width:100%; height:100%; object-fit:cover; object-position:68% 50%; filter:var(--hero-photo-filter); }
/* All tiles move together. Only their overlapping spatial edges are feathered. */
.bm-scene-hero[data-hero-ready="true"] .bm-panorama-track {
  right:auto; bottom:auto; display:flex; width:max-content; height:100%;
  animation:bm-panorama-scroll 80s linear infinite;
  will-change:transform;
}
.bm-scene-hero[data-hero-ready="true"] .bm-scene {
  position:relative; inset:auto; display:block; height:100%;
  flex:0 0 var(--hero-tile-width); width:var(--hero-tile-width);
  margin-left:calc(-1 * var(--hero-overlap));
  -webkit-mask-image:linear-gradient(to right,transparent 0,black var(--hero-overlap),black 100%);
  mask-image:linear-gradient(to right,transparent 0,black var(--hero-overlap),black 100%);
}
.bm-scene-hero[data-hero-ready="true"] .bm-scene:first-child { margin-left:0; }
.bm-scene-hero[data-hero-paused="true"] .bm-panorama-track { animation-play-state:paused; }
.bm-scene-scrim { z-index:2; background:var(--hero-scrim); }
.bm-scene-content { position:relative; z-index:3; width:100%; max-width:80rem; margin:auto; padding:3.5rem 2rem 1.7rem; min-height:560px; display:flex; flex-direction:column; justify-content:center; gap:2.8rem; }
.bm-scene-copy { width:min(100%,40rem); }
.bm-scene-copy h1 { margin:0; font-size:clamp(2.2rem,3.75vw,3.7rem); font-weight:900; line-height:1.14; letter-spacing:-.035em; text-wrap:balance; }
.bm-scene-accent { color:var(--hero-accent); }
.bm-scene-description { color:var(--hero-muted); font-size:clamp(.94rem,1.2vw,1.08rem); line-height:1.75; margin:1.35rem 0 1.65rem; max-width:34rem; }
.bm-scene-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem; max-width:36rem; }
.bm-scene-actions > a { min-height:46px; }
.bm-scene-actions .btn-primary { background:#0d718a!important; border-color:#0d718a!important; }
.bm-scene-actions .bm-outline { background:var(--hero-surface); color:var(--hero-ink)!important; border-color:var(--hero-border); }
.bm-scene-actions .bm-outline svg { color:var(--hero-accent); }
.bm-scene-explore { display:inline-flex; align-items:center; flex-basis:100%; width:fit-content; color:var(--hero-muted); text-decoration:underline; text-underline-offset:5px; font-size:.85rem; font-weight:650; }
.bm-scene-actions a:focus-visible { outline:3px solid var(--hero-accent); outline-offset:4px; }
.bm-home-locations { padding:1.5rem 1rem 2.5rem; background:#f8fafc; }
@keyframes bm-panorama-scroll {
  from { transform:translate3d(var(--hero-start-x),0,0); }
  to { transform:translate3d(var(--hero-end-x),0,0); }
}

/* Explicit opt-in only: no automatic system-dark mode until the whole site supports it. */
:is([data-theme="dark"], [data-color-mode="dark"]) .bm-scene-hero,
.bm-scene-hero[data-theme="dark"] {
  --hero-ink:#edf6f5;
  --hero-muted:#d0dfdf;
  --hero-accent:#8bd6e4;
  --hero-solid:#091c24;
  --hero-surface:rgba(9,28,36,.92);
  --hero-border:rgba(207,235,238,.3);
  --hero-photo-filter:saturate(.8) brightness(.68);
  --hero-scrim:linear-gradient(90deg,rgba(7,24,32,.98) 0%,rgba(7,24,32,.95) 28%,rgba(7,24,32,.88) 43%,rgba(7,24,32,.28) 68%,rgba(7,24,32,.12) 100%);
}
@media (max-width:767px) {
  .bm-scene-hero { --hero-scrim:linear-gradient(180deg,rgba(247,249,245,.97) 0%,rgba(247,249,245,.96) 22%,rgba(247,249,245,.88) 47%,rgba(247,249,245,.34) 68%,rgba(247,249,245,.08) 100%); }
  .bm-scene-content { padding:2rem 1.2rem 1.2rem; min-height:650px; gap:2rem; justify-content:space-between; }
  .bm-scene-copy h1 { font-size:clamp(1.9rem,7.5vw,2.7rem); line-height:1.16; }
  .bm-scene-description { font-size:.9rem; line-height:1.65; margin:1rem 0 1.2rem; }
  .bm-scene-actions { gap:.55rem; }
  .bm-scene-actions .btn { font-size:.8rem; padding-left:.8rem; padding-right:.8rem; width:auto; flex:1 1 auto; }
  .bm-scene-explore { min-height:36px!important; font-size:.8rem; }
  .bm-scene img { object-position:68% 50%; }
  :is([data-theme="dark"], [data-color-mode="dark"]) .bm-scene-hero,
  .bm-scene-hero[data-theme="dark"] { --hero-scrim:linear-gradient(180deg,rgba(7,24,32,.98) 0%,rgba(7,24,32,.96) 22%,rgba(7,24,32,.88) 47%,rgba(7,24,32,.38) 68%,rgba(7,24,32,.16) 100%); }
}
@media (max-width:359px) { .bm-scene-content { padding-inline:1rem; } }
@media (prefers-reduced-motion:reduce) { .bm-panorama-track { animation-play-state:paused!important; } }
