/* Shared viewer, including the isolated WordPress editor dialog. */
dialog.fw-lightbox{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;overflow:hidden;touch-action:none;overscroll-behavior:contain;box-shadow:none;color:#fff}
dialog.fw-lightbox[open]{display:flex;align-items:center;justify-content:center}
dialog.fw-lightbox.fw-visible::backdrop{background:rgba(0,0,0,var(--fw-shade,.92))}
dialog.fw-lightbox .fw-rail{position:absolute;inset:0;width:100%;height:100%;display:flex;will-change:transform;touch-action:none}
dialog.fw-lightbox .fw-slide{position:relative;flex:0 0 100%;width:100%;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center}
dialog.fw-lightbox img,dialog.fw-lightbox video{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;margin:0;padding:0;border:0;outline:none;box-shadow:none;transform-origin:center;user-select:none;touch-action:none}
dialog.fw-lightbox .fw-rail-settle{transition:transform .25s ease-out}
dialog.fw-lightbox .fw-reset{transition:transform .2s ease-out}
dialog.fw-lightbox .fw-photo-caption{position:absolute;left:50%;transform:translateX(-50%);text-align:center;color:white;text-shadow:0 1px 4px #000,0 0 12px #000b;font:400 clamp(16px,2vw,22px)/1.4 Arial,sans-serif;white-space:pre-line;pointer-events:none;z-index:2}
dialog.fw-lightbox .fw-view-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;background:transparent;color:white;border:0;border-radius:6px;font-size:38px;min-width:44px;min-height:52px;cursor:pointer}
dialog.fw-lightbox .fw-view-prev{left:8px}dialog.fw-lightbox .fw-view-next{right:8px}dialog.fw-lightbox .fw-view-arrow:disabled{opacity:.3}dialog.fw-lightbox [hidden]{display:none!important}
dialog.fw-lightbox .fw-view-toolbar{position:absolute;top:16px;right:16px;display:flex;gap:8px;z-index:4}
dialog.fw-lightbox .fw-view-control{min-width:44px;min-height:44px;padding:8px 14px;border:1px solid #ffffff80;background:#24201ee8;color:#fff;border-radius:6px;font:16px Arial,sans-serif;cursor:pointer}
dialog.fw-lightbox :focus-visible{outline:3px solid #d5b78c;outline-offset:3px}
.fw-view-error{position:absolute;top:45%;left:15%;right:15%;text-align:center;color:white;background:#312824;padding:16px}
@media(prefers-reduced-motion:reduce){dialog.fw-lightbox .fw-rail-settle,dialog.fw-lightbox .fw-reset{transition:none}}

dialog.fw-lightbox.fw-dismissing .fw-rail{transition:transform .32s cubic-bezier(.22,.61,.36,1);pointer-events:none}
dialog.fw-lightbox.fw-dismissing::backdrop{transition:background .32s ease-out}
dialog.fw-lightbox.fw-dismissing .fw-view-toolbar,dialog.fw-lightbox.fw-dismissing .fw-view-arrow,dialog.fw-lightbox.fw-dismissing .fw-video-controls{opacity:0;transition:opacity .2s}
.fw-video-controls{display:flex;align-items:center;gap:8px;padding:8px;background:#171717;color:#fff;box-sizing:border-box}
.fw-video-controls button{min-width:44px;min-height:44px;padding:6px;border:1px solid #ffffff70;border-radius:6px;background:#292929;color:white;font:18px Arial,sans-serif;cursor:pointer}
.fw-video-controls input[type=range]{min-width:32px;width:100%;flex:1;accent-color:#d5b78c;touch-action:auto}
.fw-video-controls .fw-video-time{font:12px Arial,sans-serif;white-space:nowrap}
dialog.fw-lightbox .fw-video-controls{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:12px;right:12px;z-index:5;border-radius:8px}
@media(prefers-reduced-motion:reduce){dialog.fw-lightbox.fw-dismissing .fw-rail,dialog.fw-lightbox.fw-dismissing::backdrop{transition:none}}

@media(max-width:600px){.fw-preview .fw-video-controls .fw-video-time{display:none}}

/* Video controls are overlays: revealing them does not resize the card. */
.fw-video-frame .fw-video-controls{position:absolute;bottom:0;left:0;right:0;z-index:2;background:linear-gradient(transparent,#171717e8);padding-top:22px}
.fw-video-controls[hidden]{display:none!important}
.fw-preview .fw-video-play{background:rgba(35,27,24,.22)!important;border:1px solid #ffffffb3!important;box-shadow:0 3px 18px #0003;backdrop-filter:blur(3px);color:#fff!important;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}
.fw-video-play svg{width:30px;height:30px;fill:currentColor;stroke:none;margin-left:3px}
.fw-video-controls .fw-video-mute svg{width:28px;height:28px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.fw-video-mute .fw-sound-cross{display:none}.fw-video-mute.fw-muted .fw-sound-cross{display:block}.fw-video-mute.fw-muted .fw-sound-waves{display:none}
.fw-preview .fw-video-controls button,dialog.fw-lightbox .fw-video-controls button{background:#292929b8!important;color:white!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent}
.fw-preview .fw-video-controls button:focus:not(:focus-visible),dialog.fw-lightbox .fw-video-controls button:focus:not(:focus-visible){outline:none!important}
.fw-video-controls button:focus-visible{outline:2px solid #d5b78c!important;outline-offset:2px}

dialog.fw-lightbox .fw-view-dots{position:absolute;z-index:6;bottom:max(8px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;justify-content:center;max-width:90vw;background:transparent;border:0;box-shadow:none;border-radius:0}
dialog.fw-lightbox .fw-view-dots[hidden]{display:none!important}
dialog.fw-lightbox .fw-view-dots button{width:30px;min-width:30px;height:44px;padding:0;border:0;background:transparent;cursor:pointer}
dialog.fw-lightbox .fw-view-dots button::after{content:'';display:block;width:7px;height:7px;border-radius:50%;margin:auto;background:#ffffff80}
dialog.fw-lightbox .fw-view-dots button[aria-current=true]::after{background:white;width:9px;height:9px}
dialog.fw-lightbox .fw-view-dots button:focus-visible{outline:2px solid white;outline-offset:-3px}
dialog.fw-lightbox.fw-dismissing .fw-view-dots{opacity:0;transition:opacity .2s}

dialog.fw-lightbox .fw-photo-heading{position:absolute;left:50%;transform:translateX(-50%);box-sizing:border-box;padding:10px 12px 22px;background:linear-gradient(#0006,transparent);text-align:center;color:white;text-shadow:0 1px 4px #000;white-space:pre-line;overflow-wrap:anywhere;font:400 clamp(16px,2vw,22px)/1.4 Arial,sans-serif;pointer-events:none;z-index:2}
dialog.fw-lightbox .fw-photo-description{font-size:.8em;line-height:1.4;margin-top:6px}

/* The fitted scene, including both captions, is the only zoom/pan target. */
dialog.fw-lightbox .fw-media-scene{position:relative;flex:none;overflow:hidden;transform-origin:center;touch-action:none}
dialog.fw-lightbox .fw-media-scene>img,dialog.fw-lightbox .fw-media-scene>video{width:100%;height:100%;transform:none}
dialog.fw-lightbox .fw-media-scene .fw-photo-heading{top:var(--fw-caption-top,16px);width:calc(100% - 32px)}
dialog.fw-lightbox .fw-media-scene .fw-photo-caption{bottom:var(--fw-caption-bottom,16px);width:calc(100% - 32px)}

.fw-lightbox > .fw-video-error,dialog > .fw-video-error{position:absolute;bottom:80px;left:12px;right:12px;z-index:20;padding:10px;background:#222;color:#fff;max-height:25%;overflow:auto;font-size:14px;}
.fw-video-mute:disabled{opacity:.45;}
/* A permanently muted video is not loading. Override the gallery disabled-button cursor. */
.fw-preview .fw-video-controls .fw-video-mute:disabled,dialog.fw-lightbox .fw-video-controls .fw-video-mute:disabled{cursor:pointer;}

/* Compact inline controls only; the shared bar regains full size inside the dialog. */
.fw-video-frame .fw-video-controls{gap:6px;padding:6px;padding-top:22px}
.fw-video-frame .fw-video-controls button{min-width:44px;min-height:44px;font-size:16px}
.fw-video-frame .fw-video-controls .fw-video-mute svg{width:22px;height:22px}
.fw-video-cover{position:absolute;inset:0;pointer-events:none}
.fw-video-cover>img,.fw-preview .fw-video-cover>img{display:block;width:100%;height:100%;max-width:none;max-height:none;min-height:0;margin:0;padding:0;border:0;object-fit:var(--fw-cover-fit,contain);object-position:var(--fw-cover-position,50% 50%)}
.fw-video-cover[hidden],.fw-video-play[hidden]{display:none!important}
dialog .fw-video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;width:64px;height:64px;padding:0;background:#231b1838;color:#fff;border:1px solid #ffffffb3;display:flex;align-items:center;justify-content:center;z-index:3;cursor:pointer}

/* Keep caption geometry measurable while hiding every caption presentation on phones.
   Controls and the caption editor remain outside these presentation layers. */
@media (orientation:landscape){
  dialog.fw-lightbox.fw-phone-viewer :is(.fw-photo-heading,.fw-photo-caption,.fw-fixed-meta,.fd-overlay-top,.fd-overlay-bottom,.fd-full-shade,.fd-card-shade,.fc-layer,.fc-shade-layer),
  dialog.fw-lightbox.fw-phone-viewer :is(.fw-photo-heading,.fw-photo-caption,.fw-fixed-meta,.fd-overlay-top,.fd-overlay-bottom,.fc-layer) *{
    visibility:hidden!important;
    pointer-events:none!important;
  }
}

/* System fullscreen fallback stays reachable when video controls are hidden. */
dialog.fw-lightbox .fw-system-fullscreen{position:absolute;left:max(8px,env(safe-area-inset-left));top:max(8px,env(safe-area-inset-top));z-index:12;width:44px;min-height:44px;padding:8px;background:#292929d9;color:#fff;border:1px solid #ffffff99;border-radius:6px}
dialog.fw-lightbox .fw-system-fullscreen:focus-visible{outline:2px solid #fff;outline-offset:2px}
dialog.fw-lightbox .fw-system-fullscreen-message{position:absolute;left:60px;top:max(8px,env(safe-area-inset-top));max-width:calc(100% - 220px);z-index:12;padding:6px;background:#222d;color:#fff;font:12px/1.4 sans-serif;pointer-events:none}
