
:root{--red:#bf1d32;--red-dark:#9d1627;--ink:#111926;--muted:#5d6878;--line:#d9dde4;--bg:#eef1f4;--card:#fff;--soft:#f8f9fb;--shadow:0 16px 42px rgba(17,25,38,.08);--wrap:1180px;--radius:28px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;color:var(--ink);background:linear-gradient(180deg,#f8f9fb 0%,#eef1f4 36%,#fff 100%)}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px}.header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(17,25,38,.08)}.header-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0}.brand img{width:180px}.nav{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}.nav a,.langs a{font-weight:900;border-radius:999px;padding:10px 13px}.nav a:hover,.langs a:hover{background:#eef1f4}.nav a.active{background:var(--ink);color:#fff}.langs{display:flex;gap:4px;border:1px solid var(--line);border-radius:999px;padding:4px;background:#fff}.langs a{font-size:12px;padding:8px 10px}.langs a.active{background:var(--red);color:#fff}.menu-toggle{display:none;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 12px;font-weight:900}.hero{padding:34px 0 18px}.hero-card{background:linear-gradient(180deg,#fff,#fafbfc);border:1px solid rgba(17,25,38,.06);border-radius:34px;box-shadow:var(--shadow);overflow:hidden;display:grid;grid-template-columns:1fr 1fr}.hero-copy{padding:54px}.hero-logo{width:230px;margin-bottom:20px}.eyebrow{display:flex;align-items:center;gap:14px;color:var(--red);font-size:13px;letter-spacing:.18em;text-transform:uppercase;font-weight:950;margin-bottom:18px}.eyebrow:before{content:'';display:block;width:50px;height:3px;border-radius:999px;background:var(--red)}h1{font-size:clamp(42px,6.5vw,82px);line-height:.92;letter-spacing:-.055em;margin:0 0 22px;font-weight:950}.lead{font-size:18px;line-height:1.65;color:#344054;margin:0 0 26px}.hero-img{position:relative;min-height:520px;background:#dde2e7}.hero-img img{width:100%;height:100%;object-fit:cover}.hero-img:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(10,15,25,.18))}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:14px;background:var(--red);color:#fff;font-weight:950;padding:15px 22px;box-shadow:0 8px 20px rgba(191,29,50,.2);cursor:pointer}.btn:hover{background:var(--red-dark)}.btn.secondary{background:#fff;color:var(--red);border:1px solid #e2b7bd;box-shadow:none}.cta-row{display:flex;gap:14px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:#fff}.stat{padding:22px 24px;border-right:1px solid var(--line);display:flex;gap:14px}.stat:last-child{border-right:0}.badge{width:42px;height:42px;border:2px solid var(--red);border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--red);font-weight:950;flex:0 0 auto}.stat b{font-size:21px}.stat small{display:block;color:var(--muted);margin-top:5px}.section{padding:72px 0}.section.alt{background:rgba(255,255,255,.7);border-top:1px solid rgba(17,25,38,.05);border-bottom:1px solid rgba(17,25,38,.05)}.section-head{display:grid;grid-template-columns:1fr minmax(320px,500px);gap:26px;align-items:end;margin-bottom:30px}.section-head h2{font-size:48px;line-height:1.02;letter-spacing:-.04em;margin:0;font-weight:950}.section-sub{font-size:18px;line-height:1.7;color:var(--muted);margin:0}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card,.entry,.form-card{background:#fff;border:1px solid rgba(17,25,38,.08);border-radius:24px;box-shadow:var(--shadow);overflow:hidden}.entry,.form-card{padding:28px}.entry h3,.card h3{font-size:29px;line-height:1.08;margin:12px 0 10px}.entry p,.card p{line-height:1.7;color:var(--muted)}.pill{display:inline-flex;background:#fbecef;color:var(--red);font-weight:950;font-size:12px;text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:8px 12px}.card img{width:100%;height:230px;object-fit:cover}.card-body{padding:20px}.page-hero{padding:34px 0 0}.page-card{background:#fff;border:1px solid rgba(17,25,38,.06);border-radius:30px;box-shadow:var(--shadow);display:grid;grid-template-columns:1.05fr .95fr;gap:28px;padding:30px;align-items:center}.page-card h1{font-size:56px;max-width:900px}.page-card img{height:370px;width:100%;object-fit:cover;border-radius:24px}.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.step{padding:24px;border-radius:22px;background:#fff;border:1px solid rgba(17,25,38,.08);box-shadow:var(--shadow)}.step b{display:block;font-size:21px;margin-bottom:8px}.step p{color:var(--muted);line-height:1.65}.jobs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.job-meta{display:grid;gap:8px;color:#475569;margin:13px 0 16px}.job-card .btn{width:100%}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}label{font-weight:850}input,textarea,select{width:100%;border:1px solid #d5dce5;border-radius:12px;padding:13px 15px;font:inherit;background:#fff}textarea{min-height:116px;resize:vertical}.notice{background:#fff8df;border:1px solid #e6d286;color:#6f5713;border-radius:16px;padding:15px 16px}.footer{background:#fff;border-top:1px solid rgba(17,25,38,.08);padding:46px 0 22px}.footer-grid{display:grid;grid-template-columns:1.2fr .9fr .8fr 1fr;gap:28px}.footer img{width:180px}.footer p,.footer li{line-height:1.7;color:#465161}.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:7px}.socials{display:flex;gap:10px;margin-top:12px}.social{width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:#f4f6f8;display:flex;align-items:center;justify-content:center;font-weight:950}.copyright{border-top:1px solid var(--line);padding-top:18px;margin-top:26px;color:#64748b}.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(10,15,25,.58);z-index:100;align-items:center;justify-content:center;padding:18px}.modal-backdrop.open{display:flex}.modal{max-width:860px;width:100%;background:#fff;border-radius:26px;box-shadow:0 28px 80px rgba(0,0,0,.22);overflow:hidden}.modal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:18px 22px}.modal-head strong{font-size:26px}.modal-head button{border:0;background:#eef1f4;border-radius:12px;padding:10px 14px;font-weight:900}.modal-body{padding:22px}.admin-gate{position:fixed;inset:0;background:#111926;display:flex;align-items:center;justify-content:center;z-index:200}.admin-gate .box{background:#fff;border-radius:24px;padding:30px;max-width:440px;width:calc(100% - 30px)}.admin-shell{padding:28px 0}.jsonbox{font-family:Consolas,monospace;font-size:12px;white-space:pre-wrap;background:#0d1320;color:#e5e7eb;padding:15px;border-radius:14px;max-height:260px;overflow:auto}.sr-only{position:absolute;left:-9999px}.lang-note{font-size:13px;color:#64748b;margin-top:8px}@media(max-width:1040px){.hero-card,.page-card,.section-head,.grid-2{grid-template-columns:1fr}.stats,.timeline,.footer-grid{grid-template-columns:repeat(2,1fr)}.jobs,.grid-3{grid-template-columns:repeat(2,1fr)}.hero-img{min-height:360px}.page-card img{height:300px}}@media(max-width:780px){.menu-toggle{display:block}.nav{display:none;position:absolute;left:20px;right:20px;top:70px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:12px;flex-direction:column;align-items:stretch}.nav.open{display:flex}.nav a{text-align:left}.header-row{align-items:flex-start}.brand img{width:145px}.langs{margin-left:auto}.hero-copy{padding:30px 22px}.hero-logo{width:170px}.stats,.timeline,.footer-grid,.jobs,.grid-3,.form-grid{grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid var(--line)}h1{font-size:42px}.section-head h2{font-size:36px}.page-card h1{font-size:38px}.page-card{padding:22px}.card img{height:200px}}

/* V6 - Recrutement dynamique depuis Supabase */
.job-short{color:#475569;font-size:14px;line-height:1.55;margin:10px 0 0}.job-badges{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.job-badge{font-size:11px;font-weight:900;color:#a71925;background:#fff1f2;border:1px solid #f3c8cc;border-radius:999px;padding:5px 8px}.job-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.btn.secondary{background:#fff;color:#a71925;border:1px solid #d8a1a7}.job-img-link{display:block}.offer-detail{background:#f4f6f7}.offer-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:32px;align-items:start}.offer-panel{background:#fff;border:1px solid #dfe4ea;border-radius:28px;padding:30px;box-shadow:0 18px 50px rgba(15,23,42,.08)}.offer-panel img{width:100%;border-radius:22px;max-height:420px;object-fit:cover}.offer-list{padding-left:0;list-style:none}.offer-list li{padding:9px 0;border-bottom:1px solid #eef2f4}.offer-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}@media(max-width:900px){.offer-layout{grid-template-columns:1fr}.job-actions .btn{width:100%;text-align:center}}


/* V8 - Accueil restauré : grande image + carte visuelle superposée */
.hero{padding:34px 0 0}.hero-shell{background:#fff;border:1px solid rgba(16,23,34,.08);border-radius:34px;overflow:hidden;box-shadow:var(--shadow)}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;align-items:stretch}.hero-copy{padding:56px 54px 40px}.hero-logo{width:230px;margin-bottom:18px}
.hero-media{position:relative;min-height:560px;background:linear-gradient(180deg,#f9fafb,#eceff3)}.hero-media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.10),rgba(16,23,34,.16))}.floating-card{position:absolute;left:34px;bottom:34px;background:rgba(255,255,255,.97);border:1px solid rgba(16,23,34,.08);border-radius:22px;padding:12px;max-width:420px;box-shadow:var(--shadow)}.floating-card img{width:100%;height:240px;object-fit:cover;border-radius:16px}.floating-card .cap{display:flex;gap:12px;align-items:center;padding:14px 8px 6px}.afp-badge{width:42px;height:42px;border-radius:12px;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:950;flex:0 0 auto}
.hero-shell .stats{display:block;margin:0;background:#fff;border-top:1px solid var(--line)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.hero-shell .stat{display:flex;gap:16px;align-items:flex-start;padding:24px 26px;border-right:1px solid var(--line);border-bottom:0}.hero-shell .stat:last-child{border-right:0}.stat-icon{width:48px;height:48px;border-radius:999px;border:2px solid var(--red);display:flex;align-items:center;justify-content:center;font-weight:950;color:var(--red);flex:0 0 auto}.hero-shell .stat b{display:block;font-size:22px}.hero-shell .stat small{display:block;color:var(--muted);margin-top:5px;line-height:1.45}
.jobs-loading,.jobs-empty{grid-column:1/-1;padding:26px;border:1px dashed #c9d1dc;border-radius:22px;background:#fff;color:#475569;box-shadow:none}.jobs-empty strong{display:block;color:var(--ink);font-size:20px;margin-bottom:6px}.job-img-link img{width:100%;height:230px;object-fit:cover}.job-actions .btn{width:auto;min-width:145px}.job-actions .btn.secondary{box-shadow:none}
@media(max-width:1040px){.hero-grid{grid-template-columns:1fr}.hero-media{min-height:420px}.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.hero-copy{padding:34px 24px}.floating-card{position:static;margin:18px}.floating-card img{height:190px}.stats-grid{grid-template-columns:1fr}.hero-shell .stat{border-right:0;border-bottom:1px solid var(--line)}.hero-shell .stat:last-child{border-bottom:0}.job-actions .btn{width:100%}}

/* V9 - accueil : petite image sans texte/logo dans la carte flottante */
.floating-card.image-only{padding:10px;background:rgba(255,255,255,.96);}
.floating-card.image-only img{height:260px;object-fit:cover;object-position:center;border-radius:16px;display:block;}
.floating-card.image-only .cap{display:none!important;}
@media(max-width:780px){.floating-card.image-only img{height:190px;}}




/* V19 — correction finale du pop-up candidature mobile.
   Desktop non modifié : ces règles ne s’appliquent qu’aux écrans <= 780px.
   Objectif : une seule colonne lisible, pop-up cadré, scroll interne, fermeture fiable. */
@media (max-width: 780px){
  body.apply-modal-open{
    overflow:hidden;
    touch-action:none;
  }

  #applyModal.modal-backdrop.open{
    display:flex;
    position:fixed;
    inset:0;
    width:100vw;
    height:100vh;
    height:100dvh;
    align-items:center;
    justify-content:center;
    padding:10px;
    background:rgba(10,15,25,.58);
    overflow:hidden;
    z-index:2147483000;
  }

  #applyModal .modal{
    width:96vw;
    max-width:460px;
    height:auto;
    max-height:92vh;
    max-height:92dvh;
    display:flex;
    flex-direction:column;
    border-radius:20px;
    overflow:hidden;
    background:#fff;
  }

  #applyModal .modal-head{
    flex:0 0 auto;
    min-height:48px;
    padding:10px 12px;
  }

  #applyModal .modal-head strong{
    font-size:18px;
    line-height:1.15;
    max-width:calc(100% - 44px);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  #applyModal .modal-close,
  #applyModal .modal-head button{
    width:38px;
    height:38px;
    min-width:38px;
    padding:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:18px;
    line-height:1;
    cursor:pointer;
    touch-action:manipulation;
    pointer-events:auto;
  }

  #applyModal .modal-body{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    padding:12px 14px calc(12px + env(safe-area-inset-bottom, 0px));
  }

  #applyModal .form-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }

  #applyModal .field,
  #applyModal .field.full{
    grid-column:1 / -1;
    gap:3px;
    min-width:0;
  }

  #applyModal label{
    font-size:13px;
    line-height:1.15;
    font-weight:850;
  }

  #applyModal input,
  #applyModal textarea,
  #applyModal select{
    width:100%;
    font-size:16px;
    line-height:1.2;
    min-height:38px;
    padding:8px 10px;
    border-radius:11px;
  }

  #applyModal textarea{
    min-height:62px;
    max-height:62px;
    resize:none;
  }

  #applyModal input[type="file"]{
    font-size:14px;
    min-height:40px;
    padding:8px 9px;
  }

  #applyModal .btn{
    width:100%;
    min-height:44px;
    padding:10px 14px;
    border-radius:12px;
    font-size:15px;
  }
}
