.editorial-home {
  --cover-ivory: #f6f0e7;
  --cover-ink: #100e0d;
  --cover-wine: var(--tn-wine, #670d1b);
  --cover-rule: var(--tn-rule, #c9b9ae);
  --cover-font: var(--tn-display, Georgia, "Times New Roman", serif);
  --cover-sans: var(--tn-sans, system-ui, -apple-system, "Segoe UI", sans-serif);
  --cover-gutter: clamp(18px, 2.2vw, 42px);
  background: var(--cover-ivory);
  color: var(--cover-ink);
  font-family: var(--cover-sans);
  container-type: inline-size;
}
.editorial-home h1,
.editorial-home h2,
.editorial-home blockquote {
  font-family: var(--cover-font);
  font-weight: 500;
  text-transform: none;
}
.editorial-home a:focus-visible {
  outline-color: var(--cover-wine);
  outline-offset: 4px;
}
.cover-story {
  --print-top: clamp(5px, .8cqw, 13px);
  --print-bottom: clamp(15px, 1.8cqw, 30px);
  --print-right: clamp(9px, 1.45cqw, 23px);
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: clamp(455px, 52.3cqw, 800px);
  background: radial-gradient(ellipse at 26% 10%, #fffcf7 0, transparent 60%),
              linear-gradient(130deg, #f6f0e7 48%, #ebe0d1 100%);
}
.cover-story .cover-portrait,
.cover-edge {
  position: absolute;
  inset: var(--print-top) var(--print-right) auto auto;
  width: 53%;
  height: calc(100% - var(--print-top) - var(--print-bottom));
}
.cover-edge { z-index: 0; overflow: visible; pointer-events: none; }
/* The print edge follows the image's diagonal at every aspect ratio. */
.cover-slant { transform: matrix(1, 0, -.14, 1, 14, 0); }
.cover-story .cover-portrait {
  z-index: 1;
  object-fit: cover;
  object-position: 8% center;
  clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%);
}
.cover-copy {
  position: relative;
  z-index: 2;
  width: 59%;
  padding: 1.3cqw 0 3cqw var(--cover-gutter);
}
.cover-copy h1 {
  font-size: clamp(67px, 9.7cqw, 163px);
  font-weight: 700;
  letter-spacing: -.05em;
  line-height: .85;
}
.cover-copy h1 span {
  display: block;
}
.cover-copy h1 em {
  display: block;
  font-size: .59em;
  font-weight: 400;
  line-height: 1.03;
  color: var(--cover-wine);
  letter-spacing: -.04em;
  margin: .18em 0 0;
}
.cover-copy p {
  font-size: clamp(.91rem, 1.52cqw, 1.3rem);
  line-height: 1.4;
  margin: 1.8cqw 0 2.3cqw;
  max-width: 79%;
}
.cover-copy .cover-kicker {
  margin: 0 0 clamp(18px, 2.2cqw, 34px);
  max-width: 100%;
  font: 600 clamp(.72rem, .94cqw, .84rem)/1.45 var(--cover-sans);
  color: #60382e;
  letter-spacing: .06em;
}
.cover-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  max-width: 43cqw;
  gap: clamp(12px, 2.2cqw, 36px);
}
.cover-primary, .cover-watch {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 44px;
  font-family: var(--cover-sans);
  font-weight: 650;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.cover-primary {
  padding: clamp(12px, 1.15cqw, 19px) clamp(15px, 1.7cqw, 29px);
  gap: clamp(10px, 1.45cqw, 27px);
  background: var(--cover-wine);
  color: #fffaf4;
  font-size: clamp(.75rem, 1.04cqw, .96rem);
}
.cover-primary .tn-icon {
  width: 1.5em;
  height: 1.5em;
}
.cover-primary:hover {
  background: #460a14;
}
.cover-watch {
  font-size: clamp(.8125rem, 1cqw, .95rem);
  letter-spacing: .005em;
  text-transform: none;
  gap: .75em;
}
.cover-watch-mark {
  display: grid;
  width: clamp(27px, 2.65cqw, 42px);
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
}
.cover-watch-mark .tn-icon { width: 50%; height: 50%; }
.cover-watch-label {
  border-bottom: 1px solid currentColor;
  padding: 4px 0 2px;
}
.cover-watch:hover, .first-song a:hover, .home-link:hover {
  color: var(--cover-wine);
}
.first-song {
  position: relative;
  margin: 0 var(--cover-gutter);
  padding: clamp(16px, 2cqw, 36px) 1cqw clamp(25px, 3.3cqw, 65px);
  border-top: 1px solid var(--cover-rule);
  scroll-margin-top: 5rem;
}
.first-song::before {
  content: "";
  position: absolute;
  right: 2%;
  top: 0;
  width: 6px;
  height: 6px;
  transform: translateY(-58%) rotate(45deg);
  background: var(--cover-wine);
  box-shadow: 0 0 0 4px var(--cover-ivory);
}
.first-song h2 {
  font-size: clamp(42px, 6.35cqw, 97px);
  font-style: italic;
  letter-spacing: -.045em;
  line-height: 1.05;
}
.first-song nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2.8cqw, 48px);
  margin-top: clamp(12px, 1.6cqw, 24px);
}
.first-song nav a {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: baseline;
  align-content: center;
  gap: clamp(7px, .8cqw, 15px);
  min-height: 48px;
  border-bottom: 1px solid var(--cover-rule);
  font: 500 clamp(.85rem, 1.28cqw, 1.18rem)/1.45 var(--cover-sans);
  padding-block: .6em;
}
.song-index {
  font-size: .72rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .045em;
  color: #785449;
}
.first-song nav strong, .first-song .tn-icon {
  color: var(--cover-wine);
}
.first-song .tn-icon { align-self: center; }
.first-song nav a:hover, .first-song nav a:focus-visible { border-color: var(--cover-wine); }
.home-people {
  display: grid;
  grid-template-columns: minmax(0, .98fr) minmax(0, 1.02fr);
  gap: clamp(32px, 6cqw, 102px);
  padding: clamp(32px, 4.7cqw, 80px) clamp(27px, 6cqw, 100px);
  background: radial-gradient(ellipse at 15% 13%, #483331 0, transparent 63%),
              linear-gradient(117deg, #302523, #1e181b 70%, #191719);
  color: #fff7e9;
  align-items: center;
}
.home-film-mount {
  position: relative;
  isolation: isolate;
}
.home-film-mount::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  transform: translate(-5px, 5px) rotate(-1.5deg);
  background: #c2a98f;
  box-shadow: 0 12px 24px #0f090b66;
}
.home-film {
  display: block;
  isolation: isolate;
  position: relative;
  overflow: hidden;
  aspect-ratio: 1.28;
  border: clamp(4px, .52cqw, 8px) solid #f9f1e4;
  background: #281f21;
  box-shadow: -1px 2px 4px #17101369;
}
.home-film img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 52%;
  z-index: -2;
}
.home-film::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(20,11,14,.8), transparent 45%);
  z-index: -1;
}
.home-play {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border: 1px solid #fff;
  border-radius: 50%;
  color: #fff;
  background: #201b1ac9;
  position: absolute;
  top: 47%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.home-play .tn-icon { width: 22px; height: 22px; }
.editorial-home .home-film:focus-visible {
  outline: 3px solid #fff4cd;
  outline-offset: 5px;
}
.home-film:focus-visible .home-play { background: #630f21; }
@media (hover: hover) and (pointer: fine) {
  .home-film:hover .home-play { background: #630f21; }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .home-play { transition: transform 170ms ease-out, background-color 170ms linear; }
  .home-film:hover .home-play { transform: translate(-50%, calc(-50% - 2px)); }
}
.home-caption {
  position: absolute;
  inset: auto 0 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .6rem .8rem .36rem;
  background: #f9f1e4;
  color: #332122;
  font: 550 .83rem/1.4 var(--cover-sans);
  letter-spacing: .01em;
}
.home-caption b {
  font-size: .75rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .07em;
}
.people-copy {
  align-self: center;
  padding-block: clamp(8px, 2cqw, 30px);
}
.cover-label {
  font: 650 .73rem/1.4 var(--cover-sans);
  letter-spacing: .105em;
  text-transform: uppercase;
  color: #e7c9bb;
  margin: 0 0 1.5rem;
}
.people-copy h2 {
  font-size: clamp(45px, 6.05cqw, 93px);
  letter-spacing: -.045em;
  line-height: 1;
  max-width: 9em;
}
.people-copy em {
  display: block;
  color: #f2cfc3;
}
.people-copy > p:not(.cover-label) {
  max-width: 36ch;
  margin: 1.5rem 0;
  line-height: 1.5;
  color: #ebe3d9;
}
.home-link {
  display: inline-block;
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
  font-size: .92rem;
}
.home-link .tn-icon { margin-inline-start: .28em; vertical-align: -.2em; }
.people-copy .home-link:focus-visible { outline-color: #fff4cd; }
.people-copy .home-link:hover {
  color: #f2cfc3;
}
.home-review {
  padding: clamp(40px, 6.5cqw, 100px) clamp(23px, 9cqw, 180px);
  margin: 0;
}
.home-review blockquote {
  text-align: left;
  color: var(--cover-wine);
  font-size: clamp(38px, 5.1cqw, 84px);
  font-style: italic;
  letter-spacing: -.035em;
  line-height: 1.12;
  margin: 0 0 1.45rem;
}
.home-review figcaption {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .8rem 2rem;
  color: #54443e;
  font-size: .85rem;
}
@media (min-width: 681px) and (max-width: 900px) {
  .cover-story { min-height: 53cqw; }
  .cover-copy h1 { font-size: 9.7cqw; }
  .cover-actions { gap: 12px; }
}
@media (max-width: 680px) {
  .editorial-home { --cover-gutter: clamp(18px, 5vw, 32px); }
  .cover-story { min-height: 0; display: grid; padding-top: 4px; }
  .cover-story .cover-portrait,
  .cover-edge {
    position: relative;
    inset: auto;
    grid-area: 1 / 1;
    width: calc(100% - var(--cover-gutter) - 8px);
    margin-inline: auto 8px;
    height: auto;
    aspect-ratio: 3 / 2;
  }
  .cover-slant { transform: matrix(1, 0, -.06, 1, 6, 0); }
  .cover-story .cover-portrait {
    clip-path: polygon(6% 0, 100% 0, 100% 100%, 0 100%);
  }
  .cover-copy { width: 100%; padding: 1.35rem var(--cover-gutter) 1.5rem; }
  .cover-copy .cover-kicker { margin: 0 0 12px; }
  .cover-copy h1 { font-size: 8.85cqw; line-height: 1.02; }
  .cover-copy h1 span { display: inline; }
  .cover-copy h1 em { font-size: .89em; margin-top: .1em; line-height: 1.05; }
  .cover-copy p { font-size: .92rem; margin: .9rem 0; max-width: 36ch; }
  .cover-actions { max-width: none; gap: .3rem .85rem; }
  .cover-primary { padding: 12px; }
  .first-song { padding: 1.25rem 0 1.5rem; }
  .first-song h2 { font-size: 9.6cqw; }
  .first-song nav { grid-template-columns: 1fr; margin-top: .8rem; gap: 0; }
  .first-song nav a { gap: .85rem; font-size: .92rem; }
  .home-people { grid-template-columns: 1fr; gap: 1.8rem; padding: 1.8rem var(--cover-gutter) 2.3rem; }
  .home-film-mount::before { transform: translate(-3px, 3px) rotate(-.7deg); }
  .home-film { aspect-ratio: 1.5; }
  .people-copy { padding: 0; }
  .people-copy h2 { max-width: none; }
  .people-copy em { display: inline; }
  .home-review { padding: 2.75rem var(--cover-gutter); }
}

/* The three wedding services share one route into an inquiry. */
.wedding-services {
  margin-inline: var(--cover-gutter);
  padding: clamp(28px, 4cqw, 64px) 1cqw;
  border-top: 1px solid var(--cover-rule);
}
.wedding-services .cover-label { margin-bottom: .8rem; }
.wedding-services > h2 {
  font-size: clamp(36px, 4.8cqw, 72px);
  letter-spacing: -.04em;
  line-height: 1.08;
}
.wedding-services > h2 em { color: var(--cover-wine); font-weight: 400; }
.wedding-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 3cqw, 48px);
  margin-block: 1.8rem;
}
.wedding-service-grid > a { padding-block: 1rem; border-block: 1px solid var(--cover-rule); }
.wedding-service-grid h3 { font: 500 clamp(1.6rem, 2.4cqw, 2.2rem)/1.15 var(--cover-font); letter-spacing: -.025em; }
.wedding-service-grid p { margin-block: .8rem 1.1rem; color: #55483f; font-size: .95rem; line-height: 1.6; }
.wedding-service-grid > a > span { display: flex; align-items: center; gap: .6rem; color: var(--cover-wine); font-size: .85rem; font-weight: 650; }
.wedding-service-grid > a:hover > span { text-decoration: underline; text-underline-offset: .2em; }
.wedding-service-next { display: flex; align-items: baseline; flex-wrap: wrap; justify-content: space-between; gap: 1rem; }
.wedding-service-next p { max-width: 43ch; margin: 0; color: #55483f; font-size: .88rem; }
.wedding-service-next p a { text-decoration: underline; text-underline-offset: .18em; }
@media (max-width: 680px) {
  .wedding-service-grid { grid-template-columns: 1fr; gap: 0; margin-block: 1rem; }
  .wedding-service-grid > a { border-bottom: 0; }
  .wedding-service-grid > a:last-child { border-bottom: 1px solid var(--cover-rule); }
  .wedding-service-grid h3 { font-size: 1.7rem; }
  .wedding-service-grid p { margin-block: .6rem; }
}
.home-review-person { display: flex; align-items: center; gap: 1rem; margin-bottom: .9rem; }
.home-review-person img { width: 64px; height: 64px; flex: none; object-fit: cover; border: 1px solid var(--cover-rule); }
.home-journal { margin: 0 var(--cover-gutter); padding: clamp(32px,4cqw,64px) 1cqw; border-top: 1px solid var(--cover-rule); }
.home-journal .cover-label { color: var(--cover-wine); margin-bottom: .8rem; }
.home-journal h2 { font-size: clamp(32px,4cqw,60px); line-height: 1.12; letter-spacing: -.035em; }
.home-journal > p:not(.cover-label) { margin-block: 1rem; max-width: 48ch; }

.wedding-services .cover-label { color: var(--cover-wine); }
.home-service-image { margin:0 0 1.15rem; position:relative; background:#e6d9c9; box-shadow:0 8px 18px -14px #35201580; }
.home-service-image img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; object-position:center 35%; }
.home-service-image img[src*="dj-anthony"] { object-position:center top; }
.home-service-image figcaption { padding:.65rem .7rem; color:#65534b; font-size:.7rem; line-height:1.45; border:1px solid var(--cover-rule); border-top:0; background:#fcf8f1; }
.home-day-arc { list-style:none; padding:0; margin:1rem 0 2rem; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-block:1px solid var(--cover-rule); }
.home-day-arc li { padding:1.1rem .9rem 1.1rem 0; position:relative; }
.home-day-arc li + li { padding-left:1.3rem; border-left:1px solid var(--cover-rule); }
.home-day-arc span { display:block; color:var(--cover-wine); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:.4rem; }
.home-day-arc strong { font:400 clamp(1rem,1.65cqw,1.4rem)/1.35 var(--cover-font); }
@media(max-width:540px) { .home-day-arc { grid-template-columns:1fr; } .home-day-arc li { display:grid; grid-template-columns:5.5rem 1fr; gap:.7rem; padding:.85rem 0; } .home-day-arc li + li { padding-left:0; border-left:0; border-top:1px solid var(--cover-rule); } .home-day-arc span { margin:0; } }
