/*
 * ITF Theme — page-presse.css
 * Styles spécifiques à la page Presse.
 */

.presse-nav {
    position: sticky;
    top: 0;
    z-index: 40;
    background: rgba(255, 255, 255, .92);
    border-bottom: 1px solid var(--color-border);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .04);
    backdrop-filter: blur(14px);
}

.presse-nav__inner {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 4.25rem;
    overflow-x: auto;
    scrollbar-width: none;
}

.presse-nav__inner::-webkit-scrollbar {
    display: none;
}

.presse-nav a {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: var(--space-2);
    min-height: 2.5rem;
    padding: var(--space-2) var(--space-4);
    color: var(--color-muted);
    font-size: var(--text-sm);
    font-weight: var(--font-semi);
    line-height: 1;
    text-decoration: none;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);
}

.presse-nav a:hover,
.presse-nav a:focus-visible {
    color: var(--color-primary);
    background: color-mix(in srgb, var(--color-primary) 9%, #fff);
    border-color: color-mix(in srgb, var(--color-primary) 18%, transparent);
}

.presse-nav a i {
    color: var(--color-primary);
}

#relations-presse,
#kit-presse,
#communiques,
#revue-presse {
    scroll-margin-top: calc(var(--header-height) + 5rem);
}

.page-template-page-presse .section > .container {
    width: min(1440px, max(80vw, var(--container-max)));
    max-width: calc(100% - (2 * var(--container-padding)));
    padding-inline: 0;
}

.presse-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr);
    gap: var(--space-10);
    align-items: start;
}

.presse-intro__content {
    max-width: none;
}

.presse-topics {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-6);
}

.presse-topics span {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: var(--space-1) var(--space-3);
    color: var(--color-primary);
    font-size: var(--text-sm);
    font-weight: var(--font-semi);
    background: color-mix(in srgb, var(--color-primary) 10%, #fff);
    border: 1px solid color-mix(in srgb, var(--color-primary) 18%, transparent);
    border-radius: var(--radius-md);
}

.presse-contact {
    position: sticky;
    top: calc(var(--header-height) + var(--space-6));
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background:
        linear-gradient(145deg, color-mix(in srgb, var(--color-primary) 96%, #000), color-mix(in srgb, var(--color-secondary) 82%, var(--color-primary))),
        var(--color-primary);
    color: #fff;
    padding: var(--space-6);
    box-shadow: var(--shadow-lg);
}

.presse-contact__icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    margin-bottom: var(--space-5);
    place-items: center;
    color: var(--color-primary);
    background: #fff;
    border-radius: var(--radius-md);
}

.presse-contact h2 {
    margin: 0 0 var(--space-3);
    color: #fff;
    font-size: var(--text-2xl);
}

.presse-contact p {
    color: rgba(255, 255, 255, .84);
    margin: 0 0 var(--space-5);
    line-height: var(--leading-relaxed);
}

.presse-contact .btn--primary {
    background: #fff;
    border-color: #fff;
    color: #155f58;
}

.presse-contact .btn--primary:hover {
    background: #eef8f7;
    border-color: #eef8f7;
    color: #155f58;
}

.presse-contact__email {
    display: inline-flex;
    margin-top: var(--space-4);
    color: rgba(255, 255, 255, .86);
    font-size: var(--text-sm);
    text-decoration: none;
}

.presse-contact__email:hover {
    color: #fff;
    text-decoration: underline;
}

.presse-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-10);
}

.presse-metric {
    display: flex;
    min-height: 118px;
    flex-direction: column;
    justify-content: center;
    gap: var(--space-1);
    padding: var(--space-5);
    color: inherit;
    text-decoration: none;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(248, 248, 246, .88)),
        color-mix(in srgb, var(--color-primary) 8%, #fff);
    border: 1px solid color-mix(in srgb, var(--color-primary) 16%, var(--color-border));
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.presse-metric:hover {
    color: inherit;
    border-color: color-mix(in srgb, var(--color-primary) 36%, var(--color-border));
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.presse-metric strong {
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: var(--font-semi);
    line-height: 1;
}

.presse-metric span {
    color: var(--color-muted);
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
}

.presse-kit__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-5);
}

.presse-kit-card {
    display: flex;
    min-height: 220px;
    flex-direction: column;
    align-items: flex-start;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background:
        linear-gradient(180deg, #fff, color-mix(in srgb, var(--color-surface) 64%, #fff)),
        var(--color-bg);
    padding: var(--space-6);
    transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.presse-kit-card:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
    box-shadow: var(--shadow-md);
}

.presse-kit-card__icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    margin-bottom: var(--space-5);
    place-items: center;
    color: var(--color-primary);
    background: color-mix(in srgb, var(--color-primary) 10%, #fff);
    border-radius: var(--radius-md);
}

.presse-kit-card h3 {
    margin: 0 0 var(--space-3);
    color: #155f58;
    font-size: var(--text-xl);
}

.presse-kit-card p {
    margin: 0;
    color: var(--color-muted);
    line-height: var(--leading-relaxed);
}

.presse-kit-card__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: auto;
    padding-top: var(--space-5);
    color: #155f58;
    font-size: var(--text-sm);
    font-weight: var(--font-bold);
    text-decoration: none;
}

.presse-kit-card__link:hover {
    color: #1e8379;
}

.presse-publications__grid {
    margin-top: var(--space-6);
}

.presse-empty {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: #fff;
    padding: var(--space-6);
    box-shadow: var(--shadow-sm);
}

.presse-empty p {
    margin: 0;
    color: var(--color-muted);
}

/* ── Liste communiqués / revue de presse ── */

.presse-list {
    list-style: none;
    margin: var(--space-6) 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.presse-list__item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-6);
    padding: var(--space-6);
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: none;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.presse-list__item:hover {
    border-color: color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
    box-shadow: var(--shadow-sm);
}

.presse-list__date {
    grid-row: 1 / -1;
    color: var(--color-muted);
    font-size: var(--text-sm);
    white-space: nowrap;
    padding-top: 2px;
}

.presse-list__source {
    font-size: var(--text-sm);
    font-weight: var(--font-semi);
    color: var(--color-primary);
    line-height: 1.3;
}

.presse-list__title {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-2);
    color: var(--color-text);
    line-height: var(--leading-tight);
    font-size: var(--text-base);
}

.presse-list__title i {
    color: var(--color-muted);
    font-size: .74em;
}

a.presse-list__title {
    color: var(--color-text);
    text-decoration: none;
    font-weight: var(--font-medium);
    transition: color var(--transition-fast);
}

a.presse-list__title:hover {
    color: var(--color-primary);
}

a.presse-list__title:hover i {
    color: var(--color-primary);
}

.presse-office__body {
    min-width: 0;
}

.presse-office__badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
    padding: 4px 10px;
    color: var(--color-primary);
    font-size: var(--text-xs);
    font-weight: var(--font-bold);
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: .06em;
    background: color-mix(in srgb, var(--color-primary) 10%, #fff);
    border: 1px solid color-mix(in srgb, var(--color-primary) 18%, transparent);
    border-radius: var(--radius-full);
}

.presse-office__title {
    margin: 0 0 var(--space-3);
    color: #155f58;
    font-size: var(--text-lg);
    font-weight: var(--font-semi);
    line-height: var(--leading-tight);
}

.presse-office__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    color: var(--color-muted);
    font-size: var(--text-sm);
}

.presse-office__meta span {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}

.presse-office__meta i {
    color: color-mix(in srgb, var(--color-primary) 72%, var(--color-muted));
    font-size: .9em;
}

.presse-article-info {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    color: var(--color-muted);
    border: 1px solid color-mix(in srgb, var(--color-primary) 16%, var(--color-border));
    border-radius: var(--radius-full);
    background: #fff;
    cursor: help;
    transition: color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
}

.presse-article-info:hover,
.presse-article-info:focus-visible {
    color: var(--color-primary);
    border-color: color-mix(in srgb, var(--color-primary) 40%, var(--color-border));
    background: color-mix(in srgb, var(--color-primary) 7%, #fff);
    outline: none;
}

.presse-office__action {
    flex: 0 0 auto;
}

/* ── Revue de presse : groupes mois ── */

.presse-filter {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-4);
    align-items: center;
    margin-top: var(--space-6);
    padding: var(--space-4);
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.presse-filter__years {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.presse-filter__year {
    display: inline-flex;
    align-items: center;
    min-height: 2.5rem;
    padding: var(--space-2) var(--space-4);
    color: #155f58;
    font: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-semi);
    background: #fff;
    border: 1px solid #1e8379;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.presse-filter__year:hover,
.presse-filter__year.is-active {
    color: #fff;
    background: #1e8379;
    border-color: #1e8379;
}

.presse-filter__tools {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.presse-filter__select,
.presse-filter__search {
    min-height: 2.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: #fff;
    color: var(--color-text);
    font: inherit;
    font-size: var(--text-sm);
}

.presse-filter__select {
    max-width: 210px;
    padding: 0 var(--space-8) 0 var(--space-4);
}

.presse-filter__search {
    width: min(260px, 32vw);
    padding: 0 var(--space-4);
}

.presse-filter__select:focus,
.presse-filter__search:focus {
    outline: 2px solid color-mix(in srgb, var(--color-primary) 26%, transparent);
    border-color: var(--color-primary);
}

.presse-filter__count {
    margin: var(--space-3) 0 0;
    color: var(--color-muted);
    font-size: var(--text-sm);
}

.presse-filter__empty {
    margin: var(--space-6) 0 0;
    padding: var(--space-5);
    color: var(--color-muted);
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.presse-timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
    margin-top: var(--space-6);
    padding-left: clamp(1rem, 3vw, 2.5rem);
}

.presse-timeline::before {
    content: '';
    position: absolute;
    top: .75rem;
    bottom: .75rem;
    left: clamp(.32rem, 1.2vw, .75rem);
    width: 2px;
    background: linear-gradient(180deg, var(--color-primary), color-mix(in srgb, var(--color-primary) 18%, transparent));
    border-radius: var(--radius-full);
}

.presse-timeline__group {
    position: relative;
    display: grid;
    grid-template-columns: minmax(130px, .26fr) minmax(0, 1fr);
    gap: var(--space-5);
}

.presse-timeline__group[hidden],
.presse-timeline__group.is-filter-hidden,
.presse-timeline__item[hidden],
.presse-timeline__item.is-filter-hidden {
    display: none !important;
}

.presse-timeline__group::before {
    content: '';
    position: absolute;
    top: .72rem;
    left: calc(clamp(.32rem, 1.2vw, .75rem) - clamp(1rem, 3vw, 2.5rem) - 5px);
    width: .8rem;
    height: .8rem;
    background: var(--color-primary);
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}

.presse-timeline__marker {
    position: sticky;
    top: calc(var(--header-height) + 5rem);
    align-self: start;
}

.presse-timeline__month {
    display: inline-flex;
    align-items: center;
    min-height: 2.35rem;
    margin: 0;
    padding: var(--space-2) var(--space-4);
    color: var(--color-primary);
    font-size: var(--text-xs);
    font-weight: var(--font-bold);
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
    background: #fff;
    border: 1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.presse-timeline__items {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin: 0;
    padding: 0;
    list-style: none;
}

.presse-timeline__item {
    position: relative;
    display: grid;
    grid-template-columns: 132px minmax(110px, .22fr) minmax(0, 1fr) auto;
    gap: var(--space-4);
    align-items: center;
    padding: var(--space-4) var(--space-5);
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.presse-timeline__item::before {
    content: '';
    position: absolute;
    top: 50%;
    left: calc(-1 * var(--space-5));
    width: var(--space-5);
    height: 1px;
    background: color-mix(in srgb, var(--color-primary) 34%, var(--color-border));
}

.presse-timeline__item:hover {
    border-color: color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.presse-timeline__date {
    color: var(--color-muted);
    font-size: var(--text-sm);
    white-space: nowrap;
}

.presse-timeline__source {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    padding: 3px var(--space-2);
    color: var(--color-primary);
    font-size: var(--text-xs);
    font-weight: var(--font-semi);
    line-height: 1.2;
    background: color-mix(in srgb, var(--color-primary) 9%, #fff);
    border-radius: var(--radius-sm);
}

.presse-timeline__title {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-2);
    min-width: 0;
    color: var(--color-text);
    font-size: var(--text-base);
    font-weight: var(--font-medium);
    line-height: var(--leading-tight);
}

a.presse-timeline__title {
    text-decoration: none;
    transition: color var(--transition-fast);
}

.presse-timeline__title i {
    flex: 0 0 auto;
    color: var(--color-muted);
    font-size: .72em;
}

a.presse-timeline__title:hover,
a.presse-timeline__title:hover i {
    color: var(--color-primary);
}

.presse-timeline__info {
    justify-self: end;
}

.presse-archives {
    margin-top: var(--space-8);
}

.presse-archives__title {
    margin: 0 0 var(--space-4);
    color: #155f58;
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: var(--font-semi);
}

.presse-archive-year {
    margin-top: var(--space-3);
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.presse-archive-year[hidden] {
    display: none;
}

.presse-archive-year summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    min-height: 4rem;
    padding: var(--space-4) var(--space-5);
    color: var(--color-primary);
    cursor: pointer;
    list-style: none;
}

.presse-archive-year summary::-webkit-details-marker {
    display: none;
}

.presse-archive-year summary::after {
    content: '\f078';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    color: var(--color-muted);
    font-size: var(--text-xs);
    transition: transform var(--transition-fast);
}

.presse-archive-year[open] summary::after {
    transform: rotate(180deg);
}

.presse-archive-year summary span {
    font-family: var(--font-heading);
    font-size: var(--text-2xl);
    font-weight: var(--font-semi);
    line-height: 1;
}

.presse-archive-year summary em {
    color: var(--color-muted);
    font-size: var(--text-sm);
    font-style: normal;
    margin-left: auto;
}

.presse-timeline--archive {
    margin: 0;
    padding: var(--space-2) var(--space-5) var(--space-5) clamp(1rem, 3vw, 2.5rem);
}

.presse-timeline--archive .presse-timeline__group {
    grid-template-columns: minmax(110px, .22fr) minmax(0, 1fr);
}

.presse-timeline--archive .presse-timeline__item {
    padding-block: var(--space-3);
    box-shadow: none;
}

.presse-timeline--archive .presse-timeline__month {
    box-shadow: none;
}

/* ── Communiqués ── */

.presse-communiques .presse-list__title {
    font-weight: var(--font-semi);
}

.presse-empty-inline {
    color: var(--color-muted);
    margin: var(--space-6) 0 0;
    font-style: italic;
}

@media (max-width: 900px) {
    .presse-intro__grid,
    .presse-kit__grid,
    .presse-metrics {
        grid-template-columns: 1fr;
    }

    .presse-contact {
        position: relative;
        top: auto;
    }

    .presse-filter {
        grid-template-columns: 1fr;
    }

    .presse-filter__tools {
        align-items: stretch;
        flex-direction: column;
    }

    .presse-filter__select,
    .presse-filter__search {
        width: 100%;
        max-width: none;
    }

    .presse-timeline__group {
        grid-template-columns: 1fr;
        gap: var(--space-3);
    }

    .presse-timeline__marker {
        position: static;
    }

    .presse-timeline__item {
        grid-template-columns: 1fr;
        gap: var(--space-2);
    }

    .presse-timeline__item::before {
        display: none;
    }

    .presse-timeline--archive {
        padding-left: var(--space-5);
    }

    .presse-timeline--archive .presse-timeline__group {
        grid-template-columns: 1fr;
    }

    .presse-kit-card {
        min-height: 0;
    }
}

@media (max-width: 640px) {
    .presse-nav {
        top: 0;
    }

    .presse-nav__inner {
        min-height: 3.75rem;
        padding-inline: var(--container-padding);
    }

    .presse-nav a {
        padding-inline: var(--space-3);
        font-size: var(--text-xs);
    }

    .presse-empty {
        align-items: flex-start;
        flex-direction: column;
    }

    .presse-list__item {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--space-2);
        padding: var(--space-4);
    }

    .presse-list__date {
        grid-row: auto;
        font-size: var(--text-xs);
    }

    .presse-list__title {
        display: flex;
        align-items: flex-start;
    }

    .presse-office__action {
        width: 100%;
        justify-content: center;
    }

    .presse-timeline {
        padding-left: var(--space-5);
    }

    .presse-timeline::before {
        left: .45rem;
    }

    .presse-timeline__group::before {
        left: calc(.45rem - var(--space-5) - 5px);
    }

    .presse-timeline__item {
        padding: var(--space-4);
    }

    .presse-archive-year summary {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--space-2);
    }

    .presse-archive-year summary::after {
        position: absolute;
        right: var(--space-5);
        top: var(--space-5);
    }

    .presse-archive-year summary em {
        margin-left: 0;
    }
}

/* Contraste titres sur fonds clairs */
.page-template-page-presse .section__title,
.page-template-page-presse .presse-kit-card h3,
.page-template-page-presse .presse-office__title,
.page-template-page-presse .presse-list__title,
.page-template-page-presse .presse-timeline__title,
.page-template-page-presse .presse-archives__title,
.page-template-page-presse .presse-archive-year summary span {
    color: #155f58;
}

.page-template-page-presse .section--primary .section__title,
.page-template-page-presse .section--dark .section__title,
.page-template-page-presse .presse-contact h2 {
    color: #fff;
}

/* Sécurité contraste locale */
.page-template-page-presse :is(
    .btn--secondary,
    .presse-filter__year.is-active,
    input[type="submit"],
    button[type="submit"]
) {
    color: #fff !important;
}

.page-template-page-presse :is(
    .btn--secondary,
    .presse-filter__year.is-active,
    input[type="submit"],
    button[type="submit"]
) :is(i, span, svg) {
    color: inherit !important;
}
