.gallery-desktop-title { font-size:clamp(28px,3.3vw,44px); line-height:1.12; margin:0 0 24px; }
.fundraiser-gallery { position:relative; background:#102e22; border-radius:20px; }
.gallery-track { display:flex; width:100%; height:100%; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; }
.gallery-track::-webkit-scrollbar { display:none; }
.gallery-slide { position:relative; flex:0 0 100%; width:100%; height:100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always; overflow:hidden; }
.fundraiser-gallery .gallery-slide > img { object-fit:contain; }
.gallery-slide iframe { position:absolute; left:0; top:0; width:100%; height:calc(100% - 52px); border:0; background:#000; z-index:2; }
.gallery-video-play { display:block; position:relative; width:100%; height:100%; padding:0; border:0; background:#102e22; color:white; cursor:pointer; }
.gallery-video-play[hidden] { display:none; }
.gallery-video-play img { object-fit:contain; opacity:.72; }
.gallery-play-icon { position:absolute; left:50%; top:43%; transform:translate(-50%,-50%); display:grid; place-items:center; width:72px; height:72px; border-radius:50%; background:#fff; color:#164d36; font-size:28px; box-shadow:0 3px 24px #0005; }
.gallery-play-label { position:absolute; top:62%; left:0; width:100%; font-weight:800; font-size:18px; }
.gallery-arrow { position:absolute; z-index:4; top:45%; border:1px solid #ffffff70; background:#102e22c9; color:white; border-radius:50%; width:42px; height:42px; cursor:pointer; font-size:24px; }
.gallery-prev { left:12px; } .gallery-next { right:12px; }
.gallery-dots { position:absolute; z-index:4; left:50%; transform:translateX(-50%); bottom:4px; display:flex; justify-content:center; max-width:100%; padding:0 8px; border-radius:24px; background:#102e2280; }
.gallery-dots button { width:28px; height:44px; border:0; padding:4px; background:transparent; cursor:pointer; display:grid; place-items:center; }
.gallery-dots span { display:block; width:8px; height:8px; border-radius:12px; background:#ffffff80; transition:width .15s; }
.gallery-dots [aria-current=true] span { width:22px; background:white; }
.gallery-caption { position:absolute; left:60px; right:60px; top:8px; margin:0; text-align:center; color:white; background:#102e22bd; border-radius:8px; padding:8px 12px; font-size:14px; pointer-events:none; }
.gallery-arrow:focus-visible,.gallery-dots button:focus-visible,.gallery-video-play:focus-visible,.gallery-track:focus-visible { outline:3px solid #bafa73; outline-offset:-3px; }
.gallery-sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.campaign-page .story-title { display:none; }
.gallery-editor { max-width:1100px; margin:30px auto 80px; padding:0 22px; }
.gallery-editor h1 { font-size:38px; line-height:1.15; }
.gallery-add-tools { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:28px 0; }
.gallery-add-form { display:flex; flex-direction:column; gap:14px; padding:22px; border:1px solid #dae4dc; border-radius:16px; background:#f5f8f4; }
.gallery-add-form .button { margin-top:auto; }
.gallery-editor label { display:grid; gap:8px; font-weight:700; }
.gallery-editor input:not([type=checkbox]):not([type=hidden]) { width:100%; min-width:0; padding:12px; border:1px solid #c7d3cb; border-radius:8px; background:white; font:inherit; box-sizing:border-box; }
.gallery-edit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.gallery-edit-card { padding:14px; border:1px solid #d6dfd9; border-radius:16px; background:white; display:grid; gap:14px; cursor:grab; }
.gallery-edit-card.is-dragging { opacity:.45; }
.gallery-edit-preview { position:relative; aspect-ratio:16/10; background:#102e22; border-radius:10px; overflow:hidden; }
.gallery-edit-preview img { width:100%; height:100%; object-fit:contain; }
.gallery-edit-preview span { position:absolute; left:8px; bottom:8px; padding:5px 9px; border-radius:6px; color:white; background:#102e22cf; font-size:12px; }
.gallery-card-controls { display:flex; align-items:center; gap:8px; }
.gallery-card-controls strong { margin-right:auto; }
.gallery-card-controls button { border:1px solid #c7d3cb; border-radius:8px; background:#f5f8f4; width:42px; height:42px; cursor:pointer; font-size:22px; }
.gallery-card-controls button:disabled { opacity:.3; cursor:default; }
.gallery-editor .gallery-remove { display:flex; align-items:center; font-size:14px; font-weight:400; }
.gallery-save-bar { position:sticky; bottom:0; display:flex; gap:12px; padding:18px 0; background:#fffffff2; margin-top:16px; z-index:5; }
.gallery-success { padding:14px; background:#e9f7e6; border-radius:8px; color:#164d36; }
@media(max-width:900px) {
 .gallery-desktop-title { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
 .fundraiser-gallery { border-radius:0; }
 .fundraiser-gallery .gallery-slide > img { object-fit:cover; }
 .fundraiser-gallery .gallery-dots { bottom:30px; }
 .fundraiser-gallery .mobile-hero-overlay { padding-bottom:96px; }
 .fundraiser-gallery.is-video-slide .mobile-hero-overlay { display:none; }
 .fundraiser-gallery.is-video-slide::after { display:none; }
 .fundraiser-gallery.is-video-slide .gallery-dots { bottom:4px; }
 .gallery-arrow { width:38px; height:38px; top:40%; }
 .gallery-prev { left:8px; } .gallery-next { right:8px; }
 .gallery-caption { left:48px; right:48px; }
 .gallery-add-tools,.gallery-edit-grid { grid-template-columns:1fr; }
 .gallery-save-bar { flex-wrap:wrap; }
 .gallery-dots button { width:26px; }
 .campaign:has(.is-video-slide) .story-title { display:block; }
}

/* Use identical icons and keep gallery navigation outside the YouTube player. */
.gallery-arrow { display:grid; place-items:center; padding:0; line-height:1; }
.gallery-arrow svg { display:block; width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.fundraiser-gallery.is-video-slide .gallery-arrow { top:auto; bottom:6px; width:40px; height:40px; }
.fundraiser-gallery.is-video-slide .gallery-dots { bottom:4px; max-width:calc(100% - 120px); overflow-x:auto; justify-content:flex-start; }
.fundraiser-gallery.is-video-slide .gallery-dots button { flex-shrink:0; }
.stream-upload-box { margin:24px 0; padding:24px; border:1px solid #cfdfd2; border-radius:16px; background:#f1f7ed; }
.stream-upload-box h2 { margin:0 0 12px; font-size:26px; }
.stream-upload-box label { margin:18px 0; }
.stream-upload-box progress { display:block; width:100%; height:20px; margin:20px 0; accent-color:#24573d; }
.stream-upload-box [hidden] { display:none !important; }
.stream-pending-actions { display:flex; flex-wrap:wrap; gap:12px; }
.stream-upload-box .button { width:auto; min-height:44px; }
.stream-upload-box button:disabled { opacity:.55; cursor:wait; }

/* Fit the active video, leaving its play action and carousel controls below it. */
.media.fundraiser-gallery.is-video-slide { min-height:0; aspect-ratio:auto; }
.fundraiser-gallery.is-video-slide .gallery-slide iframe { height:var(--video-height); }
.fundraiser-gallery .gallery-video-play { height:calc(var(--video-height, 100%) + 64px); }
.fundraiser-gallery .gallery-video-play img { position:absolute; top:0; left:0; height:var(--video-height); width:100%; object-fit:contain; opacity:1; }
.fundraiser-gallery .gallery-play-icon { display:none; }
.fundraiser-gallery .gallery-play-label { top:auto; bottom:10px; left:50%; transform:translateX(-50%); width:auto; padding:11px 24px; border-radius:24px; background:#bafa73; color:#164d36; font-size:16px; line-height:22px; white-space:nowrap; }
.fundraiser-gallery .gallery-play-label::before { content:'\25B6'; margin-right:10px; font-size:13px; }
.fundraiser-gallery .gallery-video-play:hover .gallery-play-label { background:#d1ff9e; }
.fundraiser-gallery .has-player .gallery-video-play { position:absolute; top:var(--video-height); height:64px; }
.fundraiser-gallery .has-player .gallery-video-play img { display:none; }
.fundraiser-gallery [data-playing=true] .gallery-play-label::before { content:'\275A\275A'; }
.thumbnail-editor .thumbnail-preview { display:block; max-width:100%; width:480px; max-height:360px; object-fit:contain; background:#102e22; border-radius:12px; }
.thumbnail-editor .thumbnail-preview[hidden] { display:none; }
.thumbnail-editor h2 { margin:8px 0; font-size:23px; }
.fundraiser-gallery .is-warming iframe { opacity:0; pointer-events:none; }
.fundraiser-gallery [aria-busy=true] .gallery-play-label::before { content:'\25CC'; }
