/* Place detail refinements. */
.shared-listing-page .shared-hero-media {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.shared-place-page .shared-change-note {
  padding: .85rem 1rem;
  border: 0;
  border-radius: 1rem;
  font-family: inherit;
  font-size: .82rem;
  line-height: 1.5;
}
.shared-place-page .shared-editorial-copy { white-space: normal; }
.shared-place-page .shared-editorial-copy > p { margin: 0; }
.shared-place-page .shared-editorial-copy > p + p { margin-top: .85rem; }
.shared-related-section { border-top: 1px solid color-mix(in srgb, var(--colour-primary) 12%, transparent); }
.shared-related-section > div { max-width: 72rem; }
.shared-related-ticket {
  display: flex; flex-direction: column; min-width: min(82vw, 20rem); overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--colour-primary) 14%, transparent);
  border-radius: 1.35rem; background: var(--colour-surface);
  box-shadow: 0 8px 24px rgba(17, 17, 17, .06); color: var(--colour-page-text); text-decoration: none;
}
.shared-related-media { display: block; height: 9.5rem; overflow: hidden; background: var(--colour-subtle-surface); }
.shared-related-media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(100%); transition: transform .25s ease, filter .25s ease; }
.shared-related-ticket:hover .shared-related-media img { transform: scale(1.025); filter: grayscale(35%); }
.shared-related-ticket-main { display: flex; min-height: 0; flex: 1; flex-direction: column; padding: 1rem 1.05rem 1.05rem; }
.shared-related-title { margin-top: .25rem; font-size: 1.25rem; line-height: 1.05; }
.shared-related-meta { margin-top: .45rem; color: var(--colour-muted-text); }
.shared-related-description { display: -webkit-box; margin-top: .65rem; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: .92rem; line-height: 1.45; }
.shared-related-link-label { display: inline-flex; align-items: center; gap: .35rem; margin-top: auto; padding-top: 1rem; color: var(--colour-primary); font-size: .88rem; font-weight: 900; }

@media (min-width: 768px) { .shared-related-ticket { min-width: 0; } }

@media (max-width: 767px) {
  .shared-place-page { padding-top: .65rem; }
  .shared-place-page > div { gap: .85rem; }
  .shared-place-page .shared-page-back { padding: .55rem .8rem; }
  .shared-place-page .shared-hero-card, .shared-place-page .shared-hero-media { border-radius: 1.35rem; }
  .shared-place-page .shared-hero-media { min-height: 14rem; max-height: 14rem; }
  .shared-place-page .shared-mobile-summary { padding: .45rem 0 .75rem; border-radius: 0; background: transparent; }
  .shared-place-page .shared-mobile-title { max-width: 12ch; margin-top: .45rem; font-size: clamp(2.2rem, 11vw, 3.25rem); line-height: .92; }
  .shared-place-page .shared-mobile-meta { margin-top: 1rem; padding-top: .85rem; border-top: 1px solid color-mix(in srgb, var(--colour-primary) 12%, transparent); font-size: .92rem; }
  .shared-place-page .shared-detail-grid { display: flex; flex-direction: column; gap: .85rem; }
  .shared-place-page .shared-facts-card { order: 1; padding: 1rem; border-radius: 1.25rem; }
  .shared-place-page .shared-about-card { order: 2; padding: 1.25rem; border-radius: 1.25rem; }
  .shared-place-page .shared-facts-heading, .shared-place-page .shared-fact-row { display: none; }
  .shared-place-page .shared-facts-list { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
  .shared-place-page .shared-side-link { min-height: 3rem; justify-content: center; padding: .75rem; border-radius: 999px; font-size: .9rem; }
  .shared-place-page .shared-facts-card .mt-5.flex.flex-col { display: grid; grid-template-columns: 1fr auto; gap: .6rem; margin-top: .8rem; }
  .shared-place-page .shared-side-cta { min-height: 2.75rem; padding: .65rem .85rem; font-size: .82rem; }
  .shared-place-page .shared-side-cta:last-child { grid-column: 1 / -1; min-height: auto; padding: .35rem; border: 0; background: transparent; color: var(--colour-muted-text); }
  .shared-place-page .place-tag { padding: .4rem .65rem; }
  .shared-place-page .shared-description { font-size: 1rem; line-height: 1.65; }
  .shared-related-section { padding-top: 2rem; }
  .shared-related-section h2 { max-width: 13ch; }
}

@media (max-width: 767px) {
  .shared-listing-page .shared-ticket-image .card-share-btn {
    width: 2.75rem;
    height: 2.75rem;
    flex-shrink: 0;
  }
}

/* The contact panel fills the content column before the desktop sidebar appears. */
@media (max-width: 1023px) {
  .shared-listing-page .shared-detail-grid { align-items: stretch; }
  .shared-listing-page .shared-facts-card {
    width: 100%;
    max-width: none;
    min-width: 0;
    box-sizing: border-box;
    align-self: stretch;
    justify-self: stretch;
  }
}

/* Mobile place hierarchy: photo, introduction and actions, then one practical section. */
.place-mobile-layout { display: none; }
@media (max-width: 767px) {
  .shared-place-page { padding-inline: 20px; padding-top: 1rem; }
  .shared-place-page > div { gap: 1rem; }
  .shared-place-page .shared-page-back { padding: .65rem 1rem; background: transparent; min-height: 40px; font-size: .8125rem; font-weight: 600; }
  .shared-place-page .shared-hero-card, .shared-place-page .shared-hero-media { border-radius: 18px; }
  .shared-place-page .shared-hero-media { min-height: 0; max-height: none; aspect-ratio: 4 / 3; }
  .shared-place-page .shared-ticket-photo { object-fit: cover; height: 100%; }
  .shared-place-page .shared-hero-content, .shared-place-page .shared-media-actions, .shared-place-page .shared-detail-grid { display: none; }
  .shared-place-page .shared-hero-shade { display: none; }
  .shared-place-page .place-mobile-layout { display: grid; gap: 1.75rem; min-width: 0; }
  .place-mobile-category { margin: .4rem 0 .4rem; color: var(--colour-primary); font-size: .75rem; font-weight: 700; }
  .place-mobile-title { font-family: Montserrat, sans-serif; font-size: clamp(1.85rem, 8vw, 2.6rem); line-height: 1.08; font-weight: 800; letter-spacing: -.04em; overflow-wrap: anywhere; }
  .place-mobile-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .9rem; }
  .place-mobile-tags span { padding: .35rem .6rem; border-radius: 999px; background: var(--colour-surface-strong); color: var(--colour-primary); font-size: .6875rem; line-height: 1.4; font-weight: 600; }
  .place-mobile-tags .place-mobile-pick { background: var(--colour-primary); color: var(--colour-primary-text); }
  .place-mobile-description { margin-top: 1rem; color: var(--colour-muted-text); font-size: .9375rem; line-height: 1.65; font-weight: 400; }
  .place-mobile-actions { display: flex; gap: .6rem; margin-top: 1.2rem; }
  .place-mobile-primary, .place-mobile-share { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 48px; padding: .7rem 1rem; border-radius: 999px; font: inherit; font-size: .8125rem; line-height: 1.3; font-weight: 700; text-decoration: none; }
  .place-mobile-primary { flex: 1; background: var(--colour-primary); color: var(--colour-primary-text); }
  .place-mobile-primary svg { width: 19px; height: 19px; flex-shrink: 0; stroke-width: 1.5; }
  .place-mobile-share { border: 1px solid var(--colour-border-soft); background: var(--colour-page); color: var(--colour-primary); cursor: pointer; }
  .place-mobile-layout h2 { font-family: Montserrat, sans-serif; margin-bottom: .85rem; font-size: 1.2rem; line-height: 1.35; font-weight: 750; letter-spacing: -.025em; }
  .place-mobile-story p { color: var(--colour-muted-text); font-size: .9375rem; font-weight: 400; line-height: 1.7; }
  .place-mobile-story p + p { margin-top: .85rem; }
  .place-mobile-visit { padding: 1.2rem; background: var(--colour-surface-strong); border-radius: 18px; }
  .place-mobile-address { display: flex; align-items: flex-start; gap: .6rem; margin: 0 0 1rem; }
  .place-mobile-address svg { flex: 0 0 20px; width: 20px; height: 20px; stroke-width: 1.5; color: var(--colour-primary); margin-top: .1rem; }
  .place-mobile-address p { font-size: .875rem; font-weight: 500; line-height: 1.55; overflow-wrap: anywhere; }
  .place-mobile-disclosure summary { position: relative; list-style: none; min-height: 48px; padding: .85rem 2rem .85rem 0; font-size: .875rem; font-weight: 600; cursor: pointer; }
  .place-mobile-disclosure summary::-webkit-details-marker { display: none; }
  .place-mobile-disclosure summary::after { content: '+'; position: absolute; right: .2rem; top: .6rem; color: var(--colour-primary); font-size: 1.3rem; font-weight: 400; }
  .place-mobile-disclosure[open] summary::after { content: '\2212'; }
  .place-mobile-disclosure > div { padding: 0 0 .85rem; font-size: .875rem; line-height: 1.65; color: var(--colour-muted-text); }
  .place-mobile-disclosure > div p + p { margin-top: .8rem; }
  .place-mobile-contact-links { display: grid; }
  .place-mobile-contact-links a { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .7rem 0; min-height: 44px; color: var(--colour-primary); font-size: .8125rem; font-weight: 600; text-decoration: none; }
  .place-mobile-contact-links a span:last-child { font-weight: 400; }
  .place-mobile-planning { margin-top: -.5rem; }
  .place-mobile-fineprint { margin-top: -.75rem; color: var(--colour-muted-text); font-size: .75rem; line-height: 1.6; }
  .place-mobile-fineprint a { display: inline-flex; align-items: center; min-height: 44px; margin-top: .2rem; color: var(--colour-primary); text-decoration: underline; text-underline-offset: 3px; }
  .place-mobile-layout a:focus-visible, .place-mobile-layout button:focus-visible, .place-mobile-layout summary:focus-visible { outline: 2px solid var(--colour-focus); outline-offset: 3px; }
  body:has(.shared-place-page) #answers { display: none; }
}

@media (max-width: 767px) { .shared-place-page .shared-mobile-summary { display: none !important; } }

/* Keep the mobile place guide aligned with the discovery screen. */
@media (max-width: 767px) {
  .shared-listing-page.shared-place-page { padding: 1rem 20px 2rem; }
  .shared-listing-page.shared-place-page > div { gap: 1.25rem; }
  .shared-listing-page.shared-place-page .shared-page-back { padding: .65rem 1rem; min-height: 44px; gap: .5rem; }
  .shared-listing-page.shared-place-page .shared-page-back svg { width: 18px; height: 18px; flex-shrink: 0; }
  .shared-listing-page.shared-place-page .shared-hero-card,
  .shared-listing-page.shared-place-page .shared-hero-media { border-radius: 20px !important; overflow: hidden; }
  .shared-listing-page.shared-place-page .shared-ticket-image::before,
  .shared-listing-page.shared-place-page .shared-ticket-image::after { display: none; }
  .shared-listing-page.shared-place-page .shared-media-actions { display: flex; top: 14px; right: 14px; }
  .shared-place-page .shared-media-actions > a { display: none; }
  .shared-listing-page.shared-place-page .shared-media-actions .share-btn { width: 44px; height: 44px; padding: 11px; border: 0; background: var(--colour-page); color: var(--colour-primary); box-shadow: 0 2px 10px rgb(0 0 0 / .12); }
  .shared-place-page .shared-media-actions .share-btn svg { width: 22px; height: 22px; }
  .shared-place-page .shared-media-actions .share-btn:focus-visible { outline: 2px solid var(--colour-primary); outline-offset: 3px; }
  .place-mobile-intro { padding-top: .15rem; }
  .place-mobile-category { margin-top: 0; }
  .place-mobile-title { color: var(--colour-primary); font-weight: 800; letter-spacing: -.035em; line-height: 1.15; }
  .place-mobile-actions { margin-top: 1.25rem; }
  .place-mobile-primary { flex: none; min-width: 180px; padding-inline: 1.4rem; }
  .place-mobile-layout { gap: 2rem; }
  .place-mobile-layout h2 { color: var(--colour-primary); font-weight: 800; }
  .place-mobile-visit { padding: 1.25rem; background: color-mix(in srgb, var(--colour-page) 60%, var(--colour-surface-strong)); border: 1px solid var(--colour-border-soft); border-radius: 20px; }
  .place-mobile-contact-links, .place-mobile-visit .place-mobile-disclosure { border-top: 1px solid var(--colour-border-soft); }
  .place-mobile-planning { padding-block: .25rem; border-top: 1px solid var(--colour-border-soft); border-bottom: 1px solid var(--colour-border-soft); }
}

@media (max-width: 767px) {
  .shared-listing-page.shared-place-page .shared-hero-place-status { box-sizing: border-box; height: 28px; left: 14px; top: 14px; }
  .shared-listing-page.shared-place-page .shared-media-actions .card-share-btn { position: relative; display: grid; place-items: center; box-sizing: border-box; width: 28px; height: 28px; min-width: 0; min-height: 0; padding: 0; line-height: 1; }
  .shared-listing-page.shared-place-page .shared-media-actions .card-share-btn svg { display: block; width: 17px; height: 17px; margin: 0; flex-shrink: 0; }
  .shared-listing-page.shared-place-page .shared-media-actions .card-share-btn::after { content: ''; position: absolute; inset: -8px; border-radius: 50%; }
}

@media (max-width: 767px) {
  .place-mobile-visit { padding: 1.25rem; }
  .place-mobile-visit > :last-child { margin-bottom: 0; }
  .place-mobile-contact-links { padding-top: .25rem; }
  .place-mobile-contact-links a { box-sizing: border-box; min-height: 44px; padding: .5rem 0; }
  .place-mobile-contact-links a:last-child { margin-bottom: -.5rem; }
  .place-mobile-contact-links a svg { display: block; width: 16px; height: 16px; flex: 0 0 16px; }
}

@media (max-width: 767px) {
  .shared-listing-page.shared-place-page .shared-media-actions .share-btn svg { position: absolute; left: 50%; top: 50%; width: 17px; height: 17px; margin: 0; transform: translate(-50%, -50%); }
}

/* Place pages use the same collection pills without the discovery-page wrapper. */
.shared-place-page .discovery-guide-links {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0;
}
.shared-place-page .discovery-guide-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .65rem 1rem;
  border: 1px solid #c8ddff;
  border-radius: 999px;
  background: #e9f1fd;
  color: #1b59d1;
  font-size: .8125rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
}
.shared-place-page .discovery-guide-links a:hover {
  background: #d4e4ff;
  border-color: #1b59d1;
}
.shared-place-page .discovery-guide-links a:focus-visible {
  outline: 2px solid #1b59d1;
  outline-offset: 3px;
}
.shared-place-page .discovery-guide-links:empty { display: none; }

/* Independently verified place facts: shared desktop/mobile panel. */
.parea-place-details{margin:24px 0;padding:24px;border-radius:24px;background:var(--colour-surface-strong,#e9f1fd);color:#08096d;min-width:0}
.parea-place-details h2{font-size:24px!important;line-height:1.25;font-weight:850;margin:0 0 22px!important}
.parea-place-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:0}
.parea-place-detail-fact{display:flex;gap:12px;min-width:0;align-items:flex-start}
.parea-place-detail-fact>svg{width:22px;height:22px;flex:0 0 22px;color:#1b59d1}
.parea-place-detail-fact>div{min-width:0}
.parea-place-details dt{font-size:15px;font-weight:750;margin-bottom:5px}
.parea-place-details dd{margin:0;font-size:14px;line-height:1.7;color:#414765;overflow-wrap:anywhere}
.parea-place-details dd small{display:block;font-size:11px;color:#51596c;margin-top:5px}
.parea-place-details a{text-decoration:underline;text-underline-offset:3px}
.parea-place-good{border-top:1px solid #c5d5ef;margin-top:22px;padding-top:18px}
.parea-place-good h3{font-size:14px;font-weight:750;margin:0 0 12px}
.parea-place-good>div{display:flex;flex-wrap:wrap;gap:8px}
.parea-place-good span{background:white;border-radius:99px;padding:7px 13px;font-size:13px;font-weight:600}
.parea-place-details .parea-place-details-note{font-size:12px!important;line-height:1.6;margin:20px 0 0!important;color:#51596c}
.parea-place-book{display:inline-flex;background:#1b59d1;color:#fff;border-radius:99px;padding:11px 18px;margin-top:20px;font-size:14px;font-weight:700;text-decoration:none!important}
@media(max-width:640px){.parea-place-details{padding:22px 18px}.parea-place-details-grid{grid-template-columns:minmax(0,1fr);gap:20px}}

.parea-place-hours-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:-6px 0 24px;font-size:11px;line-height:1.5;color:#51596c}
.parea-hours-badge{display:inline-flex;align-items:center;gap:7px;border-radius:99px;padding:7px 12px;font-size:13px;font-weight:750;background:#e5e9f1;color:#47516b}
.parea-hours-badge::before{content:'';width:7px;height:7px;background:currentColor;border-radius:50%;flex-shrink:0}
.parea-hours-badge[data-state=open]{color:#14623d;background:#def3e6}
.parea-hours-badge[data-state=closed]{color:#923b32;background:#f9e6e1}

/* Consolidated details: reuse the former visit card's brand palette. */
.parea-place-details{background:color-mix(in srgb,var(--colour-page,#fefefe) 60%,var(--colour-surface-strong,#e9f1fd));border:1px solid var(--colour-border-soft,rgba(27,89,209,.12));color:var(--colour-page-text,#242223);border-radius:20px}
.parea-place-details h2{color:var(--colour-primary,#1b59d1)}
.parea-place-details dt,.parea-place-details dd,.parea-place-good h3{color:var(--colour-page-text,#242223)}
.parea-place-details a,.parea-place-detail-fact>svg{color:var(--colour-primary,#1b59d1)}
.parea-place-details .parea-place-book{background:var(--colour-primary,#1b59d1);color:var(--colour-primary-text,#fff)}
.parea-place-good span{color:var(--colour-page-text,#242223);background:var(--colour-surface,#fefefe)}
.parea-place-details a:focus-visible{outline:2px solid var(--colour-focus,#1b59d1);outline-offset:4px;border-radius:3px}
.parea-place-extra-links{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:20px;font-size:14px;font-weight:600}

/* Place tags share one centred baseline, including the bordered Parea Pick. */
.place-mobile-tags{align-items:center}
.place-mobile-tags>span{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:6px 11px;border:2px solid transparent;line-height:1;text-align:center;white-space:nowrap}
.shared-related-section .place-explore-groups{display:grid;gap:20px;margin-top:28px;padding-top:24px;border-top:1px solid var(--colour-border-soft,rgba(27,89,209,.12))}
.shared-related-section .place-explore-group h3{margin:0 0 10px;font-size:12px;line-height:1.5;font-weight:700;color:var(--colour-page-text,#242223)}
.shared-related-section .discovery-guide-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0}
.shared-related-section .discovery-guide-links a{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:40px;max-width:100%;padding:9px 14px;border:1px solid var(--colour-border-soft,rgba(27,89,209,.12));border-radius:99px;background:var(--colour-surface-strong,#e9f1fd);color:var(--colour-primary,#1b59d1);font-size:12px;line-height:1.4;font-weight:650;text-align:center;text-decoration:none}
.shared-related-section .discovery-guide-links a:hover{background:var(--colour-surface,#fefefe);border-color:var(--colour-primary,#1b59d1)}
.shared-related-section .discovery-guide-links a:focus-visible{outline:2px solid var(--colour-focus,#1b59d1);outline-offset:3px}
@media(min-width:768px){.shared-related-section .place-explore-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}}
@media(max-width:767px){.place-mobile-tags>span{padding:6px 10px;line-height:1;min-height:30px}}

/* The editorial rating is a normal fact in the details grid. */
.parea-place-details-heading{margin-bottom:16px}
.parea-place-details .parea-place-details-heading h2{margin:0!important;line-height:1.15}
.parea-place-review-fact .parea-editorial-rating{display:flex;align-items:center;line-height:1;padding:2px 0}
.parea-place-review-fact .parea-editorial-stars{display:flex;align-items:center;gap:3px;line-height:0}
.parea-place-review-fact .parea-editorial-star-svg{display:block;flex:none;width:20px;height:20px;filter:none;box-shadow:none}

/* Keep archived events recognisable without presenting them as upcoming. */
.shared-event-archive{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:20px 24px;border:1px solid #d1d5db;border-left:5px solid #6b7280;border-radius:20px;background:#f3f4f6;color:#374151}
.shared-event-archive h2{margin:0;font-size:20px;line-height:1.3;font-weight:800;color:#1f2937}
.shared-event-archive p{margin:6px 0 0;font-size:14px;line-height:1.5;color:#4b5563}
.shared-event-archive a{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:10px 16px;border-radius:99px;background:var(--colour-primary,#1b59d1);color:#fff;font-size:14px;font-weight:700;line-height:1.5;text-decoration:none}
.shared-event-archive a:hover{text-decoration:underline}
.shared-event-archive a:focus-visible{outline:3px solid var(--colour-primary,#1b59d1);outline-offset:3px}
.shared-event-page.is-archived .shared-ticket-photo{filter:grayscale(1);opacity:.65}
@media(max-width:640px){.shared-event-archive{padding:18px}.shared-event-archive h2{font-size:18px}}
