/* Lisibilité globale : tailles de lecture, contraste et espaces.
   Les règles fonctionnelles et les états de visibilité restent inchangés. */
:root {
  --ljo-reading-size:18px;
  --ljo-control-size:17px;
  --ljo-small-size:15px;
  --ljo-reading-muted:#685873;
}
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { font-size:var(--ljo-reading-size); line-height:1.55; }
body :is(p,li) { line-height:1.6; }
body :is(small,.field-help,.payment-help,.xp-small) { line-height:1.5; }
body :is(h1,h2,h3,h4) { line-height:1.3; overflow-wrap:break-word; }
body :is(label,button,input,select,textarea) { font-family:inherit; }
body :is(button,.btn,.xp-primary,.xp-secondary,.premium-primary,.premium-secondary,.lj-btn) {
  line-height:1.4;
}
html body :is(#app,#authScreen,dialog,.card,.lj-doc) :is(input,select,textarea) {
  font-size:var(--ljo-control-size)!important;
  line-height:1.45!important;
  min-width:0;
}
html body :is(#app,#authScreen,dialog,.card,.lj-doc) :is(input,textarea)::placeholder {
  color:#74647e!important;
  opacity:1;
}
html body :is(#app,#authScreen,dialog,.card) :is(.field>label,.check-line,label[for]) {
  font-size:var(--ljo-control-size);
  line-height:1.5;
}
html body :is(#app,#authScreen,dialog,.card) :is(.btn,.xp-primary,.xp-secondary,.premium-primary,.premium-secondary,.a54-btn,.primary,.secondary) {
  font-size:var(--ljo-control-size)!important;
  min-height:44px;
  height:auto;
  white-space:normal;
}
html body :is(#app,#authScreen,dialog,.card) :is(.muted,.field-help,.payment-help,.xp-small) {
  color:var(--ljo-reading-muted)!important;
  font-size:var(--ljo-small-size)!important;
}
html body :is(#app,#authScreen,dialog,.card) :is(.page-head p,.xp-page-head p,.auth-lead,.offer-message,.request-excerpt,.opp-card-description,.jp84-bio,.xp-bubble) {
  font-size:var(--ljo-reading-size)!important;
  line-height:1.6!important;
}
html body :is(.view,.modal-card,.xp-dialog) h1 {font-size:30px!important;line-height:1.3!important}
html body :is(.view,.modal-card,.xp-dialog) h2 {font-size:24px!important;line-height:1.35!important}
html body :is(.view,.modal-card,.xp-dialog) h3 {font-size:22px!important;line-height:1.35!important}
html body :is(.view,.modal-card) :is(.eyebrow,.xp-eyebrow,.premium-eyebrow) {font-size:15px!important;line-height:1.5}
html body #app.ljo-shell>.bottom-nav :is(.nav-item,.nav-account-link,#donateNav),
html body #app.ljo-shell #jobsNav .jobs-floating-tooltip {
  font-size:17px!important;
  line-height:1.35!important;
}
html body #app.ljo-shell>.bottom-nav :is(.nav-item,.nav-account-link,#jobsNav,#donateNav) {
  min-height:44px!important;
  height:auto!important;
  flex-shrink:0!important;
}
html body #app.ljo-shell>.bottom-nav .nav-main-group {
  min-width:0;
  overflow-x:auto;
  scrollbar-width:thin;
  overscroll-behavior-x:contain;
}
html body #app.ljo-shell>.topbar .brand-tag {font-size:15px!important;line-height:1.35;color:#6e5d79!important}
html body #headerSearchPanel #desktopSearch {font-size:17px!important}
html body #headerSearchPanel .desktop-location-trigger {font-size:17px!important}
html body #headerSearchPanel #desktopCityLabel {font-size:17px!important;max-width:none!important;min-width:0}
@media (min-width:900px) {
  html body #headerSearchPanel #desktopSearchZone {grid-template-columns:minmax(0,1fr) 180px 44px!important}
}
html body #homeServiceShortcuts .ljo-service-label {font-size:15px!important;line-height:1.4;white-space:normal}
html body #homeServiceShortcuts .ljo-service-shortcut--priority .ljo-service-label {font-size:17px!important}
html body #homeServiceShortcuts .ljo-service-secondary {gap:8px}
html body #homeServiceShortcuts .ljo-service-shortcut {min-height:84px}
html body #view-home #premiumProfiles :is(.premium-profile-card,.premium-profile-bottom,.premium-location,.premium-review) {min-width:0}
html body #view-home #premiumProfiles .premium-profile-bottom {flex-wrap:wrap;align-items:center}
html body #view-home #premiumProfiles .premium-profile-button {font-size:17px!important;min-height:44px;white-space:normal}
html body #view-home #premiumProfiles :is(.premium-example-note,.premium-member-label,.premium-location-copy,.premium-review>small) {color:#685b83!important}
html body #view-home #premiumProfiles .premium-portfolio-title {white-space:normal;line-height:1.45;min-height:0;height:auto}
html body #view-home #premiumProfiles .premium-bio {display:block;-webkit-line-clamp:unset;max-height:none;overflow:visible;font-size:var(--ljo-home-reading-size,18px)!important;line-height:var(--ljo-home-reading-line,1.6)!important}
html body #view-nearby .opp-card-title h2 {font-size:22px!important;white-space:normal;overflow:visible;text-overflow:clip}
html body #view-nearby .opp-card-meta {font-size:15px!important;line-height:1.5}
html body #view-nearby .opp-card-actions :is(.opp-open,.opp-apply) {font-size:17px!important;min-height:44px;white-space:normal}
html body #view-public-profile .jp84-verifications {display:block}
html body #view-public-profile .jp84-verifications h2 {display:block;white-space:normal;font-size:20px!important;line-height:1.4!important}
html body #view-public-profile .jp84-verifications h2 svg {display:inline-block;vertical-align:middle;margin-right:8px}
html body #view-public-profile .jp84-verifications p {display:flex;align-items:flex-start;line-height:1.5}
html body #view-nearby>.opp-toolbar {flex-wrap:wrap}
html body #view-nearby>.opp-toolbar select {max-width:100%!important;width:auto;flex:1 1 170px}
html body #view-publish .xp-review>.xp-budget-breakdown {display:block;min-width:0;padding:18px}
html body #view-publish .xp-budget-breakdown>div {min-width:0;align-items:flex-start}
html body #view-publish .xp-budget-breakdown>div>span {min-width:0}
html body #view-publish .xp-budget-breakdown :is(b,strong) {flex-shrink:0;white-space:nowrap}
html body .jp66-budget-mode {font-size:17px;line-height:1.5}
html body .jp66-price small {font-size:17px}
html body .jp67-pricing {min-width:580px}
html body #view-account-wallet .ljo35-wallet-tabs {width:fit-content;max-width:100%;flex-wrap:wrap}
html body #view-account-wallet .ljo35-wallet-tabs button {font-size:17px!important;min-height:44px;white-space:normal}
html body #view-account-wallet :is(.v86-wallet-grid,.ljo35-wallet-stats)>div {min-width:0}
html body #view-account-wallet :is(p,.v86-marketplace-note) {line-height:1.6}
html body :is(.modal,.xp-dialog,dialog) {max-width:calc(100vw - 24px);max-height:90dvh;overflow-y:auto}
html body :is(.modal-card,.xp-dialog,.jp84-editor) {overflow-wrap:break-word}
html body .notification-badge {min-width:22px!important;height:22px!important;line-height:22px!important;font-size:15px!important}
html body :is(.payment-status,.status-pill,.v101-public-pill) {font-size:15px!important;line-height:1.4}
body.ljo-messages-fit .ljo-site-footer {display:none}
html body :is(.ljo-footer,.lj-footer,.site-footer) {line-height:1.6}
html body :is(.lj-footer-links,.ljo-footer-links) {flex-wrap:wrap;row-gap:12px}
html body :is(.lj-back,.lj-updated,.lj-footer small,.lj-nav a) {font-size:15px;color:var(--ljo-reading-muted)}
html body .lj-doc {font-size:18px;line-height:1.7}
html body .lj-doc h2 {font-size:24px;line-height:1.4}
html body .lj-doc h3 {font-size:22px;line-height:1.4}
html body .lj-nav a[aria-current=page] {color:#fff}
html body .lj-datatable {font-size:17px;overflow-wrap:anywhere}
html body .lj-btn {font-size:17px;min-height:44px}
html body .card :is(p,input) {font-size:18px}
html body .card :is(a,button,label) {font-size:17px;line-height:1.45}
html body .card small {font-size:15px;color:var(--ljo-reading-muted)}
/* Menus larges : le défilement reste accessible si le texte occupe toute la ligne. */
@media (min-width:1200px) {
  #view-home {--ljo-home-reading-size:17px;--ljo-home-reading-line:1.5;}
  html body #app.ljo-shell>.bottom-nav {height:auto!important;min-height:48px!important}
  html body #app.ljo-shell>.bottom-nav .nav-main-group {justify-content:safe flex-end!important;padding-block:2px}
  html body #app.ljo-shell>.bottom-nav :is(.nav-item,.nav-account-link,#jobsNav,#donateNav) {padding-inline:7px!important}
  html body #app.ljo-shell>.bottom-nav .nav-main-group {gap:4px!important}
}
@media (max-width:1199px) {
  html body #app.ljo-shell>.bottom-nav {height:62px!important;min-height:62px!important}
  html body #app.ljo-shell>.bottom-nav .nav-main-group {justify-content:flex-start!important;padding-block:4px}
}
@media (max-width:899px) {
  html body #homeServiceShortcuts .ljo-service-secondary {grid-auto-columns:110px}
  html body #homeServiceShortcuts .ljo-service-shortcut--priority {min-height:86px}
  html body #view-home #premiumProfiles .premium-profile-bottom {gap:12px}
  html body #view-account-wallet .ljo35-wallet-tabs {width:100%}
  html body #view-account-wallet .ljo35-wallet-tabs button {flex:1 1 100px;padding:10px 8px;font-size:16px!important}
  html body #view-public-profile .jp84-layout {min-width:0}
  html body #view-public-profile :is(.jp84-heading,.jp84-profile-bottom) {flex-wrap:wrap}
  html body #view-public-profile .jp84-hero>.jp84-hero-experience {grid-column:1/-1!important;justify-content:flex-start;width:100%;min-width:0}
  html body #view-public-profile .jp84-hero-experience em {flex:1;max-width:none;overflow-wrap:normal}
}
@media (max-width:599px) {
  html body :is(.view,.modal-card,.xp-dialog) h1 {font-size:28px!important}
  html body :is(.view,.modal-card,.xp-dialog) h2 {font-size:22px!important}
  html body #view-nearby .opp-card-actions {justify-content:flex-start;gap:12px}
  html body #view-nearby .opp-card-actions .opp-apply {padding:10px 16px}
  html body .lj-datatable :is(th,td) {padding:10px 6px}
  html body .lj-doc {padding:22px 18px}
  html body #premiumCategoryGrid {grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html body #view-home .premium-section-head .premium-text-link {width:auto;max-width:100%;min-width:0;flex:0 1 auto;white-space:normal;text-align:left;line-height:1.5}
  html body #view-home .premium-categories .premium-section-head {gap:12px;align-items:flex-start;flex-direction:column}
}
