/* Section layouts. Mobile placement comes first; desktop overrides follow.
   Shared typography and components live in site.css. */

/* about-introduction */
.about-introduction {
  --rows: 22;
}
.about-introduction .text-1 {
  grid-area: 1/2/4/10;
  justify-content: flex-start;
  z-index: 0;
}
.about-introduction .text-2 {
  grid-area: 4/2/23/10;
  justify-content: flex-start;
  z-index: 1;
}
@media (min-width: 768px) {
  .about-introduction {
    --rows: 12;
  }
  .about-introduction .text-1 {
    grid-area: 1/2/4/12;
    justify-content: flex-start;
    z-index: 0;
  }
  .about-introduction .text-2 {
    grid-area: 1/14/12/26;
    justify-content: flex-start;
    z-index: 1;
  }
}

/* about-photo */
.about-photo {
  --rows: 1;
}
.about-photo > .section-photo {
  object-position: 50% 50%;
}
@media (min-width: 768px) {
  .about-photo {
    --rows: 17;
  }
}

/* buy-introduction */
.buy-introduction {
  --rows: 14;
}
.buy-introduction .photo-1 {
  grid-area: 1/2/5/10;
  z-index: 2;
}
.buy-introduction .photo-1 img {
  position: absolute;
  inset: 0;
  object-position: 50% 50%;
}
.buy-introduction .text-1 {
  display: flex;
  color: var(--cream);
  grid-area: 2/3/4/9;
  justify-content: center;
  z-index: 3;
}
.buy-introduction .text-2 {
  grid-area: 6/2/8/10;
  justify-content: flex-start;
  z-index: 1;
}
.buy-introduction .text-3 {
  grid-area: 8/2/13/10;
  justify-content: flex-start;
  z-index: 4;
}
.buy-introduction .text-4 {
  grid-area: 13/2/15/10;
  justify-content: flex-start;
  z-index: 5;
}
@media (min-width: 768px) {
  .buy-introduction {
    --rows: 24;
  }
  .buy-introduction h1 {
    font-size: min(calc(7.2vw + var(--heading-base)), 119px);
  }
  .buy-introduction .photo-1 {
    grid-area: 1/2/16/26;
    z-index: 2;
  }
  .buy-introduction .text-1 {
    grid-area: 10/3/17/21;
    justify-content: center;
    z-index: 3;
  }
  .buy-introduction .text-2 {
    grid-area: 18/3/22/12;
    justify-content: flex-start;
    z-index: 0;
  }
  .buy-introduction .text-3 {
    grid-area: 18/14/22/25;
    justify-content: flex-start;
    z-index: 4;
  }
  .buy-introduction .text-4 {
    grid-area: 22/14/25/25;
    justify-content: flex-start;
    z-index: 5;
  }
}

/* buy-spacer */
.buy-spacer {
  --rows: 1;
}
@media (min-width: 768px) {
  .buy-spacer {
    --rows: 1;
  }
}

/* buy-b-grade-introduction */
.buy-b-grade-introduction {
  --rows: 14;
}
.buy-b-grade-introduction .photo-1 {
  grid-area: 1/2/5/10;
  z-index: 2;
}
.buy-b-grade-introduction .photo-1 img {
  object-position: 50% 50%;
}
.buy-b-grade-introduction .text-1 {
  grid-area: 2/3/4/9;
  justify-content: center;
  z-index: 3;
}
.buy-b-grade-introduction .text-2 {
  grid-area: 6/2/8/10;
  justify-content: flex-start;
  z-index: 1;
}
.buy-b-grade-introduction .text-3 {
  grid-area: 8/2/13/10;
  justify-content: flex-start;
  z-index: 4;
}
.buy-b-grade-introduction .text-4 {
  grid-area: 13/2/15/10;
  justify-content: flex-start;
  z-index: 5;
}
@media (min-width: 768px) {
  .buy-b-grade-introduction {
    --rows: 24;
  }
  .buy-b-grade-introduction .photo-1 {
    grid-area: 1/2/16/26;
    z-index: 2;
  }
  .buy-b-grade-introduction .text-1 {
    grid-area: 10/3/17/21;
    justify-content: center;
    z-index: 3;
  }
  .buy-b-grade-introduction .text-2 {
    grid-area: 18/4/22/13;
    justify-content: flex-start;
    z-index: 0;
  }
  .buy-b-grade-introduction .text-3 {
    grid-area: 18/13/22/24;
    justify-content: flex-start;
    z-index: 4;
  }
  .buy-b-grade-introduction .text-4 {
    grid-area: 22/13/25/24;
    justify-content: flex-start;
    z-index: 5;
  }
}

/* buy-b-grade-spacer */
.buy-b-grade-spacer {
  --rows: 1;
}
@media (min-width: 768px) {
  .buy-b-grade-spacer {
    --rows: 1;
  }
}

/* Contact: allow a useful form width before introducing decorative side photographs. */
.contact-instant-camera-hire-contact .section-grid {
  width: min(1600px, calc(100% - var(--gutter) * 2));
  margin-inline: auto;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto;
  gap: 48px;
}
.contact-instant-camera-hire-contact .text-1 { grid-area: 1 / 1; width: min(100%, 800px); margin-inline: auto; }
.contact-instant-camera-hire-contact .form-1 { grid-area: 2 / 1; width: min(100%, 640px); margin-inline: auto; z-index: 2; }
.contact-instant-camera-hire-contact .text-2 { grid-area: 3 / 1; }
.contact-instant-camera-hire-contact .photo-1 { grid-area: 4 / 1; border-radius: 36px; overflow: hidden; }
.contact-instant-camera-hire-contact .photo-2 { display: none; }
.contact-instant-camera-hire-contact .photo-3 { grid-area: 5 / 1; border-radius: 36px; overflow: hidden; }
.contact-instant-camera-hire-contact :is(.photo-1, .photo-3) img { aspect-ratio: 4 / 3; object-fit: cover; }
.contact-instant-camera-hire-contact .map-1 { grid-area: 6 / 1; min-height: 320px; }
@media (min-width: 1100px) {
  .contact-instant-camera-hire-contact .section-grid { grid-template-columns: minmax(0, 1fr) minmax(480px, 640px) minmax(0, 1fr); gap: 48px; }
  .contact-instant-camera-hire-contact .text-1 { grid-column: 1 / -1; }
  .contact-instant-camera-hire-contact .form-1 { grid-area: 2 / 2; }
  .contact-instant-camera-hire-contact .photo-1 { grid-area: 2 / 1; align-self: end; }
  .contact-instant-camera-hire-contact .photo-3 { grid-area: 2 / 3; }
  .contact-instant-camera-hire-contact .photo-3 img { height: 100%; aspect-ratio: auto; }
  .contact-instant-camera-hire-contact .text-2 { grid-area: 3 / 1 / 4 / -1; }
  .contact-instant-camera-hire-contact .map-1 { grid-area: 4 / 1 / 5 / -1; }
}
/* Contact details and the original inset white enquiry panel. */
.contact-instant-camera-hire-contact .rich-text a {
  color: inherit;
}
.contact-instant-camera-hire-contact .enquiry-form {
  width: 100%;
  padding: clamp(24px, 4vw, 48px);
  background: #fff;
  color: var(--rust);
  line-height: 1.2;
}
.contact-instant-camera-hire-contact .form-field {
  margin-bottom: 20px;
}
.contact-instant-camera-hire-contact .form-field label {
  margin-bottom: 4px;
  line-height: 1.2;
}
.contact-instant-camera-hire-contact .required-note {
  font-size: 0.9em;
  opacity: 0.7;
}
.contact-instant-camera-hire-contact .form-field input,
.contact-instant-camera-hire-contact .form-field textarea {
  padding: 5px 0;
  font: inherit;
  line-height: 1.2;
  border-bottom-color: rgba(184, 105, 61, 0.45);
}
.contact-instant-camera-hire-contact .form-field textarea {
  height: 100px;
  resize: vertical;
}
.contact-instant-camera-hire-contact .field-help {
  margin: 0 0 4px;
  padding: 0.5em 0;
  font-size: 0.9em;
  line-height: 1.2;
}
.contact-instant-camera-hire-contact .enquiry-form > .button {
  width: auto;
  padding: 1em 1.3em;
  background: var(--rust);
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
}
/* feedback-form-introduction */
.feedback-form-introduction {
  --rows: 5;
}
.feedback-form-introduction .text-1 {
  grid-area: 1/2/6/10;
  justify-content: flex-start;
  z-index: 0;
}
@media (min-width: 768px) {
  .feedback-form-introduction {
    --rows: 7;
  }
  .feedback-form-introduction .text-1 {
    grid-area: 1/7/8/21;
    justify-content: flex-start;
    z-index: 0;
  }
}

/* feedback-form-questions */
.feedback-form-questions {
  --rows: 35;
}
.feedback-form-questions .photo-1 {
  grid-area: 1/2/6/7;
  z-index: 3;
}
.feedback-form-questions .photo-1 img {
  object-position: 50% 50%;
}
.feedback-form-questions .photo-1 {
  border-radius: 20px;
  overflow: hidden;
  z-index: 3;
}
.feedback-form-questions .photo-2 {
  grid-area: 1/7/6/10;
  z-index: 4;
}
.feedback-form-questions .photo-2 img {
  object-position: 50% 50%;
}
.feedback-form-questions .photo-2 {
  border-radius: 20px;
  overflow: hidden;
  z-index: 4;
}
.feedback-form-questions .form-1 {
  grid-area: 7/2/34/10;
  justify-content: flex-start;
  z-index: 2;
}
@media (min-width: 768px) {
  .feedback-form-questions {
    --rows: 31;
  }
  .feedback-form-questions .photo-1 {
    grid-area: 1/4/8/12;
    z-index: 3;
  }
  .feedback-form-questions .photo-2 {
    grid-area: 10/4/18/12;
    z-index: 4;
  }
  .feedback-form-questions .form-1 {
    grid-area: 1/14/30/24;
    justify-content: flex-start;
    z-index: 2;
  }
}

/* guides-advice-introduction */
.guides-advice-introduction {
  --rows: 2;
}
.guides-advice-introduction .text-1 {
  grid-area: 1/2/3/10;
  justify-content: flex-start;
  z-index: 1;
}
@media (min-width: 768px) {
  .guides-advice-introduction {
    --rows: 7;
  }
  .guides-advice-introduction .text-1 {
    grid-area: 1/2/8/20;
    justify-content: flex-start;
    z-index: 1;
  }
}

/* guides-advice-category-advice-introduction */
.guides-advice-category-advice-introduction {
  --rows: 2;
}
.guides-advice-category-advice-introduction .text-1 {
  grid-area: 1/2/3/10;
  justify-content: flex-start;
  z-index: 1;
}
@media (min-width: 768px) {
  .guides-advice-category-advice-introduction {
    --rows: 7;
  }
  .guides-advice-category-advice-introduction .text-1 {
    grid-area: 1/2/8/20;
    justify-content: flex-start;
    z-index: 1;
  }
}

/* Home introduction and Highlights have equal breathing room around the second block. */
.home-introduction { --highlights-space: clamp(120px, 13vw, 208px); padding-bottom: 0; }
.home-introduction .section-grid {
  width: min(var(--content-max), calc(100% - var(--gutter) * 2));
  margin-inline: auto;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto;
  grid-template-areas: "copy" "photo" "highlights";
  column-gap: clamp(32px, 5vw, 80px);
  row-gap: 0;
}
.home-intro-copy { grid-area: copy; display: flex; flex-direction: column; gap: 28px; align-self: center; min-width: 0; }
.home-intro-copy .text-1, .home-intro-copy .action-1 { grid-area: auto; }
.home-intro-copy :is(h1, h2) { font-size: clamp(38px, 5vw, 92px); line-height: 1.06; margin-bottom: 32px; }
.home-intro-copy .text-1 > :last-child { margin-bottom: 0; }
.home-intro-copy .action-1 { align-items: flex-start; }
.home-intro-copy .button { width: min(100%, 440px); }
.home-introduction .photo-1 { grid-area: photo; margin-top: 32px; border-radius: 40px; overflow: hidden; }
.home-introduction .photo-1 img { object-position: 43.6% 36%; aspect-ratio: 4 / 5; }
.home-highlights {
  grid-area: highlights;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "title" "questions" "photo";
  gap: 24px;
  margin-block: var(--highlights-space);
}
.home-introduction .text-2 { grid-area: title; }
.home-highlights .text-2 h2 { margin-bottom: 0; }
.home-introduction .questions-1 { grid-area: questions; }
.home-introduction .photo-2 { grid-area: photo; border-radius: 40px; overflow: hidden; }
.home-introduction .photo-2 img { object-position: 27.6% 40.8%; aspect-ratio: 4 / 3; }
@media (min-width: 900px) {
  .home-introduction .section-grid {
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    grid-template-areas: "photo copy" "highlights highlights";
  }
  .home-introduction .photo-1 { margin-top: 0; }
  .home-highlights {
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    grid-template-areas: "title photo" "questions photo";
    column-gap: clamp(32px, 5vw, 80px);
  }
}

/* home-photo-banner */
.home-photo-banner {
  --rows: 7;
}
.home-photo-banner > .section-photo {
  object-position: 50% 68.00850106263283%;
}
@media (min-width: 768px) {
  .home-photo-banner {
    --rows: 27;
  }
}

/* home-testimonial-collage */
.home-testimonial-collage {
  --rows: 42;
}
.home-testimonial-collage .photo-1 {
  grid-area: 1/2/8/10;
  z-index: 2;
}
.home-testimonial-collage .photo-1 img {
  object-position: 50% 50%;
}
.home-testimonial-collage .photo-1 {
  border-radius: 40px;
  overflow: hidden;
  z-index: 1;
}
.home-testimonial-collage .text-1 {
  grid-area: 9/2/19/10;
  justify-content: center;
  z-index: 1;
}
.home-testimonial-collage .photo-2 {
  grid-area: 24/4/33/10;
  z-index: 4;
}
.home-testimonial-collage .photo-2 img {
  object-position: 50% 50%;
}
.home-testimonial-collage .photo-2 {
  border-radius: 24px;
  overflow: hidden;
  z-index: 2;
}
.home-testimonial-collage .photo-3 {
  grid-area: 20/2/28/7;
  z-index: 3;
}
.home-testimonial-collage .photo-3 img {
  object-position: 50% 50%;
}
.home-testimonial-collage .photo-3 {
  border-radius: 24px;
  overflow: hidden;
  z-index: 3;
}
@media (min-width: 768px) {
  .home-testimonial-collage {
    --rows: 48;
  }
  .home-testimonial-collage .photo-1 {
    grid-area: 17/4/31/24;
    z-index: 1;
  }
  .home-testimonial-collage .text-1 {
    grid-area: 1/6/9/22;
    justify-content: center;
    z-index: 4;
  }
  .home-testimonial-collage .photo-2 {
    grid-area: 27/2/43/10;
    z-index: 2;
  }
  .home-testimonial-collage .photo-3 {
    grid-area: 35/18/47/26;
    z-index: 3;
  }
}

/* Why hire: stack before the prose becomes a narrow column; keep the CTA in its flow. */
.home-why-hire .section-grid {
  width: min(var(--content-max), calc(100% - var(--gutter) * 2));
  margin-inline: auto;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto;
  gap: clamp(32px, 5vw, 80px);
}
.home-why-copy {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
}
.home-why-copy :is(.text-1, .text-2, .action-1) { grid-area: auto; }
.home-why-copy .text-1 h2 { font-size: clamp(38px, 4.6vw, 84px); line-height: 1.08; margin-bottom: 0; }
.home-why-copy .text-2 > :last-child { margin-bottom: 0; }
.home-why-copy .action-1 { margin-top: 8px; align-items: flex-start; }
.home-why-copy .button { width: min(100%, 360px); white-space: nowrap; }
.home-why-hire .photo-1 { grid-area: auto; align-self: center; aspect-ratio: 3 / 2; border-radius: 36px; overflow: hidden; }
.home-why-hire .photo-1 img { object-position: center; }
@media (min-width: 1200px) {
  .home-why-hire .section-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
  .home-why-hire .photo-1 { aspect-ratio: 3 / 4; }
}

/* home-call-to-action */
.home-call-to-action {
  --rows: 9;
}
.home-call-to-action .marquee-1 {
  grid-area: 1/1/6/11;
  justify-content: center;
  z-index: 1;
}
.home-call-to-action .action-1 {
  grid-area: 6/2/8/10;
  justify-content: center;
  z-index: 2;
}
@media (min-width: 768px) {
  .home-call-to-action {
    --rows: 7;
  }
  .home-call-to-action .marquee-1 {
    grid-area: 1/1/4/27;
    justify-content: flex-start;
    z-index: 1;
  }
  .home-call-to-action .action-1 {
    grid-area: 5/11/7/17;
    justify-content: center;
    z-index: 2;
  }
}

/* packages-introduction */
.packages-introduction {
  --rows: 29;
}
.packages-introduction .text-1 {
  grid-area: 1/2/8/10;
  justify-content: flex-start;
  z-index: 5;
}
.packages-introduction .text-2 {
  grid-area: 8/2/24/10;
  justify-content: flex-start;
  z-index: 6;
}
.packages-introduction .action-1 {
  grid-area: 25/2/27/10;
  justify-content: center;
  z-index: 8;
}
.packages-introduction .action-2 {
  grid-area: 28/2/30/10;
  justify-content: center;
  z-index: 7;
}
@media (min-width: 768px) {
  .packages-introduction {
    --rows: 20;
  }
  .packages-introduction .text-1 {
    grid-area: 1/5/6/23;
    justify-content: flex-start;
    z-index: 5;
  }
  .packages-introduction .text-2 {
    grid-area: 6/5/19/22;
    justify-content: flex-start;
    z-index: 6;
  }
  .packages-introduction .action-1 {
    grid-area: 18/5/20/12;
    justify-content: center;
    z-index: 8;
  }
  .packages-introduction .action-2 {
    grid-area: 18/13/20/20;
    justify-content: center;
    z-index: 7;
  }
}

/* packages-dates */
.packages-dates {
  --rows: 25;
}
.packages-dates .panel-1 {
  grid-area: 1/1/17/11;
  justify-content: center;
  z-index: 3;
}
.packages-dates .panel-1 {
  background: var(--sage);
  z-index: 1;
}
.packages-dates .text-1 {
  grid-area: 4/2/8/10;
  justify-content: flex-start;
  z-index: 4;
}
.packages-dates .text-2 {
  grid-area: 8/2/15/10;
  justify-content: flex-start;
  z-index: 5;
}
.packages-dates .text-3 {
  grid-area: 19/2/21/10;
  justify-content: flex-start;
  z-index: 7;
}
.packages-dates .booking-1 {
  grid-area: 22/2/25/10;
  justify-content: flex-start;
  z-index: 6;
}
@media (min-width: 768px) {
  .packages-dates {
    --rows: 19;
  }
  .packages-dates .panel-1 {
    grid-area: 1/14/20/27;
    justify-content: center;
    z-index: 1;
  }
  .packages-dates .text-1 {
    grid-area: 5/3/10/11;
    justify-content: flex-start;
    z-index: 4;
  }
  .packages-dates .text-2 {
    grid-area: 10/3/18/11;
    justify-content: flex-start;
    z-index: 5;
  }
  .packages-dates .text-3 {
    grid-area: 7/17/10/26;
    width: calc(100% + 24px);
    justify-content: flex-start;
    z-index: 7;
  }
  .packages-dates .booking-1 {
    grid-area: 10/17/11/24;
    justify-content: flex-start;
    z-index: 6;
  }
}

/* Step 2 ends at its content, leaving only the next section's normal padding. */
.packages-camera-choice { min-height: 0; padding-bottom: 0; }
.packages-camera-choice .section-grid {
  width: min(1100px, calc(100% - var(--gutter) * 2));
  margin-inline: auto;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto;
}
.packages-camera-choice .text-1 { grid-area: auto; }
.packages-camera-choice .text-1 > :last-child { margin-bottom: 0; }

/* Camera choices: one flow layout for both systems, mirrored on desktop. */
:is(.packages-mini-camera, .packages-square-camera) .section-grid {
  width: min(var(--content-max), calc(100% - var(--gutter) * 2));
  margin-inline: auto;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto;
  grid-template-areas: "ribbon" "copy" "photo" "action";
  column-gap: clamp(32px, 5vw, 80px);
  row-gap: 32px;
}
.camera-choice-copy { display: contents; }
:is(.packages-mini-camera, .packages-square-camera) .text-1 { grid-area: copy; min-width: 0; }
:is(.packages-mini-camera, .packages-square-camera) .text-1 h2 { font-size: clamp(40px, 5.5vw, 92px); line-height: 1.08; margin-bottom: 32px; }
:is(.packages-mini-camera, .packages-square-camera) .text-1 > :last-child { margin-bottom: 0; }
:is(.packages-mini-camera, .packages-square-camera) .photo-1 { grid-area: photo; z-index: 2; }
:is(.packages-mini-camera, .packages-square-camera) .photo-1 img { aspect-ratio: 9 / 10; object-position: center; }
:is(.packages-mini-camera, .packages-square-camera) .action-1 { grid-area: action; align-items: center; }
:is(.packages-mini-camera, .packages-square-camera) .action-1 .button { width: min(100%, 320px); min-height: 54px; }
:is(.packages-mini-camera, .packages-square-camera) .marquee-1 {
  grid-area: ribbon;
  width: 100vw;
  margin-left: calc((100% - 100vw) / 2);
}
@media (min-width: 900px) {
  :is(.packages-mini-camera, .packages-square-camera) .section-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: "ribbon ribbon" "photo copy";
    row-gap: 40px;
  }
  .packages-square-camera .section-grid { grid-template-areas: "ribbon ribbon" "copy photo"; }
  :is(.packages-mini-camera, .packages-square-camera) .photo-1 { margin-top: -60px; }
  .camera-choice-copy { grid-area: copy; display: flex; flex-direction: column; justify-content: center; gap: 40px; min-width: 0; }
  .camera-choice-copy .text-1, .camera-choice-copy .action-1 { grid-area: auto; }
  .packages-mini-camera .action-1 { align-items: flex-start; }
  .packages-square-camera .action-1 { align-items: flex-end; }
}

/* Hire menus use the same product grid as Buy, with headings in normal flow. */
:is(.packages-mini-menu, .packages-square-menu) .section-grid {
  display: flex;
  flex-direction: column;
  gap: 36px;
  width: min(var(--content-max), calc(100% - var(--gutter) * 2));
  margin-inline: auto;
}
:is(.packages-mini-menu, .packages-square-menu) .text-1 { width: min(100%, 900px); margin-inline: auto; }
:is(.packages-mini-menu, .packages-square-menu) .text-1 a { color: inherit; text-decoration: underline; }
:is(.packages-mini-menu, .packages-square-menu) .text-1 p { margin-bottom: 0; }
:is(.packages-mini-menu, .packages-square-menu) .text-1 p + p { margin-top: 28px; }
:is(.packages-mini-menu, .packages-square-menu) .text-1 p:last-child:has(> br:only-child) { display: none; }
:is(.packages-mini-menu, .packages-square-menu) :is(.text-2, .text-3) h4 { margin: 0; }
:is(.packages-mini-menu, .packages-square-menu) .text-3 { margin-top: 12px; }
:is(.packages-mini-menu, .packages-square-menu) .action-1 { align-items: center; }
:is(.packages-mini-menu, .packages-square-menu) .action-1 .button { width: min(100%, 500px); }

/* FAQ heading and actions stay together; questions stack below on phones. */
:is(.packages-faq, .packages-1-faq) .section-grid {
  grid-template-rows: auto auto;
  row-gap: 2rem;
}
:is(.packages-faq, .packages-1-faq) .faq-introduction {
  grid-area: 1/2/2/10;
  align-self: start;
  gap: 1.5rem;
}
:is(.packages-faq, .packages-1-faq) .questions-1 {
  grid-area: 2/2/3/10;
}
@media (min-width: 768px) {
  :is(.packages-faq, .packages-1-faq) .section-grid {
    grid-template-rows: auto;
  }
  :is(.packages-faq, .packages-1-faq) .faq-introduction {
    grid-area: 1/2/2/13;
  }
  :is(.packages-faq, .packages-1-faq) .faq-introduction .text-1 {
    margin-bottom: 1.5rem;
  }
  :is(.packages-faq, .packages-1-faq) .faq-introduction .action {
    width: calc(72.7273% - var(--grid-gap) * 0.272727);
  }
  :is(.packages-faq, .packages-1-faq) .questions-1 {
    grid-area: 1/15/2/26;
  }
}

/* packages-1-introduction */
.packages-1-introduction {
  --rows: 28;
}
.packages-1-introduction .text-1 {
  grid-area: 1/2/8/10;
  justify-content: flex-start;
  z-index: 5;
}
.packages-1-introduction .text-2 {
  grid-area: 8/2/23/10;
  justify-content: flex-start;
  z-index: 6;
}
.packages-1-introduction .action-1 {
  grid-area: 24/2/26/10;
  justify-content: center;
  z-index: 8;
}
.packages-1-introduction .action-2 {
  grid-area: 27/2/29/10;
  justify-content: center;
  z-index: 7;
}
@media (min-width: 768px) {
  .packages-1-introduction {
    --rows: 21;
  }
  .packages-1-introduction .text-1 {
    grid-area: 1/5/8/23;
    justify-content: flex-start;
    z-index: 5;
  }
  .packages-1-introduction .text-2 {
    grid-area: 8/5/20/22;
    justify-content: flex-start;
    z-index: 6;
  }
  .packages-1-introduction .action-1 {
    grid-area: 19/5/21/12;
    justify-content: center;
    z-index: 8;
  }
  .packages-1-introduction .action-2 {
    grid-area: 19/13/21/20;
    justify-content: center;
    z-index: 7;
  }
}

/* packages-1-dates */
.packages-1-dates {
  --rows: 20;
}
.packages-1-dates .panel-1 {
  grid-area: 1/1/12/11;
  justify-content: center;
  z-index: 3;
}
.packages-1-dates .panel-1 {
  background: var(--sage);
  border-radius: 40px;
  z-index: 1;
}
.packages-1-dates .text-1 {
  grid-area: 4/2/8/10;
  justify-content: flex-start;
  z-index: 4;
}
.packages-1-dates .text-2 {
  grid-area: 8/2/10/10;
  justify-content: flex-start;
  z-index: 5;
}
.packages-1-dates .text-3 {
  grid-area: 14/2/16/10;
  justify-content: flex-start;
  z-index: 7;
}
.packages-1-dates .booking-1 {
  grid-area: 17/2/20/10;
  justify-content: flex-start;
  z-index: 6;
}
@media (min-width: 768px) {
  .packages-1-dates {
    --rows: 19;
  }
  .packages-1-dates .panel-1 {
    grid-area: 1/14/20/27;
    justify-content: center;
    z-index: 1;
  }
  .packages-1-dates .text-1 {
    grid-area: 5/3/10/11;
    justify-content: flex-start;
    z-index: 4;
  }
  .packages-1-dates .text-2 {
    grid-area: 10/3/15/11;
    justify-content: flex-start;
    z-index: 5;
  }
  .packages-1-dates .text-3 {
    grid-area: 7/17/11/24;
    justify-content: flex-start;
    z-index: 7;
  }
  .packages-1-dates .booking-1 {
    grid-area: 11/17/12/24;
    justify-content: flex-start;
    z-index: 6;
  }
}

/* packages-1-camera-choice */
.packages-1-camera-choice {
  --rows: 14;
}
.packages-1-camera-choice .text-1 {
  grid-area: 1/2/15/10;
  justify-content: flex-start;
  z-index: 5;
}
@media (min-width: 768px) {
  .packages-1-camera-choice {
    --rows: 9;
  }
  .packages-1-camera-choice .text-1 {
    grid-area: 1/5/10/23;
    justify-content: flex-start;
    z-index: 5;
  }
}

/* packages-1-mini-camera */
.packages-1-mini-camera {
  --rows: 25;
}
.packages-1-mini-camera .text-1 {
  grid-area: 2/3/9/9;
  justify-content: flex-start;
  z-index: 0;
}
.packages-1-mini-camera .photo-1 {
  grid-area: 10/3/22/9;
  z-index: 4;
}
.packages-1-mini-camera .photo-1 img {
  object-position: 50% 50%;
}
.packages-1-mini-camera .marquee-1 {
  grid-area: 10/1/17/11;
  justify-content: center;
  z-index: 1;
}
.packages-1-mini-camera .action-1 {
  grid-area: 23/3/25/9;
  justify-content: center;
  z-index: 3;
}
@media (min-width: 768px) {
  .packages-1-mini-camera {
    --rows: 17;
  }
  .packages-1-mini-camera .text-1 {
    grid-area: 5/13/13/21;
    justify-content: flex-start;
    z-index: 0;
  }
  .packages-1-mini-camera .photo-1 {
    grid-area: 5/5/16/12;
    z-index: 4;
  }
  .packages-1-mini-camera .marquee-1 {
    grid-area: 1/1/6/27;
    justify-content: flex-start;
    z-index: 1;
  }
  .packages-1-mini-camera .action-1 {
    grid-area: 13/13/16/19;
    justify-content: center;
    z-index: 3;
  }
}

/* packages-1-square-camera */
.packages-1-square-camera {
  --rows: 24;
}
.packages-1-square-camera .marquee-1 {
  grid-area: 8/1/15/11;
  justify-content: center;
  z-index: 1;
}
.packages-1-square-camera .text-1 {
  grid-area: 1/3/9/9;
  justify-content: flex-start;
  z-index: 0;
}
.packages-1-square-camera .photo-1 {
  grid-area: 9/3/20/9;
  z-index: 4;
}
.packages-1-square-camera .photo-1 img {
  object-position: 50% 50%;
}
.packages-1-square-camera .action-1 {
  grid-area: 21/3/23/9;
  justify-content: center;
  z-index: 3;
}
@media (min-width: 768px) {
  .packages-1-square-camera {
    --rows: 20;
  }
  .packages-1-square-camera .marquee-1 {
    grid-area: 1/1/6/27;
    justify-content: flex-start;
    z-index: 1;
  }
  .packages-1-square-camera .text-1 {
    grid-area: 5/6/10/14;
    justify-content: flex-start;
    z-index: 0;
  }
  .packages-1-square-camera .photo-1 {
    grid-area: 4/15/15/22;
    z-index: 4;
  }
  .packages-1-square-camera .action-1 {
    grid-area: 10/7/13/14;
    justify-content: center;
    z-index: 3;
  }
}

/* packages-1-mini-menu */
.packages-1-mini-menu {
  --rows: 72;
}
.packages-1-mini-menu .text-1 {
  grid-area: 1/2/13/10;
  justify-content: flex-start;
  z-index: 0;
}
.packages-1-mini-menu .text-2 {
  grid-area: 13/2/15/10;
  justify-content: flex-start;
  z-index: 10;
}
.packages-1-mini-menu .booking-1 {
  grid-area: 15/1/21/11;
  justify-content: flex-start;
  z-index: 6;
}
.packages-1-mini-menu .booking-2 {
  grid-area: 21/1/27/11;
  justify-content: flex-start;
  z-index: 7;
}
.packages-1-mini-menu .booking-3 {
  grid-area: 27/1/33/11;
  justify-content: flex-start;
  z-index: 8;
}
.packages-1-mini-menu .text-3 {
  grid-area: 33/2/35/10;
  justify-content: flex-start;
  z-index: 11;
}
.packages-1-mini-menu .booking-4 {
  grid-area: 35/1/42/11;
  justify-content: flex-start;
  z-index: 10;
}
.packages-1-mini-menu .booking-5 {
  grid-area: 42/1/49/11;
  justify-content: flex-start;
  z-index: 12;
}
.packages-1-mini-menu .booking-6 {
  grid-area: 49/1/56/11;
  justify-content: flex-start;
  z-index: 11;
}
.packages-1-mini-menu .booking-7 {
  grid-area: 56/1/63/11;
  justify-content: flex-start;
  z-index: 5;
}
.packages-1-mini-menu .booking-8 {
  grid-area: 63/1/70/11;
  justify-content: flex-start;
  z-index: 9;
}
.packages-1-mini-menu .action-1 {
  grid-area: 71/2/73/10;
  justify-content: center;
  z-index: 4;
}
@media (min-width: 768px) {
  .packages-1-mini-menu {
    --rows: 66;
  }
  .packages-1-mini-menu .text-1 {
    grid-area: 3/7/14/21;
    justify-content: flex-start;
    z-index: 0;
  }
  .packages-1-mini-menu .text-2 {
    grid-area: 13/11/15/17;
    justify-content: flex-start;
    z-index: 10;
  }
  .packages-1-mini-menu .booking-1 {
    grid-area: 15/3/20/10;
    justify-content: flex-start;
    z-index: 6;
  }
  .packages-1-mini-menu .booking-2 {
    grid-area: 15/11/20/18;
    justify-content: flex-start;
    z-index: 7;
  }
  .packages-1-mini-menu .booking-3 {
    grid-area: 15/19/20/26;
    justify-content: flex-start;
    z-index: 8;
  }
  .packages-1-mini-menu .text-3 {
    grid-area: 19/11/21/17;
    justify-content: flex-start;
    z-index: 11;
  }
  .packages-1-mini-menu .booking-4 {
    grid-area: 21/3/26/10;
    justify-content: flex-start;
    z-index: 10;
  }
  .packages-1-mini-menu .booking-5 {
    grid-area: 21/19/26/26;
    justify-content: flex-start;
    z-index: 12;
  }
  .packages-1-mini-menu .booking-6 {
    grid-area: 21/11/26/18;
    justify-content: flex-start;
    z-index: 11;
  }
  .packages-1-mini-menu .booking-7 {
    grid-area: 26/7/31/14;
    justify-content: flex-start;
    z-index: 5;
  }
  .packages-1-mini-menu .booking-8 {
    grid-area: 26/15/31/22;
    justify-content: flex-start;
    z-index: 9;
  }
  .packages-1-mini-menu .action-1 {
    grid-area: 38/9/40/19;
    justify-content: center;
    z-index: 4;
  }
}

/* packages-1-square-menu */
.packages-1-square-menu {
  --rows: 66;
}
.packages-1-square-menu .text-1 {
  grid-area: 1/2/12/10;
  justify-content: flex-start;
  z-index: 0;
}
.packages-1-square-menu .text-2 {
  grid-area: 10/2/12/10;
  justify-content: flex-start;
  z-index: 10;
}
.packages-1-square-menu .booking-1 {
  grid-area: 12/1/18/11;
  justify-content: flex-start;
  z-index: 6;
}
.packages-1-square-menu .booking-2 {
  grid-area: 18/1/24/11;
  justify-content: flex-start;
  z-index: 7;
}
.packages-1-square-menu .booking-3 {
  grid-area: 24/1/30/11;
  justify-content: flex-start;
  z-index: 8;
}
.packages-1-square-menu .booking-4 {
  grid-area: 33/1/40/11;
  justify-content: flex-start;
  z-index: 10;
}
.packages-1-square-menu .text-3 {
  grid-area: 32/2/34/10;
  justify-content: flex-start;
  z-index: 11;
}
.packages-1-square-menu .booking-5 {
  grid-area: 40/1/46/11;
  justify-content: flex-start;
  z-index: 12;
}
.packages-1-square-menu .booking-6 {
  grid-area: 46/1/52/11;
  justify-content: flex-start;
  z-index: 11;
}
.packages-1-square-menu .booking-7 {
  grid-area: 52/1/58/11;
  justify-content: flex-start;
  z-index: 5;
}
.packages-1-square-menu .booking-8 {
  grid-area: 58/1/64/11;
  justify-content: flex-start;
  z-index: 9;
}
.packages-1-square-menu .action-1 {
  grid-area: 65/2/67/10;
  justify-content: center;
  z-index: 4;
}
@media (min-width: 768px) {
  .packages-1-square-menu {
    --rows: 43;
  }
  .packages-1-square-menu .text-1 {
    grid-area: 1/7/12/21;
    justify-content: flex-start;
    z-index: 0;
  }
  .packages-1-square-menu .text-2 {
    grid-area: 11/11/13/17;
    justify-content: flex-start;
    z-index: 10;
  }
  .packages-1-square-menu .booking-1 {
    grid-area: 13/3/20/10;
    justify-content: flex-start;
    z-index: 6;
  }
  .packages-1-square-menu .booking-2 {
    grid-area: 13/11/21/18;
    justify-content: flex-start;
    z-index: 7;
  }
  .packages-1-square-menu .booking-3 {
    grid-area: 13/19/21/26;
    justify-content: flex-start;
    z-index: 8;
  }
  .packages-1-square-menu .booking-4 {
    grid-area: 24/3/32/10;
    justify-content: flex-start;
    z-index: 10;
  }
  .packages-1-square-menu .text-3 {
    grid-area: 22/11/24/17;
    justify-content: flex-start;
    z-index: 11;
  }
  .packages-1-square-menu .booking-5 {
    grid-area: 24/19/32/26;
    justify-content: flex-start;
    z-index: 12;
  }
  .packages-1-square-menu .booking-6 {
    grid-area: 24/11/32/18;
    justify-content: flex-start;
    z-index: 11;
  }
  .packages-1-square-menu .booking-7 {
    grid-area: 33/7/41/14;
    justify-content: flex-start;
    z-index: 5;
  }
  .packages-1-square-menu .booking-8 {
    grid-area: 33/15/41/22;
    justify-content: flex-start;
    z-index: 9;
  }
  .packages-1-square-menu .action-1 {
    grid-area: 42/9/44/19;
    justify-content: center;
    z-index: 4;
  }
}

/* sales-returns-policy-policy */
.sales-returns-policy-policy {
  --rows: 2;
}
.sales-returns-policy-policy .text-1 {
  grid-area: 1/2/3/10;
  justify-content: flex-start;
  z-index: 1;
}
@media (min-width: 768px) {
  .sales-returns-policy-policy {
    --rows: 50;
  }
  .sales-returns-policy-policy .text-1 {
    grid-area: 1/7/51/21;
    justify-content: flex-start;
    z-index: 1;
  }
}

/* terms-of-service-terms */
.terms-of-service-terms {
  --rows: 71;
}
.terms-of-service-terms .text-1 {
  grid-area: 1/2/69/10;
  justify-content: flex-start;
  z-index: 1;
}
@media (min-width: 768px) {
  .terms-of-service-terms {
    --rows: 62;
  }
  .terms-of-service-terms .text-1 {
    grid-area: 1/7/60/21;
    justify-content: flex-start;
    z-index: 1;
  }
}

/* thanks-for-booking-confirmation */
.thanks-for-booking-confirmation {
  --rows: 33;
}
.thanks-for-booking-confirmation .text-1 {
  grid-area: 1/2/10/10;
  justify-content: flex-start;
  z-index: 2;
}
.thanks-for-booking-confirmation .photo-1 {
  grid-area: 11/2/19/10;
  z-index: 3;
}
.thanks-for-booking-confirmation .photo-1 img {
  object-position: 74.58249832999331% 50.40630078759845%;
}
.thanks-for-booking-confirmation .photo-1 {
  border-radius: 36px;
  overflow: hidden;
  z-index: 1;
}
.thanks-for-booking-confirmation .photo-2 {
  grid-area: 16/1/23/5;
  z-index: 4;
}
.thanks-for-booking-confirmation .photo-2 img {
  object-position: 47.60922557659853% 76.80960120015001%;
}
.thanks-for-booking-confirmation .photo-3 {
  grid-area: 13/6/22/11;
  z-index: 1;
}
.thanks-for-booking-confirmation .photo-3 img {
  object-position: 46.80673670168417% 86.41080135016877%;
}
.thanks-for-booking-confirmation .photo-3 {
  border-radius: 36px;
  overflow: hidden;
  z-index: 3;
}
.thanks-for-booking-confirmation .celebration {
  grid-area: 23/2/29/10;
  justify-content: flex-start;
  z-index: 5;
}
@media (min-width: 768px) {
  .thanks-for-booking-confirmation {
    --rows: 36;
  }
  .thanks-for-booking-confirmation .text-1 {
    grid-area: 1/7/21/21;
    justify-content: flex-start;
    z-index: 5;
  }
  .thanks-for-booking-confirmation .photo-1 {
    grid-area: 5/1/37/9;
    z-index: 1;
  }
  .thanks-for-booking-confirmation .photo-2 {
    grid-area: 1/1/11/3;
    z-index: 2;
  }
  .thanks-for-booking-confirmation .photo-3 {
    grid-area: 2/23/26/27;
    z-index: 3;
  }
  .thanks-for-booking-confirmation .celebration {
    grid-area: 24/12/29/16;
    justify-content: flex-start;
    z-index: 6;
  }
}

/* Full-bleed photographic sections have no grid gaps. */
.home-photo-banner {
  --grid-gap: 0px;
}
