/* =========================================================
   ABS Global — Validation page (validation.html)
   Page-specific styles. Builds on assets/css/style.css
   (hero + breadcrumbs follow the services/about treatment;
   the certificate-type cards + search widget are page-local)
   ========================================================= */

/* ---------- Page hero (gradient artwork — this page ships without a photo) ---------- */
.page-hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 92px 0 80px;
  background: #0c2540;
  color: #fff;
  text-align: center;
}
.val-hero {
  background:
    radial-gradient(900px 420px at 16% 6%, rgba(55, 118, 189, .38), transparent 62%),
    radial-gradient(820px 420px at 88% 96%, rgba(37, 87, 136, .55), transparent 64%),
    linear-gradient(142deg, #061527 0%, #0a2541 52%, #0d3054 100%);
}
.val-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: radial-gradient(rgba(255, 255, 255, .08) 1px, transparent 1.4px);
  background-size: 26px 26px;
  -webkit-mask-image: radial-gradient(620px 320px at 50% 45%, #000 0%, transparent 78%);
  mask-image: radial-gradient(620px 320px at 50% 45%, #000 0%, transparent 78%);
  pointer-events: none;
}
.page-hero__inner {
  position: relative;
  z-index: 2;
  width: min(100% - 48px, 940px);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.page-hero h1 {
  max-width: 860px;
  margin: 4px 0 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(2.05rem, 3.9vw, 3.3rem);
  line-height: 1.16;
  letter-spacing: .002em;
  color: #fff;
  text-wrap: balance;
  text-shadow: 0 6px 40px rgba(2, 12, 24, .35);
}
.page-hero__sub {
  max-width: 680px;
  margin: 18px 0 0;
  font-size: .95rem;
  line-height: 1.8;
  color: rgba(255, 255, 255, .75);
  text-wrap: pretty;
}

/* ---------- Breadcrumbs (matches about/services hero) ---------- */
.crumbs {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px;
  margin-bottom: 16px;
  font-size: .78rem;
  color: rgba(255, 255, 255, .62);
  text-shadow: 0 1px 12px rgba(0, 0, 0, .55);
}
.crumbs a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, .75);
  transition: color .2s;
}
.crumbs a:hover { color: #fff; }
.crumbs svg { width: 13px; height: 13px; }
.crumbs__sep { color: rgba(255, 255, 255, .32); display: inline-flex; }
.crumbs [aria-current="page"] { color: #fff; font-weight: 600; }

/* ---------- Validation widget ---------- */
.val-section { overflow: hidden; }
.val-section .section-head { margin-bottom: clamp(26px, 3.4vw, 40px); }

.val-widget { max-width: 680px; margin-inline: auto; }

/* certificate-type cards */
.val-types {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.val-type {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 22px 16px 20px;
  border: 1.5px solid var(--line);
  border-radius: var(--radius-lg);
  background: #fff;
  text-align: center;
  cursor: pointer;
  transition: border-color .3s, background .3s, box-shadow .3s, transform .3s var(--ease);
}
.val-type:hover { border-color: var(--brand-200); transform: translateY(-2px); }
.val-type__icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 13px;
  background: #f1f5f9;
  color: var(--muted);
  transition: background .3s, color .3s;
}
.val-type__icon svg { width: 22px; height: 22px; }
.val-type__title {
  font-family: var(--font-head);
  font-size: .95rem;
  font-weight: 600;
  color: var(--ink);
}
.val-type__sub { font-size: .74rem; line-height: 1.55; color: var(--muted); }
.val-type__check {
  position: absolute;
  top: 10px;
  right: 10px;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  opacity: 0;
  transform: scale(.6);
  transition: opacity .3s, transform .3s var(--ease);
}
.val-type.is-active {
  border-color: var(--brand);
  background: var(--brand-50);
  box-shadow: 0 22px 44px -34px rgba(55, 118, 189, .6);
}
.val-type.is-active .val-type__icon { background: var(--brand); color: #fff; }
.val-type.is-active .val-type__title { color: var(--brand-700); }
.val-type.is-active .val-type__check { opacity: 1; transform: scale(1); }

/* divider label */
.val-divider {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 28px 0 18px;
}
.val-divider::before,
.val-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--line);
}
.val-divider span {
  white-space: nowrap;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}

/* search form */
.val-form { display: flex; gap: 10px; }
.val-input-wrap { position: relative; flex: 1; min-width: 0; }
.val-input-icon {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: var(--muted);
  pointer-events: none;
}
.val-input {
  width: 100%;
  height: 52px;
  padding: 0 18px 0 46px;
  border: 1.5px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: var(--ink);
  font-family: var(--font-head);
  font-size: .95rem;
  transition: border-color .25s, box-shadow .25s;
}
.val-input::placeholder { color: #93a5ba; }
.val-input:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 4px rgba(55, 118, 189, .12);
}
.val-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 0 0 auto;
  height: 52px;
  padding: 0 26px;
  border: 0;
  border-radius: 14px;
  background: var(--brand);
  color: #fff;
  font-family: var(--font-head);
  font-size: .92rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .25s, transform .25s var(--ease), opacity .25s;
}
.val-btn svg { width: 16px; height: 16px; }
.val-btn:hover:not(:disabled) { background: var(--brand-700); transform: translateY(-1px); }
.val-btn:disabled { background: #c9d6e4; cursor: not-allowed; }

/* result panel */
.val-result {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-top: 20px;
  padding: 18px 20px;
  border: 1px solid var(--brand-100);
  border-radius: 16px;
  background: var(--brand-50);
}
.val-result[hidden] { display: none; }
.val-result__icon {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--brand-100);
  border-radius: 12px;
  background: #fff;
  color: var(--brand-700);
}
.val-result__icon svg { width: 20px; height: 20px; }
.val-result__body { min-width: 0; }
.val-result__title {
  font-family: var(--font-head);
  font-size: .95rem;
  font-weight: 600;
  color: var(--ink);
}
.val-result__text {
  margin-top: 4px;
  font-size: .86rem;
  line-height: 1.7;
  color: var(--muted);
}
.val-result__code { font-weight: 600; color: var(--brand-700); word-break: break-all; }
.val-result__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-top: 14px;
}
.val-wa {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .86rem;
  font-weight: 600;
  color: var(--brand-700);
  transition: color .2s;
}
.val-wa:hover { color: var(--brand); }
.val-wa svg { width: 16px; height: 16px; fill: currentColor; stroke: none; }

/* widget icons (stroke style) */
.val-type__icon svg,
.val-type__check svg,
.val-input-icon,
.val-btn svg,
.val-result__icon svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.val-type__check svg { stroke-width: 3; }

/* ---------- Responsive ---------- */
@media (max-width: 640px) {
  .page-hero { padding: 74px 0 66px; }
  .val-hero { padding: 78px 0 68px; }
  .page-hero__inner { width: calc(100% - 36px); }
  .val-types { gap: 10px; }
  .val-type { padding: 18px 12px 16px; }
}
@media (max-width: 600px) {
  .val-form { flex-direction: column; }
  .val-btn { width: 100%; }
}
