.collection-lead img{width:100%;height:min(72vw,880px);object-fit:cover}.scraped-gallery{padding:0 4.5vw 10rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5vw}.scraped-gallery figure{margin:0;min-width:0}.scraped-gallery figure:nth-child(3n){grid-column:1/-1}.scraped-gallery img{display:block;width:100%;height:58vw;max-height:850px;object-fit:cover}.scraped-gallery figure:nth-child(3n) img{height:52vw;max-height:780px}.source-story,.collection-details{padding:0 9vw 10rem;display:grid;grid-template-columns:1fr 3fr;gap:6vw}.source-story>div,.collection-details>div{max-width:780px}.source-story p{margin:0 0 1.5rem}.source-story[hidden]{display:none}.collection-details>div>p{margin:0 0 2rem}.collection-details a{display:inline-flex;gap:.7rem;padding-bottom:.3rem;border-bottom:1px solid;text-decoration:none;text-transform:uppercase;font-size:.68rem;letter-spacing:.07em}.collection-details a span{transition:transform 180ms}.collection-details a:hover span{transform:translateX(.2rem)}@media(max-width:800px){.source-story,.collection-details{padding-inline:5vw;grid-template-columns:1fr}.scraped-gallery{grid-template-columns:1fr}.scraped-gallery figure:nth-child(3n){grid-column:auto}.scraped-gallery img,.scraped-gallery figure:nth-child(3n) img{height:auto;max-height:none}}@media(max-width:520px){.collection-lead img{height:135vw}}

.collection-lead img.is-portrait,
.scraped-gallery img.is-portrait {
  object-position: center top;
}

.scraped-gallery figure {
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.scraped-gallery img,
.scraped-gallery figure:nth-child(3n) img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: none;
  object-fit: contain;
}

.scraped-gallery {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.2vw;
}

.scraped-gallery figure,
.scraped-gallery figure:nth-child(3n) {
  display: block;
  grid-column: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #e4e1da;
}

.scraped-gallery figure.is-portrait {
  aspect-ratio: 3 / 4;
}

.scraped-gallery button {
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}

.scraped-gallery img,
.scraped-gallery figure:nth-child(3n) img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  transition: transform 350ms ease;
}

.scraped-gallery button:hover img,
.scraped-gallery button:focus-visible img {
  transform: scale(1.02);
}

@media (max-width: 800px) {
  .scraped-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2vw;
  }
}

@media (max-width: 480px) {
  .scraped-gallery {
    grid-template-columns: 1fr;
    gap: 3vw;
  }
}

/* Natural-ratio masonry: compact in-page, full resolution in the lightbox. */
.scraped-gallery {
  display: block;
  columns: 3;
  column-gap: 1.2vw;
}

.scraped-gallery figure,
.scraped-gallery figure:nth-child(3n),
.scraped-gallery figure.is-portrait {
  display: inline-block;
  width: 100%;
  margin: 0 0 1.2vw;
  aspect-ratio: auto;
  overflow: hidden;
  break-inside: avoid;
  vertical-align: top;
}

.scraped-gallery button {
  display: block;
  height: auto;
}

.scraped-gallery img,
.scraped-gallery figure:nth-child(3n) img {
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
}

@media (min-width: 1280px) {
  .scraped-gallery { columns: 4; }
}

@media (max-width: 800px) {
  .scraped-gallery { columns: 2; }
}

@media (max-width: 480px) {
  .scraped-gallery { columns: 1; }
}

.collection-lead {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.collection-lead img,
.collection-lead img.is-portrait {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 78vh;
  object-fit: contain;
  object-position: center top;
}

.collection-lead figcaption {
  flex: 0 0 100%;
}

/* Wedding package marketing */
.source-story.wedding-packages {
  display: block;
  padding: 0 4.5vw 8rem;
}

.source-story.wedding-packages > .eyebrow {
  margin: 0 0 1rem;
}

.wedding-packages #source-copy {
  max-width: none;
}

.wedding-packages__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(16rem, .8fr);
  gap: 6vw;
  align-items: end;
  padding: 2rem 0 3rem;
  border-top: 1px solid var(--line);
}

.wedding-packages__intro h2 {
  max-width: 13ch;
  margin: 0 0 1rem;
  font: 300 clamp(2.6rem, 5vw, 5.25rem)/.94 var(--sans);
  letter-spacing: -.055em;
  text-transform: uppercase;
}

.wedding-packages__intro p {
  max-width: 46rem;
  margin: 0;
}

.wedding-packages__included {
  padding: 1.25rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.wedding-packages__included strong {
  display: block;
  margin-bottom: .55rem;
  color: var(--red);
  font-size: .68rem;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.wedding-package-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--ink);
  border-left: 1px solid var(--ink);
}

.wedding-package-card {
  min-width: 0;
  min-height: 31rem;
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  background: #fff;
}

.wedding-package-card__meta {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1rem;
  color: var(--red);
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.wedding-package-card h3 {
  min-height: 2.35em;
  margin: 1.7rem 0 1.2rem;
  font: 300 clamp(1.7rem, 2.6vw, 2.7rem)/1 var(--sans);
  letter-spacing: -.04em;
  text-transform: uppercase;
}

.wedding-package-card__description {
  margin: 0 0 1.5rem !important;
  font-size: .88rem;
}

.wedding-package-card ul {
  margin: 0 0 2rem;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.wedding-package-card li {
  padding: .55rem 0;
  border-bottom: 1px solid var(--line);
  font-size: .72rem;
}

.wedding-package-card a,
.wedding-package-extras a {
  width: fit-content;
  margin-top: auto;
  padding-bottom: .25rem;
  border-bottom: 1px solid currentColor;
  color: inherit;
  font-size: .68rem;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}

.wedding-package-card a:hover,
.wedding-package-card a:focus-visible,
.wedding-package-extras a:hover,
.wedding-package-extras a:focus-visible {
  color: var(--red);
}

.wedding-package-extras {
  display: grid;
  grid-template-columns: .7fr 1.4fr 1fr;
  gap: 5vw;
  align-items: start;
  padding: 3rem 0 0;
}

.wedding-package-extras h3 {
  margin: .75rem 0 0;
  font: 300 clamp(1.6rem, 2.8vw, 2.8rem)/1 var(--sans);
  letter-spacing: -.04em;
  text-transform: uppercase;
}

.wedding-package-extras dl {
  margin: 0;
  border-top: 1px solid var(--line);
}

.wedding-package-extras dl > div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .25rem 1rem;
  padding: .8rem 0;
  border-bottom: 1px solid var(--line);
}

.wedding-package-extras dt,
.wedding-package-extras dd {
  margin: 0;
  font-size: .78rem;
}

.wedding-package-extras dd {
  font-weight: 700;
}

.wedding-package-extras small {
  grid-column: 1 / -1;
  color: #686868;
  font-size: .62rem;
  text-transform: uppercase;
}

.wedding-package-extras > div:last-child {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.wedding-package-extras > div:last-child p {
  margin: 0;
  font-size: .82rem;
}

@media (max-width: 900px) {
  .wedding-packages__intro,
  .wedding-package-extras {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .wedding-package-grid {
    grid-template-columns: 1fr;
  }

  .wedding-package-card {
    min-height: 0;
  }

  .wedding-package-card h3 {
    min-height: 0;
  }
}

@media (max-width: 520px) {
  .source-story.wedding-packages {
    padding-inline: 5vw;
    padding-bottom: 6rem;
  }

  .wedding-packages__intro {
    padding-top: 1.5rem;
  }

  .wedding-packages__intro h2 {
    font-size: 12vw;
  }

  .wedding-package-card {
    padding: 1.35rem;
  }
}

/* Long-form portrait essay: restore the original, quiet editorial rhythm. */
body.narrative-project {
  background: #fff;
}

.narrative-project .project-hero {
  min-height: 0;
  padding: clamp(4.5rem, 9vw, 8rem) 5vw clamp(5rem, 10vw, 9rem);
  display: block;
  border: 0;
  background: #fff;
  text-align: center;
}

.narrative-intro {
  width: min(90vw, 720px);
  margin: 0 auto;
}

.narrative-project .narrative-intro h1 {
  margin: 0 0 1.35rem;
  color: var(--ink);
  font: 400 clamp(.88rem, 1.4vw, 1.08rem)/1.35 var(--sans);
  letter-spacing: .015em;
  text-transform: uppercase;
}

.narrative-intro__copy {
  font-size: clamp(.74rem, 1.05vw, .86rem);
  line-height: 1.65;
}

.narrative-intro__copy p {
  margin: 0;
}

.narrative-project .scraped-gallery {
  display: block;
  columns: auto;
  padding: 0 0 clamp(6rem, 12vw, 11rem);
}

.narrative-project .scraped-gallery figure,
.narrative-project .scraped-gallery figure:nth-child(3n),
.narrative-project .scraped-gallery figure.is-portrait {
  display: block;
  width: min(74vw, 680px);
  margin: 0 auto clamp(6rem, 12vw, 11rem);
  overflow: visible;
  break-inside: auto;
  background: transparent;
}

.narrative-project .scraped-gallery button {
  height: auto;
}

.narrative-project .scraped-gallery img,
.narrative-project .scraped-gallery figure:nth-child(3n) img {
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
}

.narrative-project .scraped-gallery figcaption {
  width: min(100%, 620px);
  margin: 1.35rem auto 0;
  text-align: left;
}

.narrative-project .scraped-gallery figcaption h2 {
  margin: 0 0 .72rem;
  font: 700 clamp(.74rem, 1.05vw, .86rem)/1.5 var(--mono);
}

.narrative-project .image-narrative {
  font-size: clamp(.72rem, 1vw, .82rem);
  line-height: 1.65;
}

.narrative-project .image-narrative p {
  margin: 0;
}

.narrative-project .overview[hidden],
.narrative-project .source-story[hidden],
.narrative-project .collection-details[hidden] {
  display: none;
}

@media (max-width: 700px) {
  .narrative-project .project-hero {
    padding: 4.75rem 7vw 6rem;
  }

  .narrative-project .scraped-gallery figure,
  .narrative-project .scraped-gallery figure:nth-child(3n),
  .narrative-project .scraped-gallery figure.is-portrait {
    width: 86vw;
    margin-bottom: 7rem;
  }
}

.collection-films {
  padding: clamp(4rem, 8vw, 8rem) 4.5vw clamp(6rem, 10vw, 10rem);
  border-top: 1px solid var(--line);
}

.collection-films__header {
  display: grid;
  grid-template-columns: minmax(8rem, 1fr) 3fr;
  gap: 3vw;
  align-items: baseline;
  margin-bottom: clamp(1.5rem, 3vw, 2.75rem);
}

.collection-films__header p,
.collection-films__header h2 {
  margin: 0;
}

.collection-films__header h2 {
  font: 400 clamp(1.25rem, 2.6vw, 2.2rem)/1.1 var(--sans);
  text-transform: uppercase;
}

.collection-films__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 2rem);
}

.collection-films figure {
  margin: 0;
}

.collection-film {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #111;
}

.collection-film iframe,
.collection-film video {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.collection-films figcaption {
  margin-top: .85rem;
  font-size: clamp(.7rem, .9vw, .8rem);
  line-height: 1.5;
}

.collection-films figcaption h3,
.collection-films figcaption p {
  margin: 0;
}

.collection-films figcaption h3 {
  font: 700 inherit;
  text-transform: uppercase;
}

.collection-films figcaption div {
  margin-top: .25rem;
  color: var(--muted);
}

@media (max-width: 700px) {
  .collection-films__header,
  .collection-films__grid {
    grid-template-columns: 1fr;
  }
}
