/* Only the public homepage and portal introduction gallery. */
.ha-gallery{background:linear-gradient(180deg,#f5f8fa 0%,#fff 100%);border-top:1px solid var(--line);padding-bottom:72px}
.ha-gallery-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;margin-bottom:34px}
.ha-gallery-intro>div{max-width:760px}.ha-gallery-intro h2{font-size:clamp(34px,4vw,50px);line-height:1.13;margin-bottom:18px}.ha-gallery-intro h2 em{color:var(--orange);font-weight:400}.ha-gallery-intro p{color:var(--ink-soft);font-size:16px;line-height:1.75;margin:0;max-width:690px}.ha-gallery-intro>.button{flex:none;margin-bottom:5px}
.ha-gallery-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}.ha-gallery.is-ready .ha-gallery-layout{grid-template-columns:minmax(0,1fr) 310px}.ha-gallery-stage{min-width:0;display:grid;gap:24px}.ha-gallery-slide{margin:0;background:#fff;border:1px solid #d4dfe7;border-radius:16px;overflow:hidden;box-shadow:0 12px 36px rgb(21 51 79 / 6%)}
.ha-gallery-image{display:block;position:relative;background:#f4f8fc;cursor:zoom-in;border-bottom:1px solid #dbe4eb;outline-offset:-4px!important}.ha-gallery-image img{width:100%;height:auto;aspect-ratio:2/1;object-fit:contain}.ha-gallery-image:focus-visible{outline:3px solid var(--orange)}.ha-gallery-zoom{position:absolute;right:12px;bottom:12px;padding:7px 12px;border:1px solid #d6e0e7;border-radius:7px;background:rgb(255 255 255 / 96%);color:var(--ink);font-size:12px;line-height:1.5;font-weight:650;box-shadow:0 3px 12px #15334f12}.ha-gallery-image:hover .ha-gallery-zoom{background:var(--ink);color:#fff;border-color:var(--ink)}
.ha-gallery-slide figcaption{padding:24px 28px 26px;min-height:182px}.ha-gallery-kicker{font-size:10px;letter-spacing:.13em;font-weight:750;color:var(--orange)}.ha-gallery-slide h3{font-size:22px;line-height:1.3;margin:10px 0}.ha-gallery-slide p{color:var(--ink-soft);font-size:14px;line-height:1.75;margin:0}
.ha-gallery-picker{display:grid;gap:10px}.ha-gallery-picker button{display:grid;grid-template-columns:32px minmax(0,1fr) 14px;align-items:center;gap:12px;min-height:94px;width:100%;padding:16px 18px;text-align:left;border:1px solid #d9e2e8;border-radius:11px;background:#fff;color:var(--ink);transition:background .15s,border-color .15s;position:relative}.ha-gallery-picker button:hover{border-color:var(--blue);background:var(--pale-blue)}.ha-gallery-picker button[aria-current=true]{background:var(--pale-orange);border-color:#d7a28d;box-shadow:inset 3px 0 var(--orange)}.ha-gallery-number{color:var(--orange);font:italic 23px var(--serif)}.ha-gallery-picker strong{display:block;font-size:14px;font-weight:700;line-height:1.4}.ha-gallery-picker small{display:block;color:var(--ink-soft);font-size:11px;line-height:1.5;margin-top:5px}.ha-gallery-picker button>span:last-child{color:var(--orange)}
.ha-gallery-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:24px;font-size:12px;color:var(--ink-soft)}.ha-gallery-bottom a{font-size:13px;flex:none}
.ha-gallery-dialog{padding:0;width:min(1500px,calc(100% - 48px));max-width:none;max-height:calc(100dvh - 40px);border:1px solid #ccd7e1;border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 30px 100px #071f3766;overflow:auto}.ha-gallery-dialog::backdrop{background:rgb(10 28 45 / 78%);backdrop-filter:blur(4px)}.ha-gallery-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 22px;border-bottom:1px solid #dde5eb}.ha-gallery-dialog-header h3{font:600 17px/1.4 var(--sans)}.ha-gallery-close,.ha-gallery-dialog-footer button{background:var(--pale-blue);color:var(--ink);border:1px solid #d1dce5;border-radius:7px;padding:9px 14px;min-height:44px;font-size:13px;line-height:1.4}.ha-gallery-close{display:flex;align-items:center;gap:10px}.ha-gallery-close span{font-size:24px;line-height:1}.ha-gallery-dialog-picture{padding:8px;background:#f5f8fb}.ha-gallery-dialog-picture img{width:100%;height:auto;max-height:calc(100dvh - 190px);object-fit:contain}.ha-gallery-dialog-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;font-size:13px}.ha-gallery-dialog-footer button:hover,.ha-gallery-close:hover{background:#dfeaf2}
@media(min-width:1600px){.ha-gallery-dialog{width:min(1700px,calc(100% - 64px))}}
@media(max-width:1000px){.ha-gallery-intro{align-items:flex-start;flex-direction:column;gap:20px}.ha-gallery.is-ready .ha-gallery-layout{grid-template-columns:minmax(0,1fr) 270px}.ha-gallery-picker button{padding:14px;gap:8px;min-height:92px}.ha-gallery-slide figcaption{padding:20px}.ha-gallery-slide h3{font-size:20px}}
@media(max-width:760px){.ha-gallery{padding-top:56px;padding-bottom:48px}.ha-gallery.is-ready .ha-gallery-layout{grid-template-columns:minmax(0,1fr);gap:18px}.ha-gallery-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ha-gallery-picker button{grid-template-columns:22px minmax(0,1fr);gap:9px;min-height:84px;padding:12px}.ha-gallery-picker button>span:last-child{display:none}.ha-gallery-picker button:last-child{grid-column:1/-1}.ha-gallery-picker strong{font-size:12px}.ha-gallery-picker small{font-size:10px}.ha-gallery-number{font-size:19px}.ha-gallery-slide figcaption{min-height:188px}.ha-gallery-intro p{font-size:14px}.ha-gallery-bottom{align-items:flex-start;flex-direction:column;gap:14px}.ha-gallery-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:10px}.ha-gallery-dialog-header{padding:12px;gap:10px}.ha-gallery-dialog-header h3{font-size:14px}.ha-gallery-dialog-footer{padding:12px}.ha-gallery-zoom{right:8px;bottom:8px;padding:5px 9px;font-size:10px}.ha-gallery-intro>.button{width:100%}}
@media(prefers-reduced-motion:reduce){.ha-gallery *{transition:none!important}}

/* The desktop picker follows the visible image/caption card height. */
@media(min-width:761px){
  .ha-gallery.is-ready .ha-gallery-picker{contain:size;min-height:0;align-self:stretch;grid-auto-rows:minmax(0,1fr);gap:8px}
  .ha-gallery.is-ready .ha-gallery-picker button{min-height:0;padding:8px 14px}
  .ha-gallery.is-ready .ha-gallery-picker button:focus-visible{outline-offset:-3px}
}
@media(min-width:761px) and (max-width:1000px){
  .ha-gallery.is-ready .ha-gallery-picker{gap:6px}
  .ha-gallery.is-ready .ha-gallery-picker button{padding:6px 10px;gap:8px}
  .ha-gallery.is-ready .ha-gallery-picker strong{font-size:12px}
  .ha-gallery.is-ready .ha-gallery-picker small{font-size:10px;margin-top:3px}
}
