/* 共用播放器不依賴版型的 Bootstrap 樣式。容器可設定 --object-media-height。 */
.object-media-content { width:100%; margin:0 auto; }
[data-object-media-carousel] .object-media-video { position:relative; display:flex; align-items:center; justify-content:center; height:var(--object-media-height,390px); width:100%; background:#161b22; }
.object-media-frame { position:relative; width:100%; height:100%; }
.object-media-short .object-media-frame { width:auto; min-width:0; max-width:100%; aspect-ratio:9/16; }
.object-media-frame iframe, .object-media-facebook, .object-media-facebook .fb-video, .object-media-facebook .fb-video > span { display:block; width:100% !important; height:100% !important; border:0; }
.object-media-frame iframe { min-width:0 !important; }
.object-media-preview { position:relative; width:100%; height:100%; }
.object-media-preview[hidden] { display:none; }
.object-media-preview img { width:100%; height:100%; object-fit:contain; }
.object-media-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); border:0; border-radius:8px; padding:12px 20px; background:#c00; color:#fff; cursor:pointer; }
.object-media-thumbnails { display:flex; gap:4px; overflow-x:auto; padding:6px 0; margin:0; }
.object-media-thumbnails button:first-child { margin-left:auto; }
.object-media-thumbnails button:last-child { margin-right:auto; }
.object-media-thumbnails button { position:relative; flex:0 0 48px; height:48px; padding:2px; border:2px solid transparent; background:#161b22; color:#fff; cursor:pointer; overflow:hidden; }
.object-media-thumbnails button.active { border-color:#c00; }
.object-media-thumbnails img { width:100%; height:100%; object-fit:cover; }
.object-media-thumb-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); color:#fff; text-shadow:0 1px 3px #000; pointer-events:none; }
.object-media-view-video { position:absolute; bottom:8px; left:50%; transform:translateX(-50%); z-index:2; border:0; border-radius:50px; padding:2px 10px; background:#0009; color:#fff; font-size:12px; cursor:pointer; }
.object-media-view-video:hover { background:#000c; }
.object-media-view-video:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.object-media-fb-thumb { display:block; width:100%; height:100%; pointer-events:none; }
.object-media-fb-thumb iframe { position:absolute; left:50%; top:50%; width:500px; height:889px; max-width:none; border:0; transform:translate(-50%,-50%) scale(.10); pointer-events:none; }
/* Bootstrap 3 的導覽只覆蓋播放器，不遮住底下縮圖。 */
[data-object-media-carousel] > .carousel-control.left,
[data-object-media-carousel] > .carousel-control.right { bottom:60px; width:10%; display:flex; align-items:center; justify-content:center; }
[data-object-media-carousel] > .carousel-control.left img,
[data-object-media-carousel] > .carousel-control.right img { width:100%; max-width:60px; margin-top:0; }
/* Bootstrap 5 保留原有箭頭造型，導覽範圍同樣避開縮圖。 */
[data-object-media-carousel] > .carousel-control-prev,
[data-object-media-carousel] > .carousel-control-next { bottom:60px; }
/* 淡入切換時不讓照片／地圖的固有尺寸重新撐動外層 table 欄寬。 */
[data-object-media-tabs] { contain:inline-size; }
[data-object-media-tabs] > .tab-content,
[data-object-media-tabs] > .tab-content > .tab-pane { width:100%; min-width:0; }
[data-object-media-carousel] .carousel-inner > .item > img { max-width:100%; object-fit:contain; }
[data-object-media-tabs] > .nav-tabs { margin-bottom:12px; }
[data-object-media-tabs] > .nav-tabs > li > a { color:#777; border-radius:8px 8px 0 0; padding:10px 14px; }
[data-object-media-tabs] > .nav-tabs > li.active > a { color:#356782; background:#f5f5f5; border-bottom-color:#f5f5f5; }
[data-object-media-tabs] > .nav-tabs > li > a:focus-visible { outline:2px solid #356782; outline-offset:-3px; }
/* 001 等未載入 Bootstrap 的版型使用獨立影音輪播。 */
[data-object-media-standalone] { position:relative; width:100%; contain:inline-size; }
[data-object-media-standalone], [data-object-media-standalone] * { box-sizing:border-box; }
[data-object-media-standalone] .object-media-slide[hidden] { display:none; }
[data-object-media-standalone] > [data-media-step] { position:absolute; top:calc(var(--object-media-height,390px) / 2); transform:translateY(-50%); width:36px; height:44px; padding:0; border:0; border-radius:4px; background:#0009; color:#fff; font-size:30px; line-height:1; cursor:pointer; }
[data-object-media-standalone] > .object-media-prev { left:8px; }
[data-object-media-standalone] > .object-media-next { right:8px; }
.object-media-thumbnails .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
