/* One complete Cyrillic/Latin family shared by the map, forms and reading pages. */
@font-face{
 font-family:"Golos Text";
 font-style:normal;
 font-weight:400 900;
 font-display:swap;
 src:url("/fonts/golos-text-variable.woff2") format("woff2");
}
:root{
 --font-ui:"Golos Text",Arial,sans-serif;
 --type-meta:.75rem;
 --type-ui:.875rem;
 --type-body:1rem;
 --type-lead:1.125rem;
 --type-section:1.5rem;
 --type-title:2rem;
}
body{font-family:var(--font-ui);font-size:var(--type-body);line-height:1.55;font-weight:400;font-synthesis:none}
button,input,select,textarea{font-family:var(--font-ui)}
h1,h2,h3,strong,b{font-weight:600}
h1,h2,h3{letter-spacing:-.025em;text-wrap:balance;overflow-wrap:anywhere}
p{line-height:1.6;text-wrap:pretty}
button{line-height:1.35}
.brand,.brand-caption{letter-spacing:-.015em}
.brand{font-size:1.25rem;white-space:nowrap}
.brand-caption{font-size:var(--type-meta);line-height:1.2;letter-spacing:0}
.eyebrow,.filter-kicker,.handpicked,.abonement-kicker,.abonement-entry-kicker,.search-results-label{font-size:var(--type-meta);letter-spacing:.06em;line-height:1.4}
h1,.detail-body h2,.abonement-dialog h2{font-size:var(--type-title);line-height:1.2}
.filter-popover h2,.detail-body h3{font-size:var(--type-section);line-height:1.25}
.venue h2{font-size:var(--type-body);line-height:1.3;font-weight:600}
.venue .address,.venue .price small,.detail-address,.hours,.sources,.list-foot{font-size:var(--type-meta);line-height:1.5}
.venue .price,.rate-top,.price-option{font-variant-numeric:tabular-nums}
.venue .price{font-size:var(--type-ui);font-weight:500}
.intro p,.detail-body p,.abonement-dialog section>p{font-size:var(--type-body);line-height:1.6}
.abonement-entry-card p{font-size:var(--type-ui);line-height:1.5}
.abonement-dialog legend,.abonement-field>span,#abonement-lead-form .abonement-field>span,.abonement-consent{font-size:var(--type-ui);line-height:1.5}
.abonement-plans label>span small,.abonement-footnote{font-size:var(--type-meta);line-height:1.5}
.abonement-dialog section{overflow-wrap:anywhere}
.abonement-plans label>span{min-width:0}
.search-results [role="option"] span{font-size:var(--type-ui);line-height:1.4}
.search-results [role="option"] small{font-size:var(--type-meta);line-height:1.4}
.maplibregl-ctrl{font-family:var(--font-ui)}
/* Reading pages share the family and roles, with a larger page title. */
body:has(.catalog-list) h1,body:has(article>.hero) h1{font-size:clamp(2rem,5vw,3rem);line-height:1.15}
article>p,article>ul:not(.catalog-list),article>aside{max-width:65ch}
article,dd,nav,header{overflow-wrap:anywhere;min-width:0}
body>header{gap:16px;flex-wrap:wrap}
@media(max-width:600px){
 .brand{font-size:1rem}
 h1,.detail-body h2,.abonement-dialog h2{font-size:1.625rem}
 .search-results [role="option"]{gap:8px}
}

article>h2,.catalog-list h3{font-size:var(--type-section);line-height:1.3}
dd{ text-wrap:pretty }
