/* Bryan's site-wide rule: top headings are large, readable, and equal. */
:root{--top-heading-black:#171918;--top-heading-gray:#626763;--top-heading-white:#fff;--top-heading-red:#d82719;--top-heading-size:calc(18px * var(--text-scale,1.5))}
html body :is(.eyebrow,.guide-number,.ssp-kicker,.ssp-rental-eyebrow,.offer>span){
 font-family:'DM Sans',Arial,sans-serif!important;
 font-size:var(--top-heading-size)!important;
 font-weight:800!important;
 line-height:1.35!important;
 letter-spacing:0!important;
 white-space:normal!important;
 text-wrap:balance;
 overflow-wrap:break-word;
 max-width:100%;
}
/* Keep the location words at the same size without changing the 9px squares. */
.hero .location-kicker>span:not(.red-dot){font-size:inherit!important}

/* Every complete Top Heading gets a contrasting palette box. */
html body :is(.eyebrow,.guide-number,.ssp-kicker,.ssp-rental-eyebrow,.offer>span){
 box-sizing:border-box;
 display:block;
 width:100%;
 min-width:0;
 padding:16px 8px;
 background:var(--top-heading-surface,var(--top-heading-black));
 color:var(--top-heading-white)!important;
}
/* Use red against dark cards, and black against the light middle card. */
html body .property-guide .guide-number{--top-heading-surface:var(--top-heading-red)}
html body .property-services>article:nth-child(even) .guide-number{--top-heading-surface:var(--top-heading-black)}
/* Muted gray boxes stay distinct within the black offer section. */
html body :is(.offers .eyebrow,.offer>span){--top-heading-surface:var(--top-heading-gray)}
html body :is(.blog-card .eyebrow,.local-service-card>.eyebrow){--top-heading-surface:var(--top-heading-red)}
/* Keep the remaining homepage card/calculator/offer labels as full box headings. */
html body.simply-home :is(.guide-number,.ssp-kicker,.ssp-rental-eyebrow,.offer>span){
 min-height:110px;display:flex;align-items:center;justify-content:center;
}
