[hidden]{display:none!important}
:root{--foret:#0B3D2E;--canopee:#1F7A4D;--or:#F4C430;--etoile:#D7263D;--lagon:#19A7A8;--ocean:#0E4C7A;--sable:#FFF6E5;--fond:#FFFBF3;--texte:#16261F;--doux:#4E5E56;--bord:rgba(11,61,46,.14);--rayon:16px}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--fond);color:var(--texte);line-height:1.55;font-size:16px}
a{color:var(--canopee)}
h1{font-size:1.7rem;line-height:1.2;margin-bottom:8px}
h2{font-size:1.2rem;margin-bottom:12px}
p.intro{color:var(--doux);margin-bottom:18px}

/* En-tête */
.entete{background:var(--foret);color:#fff}
.entete-in{max-width:1080px;margin:0 auto;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.marque{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;letter-spacing:-.01em}
.marque small{display:block;font-weight:500;font-size:.7rem;opacity:.75}
.marque svg{width:32px;height:32px;flex:none}
.compte{display:flex;align-items:center;gap:8px 12px;font-size:.92rem;flex-wrap:wrap;min-width:0}
.compte span{overflow-wrap:anywhere}
.lien-clair{white-space:nowrap}
.compte span{opacity:.85}
.lien-clair{color:#fff;background:none;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:6px 14px;cursor:pointer;font:inherit;text-decoration:none}
.lien-clair:hover{background:rgba(255,255,255,.12)}

main{max-width:1080px;margin:0 auto;padding:30px 16px 70px}
.etroit{max-width:480px}

/* Cartes et formulaires */
.carte{background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);padding:22px;margin-bottom:18px}
label{display:block;font-weight:600;margin:14px 0 6px}
input,select{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--bord);font:inherit;background:#fff;color:inherit}
input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid rgba(25,167,168,.4);outline-offset:1px}
.aide{font-size:.85rem;color:var(--doux);margin-top:6px}
.bouton{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:999px;border:0;font:600 1rem system-ui,sans-serif;cursor:pointer;text-decoration:none;background:var(--foret);color:#fff;transition:background .2s,transform .2s}
.bouton:hover{background:var(--canopee)}
.bouton:disabled{opacity:.55;cursor:wait}
.bouton.or{background:var(--or);color:var(--foret)}
.bouton.or:hover{background:#FFD95A}
.bouton.leger{background:#fff;color:var(--foret);border:1px solid var(--bord)}
.bouton.plein{width:100%;margin-top:20px}
.bouton.danger{background:var(--etoile);color:#fff}
.bouton.danger:hover{background:#B01E31}
.espace-haut{margin-top:22px}
.liens{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;font-size:.92rem}

/* Messages */
.message{padding:12px 16px;border-radius:12px;margin:14px 0;border:1px solid var(--bord);background:#fff;color:var(--doux)}
.message.erreur{background:#FDECEE;border-color:#F5C2C9;color:#8A1C2B}
.message.ok{background:#E8F5EE;border-color:#B9E0C9;color:#14532D}

/* Étapes de l'inscription */
.etapes{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 20px}
.etapes span{padding:6px 14px;border-radius:999px;background:#fff;border:1px solid var(--bord);font-size:.88rem;color:var(--doux)}
.etapes span.active{background:var(--foret);color:#fff;border-color:var(--foret)}

/* Listes d'accès */
.grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.acces{background:#fff;border:1px solid var(--bord);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:6px}
.acces b{font-size:1rem}
.acces small{color:var(--doux)}
.acces .prix{color:var(--canopee);font-weight:700}
.acces .bouton{margin-top:auto;align-self:flex-start;padding:8px 16px;font-size:.92rem}
.acces.actif{border-color:var(--canopee);box-shadow:inset 4px 0 0 var(--canopee)}
.etiquette{display:inline-block;font-size:.72rem;font-weight:700;padding:2px 9px;border-radius:999px;background:#FFF2CC;color:#7A5B00}
.etiquette.verte{background:#E8F5EE;color:#14532D}
.ligne{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.ligne > *{flex:1 1 200px}
.ligne .bouton{flex:0 0 auto}
.recherche{margin-bottom:14px}

/* Tableaux de l'administration */
table{width:100%;border-collapse:collapse;font-size:.9rem;background:#fff}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--bord);vertical-align:top}
th{background:var(--sable);font-weight:700}
.defile{overflow-x:auto;border:1px solid var(--bord);border-radius:12px}
.codes{font-family:ui-monospace,Consolas,monospace;background:var(--sable);border-radius:12px;padding:14px;white-space:pre-wrap;margin-top:12px;user-select:all}
.onglets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.onglets button{border:1px solid var(--bord);background:#fff;border-radius:999px;padding:8px 16px;font:600 .92rem system-ui,sans-serif;cursor:pointer;color:var(--doux)}
.onglets button[aria-selected=true]{background:var(--foret);color:#fff;border-color:var(--foret)}

@media (max-width:600px){h1{font-size:1.4rem}.carte{padding:18px}}

.chiffre-bord{font-size:1.8rem;color:var(--foret)}

.page-legale h2{margin-top:26px}
.page-legale table{margin:10px 0}
.page-legale ul{padding-left:22px;margin:8px 0}
.page-legale p{margin:8px 0;overflow-wrap:anywhere}

.case{display:flex;gap:10px;align-items:flex-start;font-weight:500;margin:6px 0 16px;padding:12px 14px;background:var(--sable);border-radius:12px;border:1px solid var(--bord)}
.case input{width:auto;margin-top:4px}

/* Bouton « Copier le prompt » d'un encadré « Visuel à insérer » (absent des exports et de l'impression). */
.bouton-copie-prompt { margin-left: .4rem; padding: .15rem .6rem; font-size: .85rem; border-radius: 6px; border: 1px solid currentColor; background: transparent; cursor: pointer; }
@media print { .bouton-copie-prompt { display: none; } }

/* Visuels des métiers : repli (dégradé + pictogramme) toujours présent, image par-dessus quand elle est déposée. */
.visuel-fond{position:relative;overflow:hidden;width:100%;height:100%;background:radial-gradient(circle at 85% 20%,rgba(244,196,48,.35),transparent 45%),linear-gradient(135deg,var(--foret) 0%,var(--canopee) 55%,var(--lagon) 100%);color:rgba(255,255,255,.9)}
.visuel-fond .picto{position:absolute;right:6%;top:50%;width:min(34%,190px);height:auto;aspect-ratio:1;transform:translateY(-50%);opacity:.55}
.visuel-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center;display:block}

/* Bannière de l'espace : texte à gauche (espace libre prévu dans l'image), voile pour garder le contraste. */
.banniere{position:relative;border-radius:var(--rayon);overflow:hidden;margin-bottom:12px;min-height:180px;aspect-ratio:16/5;background:var(--foret)}
.banniere-fond{position:absolute;inset:0}
.banniere-fond::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,61,46,.92) 0%,rgba(11,61,46,.7) 38%,rgba(11,61,46,0) 70%)}
.banniere-texte{position:relative;z-index:1;color:#fff;padding:28px;max-width:62%;display:flex;flex-direction:column;justify-content:center;height:100%;min-height:180px}
.banniere-texte h1{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.35)}
.banniere-texte p{opacity:.95;font-size:.98rem;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.choix-visuel{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin:0 0 18px;font-size:.9rem}
.choix-visuel label{margin:0;font-weight:600;color:var(--doux)}
.choix-visuel select{width:auto;max-width:100%;padding:7px 12px;font-size:.9rem}

/* Vignette d'une offre dans « Mes abonnements » : même fichier, recadré. */
.acces .vignette{height:84px;margin:-16px -16px 6px;border-radius:14px 14px 0 0;overflow:hidden}
.acces .vignette .picto{width:56px;opacity:.6}

/* Page de connexion : visuel à côté du formulaire (ordinateur), en bandeau au-dessus (téléphone). */
.connexion{max-width:1080px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:32px;align-items:center}
.connexion-form{max-width:480px;width:100%;justify-self:center}
.connexion-visuel{position:relative;border-radius:var(--rayon);overflow:hidden;aspect-ratio:4/5;max-height:640px;background:linear-gradient(135deg,var(--foret),var(--canopee) 60%,var(--lagon))}
.connexion-visuel .calque{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}
.connexion-visuel .calque.visible{opacity:1}
.connexion-visuel .visuel-img{object-position:70% center}
.connexion-visuel .visuel-fond .picto{right:50%;transform:translate(50%,-50%)}
.mosaique{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:10px}
.mosaique span{display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.85)}
.mosaique span:nth-child(2n){background:rgba(244,196,48,.16)}
.mosaique .picto{width:44%;height:auto}
@media (max-width:860px){
  .connexion{grid-template-columns:1fr;gap:18px;padding-top:18px}
  .connexion-visuel{aspect-ratio:16/7;max-height:none;width:100%;max-width:480px;justify-self:center}
  .mosaique{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:6px;padding:8px}
  .mosaique span:nth-child(n+7){display:none}
}
@media (max-width:600px){
  .banniere{aspect-ratio:auto}
  .banniere-texte{max-width:100%;padding:20px}
  .banniere-fond::after{background:linear-gradient(90deg,rgba(11,61,46,.9) 0%,rgba(11,61,46,.6) 60%,rgba(11,61,46,.35) 100%)}
  .choix-visuel{justify-content:flex-start;flex-wrap:wrap}
  .banniere .visuel-fond .picto{opacity:.28}
}
@media (prefers-reduced-motion:reduce){.connexion-visuel .calque{transition:none}}

/* Accessibilité : texte lu par les lecteurs d'écran, invisible à l'écran. */
.visuellement-cache{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--bord);font:inherit;background:#fff;color:inherit;resize:vertical;min-height:120px}
textarea:focus{outline:3px solid rgba(25,167,168,.4);outline-offset:1px}
details summary{cursor:pointer;font-weight:600;color:var(--canopee)}
.carte h3{font-size:1rem;margin-bottom:8px}

/* Mon avis : étoiles (boutons radio cachés, étiquettes visibles), aperçu, informations sur les avis. */
.etoiles{border:0;margin:6px 0 0;padding:0}
.etoiles legend{font-weight:600;margin-bottom:6px}
.etoiles-choix{display:flex;align-items:center;gap:2px;flex-wrap:wrap}
.etoiles-choix label{margin:0;font-size:2rem;line-height:1;color:#7A7465;cursor:pointer;padding:2px 4px;border-radius:8px}
.etoiles-choix label.pleine{color:#B07A00}
.etoiles-choix input:focus-visible + label{outline:3px solid rgba(25,167,168,.6);outline-offset:1px}
.etoiles-texte{margin-left:8px;color:var(--doux);font-size:.9rem}
.avis-carte{background:var(--sable);border:1px solid var(--bord);border-radius:14px;padding:14px 16px}
.note-etoiles{color:#B07A00;font-size:1.15rem;letter-spacing:2px;margin-bottom:6px}
.avis-texte{white-space:pre-line;margin-bottom:8px;overflow-wrap:anywhere}
.avis-auteur{font-weight:600}
.actions-avis{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.liste-infos{padding-left:20px;margin:10px 0;font-size:.9rem;color:var(--doux)}
.liste-infos li{margin:6px 0}

/* Affiliation : code et lien à copier. */
.ligne-copie{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.ligne-copie input{flex:1 1 220px;min-width:0}
.code-affiliation{font:700 1.35rem ui-monospace,Consolas,monospace;letter-spacing:.08em;background:var(--sable);border:1px dashed var(--canopee);border-radius:12px;padding:8px 14px;color:var(--foret)}

/* Entreprises de ma filière : filtres, tableau, pagination. */
.filtres-entreprises{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 14px;align-items:end}
.filtres-entreprises .case{margin:14px 0 0;align-self:end}
.pagination{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:12px 0}
.pagination .bouton{padding:8px 16px;font-size:.92rem}
.actions-export{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.table-entreprises td small{display:block;color:var(--doux)}
@media (max-width:600px){
  .table-entreprises thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .table-entreprises tr{display:block;border-bottom:1px solid var(--bord);padding:8px 0}
  .table-entreprises td{display:block;border:0;padding:2px 10px}
  .table-entreprises td::before{content:attr(data-titre) " : ";font-weight:600;color:var(--doux)}
  .table-entreprises td:first-child::before{content:none}
  .table-entreprises td:first-child{font-weight:700}
}
