/* Page-specific grids for booking and reflection content. */
.booking-grid {
  --grid-gutter: calc(var(--mobile-site-gutter, 6vw) - 11px);
  --cell-max-width: calc((var(--page-max-width, 1500px) - (11px * (8 - 1))) / 8);
  display: grid;
  position: relative;
  grid-area: 1/1/-1/-1;
  grid-template-rows: repeat(16, minmax(24px, auto));
  grid-template-columns:
    minmax(var(--grid-gutter), 1fr) repeat(8, minmax(0, var(--cell-max-width)))
    minmax(var(--grid-gutter), 1fr);
  row-gap: 11px;
  column-gap: 11px;
  overflow-x: hidden;
  overflow-x: clip;
}
@media (min-width: 768px) {
  .booking-grid {
    --grid-gutter: calc(var(--site-gutter, 4vw) - 11px);
    --cell-max-width: calc((var(--page-max-width, 1500px) - (11px * (24 - 1))) / 24);
    --inset-padding: 0vw;
    --row-height-scaling-factor: 0.0215;
    --container-width: min(
      var(--page-max-width, 1500px),
      calc(100vw - var(--site-gutter, 4vw) * 2 - var(--inset-padding))
    );
    grid-template-rows: repeat(
      26,
      minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)
    );
    grid-template-columns:
      minmax(var(--grid-gutter), 1fr) repeat(24, minmax(0, var(--cell-max-width)))
      minmax(var(--grid-gutter), 1fr);
  }
}
.booking-intro {
  grid-area: 1/2/3/10;
  z-index: 3;
}
.booking-intro .content-block {
  justify-content: flex-start;
}
@media (min-width: 768px) {
  .booking-intro {
    grid-area: 3/4/15/15;
    z-index: 3;
  }
  .booking-intro .content-block {
    justify-content: flex-start;
  }
}
.booking-image {
  grid-area: 3/2/9/10;
  z-index: 4;
}
.booking-image .content-block {
  justify-content: center;
}
.booking-image .block-alignment {
  align-items: center;
}
@media (min-width: 768px) {
  .booking-image {
    grid-area: 15/4/24/13;
    z-index: 4;
  }
  .booking-image .content-block {
    justify-content: center;
  }
  .booking-image .block-alignment {
    align-items: center;
  }
}
.booking-calendar {
  grid-area: 9/2/17/10;
  z-index: 2;
}
.booking-calendar .content-block {
  justify-content: flex-start;
}
@media (min-width: 768px) {
  .booking-calendar {
    grid-area: 1/15/27/25;
    z-index: 2;
  }
  .booking-calendar .content-block {
    justify-content: flex-start;
  }
}
.booking-intro {
  mix-blend-mode: var(--tweak-text-block-blend);
  border-radius: var(--tweak-text-block-radius);
  --tweak-text-block-radius: 0px 0px 0px 0px;
  --tweak-text-block-blend: normal;
}

#contact-1-block-2 {
  --image-component-focal-point: 50% 50%;
  --image-component-object-fit: contain;
}
#contact-1-block-2 .fluid-image-container.visitor-mode {
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(white, black);
  clip-path: none;
  -webkit-clip-path: none;
}
#contact-1-block-2 .js-content-mode-element-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  display: none;
}
#contact-1-block-2 .js-content-mode-element-system_desktop {
  display: block;
}

.lamentforlent-grid-1 {
  --grid-gutter: calc(var(--mobile-site-gutter, 6vw) - 11px);
  --cell-max-width: calc((var(--page-max-width, 1500px) - (11px * (8 - 1))) / 8);
  display: grid;
  position: relative;
  grid-area: 1/1/-1/-1;
  grid-template-rows: repeat(9, minmax(24px, auto));
  grid-template-columns:
    minmax(var(--grid-gutter), 1fr) repeat(8, minmax(0, var(--cell-max-width)))
    minmax(var(--grid-gutter), 1fr);
  row-gap: 11px;
  column-gap: 11px;
  overflow-x: hidden;
  overflow-x: clip;
}
@media (min-width: 768px) {
  .lamentforlent-grid-1 {
    --grid-gutter: calc(var(--site-gutter, 4vw) - 11px);
    --cell-max-width: calc((var(--page-max-width, 1500px) - (11px * (24 - 1))) / 24);
    --inset-padding: 0vw;
    --row-height-scaling-factor: 0.0215;
    --container-width: min(
      var(--page-max-width, 1500px),
      calc(100vw - var(--site-gutter, 4vw) * 2 - var(--inset-padding))
    );
    grid-template-rows: repeat(
      3,
      minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)
    );
    grid-template-columns:
      minmax(var(--grid-gutter), 1fr) repeat(24, minmax(0, var(--cell-max-width)))
      minmax(var(--grid-gutter), 1fr);
  }
}
.lamentforlent-cell-1-1 {
  grid-area: 1/2/9/10;
  z-index: 0;
}
.lamentforlent-cell-1-1 .content-block {
  justify-content: flex-start;
}
@media (min-width: 768px) {
  .lamentforlent-cell-1-1 {
    grid-area: 1/4/3/24;
    z-index: 0;
  }
  .lamentforlent-cell-1-1 .content-block {
    justify-content: flex-start;
  }
}
.lamentforlent-cell-1-1 {
  mix-blend-mode: var(--tweak-text-block-blend);
  border-radius: var(--tweak-text-block-radius);
  --tweak-text-block-radius: 0px 0px 0px 0px;
  --tweak-text-block-blend: normal;
}

.lamentforlent-grid-2 {
  --grid-gutter: calc(var(--mobile-site-gutter, 6vw) - 11px);
  --cell-max-width: calc((var(--page-max-width, 1500px) - (11px * (8 - 1))) / 8);
  display: grid;
  position: relative;
  grid-area: 1/1/-1/-1;
  grid-template-rows: repeat(14, minmax(24px, auto));
  grid-template-columns:
    minmax(var(--grid-gutter), 1fr) repeat(8, minmax(0, var(--cell-max-width)))
    minmax(var(--grid-gutter), 1fr);
  row-gap: 11px;
  column-gap: 11px;
  overflow-x: hidden;
  overflow-x: clip;
}
@media (min-width: 768px) {
  .lamentforlent-grid-2 {
    --grid-gutter: calc(var(--site-gutter, 4vw) - 11px);
    --cell-max-width: calc((var(--page-max-width, 1500px) - (11px * (24 - 1))) / 24);
    --inset-padding: 0vw;
    --row-height-scaling-factor: 0.0215;
    --container-width: min(
      var(--page-max-width, 1500px),
      calc(100vw - var(--site-gutter, 4vw) * 2 - var(--inset-padding))
    );
    grid-template-rows: repeat(
      8,
      minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)
    );
    grid-template-columns:
      minmax(var(--grid-gutter), 1fr) repeat(24, minmax(0, var(--cell-max-width)))
      minmax(var(--grid-gutter), 1fr);
  }
}
.lamentforlent-cell-2-1 {
  grid-area: 1/2/15/10;
  z-index: 0;
}
.lamentforlent-cell-2-1 .content-block {
  justify-content: flex-start;
}
@media (min-width: 768px) {
  .lamentforlent-cell-2-1 {
    grid-area: 1/5/9/23;
    z-index: 0;
  }
  .lamentforlent-cell-2-1 .content-block {
    justify-content: flex-start;
  }
}
.lamentforlent-cell-2-1 {
  mix-blend-mode: var(--tweak-text-block-blend);
  border-radius: var(--tweak-text-block-radius);
  --tweak-text-block-radius: 0px 0px 0px 0px;
  --tweak-text-block-blend: normal;
}

.lamentforlent-grid-3 {
  --grid-gutter: calc(var(--mobile-site-gutter, 6vw) - 11px);
  --cell-max-width: calc((var(--page-max-width, 1500px) - (11px * (8 - 1))) / 8);
  display: grid;
  position: relative;
  grid-area: 1/1/-1/-1;
  grid-template-rows: repeat(20, minmax(24px, auto));
  grid-template-columns:
    minmax(var(--grid-gutter), 1fr) repeat(8, minmax(0, var(--cell-max-width)))
    minmax(var(--grid-gutter), 1fr);
  row-gap: 11px;
  column-gap: 11px;
  overflow-x: hidden;
  overflow-x: clip;
}
@media (min-width: 768px) {
  .lamentforlent-grid-3 {
    --grid-gutter: calc(var(--site-gutter, 4vw) - 11px);
    --cell-max-width: calc((var(--page-max-width, 1500px) - (11px * (24 - 1))) / 24);
    --inset-padding: 0vw;
    --row-height-scaling-factor: 0.0215;
    --container-width: min(
      var(--page-max-width, 1500px),
      calc(100vw - var(--site-gutter, 4vw) * 2 - var(--inset-padding))
    );
    grid-template-rows: repeat(
      22,
      minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)
    );
    grid-template-columns:
      minmax(var(--grid-gutter), 1fr) repeat(24, minmax(0, var(--cell-max-width)))
      minmax(var(--grid-gutter), 1fr);
  }
}
.lamentforlent-cell-3-1 {
  grid-area: 1/2/14/10;
  z-index: 0;
}
.lamentforlent-cell-3-1 .content-block {
  justify-content: center;
}
.lamentforlent-cell-3-1 .block-alignment {
  align-items: center;
}
@media (min-width: 768px) {
  .lamentforlent-cell-3-1 {
    grid-area: 9/2/21/13;
    z-index: 0;
  }
  .lamentforlent-cell-3-1 .content-block {
    justify-content: center;
  }
  .lamentforlent-cell-3-1 .block-alignment {
    align-items: center;
  }
}
.lamentforlent-cell-3-2 {
  grid-area: 14/2/16/10;
  z-index: 1;
}
.lamentforlent-cell-3-2 .content-block {
  justify-content: flex-start;
}
@media (min-width: 768px) {
  .lamentforlent-cell-3-2 {
    grid-area: 5/15/9/26;
    z-index: 1;
  }
  .lamentforlent-cell-3-2 .content-block {
    justify-content: flex-start;
  }
}
.lamentforlent-cell-3-3 {
  grid-area: 16/2/21/10;
  z-index: 2;
}
.lamentforlent-cell-3-3 .content-block {
  justify-content: flex-start;
}
@media (min-width: 768px) {
  .lamentforlent-cell-3-3 {
    grid-area: 9/15/23/26;
    z-index: 2;
  }
  .lamentforlent-cell-3-3 .content-block {
    justify-content: flex-start;
  }
}

#lamentforlent-block-3 {
  --image-component-focal-point: 50% 50%;
  --image-component-object-fit: cover;
}
#lamentforlent-block-3 .fluid-image-container.visitor-mode {
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(white, black);
  clip-path: none;
  -webkit-clip-path: none;
}
#lamentforlent-block-3 .js-content-mode-element-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  display: none;
}
#lamentforlent-block-3 .js-content-mode-element-system_desktop {
  display: block;
}
.lamentforlent-cell-3-2 {
  mix-blend-mode: var(--tweak-text-block-blend);
  border-radius: var(--tweak-text-block-radius);
  --tweak-text-block-radius: 0px 0px 0px 0px;
  --tweak-text-block-blend: normal;
}
.lamentforlent-cell-3-3 {
  mix-blend-mode: var(--tweak-text-block-blend);
  border-radius: var(--tweak-text-block-radius);
  --tweak-text-block-radius: 0px 0px 0px 0px;
  --tweak-text-block-blend: normal;
}

.lamentforlent-grid-4 {
  --grid-gutter: calc(var(--mobile-site-gutter, 6vw) - 11px);
  --cell-max-width: calc((var(--page-max-width, 1500px) - (11px * (8 - 1))) / 8);
  display: grid;
  position: relative;
  grid-area: 1/1/-1/-1;
  grid-template-rows: repeat(28, minmax(24px, auto));
  grid-template-columns:
    minmax(var(--grid-gutter), 1fr) repeat(8, minmax(0, var(--cell-max-width)))
    minmax(var(--grid-gutter), 1fr);
  row-gap: 11px;
  column-gap: 11px;
  overflow-x: hidden;
  overflow-x: clip;
}
@media (min-width: 900px) {
  .lamentforlent-grid-4 {
    --grid-gutter: calc(var(--site-gutter, 4vw) - 11px);
    --cell-max-width: calc((var(--page-max-width, 1500px) - (11px * (24 - 1))) / 24);
    --inset-padding: 0vw;
    --row-height-scaling-factor: 0.0215;
    --container-width: min(
      var(--page-max-width, 1500px),
      calc(100vw - var(--site-gutter, 4vw) * 2 - var(--inset-padding))
    );
    grid-template-rows: repeat(
      42,
      minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)
    );
    grid-template-columns:
      minmax(var(--grid-gutter), 1fr) repeat(24, minmax(0, var(--cell-max-width)))
      minmax(var(--grid-gutter), 1fr);
  }
}
.lamentforlent-cell-4-1 {
  grid-area: 1/2/3/10;
  z-index: 1;
}
.lamentforlent-cell-4-1 .content-block {
  justify-content: flex-start;
}
@media (min-width: 900px) {
  .lamentforlent-cell-4-1 {
    grid-area: 1/2/3/20;
    z-index: 1;
  }
  .lamentforlent-cell-4-1 .content-block {
    justify-content: flex-start;
  }
}
.lamentforlent-cell-4-2 {
  grid-area: 4/2/11/7;
  z-index: 2;
}
.lamentforlent-cell-4-2 .content-block {
  justify-content: center;
}
.lamentforlent-cell-4-2 .block-alignment {
  align-items: center;
}
@media (min-width: 900px) {
  .lamentforlent-cell-4-2 {
    grid-area: 6/2/16/8;
    z-index: 2;
  }
  .lamentforlent-cell-4-2 .content-block {
    justify-content: center;
  }
  .lamentforlent-cell-4-2 .block-alignment {
    align-items: center;
  }
}
.lamentforlent-cell-4-3 {
  grid-area: 11/2/21/9;
  z-index: 3;
}
.lamentforlent-cell-4-3 .content-block {
  justify-content: flex-start;
}
@media (min-width: 900px) {
  .lamentforlent-cell-4-3 {
    grid-area: 7/9/22/17;
    z-index: 3;
  }
  .lamentforlent-cell-4-3 .content-block {
    justify-content: flex-start;
  }
}
.lamentforlent-cell-4-4 {
  grid-area: 22/5/29/10;
  z-index: 4;
}
.lamentforlent-cell-4-4 .content-block {
  justify-content: center;
}
.lamentforlent-cell-4-4 .block-alignment {
  align-items: center;
}
@media (min-width: 900px) {
  .lamentforlent-cell-4-4 {
    grid-area: 7/19/15/24;
    z-index: 4;
  }
  .lamentforlent-cell-4-4 .content-block {
    justify-content: center;
  }
  .lamentforlent-cell-4-4 .block-alignment {
    align-items: center;
  }
}
.lamentforlent-cell-4-1 {
  mix-blend-mode: var(--tweak-text-block-blend);
  border-radius: var(--tweak-text-block-radius);
  --tweak-text-block-radius: 0px 0px 0px 0px;
  --tweak-text-block-blend: normal;
}

#lamentforlent-block-7 {
  --image-component-focal-point: 50% 50%;
  --image-component-object-fit: cover;
}
#lamentforlent-block-7 .fluid-image-container.visitor-mode {
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(white, black);
  clip-path: none;
  -webkit-clip-path: none;
}
#lamentforlent-block-7 .js-content-mode-element-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  display: none;
}
#lamentforlent-block-7 .js-content-mode-element-system_desktop {
  display: block;
}
.lamentforlent-cell-4-3 {
  mix-blend-mode: var(--tweak-text-block-blend);
  border-radius: var(--tweak-text-block-radius);
  --tweak-text-block-radius: 0px 0px 0px 0px;
  --tweak-text-block-blend: normal;
}

#lamentforlent-block-9 {
  --image-component-focal-point: 50% 50%;
  --image-component-object-fit: cover;
}
#lamentforlent-block-9 .fluid-image-container.visitor-mode {
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(white, black);
  clip-path: none;
  -webkit-clip-path: none;
}
#lamentforlent-block-9 .js-content-mode-element-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  display: none;
}
#lamentforlent-block-9 .js-content-mode-element-system_desktop {
  display: block;
}

.lamentforlent-grid-5 {
  --grid-gutter: calc(var(--mobile-site-gutter, 6vw) - 11px);
  --cell-max-width: calc((var(--page-max-width, 1500px) - (11px * (8 - 1))) / 8);
  display: grid;
  position: relative;
  grid-area: 1/1/-1/-1;
  grid-template-rows: repeat(1, minmax(24px, auto));
  grid-template-columns:
    minmax(var(--grid-gutter), 1fr) repeat(8, minmax(0, var(--cell-max-width)))
    minmax(var(--grid-gutter), 1fr);
  row-gap: 11px;
  column-gap: 11px;
  overflow-x: hidden;
  overflow-x: clip;
}
@media (min-width: 768px) {
  .lamentforlent-grid-5 {
    --grid-gutter: calc(var(--site-gutter, 4vw) - 11px);
    --cell-max-width: calc((var(--page-max-width, 1500px) - (11px * (24 - 1))) / 24);
    --inset-padding: 0vw;
    --row-height-scaling-factor: 0.0215;
    --container-width: min(
      var(--page-max-width, 1500px),
      calc(100vw - var(--site-gutter, 4vw) * 2 - var(--inset-padding))
    );
    grid-template-rows: repeat(
      1,
      minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)
    );
    grid-template-columns:
      minmax(var(--grid-gutter), 1fr) repeat(24, minmax(0, var(--cell-max-width)))
      minmax(var(--grid-gutter), 1fr);
  }
}


/* Responsive image gallery for the Visio Divina exercise. */
.visio-gallery-section {
  padding: clamp(2rem, 5vw, 5rem) max(1.25rem, 5vw);
}
.visio-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: clamp(1rem, 2.5vw, 2.5rem);
  width: min(100%, 1500px);
  margin-inline: auto;
}
.visio-gallery-item {
  min-width: 0;
  margin: 0;
}
.visio-gallery-item img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 900px) {
  .visio-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .visio-gallery-section {
    padding: 1.5rem 1rem 2.5rem;
  }
  .visio-gallery {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
  }
}

.visio-gallery-item--top-crop img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: center bottom;
}

@media (max-width: 1023px) {
  .booking-grid {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }
  .booking-intro,
  .booking-image,
  .booking-calendar {
    grid-area: auto;
  }
  .booking-intro {
    box-sizing: border-box;
    padding: clamp(1.25rem, 5vw, 2.5rem);
  }
  .booking-image {
    display: none;
  }
}
