.image-showcase{margin:0}.image-showcase.fullwidth-mode{width:100%}.fw-scroll-gallery{width:100%;overflow-x:auto;overflow-y:hidden;max-height:300px;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.fw-scroll-gallery::-webkit-scrollbar{display:none}.fw-scroll-track{display:flex;gap:10px;width:max-content;padding:4px var(--section-padding-x, 40px);animation:fw-scroll-left 20s linear infinite}.fw-scroll-gallery:hover .fw-scroll-track{animation-play-state:paused}@keyframes fw-scroll-left{0%{transform:translate(0)}to{transform:translate(-50%)}}.fw-scroll-item{flex-shrink:0;cursor:pointer;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-dark, #1a2332);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0,0,0,.12));transition:transform var(--transition-fast),box-shadow var(--transition-fast);width:280px;height:210px}.fw-scroll-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-md, 0 6px 16px rgba(0,0,0,.18))}.fw-scroll-item img{width:100%;height:100%;object-fit:cover;display:block}.gallery-title{font-size:1.5rem;font-weight:var(--fw-bold);color:var(--text-primary);margin:0 0 12px;line-height:1.3}.gallery-carousel{position:relative;cursor:pointer}.carousel-frame{position:relative;width:100%;max-width:420px;margin:0 auto;aspect-ratio:4/3;overflow:hidden;background:var(--bg-dark);box-shadow:var(--shadow-md);border:1px solid var(--border-subtle);transition:all var(--transition-normal)}.carousel-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--transition-slow)}.carousel-info{position:absolute;left:0;right:0;bottom:0;padding:12px 16px 10px;background:#1622344d}.carousel-label{font-size:.875rem;font-weight:600;color:#fff;margin-bottom:3px}.carousel-desc{font-size:.75rem;color:#fffc;line-height:1.4}.gallery-carousel:hover .carousel-frame{box-shadow:var(--shadow-lg)}.gallery-carousel:hover .carousel-frame img{transform:scale(1.03)}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:#16223459;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.75rem;transition:all var(--transition-fast);opacity:0;z-index:5;-webkit-user-select:none;user-select:none}.gallery-carousel:hover .carousel-btn{opacity:1}.carousel-btn:hover{background:#1622348c;transform:translateY(-50%) scale(1.1)}.carousel-prev{left:8px}.carousel-next{right:8px}.carousel-dots{position:absolute;bottom:50px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:5;opacity:0;transition:opacity var(--transition-normal)}.gallery-carousel:hover .carousel-dots{opacity:1}.carousel-dot{width:8px;height:8px;border-radius:50%;background:#ffffff80;cursor:pointer;transition:all var(--transition-fast)}.carousel-dot.active{background:var(--bg-white);width:20px;border-radius:4px}.carousel-counter{position:absolute;top:10px;right:10px;background:#16223466;color:#fffc;font-size:.75rem;padding:4px 10px;border-radius:12px;z-index:5;opacity:0;transition:opacity var(--transition-normal)}.gallery-carousel:hover .carousel-counter{opacity:1}.sg-lightbox-overlay{position:fixed;inset:0;z-index:9999;background:#162234eb;display:flex;align-items:center;justify-content:center;animation:sgFadeIn .25s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@keyframes sgFadeIn{0%{opacity:0}to{opacity:1}}.sg-lightbox-container{position:relative;width:90vw;max-width:900px;max-height:90vh;display:flex;flex-direction:column;align-items:center;animation:sgSlideUp .3s ease-out}@keyframes sgSlideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.sg-close{position:absolute;top:-44px;right:0;width:38px;height:38px;border-radius:50%;background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;transition:all var(--transition-fast);z-index:20}.sg-close:hover{background:#ffffff4d;transform:rotate(90deg)}.sg-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.125rem;transition:all var(--transition-fast);z-index:20}.sg-nav:hover{background:#ffffff40;border-color:#ffffff80;transform:translateY(-50%) scale(1.1)}.sg-prev{left:-60px}.sg-next{right:-60px}.sg-image-wrapper{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;width:100%;min-height:350px;max-height:70vh}.sg-image{max-width:100%;max-height:70vh;object-fit:contain;cursor:zoom-in;transition:transform var(--transition-normal);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sg-image.zoomed{cursor:zoom-out}.sg-info{display:flex;justify-content:space-between;align-items:flex-start;width:100%;padding:14px 0 6px;color:#ffffffd9}.sg-info-left{display:flex;flex-direction:column;gap:4px}.sg-label{font-size:.875rem;font-weight:500}.sg-desc{font-size:.75rem;color:#ffffff8c;line-height:1.4}.sg-counter{font-size:.75rem;color:#ffffff80;flex-shrink:0}.sg-thumbnails{display:flex;gap:8px;padding:10px 0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent;max-width:100%}.sg-thumbnails::-webkit-scrollbar{height:4px}.sg-thumbnails::-webkit-scrollbar-track{background:transparent}.sg-thumbnails::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:2px}.sg-thumb{flex-shrink:0;width:58px;height:58px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:all var(--transition-fast);opacity:.5}.sg-thumb:hover{opacity:.85;border-color:#fff6}.sg-thumb.active{opacity:1;border-color:var(--accent);box-shadow:0 0 10px #e86a3366}.sg-thumb img{width:100%;height:100%;object-fit:cover;display:block}@media(max-width:768px){.sg-lightbox-container{width:96vw}.sg-nav{display:none}.sg-image-wrapper{min-height:250px;max-height:55vh}.sg-image{max-height:55vh}.sg-thumb{width:44px;height:44px}.sg-prev,.sg-next{display:none}.carousel-frame{max-width:360px}.carousel-btn{opacity:1;width:28px;height:28px;font-size:10px}.carousel-dots,.carousel-counter{opacity:1}.fw-scroll-track{padding:4px var(--page-padding-x, 16px)}.fw-scroll-item{width:220px;height:165px}}
