.j-directory .directory-controls { padding-block: 2rem 1rem; }
.directory-controls .j-heading { margin-bottom: 1rem; }
.directory-filters { display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap:.7rem; }
.directory-filters label { min-width:0; color:var(--j-text-accent); font-size:.85rem; font-weight:700; }
.directory-filters label:first-child { grid-column:1/-1; }
.directory-filters :is(select,input) { width:100%; min-width:0; min-height:48px; margin-top:.32rem; padding:.55rem .45rem; border:1px solid var(--j-line); border-radius:.25rem; background:var(--j-surface-raised); color:var(--j-text); font:600 1rem var(--j-body-font); }
.directory-tools { display:flex; flex-wrap:wrap; gap:.4rem 1rem; align-items:center; margin-top:1rem; }
.directory-tools p { margin-right:auto; color:var(--j-muted); font-size:.9rem; }
.j-directory .directory-tools button,.j-directory #directory-empty button,.directory-close,.directory-full,.pro-contact-jump {
  display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:.55rem .9rem; border:1px solid var(--j-line); border-radius:.25rem;
  font:700 .9rem/1.3 var(--j-body-font); background:transparent; color:var(--j-text); box-shadow:none; text-decoration:none; cursor:pointer;
}
.j-directory .directory-tools .btn-add-pro { background:var(--j-action); color:var(--j-action-text); }
.j-directory [hidden] { display:none !important; }
.j-directory main#contenu { max-width:var(--j-content); margin:auto; padding:.5rem var(--j-gutter) 2rem !important; }
.j-directory #pros-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:1.2rem; padding:0; margin:0; width:100%; }
.j-directory #pros-grid .directory-card {
  display:flex; flex-direction:column; align-items:stretch; min-width:0; gap:.45rem;
  border:0; border-top:1px solid var(--j-line); border-radius:0; padding:1.05rem .2rem .65rem;
  background:var(--j-surface) !important; color:var(--j-text); box-shadow:none; backdrop-filter:none; transform:none; cursor:default;
}
.directory-card-top { display:flex; align-items:center; gap:.6rem; min-height:44px; }
.directory-role { color:var(--j-text-accent); font:750 .81rem/1.35 var(--j-body-font); letter-spacing:.065em; text-transform:uppercase; }
.directory-cert { width:30px; height:30px; object-fit:contain; }
.j-directory .directory-save { margin-left:auto; width:44px; height:44px; padding:0; border:1px solid var(--j-line); border-radius:50%; background:transparent; color:var(--j-text); font:1.5rem/1 var(--j-body-font); cursor:pointer; }
.j-directory .directory-save[aria-pressed=true] { background:var(--j-action); color:var(--j-action-text); }
.directory-card h3,.j-directory #directory-overview h2 { color:var(--j-text); font:italic 800 clamp(1.95rem,4vw,2.75rem)/1.02 var(--j-display-font); text-transform:none; letter-spacing:-.015em; }
.directory-card h3 a { color:inherit; text-decoration:none; }
.directory-card h3 a::after { content:""; position:absolute; inset:0; }
.directory-card :is(.pro-actions,.directory-save) { position:relative; z-index:1; }
.directory-card h3 a:is(:hover,:focus-visible) { text-decoration:underline; text-underline-offset:.12em; }
.directory-loc { color:var(--j-text); font-weight:650; }
.directory-langs,.directory-tags { color:var(--j-muted); font-size:.88rem; }
.directory-bio,.directory-tip { margin:0; color:var(--j-muted); font-size:.95rem; line-height:1.55; }
.directory-bio { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.directory-tip { font:italic 1rem/1.4 var(--j-reading-font); }
.directory-logo { align-self:start; max-width:9rem; max-height:4.2rem; object-fit:contain; background:#fff; }
.j-directory .directory-card .pro-actions { margin:auto 0 0; display:flex; flex-wrap:wrap; gap:.45rem; padding-top:.75rem; border:0; }
.j-directory .directory-card .pro-actions :is(a,button) { display:inline-flex; flex:0 1 auto; align-items:center; min-height:44px; font:700 .88rem/1.2 var(--j-body-font); color:var(--j-text); background:transparent; border:1px solid var(--j-line); border-radius:.25rem; padding:.45rem .75rem; cursor:pointer; text-decoration:none; box-shadow:none; }
.j-directory .directory-card .pro-actions .btn-contact { background:var(--j-action); color:var(--j-action-text); }
.j-directory #pros-grid .pro-actions { flex-direction:row; }
.j-directory #pros-grid .pro-actions :is(a,button) { width:auto; justify-content:center; color:var(--j-text) !important; background:transparent !important; }
.j-directory #pros-grid .pro-actions .btn-contact { color:var(--j-action-text) !important; background:var(--j-action) !important; }
.j-directory.j-category-page .directory-save[aria-pressed=false] { color:var(--j-text) !important; background:transparent !important; }
.directory-filters input::placeholder { color:var(--j-muted); }
.j-directory .directory-capture .directory-bio { display:block; overflow:visible; }
.j-directory .directory-capture .pro-actions,.j-directory .directory-capture .directory-save { visibility:hidden; }
.j-directory #directory-empty,.directory-b2b { margin:2rem auto; padding:1.5rem 0; border-block:1px solid var(--j-line); }
.directory-b2b h2 { font:italic 800 2rem/1.1 var(--j-display-font); color:var(--j-text); }
.directory-b2b p { max-width:65ch; margin:.65rem 0; color:var(--j-muted); }
.directory-b2b a { color:var(--j-text-accent); font-weight:700; min-height:44px; display:inline-flex; align-items:center; }
.j-directory #directory-overview {
  margin:auto; box-sizing:border-box; width:min(94%,34rem); max-height:85dvh; overflow:auto;
  padding:1rem 1.25rem 1.5rem; color:var(--j-text); background:var(--j-surface); border:1px solid var(--j-line); border-radius:.4rem;
}
#directory-overview::backdrop { background:rgb(7 12 18 / 78%); }
#directory-overview .directory-close { position:sticky; top:0; z-index:1; margin-left:auto; display:flex; background:var(--j-surface); font-size:1.45rem; width:44px; }
#directory-overview-body { display:grid; gap:.7rem; }
#directory-overview-body blockquote { padding:.7rem 0; border-block:1px solid var(--j-line); font:italic 1.15rem/1.5 var(--j-reading-font); }
.directory-contacts { display:grid; gap:.7rem; }
.directory-contacts dt { color:var(--j-muted); font-size:.8rem; }
.directory-contacts dd a { min-height:44px; display:inline-flex; align-items:center; }
.directory-full { justify-self:start; }
.j-directory .claim-modal { background:var(--j-surface); color:var(--j-text); max-height:85dvh; overflow:auto; --slate-blue:var(--j-text); --text-grey:var(--j-muted); }
.j-directory .claim-modal :is(input,select,textarea) { color:var(--j-text); background:var(--j-surface-raised); font-size:1rem !important; }
.j-directory .claim-modal :is(#btnSubmitUgcPro,.btn-google-claim) { color:var(--j-action-text) !important; background:var(--j-action) !important; }
.j-directory .claim-modal-close { color:var(--j-text); min-width:44px; min-height:44px; }

.j-pro-sheet .pro-intro { border-bottom:1px solid var(--j-line); }
.j-pro-sheet .pro-intro .j-container { padding-block:.5rem 1.6rem; }
.pro-back,.j-pro-sheet .btn-back-directory { display:inline-flex; align-items:center; min-height:44px; font-size:.88rem; }
.pro-identity { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:1rem; padding-block:1rem; }
.pro-identity .pro-name { font:italic 800 clamp(2.65rem,7vw,6.5rem)/.96 var(--j-display-font); letter-spacing:-.025em; text-wrap:balance; margin:.5rem 0 .75rem; }
.pro-identity .pro-location-tag { font:650 1rem/1.45 var(--j-body-font); color:var(--j-text); }
.pro-mark { display:grid; gap:.65rem; justify-items:center; }
.pro-mark > span { font-size:clamp(1.8rem,5vw,4rem); }
.pro-mark img:not(.certif-badge-large) { background:white; object-fit:contain; width:clamp(4rem,14vw,12rem); max-height:8rem; }
.pro-mark .certif-badge-large { width:44px; height:44px; object-fit:contain; }
.j-pro-sheet main > .container { width:min(100%,var(--j-content)); max-width:var(--j-content) !important; margin:auto; padding:1.75rem var(--j-gutter) 3rem; }
.pro-profile-card { display:grid; grid-template-columns:minmax(0,1fr); gap:1.3rem; }
.j-pro-sheet :is(.pro-section-title,.contact-section-title) { font:italic 800 1.9rem/1.1 var(--j-display-font); margin-bottom:.65rem; }
.pro-bio-text { max-width:62ch; line-height:1.75; white-space:pre-line; }
.expert-tip-quote { max-width:53ch; font:italic 1.25rem/1.45 var(--j-reading-font); padding:.75rem 0; border-top:1px solid var(--j-line); }
.j-pro-sheet .contact-section { padding:1.1rem; background:var(--j-surface-raised); border-top:1px solid var(--j-line); scroll-margin-top:1rem; }
.contact-grid { display:grid; gap:.65rem; }
.contact-grid label { display:block; color:var(--j-muted); font-size:.82rem; font-weight:650; }
.contact-grid a { display:inline-flex; align-items:center; min-height:44px; overflow-wrap:anywhere; word-break:break-word; max-width:100%; }
.j-pro-sheet :is(.pro-full-cta,.btn-claim-orange) { display:inline-flex; align-items:center; min-height:46px; padding:.65rem 1rem; margin-top:1rem; border-radius:.25rem; background:var(--j-action); color:var(--j-action-text); font-weight:750; text-decoration:none; }
.pro-claim-banner { border-top:1px solid var(--j-line); padding:1rem 0; }
.pro-claim-title { font-weight:750; }
.pro-claim-text { color:var(--j-muted); max-width:64ch; }
.j-pro-sheet footer { border-top:1px solid var(--j-line); font-size:.86rem; }
.j-pro-sheet footer .container { max-width:var(--j-content); margin:auto; padding:1.5rem var(--j-gutter); }
.j-pro-sheet footer hr { display:none; }
.j-pro-sheet .footer-nav { display:flex; flex-wrap:wrap; gap:.35rem 1.3rem; }
.j-pro-sheet .footer-nav a { min-height:44px; display:inline-flex; align-items:center; }

/* Le blanc du support prolonge le papier des logos fournis. La certification reste un repère distinct. */
.pro-brand, .pro-identity:has(.pro-official-logo) {
  display:grid; grid-template-columns:minmax(0,28%) minmax(0,1fr); align-items:center;
  background:#fff; color:var(--j-ink); gap:clamp(.65rem,2vw,1.6rem);
  padding:clamp(.7rem,2vw,1.4rem); border-radius:var(--j-radius);
}
.pro-brand .directory-logo, .pro-mark img.pro-official-logo {
  display:block; align-self:center; justify-self:center; width:100%; height:auto; max-width:100%;
  max-height:var(--logo-height,7rem); object-fit:contain;
}
.pro-brand :is(h2,h3), .directory-card .pro-brand h3, .j-directory #directory-overview .pro-brand h2 {
  padding-inline-start:clamp(.65rem,1.8vw,1.2rem); border-inline-start:1px solid #ced0ca;
  color:var(--j-ink); font-size:clamp(1.5rem,3vw,2.35rem); overflow-wrap:anywhere;
}
.pro-identity:has(.pro-official-logo) {
  --logo-height:clamp(8rem,14vw,11rem);
  grid-template-columns:minmax(0,clamp(5.4rem,24%,13rem)) minmax(0,1fr);
  margin-block:.5rem 1rem;
}
.pro-identity:has(.pro-official-logo) .pro-mark { grid-area:1/1; }
.pro-identity:has(.pro-official-logo) > :first-child { grid-area:1/2; border-inline-start:1px solid #ced0ca; padding-inline-start:clamp(.7rem,2vw,2rem); }
.pro-identity:has(.pro-official-logo) .j-kicker { color:var(--j-paper-accent); }
.pro-identity:has(.pro-official-logo) :is(.pro-name,.pro-location-tag) { color:var(--j-ink); }
.pro-identity:has(.pro-official-logo) .pro-name { font-size:clamp(2rem,6.4vw,6rem); }
@media(min-width:48rem){
  .directory-filters { grid-template-columns:minmax(12rem,1.35fr) repeat(3,minmax(0,1fr)); }
  .directory-filters label:first-child { grid-column:auto; }
  .j-directory #pros-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.6rem 2.2rem; }
  .pro-profile-card { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); column-gap:clamp(2rem,6vw,6rem); align-items:start; }
  .pro-profile-card > * { grid-column:1; }
  .pro-profile-card .contact-section { grid-column:2; grid-row:1 / span 3; }
}
