/*
==========================================================
FantasyFanzone Homepage Layout
Version: 4.8
==========================================================
*/

/*========================================================
VERTICAL RHYTHM
========================================================*/

.ffz-homepage > .ffz-section {
    padding-block: 44px;
}

.ffz-homepage .ffz-section-title {
    margin-bottom: 30px;
}

.ffz-homepage .ffz-section-title__heading {
    font-size: clamp(28px, 2.6vw, 40px);
}

.ffz-homepage .ffz-section-title__description {
    margin-top: 12px;

    font-size: 15px;
    line-height: 1.65;
}

/*========================================================
HERO — MORE COMPACT
========================================================*/

.ffz-homepage .ffz-hero {
    padding: 88px 0 64px;
}

.ffz-homepage .ffz-hero__grid {
    gap: 56px;
}

.ffz-homepage .ffz-hero__content {
    gap: 26px;
}

.ffz-homepage .ffz-hero__title {
    font-size: clamp(42px, 4.6vw, 64px);
}

.ffz-homepage .ffz-hero__description {
    font-size: 17px;
    line-height: 1.65;
}

.ffz-homepage .ffz-hero__stats {
    gap: 16px;
}

.ffz-homepage .ffz-stat {
    padding: 20px;
}

/*========================================================
SAFE VALUES / LONG LABELS
========================================================*/

.ffz-homepage .ffz-stat__number,
.ffz-homepage .ffz-card__value {
    max-width: 100%;

    font-size: clamp(22px, 2vw, 30px);
    line-height: 1.05;
    letter-spacing: -.02em;

    overflow-wrap: normal;
    white-space: nowrap;
}

.ffz-homepage .ffz-card__title,
.ffz-homepage .ffz-card__label,
.ffz-homepage .ffz-card__description {
    min-width: 0;
    max-width: 100%;
}

.ffz-homepage .ffz-card__title {
    font-size: clamp(16px, 1.35vw, 19px);
}

.ffz-homepage .ffz-card__label {
    font-size: 11px;
    letter-spacing: .055em;
}

.ffz-homepage .ffz-card__description {
    font-size: 13px;
    line-height: 1.5;
}

/*========================================================
HOMEPAGE PAIRED ROWS
========================================================*/

.ffz-homepage-pair {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    align-items: start;

    gap: 28px;

    padding-block: 44px;
}

.ffz-homepage-pair > .ffz-section {
    min-width: 0;

    padding: 0;
}

.ffz-homepage-pair > .ffz-section > .ffz-container {
    width: 100%;
}

.ffz-homepage-pair .ffz-section-title {
    margin-bottom: 20px;
}

.ffz-homepage-pair .ffz-section-title__eyebrow {
    margin-bottom: 10px;

    padding: 6px 11px;

    font-size: 10px;
}

.ffz-homepage-pair .ffz-section-title__heading {
    font-size: clamp(24px, 2vw, 31px);
    letter-spacing: -.5px;
}

.ffz-homepage-pair .ffz-section-title__description {
    font-size: 13px;
    line-height: 1.55;
}

/*========================================================
FIXTURES — FULL GAMEWEEK / COMPACT ROWS
========================================================*/

.ffz-homepage-pair .ffz-fixtures__toolbar {
    gap: 6px;

    margin-bottom: 14px;

    padding: 6px 8px;
}

.ffz-homepage-pair .ffz-fixtures__navigation,
.ffz-homepage-pair .ffz-fixtures__refresh {
    width: 32px;
    height: 32px;

    font-size: 13px;
}

.ffz-homepage-pair .ffz-fixtures__gameweek {
    min-width: 104px;
    min-height: 32px;

    padding: 0 9px;

    font-size: 11px;
}

.ffz-homepage-pair .ffz-fixtures__list,
.ffz-homepage-pair .ffz-fixtures [data-fixtures-body] {
    gap: 6px;
}

.ffz-homepage-pair .ffz-fixture {
    grid-template-columns:
        56px
        minmax(0, 1fr)
        66px;

    gap: 8px;

    min-height: 56px;

    padding: 8px 10px;

    border-radius: 12px;
}

.ffz-homepage-pair .ffz-fixture:hover {
    transform: translateY(-1px);
}

.ffz-homepage-pair .ffz-fixture__date {
    gap: 1px;
}

.ffz-homepage-pair .ffz-fixture__day {
    font-size: 11px;
    line-height: 1.15;
}

.ffz-homepage-pair .ffz-fixture__time {
    font-size: 9px;
}

.ffz-homepage-pair .ffz-fixture__teams {
    gap: 7px;
}

.ffz-homepage-pair .ffz-team {
    gap: 6px;
}

.ffz-homepage-pair .ffz-team img {
    flex-basis: 28px;

    width: 28px;
    height: 28px;
}

.ffz-homepage-pair .ffz-team__name {
    font-size: 11px;
    line-height: 1.2;
}

.ffz-homepage-pair .ffz-fixture__vs {
    min-width: 34px;
    min-height: 26px;

    padding: 3px 6px;

    font-size: 9px;
}

.ffz-homepage-pair .ffz-fixture__score {
    font-size: 13px;
}

.ffz-homepage-pair .ffz-fixture__difficulty {
    gap: 5px;
}

.ffz-homepage-pair .ffz-fdr {
    min-width: 28px;
    height: 28px;

    padding: 0 7px;

    font-size: 10px;
}

/*========================================================
CAPTAINCY — COMPACT TWO-COLUMN HOME CARDS
========================================================*/

.ffz-homepage-pair .ffz-captain__toolbar {
    gap: 10px;

    margin-bottom: 14px;

    padding: 9px 11px;

    border-radius: 13px;
}

.ffz-homepage-pair .ffz-captain__notice {
    font-size: 9px;
    line-height: 1.4;
}

.ffz-homepage-pair .ffz-captain__refresh {
    width: 32px;
    height: 32px;
}

.ffz-homepage-pair .ffz-captain [data-captain-body] {
    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;
}

.ffz-homepage-pair .ffz-captain-card {
    display: grid;

    grid-template-columns:
        48px
        minmax(0, 1fr);

    grid-template-areas:
        "player player"
        "stats stats";

    align-content: start;

    gap: 8px;

    min-height: 0;

    padding: 12px;

    border-radius: 14px;
}

.ffz-homepage-pair .ffz-captain-card--top {
    grid-column: 1 / -1;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(210px, .95fr);

    grid-template-areas:
        "player stats"
        "badge stats";

    align-items: center;

    padding: 14px 16px;
}

.ffz-homepage-pair .ffz-captain-card__rank {
    top: 7px;
    left: 7px;

    min-width: 25px;
    height: 21px;

    padding: 0 5px;

    font-size: 8px;
}

.ffz-homepage-pair .ffz-captain-card__player {
    grid-area: player;

    flex-direction: row;

    align-items: center;

    gap: 9px;

    text-align: left;
}

.ffz-homepage-pair .ffz-captain-card__player > img {
    flex: 0 0 52px;

    width: 52px;
    height: 52px;

    margin: 0;

    border-width: 2px;
}

.ffz-homepage-pair .ffz-captain-card--top
.ffz-captain-card__player > img {
    flex-basis: 62px;

    width: 62px;
    height: 62px;
}

.ffz-homepage-pair .ffz-captain-card__identity {
    align-items: flex-start;

    min-width: 0;
}

.ffz-homepage-pair .ffz-captain-card__name {
    margin-bottom: 2px;

    font-size: 12px;
}

.ffz-homepage-pair .ffz-captain-card--top
.ffz-captain-card__name {
    font-size: 14px;
}

.ffz-homepage-pair .ffz-captain-card__team {
    font-size: 9px;
}

.ffz-homepage-pair .ffz-captain-card__position,
.ffz-homepage-pair .ffz-captain-card__price {
    margin-top: 4px;

    padding: 3px 6px;

    font-size: 7px;
}

.ffz-homepage-pair .ffz-captain-card__stats {
    grid-area: stats;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 5px;

    margin-top: 0;
}

.ffz-homepage-pair .ffz-captain-card__stat {
    gap: 1px;

    min-height: 38px;

    padding: 5px 3px;

    border-radius: 8px;
}

.ffz-homepage-pair .ffz-captain-card__stat-label {
    font-size: 6px;
    letter-spacing: .02em;
}

.ffz-homepage-pair .ffz-captain-card__stat strong {
    font-size: 10px;
}

.ffz-homepage-pair .ffz-captain-card__badge {
    grid-area: badge;

    justify-self: start;

    margin-top: 0;

    padding: 5px 8px;

    font-size: 7px;
}

/*========================================================
TRANSFER MARKET — COMPACT SINGLE COLUMN
========================================================*/

.ffz-homepage-pair .ffz-transfers__toolbar,
.ffz-homepage-pair .ffz-price-changes__toolbar {
    gap: 10px;

    margin-bottom: 16px;

    padding: 9px 10px;

    border-radius: 14px;
}

.ffz-homepage-pair .ffz-transfers__filter,
.ffz-homepage-pair .ffz-price-changes__filter {
    min-height: 34px;

    padding: 0 11px;

    font-size: 10px;
}

.ffz-homepage-pair .ffz-transfers__refresh,
.ffz-homepage-pair .ffz-price-changes__refresh {
    width: 34px;
    height: 34px;
}

.ffz-homepage-pair .ffz-transfers__list,
.ffz-homepage-pair .ffz-transfers__grid,
.ffz-homepage-pair .ffz-transfers [data-transfers-body] {
    grid-template-columns: 1fr;

    gap: 10px;
}

.ffz-homepage-pair .ffz-transfer-card {
    grid-template-columns:
        36px
        minmax(0, 1fr);

    gap: 10px;

    padding: 12px;

    border-radius: 14px;
}

.ffz-homepage-pair .ffz-transfer-card__rank {
    min-width: 32px;
    height: 26px;

    font-size: 9px;
}

.ffz-homepage-pair .ffz-transfer-card__player {
    gap: 9px;
}

.ffz-homepage-pair .ffz-transfer-card__player > img {
    flex-basis: 42px;

    width: 42px;
    height: 42px;
}

.ffz-homepage-pair .ffz-transfer-card__name {
    font-size: 13px;
}

.ffz-homepage-pair .ffz-transfer-card__team {
    font-size: 10px;
}

.ffz-homepage-pair .ffz-transfer-card__details {
    gap: 5px;
}

.ffz-homepage-pair .ffz-transfer-card__stat {
    gap: 3px;

    padding: 7px 4px;
}

.ffz-homepage-pair .ffz-transfer-card__stat-label {
    font-size: 7px;
}

.ffz-homepage-pair .ffz-transfer-card__stat strong {
    font-size: 11px;
}

/*========================================================
MARKET WATCH — COMPACT ROWS
========================================================*/

.ffz-homepage-pair .ffz-price-changes__notice {
    margin-bottom: 14px;

    font-size: 10px;
}

.ffz-homepage-pair .ffz-price-card {
    border-radius: 14px;
}

.ffz-homepage-pair .ffz-price-card__header {
    padding: 12px 14px;
}

.ffz-homepage-pair .ffz-price-card__title {
    font-size: 15px;
}

.ffz-homepage-pair .ffz-price-player {
    grid-template-columns:
        30px
        38px
        minmax(0, 1fr)
        auto;

    gap: 8px;

    padding: 10px 12px;
}

.ffz-homepage-pair .ffz-price-player__rank {
    min-width: 28px;
    height: 24px;

    font-size: 8px;
}

.ffz-homepage-pair .ffz-price-player__image {
    width: 38px;
    height: 38px;
}

.ffz-homepage-pair .ffz-price-player__name {
    font-size: 12px;
}

.ffz-homepage-pair .ffz-price-player__team {
    font-size: 9px;
}

/*========================================================
TABLET / MOBILE
========================================================*/

@media (max-width: 1180px) {

    .ffz-homepage-pair {
        grid-template-columns: 1fr;

        gap: 0;

        padding-block: 36px;
    }

    .ffz-homepage-pair > .ffz-section + .ffz-section {
        margin-top: 40px;
    }

    .ffz-homepage-pair .ffz-captain [data-captain-body] {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .ffz-homepage-pair .ffz-captain-card--top {
        grid-column: 1 / -1;
    }
}

@media (max-width: 768px) {

    .ffz-homepage > .ffz-section,
    .ffz-homepage-pair {
        padding-block: 34px;
    }

    .ffz-homepage .ffz-hero {
        padding: 56px 0 44px;
    }

    .ffz-homepage .ffz-section-title {
        margin-bottom: 24px;
    }

    .ffz-homepage .ffz-stat__number,
    .ffz-homepage .ffz-card__value {
        font-size: 28px;
    }

    .ffz-homepage-pair .ffz-captain [data-captain-body] {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 12px;
    }

    .ffz-homepage-pair .ffz-captain-card,
    .ffz-homepage-pair .ffz-captain-card--top {
        grid-column: auto;

        grid-template-columns: 1fr;

        grid-template-areas:
            "player"
            "stats"
            "badge";

        padding: 14px;
    }

    .ffz-homepage-pair .ffz-captain-card__player > img,
    .ffz-homepage-pair .ffz-captain-card--top
    .ffz-captain-card__player > img {
        flex-basis: 58px;

        width: 58px;
        height: 58px;
    }

    .ffz-homepage-pair .ffz-fixture {
        grid-template-columns: 1fr;

        gap: 9px;

        padding: 12px;
    }
}

@media (max-width: 480px) {

    .ffz-homepage > .ffz-section,
    .ffz-homepage-pair {
        padding-block: 28px;
    }

    .ffz-homepage-pair .ffz-captain [data-captain-body] {
        grid-template-columns: 1fr;
    }

    .ffz-homepage .ffz-stat__number,
    .ffz-homepage .ffz-card__value {
        font-size: 26px;
    }
}

/*========================================================
REDUCED MOTION
========================================================*/

@media (prefers-reduced-motion: reduce) {

    .ffz-homepage-pair * {
        scroll-behavior: auto;
    }
}


/*========================================================
V4.7 — FIXTURES + CAPTAINCY BALANCE
========================================================*/

.ffz-homepage-pair--fixtures-captain{
    align-items:stretch;
}

.ffz-homepage-pair--fixtures-captain > .ffz-section{
    display:flex;
    height:100%;
}

.ffz-homepage-pair--fixtures-captain > .ffz-section > .ffz-container{
    display:flex;
    flex-direction:column;
    height:100%;
}

.ffz-homepage-pair--fixtures-captain .ffz-section-title{
    min-height:118px;
}

.ffz-homepage-pair--fixtures-captain .ffz-fixtures__list,
.ffz-homepage-pair--fixtures-captain .ffz-fixtures [data-fixtures-body],
.ffz-homepage-pair--fixtures-captain .ffz-captain [data-captain-body]{
    flex:1;
}

/* Compact fixtures: FDR now belongs to each team, not to a trailing score-like column. */
.ffz-homepage-pair--fixtures-captain .ffz-fixture{
    grid-template-columns:52px minmax(0,1fr);
    gap:7px;
    min-height:50px;
    padding:6px 8px;
}

.ffz-homepage-pair--fixtures-captain .ffz-fixture__teams{
    grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);
    gap:5px;
}

.ffz-homepage-pair--fixtures-captain .ffz-fixture__vs{
    min-width:28px;
    min-height:24px;
    padding:2px 4px;
    font-size:8px;
}

.ffz-homepage-pair--fixtures-captain .ffz-team{
    gap:4px;
}

.ffz-homepage-pair--fixtures-captain .ffz-team img{
    flex-basis:24px;
    width:24px;
    height:24px;
}

.ffz-homepage-pair--fixtures-captain .ffz-team__name{
    font-size:10px;
}

.ffz-homepage-pair--fixtures-captain .ffz-team__fdr{
    gap:3px;
}

.ffz-homepage-pair--fixtures-captain .ffz-team__fdr-label{
    font-size:6px;
}

.ffz-homepage-pair--fixtures-captain .ffz-team__fdr .ffz-fdr{
    min-width:22px;
    height:22px;
    padding:0 5px;
    font-size:8px;
}

.ffz-homepage-pair--fixtures-captain .ffz-fixture__difficulty{
    display:none;
}

/* Captain grid fills the height of the neighbouring fixture column. */
.ffz-homepage-pair--fixtures-captain .ffz-captain [data-captain-body]{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:minmax(150px,1.35fr) repeat(2,minmax(112px,1fr));
    align-content:stretch;
}

/* #1 captain is deliberately larger and visually dominant. */
.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top{
    min-height:150px;
    padding:18px 20px;
    border-width:2px;
    box-shadow:0 18px 40px rgba(124,58,237,.16);
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__player > img{
    flex-basis:78px;
    width:78px;
    height:78px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__name{
    font-size:17px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__team{
    font-size:10px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__stat{
    min-height:48px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__stat-label{
    font-size:7px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__stat strong{
    font-size:12px;
}

@media (max-width:1180px){
    .ffz-homepage-pair--fixtures-captain .ffz-section-title{
        min-height:0;
    }

    .ffz-homepage-pair--fixtures-captain .ffz-captain [data-captain-body]{
        grid-template-rows:auto;
    }
}

@media (max-width:768px){
    .ffz-homepage-pair--fixtures-captain .ffz-fixture{
        grid-template-columns:48px minmax(0,1fr);
        gap:6px;
        padding:8px;
    }

    .ffz-homepage-pair--fixtures-captain .ffz-fixture__teams{
        grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);
    }
}


/*========================================================
V4.8 FIXTURES + CAPTAINCY BALANCE
========================================================*/

@media (min-width:1181px){
    .ffz-homepage-pair--fixtures-captain .ffz-fixtures__list,
    .ffz-homepage-pair--fixtures-captain .ffz-fixtures [data-fixtures-body],
    .ffz-homepage-pair--fixtures-captain .ffz-captain [data-captain-body]{
        min-height:554px;
    }

    .ffz-homepage-pair--fixtures-captain .ffz-captain [data-captain-body]{
        grid-template-rows:190px repeat(2,minmax(152px,1fr));
    }
}

.ffz-homepage-pair--fixtures-captain .ffz-fixture{
    display:block;
    min-height:50px;
    padding:5px 7px;
}

.ffz-homepage-pair--fixtures-captain .ffz-fixture__teams{
    grid-template-columns:
        30px
        minmax(0,1fr)
        72px
        minmax(0,1fr)
        30px;
    gap:5px;
}

.ffz-homepage-pair--fixtures-captain .ffz-fixture__fdr{
    display:flex;
}

.ffz-homepage-pair--fixtures-captain .ffz-team__fdr{
    gap:2px;
}

.ffz-homepage-pair--fixtures-captain .ffz-team__fdr-label{
    font-size:6px;
}

.ffz-homepage-pair--fixtures-captain .ffz-team__fdr .ffz-fdr{
    min-width:24px;
    height:24px;
    padding:0 5px;
    font-size:9px;
}

.ffz-homepage-pair--fixtures-captain .ffz-fixture__center{
    min-height:38px;
    gap:2px;
    padding:4px 3px;
    border-radius:9px;
}

.ffz-homepage-pair--fixtures-captain .ffz-fixture__center .ffz-fixture__day{
    font-size:8px;
    letter-spacing:-.01em;
}

.ffz-homepage-pair--fixtures-captain .ffz-fixture__center .ffz-fixture__time{
    font-size:8px;
}

.ffz-homepage-pair--fixtures-captain .ffz-fixture__center .ffz-fixture__score{
    font-size:15px;
}

.ffz-homepage-pair--fixtures-captain .ffz-team{
    gap:4px;
}

.ffz-homepage-pair--fixtures-captain .ffz-team img{
    flex-basis:24px;
    width:24px;
    height:24px;
}

.ffz-homepage-pair--fixtures-captain .ffz-team__name{
    font-size:10px;
}

/* Top captain: larger content, not just a larger container. */
.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top{
    min-height:190px;
    padding:22px 24px;
    gap:16px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__player{
    gap:16px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__player > img{
    flex-basis:98px;
    width:98px;
    height:98px;
    border-width:3px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__name{
    font-size:21px;
    line-height:1.2;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__team{
    font-size:12px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__position,
.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__price{
    margin-top:6px;
    padding:4px 8px;
    font-size:9px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__stats{
    gap:8px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__stat{
    min-height:58px;
    padding:8px 6px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__stat-label{
    font-size:8px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__stat strong{
    font-size:15px;
}

.ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__badge{
    padding:5px 9px;
    font-size:8px;
}

@media (max-width:1180px){
    .ffz-homepage-pair--fixtures-captain .ffz-fixtures__list,
    .ffz-homepage-pair--fixtures-captain .ffz-fixtures [data-fixtures-body],
    .ffz-homepage-pair--fixtures-captain .ffz-captain [data-captain-body]{
        min-height:0;
    }
}

@media (max-width:768px){
    .ffz-homepage-pair--fixtures-captain .ffz-fixture__teams{
        grid-template-columns:32px minmax(0,1fr) 68px minmax(0,1fr) 32px;
        gap:4px;
    }

    .ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__player > img{
        flex-basis:72px;
        width:72px;
        height:72px;
    }

    .ffz-homepage-pair--fixtures-captain .ffz-captain-card--top .ffz-captain-card__name{
        font-size:17px;
    }
}
