/* FutbolPlatform v0.13.0 — Desktop design base
   Structure inspired by the user's Antiguoko reference.
   Typography and brand colors remain configurable from Divi. */

.fp-calendario{
  --fp-accent:#EE4293;
  --fp-border:var(--fp-border-override,#e2e2e2);
  --fp-row-bg:var(--fp-row-bg-override,#fff);
  --fp-muted:#777;
  --fp-crest-size:44px;
  width:100%;
  color:inherit;
  font-family:inherit;
  box-sizing:border-box
}
.fp-calendario *{box-sizing:border-box;font-family:inherit}

/* FILTERS */
.fp-filtros{
  display:grid;
  grid-template-columns:minmax(220px,320px) minmax(0,1fr);
  gap:22px;
  margin:0 0 34px
}
.fp-filtro{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0
}
.fp-filtro-label{
  font-size:inherit;
  font-weight:600
}
.fp-filtro select{
  width:100%;
  min-height:var(--fp-select-height,46px);
  padding:0 var(--fp-select-padding-x,14px);
  border:1px solid var(--fp-select-border,var(--fp-border));
  background:var(--fp-select-bg,#fff);
  color:inherit;
  font:inherit;
  border-radius:0;
  outline:none
}
.fp-filtro select:focus{
  border-color:var(--fp-accent)
}

/* MONTHS */
.fp-meses{
  display:grid;
  grid-template-columns:repeat(10,minmax(0,1fr));
  align-items:end;
  gap:0;
  margin:0 0 20px;
  padding:0;
  border-bottom:1px solid var(--fp-border)
}
.fp-mes{
  appearance:none;
  border:0;
  border-bottom:2px solid transparent;
  background:transparent;
  color:inherit;
  padding:10px 6px 12px;
  margin:0 0 -1px;
  cursor:pointer;
  font-family:inherit;
  font-size:inherit;
  line-height:inherit;
  font-weight:inherit;
  text-align:center;
  white-space:nowrap
}
.fp-mes:hover{opacity:.72}
.fp-mes.activo{
  border-bottom-color:var(--fp-accent);
  color:inherit;
  font-weight:700
}

/* LOADING / EMPTY */
.fp-estado-carga{
  min-height:16px;
  margin:0 0 6px;
  font-size:12px;
  color:var(--fp-muted)
}
.fp-sin-partidos{
  padding:28px 18px;
  text-align:center;
  border-top:1px solid var(--fp-border);
  border-bottom:1px solid var(--fp-border)
}

/* MATCH LIST */
.fp-listado{
  display:flex;
  flex-direction:column;
  gap:10px
}
.fp-partido{
  display:grid;
  grid-template-columns:minmax(135px,.85fr) minmax(86px,.55fr) minmax(0,4.35fr);
  align-items:center;
  gap:18px;
  min-height:78px;
  padding:13px 18px;
  background:var(--fp-row-bg);
  border:1px solid var(--fp-border);
  color:inherit
}

/* LEFT META */
.fp-info{
  min-width:0;
  line-height:1.22
}
.fp-jornada{
  font-size:inherit;
  font-weight:400
}
.fp-division{
  margin:2px 0;
  font-size:inherit;
  font-weight:700
}
.fp-campo{
  font-size:inherit;
  font-weight:400
}

/* TIME / DATE */
.fp-fecha{
  text-align:center;
  line-height:1.18
}
.fp-hora{
  font-size:inherit;
  font-weight:600
}
.fp-dia{
  margin-top:3px;
  font-size:inherit;
  font-weight:400
}

/* TEAMS + SCORE */
.fp-enfrentamiento{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:8px;
  min-width:0
}
.fp-equipo{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0
}
.fp-local{
  justify-content:flex-end;
  text-align:right
}
.fp-visitante{
  justify-content:flex-start;
  text-align:left
}
.fp-equipo-nombre{
  min-width:0;
  max-width:100%;
  font-size:inherit;
  line-height:1.15;
  overflow-wrap:normal;
  word-break:normal
}
.fp-escudo{
  width:var(--fp-crest-size);
  height:var(--fp-crest-size);
  flex:0 0 var(--fp-crest-size);
  object-fit:contain
}
.fp-escudo-vacio{
  border:1px solid var(--fp-border);
  border-radius:50%
}
.fp-centro{
  min-width:58px;
  text-align:center
}
.fp-resultado{
  font-size:inherit;
  font-weight:600;
  white-space:nowrap
}
.fp-estado{
  font-size:inherit;
  font-weight:600;
  white-space:nowrap
}
.fp-pendiente{
  color:var(--fp-muted);
  font-weight:400
}

.fp-cargando .fp-listado{
  opacity:.5;
  transition:opacity .15s ease
}

/* Divi wrapper: all visual typography still inherits unless overridden in module controls. */
.fp-divi-module,
.fp-divi-module .fp-calendario{
  font-family:inherit;
  color:inherit
}

/* TABLET: preserve the desktop structure but compress widths slightly. */
@media(max-width:980px){
  .fp-partido{
    grid-template-columns:minmax(155px,1fr) minmax(105px,.7fr) minmax(0,2.8fr);
    gap:14px;
    padding:12px 14px
  }
  .fp-enfrentamiento{gap:8px}
}

/* MOBILE remains intentionally conservative in v0.13.
   We'll design it separately after desktop is approved. */
@media(max-width:767px){
  .fp-filtros{
    grid-template-columns:1fr;
    gap:12px;
    margin-bottom:24px
  }
  .fp-meses{
    grid-template-columns:repeat(5,1fr);
    row-gap:0
  }
  .fp-partido{
    grid-template-columns:1fr auto;
    grid-template-areas:
      "info fecha"
      "match match";
    gap:14px 12px;
    padding:15px
  }
  .fp-info{grid-area:info}
  .fp-fecha{grid-area:fecha;text-align:right;align-self:start}
  .fp-enfrentamiento{
    grid-area:match;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    gap:8px
  }
  .fp-equipo{
    flex-direction:column;
    justify-content:flex-start;
    text-align:center;
    gap:6px
  }
  .fp-local{flex-direction:column-reverse}
  .fp-centro{min-width:44px}
  .fp-escudo{
    width:min(var(--fp-crest-size),42px);
    height:min(var(--fp-crest-size),42px);
    flex-basis:min(var(--fp-crest-size),42px)
  }
}


/* v0.14 — defaults chosen during the Lakua Arriaga design phase.
   They are still overridable from the Divi module. */
.fp-mes{
  font-family:"Saira Condensed", sans-serif;
  font-size:24px;
  font-weight:400
}
.fp-jornada,
.fp-campo,
.fp-hora{
  color:#8c8c8c
}
.fp-equipo-nombre{
  font-family:Roboto,inherit;
  font-size:16px;
  font-weight:500
}
.fp-resultado{
  font-size:24px;
  font-weight:600
}
.fp-estado{
  font-weight:600
}

/* Custom dropdowns.
   The real <select> stays available as the data source/fallback,
   while this layer gives us full visual control over hover/selection. */
.fp-native-select{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important
}
.fp-custom-select{
  position:relative;
  width:100%
}
.fp-custom-select-trigger{
  width:100%;
  min-height:var(--fp-select-height,46px);
  padding:0 var(--fp-select-padding-x,14px);
  border:1px solid var(--fp-select-border,var(--fp-border));
  background:var(--fp-select-bg,#fff);
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
  position:relative
}
.fp-custom-select-trigger::after{
  content:"";
  position:absolute;
  right:15px;
  top:50%;
  width:7px;
  height:7px;
  border-right:1px solid currentColor;
  border-bottom:1px solid currentColor;
  transform:translateY(-65%) rotate(45deg)
}
.fp-custom-select.abierto .fp-custom-select-trigger::after{
  transform:translateY(-30%) rotate(225deg)
}
.fp-custom-select-list{
  position:absolute;
  z-index:9999;
  top:calc(100% + 2px);
  left:0;
  right:0;
  max-height:320px;
  overflow:auto;
  border:1px solid var(--fp-select-border,var(--fp-border));
  background:#fff;
  box-shadow:0 8px 22px rgba(0,0,0,.08)
}
.fp-custom-select-option{
  display:block;
  width:100%;
  padding:10px 14px;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer
}
.fp-custom-select-option:hover,
.fp-custom-select-option:focus,
.fp-custom-select-option.seleccionada{
  background:transparent !important;
  color:var(--fp-accent) !important;
  font-weight:600 !important;
  outline:none
}


/* v0.15 — desktop refinement for a typical 1440px viewport */
@media (min-width:981px){
  .fp-info{
    padding-right:4px;
  }

  .fp-fecha{
    min-width:86px;
  }

  .fp-local .fp-equipo-nombre,
  .fp-visitante .fp-equipo-nombre{
    max-width:calc(100% - var(--fp-crest-size) - 8px);
  }

  .fp-local .fp-equipo-nombre{
    text-align:right;
  }

  .fp-visitante .fp-equipo-nombre{
    text-align:left;
  }
}

/* Intermediate desktop/tablet width: compress metadata first, not team names. */
@media (min-width:768px) and (max-width:1180px){
  .fp-partido{
    grid-template-columns:minmax(120px,.8fr) minmax(78px,.5fr) minmax(0,4.7fr);
    gap:12px;
    padding-left:14px;
    padding-right:14px;
  }

  .fp-enfrentamiento{
    gap:8px;
  }

  .fp-escudo{
    width:min(var(--fp-crest-size),40px);
    height:min(var(--fp-crest-size),40px);
    flex-basis:min(var(--fp-crest-size),40px);
  }
}


/* v0.16 — ajustes de escritorio */
.fp-mes{
  font-family:"Saira Condensed", sans-serif;
  font-size:24px;
}

/* En móvil los filtros siguen apilados. */
@media(max-width:767px){
  .fp-filtros{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   v0.17 — DISEÑO MÓVIL
   Mantiene intacto el desktop aprobado.
   ========================================================= */

@media (max-width:767px){

  /* FILTROS */
  .fp-filtros{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    margin:0 0 24px;
  }

  .fp-filtro{
    gap:6px;
  }

  .fp-custom-select-trigger{
    min-height:48px;
    padding-left:14px;
    padding-right:38px;
  }

  .fp-custom-select-list{
    max-height:260px;
  }

  .fp-custom-select-option{
    padding:11px 14px;
  }

  /* MESES: una sola línea desplazable, no dos filas */
  .fp-meses{
    display:flex;
    flex-wrap:nowrap;
    gap:0;
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    margin:0 0 20px;
    padding:0;
    border-bottom:1px solid var(--fp-border);
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }

  .fp-meses::-webkit-scrollbar{
    display:none;
  }

  .fp-mes{
    flex:0 0 72px;
    min-width:72px;
    padding:10px 8px 11px;
    margin:0 0 -1px;
    text-align:center;
    scroll-snap-align:start;
  }

  /* LISTADO */
  .fp-listado{
    gap:12px;
  }

  .fp-partido{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "info fecha"
      "match match";
    gap:16px 12px;
    min-height:0;
    padding:15px 14px;
  }

  /* Jornada / división / campo arriba a la izquierda */
  .fp-info{
    grid-area:info;
    min-width:0;
    padding:0;
    text-align:left;
    line-height:1.2;
  }

  .fp-jornada{
    margin-bottom:2px;
  }

  .fp-division{
    margin:2px 0;
    line-height:1.18;
  }

  .fp-campo{
    margin-top:2px;
  }

  /* Hora / fecha arriba a la derecha */
  .fp-fecha{
    grid-area:fecha;
    min-width:78px;
    align-self:start;
    text-align:right;
    line-height:1.15;
  }

  .fp-dia{
    margin-top:3px;
    white-space:nowrap;
  }

  /* Enfrentamiento debajo */
  .fp-enfrentamiento{
    grid-area:match;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:start;
    gap:9px;
    width:100%;
    min-width:0;
    padding-top:2px;
  }

  .fp-equipo{
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    align-items:center;
    gap:7px;
    min-width:0;
    text-align:center;
  }

  /* Los dos equipos quedan: escudo arriba, nombre debajo */
  .fp-local{
    flex-direction:column-reverse;
    text-align:center;
  }

  .fp-visitante{
    flex-direction:column;
    text-align:center;
  }

  .fp-equipo-nombre{
    width:100%;
    max-width:100%;
    line-height:1.15;
    text-align:center !important;
    overflow-wrap:break-word;
    word-break:normal;
  }

  .fp-escudo{
    width:min(var(--fp-crest-size),46px);
    height:min(var(--fp-crest-size),46px);
    flex:0 0 min(var(--fp-crest-size),46px);
  }

  .fp-centro{
    min-width:56px;
    align-self:start;
    padding-top:12px;
    text-align:center;
  }

  .fp-resultado{
    white-space:nowrap;
  }

  .fp-estado{
    display:block;
    max-width:82px;
    white-space:normal;
    line-height:1.15;
    text-align:center;
  }

  .fp-sin-partidos{
    padding:24px 14px;
  }
}

/* Teléfonos estrechos */
@media (max-width:480px){

  .fp-partido{
    gap:14px 8px;
    padding:14px 12px;
  }

  .fp-fecha{
    min-width:70px;
  }

  .fp-enfrentamiento{
    gap:6px;
  }

  .fp-centro{
    min-width:48px;
    padding-top:10px;
  }

  .fp-escudo{
    width:min(var(--fp-crest-size),42px);
    height:min(var(--fp-crest-size),42px);
    flex-basis:min(var(--fp-crest-size),42px);
  }

  .fp-mes{
    flex-basis:68px;
    min-width:68px;
  }
}


/* v0.17.1 — más aire entre escudos y marcador */
@media (min-width:768px){
  .fp-enfrentamiento{
    gap:16px;
  }

  .fp-centro{
    min-width:72px;
  }
}

@media (max-width:767px){
  .fp-enfrentamiento{
    gap:12px;
  }

  .fp-centro{
    min-width:60px;
  }
}


/* v0.17.2 — móvil: meses en dos filas + mejor aire en selectores multilínea */
@media (max-width:767px){

  /* Meses 5 + 5, todos visibles */
  .fp-meses{
    display:grid;
    grid-template-columns:repeat(5, minmax(0,1fr));
    overflow:visible;
    row-gap:2px;
    border-bottom:1px solid var(--fp-border);
  }

  .fp-mes{
    min-width:0;
    width:100%;
    flex:none;
    padding:9px 4px 10px;
    margin:0;
  }

  /* Selectores: más aire arriba/abajo y líneas más compactas */
  .fp-custom-select-trigger{
    min-height:48px;
    height:auto;
    padding:10px 38px 10px 14px;
    line-height:1.15;
    white-space:normal;
  }

  .fp-custom-select-option{
    line-height:1.15;
  }
}

@media (max-width:480px){
  .fp-mes{
    min-width:0;
    width:100%;
  }
}


/* v0.17.3 — selector móvil: más aire vertical y texto más compacto */
@media (max-width:767px){
  .fp-custom-select-trigger{
    min-height:52px;
    padding:12px 40px 12px 16px;
    line-height:1.15;
  }

  .fp-custom-select-option{
    padding:10px 14px;
    line-height:1.15;
  }
}


/* v0.17.4 — fondos blancos sobre páginas con fondo gris */
.fp-filtro select,
.fp-custom-select-trigger,
.fp-custom-select-list{
  background:var(--fp-select-bg,#fff);
}

.fp-partido,
.fp-sin-partidos{
  background:var(--fp-row-bg);
}


/* v0.17.5 — mes activo con aspecto de tarjeta */
.fp-mes.activo{
  background:#fff;
  border:1px solid var(--fp-border);
  border-bottom:2px solid var(--fp-accent);
  color:inherit;
  font-weight:700;
}
