/*
  Complément uniquement pour le vérificateur ABF du bloc supérieur.
  Le fichier style.css existant reste inchangé.
*/
.hero-abf-label {
  display: block;
  margin: 18px 0 8px;
  color: #eef7f5;
  font-size: .84rem;
  font-weight: 800;
}

.hero-abf-address-box {
  position: relative;
  z-index: 8;
}

.hero-abf-input-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 15px;
  background: #fff;
  color: var(--ink, #0a1b2a);
  transition: border-color .2s ease, box-shadow .2s ease;
}

.hero-abf-input-wrap:focus-within {
  border-color: var(--accent, #38c990);
  box-shadow: 0 0 0 4px rgba(56,201,144,.18);
}

.hero-abf-location {
  flex: 0 0 auto;
  color: var(--accent-dark, #087a54);
  font-weight: 900;
}

.hero-abf-input {
  width: 100%;
  min-width: 0;
  padding: 13px 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink, #0a1b2a);
  font: inherit;
}

.hero-abf-input::placeholder {
  color: #6b7780;
  opacity: 1;
}

.hero-abf-loader {
  display: none;
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  border: 2px solid #d9e4df;
  border-top-color: var(--accent-dark, #087a54);
  border-radius: 50%;
  animation: heroAbfSpin .7s linear infinite;
}

.hero-abf-loader.is-visible {
  display: block;
}

@keyframes heroAbfSpin {
  to { transform: rotate(360deg); }
}

.hero-abf-suggestions {
  display: none;
  position: absolute;
  top: calc(100% + 7px);
  right: 0;
  left: 0;
  max-height: 260px;
  overflow-y: auto;
  border: 1px solid rgba(10,27,42,.12);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 20px 45px rgba(0,0,0,.25);
}

.hero-abf-suggestions.is-visible {
  display: block;
}

.hero-abf-suggestion {
  display: flex;
  width: 100%;
  gap: 10px;
  align-items: flex-start;
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid #e6ece9;
  background: #fff;
  color: var(--ink, #0a1b2a);
  text-align: left;
  cursor: pointer;
}

.hero-abf-suggestion:last-child {
  border-bottom: 0;
}

.hero-abf-suggestion:hover,
.hero-abf-suggestion:focus-visible {
  background: #eefaf5;
  outline: 0;
}

.hero-abf-suggestion-icon {
  color: var(--accent-dark, #087a54);
  font-weight: 900;
}

.hero-abf-suggestion strong,
.hero-abf-suggestion small {
  display: block;
}

.hero-abf-suggestion strong {
  font-size: .9rem;
  line-height: 1.3;
}

.hero-abf-suggestion small {
  margin-top: 3px;
  color: #66757f;
  font-size: .76rem;
}

.hero-abf-empty {
  padding: 13px 14px;
  color: #566672;
  background: #fff;
  font-size: .84rem;
  font-weight: 650;
}

.hero-abf-result {
  margin-top: 12px;
  padding: 15px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 15px;
  background: rgba(255,255,255,.07);
  color: #f3f8fa;
  transition: background .2s ease, border-color .2s ease;
}

.hero-abf-result strong,
.hero-abf-result small {
  display: block;
}

.hero-abf-result strong {
  font-size: 1rem;
  line-height: 1.3;
}

.hero-abf-result small {
  margin-top: 5px;
  color: #c8d6de;
  line-height: 1.45;
}

.hero-abf-result.is-loading {
  border-color: rgba(42,111,219,.55);
  background: rgba(42,111,219,.15);
}

.hero-abf-result.is-abf {
  border-color: rgba(255,190,72,.62);
  background: rgba(184,108,11,.21);
}

.hero-abf-result.is-clear {
  border-color: rgba(56,201,144,.48);
  background: rgba(56,201,144,.15);
}

.hero-abf-result.is-protected {
  border-color: rgba(255,190,72,.58);
  background: rgba(184,108,11,.19);
}

.hero-abf-result.is-error {
  border-color: rgba(255,120,130,.56);
  background: rgba(180,58,67,.2);
}

.hero-abf-details {
  display: grid;
  gap: 5px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  color: #e3edf1;
  font-size: .79rem;
}

.hero-abf-details li {
  position: relative;
  padding-left: 15px;
}

.hero-abf-details li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--accent, #38c990);
  font-weight: 900;
}

.hero-abf-disclaimer {
  margin: 9px 2px 0 !important;
  color: #aebfc8 !important;
  font-size: .72rem !important;
  line-height: 1.4;
}

@media (max-width: 760px) {
  .hero-abf-label { margin-top: 15px; }
  .hero-abf-result { padding: 13px; }
}
