/* Gallery only: the shared header, footer and lightbox keep their existing styles. */
.gallery-hero{padding:60px 0 68px;background:var(--blue);color:#fff}
.gallery-hero__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:64px}
.gallery-hero__copy h1{margin-bottom:24px;color:#fff;font-size:clamp(3.1rem,4.8vw,4.65rem);line-height:1.02}
.gallery-hero__copy .lead{max-width:36ch;margin-bottom:0;color:#e4efff;font-size:1.05rem;line-height:1.8}
.gallery-hero__visual{padding:14px 12px 12px}
.gallery-hero__frame{position:relative;isolation:isolate;transform:rotate(1.4deg)}
.gallery-hero__frame::before{content:"";position:absolute;z-index:-1;inset:-12px 22px 22px -12px;border-radius:30px;background:var(--gold);transform:rotate(-3deg)}
.gallery-hero__frame picture{display:block;overflow:hidden;border:6px solid #fff;border-radius:26px;box-shadow:0 18px 36px rgba(0,20,50,.18)}
.gallery-hero__frame picture img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain}
.gallery-accent{position:absolute;pointer-events:none;user-select:none;max-width:none}
.gallery-hero__burst{width:32px;height:auto;left:calc(100% + 4px);bottom:calc(100% - 8px)}
.gallery-canvas{position:relative;isolation:isolate;background:var(--white)}
.gallery-canvas::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:0;right:0;bottom:0;height:min(100%,75vw);background:url("../assets/optimized/cta-background-1ac910c2-delivery.webp") center bottom / 100% auto no-repeat;mask-image:linear-gradient(to bottom,transparent,#000 22%)}
.gallery-page{padding:64px 0 0;background:transparent}
.gallery-page__heading{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:end;gap:64px;margin-bottom:36px}
.gallery-page__title{position:relative;max-width:580px}
.gallery-page__title h2{margin-bottom:0;max-width:16ch;font-size:clamp(2.5rem,3.5vw,3.5rem)}
.gallery-page__heading .lead{margin-bottom:2px;max-width:44ch;font-size:.96rem;line-height:1.8}
.gallery-page__star{width:36px;height:36px;left:-42px;top:36px;transform:rotate(-12deg)}
.gallery-grid{display:grid;grid-template-columns:1fr;gap:16px}
.gallery-band{display:grid;gap:16px;align-items:start}
.gallery-band--opening{grid-template-columns:16fr 9fr}
.gallery-band--discovery{grid-template-columns:9fr 9fr 16fr}
.gallery-band--practice{grid-template-columns:16fr 9fr 16fr}
.gallery-band--classroom{grid-template-columns:1fr 1fr}
.gallery-item:nth-child(n){position:relative;display:block;width:100%;min-width:0;grid-column:auto;grid-row:auto;margin:0;padding:0;border:0;border-radius:20px;overflow:hidden;background:var(--sky-2);cursor:zoom-in;text-align:left;box-shadow:0 5px 14px rgba(19,50,88,.09)}
.gallery-item::after{content:"";position:absolute;inset:0;border:4px solid #fff;border-radius:inherit;pointer-events:none}
.gallery-item img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;transition:filter .2s ease}
.gallery-item--portrait img{aspect-ratio:3/4}
.gallery-item:hover img,.gallery-item:focus-visible img{transform:none;filter:brightness(1.04)}
.gallery-item:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.gallery-item span{position:absolute;left:16px;right:auto;bottom:16px;max-width:calc(100% - 32px);padding:8px 12px;border-radius:10px;background:rgba(6,29,62,.92);color:#fff;font-size:.78rem;font-weight:600;line-height:1.5;opacity:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease}
.gallery-item:hover span,.gallery-item:focus-visible span{opacity:1;transform:none}
.gallery-enquiry{padding:56px 0 64px}
.gallery-enquiry__panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:48px;padding:44px 48px;border-radius:28px;background:var(--blue);box-shadow:0 14px 28px rgba(19,50,88,.12)}
.gallery-enquiry__copy h2{max-width:20ch;margin-bottom:14px;color:#fff;font-size:clamp(2.2rem,3.2vw,3rem)}
.gallery-enquiry__copy>p:last-child{max-width:58ch;margin:0;color:#e4efff;font-size:.94rem;line-height:1.8}
.gallery-enquiry__action{position:relative}
.gallery-enquiry__action .button{white-space:nowrap}
.gallery-enquiry__burst{width:28px;height:auto;left:calc(100% + 3px);bottom:calc(100% - 7px)}
@media(max-width:1100px){
  .gallery-hero__grid{gap:40px}
  .gallery-hero__burst{width:26px;left:calc(100% - 7px);bottom:calc(100% + 1px)}
  .gallery-page__heading{gap:40px}
  .gallery-page__star{display:none}
  .gallery-grid{display:block;columns:2;column-gap:16px}
  .gallery-band{display:contents}
  .gallery-item:nth-child(n){break-inside:avoid;margin:0 0 16px}
  .gallery-enquiry__panel{padding:36px;gap:32px}
  .gallery-enquiry__copy h2{font-size:2.35rem}
}
@media(max-width:900px){
  .gallery-hero{padding:44px 0 48px}
  .gallery-hero__grid{grid-template-columns:1fr 1fr;gap:28px}
  .gallery-hero__copy h1{font-size:clamp(2.7rem,5.5vw,3.5rem)}
  .gallery-hero__copy .lead{font-size:.94rem;line-height:1.75}
  .gallery-hero__visual{padding:12px 8px}
  .gallery-hero__frame picture{border-width:5px;border-radius:22px}
  .gallery-page{padding-top:48px}
  .gallery-page__heading{grid-template-columns:1fr;gap:20px;margin-bottom:28px}
  .gallery-page__title h2{max-width:none;font-size:2.8rem}
  .gallery-page__heading .lead{max-width:58ch}
  .gallery-enquiry{padding-top:32px}
  .gallery-enquiry__panel{grid-template-columns:1fr;gap:28px}
  .gallery-enquiry__action{justify-self:start}
}
@media(max-width:600px){
  .gallery-hero{padding:36px 0 40px}
  .gallery-hero__grid{grid-template-columns:1fr;gap:28px}
  .gallery-hero__copy h1{font-size:clamp(2.7rem,10.5vw,3.5rem);margin-bottom:18px}
  .gallery-hero__copy .lead{max-width:40ch}
  .gallery-hero__visual{padding:10px 8px 6px}
  .gallery-hero__frame::before{inset:-8px 18px 18px -8px;border-radius:24px}
  .gallery-hero__burst{width:22px;left:calc(100% - 7px);bottom:calc(100% + 1px)}
  .gallery-page{padding-top:40px}
  .gallery-page__title h2{max-width:15ch;font-size:clamp(2.15rem,9vw,2.7rem)}
  .gallery-page__heading{gap:16px;margin-bottom:24px}
  .gallery-page__heading .lead{font-size:.92rem}
  .gallery-grid{columns:auto}
  .gallery-item:nth-child(n){border-radius:18px;margin-bottom:16px}
  .gallery-item span{left:12px;bottom:12px;font-size:.74rem;opacity:1;transform:none}
  .gallery-canvas::before{height:640px;max-height:100%;background-size:auto 640px}
  .gallery-enquiry{padding:20px 0 40px}
  .gallery-enquiry__panel{padding:28px 24px;border-radius:24px}
  .gallery-enquiry__copy h2{font-size:2.2rem}
  .gallery-enquiry__copy>p:last-child{font-size:.9rem}
  .gallery-enquiry__action{width:100%}
  .gallery-enquiry__action .button{width:100%;min-width:0;white-space:normal;font-size:.9rem;padding-inline:12px}
  .gallery-enquiry__burst{width:22px;left:calc(100% - 4px);bottom:calc(100% + 1px)}
}
@media(prefers-reduced-motion:reduce){.gallery-item img,.gallery-item span{transition:none}}
