/* The gallery has its own namespace so shared legacy page styles cannot obscure photos. */
body.gallery-page { --photo-ink:#103551; --photo-muted:#657b8b; --photo-gold:#ffbf32; --photo-line:#e4e9ec; background:#fffdf9!important; }
.gb-gallery { color:var(--photo-ink); padding-bottom:80px; }
.gb-gallery :where(p,h1,h2,h3,figure) { margin:0; }
.gb-gallery svg, .gb-gallery-lightbox svg { width:21px; height:21px; flex-shrink:0; }
.gb-gallery a { text-decoration:none; }
.gb-gallery button, .gb-gallery input, .gb-gallery select { font:inherit; }
.gb-gallery-container { width:min(1240px,calc(100% - 80px)); margin-inline:auto; }
.gb-gallery-intro { padding:25px 0 44px; background:#fcf8ef; border-bottom:1px solid #eee8dc; }
.gb-gallery-breadcrumb { display:flex; align-items:center; gap:10px; color:#6c7d88; font-size:12px; }
.gb-gallery-breadcrumb svg { width:12px; height:12px; color:#9aa8ae; }
.gb-gallery-breadcrumb a:hover { color:var(--photo-ink); text-decoration:underline; }
.gb-gallery-breadcrumb [aria-current] { color:var(--photo-ink); font-weight:700; }
.gb-gallery-intro__layout { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:62px; margin-top:26px; }
.gb-gallery-eyebrow { display:flex; align-items:center; gap:8px; font-size:10px; line-height:1.5; letter-spacing:.13em; font-weight:800; color:#91702b; }
.gb-gallery-intro h1 { margin:15px 0 18px; font-size:clamp(36px,3.65vw,52px); line-height:1.15; letter-spacing:-.04em; font-weight:1000; }
.gb-gallery-intro h1 span { position:relative; z-index:0; display:inline-block; }
.gb-gallery-intro h1 span::after { content:''; position:absolute; z-index:-1; left:0; right:-8px; bottom:3px; height:11px; border-radius:4px 8px 5px 3px; background:#ffe098; transform:rotate(-1.2deg); }
.gb-gallery-intro__description { color:#607383; font-size:14px; line-height:1.85; }
.gb-gallery-intro__actions { display:flex; gap:22px; align-items:center; flex-wrap:wrap; margin-top:25px; }
.gb-gallery-primary { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:46px; padding:12px 20px; border-radius:9px; background:var(--photo-gold); color:var(--photo-ink); font-weight:800; font-size:12px; transition:background .2s,transform .2s; }
.gb-gallery-primary svg { width:18px; height:18px; transform:rotate(40deg); }
.gb-gallery-primary:hover { background:#ffd16c; transform:translateY(-2px); }
.gb-gallery-spotlight { position:relative; margin:0; background:white; padding:9px 9px 0; border:1px solid #e8e3d8; border-radius:16px; transform:rotate(1.5deg); box-shadow:0 8px 22px #544a2e08; }
.gb-gallery-spotlight::before { content:''; position:absolute; width:92px; height:25px; top:-12px; left:calc(50% - 46px); z-index:2; background:#fbd779af; transform:rotate(-5deg); }
.gb-gallery-spotlight>a { position:relative; display:block; aspect-ratio:1.95; overflow:hidden; border-radius:10px; background:#e9edf0; }
.gb-gallery-spotlight img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.gb-gallery-spotlight a:hover img { transform:scale(1.04); }
.gb-gallery-spotlight__badge { position:absolute; top:13px; left:13px; display:inline-flex; align-items:center; gap:6px; padding:7px 10px; font-size:10px; font-weight:800; border-radius:6px; background:#fffdf4f5; color:var(--photo-ink); }
.gb-gallery-spotlight__badge svg { width:14px; height:14px; color:#967023; }
.gb-gallery-spotlight__zoom { position:absolute; bottom:12px; right:12px; display:grid; place-items:center; width:34px; height:34px; border:1px solid #ffffff70; border-radius:50%; color:white; background:#10355188; }
.gb-gallery-spotlight__zoom svg { width:16px; height:16px; }
.gb-gallery-spotlight figcaption { display:flex; align-items:center; gap:10px; padding:14px 6px 15px; line-height:1.4; }
.gb-gallery-spotlight figcaption>span:first-child { font-size:8px; letter-spacing:.09em; color:#8d753d; font-weight:800; }
.gb-gallery-spotlight figcaption strong { font-size:12px; font-weight:800; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gb-gallery-spotlight__note { margin-left:auto; font-size:9px; color:#7c8b95; white-space:nowrap; }
.gb-gallery-spotlight--empty { transform:none; min-height:260px; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:16px; padding:32px; color:#6b7e8d; text-align:center; }
.gb-gallery-spotlight--empty>svg { width:48px; height:48px; }
.gb-gallery-workspace { display:grid; grid-template-columns:210px minmax(0,1fr); gap:38px; padding-top:40px; scroll-margin-top:135px; }
.gb-gallery-sidebar__sticky { position:sticky; top:140px; }
.gb-gallery-sidebar h2 { display:flex; align-items:center; gap:10px; margin:7px 0 20px; font-size:21px; line-height:1.4; }
.gb-gallery-sidebar h2>span { font-family:'Nunito Sans',sans-serif; font-size:10px; background:#f0f1eb; color:#6b7e84; border-radius:5px; padding:3px 7px; letter-spacing:0; font-weight:700; }
.gb-gallery-filters { display:flex; flex-direction:column; gap:7px; }
.gb-gallery-filter { display:flex; align-items:center; gap:10px; min-height:48px; border:1px solid transparent; border-radius:9px; padding:10px 12px; color:#657989; font-size:12px; font-weight:700; transition:background .2s,color .2s; }
.gb-gallery-filter svg { width:18px; height:18px; }
.gb-gallery-filter>span:not(.gb-gallery-filter__count) { overflow-wrap:anywhere; }
.gb-gallery-filter:hover { background:#f4f1e9; color:var(--photo-ink); }
.gb-gallery-filter.is-active { background:var(--photo-ink); color:white; }
.gb-gallery-filter__count { margin-left:auto; font-size:10px; font-weight:800; min-width:25px; padding:2px 6px; border-radius:5px; text-align:center; background:#eef0ee; color:#6b7b86; }
.gb-gallery-filter.is-active .gb-gallery-filter__count { background:#ffffff21; color:white; }
.gb-gallery-collection { min-width:0; }
.gb-gallery-collection__heading { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:59px; }
.gb-gallery-collection__heading h2 { margin-top:5px; font-size:27px; line-height:1.35; overflow-wrap:anywhere; }
.gb-gallery-collection__total { flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; padding:6px 11px; background:#fff3d6; border:1px solid #f2e3c3; border-radius:7px; color:#896a2e; font-size:11px; font-weight:800; }
.gb-gallery-tools { display:flex; align-items:center; gap:16px; margin:21px 0 24px; }
.gb-gallery-search { flex:1; min-width:0; display:flex; align-items:center; gap:10px; min-height:46px; padding:0 13px; background:white; border:1px solid #dce3e8; border-radius:8px; transition:border-color .2s,box-shadow .2s; }
.gb-gallery-search:focus-within { border-color:#7594aa; box-shadow:0 0 0 3px #397bb014; }
.gb-gallery-search>svg { width:18px; height:18px; color:#8c9ba7; }
.gb-gallery-search input { width:100%; min-width:0; padding:12px 0; border:0; border-radius:0; background:none; color:var(--photo-ink); font-size:12px; outline:none; box-shadow:none; }
.gb-gallery-search input:focus-visible { outline:none; }
.gb-gallery-search input::placeholder { color:#84949f; opacity:1; }
.gb-gallery-search input::-webkit-search-cancel-button { -webkit-appearance:none; }
.gb-gallery-search__clear { display:grid; place-items:center; width:30px; height:32px; flex-shrink:0; padding:5px; border:0; background:transparent; border-radius:4px; color:#667f90; }
.gb-gallery-search__clear:hover { background:#eff3f5; }
.gb-gallery-search__clear svg { width:15px; height:15px; }
.gb-gallery-sort { display:flex; align-items:center; gap:8px; flex-shrink:0; color:#7a8a94; font-size:11px; }
.gb-gallery-sort select { max-width:145px; min-height:46px; padding:10px 28px 10px 12px; border:1px solid #dce3e8; border-radius:8px; background-color:white; color:var(--photo-ink); font-size:12px; font-weight:700; cursor:pointer; }
.gb-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px 18px; transition:opacity .15s; }
.gb-gallery-grid[aria-busy=true] { opacity:.45; pointer-events:none; }
.gb-gallery-grid[aria-busy=true]:empty { min-height:280px; border-radius:12px; background:#eef0ed; }
.gb-gallery-card { min-width:0; border:1px solid #e4e8e8; border-radius:12px; overflow:hidden; background:white; transition:border-color .2s,box-shadow .2s,transform .2s; }
.gb-gallery-card:hover { transform:translateY(-4px); border-color:#d4dce0; box-shadow:0 8px 22px #1035510c; }
.gb-gallery-card__link { display:block; height:100%; color:var(--photo-ink); }
.gb-gallery-card:has(a:focus-visible) { outline:3px solid #397bb0; outline-offset:4px; }
.gb-gallery-card__link:focus-visible { outline:none; }
.gb-gallery-card figure { margin:0; }
.gb-gallery-card__media { position:relative; aspect-ratio:4/3; overflow:hidden; background:#eef1f2; }
.gb-gallery-card__media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.gb-gallery-card:hover img { transform:scale(1.045); }
.gb-gallery-card__zoom { display:grid; place-items:center; position:absolute; right:12px; bottom:12px; width:33px; height:33px; border-radius:50%; background:#ffffffed; color:var(--photo-ink); opacity:0; transform:translateY(4px); transition:opacity .2s,transform .2s; }
.gb-gallery-card__zoom svg { width:16px; height:16px; }
.gb-gallery-card:hover .gb-gallery-card__zoom,.gb-gallery-card:focus-within .gb-gallery-card__zoom { opacity:1; transform:none; }
.gb-gallery-card__fallback { position:absolute; inset:0; display:none; align-items:center; justify-content:center; flex-direction:column; gap:10px; color:#6d8292; font-size:11px; text-align:center; padding:14px; }
.gb-gallery-card__media.is-error img { opacity:0; }
.gb-gallery-card__media.is-error .gb-gallery-card__fallback { display:flex; }
.gb-gallery-card figcaption { display:none; }
.gb-gallery-card__category { grid-column:1/-1; font-size:9px; letter-spacing:.09em; text-transform:uppercase; font-weight:800; color:#957634; line-height:1.5; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gb-gallery-card figcaption strong { font-size:13px; font-weight:800; line-height:1.6; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gb-gallery-card figcaption>svg { width:15px; height:15px; color:#9aa9b2; transition:color .2s,transform .2s; }
.gb-gallery-card:hover figcaption>svg { transform:translateX(2px); color:var(--photo-ink); }
.gb-gallery-pagination { display:flex; flex-direction:column; align-items:center; gap:15px; padding-top:30px; text-align:center; }
.gb-gallery-pagination>p { color:#778b97; font-size:11px; }
.gb-gallery-more { display:inline-flex; gap:35px; align-items:center; justify-content:center; min-height:46px; padding:11px 25px; border:1px solid #d7dfe2; border-radius:8px; background:white; color:var(--photo-ink); font-size:12px!important; font-weight:800!important; transition:background .2s,border-color .2s; }
.gb-gallery-more svg { width:17px; height:17px; transform:rotate(90deg); }
.gb-gallery-more:hover { background:#fff2d4; border-color:#e6ce97; }
.gb-gallery-more.is-loading { background:#faf9f5; border-color:#d4dce0; pointer-events:none; }
.gb-gallery-more.is-loading svg { animation:gb-spin .75s linear infinite; transform:none; }
@keyframes gb-spin { to { transform:rotate(360deg); } }
.gb-gallery-more:disabled { opacity:.6; cursor:wait; }
.gb-gallery-pagination__end { display:inline-flex; align-items:center; gap:7px; color:#80918f; font-size:10px; }
.gb-gallery-pagination__end svg { width:14px; height:14px; color:#b8954e; }
.gb-gallery-empty { display:flex; align-items:center; flex-direction:column; text-align:center; padding:65px 24px; border:1px dashed #d9e0e2; background:#f8faf8; border-radius:12px; }
.gb-gallery-empty>svg { width:36px; height:36px; margin-bottom:18px; color:#91a29e; }
.gb-gallery-empty h3 { font-size:22px; line-height:1.4; }
.gb-gallery-empty p { margin-top:10px; max-width:380px; color:var(--photo-muted); font-size:13px; line-height:1.7; }
.gb-gallery-empty button { display:flex; align-items:center; gap:10px; margin-top:24px; min-height:44px; padding:10px 17px; border:1px solid #ded4b7; border-radius:8px; background:#fff7e5; color:var(--photo-ink); font-size:12px; font-weight:800; }
.gb-gallery-empty button svg { width:16px; height:16px; }
.gb-gallery-feedback { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 16px; margin-bottom:20px; border:1px solid #ead5ba; border-radius:8px; background:#fff5e8; color:#84562d; font-size:12px; }
.gb-gallery-feedback button { flex-shrink:0; border:0; background:none; color:#68421f; font-weight:800; text-decoration:underline; min-height:36px; }
body.gb-gallery-modal-open { overflow:hidden; }
.gb-gallery-lightbox { position:fixed; inset:0; width:100%; max-width:none; height:100%; height:100dvh; max-height:none; margin:0; padding:0; border:0; background:#0c2130; color:white; overscroll-behavior:contain; }
.gb-gallery-lightbox::backdrop { background:#071a2af7; }
.gb-gallery-lightbox[open] { display:flex; flex-direction:column; }
.gb-gallery-lightbox__top { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:88px; padding:20px 40px; border-bottom:1px solid #ffffff15; font-size:11px; letter-spacing:.06em; font-weight:800; }
.gb-gallery-lightbox__top>span:first-child { flex:1; }
.gb-gallery-lightbox__top>span:first-child>span { color:#ffffff6b; font-weight:500; }
.gb-gallery-lightbox__top>[data-gallery-lightbox-status] { margin-right:30px; color:#d6dee4; letter-spacing:.1em; font-variant-numeric:tabular-nums; }
.gb-gallery-lightbox__top button { display:grid; place-items:center; width:42px; height:42px; border:1px solid #ffffff3b; border-radius:50%; background:#ffffff0a; color:white; }
.gb-gallery-lightbox__top button:hover { background:#ffffff25; }
.gb-gallery-lightbox__figure { display:flex; flex-direction:column; flex:1; min-height:0; margin:0; padding:24px 40px 25px; }
.gb-gallery-lightbox__stage { position:relative; display:flex; flex:1; align-items:center; justify-content:center; gap:25px; min-height:0; touch-action:pan-y pinch-zoom; }
.gb-gallery-lightbox__stage>img { width:calc(100% - 170px); height:100%; min-height:0; object-fit:contain; user-select:none; }
.gb-gallery-lightbox__stage>img.is-loading { opacity:.25; }
.gb-gallery-lightbox__nav { flex-shrink:0; display:grid; place-items:center; width:46px; height:46px; padding:12px; border:1px solid #ffffff40; border-radius:50%; background:#ffffff0d; color:white; transition:background .2s; }
.gb-gallery-lightbox__nav--prev svg { transform:rotate(180deg); }
.gb-gallery-lightbox__nav:hover { background:#ffffff25; }
.gb-gallery-lightbox__nav:disabled { opacity:.2; cursor:default; }
.gb-gallery-lightbox__error { position:absolute; top:45%; left:15%; right:15%; text-align:center; font-size:14px; color:#e2d4b3; }
.gb-gallery-lightbox__figure figcaption { display:flex; justify-content:space-between; align-items:center; gap:24px; width:calc(100% - 170px); margin:21px auto 0; flex-shrink:0; }
.gb-gallery-lightbox [data-gallery-lightbox-category] { font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:#e3be72; }
html body.gallery-page .gb-gallery-lightbox h2 { margin:5px 0 0; color:white!important; font-size:21px; line-height:1.4; }
.gb-gallery-lightbox__keys { display:flex; align-items:center; gap:6px; font-size:10px; color:#abb7c0; white-space:nowrap; }
.gb-gallery-lightbox__keys>span { margin:0 5px; }
.gb-gallery-lightbox kbd { border:1px solid #ffffff30; border-radius:4px; padding:2px 6px; font-family:inherit; font-size:10px; }
.gb-gallery-lightbox__swipe { display:none; }
@media(min-width:1600px) { .gb-gallery-container { width:min(1320px,calc(100% - 96px)); } .gb-gallery-intro__layout { gap:85px; } }
@media(max-width:1100px) { .gb-gallery-container { width:calc(100% - 64px); } .gb-gallery-intro__layout { gap:35px; } .gb-gallery-intro h1 { font-size:40px; } .gb-gallery-spotlight__note { display:none; } .gb-gallery-workspace { grid-template-columns:180px minmax(0,1fr); gap:26px; } .gb-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .gb-gallery-sidebar__sticky { top:118px; } .gb-gallery-sort label { display:none; } }
@media(max-width:760px) {
    .gb-gallery { padding-bottom:50px; }
    .gb-gallery-container { width:calc(100% - 40px); }
    .gb-gallery-intro { padding-top:19px; padding-bottom:30px; }
    .gb-gallery-breadcrumb { font-size:10px; }
    .gb-gallery-intro__layout { grid-template-columns:1fr; gap:30px; margin-top:26px; }
    .gb-gallery-intro h1 { font-size:42px; margin-top:12px; margin-bottom:15px; }
    .gb-gallery-intro__description { max-width:480px; font-size:13px; line-height:1.85; }
    .gb-gallery-desktop-break { display:none; }
    .gb-gallery-intro__actions { gap:20px; margin-top:20px; }
    .gb-gallery-primary { min-height:44px; padding:11px 16px; font-size:11px; gap:12px; }
    .gb-gallery-spotlight { margin:0 4px; transform:rotate(1deg); }
    .gb-gallery-spotlight>a { aspect-ratio:2.1; }
    .gb-gallery-spotlight__badge { font-size:9px; top:10px; left:10px; }
    .gb-gallery-spotlight figcaption { padding:12px 5px; }
    .gb-gallery-spotlight__note { display:block; }
    .gb-gallery-workspace { display:flex; flex-direction:column; gap:23px; padding-top:28px; scroll-margin-top:106px; }
    .gb-gallery-sidebar__sticky { position:static; }
    .gb-gallery-sidebar .gb-gallery-eyebrow,.gb-gallery-sidebar h2>span { display:none; }
    .gb-gallery-sidebar h2 { margin:0 0 12px; font-size:17px; }
    .gb-gallery-filters { flex-direction:row; overflow-x:auto; gap:8px; padding:3px 3px 8px; margin:-3px; scrollbar-width:thin; scrollbar-color:#c5cfd3 transparent; }
    .gb-gallery-filter { min-height:44px; padding:9px 12px; font-size:11px; gap:8px; white-space:nowrap; flex-shrink:0; border-color:#e0e5e7; background:white; }
    .gb-gallery-filter>span:not(.gb-gallery-filter__count) { max-width:200px; overflow:hidden; text-overflow:ellipsis; }
    .gb-gallery-filter svg { width:16px; height:16px; }
    .gb-gallery-filter__count { margin-left:5px; font-size:9px; }
    .gb-gallery-collection__heading { min-height:0; gap:12px; }
    .gb-gallery-collection__heading h2 { font-size:25px; }
    .gb-gallery-collection__heading .gb-gallery-eyebrow { font-size:9px; }
    .gb-gallery-collection__total { padding:5px 8px; font-size:10px; }
    .gb-gallery-tools { margin:18px 0 20px; gap:8px; }
    .gb-gallery-search { gap:7px; padding:0 10px; }
    .gb-gallery-search input { font-size:16px; }
    .gb-gallery-search input::placeholder { font-size:12px; }
    .gb-gallery-sort select { width:112px; padding-left:8px; padding-right:16px; font-size:16px; }
    .gb-gallery-grid { gap:15px 12px; }
    .gb-gallery-card { border-radius:10px; }
    .gb-gallery-card figcaption { padding:10px 11px 12px; gap:3px 5px; }
    .gb-gallery-card figcaption strong { font-size:12px; }
    .gb-gallery-card__category { font-size:8px; }
    .gb-gallery-card figcaption>svg { width:13px; height:13px; }
    .gb-gallery-card__zoom { display:none; }
    .gb-gallery-card:hover { transform:none; }
    .gb-gallery-empty { padding:45px 20px; }
    .gb-gallery-empty h3 { font-size:20px; }
    .gb-gallery-pagination { padding-top:25px; }
    .gb-gallery-lightbox__top { min-height:75px; padding:16px 18px; font-size:10px; }
    .gb-gallery-lightbox__top>span:first-child>span { display:none; }
    .gb-gallery-lightbox__top>[data-gallery-lightbox-status] { margin-right:0; }
    .gb-gallery-lightbox__figure { padding:20px 0 25px; padding-bottom:max(25px,env(safe-area-inset-bottom)); }
    .gb-gallery-lightbox__stage { gap:0; }
    .gb-gallery-lightbox__stage>img { width:100%; }
    .gb-gallery-lightbox__nav { position:absolute; z-index:2; right:12px; bottom:10px; width:40px; height:40px; background:#102b40d9; }
    .gb-gallery-lightbox__nav--prev { left:12px; right:auto; }
    .gb-gallery-lightbox__figure figcaption { width:100%; margin-top:18px; padding-inline:20px; flex-direction:column; align-items:flex-start; gap:10px; }
    html body.gallery-page .gb-gallery-lightbox h2 { font-size:19px; }
    .gb-gallery-lightbox__keys { display:none; }
    .gb-gallery-lightbox__swipe { display:block; font-size:10px; color:#9caebb; margin:0; }
}
@media(max-width:380px) { .gb-gallery-container { width:calc(100% - 32px); } .gb-gallery-intro h1 { font-size:37px; } .gb-gallery-intro__actions { gap:13px; } .gb-gallery-spotlight__note { display:none; } .gb-gallery-search input::placeholder { font-size:11px; } .gb-gallery-sort select { width:108px; } .gb-gallery-search__clear { width:24px; } .gb-gallery-collection__heading h2 { font-size:23px; } }
@media(prefers-reduced-motion:reduce) { .gb-gallery *, .gb-gallery *::after { transition:none!important; scroll-behavior:auto!important; } }
