

/* ================= gallery page ================= */
.gpage{background:#faf9f7;padding-bottom:.75rem}
.ghero{position:relative;height:12rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  background-image:linear-gradient(to bottom,rgba(255,255,255,.50) 0,rgba(255,255,255,.68) 46%,rgba(255,255,255,.46) 100%),url(/media/gallery-header.jpg);
  background-size:cover,cover;background-position:center,center 58%}
.ghero h1{font-family:"Playfair Display",Georgia,serif;font-weight:400;font-size:3rem;line-height:1.1;letter-spacing:-.008em;margin:0;color:#16202a}
.ghero .srule{width:3.25rem;height:1px;background:#b99a5e;margin:1.125rem auto 0}

/* #6c7279 (4.62:1 on #faf9f7): the original #98a1aa darkened, same hue, to
   meet AA (15 Oct 2026); it was 2.49:1. */
.ghint{margin:0;padding:.75rem 0 0;text-align:center;font-size:.5625rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:#6c7279}
.railsec{padding:.75rem 0 0}

.railwrap{position:relative}
.rail{display:flex;gap:.375rem;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:auto}
.rail::-webkit-scrollbar{display:none}
.tile{flex:0 0 auto;margin:0;width:15.5rem;height:15.5rem;position:relative;overflow:hidden;background:#e8e6e1;cursor:zoom-in;border:0;padding:0}
.tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.tile:hover img{transform:scale(1.04)}
.railtall .tile{width:22rem;height:22rem}

.vtile{display:block}
.vtile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,20,28,.72) 0,rgba(10,20,28,0) 46%)}
.vplay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;width:3.5rem;height:3.5rem;border-radius:50%;
  background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;transition:transform .2s}
.vtile:hover .vplay{transform:translate(-50%,-50%) scale(1.08)}
.vplay svg{width:1.0625rem;height:1.0625rem;margin-left:.1875rem;fill:#16202a}
.vmeta{position:absolute;left:1.25rem;bottom:1.125rem;z-index:2;color:#fff;display:flex;flex-direction:column;gap:.25rem}
.vmeta b{font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.vmeta i{font-style:normal;font-size:.75rem;color:rgba(255,255,255,.82)}

.rnav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:2.125rem;height:2.125rem;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.94);color:#16202a;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(16,28,40,.18);transition:background .2s,transform .2s}
.rnav:hover{background:#fff;transform:translateY(-50%) scale(1.06)}
.rnav svg{width:.5625rem;height:.875rem}
.rprev{left:1rem}
.rnext{right:1rem}


.lbox{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;gap:1rem;padding:1.25rem;
  background:rgba(9,17,25,.9);opacity:0;transition:opacity .25s ease}
.lbox.open{display:flex}
.lbox.shown{opacity:1}
.lbfig{margin:0;display:flex;flex-direction:column;align-items:center;gap:1rem;transform:scale(.96);transition:transform .25s ease}
.lbox.shown .lbfig{transform:scale(1)}
.lbfig img{width:auto;height:auto;max-width:72vw;max-height:80vh;object-fit:contain;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.lbfig img[hidden],.lbvideo[hidden],.lbpending[hidden],.lbvideo iframe[hidden]{display:none}
.lbfig figcaption{display:flex;flex-direction:column;align-items:center;gap:.375rem;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.82);text-align:center}
.lbcount{font-size:.6875rem;letter-spacing:.16em;color:rgba(255,255,255,.62)}
/* video tiles play their Vimeo embed in a 16:9 frame the size a photo gets */
.lbvideo{position:relative;width:min(72vw,calc(80vh * 16 / 9));aspect-ratio:16/9;background:#000 center/cover no-repeat;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.lbvideo iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lbpending{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;padding:.75rem 1.25rem;background:rgba(9,17,25,.86);color:#fff;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
/* flex siblings of the figure, so they sit against the image rather than the
   screen edges; sized to match the rail arrows */
.lbnav{flex:0 0 auto;width:2.125rem;height:2.125rem;border-radius:50%;cursor:pointer;
  border:0;background:rgba(255,255,255,.94);color:#16202a;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 10px rgba(0,0,0,.3);transition:background .2s,transform .2s}
.lbnav:hover{background:#fff;transform:scale(1.06)}
.lbnav svg{width:.5625rem;height:.875rem}
.lbclose{position:absolute;top:1.75rem;right:1.75rem;width:2.875rem;height:2.875rem;border-radius:50%;cursor:pointer;
  border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.06);color:#fff;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}
.lbclose:hover{background:rgba(255,255,255,.16);border-color:#fff}
.lbclose svg{width:1rem;height:1rem}
@media (max-width:820px){
  .lbox{padding:12px;gap:8px}
  .lbfig img{max-height:74vh}
  .lbvideo{width:min(72vw,calc(74vh * 16 / 9))}
  .lbclose{top:14px;right:14px;width:40px;height:40px}
  .lbnav{width:30px;height:30px}
  .lbnav svg{width:8px;height:13px}
}

.hdr{background-color:#d9e5f3}
.mainnav a.here{border-bottom-color:#16202a}

@media (max-width:820px){
  .ghero{height:150px;padding:0 22px}
  .ghero h1{font-size:34px}
  .ghint{padding-top:12px;font-size:9px;letter-spacing:.18em}
  .railsec{padding-top:12px}
  .gpage{padding-bottom:12px}
  .tile{width:170px;height:170px}
  .railtall .tile{width:235px;height:235px}
  .rnav{width:30px;height:30px}
  .rprev{left:10px}
  .rnext{right:10px}
}

/* ---------- all 73 photos ---------- */
/* square tiles matching the rails, five across (about the rails' 15.5rem),
   two on a phone; same gap as the rails so it reads as one system */
/* a clear change of gear after the rails: far more space above than the
   .75rem between rails, then the hero h1's type and gold rule at section size */
.gridsec{padding:4.5rem 0 0}
.gridhead{text-align:center;margin:0 0 2.25rem}
.gridhead h2{font-family:"Playfair Display",Georgia,serif;font-weight:400;font-size:2.25rem;line-height:1.1;letter-spacing:-.008em;margin:0;color:#16202a}
.gridhead .srule{width:3.25rem;height:1px;background:#b99a5e;margin:1.125rem auto 0}
.pgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.375rem}
.pgrid .tile{width:auto;height:auto;aspect-ratio:1/1}
@media (max-width:820px){
  .gridsec{padding-top:44px}
  .gridhead{margin-bottom:22px;padding:0 22px}
  .gridhead h2{font-size:26px}
  .gridhead .srule{margin-top:14px}
  .pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .pgrid .tile{width:auto;height:auto}
}
