/**
 * ============================================
 * INSTITUTIONAL MAIN STYLES
 * Extrait de base.html.twig
 * À réorganiser progressivement
 * ============================================
 */
      :root{
        --bg:#ffffff;
        --bg-2:#ffffff;
        --bg-3:#ffffff;

        --card:#ffffff;
        --card-soft:#fcfdfd;

        --ink:#111111;
        --ink-soft:#1e293b;
        --muted: #3a3a3a;
        --muted-2: #3a3a3a;

        /* Palette de la charte municipale (ce bloc prévaut sur
           institutional-base.css, chargé avant). */
        --brand:#2e3d37;
        --brand-2: #232d29;
        --brand-3:#7b8580;
        --brand-4: #1c2622;
        --brand-soft:#eef2f0;

        --accent:#8c9892;
        --accent-2:#2e3d37;
        --accent-3:#b2bab6;

        --blue:#2c4a6b;
        --blue-2:#223a54;
        --blue-soft:rgba(44,74,107,.08);
        --blue-soft-2:rgba(44,74,107,.12);
        --blue-border:rgba(44,74,107,.14);

        --line:#e3e7e9;
        --line-soft:#f2f4f6;
        --line-strong:#cfd6da;

        --success:#2e3d37;
        --warning:#b9542b;
        --danger:#a3261d;

        --shadow: 0 0 0 1px rgba(22,32,43,.09);
        --shadow-soft: 0 0 0 1px rgba(22,32,43,.07);
        --shadow-strong: 0 0 0 1px rgba(22,32,43,.14);

        --radius: 6px;
        --radius-md: 6px;
        --radius-lg: 8px;

        --max: min(1200px, 92vw);
        --pad: 24px;

        --header-bg:#171c22;
        --header-border: #2e3d37;
        --header-text:#ffffff;
        --header-muted:rgba(255,255,255,0.7);
      }

      *,
      *::before,
      *::after{
        box-sizing:border-box;
      }

      html{
        scroll-behavior:smooth;
      }

      body{
        margin:0;
        font-family:Arial, sans-serif;
        background:
          radial-gradient(circle at top left, rgba(255,255,255,.76), transparent 26%),
          linear-gradient(180deg, var(--bg-2) 0%, var(--bg) 100%);
        color:var(--ink);
        line-height:1.68;
        -webkit-font-smoothing:antialiased;
        -moz-osx-font-smoothing:grayscale;
      }

      body.mobile-nav-open{
        overflow:hidden;
        touch-action:none;
      }

      a{
        color:inherit;
      }

      img{
        max-width:100%;
        height:auto;
        display:block;
      }

      label{
        display:block;
        margin:0 0 7px;
        font-size:14px;
        font-weight:800;
        color:var(--ink);
      }

      input,
      select,
      textarea,
      button{
        font:inherit;
      }

      button{
        border:0;
        background:none;
      }

      :focus-visible{
        outline:3px solid rgba(37,99,235,.18);
        outline-offset:2px;
      }

      .official-bar{
        background:#ffffff;
        color:#373f3c;
        text-align:center;
        padding:7px 14px;
        font-weight:700;
        letter-spacing:.15px;
        font-size:12px;
        border-bottom:1px solid #cfdacf;
      }

      .site-top-wrapper{
        position:sticky;
        top:0;
        z-index:1100;
        transition:transform .25s ease;
      }

      .site-top-wrapper.is-hidden{
        transform:translateY(-100%);
      }

      .site-header{
        --header-height:92px;
        --header-height-scrolled:76px;

        position:relative;
        min-height:var(--header-height);

        background:var(--header-bg);
        backdrop-filter:blur(14px);
        -webkit-backdrop-filter:blur(14px);
        border-bottom:1px solid var(--header-border);
        box-shadow:0 10px 24px rgba(15,23,42,.05);

        transition:
          background-color .25s ease,
          border-color .25s ease,
          box-shadow .25s ease,
          backdrop-filter .25s ease,
          min-height .25s ease;
      }

      .site-header .wrap{
        transition:padding .25s ease;
      }

      .site-header.is-transparent{
        position:sticky;
        top:0;
        background:linear-gradient(
          to bottom,
          rgba(0,0,0,.34) 0%,
          rgba(0,0,0,.14) 48%,
          rgba(0,0,0,0) 100%
        );
        border-bottom-color:transparent;
        box-shadow:none;
        backdrop-filter:none;
        -webkit-backdrop-filter:none;
      }

      .site-header.is-transparent .brand,
      .site-header.is-transparent .brand:hover,
      .site-header.is-transparent .navlink,
      .site-header.is-transparent .navlink-dropdown,
      .site-header.is-transparent .nav-dropdown-link,
      .site-header.is-transparent .search-input{
        color:#fff;
      }

      .site-header.is-transparent .brand-badge{
        background:rgba(255,255,255,.10);
        border-color:rgba(255,255,255,.18);
        color:#fff;
        box-shadow:0 8px 18px rgba(0,0,0,.12);
      }

      .site-header.is-transparent .search-input{
        background:rgba(255,255,255,.10);
        border-color:rgba(255,255,255,.18);
        box-shadow:none;
      }

      .site-header.is-transparent .search-input::placeholder{
        color:rgba(255,255,255,.82);
      }

      .site-header.is-transparent .search-input:focus{
        border-color:rgba(255,255,255,.28);
        box-shadow:0 0 0 3px rgba(255,255,255,.10);
      }

      .site-header.is-transparent .navlink,
      .site-header.is-transparent .navlink-dropdown{
        color:#fff;
        border-color:transparent;
      }

      .site-header.is-transparent .navlink:hover,
      .site-header.is-transparent .navlink-dropdown:hover{
        color:#fff;
        background:rgba(255,255,255,.10);
        border-color:rgba(255,255,255,.14);
        box-shadow:0 8px 18px rgba(0,0,0,.10);
      }

      .site-header.is-transparent .navlink.active,
      .site-header.is-transparent .navlink-dropdown.active{
        color:#fff;
        background:rgba(255,255,255,.14);
        border-color:rgba(255,255,255,.18);
        box-shadow:0 8px 18px rgba(0,0,0,.10);
      }

      .site-header.is-transparent .nav-dropdown-menu{
        background:#ffffff;
        border-color:rgba(208,226,214,.80);
        box-shadow:0 24px 48px rgba(98,133,98,.12), 0 8px 18px rgba(15,23,42,.06);
        backdrop-filter:blur(12px);
        -webkit-backdrop-filter:blur(12px);
      }

      .site-header.is-transparent .nav-dropdown-link{
        color:var(--ink);
      }

      .site-header.is-transparent .nav-dropdown-link:hover{
        background:var(--brand-soft);
        color:var(--brand-2);
      }

      .site-header.is-transparent .nav-dropdown-link.active{
        background:rgba(98,133,98,.12);
        color:var(--brand-2);
      }

      .site-header.is-transparent .nav-mega-card{
        color:var(--ink);
      }

      .site-header.is-transparent .nav-mega-card:hover{
        background:var(--brand-soft);
        border-color:rgba(98,133,98,.18);
        color:var(--brand-2);
        box-shadow:0 10px 24px rgba(98,133,98,.10);
      }

      .site-header.is-transparent .nav-mega-card.active{
        background:rgba(98,133,98,.10);
        border-color:rgba(98,133,98,.20);
        color:var(--brand-2);
      }

      .site-header.is-transparent .nav-mega-card__text{
        color:var(--muted);
      }

      .site-header.is-scrolled{
        min-height:var(--header-height-scrolled);
        background:rgba(255,255,255,.94);
        border-bottom-color:var(--header-border);
        box-shadow:0 16px 34px rgba(15,23,42,.10);
        backdrop-filter:blur(16px);
        -webkit-backdrop-filter:blur(16px);
      }

      .site-header.is-transparent.is-scrolled{
        background:rgba(255,255,255,.94);
        border-bottom-color:var(--header-border);
        box-shadow:0 16px 34px rgba(15,23,42,.10);
        backdrop-filter:blur(16px);
        -webkit-backdrop-filter:blur(16px);
      }

      .site-header.is-transparent.is-scrolled .brand,
      .site-header.is-transparent.is-scrolled .brand:hover,
      .site-header.is-transparent.is-scrolled .navlink,
      .site-header.is-transparent.is-scrolled .navlink-dropdown{
        color:var(--header-text);
      }

      .site-header.is-transparent.is-scrolled .brand-badge{
        background:linear-gradient(135deg, #ffffff, #ffffff);
        border-color:#dde3dd;
        color:var(--brand-2);
        box-shadow:0 8px 18px rgba(98,133,98,.10);
      }

      .site-header.is-transparent.is-scrolled .search-input{
        background:#fff;
        border-color:var(--line);
        color:var(--ink);
      }

      .site-header.is-transparent.is-scrolled .search-input::placeholder{
        color:#3a3a3a;
      }

      .site-header.is-transparent.is-scrolled .navlink:hover,
      .site-header.is-transparent.is-scrolled .navlink-dropdown:hover{
        color:var(--blue);
        background:var(--blue-soft);
        border-color:rgba(37,99,235,.10);
        box-shadow:0 8px 18px rgba(37,99,235,.08);
      }

      .site-header.is-transparent.is-scrolled .navlink.active,
      .site-header.is-transparent.is-scrolled .navlink-dropdown.active{
        color:var(--brand-2);
        background:rgba(98,133,98,.10);
        border-color:rgba(98,133,98,.18);
        box-shadow:0 8px 18px rgba(98,133,98,.10);
      }

      .site-header.is-transparent.is-scrolled .nav-dropdown-menu{
        background:#ffffff;
        border:1px solid rgba(208,226,214,.80);
        box-shadow:0 24px 48px rgba(98,133,98,.10), 0 8px 18px rgba(15,23,42,.06);
      }

      .site-header.is-transparent.is-scrolled .nav-dropdown-link{
        color:var(--ink);
      }

      .site-header.is-transparent.is-scrolled .nav-dropdown-link:hover{
        background:var(--brand-soft);
        color:var(--brand-2);
      }

      .site-header.is-transparent.is-scrolled .nav-dropdown-link.active{
        background:rgba(98,133,98,.12);
        color:var(--brand-2);
      }

      .site-header.is-transparent.is-scrolled .nav-mega-card{
        color:var(--ink);
      }

      .site-header.is-transparent.is-scrolled .nav-mega-card:hover{
        background:var(--brand-soft);
        border-color:rgba(98,133,98,.18);
        color:var(--brand-2);
        box-shadow:0 10px 24px rgba(98,133,98,.10);
      }

      .site-header.is-transparent.is-scrolled .nav-mega-card.active{
        background:rgba(98,133,98,.10);
        border-color:rgba(98,133,98,.20);
        color:var(--brand-2);
      }

      .site-header.is-transparent.is-scrolled .nav-mega-card__text{
        color:var(--muted);
      }

      .wrap{
        max-width:var(--max);
        margin:0 auto;
        padding:14px var(--pad);
      }

      .header-main{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:14px;
        width:100%;
      }

      .header-main__left{
        display:flex;
        align-items:center;
        gap:12px;
        min-width:0;
        flex:1 1 auto;
      }

      .brand{
        font-weight:900;
        font-size:18px;
        text-decoration:none;
        color:var(--header-text);
        display:flex;
        align-items:center;
        gap:12px;
        letter-spacing:-.02em;
        min-width:0;
        flex:0 0 auto;
      }

      .brand:hover{
        color:var(--header-text);
      }

      .brand-badge{
        width:42px;
        height:42px;
        border-radius:13px;
        display:flex;
        align-items:center;
        justify-content:center;
        background:#44574f;
        border:1px solid #374540;
        color:#ffffff;
        font-size:18px;
        font-weight:950;
        flex:0 0 auto;
      }

      .mobile-nav-toggle{
        display:none;
        align-items:center;
        justify-content:center;
        width:44px;
        height:44px;
        border-radius:13px;
        border:1px solid var(--line);
        background:#fff;
        color:var(--ink);
        box-shadow:var(--shadow-soft);
        cursor:pointer;
        flex:0 0 auto;
      }

      .mobile-nav-toggle:hover{
        background:var(--bg-2);
      }

      .mobile-nav-toggle__icon{
        font-size:20px;
        line-height:1;
        font-weight:900;
      }

      .header-search{
        margin-left:auto;
        min-width:260px;
        max-width:320px;
        width:100%;
      }

      .search-form{
        display:block;
        width:100%;
        margin:0;
      }

      .search-input{
        width:100%;
        min-height:44px;
        padding:10px 14px;
        border-radius:14px;
        border:1px solid var(--line);
        background:#fff;
        color:var(--ink);
        outline:none;
        transition:
          border-color .15s ease,
          box-shadow .15s ease,
          background-color .15s ease;
      }

      .search-input::placeholder{
        color:#3a3a3a;
      }

      .search-input:focus{
        border-color:rgba(37,99,235,.24);
        box-shadow:0 0 0 3px rgba(37,99,235,.10);
      }

      .site-nav-shell{
        margin-top:14px;
      }

      .nav{
        display:flex;
        align-items:center;
        gap:8px;
        flex-wrap:wrap;
      }

      .navlink,
      .navlink-dropdown{
        position:relative;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        gap:7px;
        min-height:40px;
        padding:8px 12px;
        border-radius:12px;
        text-decoration:none;
        color:var(--header-text) !important;
        font-size:14px;
        font-weight:700;
        letter-spacing:-.01em;
        white-space:nowrap;
        background:transparent;
        border:1px solid transparent;
        cursor:pointer;
        transition:
          background-color .18s ease,
          color .18s ease,
          border-color .18s ease,
          box-shadow .18s ease,
          transform .18s ease;
      }

      .navlink::after,
      .navlink-dropdown::after{
        display:none;
      }

      .navlink:hover,
      .navlink-dropdown:hover{
        color:#3a3a3a;
        background:#1e293b;
        border-color:transparent;
        box-shadow:none;
        transform:translateY(-1px);
      }

      .navlink.active,
      .navlink-dropdown.active{
        color:#ffffff;
        background:#44574f;
        border-color:transparent;
        box-shadow:0 4px 14px 0 rgba(56,99,86, 0.15);
      }

      .navlink__icon{
        font-size:13px;
        line-height:1;
        opacity:.88;
        flex:0 0 auto;
      }

      .nav-dropdown{
        position:relative;
      }

      .nav-caret{
        font-size:10px;
        line-height:1;
        opacity:.7;
      }

      .nav-dropdown-menu{
        position:absolute;
        top:calc(100% + 10px);
        left:0;
        min-width:300px;
        background:#ffffff;
        border:2px solid #2e3d37;
        border-radius:6px;
        box-shadow:0 24px 48px rgba(98,133,98,.10), 0 8px 18px rgba(15,23,42,.06);
        padding:10px;
        display:flex;
        flex-direction:column;
        gap:6px;
        opacity:0;
        visibility:hidden;
        transform:translateY(8px);
        transition:
          opacity .18s ease,
          transform .18s ease,
          visibility .18s ease;
        z-index:1200;
        backdrop-filter:blur(10px);
        -webkit-backdrop-filter:blur(10px);
      }

      .nav-dropdown:hover .nav-dropdown-menu,
      .nav-dropdown:has(:focus-visible) .nav-dropdown-menu{
        opacity:1;
        visibility:visible;
        transform:translateY(0);
      }

      .nav-dropdown-menu--mega{
        min-width:350px;
      }

      .nav-dropdown-link{
        display:flex;
        align-items:center;
        gap:10px;
        min-height:44px;
        padding:10px 12px;
        border-radius:12px;
        text-decoration:none;
        color:var(--ink);
        font-size:14px;
        font-weight:700;
        transition:
          background-color .16s ease,
          color .16s ease,
          transform .16s ease;
      }

      .nav-dropdown-link:hover{
        background:var(--brand-soft);
        color:var(--brand-2);
        transform:translateX(2px);
      }

      .nav-dropdown-link.active{
        background:rgba(98,133,98,.12);
        color:var(--brand-2);
        font-weight:800;
      }

      .nav-mega-card{
        display:flex;
        align-items:flex-start;
        gap:12px;
        padding:12px 14px;
        border-radius:14px;
        text-decoration:none;
        color:var(--ink);
        background:transparent;
        border:1px solid transparent;
        transition:
          background-color .18s ease,
          border-color .18s ease,
          color .18s ease,
          transform .18s ease,
          box-shadow .18s ease;
      }

      .nav-mega-card:hover{
        background:var(--brand-soft);
        border-color:rgba(98,133,98,.18);
        color:var(--brand-2);
        transform:translateY(-1px);
        box-shadow:0 10px 24px rgba(98,133,98,.10);
      }

      .nav-mega-card.active{
        background:rgba(98,133,98,.10);
        border-color:rgba(98,133,98,.20);
        color:var(--brand-2);
      }

      .nav-mega-card__icon{
        font-size:18px;
        line-height:1;
        flex:0 0 auto;
        margin-top:2px;
      }

      .nav-mega-card__content{
        display:flex;
        flex-direction:column;
        gap:4px;
        min-width:0;
      }

      .nav-mega-card__title{
        display:block;
        font-size:15px;
        line-height:1.25;
        font-weight:900;
        color:inherit;
      }

      .nav-mega-card__text{
        display:block;
        font-size:13px;
        line-height:1.55;
        color:var(--muted);
      }

      .mobile-nav-backdrop{
        display:none;
      }

      .container{
        max-width:var(--max);
        margin:24px auto;
        background:rgba(255,255,255,.90);
        padding:34px;
        border-radius:26px;
        border:1px solid rgba(232,235,232,.98);
        backdrop-filter:blur(8px);
      }

      .section{
        margin-top:38px;
      }

      .section-head{
        display:flex;
        align-items:flex-end;
        justify-content:space-between;
        gap:18px;
        flex-wrap:wrap;
        margin-bottom:16px;
      }

      .section-title{
        font-size:28px;
        line-height:1.08;
        letter-spacing:-.02em;
        font-weight:950;
        margin:0;
        color:var(--ink);
      }

      .section-desc{
        color:var(--muted);
        font-weight:700;
        font-size:14px;
        line-height:1.8;
        max-width:900px;
      }

      .section-action{
        font-weight:900;
        color:var(--accent-2);
        text-decoration:none;
      }

      .section-action:hover{
        text-decoration:underline;
      }

      .eyebrow{
        display:inline-flex;
        align-items:center;
        font-size:12px;
        font-weight:900;
        letter-spacing:.5px;
        text-transform:uppercase;
        color:var(--accent-2);
        margin-bottom:8px;
      }

      .lead{
        color:var(--muted-2);
        font-size:17px;
        line-height:1.9;
        margin:0;
      }

      .muted{
        color:var(--muted);
      }

      .grid{
        display:grid;
        grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
        gap:22px;
      }

      .grid-2{
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:22px;
      }

      .grid-3{
        display:grid;
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:22px;
      }

      .card{
        position:relative;
        border-radius:20px;
        border:1px solid var(--line);
        background:#fff;
        text-decoration:none;
        color:inherit;
        overflow:hidden;
        transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
        display:flex;
        flex-direction:column;
      }

      .card:hover{
        transform:translateY(-3px);
        border-color:var(--line-strong);
      }

      .card-img{
        width:100%;
        height:220px;
        object-fit:cover;
        display:block;
      }

      .card-body{
        padding:20px;
        display:flex;
        flex-direction:column;
        gap:10px;
        flex:1;
      }

      .card-title{
        font-weight:950;
        font-size:20px;
        line-height:1.28;
        margin:0;
        color:var(--ink);
      }

      .card-meta{
        color:var(--muted);
        font-weight:800;
        font-size:13px;
      }

      .card-text{
        color:var(--muted-2);
        line-height:1.8;
        font-size:14px;
      }

      .card-cta{
        color:var(--accent-2);
        font-weight:950;
        margin-top:auto;
      }

      .badge-featured{
        position:absolute;
        top:14px;
        left:14px;
        background:linear-gradient(135deg,#a7605b,#8b4e4a);
        color:#fff;
        padding:6px 10px;
        font-size:12px;
        font-weight:900;
        border-radius:8px;
        letter-spacing:.5px;
        z-index:2;
      }

      .badge{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        padding:6px 10px;
        border-radius:999px;
        font-size:12px;
        font-weight:900;
        background:#ffffff;
        color:var(--brand);
        border:1px solid #e5eae5;
      }

      .panel{
        border:1px solid var(--line);
        background:#fff;
        border-radius:20px;
        padding:22px;
      }

      .panel h2,
      .panel h3{
        margin-top:0;
      }

      .separator{
        border:0;
        border-top:1px solid var(--line);
        margin:36px 0;
      }

      .breadcrumb{
        display:flex;
        align-items:center;
        gap:8px;
        flex-wrap:wrap;
        color:var(--muted);
        font-weight:800;
        font-size:13px;
        margin:0 0 20px 0;
      }

      .breadcrumb a{
        color:var(--muted);
        text-decoration:none;
        border-bottom:1px solid transparent;
      }

      .breadcrumb a:hover{
        color:var(--ink);
        border-bottom-color:rgba(15,23,42,.18);
      }

      .breadcrumb .sep{
        opacity:.6;
      }

      .btn{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-height:44px;
        padding:10px 16px;
        border-radius:13px;
        text-decoration:none;
        font-weight:900;
        border:1px solid var(--line);
        background:#fff;
        color:var(--ink);
        transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease;
        cursor:pointer;
      }

      .btn:hover{
        transform:translateY(-1px);
      }

      .btn-primary{
        background:var(--accent-2);
        border-color:transparent;
        color:#fff;
      }

      .btn-primary:hover{
        color:#fff;
        background:var(--brand-2);
      }

      .alert{
        padding:14px 16px;
        border-radius:13px;
        border:1px solid var(--line);
        margin-bottom:18px;
        font-weight:700;
      }

      .alert-success{
        background:#ffffff;
        border-color:#e3e6e5;
        color:#39423f;
      }

      .alert-warning{
        background:#ffffff;
        border-color:#e4d3cc;
        color:#6c4434;
      }

      .alert-danger{
        background:#ffffff;
        border-color:#ebe0df;
        color:#744340;
      }

      form{
        display:block;
      }

      textarea.search-input{
        min-height:120px;
        resize:vertical;
      }

      select.search-input{
        height:46px;
      }

      input.search-input{
        min-height:46px;
      }

      .pagination{
        display:flex;
        justify-content:space-between;
        align-items:center;
        margin-top:30px;
        gap:10px;
        flex-wrap:wrap;
      }

      .pagination__list{
        display:flex;
        align-items:center;
        gap:6px;
        list-style:none;
        padding:0;
        margin:0;
        flex-wrap:wrap;
      }

      .pagination__page,
      .pagination__btn{
        display:flex;
        align-items:center;
        justify-content:center;
        min-width:40px;
        height:40px;
        padding:0 10px;
        border-radius:11px;
        border:1px solid var(--line);
        background:#fff;
        font-weight:800;
        text-decoration:none;
        color:var(--ink);
      }

      .pagination__page.active{
        background:var(--brand);
        color:#fff;
        border-color:var(--brand);
      }

      .institution-hero{
        position:relative;
        overflow:hidden;
        border:1px solid var(--line);
        border-radius:24px;
        padding:36px;
        background: linear-gradient(135deg, #44574f, #334a3f);
        color:#fff;
      }

      .institution-hero::before{
        content:'';
        position:absolute;
        inset:0;
        background:
          linear-gradient(90deg, rgba(206,17,38,.06) 0 33.333%, rgba(252,209,22,.04) 33.333% 66.666%, rgba(43,79,61,.06) 66.666% 100%);
        pointer-events:none;
      }

      .institution-hero > *{
        position:relative;
        z-index:1;
      }

      .institution-hero__eyebrow{
        display:inline-flex;
        align-items:center;
        gap:8px;
        padding:8px 12px;
        border-radius:999px;
        background:rgba(255,255,255,.12);
        border:1px solid rgba(255,255,255,.15);
        font-size:12px;
        font-weight:900;
        text-transform:uppercase;
        letter-spacing:.4px;
        margin-bottom:16px;
      }

      .institution-hero__title{
        margin:0 0 12px;
        font-size:clamp(36px, 5vw, 58px);
        line-height:1.02;
        font-weight:950;
        letter-spacing:-.03em;
        max-width:900px;
      }

      .institution-hero__text{
        margin:0;
        max-width:900px;
        font-size:18px;
        line-height:1.9;
        color:rgba(255,255,255,.92);
      }

      .site-footer{
        position:relative;
        margin-top:46px;
        background:
          linear-gradient(135deg, rgba(54,76,54,.98) 0%, rgba(80,109,80,.97) 48%, rgba(98,133,98,.95) 100%);
        color:#fff;
        border-top:1px solid rgba(255,255,255,.08);
        overflow:hidden;
      }

      .site-footer::before{
        content:'';
        position:absolute;
        inset:0;
        background:
          linear-gradient(120deg, rgba(255,255,255,.05), transparent 32%),
          radial-gradient(circle at top right, rgba(255,255,255,.08), transparent 28%);
        pointer-events:none;
      }

      .site-footer::after{
        content:'';
        position:absolute;
        left:-120px;
        bottom:-120px;
        width:320px;
        height:320px;
        border-radius:999px;
        background:radial-gradient(circle, rgba(255,255,255,.05), transparent 68%);
        pointer-events:none;
      }

      .site-footer__container{
        position:relative;
        z-index:1;
        width:min(1450px, calc(100% - 40px));
        margin:0 auto;
        padding:40px 0 18px;
        display:flex;
        flex-direction:column;
        gap:28px;
      }

      .site-footer__top{
        display:grid;
        grid-template-columns:110px minmax(0, 1fr) 110px;
        gap:24px;
        align-items:start;
      }

      .site-footer__brand,
      .site-footer__brand-right{
        display:flex;
        align-items:flex-start;
        justify-content:center;
      }

      .site-footer__seal{
        width:78px;
        height:78px;
        border-radius:22px;
        display:flex;
        align-items:center;
        justify-content:center;
        background:rgba(255,255,255,.10);
        border:1px solid rgba(255,255,255,.16);
        color:#fff;
        font-size:28px;
        font-weight:950;
        letter-spacing:-.03em;
      }

      .site-footer__seal--alt{
        font-size:22px;
      }

      .site-footer__content{
        display:grid;
        grid-template-columns:1.2fr .9fr 1fr;
        gap:18px;
      }

      .site-footer__card{
        background:rgba(255,255,255,.08);
        border:1px solid rgba(255,255,255,.11);
        border-radius:22px;
        padding:24px;
        backdrop-filter:blur(8px);
        -webkit-backdrop-filter:blur(8px);
        min-width:0;
      }

      .site-footer__title{
        margin:0 0 12px;
        font-size:18px;
        line-height:1.2;
        font-weight:950;
        color:#fff;
        letter-spacing:-.01em;
      }

      .site-footer__text{
        margin:0;
        color:rgba(255,255,255,.88);
        line-height:1.9;
        font-size:14px;
      }

      .site-footer__menu{
        list-style:none;
        margin:0;
        padding:0;
        display:grid;
        grid-template-columns:1fr;
        gap:10px;
      }

      .site-footer__menu a{
        color:#fff;
        text-decoration:none;
        font-weight:800;
        opacity:.94;
        transition:opacity .2s ease, transform .2s ease, color .2s ease;
        display:inline-flex;
        align-items:center;
        gap:8px;
        line-height:1.5;
      }

      .site-footer__menu a::before{
        content:'›';
        font-size:14px;
        opacity:.82;
        flex:0 0 auto;
      }

      .site-footer__menu a:hover{
        opacity:1;
        transform:translateX(2px);
        color:#d5ddda;
        text-decoration:underline;
      }

      .site-footer__contact-list{
        display:flex;
        flex-direction:column;
        gap:10px;
        margin-top:2px;
      }

      .site-footer__contact-item{
        color:rgba(255,255,255,.92);
        font-size:14px;
        line-height:1.75;
        font-weight:700;
        overflow-wrap:anywhere;
      }

      .site-footer__contact-item strong{
        color:#fff;
      }

      .site-footer__contact-item a{
        color:#fff;
        text-decoration:none;
      }

      .site-footer__contact-item a:hover{
        text-decoration:underline;
        color:#d5ddda;
      }

      .site-footer__actions{
        margin-top:16px;
        display:flex;
        flex-wrap:wrap;
        gap:10px;
      }

      .site-footer__btn{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-height:42px;
        padding:10px 14px;
        border-radius:12px;
        text-decoration:none;
        font-weight:900;
        transition:
          transform .2s ease,
          background-color .2s ease,
          color .2s ease,
          border-color .2s ease,
          box-shadow .2s ease;
      }

      .site-footer__btn:hover{
        transform:translateY(-1px);
      }

      .site-footer__btn--primary{
        background:#ffffff;
        color:#39423f;
        border:1px solid rgba(255,255,255,.16);
      }

      .site-footer__btn--primary:hover{
        background:#ffffff;
        color:#3a3a3a;
      }

      .site-footer__btn--secondary{
        background:rgba(255,255,255,.08);
        color:#fff;
        border:1px solid rgba(255,255,255,.14);
      }

      .site-footer__btn--secondary:hover{
        background:rgba(255,255,255,.14);
        color:#fff;
      }

      .site-footer__bottom{
        border-top:1px solid rgba(255,255,255,.10);
        padding-top:15px;
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:16px;
        flex-wrap:wrap;
      }

      .site-footer__copyright,
      .site-footer__bottom-links{
        color:rgba(255,255,255,.84);
        font-size:13px;
        font-weight:700;
      }

      .site-footer__bottom-links{
        display:flex;
        align-items:center;
        gap:14px;
        flex-wrap:wrap;
      }

      .site-footer__bottom-links a{
        color:#fff;
        text-decoration:none;
        opacity:.92;
      }

      .site-footer__bottom-links a:hover{
        text-decoration:underline;
        opacity:1;
        color:#d5ddda;
      }

      @media (max-width: 1180px){
        .header-main{
          flex-wrap:wrap;
        }

        .header-search{
          max-width:none;
          min-width:220px;
          width:100%;
        }

        .site-footer__top{
          grid-template-columns:1fr;
        }

        .site-footer__brand,
        .site-footer__brand-right{
          justify-content:flex-start;
        }

        .site-footer__content{
          grid-template-columns:repeat(2, minmax(0, 1fr));
        }
      }

      @media (max-width: 980px){
        .container{
          margin:16px auto;
          width:calc(100% - 32px);
          padding:22px;
        }

        .grid-2,
        .grid-3{
          grid-template-columns:1fr;
        }

        .institution-hero{
          padding:26px;
        }
      }

      @media (max-width: 760px){
        .site-header{
          --header-height:84px;
          --header-height-scrolled:72px;
        }

        .wrap{
          padding:12px 16px;
        }

        .header-main{
          flex-direction:row;
          align-items:center;
          gap:12px;
        }

        .header-main__left{
          min-width:0;
        }

        .brand{
          font-size:18px;
          min-width:0;
          flex:1 1 auto;
        }

        .mobile-nav-toggle{
          display:inline-flex;
        }

        .header-search{
          margin-left:0;
          min-width:0;
          max-width:none;
          width:100%;
        }

        .site-nav-shell{
          position:fixed;
          top:0;
          left:0;
          right:0;
          bottom:0;
          z-index:1300;
          margin-top:0;
          padding:92px 16px 18px;
          background:#ffffff;
          backdrop-filter:blur(10px);
          -webkit-backdrop-filter:blur(10px);
          overflow-y:auto;
          transform:translateY(-12px);
          opacity:0;
          visibility:hidden;
          pointer-events:none;
          transition:
            opacity .22s ease,
            transform .22s ease,
            visibility .22s ease;
        }

        .site-nav-shell.is-open{
          opacity:1;
          visibility:visible;
          pointer-events:auto;
          transform:translateY(0);
        }

        .mobile-nav-backdrop{
          display:block;
          position:fixed;
          inset:0;
          z-index:1250;
          background:rgba(15,23,42,.32);
          opacity:0;
          visibility:hidden;
          pointer-events:none;
          transition:opacity .22s ease, visibility .22s ease;
        }

        .mobile-nav-backdrop.is-open{
          opacity:1;
          visibility:visible;
          pointer-events:auto;
        }

        .site-nav-shell .nav{
          display:grid;
          grid-template-columns:1fr;
          gap:8px;
          margin-top:0;
          background:#ffffff;
          border:1px solid var(--line);
          border-radius:22px;
          padding:14px;
          box-shadow:0 18px 34px rgba(15,23,42,.08);
        }

        .site-nav-shell .nav-dropdown{
          width:100%;
        }

        .site-nav-shell .navlink,
        .site-nav-shell .navlink-dropdown{
          width:100%;
          justify-content:space-between;
          min-height:50px;
          padding:12px 14px;
          font-size:15px;
          border-radius:14px;
        }

        .site-nav-shell .nav-dropdown-menu{
          position:static;
          min-width:0;
          margin-top:6px;
          opacity:1;
          visibility:visible;
          transform:none;
          display:none;
          box-shadow:none;
          border:1px solid var(--line);
          background:#ffffff;
          padding:8px;
          backdrop-filter:none;
          -webkit-backdrop-filter:none;
        }

        .site-nav-shell .nav-dropdown.open .nav-dropdown-menu{
          display:flex;
        }

        .container{
          border-radius:20px;
          width:calc(100% - 20px);
          margin:12px auto;
          padding:18px;
        }

        .institution-hero{
          padding:22px;
        }

        .institution-hero__title{
          font-size:30px;
        }

        .institution-hero__text{
          font-size:16px;
        }

        .site-footer__content{
          grid-template-columns:1fr;
        }

        .site-footer__container{
          width:min(1450px, calc(100% - 24px));
          padding-top:30px;
        }

        .site-footer__card{
          padding:20px;
        }

        .site-footer__actions{
          flex-direction:column;
        }

        .site-footer__btn{
          width:100%;
        }

        .site-footer__bottom{
          flex-direction:column;
          align-items:flex-start;
        }
      }

      @media (max-width: 520px){
        .official-bar{
          font-size:11px;
        }

        .brand{
          font-size:18px;
        }
      }

/* === RGPD BANNER === */
#rgpd-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9998;
  background: #ffffff !important; /* Bleu clair institutionnel - cohérent avec les menus */
  border-top: 4px solid #44574f !important; /* Bordure verte épaisse */
              0 -4px 12px rgba(15, 23, 42, 0.10) !important; /* Ombre verte + bleu */
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

#rgpd-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

#rgpd-text {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: #1e293b !important; /* Bleu nuit foncé - texte visible */
  font-weight: 500;
  flex: 1 1 300px;
}

#rgpd-more {
  color: #374540 !important; /* Vert foncé pour le lien */
  font-weight: 700;
  text-decoration: underline;
  margin-left: 8px;
  transition: color 0.2s;
}

#rgpd-more:hover {
  color: #3a3a3a !important; /* Vert vif au hover */
}

#rgpd-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

#rgpd-accept {
  background: #44574f !important; /* Vert institutionnel */
  color: #ffffff !important;
  border: none;
  padding: 12px 28px;
  border-radius: 8px;
  font-weight: 800;
  font-size: 15px;
  cursor: pointer;
  transition: all 0.2s;
}

#rgpd-accept:hover {
  background: #374540 !important; /* Vert foncé au hover */
  transform: translateY(-2px);
}

#rgpd-close {
  background: #ffffff !important;
  color: #3a3a3a !important;
  border: 2px solid #e2e8f0 !important;
  width: 44px;
  height: 44px;
  border-radius: 8px;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

#rgpd-close:hover {
  background: #ffffff !important;
  border-color: #cbd5e1 !important;
  color: #3a3a3a !important;
}
