/* CABS — outils lecteur : recherche, partage, contact, contribution et 404. */

.visually-hidden {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

/* Dans l’en-tête, Recherche reste une simple loupe compacte à toutes les largeurs desktop/tablette. */
.cabs-header-tool {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.35rem;
  min-width:2.35rem;
  min-height:2.35rem;
  padding:0;
  border:1px solid var(--line);
  border-radius:50%;
  color:inherit;
  font-size:.72rem;
  font-weight:650;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
}
.cabs-header-tool:hover,
.cabs-header-tool:focus-visible {
  background:var(--surface);
}
.cabs-header-tool svg {
  width:1.05rem;
  height:1.05rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.cabs-header-tool span { display:none; }

.cabs-search-page,
.cabs-contact-page,
.cabs-not-found {
  padding-bottom:var(--space-7);
}
.cabs-tool-intro {
  margin-bottom:var(--space-5);
}
.cabs-tool-intro .lead {
  max-width:62ch;
}

.cabs-search-form {
  display:flex;
  gap:.65rem;
  align-items:stretch;
  margin:var(--space-4) 0 var(--space-3);
}
.cabs-search-form label {
  flex:1 1 auto;
}
.cabs-search-form input[type="search"] {
  width:100%;
  min-height:3rem;
  padding:.78rem .9rem;
  border:1px solid var(--line);
  border-radius:.55rem;
  background:var(--surface);
  color:var(--text);
  font:inherit;
}
.cabs-search-form input[type="search"]:focus-visible,
.cabs-contact-form input:focus-visible,
.cabs-contact-form select:focus-visible,
.cabs-contact-form textarea:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:2px;
}
.cabs-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.75rem;
  padding:.72rem 1rem;
  border:1px solid var(--text);
  border-radius:.55rem;
  background:var(--text);
  color:var(--surface);
  font:inherit;
  font-weight:700;
  line-height:1.1;
  text-decoration:none;
  cursor:pointer;
}
.cabs-button--secondary {
  border-color:var(--line);
  background:transparent;
  color:var(--text);
}
.cabs-button:hover,
.cabs-button:focus-visible {
  filter:brightness(.96);
}
.cabs-search-status {
  min-height:1.5rem;
  color:var(--muted);
  font-size:.92rem;
}
.cabs-search-results {
  display:grid;
  gap:.8rem;
  margin:var(--space-3) 0 0;
  padding:0;
  list-style:none;
}
.cabs-search-result {
  padding:1rem 1.05rem;
  border:1px solid var(--line);
  border-radius:.75rem;
  background:var(--surface);
}
.cabs-search-result__meta {
  display:flex;
  flex-wrap:wrap;
  gap:.4rem .8rem;
  margin:0 0 .25rem;
  color:var(--muted);
  font-size:.78rem;
  font-weight:650;
  letter-spacing:.025em;
  text-transform:uppercase;
}
.cabs-search-result h2 {
  margin:.12rem 0 .35rem;
  font-size:clamp(1.15rem, 2.6vw, 1.45rem);
}
.cabs-search-result h2 a {
  color:inherit;
  text-decoration-thickness:.08em;
  text-underline-offset:.14em;
}
.cabs-search-result p {
  margin:0;
  color:var(--muted);
}

.cabs-share {
  margin-top:var(--space-4);
  padding-top:var(--space-3);
  border-top:1px solid var(--line);
}
.cabs-share__label {
  margin:0 0 .65rem;
  font-size:.82rem;
  font-weight:750;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.cabs-share__actions {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
.cabs-share__actions a,
.cabs-share__actions button {
  min-height:2.35rem;
  padding:.55rem .72rem;
  border:1px solid var(--line);
  border-radius:999px;
  background:transparent;
  color:var(--text);
  font:inherit;
  font-size:.86rem;
  font-weight:650;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
}
.cabs-share__actions a:hover,
.cabs-share__actions a:focus-visible,
.cabs-share__actions button:hover,
.cabs-share__actions button:focus-visible {
  background:var(--surface);
  border-color:var(--muted);
}
.cabs-share__status {
  min-height:1.15rem;
  margin:.45rem 0 0;
  color:var(--muted);
  font-size:.8rem;
}

.cabs-contribute {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem 1rem;
  align-items:center;
  margin-top:var(--space-3);
  padding:1rem 1.05rem;
  border-left:3px solid var(--accent);
  background:var(--surface);
}
.cabs-contribute strong {
  flex:1 1 100%;
}
.cabs-contribute a {
  font-size:.9rem;
  font-weight:650;
}
.cabs-updated {
  margin:.7rem 0 0;
  color:var(--muted);
  font-size:.84rem;
}

.cabs-contact-form {
  display:grid;
  gap:1rem;
  margin-top:var(--space-4);
  padding:clamp(1rem, 3vw, 1.5rem);
  border:1px solid var(--line);
  border-radius:.85rem;
  background:var(--surface);
}
.cabs-contact-form__row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
}
.cabs-contact-form label,
.cabs-contact-form fieldset {
  display:grid;
  gap:.38rem;
  margin:0;
}
.cabs-contact-form label > span,
.cabs-contact-form legend {
  font-size:.88rem;
  font-weight:700;
}
.cabs-contact-form label small {
  color:var(--muted);
  font-weight:500;
}
.cabs-contact-form input,
.cabs-contact-form select,
.cabs-contact-form textarea {
  width:100%;
  padding:.72rem .78rem;
  border:1px solid var(--line);
  border-radius:.48rem;
  background:#fff;
  color:var(--text);
  font:inherit;
}
.cabs-contact-form textarea {
  min-height:11rem;
  resize:vertical;
}
.cabs-contact-form__consent {
  display:flex !important;
  grid-template-columns:none !important;
  flex-direction:row;
  gap:.65rem !important;
  align-items:flex-start;
  color:var(--muted);
  font-size:.86rem;
}
.cabs-contact-form__consent input {
  width:auto;
  margin-top:.2rem;
}
.cabs-contact-form__fineprint {
  margin:0;
  color:var(--muted);
  font-size:.78rem;
}
.cabs-honeypot {
  position:absolute !important;
  left:-10000px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}
.cabs-form-status {
  display:none;
  margin:var(--space-3) 0;
  padding:.9rem 1rem;
  border:1px solid var(--line);
  border-radius:.55rem;
  background:var(--surface);
}
.cabs-form-status:target {
  display:block;
}

.cabs-not-found__links {
  display:flex;
  flex-wrap:wrap;
  gap:.7rem 1rem;
  margin-top:var(--space-4);
}
.cabs-not-found__links a {
  font-weight:650;
}

.cabs-social-links {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem 1rem;
  margin:.25rem 0 0;
  padding:0;
  list-style:none;
}
.cabs-social-links a {
  font-size:.86rem;
}

@media (min-width:981px) and (max-width:1050px) {
  .site-header__inner {
    grid-template-columns:minmax(17rem,1fr) minmax(29rem,1.65fr) auto;
    gap:.85rem;
  }
  .site-header .site-nav {
    grid-column:auto;
    grid-row:auto;
  }
  .site-nav__row {
    justify-content:flex-end;
    gap:.72rem !important;
  }
}

@media (max-width:680px) {
  .cabs-search-form {
    display:grid;
  }
  .cabs-search-form .cabs-button {
    width:100%;
  }
  .cabs-contact-form__row {
    grid-template-columns:1fr;
  }
  .cabs-share__actions a,
  .cabs-share__actions button {
    min-height:2.55rem;
  }
}
