/* Opt-in package layout; other editorial rows and paired artwork stay unchanged. */
.package-copy { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; text-align: left; overflow-wrap: anywhere; }
.package-copy > :is(h2, h3, .package-body, .package-copy__price, .brand-button) { margin: 0; max-width: 100%; }
.package-copy > .package-body { margin-top: 2rem; width: 100%; max-width: 100%; }
/* A cleared document is one empty paragraph. Keep all authored blank paragraphs
   within nonempty/multi-paragraph documents, without a phantom cleared-body row. */
.package-copy > .package-body:empty,
.package-copy > .package-body:has(> p:only-child:empty) { display: none; }
.package-copy .package-body { font-size: 1.125rem; line-height: 1.4; }
.package-copy > .package-copy__price { margin: 1.5rem 0 0; color: var(--color-ivory); font-family: var(--font-display); font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.2; }
.package-copy > .brand-button { margin-top: 2.5rem; }

@media (max-width: 80rem) { .package-list { row-gap: clamp(2rem, 6vw, 3rem); } }

/* Package-only sizing and rail parity; Portfolio's shared pair consumers stay intact. */
.package-row .brand-package__rail { transform: none; }
@media (min-width: 80.001rem) {
  .package-row {
    width: min(100%, 100rem);
    --brand-package-rail-photo-gap: 2.5625rem;
    --package-copy-gap: clamp(1.5rem, 2vw, 2rem);
    --package-rail-width: calc(var(--brand-package-ornament-size) * 15 / 49);
    --package-outer-space: calc(var(--brand-content-gutter) + var(--package-rail-width) + var(--brand-package-rail-photo-gap));
    --package-column-width: calc((min(100vw, 100rem) - var(--package-outer-space) * 2 - var(--package-copy-gap)) / 2);
    --package-media-width: min(var(--package-column-width), calc(
      (100svh - var(--brand-header-scrolled-height, 5.25rem)) * var(--package-photo-aspect, .666667)));
    padding-inline: var(--package-outer-space);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--package-copy-gap);
  }
  .package-row > .brand-editorial-row__media,
  .package-row > .brand-package__ornament { grid-column: 1; grid-row: 1; justify-self: center; width: var(--package-media-width); }
  .package-row > .package-copy { grid-column: 2; grid-row: 1; justify-self: center; width: min(100%, 40rem); }
  .package-row.brand-editorial-row--media-end > .package-copy { grid-column: 1; }
  .package-row.brand-editorial-row--media-end > .brand-editorial-row__media,
  .package-row.brand-editorial-row--media-end > .brand-package__ornament { grid-column: 2; }
  /* Attach the rail to the actual centered photograph, not its wider grid cell.
     The reserved outer space also protects a full-width landscape photograph. */
  .package-row > .brand-package__ornament { padding: 0; justify-content: start; }
  .package-row .brand-package__rail { position: relative; left: calc(-1 * (var(--package-rail-width) + var(--brand-package-rail-photo-gap))); }
  .package-row.brand-editorial-row--media-end .brand-package__rail { left: calc(100% + var(--brand-package-rail-photo-gap)); }
  .package-row > .brand-editorial-row__media picture { display: block; }
  .package-row > .brand-editorial-row__media img {
    width: 100%; height: auto; max-width: 100%;
    max-height: calc(100svh - var(--brand-header-scrolled-height, 5.25rem));
  }
  /* Give Services and Weddings copy more room toward the outer gutter;
     the photo column, image size and its floral rail keep their positions. */
  .package-row > .package-copy {
    width: min(calc(100% + 2rem), 42rem); max-width: none; justify-self: start;
  }
  .package-row.brand-editorial-row--media-end > .package-copy { justify-self: end; }
}
@media (max-width: 80rem) {
  .package-row { --brand-editorial-mobile-text-width: 100%; }
  .package-row > .brand-editorial-row__media { width: min(72vw, 32rem); }
}
@media (max-width: 47.99rem) {
  /* Same width budget as Home's full testimonial photograph, without changing it. */
  .package-row > .brand-editorial-row__media {
    width: calc(100% - min(1.5rem, 7.5vw) - min(3.1rem, 15.5vw)); max-width: 24rem;
  }
}
