@import url("https://fonts.googleapis.com/css2?family=PT+Serif:ital,wght@0,400;0,700;1,400&display=swap");

.newspaper-wedding {
  --paper: #f0ebdf;
  --ink: #242421;
  --line: #928b7e;
  --accent: #802f29;
  --edge: clamp(16px,5.7vw,95px);
  --serif: 'PT Serif', Georgia, serif;
  font-size: 15px;
  overflow-wrap: anywhere;
}
.newspaper-wedding .occasion-nav { padding: 15px var(--edge); text-transform: uppercase; }
.newspaper-wedding :is(h1,h2,h3,.sign,.nw-footer>span) { font-family: var(--serif); }
.newspaper-wedding .overline { text-transform: uppercase; letter-spacing: .14em; color: var(--accent); }
.nw-edition { max-width: 1420px; padding-inline: var(--edge); margin: auto; }
.nw-masthead { text-align: center; padding: clamp(22px,4vw,53px) 0 16px; }
.nw-masthead .overline { margin: 0; }
.nw-masthead h1 { font-size: clamp(53px,10vw,148px); font-weight: 700; line-height: .92; letter-spacing: -.07em; margin-top: 13px; }
.nw-masthead h1 i { font-size: .52em; margin-inline: .2em; color: var(--accent); vertical-align: .16em; }
.nw-front > .cover-date { border-block: 3px double var(--ink); padding: 7px 0; text-align: center; text-transform: uppercase; letter-spacing: .19em; margin: 0; }
.nw-front-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(0,1fr); padding-block: 15px; border-bottom: 1px solid var(--ink); }
.nw-front-grid figure { padding-right: clamp(10px,2vw,28px); }
.nw-front-grid img { aspect-ratio: 4/3; height: auto; filter: grayscale(1) contrast(1.08); object-position: center 38%; }
.nw-column.welcome { width: 100%; max-width: none; text-align: left; padding: 12px 0 12px clamp(10px,2vw,28px); border-left: 1px solid var(--line); }
.nw-column .overline { margin-top: 0; }
.nw-column h2 { font-weight: 700; font-size: clamp(35px,6vw,84px); letter-spacing: -.07em; margin: 12px 0; }
.nw-column > p:not(.overline) { margin: 0; font: 16px/1.65 var(--serif); white-space: pre-line; }
.nw-column > p:not(.overline)::first-letter { font-size: 2.3em; line-height: .9; color: var(--accent); }
.nw-column .sign { font-size: 20px; }
.nw-index { padding-block: clamp(35px,6vw,72px); display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.45fr); gap: clamp(18px,4vw,63px); border-bottom: 3px double var(--ink); }
.nw-index .ni-date h2 { font-size: clamp(31px,4.3vw,63px); margin-top: 10px; }
.nw-index .overline { margin-top: 0; }
.nw-index .digits { display: grid; grid-template-columns: repeat(4,minmax(0,55px)); justify-content: start; gap: 7px; }
.nw-index .digits b { min-width: 0; font: clamp(25px,4vw,48px)/1.1 var(--serif); }
.nw-index .digits span { letter-spacing: .03em; }
.nw-index .schedule { display: block; padding: 0; width: 100%; }
.nw-index .section-title h2 { margin: 10px 0 17px; font-size: clamp(32px,4.5vw,64px); }
.nw-index .schedule li { display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 11px; padding-block: 11px; }
.nw-index .event-number { display: none; }
.nw-index .schedule h3 { font-size: 20px; font-weight: 700; }
.nw-index .schedule li p { font-size: 13px; margin-top: 5px; }
.nw-back { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); margin: 20px 0 0; border-bottom: 1px solid var(--ink); }
.nw-venue { padding-right: clamp(12px,3vw,38px); }
.nw-venue .location-copy { padding: 0 0 16px; }
.nw-venue h2 { font-size: clamp(31px,4vw,59px); }
.nw-venue img { height: auto; aspect-ratio: 2/1; object-position: center 36%; filter: grayscale(1); }
.nw-dress.dress { text-align: left; padding: 0 0 18px clamp(12px,3vw,38px); border-left: 1px solid var(--line); }
.nw-dress h2 { font-size: clamp(31px,4vw,55px); }
.nw-dress > p:not(.overline) { white-space: pre-line; margin-left: 0; }
.newspaper-wedding .response { max-width: none; grid-template-columns: repeat(2,minmax(0,1fr)); border: 0; padding-inline: 0; gap: clamp(24px,7vw,90px); }
.newspaper-wedding .response h2 { font-size: clamp(35px,5.7vw,74px); }
.newspaper-wedding .response button { min-height: 44px; }
.nw-footer { background: #e6dfcf; border-top: 3px double var(--ink); }
.nw-footer > span { font-size: clamp(38px,7vw,84px); line-height: 1; }
.nw-opening[hidden] { display: none; }
.nw-opening {
  --opening-ready: 1; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none;
  margin: 0; border: 0; padding: 0; background: #26241f; color: #26241f;
}
.nw-opening::backdrop { background: transparent; }
.nw-opening-stage { min-height: 100%; display: grid; place-items: center; padding: clamp(12px,4vw,48px); }
.nw-broadsheet {
  width: min(100%,780px); padding: clamp(16px,4vw,38px);
  background: #f5efe2 url('/art/print-grain.svg'); box-shadow: 0 18px 60px #14110b66;
}
.nw-edition-line, .nw-opening-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.nw-edition-line {
  border-block: 1px solid; padding-block: 9px;
  font-size: 10px; letter-spacing: .16em; text-transform: uppercase;
}
.nw-broadsheet-grid { display: grid; grid-template-columns: 1fr .9fr; gap: clamp(12px,3vw,28px); padding-block: clamp(14px,3vw,28px); }
.nw-opening-copy { align-self: center; }
.nw-opening-copy h2 { margin: .18em 0 .25em; font-size: clamp(36px,6.8vw,82px); line-height: .98; letter-spacing: -.065em; overflow-wrap: anywhere; }
.nw-edition-label { margin: 0; color: #802f29; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.nw-edition-date { margin: 0; font: italic clamp(13px,2vw,16px)/1.4 var(--serif); }
.nw-opening-photo { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: #c5bbac; }
.nw-opening-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.nw-opening-photo img[src$="/newspaper-wedding.webp"] { object-position: center 73%; }
.nw-press-mask {
  position: absolute; inset: auto 0 0; height: 70%; display: grid; place-items: center;
  border-top: 1px solid #f5efe2; background: #292621 url('/art/print-grain.svg'); color: #f5efe2;
}
.nw-press-mask span { font: italic clamp(13px,3vw,23px)/1 var(--serif); }
.nw-opening-actions { border-top: 3px double; padding-top: 10px; }
.nw-opening-actions form { margin: 0; width: auto; }
.nw-opening-actions button {
  display: inline-flex; align-items: center; gap: .75em; width: auto; min-height: 44px;
  margin: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left;
}
.nw-opening-actions [data-open] { font-weight: 700; color: #802f29; }
.nw-opening-actions form button { text-decoration: underline; text-underline-offset: .25em; font-size: 13px; }
@media (max-width: 500px) {
  .nw-broadsheet-grid { grid-template-columns: minmax(0,1fr); }
  .nw-opening-photo { aspect-ratio: 16 / 9; }
}
@media(max-width:700px) {
  .nw-masthead h1 span { display: block; }
  .nw-masthead h1 i { display: block; margin-block: .18em; }
  .nw-front-grid,.nw-index,.nw-back,.newspaper-wedding .response { grid-template-columns: minmax(0,1fr); }
  .nw-front-grid figure,.nw-venue { padding: 0; }
  .nw-column.welcome,.nw-dress.dress { padding: 20px 0; border-left: 0; }
}
@media(prefers-reduced-motion:reduce) { .nw-opening * { animation: none !important; } }

.nw-front-grid img[src$="/newspaper-wedding.webp"],
.nw-venue img[src$="/newspaper-wedding.webp"] { object-position: center 73%; }
