.contact-page { padding-block: var(--space-8) var(--space-20); }
.contact-intro { display:grid; grid-template-columns:minmax(0,1fr) clamp(100px,16vw,180px); align-items:center; gap:var(--space-8); margin-bottom:var(--space-10); padding-bottom:var(--space-8); border-bottom:1px solid var(--line); }
.contact-intro .eyebrow { margin-bottom:var(--space-3); }
.contact-intro h1 { font-size:clamp(2.25rem,4.6vw,4.75rem); margin:0; }
.contact-intro .contact-brand { width:100%; margin:0; }
.contact-page .contact-content { max-width:none; }
.contact-content > h2 { font-size:clamp(1.5rem,2.3vw,2rem); margin:0 0 var(--space-7); }
.contact-overview { display:grid; grid-template-columns:minmax(0,45fr) minmax(0,55fr); gap:clamp(2rem,5vw,5rem); align-items:start; }
.contact-details { min-width:0; }
.contact-fact { display:grid; grid-template-columns:24px minmax(0,1fr); gap:var(--space-4); padding-block:var(--space-6); border-top:1px solid var(--line); }
.contact-fact:first-child { padding-top:0; border-top:0; }
.contact-fact:last-child { padding-bottom:0; }
.contact-icon { width:24px; height:24px; fill:none; stroke:var(--gold); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.contact-fact h3 { font:var(--weight-semibold) var(--text-control)/var(--leading-control) var(--sans); color:var(--text); margin:0 0 var(--space-3); }
.contact-fact address { font-style:normal; line-height:1.6; }
.contact-fact address strong { font-weight:var(--weight-body); color:var(--text); }
.contact-fact p,.contact-fact dl { margin:0; }
.contact-fact .contact-coordinate { font-size:var(--text-sm); color:var(--muted); margin-top:var(--space-2); }
.contact-map-link,.contact-booking { display:inline-block; font-size:var(--text-sm); margin-top:var(--space-3); padding-block:var(--space-1); }
.contact-fact .contact-direct { list-style:none; padding:0; margin:0; }
.contact-direct a { display:inline-block; min-height:var(--control-height); padding-block:var(--space-1); color:var(--text); }
.contact-direct a:hover { color:var(--gold); }
.contact-fact .venue-hours { grid-template-columns:minmax(0,1fr) minmax(0,2fr); font-size:var(--text-control); }
.contact-page .contact-map { --contact-map-height:clamp(20rem,28vw,28rem); min-width:0; margin:0; padding:0; border:0; }
.contact-map-heading { display:grid; grid-template-columns:28px minmax(0,1fr); column-gap:var(--space-3); align-items:start; }
.contact-map-heading h2 { grid-column:2; grid-row:1; font:var(--weight-semibold) var(--heading-sm)/1.2 var(--sans); margin:0; }
.contact-map-heading > svg { grid-column:1; grid-row:1; width:28px; height:28px; }
.contact-map-heading a { grid-column:2; grid-row:2; display:inline-flex; align-items:center; justify-self:start; gap:var(--space-3); font-size:var(--text-sm); color:var(--gold); text-underline-offset:.25em; margin-top:var(--space-3); }
.contact-map-heading a svg { width:1.1em; height:1.1em; flex-shrink:0; }
.contact-page .contact-map-consent { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-height:var(--contact-map-height); max-width:none; padding:clamp(1.25rem,3vw,2rem); border-radius:var(--radius-sm); }
.contact-page .contact-map-consent,.contact-page .contact-map-stage { min-width:0; margin-top:var(--space-6); }
.contact-map-stage:empty { display:none; }
.contact-page .contact-map-actions { margin-top:var(--space-4); }
.contact-map-actions:not(:has(button:not([hidden]))) { display:none; }
.contact-page .contact-map-stage iframe { height:var(--contact-map-height); border-radius:var(--radius-sm); }
.contact-page .contact-map [hidden] { display:none !important; }
@media(max-width:860px) {
    .contact-overview { grid-template-columns:minmax(0,1fr); gap:var(--space-8); }
    .contact-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-6); }
    .contact-fact { padding:0; border:0; }
    .contact-fact:last-child { grid-column:1/-1; padding-top:var(--space-5); border-top:1px solid var(--line); }
    .contact-page .contact-map { padding-top:var(--space-7); border-top:1px solid var(--line); }
}
@media(max-width:520px) {
    .contact-page { padding-block:var(--space-6) var(--space-12); }
    .contact-intro { gap:var(--space-5); margin-bottom:var(--space-7); padding-bottom:var(--space-6); }
    .contact-intro .eyebrow { font-size:var(--text-2xs); letter-spacing:.12em; }
    .contact-details { grid-template-columns:minmax(0,1fr); gap:0; }
    .contact-fact { padding-block:var(--space-5); border-top:1px solid var(--line); }
}
:root[data-bn-large-text="true"] .contact-intro { grid-template-columns:minmax(0,1fr); }
:root[data-bn-large-text="true"] .contact-intro .contact-brand { max-width:180px; }
:root[data-bn-large-text="true"] .contact-overview,:root[data-bn-large-text="true"] .contact-details,:root[data-bn-large-text="true"] .contact-page .contact-map { display:block; }
:root[data-bn-large-text="true"] .contact-fact { padding-block:var(--space-6); border-top:1px solid var(--line); }
:root[data-bn-large-text="true"] .contact-page .contact-map { margin-top:var(--space-8); padding-top:var(--space-7); border-top:1px solid var(--line); }
