/* Batch 59b (2026-10-06): Justin's photo frames on Holiday, About, the Shopping Guide and the gallery index.
   Loads after the batch 59a component sheet (omhm26-photo-frame) and after every route sheet of these routes. Static by construction: no animation, no transition, nothing to switch off under reduced motion or ?static=1.
   Glossary: Frames are for photographs only. Not here: art, badges, lockups, headers, lids, the archive thumbnail grid, the gallery viewer photo, the lightbox photo.
   What this sheet does: (1) lets the photo fill the slot against the older per-route image rules, (2) retires the 2 px red edge and the plaid photo card on the framed photographs only,
   (3) sets each wrapper's footprint (the old photo footprint, never wider than the cell), (4) keeps captions and year chips under the frame, outside the window. */

/* 1. The photo fills the slot. Same rule as the component sheet, one notch more specific so older route rules (aspect-ratio, auto height, edge, radius) lose. */
html body .omf.b59b>.omf__photo>:is(img,picture){position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:auto;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;outline:0;display:block;object-fit:cover}
html body .omf.b59b>.omf__photo>picture>img{position:static;width:100%;height:100%;max-width:none;aspect-ratio:auto;margin:0;border:0;border-radius:0;box-shadow:none;display:block;object-fit:cover}
html body .omf.b59b>.omf__photo>:is(div,figure){position:absolute;inset:0;width:100%;height:100%;max-width:none;aspect-ratio:auto;margin:0;border:0;border-radius:0;box-shadow:none}
/* The frame overlay is an img too: older route rules that size every img of a tile (aspect ratio, auto height, cover) must not reach it. */
html body .omf.b59b>.omf__frame{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:auto;object-fit:fill;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;outline:0;background:none;filter:none;opacity:1;transform:none}

/* 2. Holiday: the four memory cards. The plaid card art is gone from the markup; the 4:5 frame takes its place. The tilt, the position and the rotor stay on the figure. */
html.omhm-holiday #hero figure.hm9-frame--b59b{aspect-ratio:1122/1402;height:auto!important;overflow:visible;background:transparent;border:0}
html.omhm-holiday #hero figure.hm9-frame--b59b>.omf{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
html.omhm-holiday #hero figure.hm9-frame--b59b .omf__photo{background:#080808}
/* The caption (Ohio Made Memories) stays on the figure, in the moulding band under the window: never over the photograph. It was part of the old plaid card's bar. */
html.omhm-holiday #hero figure.hm9-frame--b59b>figcaption{position:absolute;left:15%;right:15%;bottom:3.4%;top:auto;height:auto;min-height:0;padding:3px 8px;border-radius:8px;background:rgba(8,8,8,.9);font-size:clamp(8px,.78vw,11px);line-height:1.15;z-index:3}
html.omhm-holiday #hero figure.hm9-frame--b59b .omf__photo>.hm9-frame-photos{position:absolute;inset:0;left:0;top:0;width:100%;height:100%;overflow:hidden;background:transparent}
html.omhm-holiday #hero figure.hm9-frame--b59b .hm9-frame-photos .approved-event-picture{position:absolute;inset:0}
html.omhm-holiday #hero figure.hm9-frame--b59b .hm9-frame-photos .approved-event-picture img{width:100%;height:100%;object-fit:cover;border:0;border-radius:0}

/* 3. Holiday: the photo stripe. The photograph tiles lose the plaid card and the red edge; the ornament wall tiles are art and keep theirs. */
html.omhm-holiday .hm19-stripe--land .hm19-set{align-items:center}
html.omhm-holiday .hm19-stripe--land .hm19-tile--land.hm19-tile--b59b{width:clamp(340px,33vw,480px);padding:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible}
@media(max-width:600px){html.omhm-holiday .hm19-stripe--land .hm19-tile--land.hm19-tile--b59b{width:300px;padding:0}}

/* 4. Holiday: the origin mosaic. The figure is no longer a card; the caption is a small chip under the frame. */
html.omhm-holiday body.om-mvp #ten-years .hm47-o-media figure.hm47-m--b59b{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}
html.omhm-holiday body.om-mvp #ten-years .hm47-o-media figure.hm47-m--b59b figcaption{display:inline-block;margin:2px 0 0 10px;padding:5px 10px;border-radius:8px;background:rgba(10,10,10,.92);line-height:1.3}
html.omhm-holiday body.om-mvp #ten-years .hm47-o-media figure.hm47-m--b59b .omf__photo{background:#0b0b0b}

/* 5. Holiday: the chapter gallery leads (assets/photo-frames-batch59b-20261006.js wraps the active slot's photograph; the four slices stay plain).
   The active slot becomes the frame canvas: its width is the canvas width at the strip's height (never wider than 74 percent of the strip, batch 48's own cap). */
html.omhm-holiday .hm48-strip .hm48-slot.is-active.b59b-framed{flex:0 0 min(74cqw,calc(100cqh * var(--b59-ar,.8)));border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
html.omhm-holiday .hm48-strip .hm48-slot>.omf{position:absolute;inset:auto;left:0;top:50%;transform:translateY(-50%);height:auto;max-height:100%;width:100%}
html.omhm-holiday .hm48-strip .hm48-slot>.omf>.omf__photo>img{object-fit:contain;object-position:50% 50%;background:#080808}
html.omhm-holiday .hm48-strip .hm48-slot.is-active.b59b-framed:focus-visible{outline-offset:-2px}

/* 6. About. The slot's old edge and radius leave; the wrapper takes the old footprint (the full width of its cell). Captions and year chips stay under the frame. */
html body .ab49-photo--b59b{border:0;background:transparent;box-shadow:none}
html body .ab49-photo--b59b>.omf{max-width:100%}
html body .ab49-photo--portrait.ab49-photo--b59b>.omf{max-width:260px;margin-inline:auto}
html body .ab49-photo--b59b figcaption{margin-top:2px}
html body .ab49-stage .omf.b59b--stage>.omf__photo>.ab49-viewport{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none;background:#0b0b0b}
html body .ab50-grid .omf.b59b--grid>.omf__photo>.ab50-frame{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none;background:#0b0b0b}
html body .ab50-grid .omf.b59b--grid>.omf__photo>.ab50-frame img{width:100%;height:100%;object-fit:cover;border:0;border-radius:0}
html body .ab50-cell figcaption{margin-top:2px}

/* 7. Guide. */
html body .gd51-hero>.editorial-photo--b59b{border:0;box-shadow:none;background:transparent;overflow:visible;border-radius:0}
html body .editorial-photo--b59b .omf{max-width:100%}
html body .gd51-lead--b59b,html body .gd51-view--b59b{border:0;border-radius:0;background:transparent;overflow:visible}
html body .gd51-lead--b59b figcaption,html body .gd51-view--b59b figcaption{display:inline-block;align-self:flex-start;margin:2px 0 0;padding:6px 12px;border-radius:8px;flex:0 0 auto}
html body .gd52-photo--b59b{border:0;border-radius:0;background:transparent;overflow:visible;aspect-ratio:auto}
html body .gd52-stay-photo--b59b{border:0;border-radius:0;background:transparent;overflow:visible;aspect-ratio:auto}
/* Two columns with the checklist: the frame canvas keeps the lodging box about as tall as the old photograph did (341 px), so the pair stays level. */
@media(min-width:901px){html body .gd52-stay-photo--b59b>.omf{max-width:430px}}
html body .gd28-card.gd28-card--b59b{aspect-ratio:4/5}
html body .gd28-card.gd28-card--b59b>.omf{width:100%;height:100%;aspect-ratio:auto}
html body .gd28-card.gd28-card--b59b .omf__photo{background:#111}

/* 8. Gallery index: the strip. The link is the card; the year caption sits under the frame, never over the photograph. The old tile was 180 by 260 with the caption over the photo;
   the framed tile is a 260 px canvas (window about 171 by 229) so the strip keeps its read. Phones keep batch 24's two column grid (canvas about 167 px wide). */
.om-album .album-mosaic-track a{height:auto;overflow:visible;border-radius:0;background:transparent}
.om-album .album-mosaic-track a .omf.b59b--mosaic{width:100%;max-width:100%}
.om-album .album-mosaic-track a>span{position:static;display:block;margin:2px auto 0;padding:4px 8px;text-align:center;background:transparent;font-size:13px;line-height:1.3}
@media(min-width:601px) and (prefers-reduced-motion:no-preference){.om-album .album-mosaic-track{grid-template-columns:repeat(9,260px)}.om-album .album-mosaic-track a{width:260px}}
@media(min-width:601px) and (prefers-reduced-motion:reduce){.om-album .album-mosaic-track{grid-template-columns:repeat(3,minmax(0,260px));justify-content:center}.om-album .album-mosaic-track a{width:100%;height:auto}}
@media(max-width:600px){.om-album .album-mosaic-track a>span{font-size:11px;padding:3px 4px}}
