.sbg-page { background: var(--c-cream, #f5efe5); color: var(--c-ink, #25211e); }
.sbg-page img { display: block; max-width: 100%; }
.sbg-page em { color: var(--c-accent, #9f5f52); font-weight: 400; }
.sbg-hub-hero { min-height: min(900px, 92vh); position: relative; display: grid; align-items: end; color: #fff; isolation: isolate; }
.sbg-hub-hero__media,.sbg-detail-hero__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.sbg-hub-hero__media img,.sbg-detail-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.sbg-hub-hero::after,.sbg-detail-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgba(20,17,14,.08) 25%,rgba(20,17,14,.76) 100%); }
.sbg-hub-hero__inner { padding-block: clamp(150px,22vh,240px) clamp(64px,9vw,120px); }
.sbg-hub-hero h1,.sbg-collection-hero h1,.sbg-detail-hero h1 { margin: 16px 0 24px; font: 400 clamp(3.4rem,8.4vw,8.2rem)/.88 var(--f-display,var(--f-serif)); letter-spacing: -.045em; }
.sbg-hub-hero h1,.sbg-detail-hero h1 { color: #fff; }
.sbg-hub-hero .overline,.sbg-detail-hero .overline { color: rgba(255,255,255,.76); }
.sbg-hub-hero h1 em,.sbg-collection-hero h1 em,.sbg-detail-hero h1 em { color: inherit; font-style: italic; }
.sbg-hub-hero__inner>p:last-of-type { max-width: 650px; font: 400 clamp(1.08rem,1.7vw,1.35rem)/1.6 var(--f-serif); }
.sbg-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.sbg-jump { position: sticky; top: 0; z-index: 12; display: flex; justify-content: center; gap: clamp(20px,5vw,72px); padding: 18px 24px; background: rgba(247,242,233,.94); border-bottom: 1px solid rgba(50,43,38,.14); backdrop-filter: blur(14px); }
.sbg-jump a { color: inherit; text-decoration: none; font: 500 .71rem/1 var(--f-sans); letter-spacing: .16em; text-transform: uppercase; }
.sbg-section-head { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(280px,.65fr); gap: clamp(40px,8vw,120px); align-items: end; margin-bottom: clamp(54px,8vw,110px); }
.sbg-section-head h2,.sbg-detail-intro h2,.sbg-film h2,.sbg-close h2 { margin: 18px 0 0; font: 400 clamp(2.8rem,5.8vw,6rem)/.98 var(--f-display,var(--f-serif)); letter-spacing: -.035em; }
.sbg-section-head>div:last-child p { color: var(--c-muted); font: 400 1.08rem/1.75 var(--f-serif); }
.sbg-text-link { display: inline-flex; gap: 9px; align-items: center; color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 4px; font: 500 .72rem/1.2 var(--f-sans); letter-spacing: .12em; text-transform: uppercase; }
.sbg-card-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(54px,8vw,120px) clamp(20px,4vw,58px); }
.sbg-card:nth-child(even) { margin-top: clamp(30px,7vw,100px); }
.sbg-card__media { position: relative; display: block; aspect-ratio: 4/5; overflow: hidden; background: #ddd4c8; }
.sbg-card--tall .sbg-card__media { aspect-ratio: 3/4; }
.sbg-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.sbg-card__media:hover img { transform: scale(1.025); }
.sbg-card__count { position: absolute; right: 16px; bottom: 16px; padding: 8px 11px; background: rgba(25,21,18,.72); color: #fff; font: 500 .64rem/1 var(--f-sans); letter-spacing: .1em; text-transform: uppercase; backdrop-filter: blur(9px); }
.sbg-card__body { padding-top: 22px; }
.sbg-card__body>p { margin: 0 0 8px; color: var(--c-muted); font: 500 .66rem/1.4 var(--f-sans); letter-spacing: .13em; text-transform: uppercase; }
.sbg-card__body h3 { margin: 0 0 18px; font: 400 clamp(2rem,3.5vw,3.35rem)/1 var(--f-display,var(--f-serif)); }
.sbg-card__body h3 a { color: inherit; text-decoration: none; }
.sbg-path-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(20px,4vw,58px); }
.sbg-path-card { position: relative; min-height: clamp(390px,50vw,650px); display: grid; align-items: end; isolation: isolate; overflow: hidden; color: #fff; text-decoration: none; }
.sbg-path-card__media { position: absolute; inset: 0; z-index: -2; }
.sbg-path-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.sbg-path-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgba(20,17,14,.04) 25%,rgba(20,17,14,.78) 100%); }
.sbg-path-card:hover .sbg-path-card__media img { transform: scale(1.025); }
.sbg-path-card__body { padding: clamp(24px,4vw,50px); }
.sbg-path-card__body p { margin: 0 0 10px; font: 500 .67rem/1.4 var(--f-sans); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.sbg-path-card__body h3 { margin: 0 0 18px; font: 400 clamp(2.2rem,4vw,4.2rem)/.98 var(--f-display,var(--f-serif)); color: #fff; }
.sbg-path-card__body span { font: 500 .7rem/1.2 var(--f-sans); letter-spacing: .12em; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: 4px; }
.sbg-film { color: rgba(255,255,255,.85); }
.sbg-film__grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(380px,1.2fr); gap: clamp(50px,9vw,140px); align-items: center; }
.sbg-film h2 em { color: #d5a599; }
.sbg-film p:not(.overline) { max-width: 560px; font: 400 1.08rem/1.75 var(--f-serif); color: rgba(255,255,255,.68); }
.sbg-film__images { display: grid; grid-template-columns: 1fr .78fr; gap: clamp(10px,2vw,24px); align-items: end; }
.sbg-film__images img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.sbg-film__images img+img { aspect-ratio: 3/4; transform: translateY(9%); }
.sbg-close { text-align: center; }
.sbg-close .container { max-width: 830px; }
.sbg-close p:not(.eyebrow-rule,.overline) { max-width: 620px; margin: 24px auto 30px; font: 400 1.08rem/1.7 var(--f-serif); color: var(--c-muted); }
.sbg-close .btn+.btn { margin-left: 10px; }
/* Venue gallery hubs: one visual family with location-specific editorial rhythm. */
.vg-hero__jump { display: inline-block; margin-top: 24px; padding-bottom: 5px; color: #fff; border-bottom: 1px solid rgba(255,255,255,.62); font: 500 .68rem/1.2 var(--f-sans); letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.vg-notes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; padding: 1px; background: rgba(34,29,25,.13); }
.vg-notes p { min-height: 150px; margin: 0; padding: clamp(28px,4vw,52px); background: var(--c-bone,#f4efe7); color: var(--c-muted); font: 400 1rem/1.65 var(--f-serif); }
.vg-notes p span { display: block; margin-bottom: 16px; color: var(--c-ink); font: 500 .64rem/1.2 var(--f-sans); letter-spacing: .14em; text-transform: uppercase; }
.vg-hub--beverly-hills .vg-hero { min-height: min(820px,86vh); }
.vg-hub--beverly-hills .vg-hero::after { background: linear-gradient(180deg,rgba(25,21,18,.13) 15%,rgba(25,21,18,.82) 100%); }
.vg-hub--southern-california .vg-hero__inner { max-width: 1050px; }
.vg-hub--southern-california .vg-collection { background: #f7f3ed; }
.vg-region-jumps { display: flex; flex-wrap: wrap; gap: 10px 15px; margin: 0 0 clamp(52px,8vw,100px); padding: 20px 0; border-block: 1px solid rgba(34,29,25,.17); }
.vg-region-jumps a { color: var(--c-ink); font: 500 .68rem/1.3 var(--f-sans); letter-spacing: .11em; text-decoration: none; text-transform: uppercase; }
.vg-region-jumps span { color: var(--c-muted); }
.vg-region { scroll-margin-top: 100px; }
.vg-region + .vg-region { margin-top: clamp(84px,12vw,160px); }
.vg-region__head { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 30px; padding-bottom: 15px; border-bottom: 1px solid rgba(34,29,25,.17); }
.vg-region__head p { margin: 0; font: 400 clamp(2rem,4vw,3.8rem)/1 var(--f-display,var(--f-serif)); }
.vg-region__head span { color: var(--c-muted); font: 500 .64rem/1.2 var(--f-sans); letter-spacing: .12em; text-transform: uppercase; }
.vg-rest { padding: clamp(70px,10vw,130px) 0; background: var(--c-bone,#f4efe7); border-top: 1px solid rgba(34,29,25,.13); }
.vg-rest .overline { margin: 0 0 28px; color: var(--c-muted); }
.vg-rest nav { border-top: 1px solid rgba(34,29,25,.2); }
.vg-rest a { display: flex; justify-content: space-between; gap: 24px; padding: 20px 0; border-bottom: 1px solid rgba(34,29,25,.2); color: var(--c-ink); font: 400 clamp(1.35rem,2.5vw,2.25rem)/1.2 var(--f-display,var(--f-serif)); text-decoration: none; }
.vg-rest a span:last-child { color: var(--c-muted); font-family: var(--f-sans); font-size: .8rem; }
.sbg-collection-hero { padding: clamp(170px,20vw,260px) 0 clamp(70px,10vw,140px); background: var(--c-bone,#e9dfd1); }
.sbg-collection-hero .container { max-width: 950px; margin-left: max(0px,calc((100vw - 1320px)/2)); }
.sbg-collection-hero>div>p { max-width: 620px; font: 400 1.1rem/1.7 var(--f-serif); color: var(--c-muted); }
.sbg-detail-hero { min-height: min(850px,90vh); position: relative; display: grid; align-items: end; color: #fff; isolation: isolate; }
.sbg-detail-hero__inner { padding-block: clamp(160px,22vh,240px) clamp(48px,7vw,90px); text-align: center; }
.sbg-detail-hero h1 { font-size: clamp(4rem,9vw,9.5rem); }
.sbg-detail-hero__inner>p:last-child { font: 500 .72rem/1.4 var(--f-sans); letter-spacing: .15em; text-transform: uppercase; }
.sbg-detail-intro>.container { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.72fr); gap: clamp(50px,9vw,140px); align-items: end; }
.sbg-detail-intro p { font: 400 1.1rem/1.8 var(--f-serif); color: var(--c-muted); }
.sbg-section-nav { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.sbg-section-nav a { padding: 9px 12px; border: 1px solid rgba(40,34,30,.18); color: inherit; text-decoration: none; font: 500 .64rem/1 var(--f-sans); letter-spacing: .08em; text-transform: uppercase; }
.sbg-section-nav span { opacity: .55; margin-left: 5px; }
.sbg-gallery-section+.sbg-gallery-section { margin-top: clamp(80px,11vw,150px); }
.sbg-gallery-section__head { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 28px; border-bottom: 1px solid rgba(40,34,30,.16); padding-bottom: 16px; }
.sbg-gallery-section__head h2 { margin: 0; font: 400 clamp(2rem,3.4vw,3.8rem)/1 var(--f-display,var(--f-serif)); }
.sbg-gallery-section__head span { font: 500 .64rem/1 var(--f-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.sbg-masonry { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); grid-auto-flow: row dense; grid-auto-rows: 8px; gap: clamp(8px,1.2vw,18px); align-items: start; }
.sbg-photo { appearance: none; align-self: start; width: 100%; margin: 0; padding: 0; border: 0; background: #ddd4c8 center / cover no-repeat; cursor: zoom-in; overflow: hidden; }
.sbg-photo img { display: block; width: 100%; height: auto; opacity: 0; transition: opacity .2s ease, transform .55s ease; }
.sbg-photo img.is-loaded { opacity: 1; }
.sbg-photo:hover img { transform: scale(1.012); }
.sbg-gallery-more { display: grid; justify-items: center; gap: 14px; margin-top: 30px; }
.sbg-gallery-more p { margin: 0; color: var(--c-muted); font: 500 .65rem/1 var(--f-sans); letter-spacing: .1em; text-transform: uppercase; }
.sbg-gallery-more .btn { min-width: 168px; justify-content: center; letter-spacing: .12em; }
.sbg-gallery-loading { text-align: center; font: italic 1.2rem/1.5 var(--f-serif); color: var(--c-muted); }
.sbg-lightbox { position: fixed; inset: 0; z-index: 200; display: grid; grid-template-columns: 64px minmax(0,1fr) 64px; align-items: center; background: rgba(15,13,12,.96); color: #fff; padding: 60px 18px 24px; }
.sbg-lightbox[hidden] { display: none; }
.sbg-lightbox figure { display: grid; justify-items: center; gap: 12px; margin: 0; min-width: 0; }
.sbg-lightbox img { max-width: 100%; max-height: calc(100vh - 110px); object-fit: contain; }
.sbg-lightbox figcaption { font: 500 .65rem/1 var(--f-sans); letter-spacing: .1em; text-transform: uppercase; opacity: .65; }
.sbg-lightbox button { border: 0; background: transparent; color: #fff; font-size: 1.8rem; cursor: pointer; }
.sbg-lightbox__close { position: absolute; top: 16px; right: 20px; width: 44px; height: 44px; }
@media (max-width: 880px) {
  .sbg-section-head,.sbg-film__grid,.sbg-detail-intro>.container { grid-template-columns: 1fr; }
  .sbg-film__images { max-width: 640px; }
  .sbg-masonry { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .sbg-jump { justify-content: flex-start; overflow-x: auto; }
  .sbg-card-grid { grid-template-columns: 1fr; }
  .sbg-path-grid { grid-template-columns: 1fr; }
  .sbg-card:nth-child(even) { margin-top: 0; }
  .sbg-hub-hero { min-height: 82vh; }
  .sbg-hub-hero h1,.sbg-collection-hero h1 { font-size: clamp(3.1rem,16vw,5.2rem); }
  .sbg-masonry { grid-template-columns: 1fr; }
  .sbg-lightbox { grid-template-columns: 42px minmax(0,1fr) 42px; padding-inline: 4px; }
  .sbg-close .btn { display: flex; margin: 10px auto 0 !important; width: fit-content; }
  .vg-notes { grid-template-columns: 1fr; }
  .vg-notes p { min-height: 0; }
  .vg-region__head { align-items: flex-end; }
}
@media (prefers-reduced-motion: reduce) {
  .sbg-card__media img,.sbg-photo img { transition: none; }
}
