/*
 * CFS Jumilla — Fase 17
 * Capa responsive final. No redefine la identidad visual: endurece comportamiento
 * entre 320 px y escritorio ancho, preservando los componentes de Fases 8–14.
 */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body,
main,
.cfs-home,
.cfs-article,
.cfs-competition,
.cfs-live,
.cfs-squad,
.cfs-archive,
[class^='cfs-'],
[class*=' cfs-'] {
  min-width: 0;
}

main {
  overflow-wrap: break-word;
}

img,
picture,
video,
iframe {
  max-width: 100%;
}

img,
video {
  height: auto;
}

iframe {
  width: 100%;
}

input,
select,
textarea,
button {
  max-width: 100%;
  font: inherit;
}

button,
input[type='button'],
input[type='submit'],
input[type='reset'],
select,
summary {
  touch-action: manipulation;
}

.cfs-standings__scroll,
.cfs-archive-context,
.cfs-competition-nav,
.cfs-live-competition-links,
.cfs-archive-pagination__links {
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
}

.cfs-standings__scroll {
  overflow-x: auto;
}

.cfs-standings-table {
  min-width: 44rem;
}

.cfs-article-body,
.cfs-live-context__body,
.cfs-archive-lead__copy,
.cfs-archive-stream__copy,
.cfs-home,
.cfs-competition,
.cfs-squad,
.cfs-live {
  overflow-wrap: anywhere;
}

.cfs-article-body pre,
.cfs-article-body code,
.cfs-live-context__body pre,
.cfs-live-context__body code {
  max-width: 100%;
}

.cfs-article-body pre,
.cfs-live-context__body pre {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.cfs-article-body table,
.cfs-live-context__body table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.cfs-article-body img,
.cfs-article-body video,
.cfs-article-body iframe,
.cfs-live-context__body img,
.cfs-live-context__body video,
.cfs-live-context__body iframe {
  max-width: 100%;
}

.cfs-match-row__team,
.cfs-live-team,
.cfs-live-event__copy,
.cfs-squad-member__identity,
.cfs-archive-stream__copy {
  min-width: 0;
}

.cfs-match-row__team,
.cfs-live-team strong,
.cfs-archive-stream__item h3,
.cfs-squad-member__identity h3 {
  overflow-wrap: anywhere;
}

/* Portátil / tablet horizontal: elimina columnas laterales antes de que se ahoguen. */
@media (max-width: 1100px) {
  .cfs-article-layout,
  .cfs-live-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .cfs-article-rail,
  .cfs-live-rail {
    min-width: 0;
    border-left: 0;
    padding-left: 0;
  }

  .cfs-home-hero,
  .cfs-home-layout,
  .cfs-home-grid,
  .cfs-home-sports {
    min-width: 0;
  }
}

/* Tablet / móvil grande. */
@media (max-width: 900px) {
  .cfs-home-hero,
  .cfs-article-layout,
  .cfs-archive-hero,
  .cfs-archive-lead,
  .cfs-live-hero__inner,
  .cfs-live-layout,
  .cfs-squad-hero {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .cfs-article-rail,
  .cfs-live-rail {
    margin-top: 0;
  }

  .cfs-live-scoreboard__teams,
  .cfs-match-row__scoreboard {
    min-width: 0;
  }

  .cfs-archive-pagination__links {
    overflow-x: auto;
    justify-content: flex-start;
    padding-bottom: .25rem;
  }

  .cfs-competition-nav {
    overflow-x: auto;
    white-space: nowrap;
  }
}

/* Móvil estándar. */
@media (max-width: 720px) {
  .cfs-home,
  .cfs-article,
  .cfs-competition,
  .cfs-live,
  .cfs-squad,
  .cfs-archive {
    max-width: 100%;
  }

  .cfs-article-body,
  .cfs-live-context__body {
    font-size: clamp(1rem, 3.8vw, 1.12rem);
    line-height: 1.65;
  }

  .cfs-article-body > *,
  .cfs-live-context__body > * {
    max-width: 100%;
  }

  .cfs-live-scoreboard__meta,
  .cfs-live-scoreboard__footer,
  .cfs-live-section-heading,
  .cfs-squad-roster__heading,
  .cfs-archive-stream__heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .cfs-live-competition-links {
    grid-template-columns: minmax(0, 1fr);
  }

  .cfs-live-competition-links a + a {
    border-left: 0;
    border-top: var(--cfs-rule-thin) solid var(--cfs-rule-strong);
  }

  .cfs-squad-member,
  .cfs-squad-member:nth-of-type(even) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .cfs-archive-context {
    overflow-x: auto;
    white-space: nowrap;
  }

  .cfs-archive-stream__item,
  .cfs-match-row,
  .cfs-live-event {
    min-width: 0;
  }

  .cfs-standings__scroll {
    margin-inline: calc(var(--cfs-space-3) * -1);
    padding-inline: var(--cfs-space-3);
  }
}

/* Móvil estrecho. */
@media (max-width: 460px) {
  .cfs-match-row__scoreboard {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .cfs-match-row__team,
  .cfs-match-row__team--away {
    text-align: center;
  }

  .cfs-live-scoreboard__teams {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: .45rem;
  }

  .cfs-live-team img,
  .cfs-live-team__monogram {
    width: 3rem;
    height: 3rem;
  }

  .cfs-live-team strong {
    font-size: clamp(.92rem, 4.4vw, 1.12rem);
  }

  .cfs-live-score {
    font-size: clamp(3rem, 17vw, 4.5rem);
  }

  .cfs-archive-stream__item {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .cfs-squad-index ol,
  .cfs-squad-hero__facts,
  .cfs-archive-hero__facts {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* 320–375 px: último cinturón sin esconder contenido. */
@media (max-width: 375px) {
  .cfs-competition-nav,
  .cfs-archive-pagination__links,
  .cfs-archive-context {
    scrollbar-width: thin;
  }

  .cfs-live-event {
    grid-template-columns: 2.65rem 1.1rem minmax(0, 1fr);
  }

  .cfs-live-event-list::before {
    left: 3.6rem;
  }

  .cfs-live-event__minute {
    font-size: 1.15rem;
  }

  .cfs-standings-table {
    min-width: 40rem;
  }
}

/* Targets táctiles sin convertir enlaces editoriales del cuerpo en botones gigantes. */
@media (pointer: coarse) {
  .cfs-competition-nav a,
  .cfs-live-competition-links a,
  .cfs-archive-pagination__links a,
  .cfs-live-load-more,
  .cfs-live-refresh,
  button[aria-controls] {
    min-height: 44px;
  }

  .cfs-archive-pagination__links a,
  button[aria-controls] {
    min-width: 44px;
  }
}

/* Navegaciones/paneles móviles respetan notch y barra inferior. */
[class*='mobile-nav'],
[class*='menu-panel'] {
  max-height: 100dvh;
  padding-bottom: max(1rem, env(safe-area-inset-bottom));
}

@supports (padding: max(0px)) {
  body {
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
  }
}

@media print {
  .cfs-competition-nav,
  .cfs-live-refresh,
  .cfs-live-load-more,
  .cfs-archive-pagination {
    display: none !important;
  }
}
