/* One type scale for event, company and participant cards in both layouts. */
:root{
  --card-font-title:24px;
  --card-font-heading:16px;
  --card-font-body:14px;
  --card-font-small:12px;
}
:is(.comparison-card,.company-sheet,.event-catalog-card,[data-connection-view]){font-size:var(--card-font-body)}

/* The event leads; a company with the same name keeps a single main title. */
.comparison-card .event-title,
.event-catalog-card h2,
.company-banner-main>.company-banner-event-title,
.company-banner-main>.request-event-title,
.company-banner-main:not(:has(>.company-banner-event-title))>strong:not(.request-event-title){font-size:var(--card-font-title);line-height:1.3;font-weight:800;letter-spacing:-.7px;overflow-wrap:anywhere}
.comparison-card .event-title{height:calc(var(--card-font-title)*2.6)}

/* All section headings, company names and participant names share a level. */
.comparison-card .discovery-card-cover>.event-companies-ribbon,
.comparison-card .company-members-disclosure>summary,
.company-sheet .company-members-disclosure>summary,
.company-sheet .profile-feedback>summary,
.company-sheet .request-planner>summary,
.company-sheet .members-header,
.company-sheet .participants-heading>:is(h2,h3,span),
.comparison-card .comparison-people>h3,
.comparison-card .discovery-music-section h3,
.comparison-card .comparison-title,
.company-banner-main:has(>.company-banner-event-title)>strong,
.company-banner-main>.request-invitation,
.event-catalog-card .event-card-details>summary,
.participant-card .participant-identity strong,
.participant-card-fold>summary{font-size:var(--card-font-heading);font-weight:700;line-height:1.5}
.comparison-card :is(h2,h3,h4),
.company-sheet :is(h2,h3,h4):not(:where(.company-editor-body *)),
[data-connection-view] :is(h2,h3,h4),
#modal:has([data-connection-view]) .modalhead h2,
.comparison-card .match-summary-strip>strong{font-size:var(--card-font-heading);line-height:1.5}

/* Reading text, including the address, description and public identity. */
.comparison-card .comparison-description,
.comparison-card .company-members-body,
.company-sheet .company-banner-description,
.company-sheet .company-banner-meta,
.company-sheet .company-banner-period>strong,
.company-sheet .banner-meeting,
.company-sheet .banner-meeting-heading,
.company-sheet .company-visit-context,
.event-catalog-card .event-card-details,
.participant-card .participant-identity small,
[data-connection-view] .connection-bio{font-size:var(--card-font-body);line-height:1.5}
.comparison-card .venue-name{font-size:var(--card-font-body)}
.company-sheet .company-banner-period>span{font-size:var(--card-font-body)}
.company-sheet .company-visit-context strong,
.company-sheet .company-action:not(:where(.company-editor-body *)),
.company-sheet .agenda-controls .btn,
.comparison-card .btn,
.company-sheet .btn:not(:where(.company-editor-body *)),
[data-connection-view] .btn{font-size:var(--card-font-body)}

/* Supporting labels and capsule text never create extra size levels. */
:is(.comparison-card,.company-sheet,.event-catalog-card,[data-connection-view]) :is(.mini-label,.capacity,.smallbadge,.company-status-note,.comparison-company-label,.description-hint,.event-source-links,.event-lineup,.event-hours,.company-purpose-label,.banner-mini-chart,.agenda-range-dates,.agenda-row-label>small,.match-summary-strip):not(:where(.company-editor-body *)),
.comparison-card .discovery-status,
.comparison-card .venue,
.comparison-card .avatars .avatar,
.company-sheet .reminder-ribbon-label,
.company-sheet .agenda-controls .request-free p,
.company-sheet .banner-mini-chart .banner-mini-row>span:first-child,
.company-sheet .banner-mini-chart :is(.banner-mini-dates,.banner-mini-bounds),
.company-sheet .agenda-overview :is(.agenda-inline-dates,.agenda-live-dates),
.company-sheet .agenda-live-dates .range-exact .period-date-button>strong,
.company-sheet .feedback-count>span,
.event-catalog-card .event-date,
.participant-card .participant-organizer,
.participant-card .participant-identity .participant-visit,
.participant-card .participant-music-match,
.participant-card .participant-artists{font-size:var(--card-font-small);line-height:1.5}
:is(.comparison-card,.company-sheet,.event-catalog-card,[data-connection-view]) .genre-pill:not(:where(.company-editor-body *)){font-size:var(--card-font-small)}
/* Primary language codes use 11px to keep the complete vibe header on one row. */
.participant-card .participant-vibe-primary .language-match{font-size:calc(var(--card-font-small) - 1px)}
html[data-appearance=cybersigilism] .event-catalog-card h2{font-size:var(--card-font-title)}
html[data-appearance=cybersigilism] .event-catalog-card .event-date{font-size:var(--card-font-small)}

/* Both goals stay side by side; their full text may wrap at the same 12px. */
.company-purpose-pills>.genre-pill{font-size:var(--card-font-small);white-space:normal;overflow-wrap:normal;line-height:1.5}
.company-purpose-pills{grid-template-columns:minmax(0,max-content) minmax(0,max-content);align-items:stretch}
.company-purpose-pills>.genre-pill:only-child{max-width:100%}

/* Keep the full 16px link in a 37px row even in the narrowest cards. */
@container(max-width:333px){
  .comparison-card .discovery-card-cover>.event-companies-ribbon{padding-inline:6px;gap:4px}
}
@container(max-width:303px){
  .comparison-card .discovery-card-cover>.event-companies-ribbon>span[aria-hidden]{display:none}
}

/* The embedded editor retains the form typography, outside the card scale. */
.company-editor-body{font-size:var(--font-size)}
