/* Venue maps, per-event map/calendar shortcuts and "Add to calendar" for every invitation design,
   plus the venue search in the creator. Colours come from each theme's own tokens. */

/* Per-event shortcuts. Inline items, so centred itineraries (lotus, chapel…) stay centred. */
.vows-guest #invitation-content .v-event-timeline p.v-event-links{display:block;margin:12px 0 0;padding:0;font:600 13px/1.4 var(--sans);letter-spacing:0;color:var(--accent)}
.vows-guest #invitation-content .v-event-links>a,.vows-guest #invitation-content .v-event-links>button{display:inline-flex;align-items:center;gap:6px;min-height:32px;margin:0;margin-inline-end:16px;padding:4px 0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-decoration:none;cursor:pointer;vertical-align:middle}
.vows-guest #invitation-content .v-event-links>:hover{text-decoration:underline;text-underline-offset:3px}
.vows-guest #invitation-content .v-event-links svg{width:15px;height:15px;flex:none}
.vows-guest #invitation-content .v-event-links>:focus-visible,.vows-guest #invitation-content .v-place-actions a:focus-visible,.vows-guest #invitation-content .v-calendar-menu :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* Venue cards */
.vows-guest #invitation-content .v-places{margin:40px 0 12px;text-align:start}
.vows-guest #invitation-content .v-places-title{margin:0 0 20px;font:400 clamp(24px,2.6vw,32px)/1.3 var(--serif);color:var(--theme-ink);text-align:center}
.vows-guest #invitation-content .v-place-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:20px}
.vows-guest #invitation-content .v-place-card{display:flex;flex:1 1 320px;flex-direction:column;min-width:0;max-width:560px;margin:0;border:1px solid var(--theme-line);border-radius:14px;background:color-mix(in srgb,var(--paper) 95%,var(--accent));color:var(--theme-ink);overflow:hidden}
.vows-guest #invitation-content .v-places:not(.sb-places) .v-place-card.has-map:first-child{flex-basis:100%;max-width:none}
.vows-guest #invitation-content .v-place-map{position:relative;aspect-ratio:16/9;min-height:200px;background:color-mix(in srgb,var(--accent) 8%,var(--paper))}
.vows-guest #invitation-content .v-place-frame{position:absolute;inset:0;display:block;width:100%;height:100%;border:0}
.vows-guest #invitation-content .v-place-info{min-width:0;padding:22px 24px 24px}
.vows-guest #invitation-content .v-place-info .v-eyebrow{font:600 12px/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.vows-guest #invitation-content .v-place-info h3{margin:6px 0;font:400 24px/1.3 var(--serif);color:var(--theme-ink);overflow-wrap:anywhere}
.vows-guest #invitation-content .v-place-info p{margin:0 0 6px;font:400 15px/1.6 var(--sans);color:var(--theme-muted,var(--theme-ink));overflow-wrap:anywhere}
.vows-guest #invitation-content .v-place-info p.v-place-events{font-weight:600;color:var(--accent)}
.vows-guest #invitation-content .v-place-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:16px}
.vows-guest #invitation-content .v-place-actions .v-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;margin:0;font:600 14px/1.3 var(--sans);text-decoration:none}
.vows-guest #invitation-content .v-place-link{display:inline-flex;align-items:center;min-height:36px;font:600 14px/1.4 var(--sans);color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.vows-guest #invitation-content .v-places>.v-place-hint{margin:16px 0 0;text-align:center;color:var(--theme-muted,var(--theme-ink))}
@media (min-width:820px){
 .vows-guest #invitation-content .v-places:not(.sb-places) .v-place-card.has-map:first-child{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
 .vows-guest #invitation-content .v-places:not(.sb-places) .v-place-card.has-map:first-child .v-place-map{aspect-ratio:auto;min-height:320px}
 .vows-guest #invitation-content .v-places:not(.sb-places) .v-place-card.has-map:first-child .v-place-info{align-self:center;padding:32px}
}

/* Storybook designs keep their own venue card, centred in the programme. */
#invitation-content.sb-book .v-places.sb-places{max-width:620px;margin:0 auto 30px}
#invitation-content.sb-book .sb-places .v-place-grid{display:block}
#invitation-content.sb-book .sb-places .v-place-card.sb-venue-card{display:grid;max-width:none;margin:0 0 16px;padding:16px;border:0;overflow:visible}
#invitation-content.sb-book .sb-places .sb-venue-card .v-place-info{padding:0 4px 4px}
#invitation-content.sb-book .sb-places .sb-venue-card .v-place-map{aspect-ratio:16/10;min-height:180px;border-radius:16px;overflow:hidden}
#invitation-content.sb-book .sb-places .v-place-actions{justify-content:center}
#invitation-content.sb-book .sb-places .v-place-info p{margin:0 0 8px}
@media (min-width:700px) and (min-aspect-ratio:5/4){
 #invitation-content.sb-book .sb-places .sb-venue-card:not(.has-map){grid-template-columns:minmax(0,1fr)}
 #invitation-content.sb-book .sb-places .sb-venue-card.has-map .v-place-actions{justify-content:flex-start}
}

/* Add to calendar: a disclosure that opens in place, so no section can clip it. */
.vows-guest #invitation-content .v-calendar-menu{display:block;width:100%;max-width:440px;margin:0 auto;text-align:center}
.vows-guest #invitation-content .v-calendar-menu>summary{display:inline-flex;align-items:center;justify-content:center;gap:8px;list-style:none;cursor:pointer}
.vows-guest #invitation-content .v-calendar-menu>summary::-webkit-details-marker{display:none}
.vows-guest #invitation-content .v-calendar-menu[open]>summary>span{display:inline-block;transform:rotate(180deg)}
.vows-guest #invitation-content .v-calendar-panel{margin:14px 0 0;padding:8px;border:1px solid var(--theme-line);border-radius:14px;background:var(--paper);color:var(--theme-ink);text-align:start;box-shadow:0 14px 34px color-mix(in srgb,var(--theme-ink) 14%,transparent)}
.vows-guest #invitation-content .v-calendar-direct{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}
.vows-guest #invitation-content .v-calendar-direct small{font:inherit;font-size:.82em;opacity:.8}
.vows-guest #invitation-content .v-calendar-option,.vows-guest #invitation-content .v-calendar-events .v-calendar-event{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:48px;margin:0;padding:10px 14px;border:0;border-radius:10px;background:none;color:inherit;font:600 15px/1.35 var(--sans);letter-spacing:0;text-align:start;text-transform:none;text-decoration:none;cursor:pointer}
.vows-guest #invitation-content .v-calendar-option small,.vows-guest #invitation-content .v-calendar-events small{font:400 13px/1.4 var(--sans);color:var(--theme-muted,var(--theme-ink))}
.vows-guest #invitation-content .v-calendar-option:hover,.vows-guest #invitation-content .v-calendar-events .v-calendar-event:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.vows-guest #invitation-content .v-calendar-subhead{margin:10px 14px 2px;font:700 12px/1.5 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.vows-guest #invitation-content .v-calendar-events{margin:0;padding:0;list-style:none}
.vows-guest #invitation-content .v-calendar-events li{margin:0;padding:0}
.vows-guest #invitation-content .v-calendar-events li+li{border-top:1px solid color-mix(in srgb,var(--theme-line) 60%,transparent)}
@media print{.vows-guest #invitation-content .v-place-map,.vows-guest #invitation-content .v-calendar-menu{display:none}}

/* Creator and manager: venue search suggestions and the pinned-place note. */
.v-place-suggest[hidden],.v-place-status[hidden]{display:none!important}
.v-place-suggest{margin:-8px 0 18px;border:1px solid #d9bfd2;border-radius:12px;background:#fffdfa;box-shadow:0 12px 28px #6631551a;overflow:hidden}
.v-place-suggest ul{max-height:280px;margin:0;padding:6px;overflow:auto;list-style:none}
.v-place-suggest li[role=option]{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:9px;color:#402d44;cursor:pointer}
.v-place-suggest li[role=option]:hover,.v-place-suggest li[aria-selected=true]{background:#f6e9f1}
.v-place-suggest li strong{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.v-place-suggest li small{font-size:12px;color:#7b5d74;overflow-wrap:anywhere}
.v-place-suggest .v-place-empty{padding:12px;font-size:13px;color:#7b5d74}
.v-place-attribution{margin:0;padding:6px 14px 8px;border-top:1px solid #f0e2ea;font:500 11px/1.4 Roboto,Arial,sans-serif;color:#5f6368;text-align:end}
.vows-studio .v-place-status{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:-6px 0 16px;font-size:13px;font-weight:600;color:#2f6b46}
.vows-studio .v-place-status .v-text-link{min-height:32px;font-size:13px}
.vows-studio .v-place-hint{margin:6px 0 14px;color:#664561}
