/* Shared responsive typography (SITE-FIX 2026-10-14). One place for text-flow rules.
   Headings balance (also set in each page); all other text wraps "pretty" to avoid
   isolated final words. Progressive enhancement: normal wrapping is the fallback. */
body{text-wrap:pretty}
h1,h2,h3,h4{text-wrap:balance}
/* short titles and labels inside cards, lists and buttons: balance them */
.btn span,.btn-line span,.gwcard__t,.bcard__t,.dcard__t,.phc__dek,.offers span,.hnote,.c-note,.pod-guest,.host-line,.s-head p{text-wrap:balance}
/* card descriptions are never cut off: let them grow with the copy */
.ncard p{display:block;-webkit-line-clamp:unset;overflow:visible}
/* two-column service cards (901px to 1180px): the text column is too narrow for a name column plus a description column,
   so the description drops below the name, as it already does on phones */
@media (min-width:901px) and (max-width:1180px){
  .offers a,.offers .it{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}
  .offers span{grid-column:1/-1;grid-row:2}
}
/* short one-line list items inside cards: balance them so a hyphenated word is not left alone */
.sub li,.fcard li{text-wrap:balance}
/* source label above a linked title: the arrow sits beside the title's first line, not beside the label */
.bcard__t:has(.bcard__src)+.bcard__go{margin-top:calc(10px*1.2 + 4px)}
