/* v6n10: bounded media frames. Heroes, films and brand graphics are intentionally excluded. */
:is(.p-index,.p-dept,.p-jewelry,.p-story){--photo-gap:12px;--photo-radius:16px;--photo-product:176px;--photo-scene:640px}
/* Media, not headings, controls section height. Undo the accidental sticky/sidebar gallery. */
:is(.p-dept,.p-jewelry,.flap) .grp{display:block;min-width:0}
:is(.p-dept,.p-jewelry,.flap) .grp-head{position:static;max-width:62ch}
:is(.p-dept,.p-jewelry,.flap) .grp>.items,
:is(.p-dept,.p-jewelry,.flap) .grp>div{min-width:0;max-width:100%}
:is(.p-dept,.p-jewelry,.flap) .grp .items{grid-template-columns:minmax(0,1fr)}
/* One restrained portrait system. A partial next card signals horizontal navigation. */
.ph-strip,.v6n8-arrivals-photos .ph-strip{display:flex;gap:var(--photo-gap);max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scroll-padding-inline:2px;padding:2px 2px 12px;margin:0 0 20px;align-items:start;scrollbar-width:thin}
.ph-strip>figure,.v6n8-arrivals-photos .ph-strip>figure{flex:0 0 var(--photo-product);width:var(--photo-product);max-width:var(--photo-product);aspect-ratio:4/5;min-width:0;margin:0;align-self:start;border-radius:var(--photo-radius);background:#e9dfcf;overflow:hidden;position:relative;scroll-snap-align:start}
.ph-strip>figure>picture{position:absolute;inset:0;display:block;width:100%;height:100%;aspect-ratio:4/5}
.ph-strip img,:is(.p-dept,.flap) .ph-strip img,.v6n8-arrivals-photos .ph-strip img{display:block;width:100%;height:100%;aspect-ratio:4/5;object-fit:contain;object-position:var(--photo-focus,50% 50%)}
/* Keep existing compact square details square, with the same bounded card size. */
.ph-strip>figure.photo-square{aspect-ratio:1}.ph-strip>figure.photo-square>picture,.ph-strip>figure.photo-square img{aspect-ratio:1}
.dept-ph{gap:var(--photo-gap)}.dept-ph figure{flex-basis:160px;max-width:160px;border-radius:var(--photo-radius)}
/* Scene frames and captions share an edge; nested story rails stay with their lead. */
.ch figure:has(>picture),.v6f-break figure,.flap .fl-fig:has(>picture),.v6n8-trending figure{max-width:var(--photo-scene);width:100%;border-radius:var(--photo-radius);margin-inline:auto}
.ch figure>picture,.v6f-break>picture,.v6f-break figure>picture,.flap .fl-fig>picture,.v6n8-trending figure>picture{display:block;position:relative;aspect-ratio:3/2;height:auto;max-height:none;overflow:hidden;border-radius:var(--photo-radius)}
.ch figure>picture img,.v6f-break img,.flap .fl-fig>picture img,.v6n8-trending figure>picture img{display:block;position:static;width:100%;height:100%;aspect-ratio:3/2;max-height:none;object-fit:cover;object-position:var(--photo-focus,50% 50%)}
.alhamra-store-strip{gap:var(--photo-gap)}.alhamra-store-strip figure,.alhamra-store-strip figure:only-child{flex-basis:min(76vw,320px);max-width:320px;aspect-ratio:3/2;border-radius:var(--photo-radius)}
.alhamra-store-strip figure>picture,.alhamra-store-strip img{aspect-ratio:3/2}
.ch figcaption,.grp figcaption,.v6n8-trending figcaption{line-height:1.5;padding-top:8px}
/* Anchor/focus landing space and an actual end spacer; a fixed dock can still overlay mid-scroll pixels. */
:is(.p-index,.p-dept,.p-jewelry,.p-story) main{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
:is(.grp,.ch,.ph-strip,.dept-ph,.alhamra-store-strip),.items>li{scroll-margin-top:calc(var(--hdr-real,var(--hdr,100px)) + 100px);scroll-margin-bottom:100px}
@media(min-width:600px){
 :is(.p-index,.p-dept,.p-jewelry,.p-story){--photo-product:224px;--photo-gap:16px}
 .ph-strip,.v6n8-arrivals-photos .ph-strip{display:grid;grid-template-columns:repeat(3,minmax(0,224px));justify-content:start;overflow:visible;scroll-snap-type:none}
 .ph-strip>figure,.v6n8-arrivals-photos .ph-strip>figure{width:100%;max-width:224px;flex:none}
 :is(.p-dept,.p-jewelry,.flap) .grp .items{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
}
@media(min-width:1000px){
 :is(.p-index,.p-dept,.p-jewelry,.p-story){--photo-product:240px}
 .ph-strip,.v6n8-arrivals-photos .ph-strip{grid-template-columns:repeat(4,minmax(0,240px));max-width:1008px}
 .ph-strip>figure,.v6n8-arrivals-photos .ph-strip>figure{max-width:240px}
 .ch>.alhamra-store-strip{grid-column:2;justify-self:stretch}
}
/* Allow real text wrapping at the 260px effective viewport of 150% zoom. */
:is(.p-index,.p-dept,.p-jewelry,.p-story) footer{overflow-wrap:anywhere}
:is(.p-index,.p-dept,.p-jewelry,.p-story) .soc{flex-wrap:wrap}
/* No-JS stays in flow; an enhanced dock yields instead of obscuring content. */
html:not(.photo-dock-ready) .dock{position:static;left:auto;bottom:auto;transform:none;margin:16px auto;width:min(470px,calc(100% - 24px))}
.photo-dock-covering .dock:not(:focus-within){visibility:hidden;pointer-events:none}

/* QA: wrapped flex rows avoid WebKit's stale aspect-ratio grid row cache. */
@media(min-width:600px){
 .ph-strip,.v6n8-arrivals-photos .ph-strip{display:flex;flex-wrap:wrap}
 .ph-strip>figure,.v6n8-arrivals-photos .ph-strip>figure{flex:0 0 calc((100% - 32px)/3);width:auto;max-width:224px}
}
@media(min-width:1000px){
 .ph-strip>figure,.v6n8-arrivals-photos .ph-strip>figure{flex-basis:calc((100% - 48px)/4);max-width:240px}
}
.vrows dd{min-width:0;overflow-wrap:anywhere}.vrows a{max-width:100%;white-space:normal;overflow-wrap:anywhere}
@media(max-width:359px){.vrows>div{grid-template-columns:minmax(0,1fr);gap:4px}}
/* Nested rails must contribute their column width, never their total scroll width. */
.occ-panel>*,.fam-txt,.fair>div{min-width:0}
/* Scene selectors must not turn nested product pictures into landscape boxes. */
.ph-strip>figure>picture{position:absolute;inset:0;height:100%;aspect-ratio:4/5}
.ph-strip>figure>picture>img{height:100%;aspect-ratio:4/5;object-fit:contain}
.ph-strip>figure.photo-square>picture,.ph-strip>figure.photo-square>picture>img{aspect-ratio:1}
@media(max-width:359px){.fair{display:flex;flex-wrap:wrap}}
/* A rotated decorative price tag must not escape a 150%-zoom phone column. */
@media(max-width:359px){.p-story .tag{transform:none;max-width:100%;margin-inline:auto}}
