/* White paper, a torn seam and a small wedding seal make this a keepsake ticket. */
#invite .wedding-ticket {
  position:relative;
  margin:0;
  padding:0;
  overflow:hidden;
  border:1px solid #e4e4e2;
  border-radius:14px;
  background:#fff;
  box-shadow:0 5px 16px #252c3506,0 1px 2px #252c3505;
  text-align:left;
}
.wedding-ticket-main { padding:13px 22px 14px; }
.ticket-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.ticket-label { color:#d13c32; font:650 12px/1.6 var(--sans); letter-spacing:.16em; }
.ticket-couple { color:#7d7875; font:11px/1.6 var(--sans); white-space:nowrap; }
.ticket-couple i { margin:0 3px; color:#d15145; font-style:normal; }
.ticket-destination { position:relative; display:flex; align-items:baseline; gap:12px; margin:8px 0 10px; padding-right:35px; }
.ticket-destination>strong { color:#2d2b2a; font:650 30px/1.25 var(--sans); letter-spacing:.02em; white-space:nowrap; }
.ticket-destination>span:not(.ticket-seal) { color:#76716d; font:11px/1.7 var(--sans); }
.ticket-seal { position:absolute; right:0; top:4px; display:grid; place-items:center; width:26px; height:26px; border:1px solid #e99c91; border-radius:50%; outline:1px solid #f6e1dc; outline-offset:3px; color:#d25748; font:18px/1 var(--sans); transform:rotate(9deg); }
.ticket-schedule { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
#invite .wedding-ticket #wedding-info { margin:0; font:inherit; text-align:left; letter-spacing:0; }
#invite .wedding-ticket #wedding-info time { display:flex; flex-direction:column; gap:4px; }
.ticket-date-note { color:#807a75; font:11px/1.6 var(--sans); letter-spacing:.04em; }
#invite .wedding-ticket #wedding-info time>strong { color:#b93129; font:650 clamp(40px,11.8cqw,54px)/1 var(--sans); letter-spacing:-.06em; white-space:nowrap; font-variant-numeric:tabular-nums; }
#invite .wedding-ticket #wedding-info time>strong>span { display:inline-block; margin:0 7px; color:#e4a39b; font-size:.6em; font-weight:350; vertical-align:4px; }
.ticket-time { display:flex; flex-direction:column; gap:4px; margin:0 0 2px; text-align:right; }
.ticket-time>span { color:#807a75; font:11px/1.6 var(--sans); }
.ticket-time>strong { color:#37312e; font:600 27px/1.1 var(--sans); letter-spacing:-.035em; font-variant-numeric:tabular-nums; }
.ticket-perforation { position:relative; height:0; margin:0; border-top:1px dashed #dedbd7; }
.ticket-perforation:before,.ticket-perforation:after { content:''; position:absolute; z-index:1; top:-10px; width:19px; height:19px; border:0; border-radius:50%; background:var(--home-surface,#fcfcfc); }
.ticket-perforation:before { left:-11px; }
.ticket-perforation:after { right:-11px; }
#invite .wedding-ticket .venue-map { display:grid; grid-template-columns:minmax(0,1fr) 44px; align-items:center; gap:12px; min-height:88px; margin:0; padding:10px 22px 11px; border:0; border-radius:0; background:#fff; color:#3b3632; text-decoration:none; }
#invite .wedding-ticket .venue-map-copy { gap:2px; }
#invite .wedding-ticket .venue-map-copy>strong { color:#3b3632; font:650 17px/1.4 var(--sans); }
#invite .wedding-ticket .venue-hall { color:#665b54; font:500 12px/1.6 var(--sans); }
#invite .wedding-ticket .venue-map-copy>span { color:#80766e; font:11px/1.7 var(--sans); }
#invite .wedding-ticket .venue-map-action { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-width:44px; min-height:44px; padding:3px 0; border:1px solid #eee4df; border-radius:10px; background:#fff; color:#ba4a3c; font:10px/1.3 var(--sans); }
#invite .wedding-ticket .venue-map-action>span { font:20px/1 var(--sans); transition:transform .18s; }
#invite .wedding-ticket .venue-map:focus-visible { outline:2px solid var(--red-ink); outline-offset:-4px; }
#invite .wedding-ticket .venue-map:active { background:#fffaf8; }
#invite .wedding-ticket .venue-map:active .venue-map-action>span { transform:translate(2px,-2px); }
@media (max-width:360px) {
  .wedding-ticket-main { padding:12px 17px 13px; }
  .ticket-heading { gap:10px; }
  .ticket-destination { gap:9px; margin-top:8px; padding-right:30px; }
  .ticket-destination>strong { font-size:27px; }
  .ticket-destination>span:not(.ticket-seal) { font-size:10px; }
  .ticket-seal { top:3px; width:24px; height:24px; font-size:17px; }
  #invite .wedding-ticket #wedding-info time>strong { font-size:40px; }
  .ticket-time>strong { font-size:25px; }
  #invite .wedding-ticket .venue-map { gap:10px; padding:10px 17px 11px; }
  #invite .wedding-ticket .venue-map-copy>strong { font-size:16px; }
}
@media (hover:hover) and (pointer:fine) {
  #invite .wedding-ticket .venue-map:hover .venue-map-action { border-color:#d9a69b; }
  #invite .wedding-ticket .venue-map:hover .venue-map-action>span { transform:translate(2px,-2px); }
}
@media (prefers-reduced-motion:reduce) { #invite .wedding-ticket .venue-map-action>span { transition:none; } }
