/* FlickupScore — subtle sound control and responsive finishing pass. */
.fs-topline-right { min-width: 0; }
.fs-sound-toggle {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 23px;
  padding: 2px 7px;
  border: 1px solid rgba(196,255,9,.28);
  border-radius: 2px;
  background: rgba(196,255,9,.055);
  color: var(--fs-lime, #C4FF09);
  font-size: 8px;
  font-weight: 950;
  letter-spacing: 1px;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}
.fs-sound-toggle:hover { background: rgba(196,255,9,.13); border-color: rgba(196,255,9,.7); transform: translateY(-1px); }
.fs-sound-toggle:focus-visible { outline: 2px solid var(--fs-lime, #C4FF09); outline-offset: 3px; }
.fs-sound-toggle svg { display: block; width: 12px; height: 12px; flex: 0 0 12px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.fs-sound-toggle .fs-sound-body { fill: currentColor; stroke: none; }
.fs-sound-toggle .fs-sound-mute { display: none; }
.fs-sound-toggle[aria-pressed="false"] { color: #91A4BB; border-color: rgba(145,164,187,.25); background: rgba(145,164,187,.045); }
.fs-sound-toggle[aria-pressed="false"] .fs-sound-wave { display: none; }
.fs-sound-toggle[aria-pressed="false"] .fs-sound-mute { display: block; }

/* Fluid widths: prevent ad embeds, long club names and editorial type from widening the viewport. */
img, video, iframe, svg, canvas { max-width: 100%; }
.top-ad-banner, .sidebar-ad-box, .ad-placeholder-box, .ad-banner-content { max-width: 100%; min-width: 0; }
.top-ad-banner iframe, .sidebar-ad-box iframe, .ad-banner-content iframe { max-width: 100%; }
.fs-main, .fs-main > *, .fs-section-top, .fs-news-feature, .fs-home-aside,
.fixture-card, .news-card, .team-directory-card, .match-centre-card,
.fs-page-hero, .fs-tool-panel, .legal-container { min-width: 0; }
.fixture-team, .fixture-competition, .team-directory-card strong,
.match-centre-score strong, .fs-page-hero h1, .fs-main h1, .fs-main h2 { overflow-wrap: anywhere; }
.fs-section-top { flex-wrap: wrap; }
.fs-button, .fs-search-link, .fs-menu-toggle, .fs-sound-toggle { touch-action: manipulation; }

@media (max-width: 780px) {
  .fs-topline-inner { gap: 8px; }
  .fs-topline-right { gap: 7px; margin-left: auto; }
  .fs-topline-date { margin-left: 0; white-space: nowrap; }
  .fs-sound-toggle { min-height: 25px; padding: 2px 6px; font-size: 7px; letter-spacing: .75px; }
  .fs-header-inner { gap: 10px; }
  .fs-brand { min-width: 0; }
  .fs-main { width: 100%; }
  .fs-section-top { align-items: flex-start; }
  .fs-section-top > * { min-width: 0; }
  .fs-home-aside, .fs-bottom-grid, .fs-community-band { min-width: 0; }
  .fs-home-aside > *, .fs-bottom-grid > * { min-width: 0; }
  .fs-hero-copy, .fs-page-hero { overflow-wrap: anywhere; }
  .fs-news-marquee { max-width: 100%; }
  .footer-container { min-width: 0; }
  .footer-nav-row, .footer-links { overflow-wrap: anywhere; }
}

@media (max-width: 520px) {
  .fs-topline-right { gap: 6px; }
  .fs-sound-toggle { min-height: 24px; padding: 2px 5px; }
  .fs-main { padding-left: 14px; padding-right: 14px; }
  .fs-hero-copy { padding-left: 18px; padding-right: 18px; }
  .fs-hero-copy h1 { font-size: clamp(49px, 13.4vw, 58px); overflow-wrap: normal; }
  .fs-hero-copy p { max-width: min(100%, 330px); }
  .fs-hero-footnote { max-width: 100%; position: relative; z-index: 3; }
  .fs-section-top { gap: 10px; }
  .fs-section-top h2 { max-width: 100%; }
  .fs-arrow-link { white-space: nowrap; }
  .fs-league-tile { min-width: 0; }
  .fs-league-tile strong { overflow-wrap: anywhere; }
  .match-centre-card, .fs-tool-panel, .legal-container { max-width: 100%; }
  .match-centre-score strong { min-width: 0; }
  .fs-filters > *, .filter-panel > * { min-width: 0; }
  .fs-filters input, .fs-filters select, .filter-panel input, .filter-panel select { width: 100%; max-width: 100%; }
}

@media (max-width: 380px) {
  .fs-topline-date { display: none; }
  .fs-topline-inner { padding-left: 12px; padding-right: 12px; }
  .fs-header-inner { padding-left: 12px; padding-right: 12px; gap: 8px; }
  .fs-brand { gap: 7px; }
  .fs-brand-word { font-size: 16px; }
  .fs-brand-word span { font-size: 8px; letter-spacing: 3.4px; }
  .fs-search-link { min-width: 34px; justify-content: center; }
  .fs-main { padding-left: 12px; padding-right: 12px; }
  .team-directory, .fs-news-grid { grid-template-columns: 1fr; }
  .fs-home-aside { display: flex; flex-direction: column; }
  .fs-hero { min-height: 500px; }
  .fs-hero-copy { padding-left: 16px; padding-right: 16px; }
  .fs-hero-art { width: 56%; height: 40%; opacity: .62; }
  .fs-art-ring { width: 190px; }
  .fs-art-ball { font-size: 92px; }
  .fs-ticker { padding-left: 12px; padding-right: 12px; }
  .fs-ticker-copy { letter-spacing: .55px; }
}

@media (min-width: 781px) and (max-width: 1120px) {
  .fs-header-inner { gap: 14px; padding-left: 18px; padding-right: 18px; }
  .fs-brand-word { font-size: 18px; }
  .fs-nav { gap: clamp(6px, .8vw, 10px); }
  .fs-nav a { font-size: 8px; letter-spacing: .45px; }
  .fs-search-link { padding: 9px 10px; }
  .fs-hero { grid-template-columns: minmax(0, 1.08fr) minmax(230px, .82fr) 82px; }
  .fs-hero-copy { padding-left: 26px; padding-right: 22px; }
}

@media (hover: none) {
  .fs-sound-toggle:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .fs-sound-toggle { transition: none; }
}

/* Keep long competition names clean inside narrow two-column tiles. */
@media (max-width: 520px) {
  .fs-league-tile strong {
    max-width: 100%;
    font-size: clamp(19px, 5.5vw, 22px);
    line-height: .94;
    letter-spacing: -.045em;
  }
}
