{"id":77498,"date":"2026-06-11T11:41:56","date_gmt":"2026-06-11T10:41:56","guid":{"rendered":"https:\/\/aceworldpgs.com\/tools\/?p=77498"},"modified":"2026-06-11T11:47:43","modified_gmt":"2026-06-11T10:47:43","slug":"isbn-lookup","status":"publish","type":"post","link":"https:\/\/aceworldpgs.com\/tools\/isbn-lookup\/","title":{"rendered":"ISBN Lookup"},"content":{"rendered":"\n<p class=\"has-text-align-center wp-block-paragraph\"><!-- ============================================================\n     SCHEMA \u2014 SoftwareApplication\n============================================================ -->\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"WebApplication\",\n  \"name\": \"ISBN Lookup\",\n  \"url\": \"https:\/\/aceworldpgs.com\/tools\/isbn-lookup\/\",\n  \"description\": \"Free ISBN lookup tool. Enter any ISBN-10 or ISBN-13 to instantly retrieve book details including title, author, publisher, cover image, and description. Also search 25+ global bookstores and the National Library of Nigeria registry.\",\n  \"applicationCategory\": \"UtilitiesApplication\",\n  \"operatingSystem\": \"Any\",\n  \"offers\": {\n    \"@type\": \"Offer\",\n    \"price\": \"0\",\n    \"priceCurrency\": \"NGN\"\n  },\n  \"featureList\": [\n    \"Book metadata lookup via Google Books and Open Library\",\n    \"25+ global bookstore search links\",\n    \"National Library of Nigeria ISBN registry check\",\n    \"Recent search history\",\n    \"ISBN-10 to ISBN-13 conversion\"\n  ],\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"ACEworld Publishers Limited\",\n    \"url\": \"https:\/\/aceworldpgs.com\"\n  }\n}\n<\/script>\n\n<style>\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   ISBN LOOKUP \u2014 Design tokens (self-contained)\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n:root {\n  --l-navy:      #0f1c3f;\n  --l-blue:      #1d4ed8;\n  --l-blue-lt:   #3b82f6;\n  --l-blue-pale: #eff6ff;\n  --l-green:     #166534;\n  --l-green-lt:  #dcfce7;\n  --l-green-bd:  #86efac;\n  --l-red:       #dc2626;\n  --l-red-lt:    #fef2f2;\n  --l-red-bd:    #fca5a5;\n  --l-amber:     #f59e0b;\n  --l-amber-lt:  #fffbeb;\n  --l-white:     #ffffff;\n  --l-gray-50:   #f8fafc;\n  --l-gray-100:  #f1f5f9;\n  --l-gray-200:  #e2e8f0;\n  --l-gray-300:  #cbd5e1;\n  --l-gray-400:  #94a3b8;\n  --l-gray-600:  #475569;\n  --l-gray-800:  #1e293b;\n  --l-radius:    12px;\n  --l-radius-sm: 8px;\n  --l-shadow:    0 4px 24px rgba(15,28,63,0.08);\n  --l-shadow-lg: 0 12px 48px rgba(15,28,63,0.12);\n  --l-trans:     all 0.2s cubic-bezier(0.4,0,0.2,1);\n  --l-font:      'DM Sans', 'Segoe UI', system-ui, sans-serif;\n  --l-mono:      'DM Mono', 'Fira Code', ui-monospace, monospace;\n}\n\n\/* \u2500\u2500 TOOL WRAPPER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-tool { max-width: 900px; margin: 0 auto; font-family: var(--l-font); }\n\n\/* \u2500\u2500 ACE HEADER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-header {\n  background: linear-gradient(135deg, #0d1b3e 0%, #163066 50%, #1a4d6e 100%);\n  padding: 28px 32px 24px;\n  border-radius: 20px 20px 0 0;\n  position: relative; overflow: hidden;\n}\n.isbn-l-header::after {\n  content: ''; position: absolute;\n  right: -80px; top: -80px;\n  width: 260px; height: 260px; border-radius: 50%;\n  background: rgba(29,78,216,0.14); pointer-events: none;\n}\n.isbn-l-header::before {\n  content: ''; position: absolute;\n  left: -50px; bottom: -60px;\n  width: 180px; height: 180px; border-radius: 50%;\n  background: rgba(16,185,129,0.08); pointer-events: none;\n}\n.isbn-l-header-inner {\n  display: flex; align-items: flex-start;\n  justify-content: space-between; gap: 16px; flex-wrap: wrap;\n  position: relative; z-index: 1;\n}\n.isbn-l-badge {\n  display: inline-flex; align-items: center; gap: 5px;\n  padding: 3px 10px; border-radius: 20px;\n  font-size: 10px; font-weight: 800; text-transform: uppercase;\n  letter-spacing: 0.08em; color: #fff; width: fit-content; margin-bottom: 8px;\n  background: rgba(16,185,129,0.35); border: 1px solid rgba(16,185,129,0.55);\n}\n.isbn-l-title {\n  color: #fff; font-size: clamp(18px,3vw,22px); font-weight: 700;\n  letter-spacing: -0.02em; line-height: 1.2; margin: 0 0 6px;\n}\n.isbn-l-subtitle {\n  color: rgba(255,255,255,0.65); font-size: 13px; line-height: 1.5; margin: 0;\n  max-width: 480px;\n}\n.isbn-l-cta {\n  display: inline-flex; align-items: center; gap: 7px;\n  background: rgba(255,255,255,0.10); color: #fff;\n  font-family: var(--l-font); font-size: 11px; font-weight: 600;\n  padding: 8px 14px; border-radius: 20px; text-decoration: none;\n  border: 1px solid rgba(255,255,255,0.22); white-space: nowrap;\n  transition: var(--l-trans); flex-shrink: 0; position: relative; z-index: 1;\n}\n.isbn-l-cta:hover { background: rgba(255,255,255,0.20); color: #fff; text-decoration: none; }\n.isbn-l-cta-badge {\n  background: var(--l-amber); color: #000;\n  font-size: 9px; font-weight: 800; padding: 2px 6px; border-radius: 4px;\n}\n\n\/* \u2500\u2500 SHELL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-shell {\n  background: var(--l-white);\n  border-radius: 0 0 20px 20px;\n  box-shadow: var(--l-shadow-lg);\n  overflow: hidden;\n}\n\n\/* \u2500\u2500 SWITCH TO VALIDATOR BANNER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-switch-bar {\n  background: var(--l-blue-pale);\n  border-bottom: 1px solid var(--l-gray-200);\n  padding: 10px 28px;\n  display: flex; align-items: center; justify-content: space-between; gap: 8px;\n}\n.isbn-l-switch-bar span { font-size: 12px; color: var(--l-gray-600); }\n.isbn-l-switch-link {\n  display: inline-flex; align-items: center; gap: 6px;\n  font-size: 12px; font-weight: 600; color: var(--l-blue);\n  text-decoration: none; transition: var(--l-trans);\n}\n.isbn-l-switch-link:hover { color: var(--l-navy); text-decoration: none; }\n\n\/* \u2500\u2500 INPUT AREA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-input-area { padding: 28px 28px 0; }\n.isbn-l-input-lbl {\n  display: block; font-size: 11px; font-weight: 700;\n  text-transform: uppercase; letter-spacing: 0.08em;\n  color: var(--l-gray-600); margin-bottom: 10px;\n}\n.isbn-l-input-row { display: flex; gap: 10px; align-items: stretch; }\n.isbn-l-input-wrap { flex: 1; position: relative; }\n.isbn-l-input-wrap .isbn-l-prefix {\n  position: absolute; left: 14px; top: 50%;\n  transform: translateY(-50%);\n  font-size: 12px; font-weight: 700; color: var(--l-gray-400);\n  pointer-events: none; font-family: var(--l-mono); letter-spacing: 0.05em;\n}\n#isbnLInput {\n  width: 100%; padding: 14px 14px 14px 58px;\n  border: 2px solid var(--l-gray-200); border-radius: var(--l-radius-sm);\n  font-size: 18px; font-family: var(--l-mono); font-weight: 500;\n  color: var(--l-gray-800); background: var(--l-white); outline: none;\n  transition: var(--l-trans); letter-spacing: 0.06em; -webkit-appearance: none;\n  box-sizing: border-box;\n}\n#isbnLInput::placeholder { color: var(--l-gray-300); font-size: 15px; letter-spacing: 0; font-family: var(--l-font); }\n#isbnLInput:focus { border-color: var(--l-blue-lt); box-shadow: 0 0 0 4px rgba(59,130,246,0.1); }\n#isbnLInput.l-active { border-color: var(--l-blue-lt); background: var(--l-blue-pale); }\n#isbnLInput.l-error  { border-color: var(--l-red);     background: var(--l-red-lt);   }\n\n.isbn-l-lookup-btn {\n  padding: 14px 24px; background: var(--l-blue); color: #fff;\n  border: none; border-radius: var(--l-radius-sm);\n  font-size: 14px; font-weight: 700; font-family: var(--l-font);\n  cursor: pointer; transition: var(--l-trans); white-space: nowrap;\n  display: flex; align-items: center; gap: 8px; flex-shrink: 0;\n}\n.isbn-l-lookup-btn:hover  { background: #1a45c0; box-shadow: 0 4px 16px rgba(29,78,216,0.3); }\n.isbn-l-lookup-btn:active { transform: scale(0.98); }\n.isbn-l-lookup-btn:disabled { background: var(--l-gray-400); cursor: not-allowed; }\n\n\/* \u2500\u2500 LOADING \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-loading {\n  display: flex; align-items: center; gap: 10px;\n  padding: 20px 0; font-size: 13px; color: var(--l-gray-600);\n}\n.isbn-l-spinner {\n  width: 18px; height: 18px;\n  border: 2px solid var(--l-gray-200);\n  border-top-color: var(--l-blue);\n  border-radius: 50%; animation: lSpin 0.7s linear infinite;\n}\n@keyframes lSpin { to { transform: rotate(360deg); } }\n\n\/* \u2500\u2500 RESULT AREA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-result-area { padding: 0 28px; }\n\n\/* \u2500\u2500 BOOK CARD \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-book-card {\n  background: var(--l-gray-50); border: 1px solid var(--l-gray-200);\n  border-radius: var(--l-radius); padding: 20px;\n  display: flex; gap: 18px; align-items: flex-start;\n  animation: lFadeIn 0.35s cubic-bezier(0.4,0,0.2,1);\n}\n@keyframes lFadeIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }\n.isbn-l-cover {\n  width: 80px; min-width: 80px; border-radius: 5px;\n  box-shadow: 0 6px 18px rgba(0,0,0,0.18); object-fit: cover;\n}\n.isbn-l-cover-placeholder {\n  width: 80px; min-width: 80px; height: 110px; border-radius: 5px;\n  background: var(--l-gray-200); display: flex; align-items: center;\n  justify-content: center; font-size: 28px; flex-shrink: 0;\n}\n.isbn-l-book-info { flex: 1; min-width: 0; }\n.isbn-l-book-title { font-size: 17px; font-weight: 700; color: var(--l-gray-800); margin: 0 0 4px; line-height: 1.3; }\n.isbn-l-book-author { font-size: 13px; color: var(--l-gray-600); margin-bottom: 6px; }\n.isbn-l-book-meta-row { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }\n.isbn-l-meta-chip {\n  display: inline-flex; align-items: center; gap: 4px;\n  background: var(--l-gray-100); border: 1px solid var(--l-gray-200);\n  border-radius: 6px; padding: 3px 9px;\n  font-size: 11px; font-weight: 600; color: var(--l-gray-600);\n}\n.isbn-l-book-desc {\n  font-size: 12px; color: var(--l-gray-600); line-height: 1.65;\n  max-height: 80px; overflow: hidden; position: relative;\n}\n.isbn-l-book-desc.expanded { max-height: none; }\n.isbn-l-desc-toggle {\n  font-size: 11px; font-weight: 600; color: var(--l-blue);\n  background: none; border: none; cursor: pointer;\n  font-family: var(--l-font); padding: 3px 0; margin-top: 4px;\n  display: block;\n}\n.isbn-l-source-note { font-size: 10px; color: var(--l-gray-400); font-style: italic; margin-top: 8px; }\n\n\/* \u2500\u2500 NOT FOUND CARD \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-not-found {\n  background: var(--l-amber-lt); border: 1.5px solid #fde68a;\n  border-radius: var(--l-radius-sm); padding: 16px 18px;\n  font-size: 13px; color: #92400e; line-height: 1.6;\n  animation: lFadeIn 0.3s ease;\n}\n\n\/* \u2500\u2500 SECTION DIVIDER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-section { padding: 20px 28px 0; }\n.isbn-l-sec-hd  { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }\n.isbn-l-sec-title {\n  font-size: 10px; font-weight: 800; text-transform: uppercase;\n  letter-spacing: 0.1em; color: var(--l-blue); white-space: nowrap;\n}\n.isbn-l-sec-line { flex: 1; height: 1px; background: var(--l-gray-200); }\n\n\/* \u2500\u2500 STORE PILLS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-pill-grid { display: flex; flex-wrap: wrap; gap: 7px; }\n.isbn-l-store-pill {\n  display: inline-flex; align-items: center; gap: 5px;\n  padding: 6px 12px; background: var(--l-white);\n  border: 1.5px solid var(--l-gray-200); border-radius: 20px;\n  font-size: 12px; font-weight: 600; color: #374151;\n  cursor: pointer; transition: var(--l-trans);\n  font-family: var(--l-font); text-decoration: none;\n}\n.isbn-l-store-pill:hover {\n  border-color: var(--l-blue-lt); background: var(--l-blue-pale);\n  color: var(--l-blue); transform: translateY(-1px);\n  box-shadow: 0 3px 10px rgba(29,78,216,0.12); text-decoration: none;\n}\n.isbn-l-store-pill.visited {\n  background: var(--l-green-lt); border-color: var(--l-green-bd); color: var(--l-green);\n}\n\n\/* \u2500\u2500 SHOW MORE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-more-btn {\n  display: inline-flex; align-items: center; gap: 7px;\n  margin-top: 12px; padding: 7px 16px;\n  background: var(--l-gray-100); border: 1px solid var(--l-gray-200);\n  border-radius: 20px; font-size: 12px; font-weight: 600;\n  color: var(--l-gray-600); cursor: pointer;\n  transition: var(--l-trans); font-family: var(--l-font);\n}\n.isbn-l-more-btn:hover { background: var(--l-navy); color: #fff; border-color: var(--l-navy); }\n.isbn-l-more-btn .chev { transition: transform 0.3s ease; font-size: 10px; display: inline-block; }\n.isbn-l-more-btn.open .chev { transform: rotate(180deg); }\n\n.isbn-l-ext-wrap {\n  max-height: 0; overflow: hidden;\n  transition: max-height 0.4s cubic-bezier(0.4,0,0.2,1);\n}\n.isbn-l-ext-wrap.open { max-height: 800px; }\n.isbn-l-ext-inner { padding-top: 10px; }\n\n\/* \u2500\u2500 NLN + EXTERNAL LOOKUPS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-special-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }\n.isbn-l-special-card {\n  display: flex; align-items: center; gap: 12px;\n  padding: 14px 16px; border-radius: var(--l-radius-sm);\n  cursor: pointer; transition: var(--l-trans);\n  text-decoration: none; font-family: var(--l-font);\n}\n.isbn-l-special-card:hover { transform: translateY(-1px); text-decoration: none; }\n.isbn-l-special-card.green-card {\n  background: linear-gradient(135deg,#14532d,#166534);\n  border: none; color: #fff;\n}\n.isbn-l-special-card.green-card:hover { filter: brightness(1.1); box-shadow: 0 6px 20px rgba(22,101,52,0.35); }\n.isbn-l-special-card.blue-card {\n  background: var(--l-blue-pale); border: 1.5px solid #bfdbfe;\n}\n.isbn-l-special-card.blue-card:hover { background: var(--l-blue); }\n.isbn-l-special-card.blue-card:hover .sc-lbl,\n.isbn-l-special-card.blue-card:hover .sc-sub { color: #fff; }\n.isbn-l-special-card.slate-card {\n  background: var(--l-gray-50); border: 1.5px solid var(--l-gray-200);\n}\n.isbn-l-special-card.slate-card:hover { background: var(--l-gray-800); }\n.isbn-l-special-card.slate-card:hover .sc-lbl,\n.isbn-l-special-card.slate-card:hover .sc-sub { color: #fff; }\n.sc-ico  { font-size: 22px; flex-shrink: 0; }\n.sc-lbl  { font-size: 13px; font-weight: 700; color: inherit; transition: var(--l-trans); }\n.sc-lbl.dark  { color: var(--l-gray-800); }\n.sc-sub  { font-size: 11px; opacity: 0.65; margin-top: 1px; color: inherit; transition: var(--l-trans); }\n.sc-sub.dark  { color: var(--l-gray-600); }\n\n\/* \u2500\u2500 HISTORY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-hist-empty { font-size: 12px; color: var(--l-gray-400); font-style: italic; }\n.isbn-l-hist-pill {\n  display: inline-flex; align-items: center; gap: 6px;\n  padding: 5px 12px; background: var(--l-gray-100);\n  border: 1px solid var(--l-gray-200); border-radius: 20px;\n  font-size: 12px; font-weight: 600; color: var(--l-gray-600);\n  cursor: pointer; transition: var(--l-trans); font-family: var(--l-mono);\n}\n.isbn-l-hist-pill:hover { background: var(--l-navy); color: #fff; border-color: var(--l-navy); }\n\n\/* \u2500\u2500 UPSELL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-upsell {\n  background: var(--l-green-lt); border: 1.5px solid var(--l-green-bd);\n  border-radius: var(--l-radius-sm); padding: 12px 16px;\n  display: flex; align-items: center; gap: 10px;\n}\n.isbn-l-upsell p { font-size: 12px; color: var(--l-green); line-height: 1.5; margin: 0; }\n.isbn-l-upsell a { color: var(--l-green); font-weight: 700; text-decoration: underline; }\n.isbn-l-upsell a:hover { color: var(--l-navy); }\n\n\/* \u2500\u2500 ABOUT SECTION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-about {\n  margin: 20px 28px 0;\n  background: var(--l-gray-50); border: 1px solid var(--l-gray-200);\n  border-radius: var(--l-radius); padding: 22px 24px;\n}\n.isbn-l-about h2 { font-size: 15px; font-weight: 700; color: var(--l-navy); margin: 0 0 10px; }\n.isbn-l-about p  { font-size: 13px; color: var(--l-gray-600); line-height: 1.7; margin: 0 0 10px; }\n.isbn-l-about p:last-child { margin: 0; }\n.isbn-l-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px; }\n.isbn-l-about-item {\n  background: var(--l-white); border: 1px solid var(--l-gray-200);\n  border-radius: var(--l-radius-sm); padding: 14px 16px;\n}\n.isbn-l-about-item .ai-ico   { font-size: 18px; margin-bottom: 6px; display: block; }\n.isbn-l-about-item .ai-title { font-size: 12px; font-weight: 700; color: var(--l-gray-800); margin-bottom: 3px; }\n.isbn-l-about-item .ai-desc  { font-size: 11px; color: var(--l-gray-600); line-height: 1.5; }\n\n\/* \u2500\u2500 FOOTER PAD \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.isbn-l-pad { height: 28px; }\n\n\/* \u2500\u2500 RESPONSIVE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@media (max-width: 620px) {\n  .isbn-l-header { padding: 20px 20px 18px; border-radius: 16px 16px 0 0; }\n  .isbn-l-header-inner { flex-direction: column; gap: 14px; }\n  .isbn-l-input-area, .isbn-l-result-area, .isbn-l-section { padding-left: 18px; padding-right: 18px; }\n  .isbn-l-input-row { flex-direction: column; }\n  .isbn-l-lookup-btn { width: 100%; justify-content: center; padding: 14px; }\n  .isbn-l-book-card { flex-direction: column; align-items: flex-start; }\n  .isbn-l-special-grid { grid-template-columns: 1fr; }\n  .isbn-l-about { margin-left: 18px; margin-right: 18px; }\n  .isbn-l-about-grid { grid-template-columns: 1fr; }\n  .isbn-l-switch-bar { padding: 10px 18px; }\n}\n<\/style>\n\n<!-- MARKUP -->\n<div class=\"isbn-l-tool\">\n\n  <!-- Header -->\n  <div class=\"isbn-l-header\">\n    <div class=\"isbn-l-header-inner\">\n      <div>\n        <div class=\"isbn-l-badge\">\ud83d\udd0e ISBN<\/div>\n        <h1 class=\"isbn-l-title\">ISBN Lookup<\/h1>\n        <p class=\"isbn-l-subtitle\">Enter any ISBN to retrieve full book details and search it across 25+ global bookstores and the Nigerian library registry.<\/p>\n      <\/div>\n      <a href=\"https:\/\/aceworldpgs.com\/acepublishingchecklist\" class=\"isbn-l-cta\" target=\"_blank\">\n        Download Publishing Checklist <span class=\"isbn-l-cta-badge\">\u2b07<\/span>\n      <\/a>\n    <\/div>\n  <\/div>\n\n  <div class=\"isbn-l-shell\">\n\n    <!-- Switch banner -->\n    <div class=\"isbn-l-switch-bar\">\n      <span>Just need to check if an ISBN is valid?<\/span>\n      <a href=\"https:\/\/aceworldpgs.com\/tools\/isbn-validator\/\" class=\"isbn-l-switch-link\">\n        Switch to ISBN Validator \u2192\n      <\/a>\n    <\/div>\n\n    <!-- Input -->\n    <div class=\"isbn-l-input-area\">\n      <label class=\"isbn-l-input-lbl\" for=\"isbnLInput\">Enter ISBN-10 or ISBN-13<\/label>\n      <form onsubmit=\"isbnLLookup(); return false;\" class=\"isbn-l-input-row\">\n        <div class=\"isbn-l-input-wrap\">\n          <span class=\"isbn-l-prefix\">ISBN<\/span>\n          <input type=\"text\" id=\"isbnLInput\"\n                 placeholder=\"e.g. 9780747532743\"\n                 autocomplete=\"off\" autocorrect=\"off\"\n                 spellcheck=\"false\" inputmode=\"numeric\"\n                 maxlength=\"17\" required>\n        <\/div>\n        <button type=\"submit\" id=\"isbnLBtn\" class=\"isbn-l-lookup-btn\"\n                onclick=\"trackTool('isbn_lookup')\">\n          \ud83d\udd0e Look Up\n        <\/button>\n      <\/form>\n    <\/div>\n\n    <!-- Metadata result -->\n    <div class=\"isbn-l-result-area\" style=\"padding-top:16px;\">\n      <div id=\"isbnLMetaResult\"><\/div>\n    <\/div>\n\n    <!-- Search Literary Databases -->\n    <div class=\"isbn-l-section\">\n      <div class=\"isbn-l-sec-hd\">\n        <span class=\"isbn-l-sec-title\">Search Literary Databases<\/span>\n        <span class=\"isbn-l-sec-line\"><\/span>\n      <\/div>\n      <div class=\"isbn-l-pill-grid\" id=\"isbnLMajorStores\"><\/div>\n\n      <button class=\"isbn-l-more-btn\" id=\"isbnLMoreBtn\" onclick=\"isbnLToggleMore()\">\n        <span>Show More Platforms<\/span>\n        <span class=\"chev\">\u25bc<\/span>\n      <\/button>\n\n      <div class=\"isbn-l-ext-wrap\" id=\"isbnLExtWrap\">\n        <div class=\"isbn-l-ext-inner\">\n          <div class=\"isbn-l-pill-grid\" id=\"isbnLExtStores\"><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Upsell -->\n    <div class=\"isbn-l-section\">\n      <div class=\"isbn-l-upsell\">\n        <span style=\"font-size:20px;\">\ud83d\udcda<\/span>\n        <p>\n          Want your book on these stores?\n          <a href=\"https:\/\/aceworldpgs.com\/tools\/publishing-calculator\/\">Get a publishing quotation \u2192<\/a>\n        <\/p>\n      <\/div>\n    <\/div>\n\n    <!-- Special Lookups -->\n    <div class=\"isbn-l-section\">\n      <div class=\"isbn-l-sec-hd\">\n        <span class=\"isbn-l-sec-title\">Additional Registries &amp; Resources<\/span>\n        <span class=\"isbn-l-sec-line\"><\/span>\n      <\/div>\n      <div class=\"isbn-l-special-grid\">\n\n        <!-- NLN Registry -->\n        <a class=\"isbn-l-special-card green-card\" id=\"isbnLNLNCard\" href=\"https:\/\/isbn.nln.gov.ng\/search\/index.php\" target=\"_blank\" rel=\"noopener noreferrer\" onclick=\"trackTool(&#039;NLN_verifier&#039;); isbnLOpenNLN(event)\">\n          <span class=\"sc-ico\">\ud83c\uddf3\ud83c\uddec<\/span>\n          <div>\n            <div class=\"sc-lbl\">Check NLN Registry<\/div>\n            <div class=\"sc-sub\">National Library of Nigeria ISBN registry<\/div>\n          <\/div>\n        <\/a>\n\n        <!-- ISBNlookup.org -->\n        <a class=\"isbn-l-special-card blue-card\" id=\"isbnLExtLookupCard\" href=\"https:\/\/isbnlookup.org\/\" target=\"_blank\" rel=\"noopener noreferrer\" onclick=\"isbnLOpenExternal(&#039;https:\/\/isbnlookup.org\/search?isbn=&#039;, event)\">\n          <span class=\"sc-ico\">\ud83c\udf10<\/span>\n          <div>\n            <div class=\"sc-lbl dark\">ISBNlookup.org<\/div>\n            <div class=\"sc-sub dark\">Cross-database ISBN metadata search<\/div>\n          <\/div>\n        <\/a>\n\n        <!-- ISBNsearch.org -->\n        <a class=\"isbn-l-special-card slate-card\" id=\"isbnLISBNSearchCard\" href=\"https:\/\/isbnsearch.org\/\" target=\"_blank\" rel=\"noopener noreferrer\" onclick=\"isbnLOpenExternal(&#039;https:\/\/isbnsearch.org\/isbn\/&#039;, event)\">\n          <span class=\"sc-ico\">\ud83d\udd0d<\/span>\n          <div>\n            <div class=\"sc-lbl dark\">ISBNsearch.org<\/div>\n            <div class=\"sc-sub dark\">US-based ISBN database lookup<\/div>\n          <\/div>\n        <\/a>\n\n        <!-- WorldCat deep search -->\n        <a class=\"isbn-l-special-card slate-card\" id=\"isbnLWorldCatCard\" href=\"https:\/\/www.worldcat.org\/\" target=\"_blank\" rel=\"noopener noreferrer\" onclick=\"isbnLOpenExternal(&#039;https:\/\/www.worldcat.org\/search?q=isbn:&#039;, event)\">\n          <span class=\"sc-ico\">\ud83c\udfdb\ufe0f<\/span>\n          <div>\n            <div class=\"sc-lbl dark\">WorldCat Libraries<\/div>\n            <div class=\"sc-sub dark\">Find in libraries worldwide<\/div>\n          <\/div>\n        <\/a>\n\n      <\/div>\n    <\/div>\n\n    <!-- Recent Searches -->\n    <div class=\"isbn-l-section\">\n      <div class=\"isbn-l-sec-hd\">\n        <span class=\"isbn-l-sec-title\">Recent Searches<\/span>\n        <span class=\"isbn-l-sec-line\"><\/span>\n      <\/div>\n      <div class=\"isbn-l-pill-grid\" id=\"isbnLHistory\">\n        <span class=\"isbn-l-hist-empty\">No recent searches yet.<\/span>\n      <\/div>\n    <\/div>\n\n    <!-- About the tool -->\n    <div class=\"isbn-l-about\">\n     <!--\n      <h2>About This Tool<\/h2>\n      <p>The <strong>ISBN Lookup<\/strong> tool retrieves book metadata \u2014 title, author, publisher, publication date, cover image, and description \u2014 directly from the <strong>Google Books API<\/strong>, with <strong>Open Library<\/strong> as a fallback for books not found there. It then lets you open the book's page on any of 25+ international bookstores with a single click.<\/p>\n      <p>This tool is designed for authors, self-publishers, librarians, booksellers, and researchers who need to quickly identify a book, check its global availability, or verify registration in the Nigerian National Library registry.<\/p>\n      -->\n      <div class=\"isbn-l-about-grid\">\n        <div class=\"isbn-l-about-item\">\n          <span class=\"ai-ico\">\ud83d\udcd6<\/span>\n          <div class=\"ai-title\">Book Metadata<\/div>\n          <div class=\"ai-desc\">Retrieves title, author, cover, publisher, page count, description, and more.<\/div>\n        <\/div>\n        <div class=\"isbn-l-about-item\">\n          <span class=\"ai-ico\">\ud83c\udf0d<\/span>\n          <div class=\"ai-title\">25+ Platforms<\/div>\n          <div class=\"ai-desc\">Search Amazon, Google Books, Apple Books, Kobo, Goodreads, Overdrive, and many more.<\/div>\n        <\/div>\n        <div class=\"isbn-l-about-item\">\n          <span class=\"ai-ico\">\ud83c\uddf3\ud83c\uddec<\/span>\n          <div class=\"ai-title\">NLN Registry<\/div>\n          <div class=\"ai-desc\">Check the official National Library of Nigeria ISBN registry directly from this tool.<\/div>\n        <\/div>\n        <div class=\"isbn-l-about-item\">\n          <span class=\"ai-ico\">\ud83d\udd04<\/span>\n          <div class=\"ai-title\">ISBN-10 Supported<\/div>\n          <div class=\"ai-desc\">Automatically converts ISBN-10 to ISBN-13 before looking up.<\/div>\n        <\/div>\n      <\/div>\n      <p style=\"margin-top:14px;\">Don't have an ISBN yet? <a href=\"https:\/\/aceworldpgs.com\/tools\/publishing-calculator\/\" style=\"color:var(--l-blue);font-weight:600;\">Get one through ACEworld Publishers \u2192<\/a><\/p>\n    <\/div>\n\n    <div class=\"isbn-l-pad\"><\/div>\n\n  <\/div><!-- \/.isbn-l-shell -->\n<\/div><!-- \/.isbn-l-tool -->\n\n\n<style>\n\n\/* SHARE SECTION *\/\n\n.share-section{\ntext-align:center;\npadding:28px 0;\nmargin-top:30px;\nborder-top:1px solid #e5e7eb;\n}\n\n\/* COPY LINK BUTTON *\/\n\n.copy-link-btn{\ndisplay:inline-flex;\nalign-items:center;\ngap:6px;\nfont-size:14px;\nfont-weight:600;\ncolor:var(--text-main);\nbackground:#f8fafc;\npadding:6px 12px;\nborder-radius:6px;\ntext-decoration:none;\ncursor:pointer;\ntransition:all .2s ease;\nmargin-bottom:18px;\n}\n\n.copy-link-btn:hover{\nbackground:#eef2f7;\ntransform:translateY(-1px);\n}\n\n\/* SHARE BUTTON ROW *\/\n\n.share-btns{\ndisplay:flex;\njustify-content:center;\ngap:12px;\nflex-wrap:wrap;\n}\n\n\/* SHARE ICON *\/\n\n.share-icon{\nwidth:36px;\nheight:36px;\nborder-radius:50%;\ndisplay:flex;\nalign-items:center;\njustify-content:center;\ncolor:#fff;\nfont-size:14px;\nfont-weight:600;\ntext-decoration:none;\ntransition:all .2s ease;\n}\n\n\/* BRAND COLORS *\/\n\n.wa{background:#25D366;}\n.tw{background:#000;}\n.li{background:#0A66C2;}\n.fb{background:#1877F2;}\n.ml{background:#ef4444;}\n\n\/* HOVER EFFECT *\/\n\n.share-icon:hover{\ntransform:translateY(-2px) scale(1.05);\nopacity:.9;\n}\n\n\/* COPY FEEDBACK *\/\n\n.copy-feedback{\nfont-size:12px;\ncolor:#16a34a;\nmargin-top:10px;\ndisplay:none;\n}\n\n<\/style>\n\n\n<div class=\"share-section\">\n\n<a onclick=\"copyToolLink()\" class=\"copy-link-btn\" id=\"copyBtn\">\n\ud83d\udd17 Copy Page Link\n<\/a>\n\n<div class=\"share-btns\">\n<a href=\"#\" id=\"shareWA\" target=\"_blank\" class=\"share-icon wa\" title=\"Share on WhatsApp\">W<\/a>\n<a href=\"#\" id=\"shareTW\" target=\"_blank\" class=\"share-icon tw\" title=\"Share on X\">X<\/a>\n<a href=\"#\" id=\"shareLI\" target=\"_blank\" class=\"share-icon li\" title=\"Share on LinkedIn\">in<\/a>\n<a href=\"#\" id=\"shareFB\" target=\"_blank\" class=\"share-icon fb\" title=\"Share on Facebook\">f<\/a>\n<a href=\"#\" id=\"shareEmail\" target=\"_blank\" class=\"share-icon ml\" title=\"Share via Email\">M<\/a>\n<\/div>\n\n<div id=\"copyFeedback\" class=\"copy-feedback\">Link copied!<\/div>\n\n<\/div>\n\n\n<script>\n\nfunction copyToolLink(){\n\nconst url = window.location.href;\n\nnavigator.clipboard.writeText(url).then(()=>{\n\nconst f = document.getElementById(\"copyFeedback\");\n\nf.style.display=\"block\";\n\nsetTimeout(()=>{f.style.display=\"none\"},2000);\n\n}).catch(()=>{\n\nalert(\"Copy failed. Please copy the URL manually.\");\n\n});\n\n}\n\nfunction setupShareButtons(){\n\nlet pageUrl=encodeURIComponent(window.location.href)\nlet pageTitle=encodeURIComponent(document.title)\n\ndocument.getElementById(\"shareWA\").href=\n`https:\/\/wa.me\/?text=${pageTitle}%20${pageUrl}`\n\ndocument.getElementById(\"shareTW\").href=\n`https:\/\/twitter.com\/intent\/tweet?text=${pageTitle}&url=${pageUrl}`\n\ndocument.getElementById(\"shareLI\").href=\n`https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=${pageUrl}`\n\ndocument.getElementById(\"shareFB\").href=\n`https:\/\/www.facebook.com\/sharer\/sharer.php?u=${pageUrl}`\n\ndocument.getElementById(\"shareEmail\").href=\n\"mailto:?subject=\"+encodeURIComponent(document.title)+\n\"&body=\"+encodeURIComponent(\"Check out this page: \"+window.location.href)\n\n}\n\nsetupShareButtons()\n\n<\/script>\n\n\n\n    <style>\n        .ace-feedback-btn {\n            padding: 10px 14px;\n            background: #111827;\n            color: #fff;\n            border: none;\n            border-radius: 8px;\n            cursor: pointer;\n            font-size: 13px;\n            display: block;\n            margin: 20px auto;\n        }\n\n        .ace-feedback-modal {\n            display: none;\n            position: fixed;\n            top: 0; left: 0;\n            width: 100%; height: 100%;\n            background: rgba(0,0,0,0.5);\n            justify-content: center;\n            align-items: center;\n            z-index: 9999;\n        }\n\n        .ace-feedback-box {\n            background: #fff;\n            padding: 20px;\n            width: 100%;\n            max-width: 420px;\n            border-radius: 10px;\n        }\n\n        .ace-feedback-box textarea,\n        .ace-feedback-box input {\n            width: 100%;\n            margin-bottom: 10px;\n            padding: 10px;\n            border: 1px solid #ddd;\n            border-radius: 6px;\n        }\n\n        .ace-feedback-submit {\n            background: #2563eb;\n            color: #fff;\n            padding: 10px;\n            border: none;\n            width: 100%;\n            border-radius: 6px;\n            cursor: pointer;\n        }\n    <\/style>\n\n    <button class=\"ace-feedback-btn\" onclick=\"document.getElementById('aceFeedbackModal').style.display='flex'\">\n        Report Problem \/ Contact Us\n    <\/button>\n\n    <div id=\"aceFeedbackModal\" class=\"ace-feedback-modal\">\n        <div class=\"ace-feedback-box\">\n\n            <h3 style=\"margin-top:0;\">Send Feedback<\/h3>\n\n            <input type=\"email\" id=\"ace_feedback_email\" placeholder=\"Your email (optional)\">\n            <textarea id=\"ace_feedback_message\" rows=\"5\" placeholder=\"Describe your issue or suggestion...\"><\/textarea>\n\n            <button class=\"ace-feedback-submit\" onclick=\"trackTool('toolkit_feedback'); aceSendFeedback()\">\n                Send Message\n            <\/button>\n\n            <button style=\"margin-top:10px; background:#000; padding:8px; border:none; width:100%;\" \n                onclick=\"document.getElementById('aceFeedbackModal').style.display='none'\">\n                Close\n            <\/button>\n\n        <\/div>\n    <\/div>\n\n    <script>\n    function aceSendFeedback() {\n\n        let email = document.getElementById('ace_feedback_email').value;\n        let message = document.getElementById('ace_feedback_message').value;\n\n        fetch('https:\/\/aceworldpgs.com\/tools\/wp-admin\/admin-ajax.php', {\n            method: 'POST',\n            headers: {'Content-Type': 'application\/x-www-form-urlencoded'},\n            body: new URLSearchParams({\n                action: 'ace_send_feedback',\n                email: email,\n                message: message,\n                post_url: 'https:\/\/aceworldpgs.com\/tools\/isbn-lookup\/',\n                post_title: 'ISBN Lookup'\n            })\n        }).then(res => res.json()).then(res => {\n            alert('Thank you! Your feedback has been sent.');\n            document.getElementById('aceFeedbackModal').style.display='none';\n        });\n\n    }\n    <\/script>\n\n    \n<script>\n(function () {\n  'use strict';\n\n  \/\/ \u2500\u2500 State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  let currentIsbn = '';\n\n  \/\/ \u2500\u2500 Store data \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  const majorStores = [\n    { name: 'Amazon',         url: 'https:\/\/www.amazon.com\/s?k=' },\n    { name: 'Google Books',   url: 'https:\/\/www.google.com\/search?tbm=bks&q=isbn:' },\n    { name: 'Apple Books',    url: 'https:\/\/www.google.com\/search?q=site:books.apple.com+' },\n    { name: 'Barnes & Noble', url: 'https:\/\/www.barnesandnoble.com\/s\/' },\n    { name: 'Kobo',           url: 'https:\/\/www.kobo.com\/search?query=' },\n    { name: 'Goodreads',      url: 'https:\/\/www.goodreads.com\/search?q=' },\n  ];\n\n  const extendedStores = [\n    { name: 'WorldCat',         url: 'https:\/\/www.worldcat.org\/search?q=' },\n    { name: 'Overdrive',        url: 'https:\/\/www.overdrive.com\/search?q=' },\n    { name: 'Everand',          url: 'https:\/\/www.everand.com\/search?query=' },\n    { name: 'Lulu',             url: 'https:\/\/www.lulu.com\/search?adult_audience_rating=00&q=' },\n    { name: 'BookScouter',      url: 'https:\/\/bookscouter.com\/book\/' },\n    { name: 'AbeBooks',         url: 'https:\/\/www.abebooks.com\/servlet\/SearchResults?isbn=' },\n    { name: 'Audible',          url: 'https:\/\/www.audible.com\/search?keywords=' },\n    { name: 'Scribd',           url: 'https:\/\/www.scribd.com\/search?query=' },\n    { name: 'Indigo',           url: 'https:\/\/www.indigo.ca\/en-ca\/search\/?q=' },\n    { name: 'Bookmate',         url: 'https:\/\/bookmate.com\/search?q=' },\n    { name: 'Bookshop.org',     url: 'https:\/\/bookshop.org\/search?keywords=' },\n    { name: 'Alibris',          url: 'https:\/\/www.alibris.com\/booksearch?keyword=' },\n    { name: 'Fnac',             url: 'https:\/\/www.fnac.com\/SearchResult\/ResultList.aspx?Search=' },\n    { name: 'Booktopia',        url: 'https:\/\/www.booktopia.com.au\/search.ep?keywords=' },\n    { name: 'Storytel',         url: 'https:\/\/www.storytel.com\/tv\/search?query=' },\n    { name: 'World of Books',   url: 'https:\/\/www.worldofbooks.com\/en-gb\/search?q=' },\n    { name: 'Routledge',        url: 'https:\/\/www.routledge.com\/search?kw=' },\n    { name: 'Libristo (EU)',    url: 'https:\/\/www.libristo.eu\/en\/search?q=' },\n    { name: 'bol.',             url: 'https:\/\/www.bol.com\/nl\/nl\/s\/?searchtext=' },\n    { name: 'Libri (DE)',       url: 'https:\/\/www.libri.hu\/talalati_lista\/?szo=' },\n    { name: 'Bing',             url: 'https:\/\/www.bing.com\/search?q=' },\n    { name: 'Google',           url: 'https:\/\/www.google.com\/search?q=' },\n    { name: 'Selar',            url: 'https:\/\/selar.co\/search?q=' },\n    { name: 'Okadabooks',       url: 'https:\/\/okadabooks.com\/search\/books?query=' },\n  ];\n\n  \/\/ \u2500\u2500 Normalise ISBN (strip hyphens\/spaces, convert 10\u219213) \u2500\u2500\n  function normaliseIsbn(raw) {\n    let clean = raw.replace(\/[\\s\\-]\/g, '').trim();\n\n    if (clean.length === 10 && \/^\\d{9}[\\dXx]$\/.test(clean)) {\n      const temp = '978' + clean.substring(0, 9);\n      let s = 0;\n      for (let i = 0; i < 12; i++) s += (i % 2 === 0) ? parseInt(temp[i]) : parseInt(temp[i]) * 3;\n      const c = (10 - (s % 10)) % 10;\n      clean = temp + c;\n    }\n\n    if (clean.length !== 13 || !\/^\\d{13}$\/.test(clean)) return null;\n    return clean;\n  }\n\n  \/\/ \u2500\u2500 Main lookup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  async function isbnLLookup() {\n    const inputEl = document.getElementById('isbnLInput');\n    const resultEl = document.getElementById('isbnLMetaResult');\n    const btn = document.getElementById('isbnLBtn');\n\n    const isbn = normaliseIsbn(inputEl.value || '');\n\n    if (!isbn) {\n      inputEl.classList.add('l-error');\n      resultEl.innerHTML = `\n        <div style=\"background:var(--l-red-lt);border:1.5px solid var(--l-red-bd);border-radius:var(--l-radius-sm);padding:14px 16px;font-size:13px;color:var(--l-red);animation:lFadeIn 0.3s ease;\">\n          \u26a0\ufe0f Please enter a valid 10 or 13-digit ISBN (hyphens are fine).\n        <\/div>`;\n      return;\n    }\n\n    inputEl.classList.remove('l-error');\n    inputEl.classList.add('l-active');\n    currentIsbn = isbn;\n    btn.disabled = true;\n    btn.textContent = '\u23f3 Looking up\u2026';\n\n    resultEl.innerHTML = `<div class=\"isbn-l-loading\"><div class=\"isbn-l-spinner\"><\/div> Searching book databases\u2026<\/div>`;\n\n    \/\/ Update store links\n    populateStores(isbn);\n    updateSpecialCards(isbn);\n    saveHistory(isbn);\n    logUsage(isbn);\n\n    \/\/ Fetch metadata\n    const meta = await fetchMeta(isbn);\n    btn.disabled = false;\n    btn.textContent = '\ud83d\udd0e Look Up';\n    inputEl.classList.remove('l-active');\n\n    if (meta) {\n      renderBookCard(meta, resultEl);\n    } else {\n      resultEl.innerHTML = `\n        <div class=\"isbn-l-not-found\">\n          <strong>\ud83d\udced No metadata found for ISBN ${isbn}<\/strong><br>\n          This ISBN may not yet be catalogued in Google Books or Open Library. Try searching the platforms below \u2014 the book may still exist in other registries.\n        <\/div>`;\n    }\n  }\n\n  \/\/ \u2500\u2500 Metadata fetch (Google Books \u2192 Open Library) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  async function fetchMeta(isbn) {\n    try {\n      const res  = await fetch('https:\/\/www.googleapis.com\/books\/v1\/volumes?q=isbn:' + isbn);\n      const data = await res.json();\n      if (data.totalItems > 0) {\n        const vi = data.items[0].volumeInfo;\n        return {\n          title:     vi.title                        || 'Untitled',\n          authors:   (vi.authors || []).join(', ')   || 'Unknown',\n          publisher: vi.publisher                    || null,\n          pubDate:   vi.publishedDate                || null,\n          pages:     vi.pageCount                    || null,\n          language:  vi.language                     || null,\n          desc:      (vi.description || '').trim()   || null,\n          thumb:     vi.imageLinks\n                       ? (vi.imageLinks.thumbnail || vi.imageLinks.smallThumbnail || null)\n                       : null,\n          source:    'Google Books',\n        };\n      }\n    } catch (e) { \/* fall through *\/ }\n\n    try {\n      const olRes  = await fetch('https:\/\/openlibrary.org\/api\/books?bibkeys=ISBN:' + isbn + '&format=json&jscmd=data');\n      const olData = await olRes.json();\n      const key    = 'ISBN:' + isbn;\n      if (olData && olData[key]) {\n        const d = olData[key];\n        return {\n          title:     d.title                                             || 'Untitled',\n          authors:   d.authors ? d.authors.map(a => a.name).join(', ') : 'Unknown',\n          publisher: d.publishers ? d.publishers.map(p => p.name).join(', ') : null,\n          pubDate:   d.publish_date                                      || null,\n          pages:     d.number_of_pages                                   || null,\n          language:  null,\n          desc:      null,\n          thumb:     d.cover ? (d.cover.medium || d.cover.small || null) : null,\n          source:    'Open Library',\n        };\n      }\n    } catch (e) { \/* silent *\/ }\n\n    return null;\n  }\n\n  \/\/ \u2500\u2500 Render book card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function renderBookCard(meta, container) {\n    const chips = [];\n    if (meta.publisher) chips.push('\ud83c\udfe2 ' + esc(meta.publisher));\n    if (meta.pubDate)   chips.push('\ud83d\udcc5 ' + esc(meta.pubDate));\n    if (meta.pages)     chips.push('\ud83d\udcc4 ' + meta.pages + ' pages');\n    if (meta.language)  chips.push('\ud83d\udde3 ' + meta.language.toUpperCase());\n\n    const chipsHtml = chips.map(c => `<span class=\"isbn-l-meta-chip\">${c}<\/span>`).join('');\n    const descHtml  = meta.desc\n      ? `<div class=\"isbn-l-book-desc\" id=\"isbnLDesc\">${esc(meta.desc)}<\/div>\n         <button class=\"isbn-l-desc-toggle\" onclick=\"isbnLToggleDesc()\" id=\"isbnLDescBtn\">Read more \u25be<\/button>`\n      : '';\n\n    const coverHtml = meta.thumb\n      ? `<img decoding=\"async\" src=\"${meta.thumb}\" alt=\"Cover of ${esc(meta.title)}\" class=\"isbn-l-cover\">`\n      : `<div class=\"isbn-l-cover-placeholder\">\ud83d\udcda<\/div>`;\n\n    container.innerHTML = `\n      <div class=\"isbn-l-book-card\">\n        ${coverHtml}\n        <div class=\"isbn-l-book-info\">\n          <div class=\"isbn-l-book-title\">${esc(meta.title)}<\/div>\n          <div class=\"isbn-l-book-author\">by ${esc(meta.authors)}<\/div>\n          ${chips.length ? `<div class=\"isbn-l-book-meta-row\">${chipsHtml}<\/div>` : ''}\n          ${descHtml}\n          <div class=\"isbn-l-source-note\">Data source: ${esc(meta.source)}<\/div>\n        <\/div>\n      <\/div>`;\n  }\n\n  \/\/ \u2500\u2500 Description toggle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function isbnLToggleDesc() {\n    const d   = document.getElementById('isbnLDesc');\n    const btn = document.getElementById('isbnLDescBtn');\n    if (!d) return;\n    const expanded = d.classList.toggle('expanded');\n    btn.textContent = expanded ? 'Read less \u25b4' : 'Read more \u25be';\n  }\n\n  \/\/ \u2500\u2500 Populate store pills with current ISBN \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function populateStores(isbn) {\n    const make = (s) => {\n      const id  = 'pill-' + s.name.replace(\/[^a-zA-Z]\/g,'');\n      const url = s.url + encodeURIComponent(isbn);\n      return `<a id=\"${id}\" class=\"isbn-l-store-pill\"\n                 href=\"${url}\" target=\"_blank\" rel=\"noopener noreferrer\"\n                 onclick=\"document.getElementById('${id}').classList.add('visited')\">\n                ${esc(s.name)}\n              <\/a>`;\n    };\n    const maj = document.getElementById('isbnLMajorStores');\n    const ext = document.getElementById('isbnLExtStores');\n    if (maj) maj.innerHTML = majorStores.map(make).join('');\n    if (ext) ext.innerHTML = extendedStores.map(make).join('');\n  }\n\n  \/\/ \u2500\u2500 Update special registry card hrefs \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function updateSpecialCards(isbn) {\n    const nln = document.getElementById('isbnLNLNCard');\n    if (nln) nln.href = 'https:\/\/isbn.nln.gov.ng\/search\/index.php?search=' + encodeURIComponent(isbn) + '&search_submit=';\n\n    const extL = document.getElementById('isbnLExtLookupCard');\n    if (extL) extL.href = 'https:\/\/isbnlookup.org\/search?isbn=' + encodeURIComponent(isbn);\n\n    const isbnS = document.getElementById('isbnLISBNSearchCard');\n    if (isbnS) isbnS.href = 'https:\/\/isbnsearch.org\/isbn\/' + isbn;\n\n    const wc = document.getElementById('isbnLWorldCatCard');\n    if (wc)   wc.href = 'https:\/\/www.worldcat.org\/search?q=isbn:' + isbn;\n  }\n\n  \/\/ \u2500\u2500 NLN click handler (with fallback URL) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function isbnLOpenNLN(e) {\n    if (!currentIsbn) return; \/\/ href already updated\n  }\n\n  \/\/ \u2500\u2500 External lookup with isbn appended \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function isbnLOpenExternal(baseUrl, e) {\n    if (!currentIsbn) return; \/\/ href already set by updateSpecialCards\n  }\n\n  \/\/ \u2500\u2500 Show\/hide extended stores \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function isbnLToggleMore() {\n    const wrap = document.getElementById('isbnLExtWrap');\n    const btn  = document.getElementById('isbnLMoreBtn');\n    wrap.classList.toggle('open');\n    btn.classList.toggle('open');\n    btn.querySelector('span:first-child').textContent =\n      btn.classList.contains('open') ? 'Show Fewer Platforms' : 'Show More Platforms';\n  }\n\n  \/\/ \u2500\u2500 History \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function saveHistory(isbn) {\n    let h = [];\n    try { h = JSON.parse(localStorage.getItem('isbnLookupHistory') || '[]'); } catch(e){}\n    h = h.filter(x => x !== isbn);\n    h.unshift(isbn);\n    localStorage.setItem('isbnLookupHistory', JSON.stringify(h.slice(0,8)));\n    renderHistory();\n  }\n\n  function renderHistory() {\n    const el = document.getElementById('isbnLHistory');\n    if (!el) return;\n    let h = [];\n    try { h = JSON.parse(localStorage.getItem('isbnLookupHistory') || '[]'); } catch(e){}\n    if (!h.length) {\n      el.innerHTML = '<span class=\"isbn-l-hist-empty\">No recent searches yet.<\/span>';\n      return;\n    }\n    el.innerHTML = h.map(n =>\n      `<button class=\"isbn-l-hist-pill\" onclick=\"isbnLLoadHistory('${n}')\">${n}<\/button>`\n    ).join('');\n  }\n\n  function isbnLLoadHistory(isbn) {\n    document.getElementById('isbnLInput').value = isbn;\n    isbnLLookup();\n  }\n\n  \/\/ \u2500\u2500 Usage logging \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  async function logUsage(isbn) {\n    let geo = { country: 'Unknown', city: 'Unknown' };\n    try {\n      const r = await fetch('https:\/\/ipapi.co\/json\/');\n      const d = await r.json();\n      geo.country = d.country_name || 'Unknown';\n      geo.city    = d.city         || 'Unknown';\n    } catch(e) {}\n    const fd = new FormData();\n    fd.append('action',      'save_isbn_usage');\n    fd.append('isbn',        isbn);\n    fd.append('isbn_origin', 'lookup');\n    fd.append('country',     geo.country);\n    fd.append('city',        geo.city);\n    fetch('\/wp-admin\/admin-ajax.php', { method:'POST', body:fd }).catch(()=>{});\n  }\n\n  \/\/ \u2500\u2500 Escape HTML \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function esc(str) {\n    if (!str) return '';\n    return String(str)\n      .replace(\/&\/g,'&amp;')\n      .replace(\/<\/g,'&lt;')\n      .replace(\/>\/g,'&gt;')\n      .replace(\/\"\/g,'&quot;');\n  }\n\n  \/\/ \u2500\u2500 Init store pills (empty state \u2014 no ISBN yet) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function initEmptyStores() {\n    const make = (s) =>\n      `<button class=\"isbn-l-store-pill\"\n               onclick=\"isbnLGuardedOpen('${s.url}')\">\n         ${esc(s.name)}\n       <\/button>`;\n    const maj = document.getElementById('isbnLMajorStores');\n    const ext = document.getElementById('isbnLExtStores');\n    if (maj) maj.innerHTML = majorStores.map(make).join('');\n    if (ext) ext.innerHTML = extendedStores.map(make).join('');\n  }\n\n  function isbnLGuardedOpen(url) {\n    if (!currentIsbn) {\n      document.getElementById('isbnLInput').focus();\n      document.getElementById('isbnLInput').style.borderColor = 'var(--l-red)';\n      setTimeout(() => { document.getElementById('isbnLInput').style.borderColor = ''; }, 1500);\n      return;\n    }\n    window.open(url + encodeURIComponent(currentIsbn), '_blank');\n  }\n\n  \/\/ \u2500\u2500 Expose globals \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  window.isbnLLookup       = isbnLLookup;\n  window.isbnLToggleMore   = isbnLToggleMore;\n  window.isbnLLoadHistory  = isbnLLoadHistory;\n  window.isbnLToggleDesc   = isbnLToggleDesc;\n  window.isbnLOpenNLN      = isbnLOpenNLN;\n  window.isbnLOpenExternal = isbnLOpenExternal;\n  window.isbnLGuardedOpen  = isbnLGuardedOpen;\n\n  \/\/ \u2500\u2500 Init \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  document.addEventListener('DOMContentLoaded', function () {\n    initEmptyStores();\n    renderHistory();\n\n    \/\/ Pre-fill from ?isbn= URL parameter (e.g. passed from ISBN Validator)\n    const params = new URLSearchParams(window.location.search);\n    const pre = params.get('isbn');\n    if (pre) {\n      const inp = document.getElementById('isbnLInput');\n      if (inp) {\n        inp.value = pre;\n        isbnLLookup();\n      }\n    }\n  });\n\n})();\n<\/script>\n\n<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<style>.kt-accordion-id77498_30ba21-69 .kt-accordion-inner-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:10px;}.kt-accordion-id77498_30ba21-69 .kt-accordion-panel-inner{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;background:#ffffff;padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);}.kt-accordion-id77498_30ba21-69 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:1px solid #f2f2f2;border-right:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;border-left:1px solid #f2f2f2;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-right-radius:6px;border-bottom-left-radius:6px;color:var(--global-palette3, #1A202C);padding-top:13px;padding-right:15px;padding-bottom:13px;padding-left:15px;}.kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette3, #1A202C);}.kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger{background:var(--global-palette3, #1A202C);}.kt-accordion-id77498_30ba21-69 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id77498_30ba21-69 .kt-blocks-accordion-header:focus-visible{color:#444444;background:#eeeeee;border-top:1px solid #878787;border-right:1px solid #878787;border-bottom:1px solid #878787;border-left:1px solid #878787;}.kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion--visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#444444;}.kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger, body:not(.hide-focus-outline) .kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger{background:#444444;}.kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#eeeeee;}.kt-accordion-id77498_30ba21-69 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id77498_30ba21-69 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{color:#ffffff;background:#BE530B;border-top:1px solid #BE530B;border-right:1px solid #BE530B;border-bottom:1px solid #BE530B;border-left:1px solid #BE530B;}.kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger{background:#ffffff;}.kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id77498_30ba21-69:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:#BE530B;}@media all and (max-width: 1024px){.kt-accordion-id77498_30ba21-69 .kt-accordion-panel-inner{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;}}@media all and (max-width: 1024px){.kt-accordion-id77498_30ba21-69 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:1px solid #f2f2f2;border-right:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;border-left:1px solid #f2f2f2;}}@media all and (max-width: 1024px){.kt-accordion-id77498_30ba21-69 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id77498_30ba21-69 .kt-blocks-accordion-header:focus-visible{border-top:1px solid #878787;border-right:1px solid #878787;border-bottom:1px solid #878787;border-left:1px solid #878787;}}@media all and (max-width: 1024px){.kt-accordion-id77498_30ba21-69 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id77498_30ba21-69 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:1px solid #BE530B;border-right:1px solid #BE530B;border-bottom:1px solid #BE530B;border-left:1px solid #BE530B;}}@media all and (max-width: 767px){.kt-accordion-id77498_30ba21-69 .kt-accordion-inner-wrap{display:block;}.kt-accordion-id77498_30ba21-69 .kt-accordion-inner-wrap .kt-accordion-pane:not(:first-child){margin-top:10px;}.kt-accordion-id77498_30ba21-69 .kt-accordion-panel-inner{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;}.kt-accordion-id77498_30ba21-69 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:1px solid #f2f2f2;border-right:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;border-left:1px solid #f2f2f2;}.kt-accordion-id77498_30ba21-69 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id77498_30ba21-69 .kt-blocks-accordion-header:focus-visible{border-top:1px solid #878787;border-right:1px solid #878787;border-bottom:1px solid #878787;border-left:1px solid #878787;}.kt-accordion-id77498_30ba21-69 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id77498_30ba21-69 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:1px solid #BE530B;border-right:1px solid #BE530B;border-bottom:1px solid #BE530B;border-left:1px solid #BE530B;}}<\/style>\n<div class=\"wp-block-kadence-accordion alignnone\"><div class=\"kt-accordion-wrap kt-accordion-id77498_30ba21-69 kt-accordion-has-2-panes kt-active-pane-0 kt-accordion-block kt-pane-header-alignment-left kt-accodion-icon-style-basic kt-accodion-icon-side-right\" style=\"max-width:none\"><div class=\"kt-accordion-inner-wrap\" data-allow-multiple-open=\"false\" data-start-open=\"none\">\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-1 kt-pane77498_c4f5ec-e4\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">How it Works<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<h2 class=\"wp-block-heading\">About ISBN Lookup<\/h2>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">The&nbsp;<strong>ISBN Lookup<\/strong>&nbsp;tool retrieves book metadata \u2014 title, author, publisher, publication date, cover image, and description \u2014 directly from the&nbsp;<strong>Google Books API<\/strong>, with&nbsp;<strong>Open Library<\/strong>&nbsp;as a fallback for books not found there. It then lets you open the book&#8217;s page on any of 25+ international bookstores with a single click.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This tool is designed for authors, self-publishers, librarians, booksellers, and researchers who need to quickly identify a book, check its global availability, or verify registration in the Nigerian National Library registry.<\/p>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Book Metadata<\/strong>: Retrieves title, author, cover, publisher, page count, description, and more.<\/li>\n\n\n\n<li><strong>25+ Platforms<\/strong>: Search Amazon, Google Books, Apple Books, Kobo, Goodreads, Overdrive, and many more.<\/li>\n\n\n\n<li><strong>NLN Registry<\/strong>: Check the official National Library of Nigeria ISBN registry directly from this tool.<\/li>\n\n\n\n<li><strong>ISBN-10 Supported<\/strong>: Automatically converts ISBN-10 to ISBN-13 before looking up.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The free ISBN Validator tool helps you check if an ISBN is correct and further pulls book metadata from global literary databases. it also converts ISBN-10 to ISBN-13.<\/p>\n","protected":false},"author":1,"featured_media":73258,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kb_optimizer_status":1,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[15],"tags":[13,12,14],"class_list":["post-77498","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-isbn-tools","tag-fast","tag-free","tag-isbn"],"acf":[],"_links":{"self":[{"href":"https:\/\/aceworldpgs.com\/tools\/wp-json\/wp\/v2\/posts\/77498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aceworldpgs.com\/tools\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aceworldpgs.com\/tools\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aceworldpgs.com\/tools\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aceworldpgs.com\/tools\/wp-json\/wp\/v2\/comments?post=77498"}],"version-history":[{"count":3,"href":"https:\/\/aceworldpgs.com\/tools\/wp-json\/wp\/v2\/posts\/77498\/revisions"}],"predecessor-version":[{"id":77502,"href":"https:\/\/aceworldpgs.com\/tools\/wp-json\/wp\/v2\/posts\/77498\/revisions\/77502"}],"wp:attachment":[{"href":"https:\/\/aceworldpgs.com\/tools\/wp-json\/wp\/v2\/media?parent=77498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aceworldpgs.com\/tools\/wp-json\/wp\/v2\/categories?post=77498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aceworldpgs.com\/tools\/wp-json\/wp\/v2\/tags?post=77498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}