:root {
    --orvsit-ink: #06243a;
    --orvsit-blue: #086496;
    --orvsit-gold: #f2b82f;
    --orvsit-paper: #f5f8f9;
    --orvsit-muted: #5f7581;
    --orvsit-line: #dce7eb;
}

#header,
#footer {
    display: none !important;
}

.utility-login {
    border: 0;
    cursor: pointer;
    font: inherit;
}

.body {
    color: var(--orvsit-ink);
    background: #fff;
}

.body > br:first-child {
    display: none;
}

.site-header .main-navigation a.active,
.site-header .main-navigation button.active {
    color: var(--orvsit-blue);
}

.site-header .main-navigation a.active::after {
    width: 100%;
}

.page-header.page-header-modern {
    position: relative;
    min-height: 370px;
    margin: 0;
    padding: 88px 0 72px;
    overflow: hidden;
    border: 0;
    background:
        radial-gradient(circle at 82% 20%, rgba(42, 157, 204, .22), transparent 24%),
        radial-gradient(circle at 72% 95%, rgba(242, 184, 47, .18), transparent 21%),
        linear-gradient(118deg, #041a2b 0%, #073c5e 74%, #086496 100%) !important;
}

.page-header.page-header-modern::before,
.page-header.page-header-modern::after {
    position: absolute;
    content: "";
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
}

.page-header.page-header-modern::before {
    width: 280px;
    height: 280px;
    right: 9%;
    top: 46px;
}

.page-header.page-header-modern::after {
    width: 120px;
    height: 120px;
    right: 18%;
    top: 126px;
    background: rgba(255, 255, 255, .04);
}

.page-header.page-header-modern .container {
    position: relative;
    z-index: 2;
    width: min(1180px, calc(100% - 44px));
    max-width: none;
}

.page-header.page-header-modern .row {
    display: flex;
    flex-direction: column-reverse;
}

.page-header.page-header-modern .col-md-12 {
    text-align: left !important;
}

.page-header.page-header-modern .breadcrumb {
    margin: 0 0 34px;
    padding: 0;
    text-align: left !important;
}

.page-header.page-header-modern .breadcrumb li,
.page-header.page-header-modern .breadcrumb li a {
    color: rgba(255, 255, 255, .7) !important;
    font-size: 12px;
    font-weight: 600;
}

.page-header.page-header-modern .breadcrumb > li + li::before {
    color: rgba(255, 255, 255, .4);
}

.publications-eyebrow {
    margin: 0 0 12px;
    color: var(--orvsit-gold);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.page-header.page-header-modern h1.text-dark {
    max-width: 760px;
    margin: 0 0 18px;
    color: #fff !important;
    font-size: clamp(42px, 5vw, 68px) !important;
    line-height: 1.02;
    letter-spacing: -.055em;
}

.page-header.page-header-modern .sub-title {
    display: block;
    max-width: 670px;
    color: #d8e6ec !important;
    font-size: 16px;
    line-height: 1.7;
}

.publications-container {
    width: min(1240px, calc(100% - 44px));
    max-width: none;
    padding-top: 76px !important;
    padding-bottom: 100px !important;
}

.publications-container > .row {
    align-items: flex-start;
    margin-right: -14px;
    margin-left: -14px;
}

.publications-container > .row > * {
    padding-right: 14px;
    padding-left: 14px;
}

.publications-container .sidebar {
    position: sticky;
    top: 112px;
    padding: 28px;
    border: 1px solid var(--orvsit-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(4, 34, 53, .08);
}

.filter-kicker {
    margin: 0 0 8px;
    color: var(--orvsit-blue);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .15em;
}

.publications-container .sidebar h2 {
    margin: 0 0 24px;
    color: var(--orvsit-ink);
    font-size: 25px;
    line-height: 1.18;
    letter-spacing: -.035em;
}

.publication-search-label {
    display: block;
    margin-bottom: 8px;
    color: var(--orvsit-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.publication-search {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid var(--orvsit-line);
    border-radius: 14px;
    background: var(--orvsit-paper);
}

.publication-search i {
    color: var(--orvsit-blue);
    font-size: 13px;
}

.publication-search input {
    width: 100%;
    padding: 0;
    border: 0;
    outline: 0;
    color: var(--orvsit-ink);
    background: transparent;
    font-size: 12px;
}

.publication-result-count {
    min-height: 18px;
    margin: 9px 0 0;
    color: var(--orvsit-muted);
    font-size: 10px;
}

.publication-year-label {
    margin-top: 14px;
}

.publication-year-select {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 0 13px;
    border: 1px solid var(--orvsit-line);
    border-radius: 13px;
    background: #fff;
}

.publication-year-select i {
    color: var(--orvsit-blue);
    font-size: 12px;
}

.publication-year-select select {
    width: 100%;
    padding: 0 24px 0 0;
    border: 0;
    outline: 0;
    color: var(--orvsit-ink);
    background: transparent;
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
}

.publication-year-select:focus-within {
    border-color: var(--orvsit-blue);
    box-shadow: 0 0 0 3px rgba(8, 100, 150, .1);
}

.publications-container .sidebar h5 {
    margin: 14px 0 12px;
    padding-top: 10px !important;
    color: var(--orvsit-ink);
    font-size: 12px;
    font-weight: 800 !important;
    letter-spacing: .02em;
}

.publications-container .sidebar .nav-list {
    gap: 6px;
    margin-bottom: 0 !important;
}

.publications-container .sidebar .nav-item {
    border: 0;
}

.publications-container .sidebar .nav-link,
.publications-container .legal-alerts-trigger {
    display: block;
    padding: 10px 13px;
    border: 1px solid var(--orvsit-line);
    border-radius: 12px;
    color: var(--orvsit-muted) !important;
    background: #fff;
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.3;
    transition: border-color .2s ease, background .2s ease, color .2s ease;
}

.publications-container .sidebar .nav-link:hover,
.publications-container .sidebar .nav-link.is-active {
    border-color: var(--orvsit-ink);
    color: #fff !important;
    background: var(--orvsit-ink);
}

.publications-container .sidebar .nav-list ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin: 8px 0 2px;
    padding: 0;
}

.publications-container .sidebar .nav-list ul .nav-link {
    padding: 8px 9px;
    font-size: 9px;
    text-align: center;
}

.publications-subscribe {
    margin-top: 24px;
    padding: 20px;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(145deg, #073c5e, #041a2b);
}

.publications-subscribe h5 {
    margin: 0 0 9px !important;
    padding: 0 !important;
    color: #fff !important;
    font-size: 15px !important;
}

.publications-subscribe p {
    margin: 0 0 16px;
    color: #cbdce4;
    font-size: 10px;
    line-height: 1.6;
}

.publications-subscribe a {
    color: var(--orvsit-gold);
    font-size: 10px;
    font-weight: 800;
    text-decoration: none;
}

.publications-container .blog-posts,
.publications-container .timeline,
.publications-container .timeline-body {
    width: 100%;
}

.publications-container .timeline::before,
.publications-container .timeline-body::before {
    display: none !important;
}

.publications-container .timeline-body {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
}

.publications-container .timeline-date {
    position: static;
    grid-column: 1 / -1;
    width: auto;
    margin: 30px 0 0;
    text-align: left;
}

.publications-container .timeline-date:first-child {
    margin-top: 0;
}

.publications-container .timeline-date h3 {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0;
    color: var(--orvsit-ink) !important;
    font-size: 15px;
    font-weight: 800 !important;
    letter-spacing: .02em;
    text-transform: capitalize;
}

.publications-container .timeline-date h3::after {
    height: 1px;
    flex: 1;
    content: "";
    background: var(--orvsit-line);
}

.publications-container .timeline-box {
    position: relative;
    left: auto !important;
    right: auto !important;
    float: none !important;
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
    overflow: hidden;
    border: 1px solid var(--orvsit-line) !important;
    border-radius: 18px !important;
    background: #fff;
    box-shadow: 0 9px 25px rgba(4, 34, 53, .065);
    transition: transform .2s ease, box-shadow .2s ease;
}

.publications-container .timeline-box:hover {
    transform: translateY(-2px);
    box-shadow: 0 15px 36px rgba(4, 34, 53, .1);
}

.publications-container .timeline-box.hidden,
.publications-container .timeline-box[hidden] {
    display: none !important;
}

.publications-container .timeline-box-arrow {
    display: none !important;
}

.publications-container .timeline-box > .p-2 {
    position: relative;
    display: flex;
    height: 100%;
    min-height: 100%;
    flex-direction: column;
    padding: 0 !important;
}

.publications-container .timeline-box > .p-2::before {
    position: absolute;
    z-index: 2;
    top: 12px;
    left: 12px;
    padding: 6px 9px;
    border-radius: 999px;
    color: #fff;
    background: var(--orvsit-blue);
    box-shadow: 0 5px 18px rgba(4, 34, 53, .2);
    content: "Production ORVSIT";
    font-size: 7px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.publications-container .timeline-box.alerte > .p-2::before { content: "Alerte stratégique"; background: #8a3540; }
.publications-container .timeline-box.bulletin > .p-2::before { content: "Bulletin de veille"; background: #086496; }
.publications-container .timeline-box.note > .p-2::before { content: "Note stratégique"; background: #9a7412; }
.publications-container .timeline-box.alerte-juridique > .p-2::before,
.publications-container .timeline-box.juridique > .p-2::before { content: "Alerte juridique"; background: #59618b; }

.publications-container .timeline-box .row {
    margin-right: 0;
    margin-left: 0;
    padding: 0 16px;
}

.publications-container .timeline-box .row:first-of-type {
    margin-bottom: 18px !important;
    padding: 0;
}

.publications-container .timeline-box .row > .col {
    padding: 0;
}

.publications-container .post-image {
    display: grid;
    width: 100%;
    aspect-ratio: 3 / 1;
    margin: 0;
    overflow: hidden;
    place-items: center;
    background: #eef3f5;
}

.publications-container .post-image a {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
}

.publications-container .post-image img {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    object-fit: contain;
    object-position: center;
    transition: opacity .2s ease;
}

.publications-container .timeline-box:hover .post-image img {
    opacity: .96;
}

.publications-container .post-content p {
    display: -webkit-box;
    min-height: 4.6em;
    margin: 0 0 11px;
    overflow: hidden;
    color: var(--orvsit-ink);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.publications-container .post-meta {
    color: var(--orvsit-muted);
    font-size: 8px;
    line-height: 1.35;
}

.publications-container .post-meta i {
    width: 16px;
    color: var(--orvsit-blue);
}

.publications-container .post-meta a {
    color: inherit;
    text-decoration: none;
}

.publications-container .timeline-box .row:last-child {
    margin-top: auto;
    padding-top: 11px;
    padding-bottom: 16px;
}

.publications-container .language-switcher {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 !important;
}

.publications-container .language-switcher .btn,
.publications-container .lire-plus {
    min-width: 34px;
    padding: 6px 9px;
    border: 1px solid var(--orvsit-line);
    border-radius: 999px;
    color: var(--orvsit-ink);
    background: #fff;
    font-size: 8px;
    font-weight: 800;
    text-transform: uppercase;
}

.publications-container .language-switcher .btn:hover,
.publications-container .lire-plus:hover {
    border-color: var(--orvsit-ink);
    color: #fff;
    background: var(--orvsit-ink);
}

.publications-container .text-danger {
    padding: 11px 13px;
    border-radius: 12px;
    color: #74404a !important;
    background: #fff1f2;
    font-size: 9px;
    line-height: 1.55;
}

.publications-load-more {
    margin-top: 42px !important;
    text-align: center !important;
}

.publications-load-more button {
    padding: 14px 20px;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: var(--orvsit-ink);
    cursor: pointer;
    font-size: 11px;
    font-weight: 800;
}

.publications-load-more button span {
    margin-left: 8px;
    color: var(--orvsit-gold);
}

.site-footer {
    position: relative;
    z-index: 1;
}

#overlay {
    z-index: 10000 !important;
}

@media (max-width: 1099px) {
    .publications-container .timeline-body {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .publications-container {
        padding-top: 45px !important;
    }

    .publications-container > .row {
        gap: 30px;
    }

    .publications-container .sidebar {
        position: static;
    }

    .publications-container .sidebar .nav-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .publications-container .sidebar .nav-list > li:first-child {
        grid-column: 1 / -1;
    }

    .publications-container .timeline-body {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .page-header.page-header-modern {
        min-height: 330px;
        padding: 64px 0 54px;
    }

    .page-header.page-header-modern::before,
    .page-header.page-header-modern::after {
        opacity: .45;
    }

    .publications-container,
    .page-header.page-header-modern .container {
        width: min(100% - 28px, 1180px);
    }

    .publications-container .sidebar {
        padding: 22px;
        border-radius: 20px;
    }

    .publications-container .timeline-body,
    .publications-container .sidebar .nav-list {
        grid-template-columns: 1fr;
    }

    .publications-container .post-image { aspect-ratio: 3 / 1; }
}
