.wedding-film-selection {
  padding-block: clamp(28px, 6vw, 78px) 0;
  scroll-margin-top: 6rem;
}
.wedding-film-selection > h2 {
  font-size: clamp(2.4rem, 5vw, 4.8rem);
  line-height: 1.05;
  margin: .35em 0 .55em;
}
.wedding-film-heading { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; margin-bottom:2rem; }
.wedding-film-heading h2 { margin:.25em 0 0; font:400 clamp(2.4rem,5vw,4.8rem)/1.05 var(--tn-display,Georgia,serif); letter-spacing:-.04em; text-transform:none; }
.wedding-film-heading .text-link { flex-shrink:0; margin-bottom:.3rem; }
.wedding-film-description { margin:.8rem 0 0; max-width:52ch; font-size:.9rem; line-height:1.65; color:#6b5749; }
.wedding-film-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 55px);
}
.wedding-film-card video {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  background: #171311;
}
.wedding-film-caption {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .15rem 1rem;
  padding-block: .8rem;
  border-bottom: 1px solid var(--line);
}
.wedding-film-caption h3 { margin: 0; font-size: clamp(1.25rem, 2vw, 1.85rem); }
.wedding-film-caption p { margin: 0; font-size: .86rem; }
.film-inquiry { display: inline-block; margin-left: .75rem; }
@media (max-width: 680px) {
  .wedding-film-grid { grid-template-columns: 1fr; }
  .wedding-film-heading { align-items:start; flex-direction:column; gap:1rem; }
}

.portfolio-landing { padding-block:clamp(28px,4vw,58px); background:var(--paper); }
.portfolio-landing h1 { margin:.16em 0 .28em; font:400 clamp(2.65rem,6.5vw,6.25rem)/1.02 var(--serif,Georgia,serif); letter-spacing:-.045em; text-transform:none; }
.portfolio-landing h1 em { color:var(--wine); }
.portfolio-landing > p:not(.eyebrow) { color:#574d45; max-width:56ch; margin-bottom:1.5rem; }
.portfolio-doors { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(12px,2.1vw,32px); }
.portfolio-doors a { display:grid; grid-template-columns:1fr; background:#211c19; color:#fff; min-width:0; }
.portfolio-doors img { display:block; width:100%; height:auto; aspect-ratio:2.5; object-fit:cover; object-position:50% 77%; }
.portfolio-doors a:nth-child(2) img { object-position:50% 50%; }
.portfolio-doors span { display:flex; justify-content:space-between; gap:.7rem; align-items:center; padding:clamp(.75rem,1.35vw,1.2rem); font-weight:600; line-height:1.3; }
.portfolio-doors a:hover span,.portfolio-doors a:focus-visible span { text-decoration:underline; text-underline-offset:.22em; }
.portfolio-doors svg { flex:none; width:1.05em; height:1.05em; }
.portfolio-photographs > h2 { margin:.35em 0; }
.portfolio-photographs > .text-link { margin:0 0 1.25rem; }
.portfolio-section-links { display:flex; flex-wrap:wrap; gap:.8rem 2rem; margin:0 0 1.6rem; }
.portfolio-section-links .text-link { display:inline-flex; align-items:center; gap:.4rem; }
.portfolio-section-links svg { width:1em; height:1em; }
@media (max-width:950px) {
  .gallery-full-frame .gallery-open { aspect-ratio:auto; }
  .gallery-full-frame .gallery-open img { height:auto; object-fit:contain; }
}
@media (max-width:600px) {
  .portfolio-doors img { aspect-ratio:1.45; }
  .portfolio-doors span { font-size:.9rem; }
  .portfolio-doors svg { width:.84rem; }
}

.film-watch { padding-block:clamp(28px,5vw,68px); }
.film-watch h1 { margin:.25em 0 .45em; font:400 clamp(2.5rem,5vw,5rem)/1.04 var(--tn-display,Georgia,serif); }
.film-watch video { display:block; width:min(100%,1080px); max-height:66vh; aspect-ratio:16/9; background:#171311; }
.film-watch > p:not(.eyebrow) { max-width:65ch; margin:1.25rem 0; }
