/* GGCL-inspired collection cards, using the client's hotel photographs. */
#gallery{padding-block:54px 36px;max-width:1450px}
#gallery .title-row{margin-bottom:30px;gap:18px}
#gallery h2{font:400 clamp(34px,3.5vw,50px)/1.2 var(--serif);letter-spacing:-1px}
#gallery h2 em{color:#ad7c39;font-weight:400}
#gallery .eyebrow{color:#ad7c39}
#gallery .gallery-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;overflow:visible}
#gallery .gallery-rail>a{display:block;position:relative;aspect-ratio:auto;height:460px;border-radius:18px;overflow:hidden;background:#251b11;box-shadow:0 20px 40px -30px #3c322380}
#gallery .gallery-rail>a[hidden]{display:none}
#gallery .g-photo{display:block;position:absolute;inset:0;height:100%;aspect-ratio:auto}
#gallery .g-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
#gallery .gallery-rail>a:hover img{transform:scale(1.04)}
#gallery .gallery-rail>a:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#140f0909 20%,transparent 35%,#140f09dc 100%)}
#gallery .g-photo i{display:block;position:absolute;left:22px;top:22px;z-index:2;background:#251b1199;border:1px solid #ffffff26;border-radius:30px;padding:8px 12px;font:600 9px var(--sans);letter-spacing:1px;text-transform:uppercase;color:#fff}
#gallery .g-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;display:block;padding:28px;background:none;color:#fff;font-size:13px;line-height:1.65}
#gallery .g-cap b{display:block;margin-bottom:13px;font:400 clamp(23px,2vw,29px)/1.2 var(--serif);color:#fff;padding:0;text-transform:none}
#gallery .g-cap .gallery-description{display:block;color:#f4eee5;font:400 13px/1.65 var(--sans);max-width:95%}
#gallery .g-cap:after{content:none}
#gallery .gallery-rail>a:focus-visible{outline-offset:4px}
@media(min-width:1600px){#gallery .gallery-rail>a{height:510px}}
@media(max-width:1000px){#gallery .gallery-rail{grid-template-columns:repeat(2,minmax(0,1fr))}#gallery .gallery-rail>a{height:430px}}
@media(max-width:600px){#gallery{width:calc(100% - 36px);padding-top:32px}#gallery h2{font-size:33px}#gallery .gallery-rail{grid-template-columns:1fr;gap:18px}#gallery .gallery-rail>a{height:450px}#gallery .g-cap{padding:25px}#gallery .g-cap b{font-size:28px}#gallery .gallery-filters{justify-content:center;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){#gallery .g-photo img{transition:none}}

/* Premium editorial treatment for the dedicated gallery page. */
.gallery-page-hero{min-height:clamp(520px,68vh,720px);display:flex;align-items:flex-end;background-position:center 57%;position:relative;isolation:isolate}
.gallery-page-hero:before{background:linear-gradient(90deg,rgba(19,14,9,.82) 0%,rgba(19,14,9,.46) 44%,rgba(19,14,9,.1) 75%),linear-gradient(0deg,rgba(15,10,6,.72),transparent 62%)}
.gallery-page-hero:after{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.18);border-radius:inherit;z-index:-1;pointer-events:none}
.gallery-page-hero .page-hero-inner{padding-bottom:clamp(58px,8vw,96px)}
.gallery-page-hero .page-hero-inner>p{max-width:560px;font-size:clamp(14px,1.4vw,17px);line-height:1.75;color:rgba(255,255,255,.82)}
.gallery-page-hero .eyebrow{display:flex;align-items:center;gap:13px;letter-spacing:3px}
.gallery-page-hero .eyebrow:before{content:"";width:38px;height:1px;background:#d7aa67}
.gallery-page-body{position:relative;background:#f8f5ef;overflow:hidden}
.gallery-page-body:before{content:"";position:absolute;width:460px;height:460px;border-radius:50%;right:-250px;top:40px;background:radial-gradient(circle,rgba(190,145,78,.1),transparent 68%);pointer-events:none}
.gallery-collection{padding-top:clamp(68px,8vw,112px)!important;padding-bottom:clamp(70px,8vw,115px)!important}
.gallery-collection .title-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:end!important;text-align:left!important;gap:50px!important;margin-bottom:46px!important}
.gallery-collection .title-row>div:first-child{max-width:680px}
.gallery-collection .title-row p{max-width:570px;margin-top:13px!important;font-size:14px!important;line-height:1.8;color:#756b5e}
.gallery-collection .gallery-filters{padding:5px;background:rgba(255,255,255,.72);border:1px solid rgba(117,91,53,.12);border-radius:999px;box-shadow:0 10px 30px rgba(63,43,18,.06);flex-wrap:nowrap!important}
.gallery-collection .gallery-filters button{position:relative;padding:10px 18px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.3px;white-space:nowrap;transition:color .25s,background .25s,box-shadow .25s}
.gallery-collection .gallery-filters button.active{background:#a97838;color:#fff;box-shadow:0 6px 16px rgba(142,96,38,.25)}
.gallery-collection .gallery-rail{grid-template-columns:repeat(12,minmax(0,1fr))!important;grid-auto-flow:dense;grid-auto-rows:90px;gap:16px!important}
.gallery-collection .gallery-rail>a{grid-column:span 4;height:auto!important;grid-row:span 5;border-radius:4px!important;box-shadow:0 18px 45px rgba(53,38,19,.1)!important;transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s ease}
.gallery-collection .gallery-rail>a:first-child{grid-column:span 8}
.gallery-collection .gallery-rail>a:hover{transform:translateY(-5px);box-shadow:0 28px 65px rgba(53,38,19,.18)!important}
.gallery-collection .gallery-rail>a:after{background:linear-gradient(180deg,rgba(13,9,5,.06) 22%,transparent 43%,rgba(13,9,5,.86) 100%)}
.gallery-collection .g-photo img{transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .7s ease}
.gallery-collection .gallery-rail>a:hover img{transform:scale(1.055);filter:saturate(1.06)}
.gallery-collection .g-photo i{left:24px;top:24px;padding:8px 14px;background:rgba(28,20,12,.42);border-color:rgba(255,255,255,.3);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.gallery-collection .g-cap{padding:34px 32px 30px}
.gallery-collection .g-cap b{margin-bottom:8px;font-size:clamp(23px,2vw,31px)}
.gallery-collection .g-cap .gallery-description{max-width:440px;color:rgba(255,255,255,.78);transform:translateY(8px);opacity:.75;transition:transform .4s ease,opacity .4s ease}
.gallery-collection .gallery-rail>a:hover .gallery-description{transform:none;opacity:1}
.gallery-collection .section-action{margin-top:48px}

@media(max-width:1000px){
  .gallery-collection .title-row{grid-template-columns:1fr;align-items:start!important;gap:25px!important}
  .gallery-collection .gallery-filters{justify-self:start}
  .gallery-collection .gallery-rail{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:auto}
  .gallery-collection .gallery-rail>a,.gallery-collection .gallery-rail>a:nth-child(n){grid-column:span 1;grid-row:auto;height:450px!important}
  .gallery-collection .gallery-rail>a:first-child{grid-column:1/-1;height:520px!important}
}
@media(max-width:600px){
  .gallery-page-hero{min-height:570px}.gallery-page-hero:after{inset:10px}
  .gallery-page-hero .page-hero-inner{padding-bottom:58px}
  .gallery-page-hero h1{font-size:clamp(38px,11vw,46px);max-width:340px}.gallery-page-hero h1 em{display:block}
  .gallery-collection{width:calc(100% - 28px)!important;padding-top:58px!important}
  .gallery-collection .title-row{margin-bottom:30px!important;gap:22px!important}
  .gallery-collection .title-row p{font-size:13px!important}
  .gallery-collection .gallery-filters{width:100%;padding:4px;overflow-x:auto;justify-content:flex-start!important;scrollbar-width:none}
  .gallery-collection .gallery-filters::-webkit-scrollbar{display:none}
  .gallery-collection .gallery-filters button{flex:0 0 auto;padding:9px 14px}
  .gallery-collection .gallery-rail{grid-template-columns:1fr!important;gap:14px!important}
  .gallery-collection .gallery-rail>a,.gallery-collection .gallery-rail>a:nth-child(n),.gallery-collection .gallery-rail>a:first-child{grid-column:1;height:430px!important;border-radius:3px!important}
  .gallery-collection .g-cap{padding:28px 24px 25px}.gallery-collection .g-cap b{font-size:26px}.gallery-collection .g-photo i{left:18px;top:18px}
}
.g-play-icon{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:#ffffffe6;color:#20160a;display:flex;align-items:center;justify-content:center;font-size:18px;padding-left:4px;box-shadow:0 6px 18px #00000040;transition:transform .25s}
.g-photo:hover .g-play-icon{transform:translate(-50%,-50%) scale(1.08)}
