/* Dedicated Sinis Gallery — Proposal 1 / Editorial Masonry */
body.gallery-page { background:#faf8f3; }
body.gallery-page main { overflow:hidden; }
.gallery-hero { position:relative; background:#f5eee4; border-bottom:1px solid #e4d8ca; }
.gallery-hero::after { content:""; position:absolute; left:0; bottom:0; width:260px; height:170px; background:url('assets/mediterranean-interlude.svg') no-repeat left bottom/contain; opacity:.20; pointer-events:none; }
.gallery-hero-inner { display:grid; grid-template-columns:minmax(330px,.78fr) minmax(0,1.22fr); align-items:stretch; min-height:510px; }
.gallery-hero-copy { position:relative; z-index:2; display:flex; flex-direction:column; justify-content:center; padding:clamp(58px,7vw,96px) clamp(32px,5vw,72px) clamp(58px,7vw,96px) 0; }
.gallery-hero-copy .section-kicker { margin-bottom:18px; }
.gallery-hero-copy h1 { max-width:520px; margin:0; color:var(--primary); font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(3.25rem,5.4vw,5.7rem); font-weight:600; line-height:.92; letter-spacing:-.035em; }
.gallery-hero-copy .lead { max-width:440px; margin:24px 0 0; color:#596466; font-size:1.05rem; line-height:1.7; }
.gallery-hero-image { position:relative; min-height:510px; overflow:hidden; }
.gallery-hero-image picture, .gallery-hero-image img { display:block; width:100%; height:100%; }
.gallery-hero-image img { object-fit:cover; object-position:center 54%; }
.gallery-hero-image::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,#f5eee4 0%,rgba(245,238,228,.82) 8%,rgba(245,238,228,.24) 24%,rgba(245,238,228,0) 42%); pointer-events:none; }
.gallery-collection { padding:clamp(18px,2vw,30px) 0 clamp(74px,8vw,118px); background:#faf8f3; }
.gallery-intro-line { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 0 28px; color:#687174; font-size:.84rem; letter-spacing:.03em; }
.gallery-intro-line span:first-child { text-transform:uppercase; color:var(--accent); font-weight:700; letter-spacing:.13em; }
.sinis-masonry { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-auto-rows:56px; grid-auto-flow:dense; gap:10px; }
.sinis-gallery-item { position:relative; overflow:hidden; display:block; width:100%; min-height:0; padding:0; border:0; border-radius:2px; background:#e8e1d6; cursor:zoom-in; }
.sinis-gallery-item picture, .sinis-gallery-item img { display:block; width:100%; height:100%; }
.sinis-gallery-item img { object-fit:cover; transition:transform .6s cubic-bezier(.2,.65,.3,1), filter .4s ease; }
.sinis-gallery-item::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 64%,rgba(8,31,37,.22)); opacity:0; transition:opacity .35s ease; pointer-events:none; }
.sinis-gallery-item:hover img, .sinis-gallery-item:focus-visible img { transform:scale(1.025); }
.sinis-gallery-item:hover::after, .sinis-gallery-item:focus-visible::after { opacity:1; }
.sinis-gallery-item:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.sinis-gallery-item.g-a { grid-column:span 7; grid-row:span 6; }
.sinis-gallery-item.g-b { grid-column:span 5; grid-row:span 6; }
.sinis-gallery-item.g-c { grid-column:span 4; grid-row:span 5; }
.sinis-gallery-item.g-d { grid-column:span 8; grid-row:span 5; }
.sinis-gallery-item.g-e { grid-column:span 5; grid-row:span 5; }
.sinis-gallery-item.g-f { grid-column:span 7; grid-row:span 5; }
.sinis-gallery-item.g-g { grid-column:span 4; grid-row:span 5; }
.sinis-gallery-item.g-h { grid-column:span 4; grid-row:span 5; }
.sinis-gallery-item.g-i { grid-column:span 4; grid-row:span 5; }
.sinis-gallery-item.g-j { grid-column:span 6; grid-row:span 5; }
.sinis-gallery-item.g-k { grid-column:span 6; grid-row:span 5; }
.sinis-gallery-item.g-l { grid-column:span 12; grid-row:span 6; }
.gallery-quote { position:relative; margin-top:10px; padding:clamp(62px,7vw,96px) 28px; overflow:hidden; text-align:center; background:#f5eee4; border-top:1px solid #e4d8ca; border-bottom:1px solid #e4d8ca; }
.gallery-quote::after { content:""; position:absolute; right:1%; bottom:-12px; width:220px; height:138px; background:url('assets/mediterranean-interlude.svg') no-repeat right bottom/contain; opacity:.18; transform:scaleX(-1); }
.gallery-quote blockquote { position:relative; z-index:1; max-width:760px; margin:0 auto; color:#34474c; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(2rem,3.2vw,3rem); line-height:1.14; font-weight:500; }
.gallery-quote blockquote::before { content:"“"; display:block; margin-bottom:8px; color:var(--accent); font-size:3rem; line-height:.65; }
.sinis-lightbox { width:100vw; max-width:none; height:100vh; max-height:none; margin:0; padding:0; border:0; background:#07171b; color:#fff; }
.sinis-lightbox::backdrop { background:rgba(0,0,0,.92); }
.sinis-lightbox[open] { display:grid; grid-template-columns:74px 1fr 74px; grid-template-rows:72px 1fr 72px; }
.sinis-lightbox figure { grid-column:2; grid-row:2; min-width:0; min-height:0; margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.sinis-lightbox figure img { max-width:100%; max-height:calc(100vh - 190px); width:auto; height:auto; object-fit:contain; box-shadow:0 18px 70px rgba(0,0,0,.28); }
.sinis-lightbox figcaption { min-height:28px; margin-top:16px; color:#e8e0d5; font-size:.9rem; letter-spacing:.02em; text-align:center; }
.sinis-lightbox button { border:0; background:transparent; color:#fff; cursor:pointer; }
.sinis-lightbox .sinis-lightbox-close { position:absolute; z-index:3; top:18px; right:22px; width:46px; height:46px; font-size:2rem; line-height:1; }
.sinis-lightbox .sinis-lightbox-prev, .sinis-lightbox .sinis-lightbox-next { align-self:center; width:58px; height:58px; font-size:2rem; opacity:.85; }
.sinis-lightbox .sinis-lightbox-prev { grid-column:1; grid-row:2; justify-self:center; }
.sinis-lightbox .sinis-lightbox-next { grid-column:3; grid-row:2; justify-self:center; }
.sinis-lightbox .sinis-lightbox-count { grid-column:2; grid-row:3; align-self:center; justify-self:center; color:#b9c1c1; font-size:.78rem; letter-spacing:.16em; }
@media (max-width:900px) {
 .gallery-hero-inner { grid-template-columns:1fr; }
 .gallery-hero-copy { padding:58px 0 42px; }
 .gallery-hero-image { min-height:390px; margin-inline:calc(50% - 50vw); }
 .gallery-hero-image::before { background:linear-gradient(180deg,#f5eee4 0%,rgba(245,238,228,.55) 10%,rgba(245,238,228,0) 30%); }
 .sinis-masonry { grid-auto-rows:48px; }
 .sinis-gallery-item.g-a,.sinis-gallery-item.g-d,.sinis-gallery-item.g-f,.sinis-gallery-item.g-l { grid-column:span 12; }
 .sinis-gallery-item.g-b,.sinis-gallery-item.g-e,.sinis-gallery-item.g-j,.sinis-gallery-item.g-k { grid-column:span 6; }
 .sinis-gallery-item.g-c,.sinis-gallery-item.g-g,.sinis-gallery-item.g-h,.sinis-gallery-item.g-i { grid-column:span 6; }
}
@media (max-width:620px) {
 .gallery-hero::after { width:160px; height:104px; }
 .gallery-hero-copy h1 { font-size:clamp(3rem,15vw,4.4rem); }
 .gallery-hero-image { min-height:290px; }
 .gallery-intro-line { align-items:flex-start; flex-direction:column; gap:8px; }
 .sinis-masonry { grid-template-columns:1fr 1fr; grid-auto-rows:82px; gap:7px; }
 .sinis-gallery-item.g-a,.sinis-gallery-item.g-b,.sinis-gallery-item.g-c,.sinis-gallery-item.g-d,.sinis-gallery-item.g-e,.sinis-gallery-item.g-f,.sinis-gallery-item.g-g,.sinis-gallery-item.g-h,.sinis-gallery-item.g-i,.sinis-gallery-item.g-j,.sinis-gallery-item.g-k,.sinis-gallery-item.g-l { grid-column:span 1; grid-row:span 2; }
 .sinis-gallery-item.g-a,.sinis-gallery-item.g-d,.sinis-gallery-item.g-f,.sinis-gallery-item.g-l { grid-column:span 2; grid-row:span 3; }
 .sinis-lightbox[open] { grid-template-columns:52px 1fr 52px; grid-template-rows:64px 1fr 60px; }
 .sinis-lightbox figure img { max-height:calc(100vh - 170px); }
 .sinis-lightbox .sinis-lightbox-close { right:8px; top:9px; }
}
@media (prefers-reduced-motion:reduce) { .sinis-gallery-item img { transition:none; } }

/* Gallery v2: focal-point cropping and CWV-friendly progressive rendering */
.sinis-gallery-item{background:#e7dfd3;content-visibility:auto;contain-intrinsic-size:420px 540px}
.sinis-gallery-item img{object-position:var(--focus-x,50%) var(--focus-y,50%)}
.gallery-hero-image img{object-position:center 58%}
@media(max-width:620px){.sinis-gallery-item{contain-intrinsic-size:180px 220px}}


/* Gallery puzzle v3 — smaller photos, always shown in full */
.sinis-masonry {
  display:block;
  column-count:5;
  column-gap:10px;
}
.sinis-gallery-item,
.sinis-gallery-item.g-a,
.sinis-gallery-item.g-b,
.sinis-gallery-item.g-c,
.sinis-gallery-item.g-d,
.sinis-gallery-item.g-e,
.sinis-gallery-item.g-f,
.sinis-gallery-item.g-g,
.sinis-gallery-item.g-h,
.sinis-gallery-item.g-i,
.sinis-gallery-item.g-j,
.sinis-gallery-item.g-k,
.sinis-gallery-item.g-l {
  display:inline-block;
  width:100%;
  height:auto;
  min-height:0;
  margin:0 0 10px;
  break-inside:avoid;
  grid-column:auto;
  grid-row:auto;
  background:#f2ece3;
  content-visibility:visible;
  contain:none;
  vertical-align:top;
}
.sinis-gallery-item picture {
  display:block;
  width:100%;
  height:auto;
}
.sinis-gallery-item img {
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
  background:#f2ece3;
}
.sinis-gallery-item:hover img,
.sinis-gallery-item:focus-visible img {
  transform:scale(1.012);
}
@media (max-width:1200px) {
  .sinis-masonry { column-count:4; }
}
@media (max-width:900px) {
  .sinis-masonry { column-count:3; }
}
@media (max-width:620px) {
  .sinis-masonry { column-count:2; column-gap:7px; }
  .sinis-gallery-item,
  .sinis-gallery-item.g-a,
  .sinis-gallery-item.g-b,
  .sinis-gallery-item.g-c,
  .sinis-gallery-item.g-d,
  .sinis-gallery-item.g-e,
  .sinis-gallery-item.g-f,
  .sinis-gallery-item.g-g,
  .sinis-gallery-item.g-h,
  .sinis-gallery-item.g-i,
  .sinis-gallery-item.g-j,
  .sinis-gallery-item.g-k,
  .sinis-gallery-item.g-l { margin-bottom:7px; }
}


/* Booking CTA replacing the closing quote */
.gallery-booking-cta {
  position:relative;
  overflow:hidden;
  margin-top:10px;
  padding:clamp(64px,7vw,92px) 0;
  background:#123f4a;
  color:#fff;
}
.gallery-booking-cta::after {
  content:"";
  position:absolute;
  right:-24px;
  bottom:-18px;
  width:250px;
  height:156px;
  background:url('assets/mediterranean-interlude.svg') no-repeat right bottom/contain;
  opacity:.12;
  filter:brightness(0) invert(1);
  pointer-events:none;
}
.gallery-booking-cta-inner {
  position:relative; z-index:1;
  display:flex; align-items:center; justify-content:space-between;
  gap:48px;
}
.gallery-booking-cta .section-kicker { color:#e5a07f; }
.gallery-booking-cta h2 {
  max-width:760px; margin:8px 0 14px; color:#fff;
  font-size:clamp(2.35rem,4vw,4rem); line-height:1;
}
.gallery-booking-cta p:not(.section-kicker) { max-width:720px; margin:0; color:#d9e5e7; line-height:1.7; }
.gallery-booking-cta .button-light { flex:0 0 auto; }
@media(max-width:760px){
  .gallery-booking-cta-inner{flex-direction:column;align-items:flex-start;gap:28px}
  .gallery-booking-cta .button-light{width:100%;justify-content:center}
}

/* Ensure Gallery booking CTA title stays white against the dark background */
body.mediterranean-site .gallery-booking-cta h2 { color:#fff !important; }
