/* Public venue page at /v/<id>/. Uses the tokens and button system from styles.css. */
.venue-page{margin:0;background:var(--bg)}
.venue-page .topbar{margin:0;padding:0 16px;width:auto}
.venue-page .brand{text-decoration:none;color:inherit}
.venue-main{width:min(100%,1040px);margin:0 auto;padding:24px 16px 0}
.venue-card{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:0 32px;align-items:start}
.venue-photo{grid-row:1/3;aspect-ratio:3/2;border-radius:var(--radius);overflow:hidden;background:var(--surface-raised)}
.venue-photo img{display:block;width:100%;height:100%;object-fit:cover}
.venue-body{padding:8px 0 0}
.venue-name{margin:0;font:600 var(--fs-h1)/1.05 var(--font-display);letter-spacing:-.015em;color:var(--text)}
.venue-body .result-actions{display:flex;gap:8px;margin-top:20px}
.venue-body .result-actions .btn--primary{flex:1}
.venue-facts{grid-column:2;margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}
.venue-facts h2{margin:0 0 8px;font:700 var(--fs-h3)/1.2 var(--font-body)}
.venue-facts p{margin:0 0 12px;color:var(--text-muted);font-size:var(--fs-meta)}
.venue-page .site-footer{width:min(100%,1040px);margin:64px auto 0;padding:24px 16px}
@media(max-width:820px){.venue-card{grid-template-columns:1fr}.venue-photo{grid-row:auto;border-radius:0;margin:0 -16px}.venue-facts{grid-column:1}.venue-main{padding-top:0}.venue-page .site-footer{grid-template-columns:1fr;text-align:center;gap:12px}}
.venue-photo .photo-placeholder{aspect-ratio:3/2}
/* rate card page */
.list-main{width:min(100%,880px);padding-top:40px}
.list-intro h1{margin:0 0 16px;font:600 var(--fs-display)/1 var(--font-display);letter-spacing:-.02em;color:var(--text)}
.list-intro .lede{max-width:60ch}
.products,.photo-spec,.enquire{margin-top:64px}
.products h2,.photo-spec h2,.enquire h2{margin:0 0 20px;font:600 var(--fs-h1)/1.05 var(--font-display);letter-spacing:-.015em}
.product-list{display:grid;gap:12px}
.product{padding:24px;border-radius:var(--radius);background:var(--surface)}
.product--featured{box-shadow:inset 0 0 0 1px var(--accent)}
.product-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.product h3{margin:0;font:600 var(--fs-h2)/1.15 var(--font-display)}
.product-price{margin:0;font:700 var(--fs-label)/1.2 var(--font-body);color:var(--text)}
.product-line{margin:12px 0 0;color:var(--text-muted)}
.product ul{margin:12px 0 0;padding-left:20px;color:var(--text-muted);font-size:var(--fs-meta);display:grid;gap:6px}
.photo-spec p{margin:0;color:var(--text-muted);max-width:65ch}
.enquiry-form{display:grid;gap:16px;max-width:520px}
.enquiry-form label{display:grid;gap:8px;font-size:var(--fs-meta);color:var(--text-muted)}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{color:var(--text)}
.form-note{margin:0;font-size:var(--fs-caption);color:var(--text-muted)}
.form-status{margin:0;min-height:24px;font-size:var(--fs-meta);color:var(--text)}
@media(max-width:600px){.list-main{padding-top:24px}.list-intro h1{font-size:40px}.products,.photo-spec,.enquire{margin-top:40px}}
/* Part A venue page blocks */
.fact-list{margin:0;padding-left:20px;color:var(--text-muted);font-size:var(--fs-body);display:grid;gap:8px}
.hours-table{width:100%;border-collapse:collapse;font-size:var(--fs-meta);font-variant-numeric:tabular-nums;color:var(--text-muted)}
.hours-table th{text-align:left;font-weight:500;padding:6px 0;width:40%}
.hours-table td{padding:6px 0;text-align:right}
.hours-table .is-today{color:var(--text);font-weight:700}
.hours-note{margin:12px 0 0;font-size:var(--fs-caption)}
.venue-body .result-offer{display:grid;gap:4px;margin-top:14px;padding:12px 14px;border-radius:8px;background:var(--surface-raised);font:700 var(--fs-label)/1.3 var(--font-body);color:var(--text)}
.venue-body .result-offer small{font-weight:500;font-size:var(--fs-caption);color:var(--text-muted)}
.venue-body .result-address{margin:4px 0 0;font-size:var(--fs-meta);color:var(--text-muted)}
.map-frame{aspect-ratio:343/160;border-radius:var(--radius);overflow:hidden;background:var(--surface-raised);filter:grayscale(1) invert(.92) contrast(.9)}
.map-frame iframe{display:block;width:100%;height:100%;border:0}
.venue-facts a{color:var(--text)}
