  :root {
    --bg: #f7faf8;
    --bg2: #ffffff;
    --bg3: #e6e9e7;
    --primary: #012d1d;
    --primary-mid: #1a3d2e;
    --accent: #012d1d;
    --accent2: #012d1d;
    --text: #181c1c;
    --text2: #5f6362;
    --success: #1e6e3a;
    --danger-col: #b83232;
    --border: rgba(1,45,29,.12);
    --border-strong: rgba(1,45,29,.25);
    --radius: 0px;
    --shadow: none;
    --glow: none;
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  body { font-family: 'Manrope', sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; -webkit-font-smoothing: antialiased; }
  #app { display: flex; flex-direction: column; min-height: 100vh; }

  /* ── Header ── */
  header {
    background: var(--primary); border-bottom: none;
    padding: 0 32px; display: flex; align-items: center;
    justify-content: space-between; flex-wrap: wrap; gap: 0;
    height: 64px; position: sticky; top: 0; z-index: 100;
  }
  .logo {
    font-family: 'Manrope', sans-serif; font-size: 15px;
    font-weight: 800; color: #fff; letter-spacing: -0.3px;
    text-transform: uppercase;
  }
  .logo span {
    color: rgba(255,255,255,.5); font-size: 10px;
    font-family: 'Manrope', sans-serif; display: inline;
    letter-spacing: 2px; text-transform: uppercase; margin-left: 8px;
  }
  .user-badge { display: flex; align-items: center; gap: 12px; }
  .avatar {
    width: 32px; height: 32px; background: rgba(255,255,255,.2);
    border-radius: 0; display: flex; align-items: center;
    justify-content: center; font-weight: 800; font-size: 12px;
    color: #fff; flex-shrink: 0; letter-spacing: 0;
    border: 1px solid rgba(255,255,255,.3);
  }
  #hdr-name { font-size: 13px; font-weight: 700; color: #fff; }
  #hdr-role { font-size: 11px; color: rgba(255,255,255,.55); font-weight: 500; text-transform: uppercase; letter-spacing: 1px; }
  .btn-logout {
    background: none; border: 1px solid rgba(255,255,255,.25);
    color: rgba(255,255,255,.7); padding: 6px 14px;
    cursor: pointer; font-size: 11px; font-weight: 700;
    font-family: 'Manrope', sans-serif; text-transform: uppercase;
    letter-spacing: 1.5px; transition: all .2s;
  }
  .btn-logout:hover { border-color: #fff; color: #fff; }

  /* ── Nav ── */
  nav {
    background: var(--bg2); border-bottom: 1px solid var(--border);
    display: flex; overflow-x: auto; scrollbar-width: none;
  }
  nav::-webkit-scrollbar { display: none; }
  nav button {
    background: none; border: none; color: var(--text2);
    padding: 14px 20px; cursor: pointer; font-size: 12px;
    font-family: 'Manrope', sans-serif; font-weight: 700;
    white-space: nowrap; border-bottom: 3px solid transparent;
    text-transform: uppercase; letter-spacing: 1px; transition: all .2s;
  }
  nav button.active { color: var(--primary); border-bottom-color: var(--primary); }
  nav button:hover { color: var(--text); }

  /* ── Layout ── */
  main { flex: 1; padding: 32px; max-width: 1100px; width: 100%; margin: 0 auto; }
  .section { display: none; }
  .section.active { display: block; }
  h2 {
    font-family: 'Manrope', sans-serif; font-size: 28px;
    font-weight: 800; color: var(--text); letter-spacing: -0.8px;
  }
  .subtitle { color: var(--text2); font-size: 13px; font-weight: 500; margin-bottom: 24px; margin-top: 2px; }

  /* ── Cards ── */
  .card {
    background: var(--bg2); border: 1px solid var(--border);
    border-radius: 0; padding: 20px 24px; margin-bottom: 12px;
    transition: border-color .2s;
  }
  .card:hover { border-color: var(--border-strong); }
  .card-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px; gap: 10px; }
  .card-title { font-family: 'Manrope', sans-serif; font-weight: 800; font-size: 15px; color: var(--text); }
  .card-meta { font-size: 13px; color: var(--text2); margin-top: 3px; line-height: 1.5; font-weight: 500; }
  .card-actions { display: flex; gap: 6px; flex-shrink: 0; flex-wrap: wrap; }

  /* ── Badges ── */
  .badge {
    display: inline-block; padding: 3px 10px; font-size: 10px;
    font-weight: 800; text-transform: uppercase; letter-spacing: 1px;
  }
  .badge-admin   { background: rgba(1,45,29,.1); color: var(--primary); }
  .badge-actif   { background: rgba(30,110,58,.1); color: var(--success); }
  .badge-termine { background: rgba(95,99,98,.1); color: var(--text2); }

  /* ── Buttons ── */
  .btn {
    padding: 10px 20px; border: none; cursor: pointer;
    font-size: 11px; font-family: 'Manrope', sans-serif;
    font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px;
    transition: all .2s;
  }
  .btn-primary { background: var(--primary); color: #fff; }
  .btn-primary:hover { background: var(--primary-mid); }
  .btn-secondary {
    background: transparent; color: var(--text);
    border: 1px solid var(--border-strong);
  }
  .btn-secondary:hover { border-color: var(--primary); color: var(--primary); }
  .btn-danger { background: rgba(184,50,50,.1); color: var(--danger-col); border: 1px solid rgba(184,50,50,.25); }
  .btn-danger:hover { background: rgba(184,50,50,.2); }
  .btn-sm { padding: 5px 12px; font-size: 10px; }

  /* ── Forms ── */
  .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  @media(max-width:600px) { .form-grid { grid-template-columns: 1fr; } }
  .form-group { display: flex; flex-direction: column; gap: 6px; }
  .form-group.full { grid-column: 1/-1; }
  label {
    font-size: 10px; color: var(--text2); letter-spacing: 1.5px;
    text-transform: uppercase; font-weight: 700;
  }
  input, select, textarea {
    background: var(--bg); border: 1px solid var(--border);
    border-radius: 0; color: var(--text); padding: 10px 14px;
    font-size: 14px; font-family: 'Manrope', sans-serif;
    font-weight: 500; width: 100%; transition: border .2s;
  }
  input:focus, select:focus, textarea:focus {
    outline: none; border-color: var(--primary);
    box-shadow: 0 0 0 2px rgba(1,45,29,.08);
  }
  textarea { resize: vertical; min-height: 80px; }
  select option { background: var(--bg2); color: var(--text); }
  .form-check { display: flex; align-items: center; gap: 10px; padding: 8px 0; cursor: pointer; }
  .form-check input[type=checkbox] { width: 16px; height: 16px; cursor: pointer; accent-color: var(--primary); }
  .form-check span { font-size: 14px; color: var(--text); font-weight: 500; }

  .dyn-list { margin-bottom: 4px; }
  .dyn-item {
    display: flex; align-items: center; gap: 8px;
    background: var(--bg3); padding: 8px 14px;
    margin-bottom: 4px; font-size: 13px; font-weight: 500;
  }
  .dyn-item span { flex: 1; }
  .dyn-item button { background: none; border: none; color: var(--text2); cursor: pointer; font-size: 18px; line-height: 1; padding: 0 2px; transition: color .2s; }
  .dyn-item button:hover { color: var(--danger-col); }
  .add-row { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 5px; }
  .add-row input { flex: 1; min-width: 100px; }

  /* ── Modals ── */
  .modal-bg {
    display: none; position: fixed; inset: 0;
    background: rgba(1,45,29,.5); backdrop-filter: blur(4px);
    z-index: 250; align-items: center; justify-content: center; padding: 16px;
  }
  .modal-bg.open { display: flex; }
  .modal {
    background: #fff; border: 1px solid var(--border-strong);
    border-radius: 0; padding: 32px; width: 100%;
    max-width: 640px; max-height: 92vh; overflow-y: auto;
    box-shadow: 0 16px 48px rgba(1,45,29,.18);
  }
  .modal h3 {
    font-family: 'Manrope', sans-serif; font-weight: 800;
    font-size: 18px; color: var(--text); margin-bottom: 24px;
    text-transform: uppercase; letter-spacing: -0.3px;
  }
  .modal-section { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border); }
  .modal-section-title {
    font-size: 10px; color: var(--primary); text-transform: uppercase;
    letter-spacing: 2px; margin-bottom: 10px; font-weight: 800;
  }
  .modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 24px; }

  /* ── Login screen ── */
  #login-screen {
    display: flex; align-items: center; justify-content: center;
    min-height: 100vh; background: var(--primary);
  }
  .login-box {
    background: #fff; border: none; border-radius: 0;
    padding: 48px 40px; width: 100%; max-width: 400px;
    text-align: center;
  }
  .login-logo {
    font-family: 'Manrope', sans-serif; font-size: 20px;
    font-weight: 800; color: var(--primary); margin-bottom: 4px;
    text-transform: uppercase; letter-spacing: -0.3px;
  }
  .login-tagline {
    color: var(--text2); font-size: 10px; margin-bottom: 36px;
    letter-spacing: 2.5px; text-transform: uppercase; font-weight: 700;
  }
  .login-box .form-group { text-align: left; margin-bottom: 14px; }
  .login-box .btn { width: 100%; margin-top: 10px; padding: 14px; font-size: 12px; letter-spacing: 2px; }
  .login-hint { font-size: 12px; color: var(--text2); margin-top: 18px; line-height: 1.8; font-weight: 500; }
  .login-hint strong { color: var(--primary); }
  .login-separator {
    display: flex; align-items: center; gap: 12px; margin: 20px 0 16px;
    color: var(--text2); font-size: 10px; text-transform: uppercase;
    letter-spacing: 2px; font-weight: 700;
  }
  .login-separator::before, .login-separator::after { content: ''; flex: 1; border-top: 1px solid var(--border); }
  .btn-google {
    display: flex; align-items: center; justify-content: center; gap: 10px;
    width: 100%; padding: 12px 16px; background: #fff;
    border: 1px solid var(--border-strong); border-radius: 0;
    color: var(--text); font-size: 13px; font-family: 'Manrope', sans-serif;
    font-weight: 600; cursor: pointer; transition: all .2s;
  }
  .btn-google:hover { border-color: var(--primary); background: var(--bg3); }

  /* ── Présences ── */
  .pres-btn {
    padding: 6px 14px; font-size: 11px; cursor: pointer;
    border: 1px solid; transition: all .2s;
    font-family: 'Manrope', sans-serif; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1px;
  }
  .pres-present { background: rgba(30,110,58,.12); color: var(--success); border-color: rgba(30,110,58,.3); }
  .pres-absent  { background: rgba(184,50,50,.12); color: var(--danger-col); border-color: rgba(184,50,50,.3); }
  .pres-unknown { background: var(--bg3); color: var(--text2); border-color: var(--border); }

  /* ── Stats (dashboard) ── */
  .stats { display: flex; gap: 0; flex-wrap: wrap; margin-bottom: 28px; border: 1px solid var(--border); }
  .stat-card {
    background: var(--bg2); border-right: 1px solid var(--border);
    padding: 24px 28px; flex: 1; min-width: 120px;
  }
  .stat-card:last-child { border-right: none; }
  .stat-number {
    font-family: 'Manrope', sans-serif; font-weight: 800;
    font-size: 36px; color: var(--primary); letter-spacing: -2px; line-height: 1;
  }
  .stat-label {
    font-size: 10px; color: var(--text2); margin-top: 6px;
    text-transform: uppercase; letter-spacing: 1.5px; font-weight: 700;
  }

  .audio-item { display: flex; align-items: center; gap: 10px; padding: 7px 10px; background: var(--bg3); margin-bottom: 4px; font-size: 13px; font-weight: 500; }
  .btn-doc-delete { background: none; border: none; color: var(--text2); font-size: 16px; cursor: pointer; padding: 2px 6px; margin-left: 8px; line-height: 1; }
  .btn-doc-delete:hover { color: var(--danger-col); }
  .table-wrap { overflow-x: auto; }
  table { width: 100%; border-collapse: collapse; font-size: 13px; }
  th {
    text-align: left; padding: 10px 16px; color: var(--text2);
    font-size: 10px; text-transform: uppercase; letter-spacing: 1.5px;
    border-bottom: 2px solid var(--primary); font-weight: 800; background: var(--bg3);
  }
  td { padding: 12px 16px; border-bottom: 1px solid var(--border); vertical-align: middle; font-weight: 500; }
  tr:hover td { background: rgba(1,45,29,.03); }

  .divider { border: none; border-top: 1px solid var(--border); margin: 16px 0; }
  #toast {
    position: fixed; bottom: 24px; right: 24px; background: var(--primary);
    color: #fff; border: none; padding: 14px 24px;
    font-size: 13px; font-weight: 700; font-family: 'Manrope', sans-serif;
    z-index: 999; transform: translateY(80px); opacity: 0;
    transition: all .3s; pointer-events: none;
  }
  #toast.show { transform: none; opacity: 1; }
  .search-bar { display: flex; gap: 10px; margin-bottom: 20px; flex-wrap: wrap; }
  .search-bar input { flex: 1; min-width: 160px; }
  .section-top { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
  .section-top-right { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
  .empty { text-align: center; padding: 56px; color: var(--text2); }
  .empty-icon { font-size: 36px; margin-bottom: 12px; }
  .detail-section { margin-top: 14px; }
  .detail-section h4 {
    font-size: 10px; color: var(--primary); margin-bottom: 8px;
    letter-spacing: 2px; text-transform: uppercase; font-weight: 800;
  }
  .detail-text {
    background: var(--bg3); padding: 12px 16px;
    font-size: 14px; line-height: 1.6; color: var(--text2); font-weight: 500;
  }
  .pres-summary { display: flex; gap: 10px; font-size: 13px; flex-wrap: wrap; align-items: center; }
  .pres-count { display: flex; align-items: center; gap: 5px; }
  .dot { width: 7px; height: 7px; flex-shrink: 0; }
  .dot-green { background: var(--success); } .dot-red { background: var(--danger-col); } .dot-gray { background: var(--text2); }
  .prog-pill {
    display: inline-flex; align-items: center; gap: 5px;
    background: rgba(1,45,29,.08); border: 1px solid rgba(1,45,29,.2);
    color: var(--primary); padding: 3px 10px;
    font-size: 11px; font-weight: 700;
  }
  .tag-partition { background: rgba(30,110,58,.1); color: var(--success); border: 1px solid rgba(30,110,58,.2); padding: 3px 10px; font-size: 11px; font-weight: 700; }
  .tag-memoire   { background: rgba(1,45,29,.08); color: var(--primary); border: 1px solid rgba(1,45,29,.15); padding: 3px 10px; font-size: 11px; font-weight: 700; }
  .tag-misen     { background: rgba(160,100,20,.1); color: #8a5a10; border: 1px solid rgba(160,100,20,.2); padding: 3px 10px; font-size: 11px; font-weight: 700; }
  .realisation-row { display: flex; gap: 6px; margin-bottom: 5px; font-size: 13px; flex-wrap: wrap; }
  .realisation-row strong { color: var(--text); font-weight: 700; }
  .realisation-row span { color: var(--text2); }
  @media(max-width:700px) { #db-grid { grid-template-columns: 1fr !important; } }

  /* ── Annonces ── */
  .annonce-card { padding: 14px 18px; margin-bottom: 8px; display: flex; align-items: flex-start; gap: 12px; border-left: 3px solid; }
  .annonce-card.info    { background: rgba(100,160,220,.06); border-left-color: #6aa0dc; border: 1px solid rgba(100,160,220,.2); border-left: 3px solid #6aa0dc; }
  .annonce-card.warning { background: rgba(220,140,20,.06);  border-left-color: #dc8c14; border: 1px solid rgba(220,140,20,.2); border-left: 3px solid #dc8c14; }
  .annonce-card.success { background: rgba(30,110,58,.06);   border-left-color: var(--success); border: 1px solid rgba(30,110,58,.2); border-left: 3px solid var(--success); }
  .annonce-card.urgent  { background: rgba(184,50,50,.06);   border-left-color: var(--danger-col); border: 1px solid rgba(184,50,50,.2); border-left: 3px solid var(--danger-col); }
  .annonce-icon { font-size: 18px; flex-shrink: 0; margin-top: 2px; }
  .annonce-body { flex: 1; }
  .annonce-title { font-weight: 800; font-size: 14px; color: var(--text); margin-bottom: 3px; }
  .annonce-text  { font-size: 13px; color: var(--text2); line-height: 1.6; font-weight: 500; }
  .annonce-meta  { font-size: 11px; color: var(--text2); margin-top: 5px; opacity: .7; font-weight: 600; }
  .annonce-del   { background: none; border: none; color: var(--text2); cursor: pointer; font-size: 18px; padding: 0 2px; flex-shrink: 0; transition: color .2s; }
  .annonce-del:hover { color: var(--danger-col); }

  /* ── Alert banner ── */
  .alert-banner {
    background: rgba(1,45,29,.06); border: 1px solid rgba(1,45,29,.2);
    border-left: 3px solid var(--primary);
    padding: 14px 18px; margin-bottom: 20px;
    display: flex; align-items: center; gap: 12px;
  }
  .alert-banner-icon { font-size: 18px; flex-shrink: 0; }
  .alert-banner-text { flex: 1; font-size: 13px; color: var(--text2); line-height: 1.5; font-weight: 500; }
  .alert-banner-text strong { color: var(--primary); font-weight: 800; }

  /* ── Profil inline ── */
  /* ── Avatar compte ── */
  .account-avatar-wrap {
    position: relative; width: 72px; height: 72px; flex-shrink: 0;
    border-radius: 50%; overflow: hidden; cursor: pointer;
    border: 2px solid var(--border-strong);
    background: var(--bg3);
    display: flex; align-items: center; justify-content: center;
  }
  .account-avatar-wrap:hover .account-avatar-overlay { opacity: 1; }
  .account-avatar-initials {
    font-family: 'Manrope', sans-serif; font-size: 22px; font-weight: 800;
    color: var(--primary); letter-spacing: -1px;
  }
  .account-avatar-overlay {
    position: absolute; inset: 0; background: rgba(1,45,29,.55);
    display: flex; align-items: center; justify-content: center;
    font-size: 22px; opacity: 0; transition: opacity .2s;
  }

  .profil-field { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border); }
  .profil-field-label { font-size: 10px; color: var(--text2); text-transform: uppercase; letter-spacing: 1.5px; font-weight: 700; width: 120px; flex-shrink: 0; }
  .profil-field-val { flex: 1; font-size: 14px; color: var(--text); font-weight: 500; }
  .profil-field-val.missing { color: var(--danger-col); font-style: italic; }
  .profil-field input { padding: 6px 10px; font-size: 14px; }

  /* ── CTA annonce ── */
  .cta-annonce {
    background: rgba(1,45,29,.05); border: 1px solid rgba(1,45,29,.15);
    border-left: 4px solid var(--primary);
    padding: 18px 22px; display: flex; align-items: center;
    gap: 16px; margin-bottom: 24px;
  }
  .cta-annonce-icon { font-size: 24px; flex-shrink: 0; }
  .cta-annonce-body { flex: 1; }
  .cta-annonce-body strong { display: block; font-size: 14px; font-weight: 800; color: var(--text); margin-bottom: 2px; }
  .cta-annonce-body span { font-size: 13px; color: var(--text2); font-weight: 500; }

  /* ── Portée badge ── */
  .ann-scope { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; font-weight: 800; padding: 2px 8px; margin-right: 6px; text-transform: uppercase; letter-spacing: 1px; }
  .ann-scope.general { background: rgba(95,99,98,.1); color: var(--text2); }
  .ann-scope.prog    { background: rgba(1,45,29,.1); color: var(--primary); }
  .ann-scope.rep     { background: rgba(50,130,180,.1); color: #3282b4; }

  /* ── Annonce dans fiches ── */
  .fiche-annonces { margin-top: 14px; }
  .fiche-ann { background: var(--bg3); padding: 10px 14px; margin-bottom: 6px; font-size: 13px; border-left: 3px solid var(--primary); }
  .fiche-ann.warning { border-left-color: #dc8c14; }
  .fiche-ann.success { border-left-color: var(--success); }
  .fiche-ann.urgent  { border-left-color: var(--danger-col); }
  .fiche-ann.info    { border-left-color: #6aa0dc; }
  .fiche-ann-title   { font-weight: 800; color: var(--text); margin-bottom: 3px; }
  .fiche-ann-text    { color: var(--text2); line-height: 1.5; font-weight: 500; }
  .fiche-ann-meta    { font-size: 11px; color: var(--text2); margin-top: 4px; opacity: .7; font-weight: 600; }

  /* ── Sélecteur portée ── */
  .scope-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 6px; }
  .scope-opt {
    flex: 1; min-width: 120px; background: var(--bg3);
    border: 1px solid var(--border); padding: 10px 12px;
    cursor: pointer; transition: all .2s; text-align: center;
  }
  .scope-opt:hover { border-color: var(--primary); }
  .scope-opt.selected { border-color: var(--primary); background: rgba(1,45,29,.08); }
  .scope-opt .scope-emoji { font-size: 20px; display: block; margin-bottom: 4px; }
  .scope-opt .scope-label { font-size: 11px; color: var(--text2); font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }

  /* ── Role badges ── */
  .badge-président              { background: rgba(1,45,29,.1); color: var(--primary); }
  .badge-vice-président         { background: rgba(1,45,29,.08); color: var(--primary); }
  .badge-conseiller             { background: rgba(30,110,58,.1); color: var(--success); }
  .badge-conseiller-syndical    { background: rgba(30,110,58,.1); color: var(--success); }
  .badge-adhérent               { background: rgba(95,99,98,.1); color: var(--text2); }
  .badge-membre-bureau          { background: rgba(1,45,29,.08); color: var(--primary); }
  .badge-secrétaire             { background: rgba(50,80,180,.1); color: #3250b4; }
  .badge-gestionnaire           { background: rgba(130,90,20,.1); color: #825a14; }
  .badge-conseiller-forestier   { background: rgba(30,110,58,.1); color: var(--success); }
  .badge-gestionnaire-forestier { background: rgba(130,90,20,.1); color: #825a14; }

  /* ── Statuts annonce ── */
  .badge-publie    { background: rgba(30,110,58,.1);  color: var(--success); }
  .badge-brouillon { background: rgba(95,99,98,.1);   color: var(--text2); }
  .badge-archive   { background: rgba(95,99,98,.12);  color: var(--text2); }
  .badge-expire    { background: rgba(184,50,50,.1);  color: var(--danger-col); }
  .badge-pending   { background: rgba(180,120,0,.12); color: #8a6000; }
  .badge-sondage   { background: rgba(50,80,180,.1);  color: #3250b4; }

  /* ── Filtres ── */
  .filter-bar { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; align-items: center; }
  .filter-bar select, .filter-bar input { flex: 1; min-width: 140px; }
  .filter-tag {
    padding: 6px 16px; font-size: 11px; cursor: pointer; font-weight: 700;
    border: 1px solid var(--border); background: var(--bg3);
    color: var(--text2); text-transform: uppercase; letter-spacing: 1px; transition: all .2s;
  }
  .filter-tag.active { border-color: var(--primary); color: var(--primary); background: rgba(1,45,29,.08); }

  /* ── Annonce cards (section annonces) ── */
  .ann-card {
    background: var(--bg2); border: 1px solid var(--border);
    padding: 18px 20px; margin-bottom: 10px;
  }
  .ann-card.brouillon { border-style: dashed; opacity: .8; }
  .ann-card.archive   { opacity: .5; }
  .ann-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 8px; }
  .ann-card-title { font-family: 'Manrope', sans-serif; font-weight: 800; font-size: 15px; color: var(--text); }
  .ann-card-badges { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; flex-shrink: 0; }
  .ann-card-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
  .ann-expiry { font-size: 12px; color: var(--text2); margin-top: 5px; font-weight: 600; }
  .ann-expiry.near { color: #b87800; }
  .ann-expiry.past { color: var(--danger-col); }

  /* ── Sondage ── */
  .annonce-card.sondage { background: rgba(50,80,180,.05); border: 1px solid rgba(50,80,180,.18); border-left: 3px solid #3250b4; }
  .sondage-opt {
    display: flex; align-items: center; gap: 10px; padding: 10px 14px;
    background: var(--bg3); border: 1px solid var(--border);
    margin-bottom: 6px; cursor: pointer; transition: all .2s;
  }
  .sondage-opt:hover { border-color: rgba(50,80,180,.4); }
  .sondage-opt.selected { border-color: #3250b4; background: rgba(50,80,180,.08); }
  .sondage-opt input[type=checkbox] { accent-color: #3250b4; width:16px; height:16px; cursor:pointer; flex-shrink:0; }
  .sondage-opt-label { flex: 1; font-size: 14px; color: var(--text); font-weight: 500; }
  .sondage-bar-wrap { margin-top: 10px; }
  .sondage-bar-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; font-size: 13px; }
  .sondage-bar-label { width: 160px; flex-shrink: 0; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; }
  .sondage-bar-track { flex: 1; height: 6px; background: var(--bg3); overflow: hidden; }
  .sondage-bar-fill  { height: 100%; background: var(--primary); transition: width .4s; }
  .sondage-bar-count { width: 40px; text-align: right; color: var(--text2); flex-shrink: 0; font-weight: 700; }
  .sondage-detail-wrap { margin-top: 6px; }
  .sondage-detail-names { font-size: 12px; color: var(--text2); margin-left: 4px; }
  .sondage-submit { margin-top: 12px; display: flex; gap: 8px; align-items: center; }
  .sondage-submitted-msg { font-size: 13px; color: #3250b4; font-weight: 700; }

  .sondage-options-wrap { display: none; }
  .sondage-options-wrap.visible { display: block; }
  .opt-item { display: flex; align-items: center; gap: 8px; background: var(--bg3); padding: 8px 12px; margin-bottom: 4px; }
  .opt-item input[type=text] { flex: 1; background: transparent; border: none; color: var(--text); font-size: 14px; padding: 0; font-family: 'Manrope', sans-serif; font-weight: 500; }
  .opt-item input[type=text]:focus { outline: none; }
  .opt-item .rm-opt { background: none; border: none; color: var(--text2); cursor: pointer; font-size: 18px; padding: 0; transition: color .2s; }
  .opt-item .rm-opt:hover { color: var(--danger-col); }

  /* ── Suivi compris ── */
  .compris-list { margin-top: 10px; }
  .compris-row  { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: 13px; font-weight: 500; }
  .compris-row:last-child { border-bottom: none; }
  .compris-dot  { width: 8px; height: 8px; flex-shrink: 0; }
  .dot-compris  { background: var(--success); }
  .dot-attente  { background: var(--text2); }
  .compris-section { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }

  /* ── Impersonation banner ── */
  #impersonation-banner { display:none; position:fixed; top:0; left:0; right:0; z-index:300; background:#8a3a00; padding:9px 24px; align-items:center; justify-content:space-between; gap:12px; }
  #impersonation-banner.active { display:flex; }
  .imp-text { font-size:13px; color:#fff; font-weight:700; }
  .imp-text strong { font-weight:800; }
  .btn-exit-imp { background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.4); color:#fff; padding:5px 14px; cursor:pointer; font-size:11px; font-family:'Manrope',sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:1px; transition:all .2s; white-space:nowrap; }
  .btn-exit-imp:hover { background:rgba(255,255,255,.35); }
  body.impersonating { padding-top:38px; }

  /* ── Super-admin ── */
  #super-admin-screen { display:none; position:fixed; inset:0; background:var(--bg); z-index:200; overflow-y:auto; flex-direction:column; }
  #super-admin-screen.open { display:flex; }
  .sa-header { background:var(--primary); border-bottom:none; padding:0 32px; display:flex; align-items:center; justify-content:space-between; height:64px; position:sticky; top:0; z-index:10; }
  .sa-header-title { font-family:'Manrope',sans-serif; font-size:15px; font-weight:800; color:#fff; text-transform:uppercase; letter-spacing:-0.3px; }
  .sa-header-title span { color:rgba(255,255,255,.5); font-size:10px; font-family:'Manrope',sans-serif; display:inline; letter-spacing:2px; text-transform:uppercase; margin-left:8px; }
  .sa-content { flex:1; padding:32px; max-width:1100px; width:100%; margin:0 auto; }
  .sa-user-card { background:var(--bg2); border:1px solid var(--border); padding:20px 24px; margin-bottom:10px; }
  .sa-user-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
  .sa-user-name { font-family:'Manrope',sans-serif; font-weight:800; font-size:15px; color:var(--text); }
  .sa-user-email { font-size:12px; color:var(--text2); margin-top:2px; font-weight:500; }
  .sa-fru-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; align-items:center; }
  .sa-fru-tag { display:flex; align-items:center; gap:6px; background:rgba(1,45,29,.08); border:1px solid rgba(1,45,29,.2); padding:4px 12px; font-size:11px; font-weight:700; color:var(--primary); }
  .sa-fru-tag button { background:none; border:none; color:var(--text2); cursor:pointer; font-size:15px; line-height:1; padding:0 1px; transition:color .2s; }
  .sa-fru-tag button:hover { color:var(--danger-col); }
  .sa-add-fru-row { display:flex; gap:8px; flex-wrap:wrap; }
  .sa-add-fru-row select { flex:1; min-width:160px; padding:7px 10px; font-size:13px; }
  .sa-tabs { display:flex; gap:0; border-bottom:2px solid var(--border); margin-bottom:28px; }
  .sa-tab { padding:12px 24px; font-family:'Manrope',sans-serif; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:1px; color:var(--text2); cursor:pointer; border-bottom:3px solid transparent; background:none; border-top:none; border-left:none; border-right:none; transition:all .2s; margin-bottom:-2px; }
  .sa-tab:hover { color:var(--text); }
  .sa-tab.active { color:var(--primary); border-bottom-color:var(--primary); }
  .sa-tab-actions { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:24px; justify-content:flex-end; }
  .sa-fru-card { background:var(--bg2); border:1px solid var(--border); padding:20px 24px; margin-bottom:10px; }
  .sa-fru-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; }
  .sa-fru-card-name { font-family:'Manrope',sans-serif; font-weight:800; font-size:16px; color:var(--text); }
  .sa-fru-card-meta { font-size:12px; color:var(--text2); margin-top:3px; font-weight:500; }
  .sa-fru-card-desc { font-size:13px; color:var(--text2); margin-top:10px; line-height:1.6; font-style:italic; }
  .sa-fru-card-actions { display:flex; gap:6px; flex-wrap:wrap; flex-shrink:0; }

  /* ── Fru picker ── */
  #fru-picker-screen { display:none; position:fixed; inset:0; background:var(--primary); z-index:200; align-items:center; justify-content:center; flex-direction:column; padding:24px; }
  #fru-picker-screen.open { display:flex; }
  .fru-picker-box { background:#fff; border:none; padding:48px 40px; width:100%; max-width:480px; text-align:center; }
  .fru-picker-title { font-family:'Manrope',sans-serif; font-size:20px; font-weight:800; color:var(--primary); margin-bottom:6px; text-transform:uppercase; letter-spacing:-0.3px; }
  .fru-picker-sub { color:var(--text2); font-size:13px; margin-bottom:32px; font-weight:500; }
  .fru-card { background:var(--bg3); border:1px solid var(--border); padding:18px 22px; margin-bottom:8px; cursor:pointer; transition:all .2s; text-align:left; display:flex; align-items:center; gap:14px; }
  .fru-card:hover { border-color:var(--primary); background:rgba(1,45,29,.06); }
  .fru-card-body { flex:1; }
  .fru-card-name { font-family:'Manrope',sans-serif; font-weight:800; font-size:15px; color:var(--text); margin-bottom:3px; }
  .fru-card-role { font-size:11px; color:var(--primary); font-weight:700; text-transform:uppercase; letter-spacing:1px; }

  /* ── Fru bar ── */
  #fru-bar { display:none; background:var(--bg3); border-bottom:1px solid var(--border); padding:8px 32px; align-items:center; justify-content:space-between; }
  #fru-bar.visible { display:flex; }
  .fru-bar-name { font-family:'Manrope',sans-serif; font-weight:800; font-size:14px; color:var(--primary); margin-left:8px; }
  .fru-bar-label { font-size:10px; color:var(--text2); text-transform:uppercase; letter-spacing:2px; font-weight:700; }
  .btn-switch-fru { background:none; border:1px solid var(--border-strong); color:var(--text2); padding:5px 14px; cursor:pointer; font-size:11px; font-family:'Manrope',sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:1px; transition:all .2s; }
  .btn-switch-fru:hover { border-color:var(--primary); color:var(--primary); }

  /* ── Administration ── */
  .admin-block { background:var(--bg2); border:1px solid var(--border); padding:22px 24px; margin-bottom:20px; }
  .admin-block-title { font-family:'Manrope',sans-serif; font-weight:800; font-size:14px; color:var(--text); margin-bottom:16px; text-transform:uppercase; letter-spacing:0.5px; }
  .member-row { display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--border); flex-wrap:wrap; }
  .member-row:last-child { border-bottom:none; }
  .member-row-info { flex:1; }
  .member-row-name { font-size:14px; font-weight:700; color:var(--text); }
  .member-row-meta { font-size:12px; color:var(--text2); margin-top:2px; font-weight:500; }
  .member-row-actions { display:flex; gap:6px; flex-wrap:wrap; flex-shrink:0; }
  .role-select-inline { background:var(--bg3); border:1px solid var(--border); color:var(--text); padding:5px 10px; font-size:12px; font-family:'Manrope',sans-serif; font-weight:600; }
  .role-select-inline:focus { outline:none; border-color:var(--primary); }
  .uid-hint { font-size:12px; color:var(--text2); line-height:1.6; background:var(--bg3); padding:10px 14px; font-weight:500; }
  .version-badge { font-family:'Manrope',sans-serif; font-size:9px; font-weight:700; color:rgba(255,255,255,.5); padding:2px 0 2px 6px; vertical-align:middle; letter-spacing:.8px; }
  .app-beta-badge { font-family:'Manrope',sans-serif; font-size:9px; font-weight:800; color:var(--accent); background:rgba(201,168,76,.18); padding:2px 7px; margin-left:6px; margin-right:0; vertical-align:middle; letter-spacing:1.5px; }
  .whats-new-btn { font-family:'Manrope',sans-serif; font-size:9px; font-weight:700; color:#fff; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.4); padding:2px 10px; margin-left:6px; margin-right:10px; vertical-align:middle; letter-spacing:1px; cursor:pointer; text-transform:uppercase; transition:all .2s; }
  .whats-new-btn:hover { background:rgba(255,255,255,.28); border-color:rgba(255,255,255,.7); }
  /* ── Commissions — lignes réunions ── */
  .prog-rep-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .prog-rep-badge { font-size:10px; font-weight:700; letter-spacing:.5px; padding:2px 8px; background:rgba(1,45,29,.1); color:var(--text2); flex-shrink:0; }
  .prog-rep-badge-avenir { background:rgba(201,168,76,.15); color:var(--accent); }
  .prog-rep-date { font-size:12px; font-weight:700; color:var(--text); flex-shrink:0; min-width:80px; }
  .prog-rep-objet { font-size:12px; color:var(--text2); flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

  /* ── Dashboard — Cartes réunions ── */
  .db-rep-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-bottom:24px; border:1px solid var(--border); }
  .db-rep-card { padding:20px 22px; border-right:1px solid var(--border); cursor:pointer; transition:background .15s; display:flex; flex-direction:column; gap:6px; min-height:120px; }
  .db-rep-card:last-child { border-right:none; }
  .db-rep-card:hover { background:var(--bg2); }
  .db-rep-card--empty { cursor:default; opacity:.6; }
  .db-rep-card--empty:hover { background:transparent; }
  .db-rep-card-label { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:1px; color:var(--primary); margin-bottom:4px; }
  .db-rep-card-date { font-size:16px; font-weight:800; color:var(--text); line-height:1.2; }
  .db-rep-card-lieu { font-size:12px; color:var(--text2); font-weight:500; }
  .db-rep-card-prog { font-size:11px; color:var(--primary); font-weight:700; background:rgba(1,45,29,.07); padding:2px 8px; display:inline-block; margin-top:2px; }
  .db-rep-card-empty { font-size:13px; color:var(--text2); font-style:italic; margin-top:8px; }
  .db-rep-card-no-cr { font-size:11px; color:var(--text2); font-style:italic; margin-top:4px; opacity:.7; }
  .db-rep-card-cr { margin-top:8px; border-top:1px solid var(--border); padding-top:10px; }
  .db-rep-card-cr-title { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:var(--text2); margin-bottom:5px; }
  .db-rep-card-cr-text { font-size:12px; color:var(--text); line-height:1.6; max-height:80px; overflow:hidden; position:relative; }
  .db-rep-card-cr-text::after { content:''; position:absolute; bottom:0; left:0; right:0; height:24px; background:linear-gradient(transparent, var(--bg)); }
  @media(max-width:700px) {
    .db-rep-grid { grid-template-columns:1fr; }
    .db-rep-card { border-right:none; border-bottom:1px solid var(--border); }
    .db-rep-card:last-child { border-bottom:none; }
  }


  /* ══════════════════════════════════════════
     PAGE PUBLIQUE — Design "Almanach forestier"
     ══════════════════════════════════════════ */

  /* Landing page reuses --pub-primary for hover states */
  #landing-screen { --pub-primary: #012d1d; --pub-text: #f5f0e8; }

  #public-screen {
    --alm-paper:#efe6cf;
    --alm-paper-deep:#e6dab9;
    --alm-paper-warm:#f5ecd6;
    --alm-ink:#15241c;
    --alm-ink-soft:rgba(21,36,28,.72);
    --alm-ink-faint:rgba(21,36,28,.45);
    --alm-emerald:#1f3b2c;
    --alm-emerald-deep:#142a1f;
    --alm-moss:#3b5a3e;
    --alm-rule:rgba(21,36,28,.18);
    --alm-rule-strong:rgba(21,36,28,.42);
    --alm-display:'Playfair Display',Georgia,serif;
    --alm-body:'EB Garamond',Georgia,serif;
    --alm-mono:'JetBrains Mono',ui-monospace,monospace;
    background-color:var(--alm-paper);
    background-image:
      radial-gradient(1200px 800px at 10% -10%, rgba(159,127,68,.08), transparent 60%),
      radial-gradient(1000px 700px at 90% 110%, rgba(31,59,44,.06), transparent 60%),
      url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='5'/><feColorMatrix values='0 0 0 0 0.08 0 0 0 0 0.06 0 0 0 0 0.04 0 0 0 0.045 0'/></filter><rect width='240' height='240' filter='url(%23n)'/></svg>");
    color:var(--alm-ink);
    font-family:var(--alm-body);
    font-size:18px;
    line-height:1.55;
    overflow-x:clip;
  }
  /* Reset scoped — :where() annule toute spécificité → les classes alm-* (0,1,0) l'emportent */
  #public-screen * { box-sizing:border-box; }
  :where(#public-screen) :where(*) { margin:0; padding:0; }
  #public-screen img{max-width:100%;display:block}
  #public-screen a{color:var(--alm-emerald);text-decoration:none;border-bottom:1px solid currentColor}
  #public-screen a:hover{color:var(--alm-ink)}
  .alm-photo-warm{filter:sepia(.16) saturate(.85) contrast(.97)}
  .alm-photo-deep{filter:sepia(.22) saturate(.78) contrast(.96) brightness(.92)}

  /* ── TOOLTIPS ── */
  .alm-term{position:relative;border-bottom:1px dotted var(--alm-emerald);cursor:help;color:inherit;font-style:inherit}
  .alm-term::after{content:" ❦";font-size:.7em;color:var(--alm-emerald);opacity:.55;margin-left:1px}
  .alm-tip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(6px);width:280px;background:var(--alm-emerald-deep);color:#f4ead4;border:1px solid rgba(244,234,212,.18);font-family:var(--alm-display);font-style:italic;font-size:14.5px;font-weight:400;line-height:1.45;padding:14px 16px;opacity:0;visibility:hidden;transition:opacity .22s,transform .22s;pointer-events:none;z-index:50;text-align:left}
  .alm-tip::before{content:"❦";display:block;font-size:14px;color:rgba(244,234,212,.6);margin-bottom:6px;letter-spacing:6px}
  .alm-tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:7px solid transparent;border-top-color:var(--alm-emerald-deep)}
  .alm-term:hover .alm-tip,.alm-term:focus .alm-tip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
  .alm-dark-term{border-bottom-color:rgba(244,234,212,.6)}
  .alm-dark-term::after{color:rgba(244,234,212,.7)}
  .alm-dark-term .alm-tip{background:#f4ead4;color:var(--alm-emerald-deep);border-color:var(--alm-rule-strong)}
  .alm-dark-term .alm-tip::after{border-top-color:#f4ead4}

  /* ── NAV ── */
  .alm-nav{position:sticky;top:0;z-index:200;background:rgba(239,230,207,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--alm-rule);padding:14px 48px;display:flex;align-items:center;justify-content:space-between;gap:24px}
  .alm-nav-logo{display:flex;align-items:center;gap:14px;font-family:var(--alm-display);font-style:italic;font-size:18px;color:var(--alm-ink);border:none;text-decoration:none}
  .alm-nav-mark{width:34px;height:34px;border:1px solid var(--alm-ink);display:flex;align-items:center;justify-content:center;font-family:var(--alm-display);font-style:italic;font-size:18px;flex-shrink:0}
  .alm-nav-meta{font-family:var(--alm-mono);font-size:9.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--alm-ink-faint);display:block;margin-top:2px}
  .alm-nav-links{display:flex;gap:30px;font-family:var(--alm-mono);font-size:11px;letter-spacing:1.6px;text-transform:uppercase}
  .alm-nav-links a,.pub-topnav-link{color:var(--alm-ink-soft);border:none;cursor:pointer;text-decoration:none;font-family:var(--alm-mono);font-size:11px;letter-spacing:1.6px;text-transform:uppercase;transition:color .2s}
  .alm-nav-links a:hover,.pub-topnav-link:hover{color:var(--alm-emerald)}
  .pub-topnav-link.active{color:var(--alm-emerald);font-weight:700;border-bottom:1px solid var(--alm-emerald)}
  .alm-nav-right{display:flex;align-items:center;gap:12px}
  .alm-nav-cta{font-family:var(--alm-mono);font-size:11px;letter-spacing:1.6px;text-transform:uppercase;padding:10px 18px;background:var(--alm-emerald);color:var(--alm-paper);border:none;cursor:pointer}
  .alm-nav-cta:hover{background:var(--alm-emerald-deep)}

  /* hamburger (réutilisé) */
  .pub-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:6px;background:none;border:none;cursor:pointer;border-radius:6px}
  .pub-hamburger span{display:block;height:2px;width:100%;background:var(--alm-emerald);border-radius:2px;transition:transform .25s,opacity .25s}
  .pub-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .pub-hamburger.open span:nth-child(2){opacity:0}
  .pub-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  /* mobile menu */
  .pub-mobile-menu{display:none;flex-direction:column;position:fixed;top:60px;left:0;right:0;z-index:199;background:var(--alm-paper);border-bottom:1px solid var(--alm-rule);box-shadow:0 8px 24px rgba(0,0,0,.08);padding:8px 0 16px}
  .pub-mobile-menu.open{display:flex}
  .pub-mobile-link{padding:14px 24px;font-family:var(--alm-mono);font-weight:500;font-size:13px;letter-spacing:1.4px;text-transform:uppercase;color:var(--alm-ink);text-decoration:none;border-bottom:1px solid var(--alm-rule);border-left:none;transition:background .15s,color .15s}
  .pub-mobile-link:last-child{border-bottom:none}
  .pub-mobile-link:hover,.pub-mobile-link.active{background:rgba(31,59,44,.06);color:var(--alm-emerald)}

  /* ── HERO ── */
  .alm-hero{position:relative;height:88vh;min-height:640px;overflow:hidden;border-bottom:1px solid var(--alm-rule)}
  .alm-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .alm-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,42,31,.18) 0%,rgba(20,42,31,.45) 60%,rgba(20,42,31,.78) 100%)}
  .alm-hero-content{position:absolute;inset:0;z-index:2;padding:72px 56px;display:flex;flex-direction:column;justify-content:space-between;color:#f4ead4}
  .alm-hero-top{display:flex;justify-content:space-between;align-items:flex-start;font-family:var(--alm-mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;opacity:.85}
  .alm-hero-title{max-width:980px}
  .alm-hero-kicker{font-family:var(--alm-display);font-style:italic;font-size:18px;letter-spacing:.5px;margin-bottom:18px;color:#f4ead4}
  .alm-hero-h1{font-family:var(--alm-display);font-weight:500;font-size:96px;line-height:1.02;letter-spacing:-1.5px;color:#fff;margin-bottom:24px;font-style:italic}
  .alm-hero-h1 em{font-style:normal;font-weight:600;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:2px}
  .alm-hero-sub{font-family:var(--alm-display);font-size:21px;line-height:1.5;max-width:600px;color:rgba(255,255,255,.92);margin-bottom:28px}
  .alm-hero-actions{display:flex;gap:14px;flex-wrap:wrap}
  .alm-btn{display:inline-flex;align-items:center;gap:10px;padding:13px 22px;font-family:var(--alm-mono);font-size:11.5px;letter-spacing:1.6px;text-transform:uppercase;border:1px solid;cursor:pointer;text-decoration:none;border-bottom-width:1px}
  .alm-btn-solid{background:var(--alm-paper);color:var(--alm-emerald);border-color:var(--alm-paper)}
  .alm-btn-solid:hover{background:#fff}
  .alm-btn-ghost{background:transparent;color:var(--alm-paper);border-color:rgba(255,255,255,.55)}
  .alm-btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}

  /* ── SECTIONS ── */
  .alm-s{padding:120px 56px;position:relative;border-bottom:1px solid var(--alm-rule)}
  .alm-s-alt{background:var(--alm-paper-deep)}
  .alm-s-dark{background:#0e1f17;color:var(--alm-paper);border-color:rgba(255,255,255,.08)}
  .alm-s-dark .alm-kicker{color:rgba(244,234,212,.7)}
  .alm-s-dark .alm-h2{color:#fff}
  .alm-s-dark .alm-lead{color:rgba(244,234,212,.8)}
  .alm-s-num{position:absolute;top:24px;right:48px;font-family:var(--alm-mono);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--alm-ink-faint);z-index:2}
  .alm-s-dark .alm-s-num{color:rgba(244,234,212,.4)}
  .alm-inner{max-width:1280px;margin:0 auto;position:relative;z-index:2}
  .alm-kicker{font-family:var(--alm-mono);font-size:11px;letter-spacing:2.4px;text-transform:uppercase;color:var(--alm-emerald);font-weight:500;margin-bottom:14px;display:flex;align-items:center;gap:14px}
  .alm-kicker::before{content:"";width:24px;height:1px;background:currentColor}
  .alm-kicker-center{justify-content:center}
  .alm-kicker-center::after{content:"";width:24px;height:1px;background:currentColor}
  .alm-head-center{text-align:center;max-width:780px;margin:0 auto 48px}
  .alm-head-center .alm-kicker{justify-content:center}
  .alm-head-center .alm-kicker::after{content:"";width:24px;height:1px;background:currentColor}
  .alm-h2{font-family:var(--alm-display);font-weight:500;font-size:60px;line-height:1.05;letter-spacing:-1px;color:var(--alm-ink)}
  .alm-italic{font-style:italic}
  .alm-lead{font-family:var(--alm-display);font-size:20px;line-height:1.55;color:var(--alm-ink-soft);max-width:680px;margin-top:18px}
  .alm-head-center .alm-lead{margin-left:auto;margin-right:auto}
  .alm-fleuron{font-family:var(--alm-display);font-size:24px;color:var(--alm-emerald);text-align:center;margin:18px 0;letter-spacing:8px}

  /* ── BANDEAU FULL-BLEED ── */
  .alm-bleed{position:relative;height:480px;overflow:hidden;border-top:1px solid var(--alm-rule);border-bottom:1px solid var(--alm-rule)}
  .alm-bleed-tall{height:620px}
  .alm-bleed-short{height:340px}
  .alm-bleed img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .alm-bleed::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,42,31,.15),rgba(20,42,31,.45))}
  .alm-bleed-cap{position:absolute;left:48px;bottom:32px;color:#f4ead4;font-family:var(--alm-display);font-style:italic;font-size:21px;z-index:2;max-width:560px;text-shadow:0 2px 12px rgba(0,0,0,.4)}
  .alm-bleed-cap b{display:block;font-family:var(--alm-mono);font-style:normal;font-weight:500;font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:rgba(244,234,212,.75);margin-bottom:8px}
  .alm-bleed-pull{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;color:#fff;font-family:var(--alm-display);font-style:italic;font-size:54px;line-height:1.15;max-width:1000px;padding:0 48px;text-shadow:0 4px 24px rgba(0,0,0,.5);z-index:2}
  .alm-bleed-pull small{display:block;font-family:var(--alm-mono);font-style:normal;font-size:11px;letter-spacing:2.4px;text-transform:uppercase;font-weight:500;margin-top:24px;color:rgba(244,234,212,.85)}

  /* ── TABULA ── */
  .alm-tabula{border-top:4px double var(--alm-emerald);border-bottom:4px double var(--alm-emerald);padding:48px 0 40px;display:grid;grid-template-columns:repeat(3,1fr)}
  .alm-tabula > div{padding:0 36px;text-align:center;position:relative}
  .alm-tabula > div + div{border-left:1px solid var(--alm-rule-strong)}
  .alm-tabula-num{font-family:var(--alm-display);font-weight:500;font-size:104px;line-height:1;color:var(--alm-emerald);letter-spacing:-2px;margin-bottom:14px}
  .alm-tabula-label{font-family:var(--alm-display);font-style:italic;font-size:18px;color:var(--alm-ink);letter-spacing:.3px}
  .alm-tabula-sub{font-family:var(--alm-mono);font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--alm-ink-faint);margin-top:8px}
  .alm-tabula-cap{text-align:center;font-family:var(--alm-display);font-style:italic;font-size:17px;color:var(--alm-emerald);margin-bottom:30px}

  /* ── MOSAÏQUE ── */
  .alm-mosaic{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:240px 240px 240px;gap:18px}
  .alm-m{position:relative;overflow:hidden;border:1px solid var(--alm-rule-strong)}
  .alm-m img{width:100%;height:100%;object-fit:cover}
  .alm-m1{grid-column:1/4;grid-row:1/3}
  .alm-m2{grid-column:4/7;grid-row:1/2}
  .alm-m3{grid-column:4/6;grid-row:2/3}
  .alm-m4{grid-column:6/7;grid-row:2/3}
  .alm-m5{grid-column:1/3;grid-row:3/4}
  .alm-m6{grid-column:3/5;grid-row:3/4}
  .alm-m7{grid-column:5/7;grid-row:3/4}
  .alm-m::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(20,42,31,.55));pointer-events:none}
  .alm-m-cap{position:absolute;left:14px;bottom:12px;color:#f4ead4;font-family:var(--alm-display);font-style:italic;font-size:14px;z-index:2}
  .alm-m-cap b{display:block;font-family:var(--alm-mono);font-style:normal;font-size:9.5px;letter-spacing:1.6px;text-transform:uppercase;color:rgba(244,234,212,.7);margin-bottom:3px;font-weight:500}

  /* ── PRÉFACE ── */
  .alm-preface{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start}
  .alm-preface-text{font-size:18.5px;line-height:1.7;color:var(--alm-ink)}
  .alm-preface-text p{margin-bottom:16px}
  .alm-dropcap{float:left;font-family:var(--alm-display);font-size:108px;line-height:.85;color:var(--alm-emerald);padding-right:14px;padding-top:6px;font-weight:500}
  .alm-preface-pull{margin-top:32px;border-left:3px double var(--alm-emerald);padding:6px 0 6px 22px;font-family:var(--alm-display);font-style:italic;font-size:22px;line-height:1.4;color:var(--alm-emerald-deep)}
  .alm-preface-photos{position:sticky;top:90px;display:flex;flex-direction:column;gap:18px}
  .alm-preface-photo{border:1px solid var(--alm-rule-strong);background:#fff;padding:10px}
  .alm-preface-photo img{height:240px;width:100%;object-fit:cover}

  /* ── CHRONIQUE ── */
  .alm-chron{border-top:1px solid var(--alm-rule-strong)}
  .alm-chron-row{display:grid;grid-template-columns:160px 200px 1fr;border-bottom:1px solid var(--alm-rule-strong)}
  .alm-chron-yr{padding:32px 24px;text-align:right;border-right:1px solid var(--alm-rule-strong)}
  .alm-chron-roman{font-family:var(--alm-display);font-style:italic;font-size:34px;color:var(--alm-emerald);font-weight:500}
  .alm-chron-img{overflow:hidden;background:var(--alm-paper-warm);border-right:1px solid var(--alm-rule-strong)}
  .alm-chron-img img{width:100%;height:100%;min-height:140px;object-fit:cover}
  .alm-chron-body{padding:32px 0 32px 36px}
  .alm-chron-title{font-family:var(--alm-display);font-size:22px;font-weight:600;color:var(--alm-ink);margin-bottom:8px;font-style:italic}
  .alm-chron-text{font-size:16.5px;line-height:1.6;color:var(--alm-ink-soft);max-width:620px}

  /* ── TRIPTYQUE ── */
  .alm-tript{display:grid;grid-template-columns:repeat(3,1fr)}
  .alm-tript-card{position:relative;border-top:4px double var(--alm-emerald);display:flex;flex-direction:column}
  .alm-tript-card + .alm-tript-card{border-left:1px solid var(--alm-rule-strong)}
  .alm-tript-photo{height:220px;overflow:hidden;border-bottom:1px solid var(--alm-rule-strong);position:relative}
  .alm-tript-photo img{width:100%;height:100%;object-fit:cover}
  .alm-tript-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(20,42,31,.4))}
  .alm-tript-body{padding:32px}
  .alm-tript-num{font-family:var(--alm-display);font-style:italic;font-size:46px;color:var(--alm-emerald);line-height:1;font-weight:500;margin-bottom:14px}
  .alm-tript-role{font-family:var(--alm-mono);font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:var(--alm-moss);margin-bottom:6px}
  .alm-tript-title{font-family:var(--alm-display);font-style:italic;font-size:22px;font-weight:600;margin-bottom:12px}
  .alm-tript-desc{font-size:15.5px;line-height:1.6;color:var(--alm-ink-soft)}

  /* ── MISSION ── */
  .alm-mission-section{position:relative;overflow:hidden}
  .alm-mission-bg{position:absolute;inset:0;z-index:0;opacity:.18}
  .alm-mission-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.7)}
  .alm-mission{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:36px;position:relative;z-index:2}
  .alm-mission-pill{padding:36px 26px;border-top:1px solid rgba(244,234,212,.18);border-bottom:1px solid rgba(244,234,212,.18);text-align:center;background:rgba(14,31,23,.5);backdrop-filter:blur(2px)}
  .alm-mission-pn{font-family:var(--alm-display);font-style:italic;font-size:46px;font-weight:500;margin:0 auto 22px;color:var(--alm-emerald);background:#f4ead4;width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center}
  .alm-mission-pname{font-family:var(--alm-display);font-style:italic;font-size:34px;font-weight:500;margin-bottom:14px;color:#fff}
  .alm-mission-pill p{font-size:16.5px;line-height:1.6;color:rgba(244,234,212,.85)}

  /* ── SERVICES ── */
  .alm-svc{margin-top:24px}
  .alm-svc-row{display:grid;grid-template-columns:90px 200px 1fr 1.1fr 60px;gap:36px;align-items:center;padding:28px 0;border-top:1px solid var(--alm-rule-strong);transition:background .25s}
  .alm-svc-row:last-of-type{border-bottom:1px solid var(--alm-rule-strong)}
  .alm-svc-row:hover{background:rgba(31,59,44,.04)}
  .alm-svc-num{font-family:var(--alm-display);font-style:italic;font-size:54px;color:var(--alm-emerald);font-weight:500}
  .alm-svc-thumb{height:140px;overflow:hidden;border:1px solid var(--alm-rule-strong);background:var(--alm-paper-warm)}
  .alm-svc-thumb img{width:100%;height:100%;object-fit:cover}
  .alm-svc-t{font-family:var(--alm-display);font-style:italic;font-weight:600;font-size:26px;color:var(--alm-ink);margin-bottom:6px}
  .alm-svc-l{font-family:var(--alm-mono);font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--alm-moss)}
  .alm-svc-desc{font-size:16.5px;line-height:1.55;color:var(--alm-ink-soft)}
  .alm-svc-arrow{justify-self:end;font-family:var(--alm-display);font-size:32px;color:var(--alm-emerald);font-style:italic;opacity:.5;transition:opacity .25s,transform .25s}
  .alm-svc-row:hover .alm-svc-arrow{opacity:1;transform:translateX(6px)}

  /* ── FONCTIONNEMENT ── */
  .alm-fonc{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
  .alm-fonc-text{font-size:18px;line-height:1.7}
  .alm-fonc-text p{margin-bottom:16px}
  .alm-fonc-img{margin-top:24px;border:1px solid var(--alm-rule-strong);padding:10px;background:rgba(255,255,255,.4)}
  .alm-fonc-img img{width:100%;height:260px;object-fit:cover}
  .alm-fonc-highlights{display:flex;flex-direction:column;border-top:1px solid var(--alm-rule-strong)}
  .alm-fonc-h{display:flex;gap:24px;padding:26px 0;border-bottom:1px solid var(--alm-rule-strong);align-items:center}
  .alm-fonc-num{font-family:var(--alm-display);font-style:italic;font-size:48px;color:var(--alm-emerald);min-width:90px;line-height:1;font-weight:500}
  .alm-fonc-lbl{font-family:var(--alm-display);font-size:19px;font-weight:600;font-style:italic}
  .alm-fonc-sub{font-size:15px;color:var(--alm-ink-soft);margin-top:2px}
  .alm-fonc-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:24px;height:160px}
  .alm-fonc-strip > div{overflow:hidden}
  .alm-fonc-strip img{width:100%;height:100%;object-fit:cover}

  /* ── TERRITOIRE ── */
  .alm-terr{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;border:1px solid var(--alm-rule-strong);background:rgba(255,255,255,.4)}
  .alm-terr-half{padding:48px 40px;display:flex;flex-direction:column;justify-content:center}
  .alm-terr-img{position:relative;min-height:500px;overflow:hidden}
  .alm-terr-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .alm-terr-img::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 50%,rgba(20,42,31,.5))}
  .alm-terr-cap{position:absolute;left:24px;bottom:20px;color:#f4ead4;font-family:var(--alm-display);font-style:italic;font-size:16px;z-index:2}
  .alm-terr-cap b{display:block;font-family:var(--alm-mono);font-style:normal;font-size:9.5px;letter-spacing:1.6px;text-transform:uppercase;color:rgba(244,234,212,.75);margin-bottom:4px}
  .alm-terr-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:4px double var(--alm-emerald);border-bottom:4px double var(--alm-emerald);margin-top:24px}
  .alm-terr-stats > div{padding:24px 0;text-align:center}
  .alm-terr-stats > div + div{border-left:1px solid var(--alm-rule-strong)}
  .alm-terr-stat-num{font-family:var(--alm-display);font-size:48px;color:var(--alm-emerald);line-height:1;font-weight:500}
  .alm-terr-stat-lbl{font-family:var(--alm-mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--alm-ink-soft);margin-top:8px}
  .alm-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;margin-bottom:4px}
  .alm-chip{font-family:var(--alm-mono);font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;padding:5px 12px;border:1px solid var(--alm-rule-strong);color:var(--alm-ink-soft)}

  /* ── GOUVERNANCE ── */
  .alm-gouv-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
  .alm-gouv-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid var(--alm-rule-strong);background:rgba(255,255,255,.55);padding:14px 18px 10px;min-width:130px}
  .alm-gouv-card--vacant{opacity:.55}
  .alm-gouv-avatar{width:54px;height:54px;border-radius:50%;overflow:hidden;margin-bottom:8px;border:2px solid var(--alm-rule-strong);flex-shrink:0}
  .alm-gouv-avatar img{width:100%;height:100%;object-fit:cover;object-position:center top}
  .alm-gouv-avatar--init{display:flex;align-items:center;justify-content:center;background:var(--alm-paper);font-family:var(--alm-display);font-size:17px;font-weight:600;color:var(--alm-ink-soft)}
  .alm-gouv-avatar--vacant{display:flex;align-items:center;justify-content:center;background:transparent;border-style:dashed;font-size:22px;color:var(--alm-ink-soft)}
  .alm-gouv-name{font-family:var(--alm-display);font-style:italic;font-weight:600;font-size:15px}
  .alm-gouv-name--vacant{color:var(--alm-ink-soft)}
  .alm-gouv-role{font-family:var(--alm-mono);font-size:9px;letter-spacing:1.4px;text-transform:uppercase;color:var(--alm-emerald);margin-top:3px}
  .alm-gouv-group{margin-bottom:32px}
  .alm-gouv-group:last-child{margin-bottom:0}
  .alm-gouv-group-title{text-align:center;font-family:var(--alm-display);font-style:italic;font-size:20px;color:var(--alm-emerald);margin-bottom:18px;display:flex;align-items:center;gap:18px;justify-content:center}
  .alm-gouv-group-title::before,.alm-gouv-group-title::after{content:"";flex:0 0 60px;height:1px;background:var(--alm-rule-strong)}

  /* ── ACTUALITÉS ── */
  .alm-actu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
  .alm-actu{border-top:3px double var(--alm-emerald);padding-top:18px}
  .alm-actu-thumb{height:200px;overflow:hidden;border:1px solid var(--alm-rule);margin-bottom:16px;background:var(--alm-paper-warm)}
  .alm-actu-thumb img{width:100%;height:100%;object-fit:cover}
  .alm-actu-meta{font-family:var(--alm-mono);font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--alm-emerald)}
  .alm-actu-title{font-family:var(--alm-display);font-style:italic;font-weight:600;font-size:20px;margin:8px 0 10px;line-height:1.25;color:var(--alm-ink)}
  .alm-actu-desc{font-size:15.5px;line-height:1.55;color:var(--alm-ink-soft)}
  .alm-actu-link{display:inline-block;margin-top:14px;font-family:var(--alm-mono);font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--alm-emerald);border:none}
  .alm-actu-type-tag{display:inline-block;font-family:var(--alm-mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;padding:2px 8px;border:1px solid var(--alm-rule-strong);color:var(--alm-moss);margin-left:8px}
  .alm-presse{margin-top:80px}
  .alm-presse-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:32px}
  .alm-presse-card{display:grid;grid-template-columns:140px 1fr;gap:20px;border-left:3px double var(--alm-emerald);padding-left:22px}
  .alm-presse-thumb{aspect-ratio:3/4;border:1px solid var(--alm-rule-strong);overflow:hidden;background:var(--alm-paper-warm)}
  .alm-presse-thumb img{width:100%;height:100%;object-fit:cover}
  .alm-presse-source{font-family:var(--alm-mono);font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--alm-moss);margin-bottom:6px}
  .alm-presse-source b{color:var(--alm-emerald);font-weight:600}
  .alm-presse-title{font-family:var(--alm-display);font-style:italic;font-size:20px;font-weight:600;line-height:1.3;margin-bottom:8px;color:var(--alm-ink)}
  .alm-presse-text{font-size:15px;line-height:1.55;color:var(--alm-ink-soft);margin-bottom:8px}

  /* ── SOUTIENS ── */
  .alm-sout-feat{background:rgba(255,255,255,.62);border:1px solid var(--alm-rule-strong);border-top:4px double var(--alm-emerald);padding:42px 48px;display:grid;grid-template-columns:180px 1fr auto;gap:42px;align-items:center;margin-top:24px;position:relative}
  .alm-sout-feat::before{content:"⌘ Partenaire de représentation";position:absolute;top:-11px;left:32px;background:var(--alm-paper-warm);padding:0 14px;font-family:var(--alm-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--alm-emerald)}
  .alm-sout-feat-logo{aspect-ratio:1/1;border:1px solid var(--alm-rule-strong);background:#fff;display:flex;align-items:center;justify-content:center;padding:18px;font-family:var(--alm-display);font-style:italic;font-weight:600;font-size:64px;color:var(--alm-emerald);letter-spacing:-2px;position:relative;flex-direction:column}
  .alm-sout-feat-logo small{position:absolute;bottom:14px;left:0;right:0;font-family:var(--alm-mono);font-style:normal;font-size:9px;letter-spacing:2.5px;text-align:center;color:var(--alm-moss);font-weight:400}
  .alm-sout-feat-name{font-family:var(--alm-display);font-style:italic;font-size:38px;font-weight:600;line-height:1.05;margin-bottom:8px;color:var(--alm-emerald-deep)}
  .alm-sout-feat-role{font-family:var(--alm-mono);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--alm-moss);margin-bottom:18px}
  .alm-sout-feat-desc{font-size:16px;line-height:1.6;color:var(--alm-ink-soft);max-width:54ch}
  .alm-sout-feat-side{display:flex;flex-direction:column;gap:14px;border-left:1px solid var(--alm-rule-strong);padding-left:32px;font-family:var(--alm-mono);font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--alm-moss);min-width:160px}
  .alm-sout-feat-side b{display:block;font-family:var(--alm-display);font-style:italic;font-size:18px;text-transform:none;letter-spacing:0;color:var(--alm-ink);font-weight:600;margin-top:2px}
  .alm-sout-group{margin-top:56px}
  .alm-sout-group-title{text-align:center;font-family:var(--alm-display);font-style:italic;font-size:22px;color:var(--alm-emerald);margin-bottom:28px;display:flex;align-items:center;gap:18px;justify-content:center}
  .alm-sout-group-title::before,.alm-sout-group-title::after{content:"";flex:0 0 80px;height:1px;background:var(--alm-rule-strong)}
  .alm-sout{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .alm-sout-card{background:rgba(255,255,255,.5);border:1px solid var(--alm-rule-strong);padding:26px;display:flex;flex-direction:column;gap:14px}
  .alm-sout-logo{height:90px;border:1px solid var(--alm-rule);background:#fff;display:flex;align-items:center;justify-content:center;padding:12px;overflow:hidden}
  .alm-sout-logo img{max-width:100%;max-height:100%;object-fit:contain}
  .alm-mono-mark{font-family:var(--alm-mono);font-style:normal;font-size:13px;letter-spacing:2px;font-weight:500;color:var(--alm-ink);text-align:center;line-height:1.5}
  .alm-sout-inst{font-family:var(--alm-display);font-style:italic;font-size:18px;font-weight:600;line-height:1.25;margin-bottom:2px}
  .alm-sout-yr{font-family:var(--alm-mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--alm-moss);margin-bottom:4px}
  .alm-sout-mtt{font-family:var(--alm-display);font-size:26px;color:var(--alm-emerald);font-weight:500;margin:4px 0 4px}
  .alm-sout-obj{font-size:14px;line-height:1.55;color:var(--alm-ink-soft)}

  /* ── AVANTAGES ── */
  .alm-av{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
  .alm-av-card{text-align:center;background:rgba(255,255,255,.4);border:1px solid var(--alm-rule-strong)}
  .alm-av-photo{height:180px;overflow:hidden;border-bottom:1px solid var(--alm-rule-strong)}
  .alm-av-photo img{width:100%;height:100%;object-fit:cover}
  .alm-av-body{padding:24px}
  .alm-av-num{font-family:var(--alm-display);font-style:italic;font-size:38px;color:var(--alm-emerald);font-weight:500;margin-bottom:14px}
  .alm-av-title{font-family:var(--alm-display);font-style:italic;font-weight:600;font-size:20px;margin-bottom:10px}
  .alm-av-desc{font-size:15px;line-height:1.55;color:var(--alm-ink-soft)}

  /* ── CONTACT ── */
  .alm-contact{display:grid;grid-template-columns:1fr 1fr;gap:64px}
  .alm-contact-rows{display:flex;flex-direction:column}
  .alm-contact-row{display:flex;gap:18px;padding:20px 0;border-bottom:1px solid var(--alm-rule-strong);align-items:flex-start}
  .alm-contact-row:first-child{border-top:1px solid var(--alm-rule-strong)}
  .alm-contact-lbl{font-family:var(--alm-mono);font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--alm-moss);margin-bottom:4px}
  .alm-contact-val{font-family:var(--alm-display);font-size:18px;font-weight:600;color:var(--alm-ink)}
  .alm-contact-val a{color:var(--alm-emerald);border-bottom:1px solid currentColor}
  .alm-contact-photo{margin-top:28px;border:1px solid var(--alm-rule-strong);padding:8px;background:rgba(255,255,255,.4)}
  .alm-contact-photo img{height:180px;width:100%;object-fit:cover}

  /* ── SUGGESTIONS (formulaire) ── */
  .alm-suggest{background:rgba(255,255,255,.6);border:1px solid var(--alm-rule-strong);padding:36px;position:relative}
  .alm-suggest::before{content:"❦";position:absolute;top:-14px;left:36px;background:var(--alm-paper-deep);padding:0 12px;font-family:var(--alm-display);color:var(--alm-emerald);font-size:22px}
  .alm-suggest h3{font-family:var(--alm-display);font-style:italic;font-size:26px;font-weight:600;color:var(--alm-emerald);margin-bottom:8px}
  .alm-suggest p{font-size:16px;line-height:1.55;color:var(--alm-ink-soft);margin-bottom:20px}
  .alm-suggest .alm-field{margin-bottom:14px}
  .alm-suggest .alm-field label{display:block;font-family:var(--alm-mono);font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--alm-moss);margin-bottom:6px}
  .alm-suggest textarea{width:100%;border:none;border-bottom:1px solid var(--alm-rule-strong);background:transparent;padding:8px 0;font-family:var(--alm-display);font-size:17px;color:var(--alm-ink);resize:vertical;min-height:100px;outline:none}
  .alm-suggest textarea:focus{border-color:var(--alm-emerald)}
  .alm-suggest-send{margin-top:14px;padding:13px 24px;background:var(--alm-emerald);color:var(--alm-paper);border:none;font-family:var(--alm-mono);font-size:11px;letter-spacing:1.6px;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;gap:8px}
  .alm-suggest-send:hover{background:var(--alm-emerald-deep)}
  .alm-suggest-send:disabled{opacity:.6;cursor:default}
  .alm-suggest-counter{font-family:var(--alm-mono);font-size:10px;color:var(--alm-ink-faint);margin-top:6px;text-align:right}
  .alm-suggest-ok{margin-top:14px;padding:12px 16px;background:#eaf5ee;color:#1d5c35;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px;display:none}
  .alm-suggest-err{margin-top:14px;padding:12px 16px;background:#fdecea;color:#b71c1c;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px;display:none}
  .alm-suggest-notice{font-size:14px;color:var(--alm-ink-faint);font-style:italic;padding:20px 0}

  /* ── CTA ── */
  .alm-cta-section{padding:160px 56px;color:var(--alm-paper);text-align:center;position:relative;overflow:hidden;border-bottom:1px solid var(--alm-rule)}
  .alm-cta-bg{position:absolute;inset:0;z-index:0}
  .alm-cta-bg img{width:100%;height:100%;object-fit:cover}
  .alm-cta-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,31,23,.7),rgba(14,31,23,.85))}
  .alm-cta-section .alm-inner{position:relative;z-index:2}
  .alm-cta-section::before{content:"";position:absolute;inset:32px;border:1px solid rgba(244,234,212,.18);pointer-events:none;z-index:1}
  .alm-cta-actions{display:flex;justify-content:center;gap:16px;margin-bottom:24px}
  .alm-price{display:inline-block;margin-top:12px;padding:14px 28px;border:1px solid rgba(244,234,212,.3);font-family:var(--alm-display);font-style:italic;font-size:18px;color:rgba(244,234,212,.95);background:rgba(14,31,23,.4)}

  /* ── FOOTER ── */
  .alm-footer{position:relative;background:var(--alm-ink);color:rgba(244,234,212,.8);padding:64px 56px 28px;overflow:hidden}
  .alm-footer::before{content:"";position:absolute;inset:0;background-image:url('photos/p17.jpg');background-size:cover;background-position:center;opacity:.12;z-index:0}
  .alm-foot{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;max-width:1280px;margin:0 auto;position:relative;z-index:2}
  .alm-foot-brand{font-family:var(--alm-display);font-style:italic;font-size:22px;color:#fff;margin-bottom:12px}
  .alm-foot-meta{font-size:14px;line-height:1.6;color:rgba(244,234,212,.6)}
  .alm-foot-h5{font-family:var(--alm-mono);font-size:10.5px;letter-spacing:1.8px;text-transform:uppercase;color:rgba(244,234,212,.45);margin-bottom:18px}
  .alm-foot-ul{list-style:none}
  .alm-foot-ul li{margin-bottom:10px;font-family:var(--alm-display);font-size:16px;color:rgba(244,234,212,.75)}
  .alm-foot-ul li a{border:none;color:inherit}
  .alm-foot-ul li a:hover{color:#fff}
  .alm-foot-bot{max-width:1280px;margin:48px auto 0;padding-top:24px;border-top:1px solid rgba(244,234,212,.12);display:flex;justify-content:space-between;font-family:var(--alm-mono);font-size:10.5px;letter-spacing:1.4px;color:rgba(244,234,212,.4);text-transform:uppercase;position:relative;z-index:2}
  .alm-foot-ml{max-width:1280px;margin:16px auto 0;position:relative;z-index:2}
  .alm-ml summary{font-family:var(--alm-mono);font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:rgba(244,234,212,.3);cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px}
  .alm-ml summary::after{content:"▸";font-size:9px;transition:transform .2s}
  .alm-ml[open] summary::after{transform:rotate(90deg)}
  .alm-ml summary:hover{color:rgba(244,234,212,.6)}
  .alm-ml-body{margin-top:14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px 32px;padding-top:14px;border-top:1px solid rgba(244,234,212,.08)}
  .alm-ml-body p{font-size:12px;line-height:1.55;color:rgba(244,234,212,.45);font-family:var(--alm-body)}
  .alm-ml-body strong{color:rgba(244,234,212,.65);font-weight:600}
  .alm-ml-body a{color:rgba(244,234,212,.55);border-bottom:1px solid rgba(244,234,212,.2)}
  .alm-ml-body a:hover{color:rgba(244,234,212,.9)}

  /* ── RESPONSIVE ── */
  @media(max-width:980px){
    .alm-nav{padding:14px 24px}
    .alm-nav-links{display:none}
    .pub-hamburger{display:flex}
    .alm-nav-cta{display:none}
    .alm-hero-content{padding:40px 24px}
    .alm-hero-h1{font-size:52px}
    .alm-hero-sub{font-size:18px}
    .alm-s{padding:72px 24px}
    .alm-s-num{display:none}
    .alm-preface,.alm-fonc,.alm-terr,.alm-contact{grid-template-columns:1fr;gap:36px}
    .alm-terr-img{min-height:280px}
    .alm-actu-grid,.alm-gouv,.alm-av,.alm-tript,.alm-tabula,.alm-terr-stats,.alm-mission,.alm-sout,.alm-presse-grid{grid-template-columns:1fr;gap:20px}
    .alm-sout-feat{grid-template-columns:1fr;padding:28px;gap:20px}
    .alm-sout-feat-side{border-left:none;border-top:1px solid var(--alm-rule-strong);padding-left:0;padding-top:16px}
    .alm-tript-card + .alm-tript-card{border-left:none;border-top:4px double var(--alm-emerald)}
    .alm-tabula > div + div{border-left:none;border-top:1px solid var(--alm-rule-strong)}
    .alm-mosaic{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(7,200px)}
    .alm-m1,.alm-m2,.alm-m3,.alm-m4,.alm-m5,.alm-m6,.alm-m7{grid-column:auto;grid-row:auto}
    .alm-h2{font-size:40px}
    .alm-cta-section h2{font-size:48px}
    .alm-bleed-pull{font-size:28px;padding:0 24px}
    .alm-bleed{height:320px}
    .alm-bleed-tall{height:400px}
    .alm-chron-row{grid-template-columns:100px 1fr}
    .alm-chron-img{display:none}
    .alm-svc-row{grid-template-columns:60px 1fr;gap:14px}
    .alm-svc-thumb,.alm-svc-desc,.alm-svc-arrow{display:none}
    .alm-foot{grid-template-columns:1fr 1fr;gap:32px}
    .alm-foot-bot{flex-direction:column;gap:8px}
    .alm-cta-section{padding:100px 24px}
    .alm-preface-photos{position:relative;top:auto}
  }
  @media(max-width:600px){
    .alm-hero{height:70vh;min-height:480px}
    .alm-hero-h1{font-size:38px}
    .alm-actu-grid{grid-template-columns:1fr}
    .alm-presse-grid{grid-template-columns:1fr}
    .alm-presse-card{grid-template-columns:1fr}
    .alm-presse-thumb{aspect-ratio:16/9}
    .alm-foot{grid-template-columns:1fr}
    .alm-gouv{grid-template-columns:repeat(2,1fr)}
    .alm-av{grid-template-columns:repeat(2,1fr)}
    .alm-dropcap{font-size:72px}
  }

  /* ── Landing Hero ── */
  .landing-hero-bg {
    background-image: url('https://images.unsplash.com/photo-1448375240586-882707db888b?w=1600&q=80');
  }

  /* ── Landing Fruitières grid ── */
  .landing-fru-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
    margin-top: 8px;
  }
  .landing-fru-card {
    background: #fff; padding: 40px 32px;
    border: 1px solid rgba(193,200,194,.2);
    display: flex; flex-direction: column; gap: 16px;
    transition: background .25s, color .25s;
  }
  .landing-fru-card:hover { background: var(--pub-primary); color: #fff; }
  .landing-fru-card:hover .landing-fru-desc { color: rgba(255,255,255,.7); }
  .landing-fru-card:hover .landing-fru-region { color: rgba(255,255,255,.6); }
  .landing-fru-card:hover .landing-fru-link { background: #fff; color: var(--pub-primary); }
  .landing-fru-icon { font-size: 32px; line-height: 1; }
  .landing-fru-region {
    font-weight: 800; font-size: 10px; text-transform: uppercase;
    letter-spacing: 2px; color: var(--pub-primary);
  }
  .landing-fru-name {
    font-weight: 800; font-size: 22px; letter-spacing: -0.4px; line-height: 1.15;
  }
  .landing-fru-desc {
    font-size: 13px; font-weight: 500; color: var(--pub-text2);
    line-height: 1.6; flex: 1;
  }
  .landing-fru-link {
    display: inline-block; background: var(--pub-primary); color: #fff;
    padding: 12px 24px; font-family: 'Manrope', sans-serif;
    font-weight: 800; font-size: 11px; text-transform: uppercase;
    letter-spacing: 2px; text-decoration: none;
    align-self: flex-start; transition: background .2s, color .2s;
  }
  .landing-fru-placeholder {
    background: var(--pub-surface-high); padding: 40px 32px;
    border: 1px dashed rgba(1,45,29,.15);
    display: flex; flex-direction: column; gap: 12px;
    align-items: flex-start;
  }
  .landing-fru-placeholder .landing-fru-name { opacity: .35; font-size: 16px; }
  .landing-fru-placeholder .landing-fru-region { opacity: .4; }
  .landing-fru-loading {
    grid-column: 1/-1; padding: 48px;
    text-align: center; color: var(--pub-text2);
    font-weight: 600; font-size: 14px;
  }
  @media(max-width:900px) { .landing-fru-grid { grid-template-columns: repeat(2, 1fr); } }
  @media(max-width:600px) { .landing-fru-grid { grid-template-columns: 1fr; } }

/* ── Login overlay (quand appelé depuis la landing) ── */
#login-screen.overlay {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(1,45,29,.88) !important;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
