{"id":12,"date":"2026-09-24T03:08:57","date_gmt":"2026-09-24T03:08:57","guid":{"rendered":"https:\/\/astrogeography.com\/?page_id=12"},"modified":"2026-10-20T10:29:44","modified_gmt":"2026-10-20T10:29:44","slug":"home","status":"publish","type":"page","link":"https:\/\/astrogeography.com\/en\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12\" class=\"elementor elementor-12\">\n\t\t\t\t<div class=\"elementor-element elementor-element-10e4460 e-con e-atomic-element e-flexbox-base e-default-div e-b6ceee3 \" data-id=\"10e4460\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"10e4460\">\n    <div class=\"elementor-element elementor-element-6b38ac6 e-con-full e-flex e-con e-parent\" data-id=\"6b38ac6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-789849e e-flex e-con-boxed e-con e-child\" data-id=\"789849e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8579b1b elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"8579b1b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Your horoscope, wherever you go.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9b9e830 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"9b9e830\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Discover how your birth chart connects with places around the world \u2014 and where you may feel more aligned, inspired and at home.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6ccc483 elementor-widget elementor-widget-button\" data-id=\"6ccc483\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Explore Your Map<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-062a4fc e-con e-atomic-element e-flexbox-base e-default-div e-73d7f6b \" data-id=\"062a4fc\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"062a4fc\">\n    <div class=\"elementor-element elementor-element-d833c95 e-con-full e-flex e-con e-parent\" data-id=\"d833c95\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a095a08 elementor-widget elementor-widget-html\" data-id=\"a095a08\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================================================\n     ASTROGEOGRAPHY CALCULATOR\n     ORIGINAL LAYOUT + CURRENT WORKING MAP\n     ========================================================= -->\n\n<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css\">\n\n<style>\n\/* Astrogeography calm ocean theme \u2014 visual styling only *\/\n#astro-calculator{--ivory:#F1F7FA;--paper:#FFFFFF;--ink:#234761;--muted:#647F91;--gold:#C99B45;--gold2:#E5CB8A;--line:#D4E3EC;--green:#397B68;--red:#B85C5C;width:100%;font-family:Arial,Helvetica,sans-serif;color:var(--ink);display:block}\n#astro-calculator *{box-sizing:border-box}\n#astro-calculator .ag-wrap{width:100%;max-width:1180px;margin:0 auto}\n#astro-calculator .ag-head{text-align:center;margin:0 auto 24px;max-width:740px}\n#astro-calculator .ag-kicker{display:inline-block;font:600 11px\/16px Arial,Helvetica,sans-serif;letter-spacing:2px;text-transform:uppercase;color:#B18A42}\n#astro-calculator h2{margin:8px 0;font:400 34px\/43px Georgia,'Times New Roman',serif;color:#234761}\n#astro-calculator .ag-head p{margin:0;color:#647F91;font-size:14px;line-height:23px}\n#astro-calculator .ag-panel{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);height:560px;background:#fff;border:1px solid #D4E3EC;border-radius:14px;overflow:hidden;box-shadow:0 8px 28px rgba(44,86,115,.09)}\n#astro-calculator .ag-map{position:relative;min-width:0;min-height:0;background:#E4EFF4}\n#astro-calculator #astro-map{height:100%;min-height:520px;width:100%;background:#E4EFF4}\n#astro-calculator .ag-mapbar{position:absolute;z-index:1000;top:14px;left:14px;right:14px;display:flex;justify-content:space-between;pointer-events:none}\n#astro-calculator .ag-mapbar>div{display:flex;gap:8px;pointer-events:auto}\n#astro-calculator .ag-map-tool{height:35px;padding:0 13px;border:1px solid #D4E3EC;border-radius:7px;background:rgba(255,255,255,.97);color:#234761;font-size:12px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px rgba(35,71,97,.08)}\n#astro-calculator .ag-map-tool:hover{background:#F1F7FA;border-color:#A9C6D8}\n#astro-calculator .ag-red-pin{width:24px;height:24px;position:relative}\n#astro-calculator .ag-red-pin::before{content:\"\";position:absolute;width:16px;height:16px;left:4px;top:2px;border-radius:50% 50% 50% 0;background:#C66E65;border:2px solid #fff;box-shadow:0 3px 10px rgba(35,71,97,.25);transform:rotate(-45deg)}\n#astro-calculator .ag-red-pin::after{content:\"\";position:absolute;width:5px;height:5px;left:9px;top:7px;border-radius:50%;background:#fff;z-index:2}\n#astro-calculator .ag-auto-results{display:none!important}\n#astro-calculator .ag-map-note{position:absolute;z-index:900;left:14px;right:14px;bottom:14px;padding:11px 13px;border:1px solid rgba(212,227,236,.95);border-radius:8px;background:rgba(255,255,255,.96);font-size:11px;line-height:17px;color:#526F82;box-shadow:0 3px 12px rgba(35,71,97,.08)}\n#astro-calculator .ag-form{min-width:0;padding:22px;overflow-y:auto;background:#fff}\n#astro-calculator .ag-steps{display:flex;gap:7px;margin-bottom:20px}\n#astro-calculator .ag-step{flex:1;padding:9px 5px;border:1px solid #D4E3EC;border-radius:6px;background:#F1F7FA;text-align:center;font:600 10px\/14px Arial,Helvetica,sans-serif;letter-spacing:.3px;color:#647F91}\n#astro-calculator .ag-step b{color:#B18A42;margin-right:3px}\n#astro-calculator .ag-section{padding:0 0 17px;margin:0 0 17px;border-bottom:1px solid #E1EAF0}\n#astro-calculator .ag-section:last-of-type{border-bottom:0}\n#astro-calculator .ag-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px;font-size:13px;line-height:19px;font-weight:700;color:#234761}\n#astro-calculator .ag-title span{font-size:10px;line-height:15px;font-weight:400;color:#7A91A1;text-align:right}\n#astro-calculator .ag-grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}\n#astro-calculator .ag-field{margin-bottom:10px;min-width:0}\n#astro-calculator label.ag-label{display:block;margin:0 0 6px;font-size:11px;line-height:15px;font-weight:600;color:#526F82}\n#astro-calculator .ag-input,#astro-calculator .ag-select{display:block;width:100%;max-width:100%;min-width:0;height:41px;padding:0 11px;border:1px solid #C9DCE8;border-radius:6px;background:#F8FBFD;color:#234761;font:400 12px\/18px Arial,Helvetica,sans-serif;outline:none;transition:border-color .2s,box-shadow .2s,background-color .2s}\n#astro-calculator .ag-input::placeholder{color:#93A7B5;opacity:1}\n#astro-calculator .ag-input:focus,#astro-calculator .ag-select:focus{border-color:#7DA9C3;background:#fff;box-shadow:0 0 0 3px rgba(125,169,195,.14)}\n#astro-calculator .ag-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;min-width:0}\n#astro-calculator .ag-btn{height:41px;padding:0 13px;border:1px solid #3E7295;border-radius:6px;background:#3E7295;color:#fff;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap}\n#astro-calculator .ag-btn:hover{background:#315F7E}\n#astro-calculator .ag-btn:disabled{opacity:.5;cursor:not-allowed}\n#astro-calculator .ag-status{min-height:15px;margin-top:5px;font-size:11px;line-height:16px}\n#astro-calculator .success{color:#397B68}#astro-calculator .error{color:#B85C5C}#astro-calculator .loading{color:#647F91}\n#astro-calculator .ag-results{display:none;margin-top:6px;border:1px solid #D4E3EC;border-radius:7px;background:#fff;max-height:170px;overflow:auto}\n#astro-calculator .ag-results.active{display:block}\n#astro-calculator .ag-results-heading{padding:9px 10px;background:#F1F7FA;border-bottom:1px solid #D4E3EC;font:600 10px\/14px Arial,Helvetica,sans-serif;color:#647F91}\n#astro-calculator .ag-result{display:block;width:100%;padding:10px;border:0;border-bottom:1px solid #E8EFF4;background:#fff;text-align:left;cursor:pointer}\n#astro-calculator .ag-result:last-child{border-bottom:0}\n#astro-calculator .ag-result:hover{background:#F1F7FA}\n#astro-calculator .ag-result-name{display:block;font-size:12px;line-height:17px;font-weight:600;color:#234761}\n#astro-calculator .ag-result-address{display:block;margin-top:3px;font-size:10px;line-height:15px;color:#718A9A}\n#astro-calculator .ag-verified,#astro-calculator .ag-coords{display:none;margin-top:7px;padding:9px 10px;border:1px solid #D5E7DF;border-radius:6px;background:#F0F7F3;color:#397B68;font-size:10px;line-height:15px}\n#astro-calculator .ag-verified.active,#astro-calculator .ag-coords.active{display:block}\n#astro-calculator .ag-radius-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}\n#astro-calculator .ag-help{margin-top:2px;font-size:10px;line-height:16px;color:#718A9A}\n#astro-calculator .ag-continue{display:block;width:100%;min-height:45px;margin-top:4px;padding:10px 16px;border:1px solid #C99B45;border-radius:6px;background:#C99B45;color:#fff;font-size:12px;line-height:18px;font-weight:600;cursor:pointer}\n#astro-calculator .ag-continue:hover{background:#B58A3D;border-color:#B58A3D}\n#astro-calculator .ag-continue:disabled{opacity:.5;cursor:not-allowed}\n#astro-calculator .ag-secure{margin-top:9px;text-align:center;font-size:10px;line-height:15px;color:#7A91A1}\n#astro-house-system{display:none!important}\n@media(max-width:900px){#astro-calculator .ag-panel{grid-template-columns:minmax(0,1fr);height:auto}#astro-calculator .ag-map{height:390px;min-height:390px;order:0}#astro-calculator #astro-map{height:390px;min-height:390px}#astro-calculator .ag-form{max-height:none;order:1;padding:22px}}\n@media(max-width:600px){#astro-calculator .ag-head{margin-bottom:17px;padding:0 8px}#astro-calculator .ag-kicker{font-size:10px;letter-spacing:1.5px}#astro-calculator h2{font-size:27px;line-height:35px}#astro-calculator .ag-head p{font-size:13px;line-height:21px}#astro-calculator .ag-panel{border-radius:10px}#astro-calculator .ag-map{height:330px;min-height:330px}#astro-calculator #astro-map{height:330px;min-height:330px}#astro-calculator .ag-form{padding:16px}#astro-calculator .ag-steps{gap:5px;margin-bottom:17px}#astro-calculator .ag-step{padding:8px 3px;font-size:9px}#astro-calculator .ag-grid2,#astro-calculator .ag-radius-row{grid-template-columns:minmax(0,1fr)}#astro-calculator .ag-title{align-items:flex-start;flex-wrap:wrap}#astro-calculator .ag-title span{text-align:left}#astro-calculator .ag-search{grid-template-columns:minmax(0,1fr) auto;gap:5px}#astro-calculator .ag-btn{padding:0 9px;font-size:10px}}\n\n\n\/* ===== COMPACT ASTROGEOGRAPHY THEME OVERRIDES: CSS ONLY ===== *\/\n#astro-calculator {\n  --ivory:#E1F0F8;\n  --paper:#FFFFFF;\n  --ink:#174C76;\n  --muted:#34495A;\n  --gold:#B58A43;\n  --gold2:#DCC18A;\n  --line:#B9D0DF;\n  --green:#39745F;\n  --red:#A94B45;\n  color:var(--ink);\n  font-family:Arial,Helvetica,sans-serif;\n}\n#astro-calculator .ag-wrap {width:100%;max-width:1480px}\n#astro-calculator .ag-head {max-width:1200px;text-align:left;margin:0 auto 14px;padding:0}\n#astro-calculator .ag-kicker {font-size:10px;line-height:15px;letter-spacing:1.5px;color:#8F682D}\n#astro-calculator h2 {margin:5px 0 6px;font:700 28px\/34px Georgia,\"Times New Roman\",serif;color:#174C76}\n#astro-calculator .ag-head p {color:#34495A;font-size:12px;line-height:19px}\n#astro-calculator .ag-panel {\n  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);\n  height:520px;background:#fff;border:1px solid #174C76;border-radius:0;box-shadow:none;\n}\n#astro-calculator .ag-map {background:#E1F0F8}\n#astro-calculator #astro-map {background:#E1F0F8}\n#astro-calculator .ag-mapbar {top:9px;left:9px;right:9px}\n#astro-calculator .ag-mapbar>div {gap:5px}\n#astro-calculator .ag-map-tool {\n  height:29px;padding:0 9px;border:1px solid #B9D0DF;border-radius:0;\n  background:rgba(255,255,255,.97);color:#174C76;font-size:10px;box-shadow:none;\n}\n#astro-calculator .ag-map-tool:hover {background:#EAF3F8;border-color:#174C76}\n#astro-calculator .ag-map-note {\n  left:9px;right:9px;bottom:9px;padding:8px 10px;border:1px solid #B9D0DF;\n  border-radius:0;background:rgba(255,255,255,.96);font-size:10px;line-height:15px;\n  color:#34495A;box-shadow:none;\n}\n#astro-calculator .ag-form {padding:15px 16px;background:#EAF3F8}\n#astro-calculator .ag-steps {gap:5px;margin-bottom:13px}\n#astro-calculator .ag-step {\n  padding:7px 4px;border:1px solid #B9D0DF;border-radius:0;background:#fff;\n  font:600 9px\/13px Arial,Helvetica,sans-serif;color:#536B7D;\n}\n#astro-calculator .ag-step b {color:#8F682D}\n#astro-calculator .ag-section {padding:0 0 11px;margin:0 0 11px;border-bottom:1px solid #C7DCE8}\n#astro-calculator .ag-title {margin:0 0 8px;font-size:12px;line-height:17px;color:#174C76}\n#astro-calculator .ag-title span {font-size:9px;line-height:13px;color:#647F91}\n#astro-calculator .ag-grid2 {gap:7px}\n#astro-calculator .ag-field {margin-bottom:7px}\n#astro-calculator label.ag-label {margin:0 0 4px;font-size:10px;line-height:14px;color:#34495A}\n#astro-calculator .ag-input,\n#astro-calculator .ag-select {\n  height:34px;padding:0 8px;border:1px solid #A9C4D5;border-radius:0;\n  background:#fff;color:#174C76;font:400 11px\/16px Arial,Helvetica,sans-serif;\n}\n#astro-calculator .ag-input::placeholder {color:#8493A0;opacity:1}\n#astro-calculator .ag-input:focus,\n#astro-calculator .ag-select:focus {border-color:#B58A43;background:#fff;box-shadow:0 0 0 1px rgba(181,138,67,.16)}\n#astro-calculator .ag-search {gap:5px}\n#astro-calculator .ag-btn {\n  height:34px;padding:0 9px;border:1px solid #174C76;border-radius:0;\n  background:#174C76;color:#fff;font-size:10px;\n}\n#astro-calculator .ag-btn:hover {background:#103A5B}\n#astro-calculator .ag-status {font-size:10px;line-height:14px}\n#astro-calculator .ag-results {border:1px solid #B9D0DF;border-radius:0;background:#fff}\n#astro-calculator .ag-results-heading {padding:7px 8px;background:#E1F0F8;border-bottom:1px solid #B9D0DF}\n#astro-calculator .ag-result {padding:8px;border-bottom:1px solid #E1EAF0}\n#astro-calculator .ag-result:hover {background:#EAF3F8}\n#astro-calculator .ag-result-name {font-size:11px;line-height:15px;color:#174C76}\n#astro-calculator .ag-result-address {font-size:9px;line-height:13px;color:#718A9A}\n#astro-calculator .ag-verified,\n#astro-calculator .ag-coords {padding:7px 8px;border-radius:0;font-size:9px;line-height:14px}\n#astro-calculator .ag-help {font-size:9px;line-height:14px;color:#647F91}\n#astro-calculator .ag-continue {\n  min-height:37px;padding:8px 12px;border:1px solid #174C76;border-radius:0;\n  background:#174C76;color:#fff;font-size:11px;line-height:16px;font-weight:700;\n}\n#astro-calculator .ag-continue:hover {background:#103A5B;border-color:#103A5B}\n\/* Keep both Birth and Explore sections available; only the final action is gated by validation. *\/\n#astro-calculator .ag-section {opacity:1;pointer-events:auto;}\n#astro-calculator .ag-input:disabled,\n#astro-calculator .ag-select:disabled {opacity:1;background:#fff;color:#174C76;cursor:not-allowed;}\n#astro-calculator .ag-secure {font-size:9px;line-height:13px;color:#647F91}\n@media(max-width:900px) {\n  #astro-calculator .ag-panel {grid-template-columns:minmax(0,1fr);height:auto}\n  #astro-calculator .ag-map {height:320px;min-height:320px;order:0}\n  #astro-calculator #astro-map {height:320px;min-height:320px}\n  #astro-calculator .ag-form {max-height:none;order:1;padding:16px}\n}\n@media(max-width:600px) {\n  #astro-calculator .ag-head {margin-bottom:12px;padding:0 2px}\n  #astro-calculator h2 {font-size:24px;line-height:30px}\n  #astro-calculator .ag-head p {font-size:12px;line-height:18px}\n  #astro-calculator .ag-panel {height:auto}\n  #astro-calculator .ag-map {height:280px;min-height:280px}\n  #astro-calculator #astro-map {height:280px;min-height:280px}\n  #astro-calculator .ag-form {padding:13px}\n  #astro-calculator .ag-steps {gap:4px;margin-bottom:12px}\n  #astro-calculator .ag-step {padding:6px 3px;font-size:9px}\n  #astro-calculator .ag-grid2 {grid-template-columns:minmax(0,1fr)}\n  #astro-calculator .ag-radius-row {grid-template-columns:minmax(0,1fr)}\n  #astro-calculator .ag-title {align-items:flex-start;flex-wrap:wrap}\n  #astro-calculator .ag-title span {text-align:left}\n  #astro-calculator .ag-search {grid-template-columns:minmax(0,1fr) auto;gap:4px}\n  #astro-calculator .ag-btn {padding:0 7px;font-size:9px}\n}\n\n\n\n\/* ===== FINAL COMPACT SPACING OVERRIDES ===== *\/\n#astro-calculator .ag-form {\n  padding: 10px 14px;\n}\n#astro-calculator .ag-steps {\n  gap: 5px;\n  margin-bottom: 9px;\n}\n#astro-calculator .ag-step {\n  padding: 6px 4px;\n}\n#astro-calculator .ag-section {\n  padding-bottom: 6px;\n  margin-bottom: 6px;\n}\n#astro-calculator .ag-title {\n  margin-bottom: 5px;\n}\n#astro-calculator .ag-grid2,\n#astro-calculator .ag-radius-row {\n  gap: 6px;\n}\n#astro-calculator .ag-field {\n  margin-bottom: 4px;\n}\n#astro-calculator label.ag-label {\n  margin-bottom: 3px;\n  line-height: 13px;\n}\n#astro-calculator .ag-input,\n#astro-calculator .ag-select,\n#astro-calculator .ag-btn {\n  height: 32px;\n}\n#astro-calculator .ag-input,\n#astro-calculator .ag-select {\n  padding-left: 8px;\n  padding-right: 8px;\n}\n#astro-calculator .ag-status {\n  min-height: 0;\n  margin-top: 3px;\n  line-height: 13px;\n}\n#astro-calculator .ag-results {\n  margin-top: 4px;\n}\n#astro-calculator .ag-verified,\n#astro-calculator .ag-coords {\n  margin-top: 4px;\n  padding: 5px 7px;\n}\n#astro-calculator .ag-help {\n  margin-top: 0;\n  line-height: 13px;\n}\n#astro-calculator #astro-analysis-product-wrap {\n  margin-top: 8px !important;\n}\n#astro-calculator .ag-continue {\n  min-height: 36px;\n  margin-top: 2px;\n  padding: 7px 10px;\n}\n#astro-calculator .ag-secure {\n  margin-top: 4px;\n}\n@media (max-width: 900px) {\n  #astro-calculator .ag-form {\n    padding: 12px;\n  }\n}\n@media (max-width: 600px) {\n  #astro-calculator .ag-form {\n    padding: 10px;\n  }\n  #astro-calculator .ag-steps {\n    margin-bottom: 8px;\n  }\n  #astro-calculator .ag-section {\n    padding-bottom: 5px;\n    margin-bottom: 5px;\n  }\n  #astro-calculator .ag-field {\n    margin-bottom: 4px;\n  }\n  #astro-calculator #astro-analysis-product-wrap {\n    margin-top: 7px !important;\n  }\n}\n\n\n\n\/* =========================================================\n   ASTROGEOGRAPHY HOMEPAGE THEME \u2014 CSS ONLY\n   Preserves all existing markup, IDs, JavaScript and API logic.\n   ========================================================= *\/\n#astro-calculator {\n  --ivory: #FBF8F1;\n  --paper: #FFFFFF;\n  --ink: #173650;\n  --muted: #667B89;\n  --gold: #B58A43;\n  --gold2: #E4D0A0;\n  --line: #E7DED0;\n  --green: #39745F;\n  --red: #A94B45;\n  width: 100%;\n  padding: 34px 24px;\n  background: var(--ivory);\n  color: var(--ink);\n  font-family: Arial, Helvetica, sans-serif;\n}\n#astro-calculator * { box-sizing: border-box; }\n#astro-calculator .ag-wrap { width: 100%; max-width: 1320px; margin: 0 auto; }\n#astro-calculator .ag-head { max-width: 900px; margin: 0 0 22px; text-align: left; }\n#astro-calculator .ag-kicker { color: #9B7335; font-size: 10px; line-height: 16px; letter-spacing: 2px; }\n#astro-calculator h2 { margin: 7px 0 8px; color: #173650; font: 400 34px\/42px Georgia, 'Times New Roman', serif; }\n#astro-calculator .ag-head p { margin: 0; color: #667B89; font-size: 14px; line-height: 23px; }\n#astro-calculator .ag-panel {\n  display: grid;\n  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);\n  height: 560px;\n  background: #FFFFFF;\n  border: 1px solid #E7DED0;\n  border-radius: 14px;\n  overflow: hidden;\n  box-shadow: 0 10px 32px rgba(23, 54, 80, .09);\n}\n#astro-calculator .ag-map { position: relative; min-width: 0; min-height: 0; overflow: hidden; background: #E9F1F3; }\n#astro-calculator #astro-map { width: 100%; height: 100%; min-height: 520px; background: #E9F1F3; }\n#astro-calculator .ag-mapbar { top: 14px; left: 14px; right: 14px; }\n#astro-calculator .ag-mapbar > div { gap: 8px; }\n#astro-calculator .ag-map-tool { height: 35px; padding: 0 13px; border: 1px solid #E7DED0; border-radius: 6px; background: rgba(255,255,255,.97); color: #173650; font-size: 12px; box-shadow: 0 2px 8px rgba(23,54,80,.08); }\n#astro-calculator .ag-map-tool:hover { background: #FBF8F1; border-color: #B58A43; }\n#astro-calculator .ag-map-note { left: 14px; right: 14px; bottom: 14px; padding: 11px 13px; border: 1px solid #E7DED0; border-radius: 8px; background: rgba(255,255,255,.96); color: #526B7B; font-size: 11px; line-height: 17px; box-shadow: 0 3px 12px rgba(23,54,80,.08); }\n#astro-calculator .ag-form { min-width: 0; padding: 20px; overflow-y: auto; background: #FFFCF6; }\n#astro-calculator .ag-steps { display: flex; gap: 7px; margin: 0 0 17px; }\n#astro-calculator .ag-step { flex: 1; padding: 9px 5px; border: 1px solid #E7DED0; border-radius: 6px; background: #FFFFFF; text-align: center; color: #667B89; font: 600 10px\/14px Arial, Helvetica, sans-serif; letter-spacing: .2px; }\n#astro-calculator .ag-step b { margin-right: 3px; color: #B58A43; }\n#astro-calculator .ag-section { padding: 0 0 12px; margin: 0 0 12px; border-bottom: 1px solid #E7DED0; }\n#astro-calculator .ag-section:last-of-type { border-bottom: 0; }\n#astro-calculator .ag-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 9px; color: #173650; font-size: 13px; line-height: 19px; font-weight: 700; }\n#astro-calculator .ag-title span { color: #788A94; font-size: 10px; line-height: 15px; font-weight: 400; text-align: right; }\n#astro-calculator .ag-grid2 { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 9px; }\n#astro-calculator .ag-field { min-width: 0; margin-bottom: 8px; }\n#astro-calculator label.ag-label { display: block; margin: 0 0 5px; color: #526B7B; font-size: 11px; line-height: 15px; font-weight: 600; }\n#astro-calculator .ag-input,\n#astro-calculator .ag-select { display: block; width: 100%; max-width: 100%; min-width: 0; height: 39px; padding: 0 10px; border: 1px solid #DED6C9; border-radius: 6px; background: #FFFFFF; color: #173650; font: 400 12px\/18px Arial, Helvetica, sans-serif; outline: none; transition: border-color .2s, box-shadow .2s; }\n#astro-calculator .ag-input::placeholder { color: #93A1A9; opacity: 1; }\n#astro-calculator .ag-input:focus,\n#astro-calculator .ag-select:focus { border-color: #B58A43; background: #FFFFFF; box-shadow: 0 0 0 3px rgba(181,138,67,.12); }\n#astro-calculator .ag-search { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; min-width: 0; }\n#astro-calculator .ag-btn { height: 39px; padding: 0 12px; border: 1px solid #173650; border-radius: 6px; background: #173650; color: #FFFFFF; font-size: 11px; font-weight: 600; cursor: pointer; white-space: nowrap; }\n#astro-calculator .ag-btn:hover { background: #244B66; }\n#astro-calculator .ag-btn:disabled { opacity: .5; cursor: not-allowed; }\n#astro-calculator .ag-status { min-height: 15px; margin-top: 4px; font-size: 11px; line-height: 16px; }\n#astro-calculator .success { color: #39745F; }\n#astro-calculator .error { color: #A94B45; }\n#astro-calculator .loading { color: #667B89; }\n#astro-calculator .ag-results { display: none; max-height: 170px; margin-top: 5px; overflow: auto; border: 1px solid #E7DED0; border-radius: 8px; background: #FFFFFF; }\n#astro-calculator .ag-results.active { display: block; }\n#astro-calculator .ag-results-heading { padding: 9px 10px; border-bottom: 1px solid #E7DED0; background: #F7F1E6; color: #667B89; font: 600 10px\/14px Arial, Helvetica, sans-serif; }\n#astro-calculator .ag-result { display: block; width: 100%; padding: 10px; border: 0; border-bottom: 1px solid #F0EAE0; background: #FFFFFF; text-align: left; cursor: pointer; }\n#astro-calculator .ag-result:last-child { border-bottom: 0; }\n#astro-calculator .ag-result:hover { background: #FBF8F1; }\n#astro-calculator .ag-result-name { display: block; color: #173650; font-size: 12px; line-height: 17px; font-weight: 600; }\n#astro-calculator .ag-result-address { display: block; margin-top: 3px; color: #788A94; font-size: 10px; line-height: 15px; }\n#astro-calculator .ag-verified,\n#astro-calculator .ag-coords { display: none; margin-top: 6px; padding: 8px 10px; border: 1px solid #D5E7DF; border-radius: 6px; background: #F0F7F3; color: #39745F; font-size: 10px; line-height: 15px; }\n#astro-calculator .ag-verified.active,\n#astro-calculator .ag-coords.active { display: block; }\n#astro-calculator .ag-radius-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 9px; }\n#astro-calculator .ag-help { margin-top: 2px; color: #788A94; font-size: 10px; line-height: 15px; }\n#astro-calculator .ag-continue { display: block; width: 100%; min-height: 44px; margin-top: 7px; padding: 10px 16px; border: 1px solid #B58A43; border-radius: 6px; background: #B58A43; color: #FFFFFF; font-size: 12px; line-height: 18px; font-weight: 700; cursor: pointer; }\n#astro-calculator .ag-continue:hover { background: #9B7335; border-color: #9B7335; }\n#astro-calculator .ag-continue:disabled { opacity: .55; cursor: not-allowed; }\n#astro-calculator .ag-secure { margin-top: 7px; color: #788A94; text-align: center; font-size: 10px; line-height: 15px; }\n#astro-calculator #astro-house-system { display: none !important; }\n#astro-calculator #astro-analysis-product-wrap { margin-top: 10px !important; }\n#astro-calculator .ag-input:disabled,\n#astro-calculator .ag-select:disabled { opacity: 1; background: #FFFFFF; color: #173650; cursor: not-allowed; }\n\n@media (max-width: 900px) {\n  #astro-calculator { padding: 28px 18px; }\n  #astro-calculator .ag-panel { grid-template-columns: minmax(0,1fr); height: auto; }\n  #astro-calculator .ag-map { height: 360px; min-height: 360px; }\n  #astro-calculator #astro-map { height: 360px; min-height: 360px; }\n  #astro-calculator .ag-form { max-height: none; padding: 22px; }\n}\n@media (max-width: 600px) {\n  #astro-calculator { padding: 24px 12px; }\n  #astro-calculator .ag-head { margin-bottom: 16px; padding: 0 2px; }\n  #astro-calculator .ag-kicker { font-size: 9px; letter-spacing: 1.5px; }\n  #astro-calculator h2 { font-size: 28px; line-height: 35px; }\n  #astro-calculator .ag-head p { font-size: 13px; line-height: 21px; }\n  #astro-calculator .ag-panel { border-radius: 10px; }\n  #astro-calculator .ag-map { height: 290px; min-height: 290px; }\n  #astro-calculator #astro-map { height: 290px; min-height: 290px; }\n  #astro-calculator .ag-form { padding: 15px; }\n  #astro-calculator .ag-steps { gap: 5px; margin-bottom: 15px; }\n  #astro-calculator .ag-step { padding: 8px 3px; font-size: 9px; }\n  #astro-calculator .ag-grid2,\n  #astro-calculator .ag-radius-row { grid-template-columns: minmax(0,1fr); }\n  #astro-calculator .ag-title { align-items: flex-start; flex-wrap: wrap; }\n  #astro-calculator .ag-title span { text-align: left; }\n  #astro-calculator .ag-search { grid-template-columns: minmax(0,1fr) auto; gap: 5px; }\n  #astro-calculator .ag-btn { padding: 0 9px; font-size: 10px; }\n}\n\n\n\/* ===== LAYOUT MATCH: BIRTH ROW ABOVE MAP + EXPLORE PANEL ===== *\/\n#astro-calculator .ag-wrap { max-width: 1320px; }\n#astro-calculator .ag-head { max-width: 900px; margin: 0 0 18px; text-align: left; }\n#astro-calculator .ag-birthbar {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n  gap: 14px;\n  margin: 0 0 14px;\n  padding: 16px 18px 8px;\n  background: #FFFFFF;\n  border: 1px solid #E7DED0;\n  border-radius: 12px;\n  box-shadow: 0 5px 18px rgba(23,54,80,.05);\n}\n#astro-calculator .ag-birthbox { min-width: 0; }\n#astro-calculator .ag-birthbox .ag-title { margin-bottom: 8px; }\n#astro-calculator .ag-birthbox .ag-field { margin-bottom: 8px; }\n#astro-calculator .ag-birthdates .ag-grid2 { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }\n#astro-calculator .ag-birthplacebox .ag-search { grid-template-columns: minmax(0,1fr) auto; }\n#astro-calculator .ag-panel {\n  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);\n  height: 500px;\n  border: 1px solid #E7DED0;\n  border-radius: 12px;\n  box-shadow: 0 8px 26px rgba(23,54,80,.07);\n}\n#astro-calculator .ag-map { min-height: 0; }\n#astro-calculator #astro-map { height: 100%; min-height: 0; }\n#astro-calculator .ag-form { padding: 18px; background: #FFFCF6; overflow-y: auto; }\n#astro-calculator .ag-steps { display: none; }\n#astro-calculator .ag-section { padding-bottom: 10px; margin-bottom: 10px; }\n#astro-calculator .ag-section .ag-title { margin-bottom: 8px; }\n#astro-calculator #astro-analysis-product-wrap { margin-top: 10px !important; }\n#astro-calculator .ag-continue { margin-top: 5px; }\n@media (max-width: 900px) {\n  #astro-calculator .ag-birthbar { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }\n  #astro-calculator .ag-panel { grid-template-columns: minmax(0,1fr); height: auto; }\n  #astro-calculator .ag-map { height: 360px; min-height: 360px; }\n  #astro-calculator #astro-map { height: 360px; min-height: 360px; }\n  #astro-calculator .ag-form { overflow: visible; }\n}\n@media (max-width: 600px) {\n  #astro-calculator .ag-birthbar { grid-template-columns: minmax(0,1fr); padding: 14px 14px 6px; gap: 8px; }\n  #astro-calculator .ag-birthdates .ag-grid2 { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }\n  #astro-calculator .ag-birthplacebox .ag-search { grid-template-columns: minmax(0,1fr) auto; }\n  #astro-calculator .ag-panel { height: auto; }\n  #astro-calculator .ag-map { height: 290px; min-height: 290px; }\n  #astro-calculator #astro-map { height: 290px; min-height: 290px; }\n}\n\n\n\/* ===== CLASSIC, BALANCED MAP + FORM LAYOUT ===== *\/\n#astro-calculator .ag-panel {\n  display: grid;\n  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);\n  justify-content: stretch;\n  align-items: stretch;\n  height: auto;\n  min-height: 430px;\n  overflow: hidden;\n  background: #FFFFFF;\n  border: 1px solid #E7DED0;\n  border-radius: 12px;\n  box-shadow: 0 8px 24px rgba(23,54,80,.06);\n}\n#astro-calculator .ag-map {\n  width: 100%;\n  height: 430px;\n  min-width: 0;\n  min-height: 430px;\n  overflow: hidden;\n  background: #E9F1F3;\n}\n#astro-calculator #astro-map {\n  width: 100%;\n  height: 430px;\n  min-height: 430px;\n  background: #E9F1F3;\n}\n#astro-calculator .ag-form {\n  width: 100%;\n  height: auto;\n  min-width: 0;\n  min-height: 430px;\n  padding: 20px 22px;\n  overflow: visible;\n  background: #FFFCF6;\n}\n#astro-calculator .ag-section {\n  padding-bottom: 9px;\n  margin-bottom: 9px;\n}\n#astro-calculator .ag-field { margin-bottom: 6px; }\n#astro-calculator .ag-title { margin-bottom: 7px; }\n#astro-calculator .ag-input,\n#astro-calculator .ag-select,\n#astro-calculator .ag-btn { height: 37px; }\n#astro-calculator .ag-continue {\n  min-height: 40px;\n  margin-top: 5px;\n  padding: 8px 14px;\n}\n#astro-calculator .ag-secure { margin-top: 5px; }\n#astro-calculator .ag-results { max-height: 140px; }\n\n@media (max-width: 900px) {\n  #astro-calculator .ag-panel {\n    grid-template-columns: minmax(0, 1fr);\n    height: auto;\n    min-height: 0;\n  }\n  #astro-calculator .ag-map,\n  #astro-calculator #astro-map {\n    height: 320px;\n    min-height: 320px;\n  }\n  #astro-calculator .ag-form {\n    height: auto;\n    min-height: 0;\n    padding: 20px;\n    overflow: visible;\n  }\n}\n@media (max-width: 600px) {\n  #astro-calculator { padding: 24px 12px; }\n  #astro-calculator .ag-birthbar {\n    grid-template-columns: minmax(0, 1fr);\n    padding: 14px 14px 6px;\n    gap: 8px;\n  }\n  #astro-calculator .ag-birthdates .ag-grid2 {\n    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n  }\n  #astro-calculator .ag-birthplacebox .ag-search {\n    grid-template-columns: minmax(0, 1fr) auto;\n  }\n  #astro-calculator .ag-map,\n  #astro-calculator #astro-map {\n    height: 280px;\n    min-height: 280px;\n  }\n  #astro-calculator .ag-form { padding: 16px; }\n  #astro-calculator .ag-grid2,\n  #astro-calculator .ag-radius-row {\n    grid-template-columns: minmax(0, 1fr);\n  }\n  #astro-calculator .ag-title {\n    align-items: flex-start;\n    flex-wrap: wrap;\n  }\n  #astro-calculator .ag-title span { text-align: left; }\n  #astro-calculator .ag-search { gap: 5px; }\n  #astro-calculator .ag-btn { padding: 0 9px; font-size: 10px; }\n}\n\n\n<\/style>\n\n\n<div id=\"astro-calculator\">\n  <div class=\"ag-wrap\">\n    <div class=\"ag-head\">\n      <span class=\"ag-kicker\">Astrogeography Calculator<\/span>\n      <h2>Find your relationship with a place<\/h2>\n      <p>Enter your birth details, choose a place to explore, and refine the exact location on the map.<\/p>\n    <\/div>\n\n    <!-- Birth details sit in their own full-width row, like the reference layout. -->\n    <div class=\"ag-birthbar\">\n      <div class=\"ag-birthbox ag-birthdates\">\n        <div class=\"ag-title\">Birth details <span>Required for calculation<\/span><\/div>\n        <div class=\"ag-grid2\">\n          <div class=\"ag-field\">\n            <label class=\"ag-label\" for=\"astro-front-birth-date\">Birth date<\/label>\n            <input class=\"ag-input\" type=\"date\" id=\"astro-front-birth-date\">\n          <\/div>\n          <div class=\"ag-field\">\n            <label class=\"ag-label\">Birth time<\/label>\n            <div class=\"ag-grid2 ag-time-fields\" style=\"gap:6px\">\n              <input class=\"ag-input\" type=\"number\" id=\"astro-front-hour\" min=\"0\" max=\"23\" placeholder=\"HH\" aria-label=\"Birth hour\">\n              <input class=\"ag-input\" type=\"number\" id=\"astro-front-minute\" min=\"0\" max=\"59\" placeholder=\"MM\" aria-label=\"Birth minute\">\n            <\/div>\n            <div class=\"ag-help\" style=\"margin-top:5px\">Birth time (optional)<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"ag-birthbox ag-birthplacebox\">\n        <div class=\"ag-title\">Place of birth<\/div>\n        <div class=\"ag-field\">\n          <label class=\"ag-label\" for=\"astro-front-birth-place\">City, town or locality<\/label>\n          <div class=\"ag-search\">\n            <input class=\"ag-input\" type=\"text\" id=\"astro-front-birth-place\" placeholder=\"City, town or locality\" autocomplete=\"off\">\n            <button type=\"button\" class=\"ag-btn\" id=\"astro-check-birth-place\">Verify place<\/button>\n          <\/div>\n          <div id=\"astro-front-birth-status\" class=\"ag-status\"><\/div>\n          <div id=\"astro-birth-results\" class=\"ag-results\"><\/div>\n          <div id=\"astro-birth-verified\" class=\"ag-verified\"><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"ag-panel\">\n\n      <div class=\"ag-map\">\n        <div class=\"ag-mapbar\">\n          <div>\n            <button type=\"button\" class=\"ag-map-tool\" id=\"astro-map-locate\">\u2316 Locate<\/button>\n            <button type=\"button\" class=\"ag-map-tool\" id=\"astro-map-clear\">Clear<\/button>\n          <\/div>\n        <\/div>\n        <div id=\"astro-map\"><\/div>\n        <div class=\"ag-map-note\" id=\"astro-map-info\">Search a place, then drag the red pin to the exact point. You can also click anywhere on the map.<\/div>\n      <\/div>\n\n      <div class=\"ag-form\">\n\n        <div class=\"ag-section\">\n          <div class=\"ag-title\">Explore a place <span>Search \u2192 pin \u2192 refine<\/span><\/div>\n\n          <div class=\"ag-field\">\n            <label class=\"ag-label\" for=\"astro-address\">Place or address to explore<\/label>\n            <div class=\"ag-search\">\n              <input class=\"ag-input\" type=\"text\" id=\"astro-address\" placeholder=\"Address, locality or city\" autocomplete=\"off\">\n              <button type=\"button\" class=\"ag-btn\" id=\"astro-search-button\">Find place<\/button>\n            <\/div>\n            <div id=\"astro-status\" class=\"ag-status\"><\/div>\n            <div id=\"astro-search-results\" class=\"ag-results ag-auto-results\"><\/div>\n            <div id=\"astro-coordinates\" class=\"ag-coords\">No location selected.<\/div>\n          <\/div>\n\n          <div class=\"ag-radius-row\">\n            <div class=\"ag-field\">\n              <label class=\"ag-label\" for=\"astro-radius\">Location radius<\/label>\n              <select id=\"astro-radius\" class=\"ag-select\">\n                <option value=\"0\">Exact location<\/option>\n                <option value=\"1\">1 km<\/option>\n                <option value=\"5\">5 km<\/option>\n                <option value=\"10\">10 km<\/option>\n                <option value=\"25\">25 km<\/option>\n                <option value=\"50\">50 km<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"ag-field\">\n              <label class=\"ag-label\" for=\"astro-level\">Interpretation level<\/label>\n              <select id=\"astro-level\" class=\"ag-select\">\n                <option value=\"\">Choose level<\/option>\n                <option value=\"L1\">L1 \u00b7 Region \/ country<\/option>\n                <option value=\"L2\">L2 \u00b7 Town \/ city<\/option>\n                <option value=\"L3\">L3 \u00b7 Surrounding area<\/option>\n                <option value=\"L4\">L4 \u00b7 Exact address \/ microcosm<\/option>\n              <\/select>\n            <\/div>\n          <\/div>\n          <div class=\"ag-help\">For L4, drag the marker onto the exact house, plot or property you want to examine.<\/div>\n        <\/div>\n<select id=\"astro-house-system\" aria-hidden=\"true\" tabindex=\"-1\"><option value=\"E\" selected>Equal House<\/option><\/select>\n\n        <div class=\"ag-analysis-action-row\">\n          <div class=\"ag-field\" id=\"astro-analysis-product-wrap\">\n            <label class=\"ag-label\" for=\"astro-analysis-product\">Choose your analysis<\/label>\n            <select id=\"astro-analysis-product\" class=\"ag-select\" required>\n              <option value=\"\">Select an analysis option<\/option>\n              <option value=\"186\">Astrogeography \u2013 Career &amp; Work<\/option>\n              <option value=\"202\">Astrogeography \u2013 Home &amp; Family<\/option>\n              <option value=\"203\">Astrogeography \u2013 Business &amp; Success<\/option>\n              <option value=\"204\">Astrogeography \u2013 Travel &amp; Exploration<\/option>\n              <option value=\"201\">Astrogeography \u2013 Love &amp; Relationships<\/option>\n            <\/select>\n            <div class=\"ag-help\">Choose the area you want your analysis to focus on.<\/div>\n          <\/div>\n          <button type=\"button\" id=\"astro-continue\" class=\"ag-continue\" disabled>Continue to analysis \u2192<\/button>\n        <\/div>\n        <div class=\"ag-secure\">Your calculation data is saved securely with your analysis.<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <input type=\"hidden\" id=\"astro-day\" value=\"\">\n  <input type=\"hidden\" id=\"astro-month\" value=\"\">\n  <input type=\"hidden\" id=\"astro-year\" value=\"\">\n  <input type=\"hidden\" id=\"astro-hour\" value=\"\">\n  <input type=\"hidden\" id=\"astro-minute\" value=\"\">\n  <input type=\"hidden\" id=\"astro-time-unknown\" value=\"0\">\n  <input type=\"hidden\" id=\"astro-birth-place\" value=\"\">\n  <input type=\"hidden\" id=\"astro-birth-place-id\" value=\"\">\n  <input type=\"hidden\" id=\"astro-birth-latitude\" value=\"\">\n  <input type=\"hidden\" id=\"astro-birth-longitude\" value=\"\">\n  <input type=\"hidden\" id=\"astro-birth-display-name\" value=\"\">\n  <input type=\"hidden\" id=\"astro-residence-place-id\" value=\"\">\n  <input type=\"hidden\" id=\"astro-residence-latitude\" value=\"\">\n  <input type=\"hidden\" id=\"astro-residence-longitude\" value=\"\">\n  <input type=\"hidden\" id=\"astro-residence-display-name\" value=\"\">\n  <input type=\"hidden\" id=\"astro-backend-house-system\" value=\"E\">\n<\/div>\n\n<script src=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js\"><\/script>\n\n\n<script>\n(function () {\n\n  \"use strict\";\n\n\n  \/* =======================================================\n     PREVENT DUPLICATE INITIALIZATION\n     ======================================================= *\/\n\n  if (\n    window.AstroGeographyCalculatorInitialized\n  ) {\n    return;\n  }\n\n  window.AstroGeographyCalculatorInitialized = true;\n\n\n  \/* =======================================================\n     HELPER\n     ======================================================= *\/\n\n  function $(id) {\n    return document.getElementById(id);\n  }\n\n\n  \/* =======================================================\n     ELEMENTS\n     ======================================================= *\/\n\n  const birthInput =\n    $(\"astro-front-birth-place\");\n\n  const birthButton =\n    $(\"astro-check-birth-place\");\n\n  const birthStatus =\n    $(\"astro-front-birth-status\");\n\n  const birthResults =\n    $(\"astro-birth-results\");\n\n  const birthVerified =\n    $(\"astro-birth-verified\");\n\n\n  const residenceInput =\n    $(\"astro-address\");\n\n  const residenceButton =\n    $(\"astro-search-button\");\n\n  const residenceStatus =\n    $(\"astro-status\");\n\n  const residenceResults =\n    $(\"astro-search-results\");\n\n\n  const coordinatesBox =\n    $(\"astro-coordinates\");\n\n  const mapInfo =\n    $(\"astro-map-info\");\n\n\n  const continueButton =\n    $(\"astro-continue\");\n\n\n  const radiusSelect =\n    $(\"astro-radius\");\n\n\n  \/* =======================================================\n     STATE\n     ======================================================= *\/\n\n  let birthLocation = null;\n\n  let residenceLocation = null;\n\n  let residenceMarker = null;\n\n  let residenceCircle = null;\n\n\n  \/* =======================================================\n     MAP\n     ======================================================= *\/\n\n  const map =\n    L.map(\n      \"astro-map\",\n      {\n        center: [\n          20.5937,\n          78.9629\n        ],\n\n        zoom: 5,\n\n        minZoom: 2,\n\n        maxZoom: 20,\n\n        zoomControl: true,\n\n        scrollWheelZoom: true,\n\n        doubleClickZoom: true,\n\n        dragging: true,\n\n        touchZoom: true,\n\n        boxZoom: true,\n\n        keyboard: true,\n\n        worldCopyJump: true\n      }\n    );\n\n\n  \/* =======================================================\n     CURRENT APPROVED MAP\n     ======================================================= *\/\n\n  const streetLayer =\n    L.tileLayer(\n      \"https:\/\/tile.openstreetmap.org\/{z}\/{x}\/{y}.png\",\n      {\n        maxZoom: 20,\n\n        maxNativeZoom: 19,\n\n        attribution:\n          '&copy; <a href=\"https:\/\/www.openstreetmap.org\/copyright\" target=\"_blank\" rel=\"noopener\">OpenStreetMap contributors<\/a>',\n\n        updateWhenIdle: true,\n\n        keepBuffer: 2\n      }\n    );\n\n\n  streetLayer.addTo(map);\n\n\n  \/* =======================================================\n     ELEMENTOR MAP FIX\n     ======================================================= *\/\n\n  function refreshMap() {\n\n    setTimeout(\n      function () {\n        map.invalidateSize({\n          pan: false\n        });\n      },\n      100\n    );\n\n    setTimeout(\n      function () {\n        map.invalidateSize({\n          pan: false\n        });\n      },\n      500\n    );\n\n    setTimeout(\n      function () {\n        map.invalidateSize({\n          pan: false\n        });\n      },\n      1200\n    );\n\n  }\n\n\n  window.addEventListener(\n    \"resize\",\n    refreshMap\n  );\n\n\n  refreshMap();\n\n\n  \/* =======================================================\n     MAP CLICK\n     ======================================================= *\/\n\n  map.on(\n    \"click\",\n    function (event) {\n\n      if (!residenceLocation) {\n\n        residenceStatus.className =\n          \"ag-status error\";\n\n        residenceStatus.textContent =\n          \"Please select a residence from the search results first.\";\n\n        return;\n      }\n\n\n      setResidenceCoordinates(\n        event.latlng.lat,\n        event.latlng.lng,\n        false\n      );\n\n    }\n  );\n\n\n  \/* =======================================================\n     MARKER + REVERSE GEOCODING\n     ======================================================= *\/\n\n  const redMarkerIcon = L.divIcon({\n    className: \"ag-red-pin-wrap\",\n    html: '<span class=\"ag-red-pin\" aria-hidden=\"true\"><\/span>',\n    iconSize: [24, 24],\n    iconAnchor: [12, 24],\n    popupAnchor: [0, -22]\n  });\n\n  let reverseRequestId = 0;\n\n  function createResidenceMarker(lat, lon) {\n    if (residenceMarker) {\n      residenceMarker.setLatLng([lat, lon]);\n      return;\n    }\n\n    residenceMarker = L.marker([lat, lon], {\n      draggable: true,\n      autoPan: true,\n      icon: redMarkerIcon,\n      zIndexOffset: 1000\n    }).addTo(map);\n\n    residenceMarker.bindPopup(\n      \"Exact location<br><strong>Drag the red pin to refine<\/strong>\"\n    );\n\n    residenceMarker.on(\"dragend\", async function () {\n      const position = residenceMarker.getLatLng();\n      await setResidenceCoordinates(\n        position.lat,\n        position.lng,\n        false,\n        true\n      );\n    });\n  }\n\n  async function reverseGeocode(lat, lon) {\n    const requestId = ++reverseRequestId;\n    const endpoints = [\n      \"\/wp-json\/astro-location\/v1\/reverse?lat=\" +\n        encodeURIComponent(lat) +\n        \"&lon=\" +\n        encodeURIComponent(lon),\n      \"\/wp-json\/astro-location\/v1\/reverse?latitude=\" +\n        encodeURIComponent(lat) +\n        \"&longitude=\" +\n        encodeURIComponent(lon),\n      \"\/wp-json\/astro-location\/v1\/reverse?lat=\" +\n        encodeURIComponent(lat) +\n        \"&lng=\" +\n        encodeURIComponent(lon)\n    ];\n\n    let lastError = null;\n\n    for (const url of endpoints) {\n      try {\n        const response = await fetch(url, {\n          method: \"GET\",\n          credentials: \"same-origin\",\n          headers: {\n            \"Accept\": \"application\/json\"\n          }\n        });\n\n        if (!response.ok) {\n          lastError = new Error(\"Reverse geocode HTTP \" + response.status);\n          continue;\n        }\n\n        const data = await response.json();\n\n        if (requestId !== reverseRequestId) {\n          return null;\n        }\n\n        const candidates = [\n          data,\n          data && data.data,\n          data && data.result,\n          data && data.location,\n          data && data.address\n        ];\n\n        let address = \"\";\n\n        for (const item of candidates) {\n          if (!item) continue;\n\n          if (typeof item === \"string\") {\n            address = item;\n            break;\n          }\n\n          if (Array.isArray(item)) {\n            const found = item.find(function (x) {\n              return x && typeof x === \"object\";\n            });\n            if (found) {\n              address =\n                found.display_name ||\n                found.displayName ||\n                found.address ||\n                found.name ||\n                \"\";\n            }\n          } else if (typeof item === \"object\") {\n            address =\n              item.display_name ||\n              item.displayName ||\n              item.formatted_address ||\n              item.address ||\n              item.name ||\n              \"\";\n          }\n\n          if (address) break;\n        }\n\n        if (address) {\n          return address;\n        }\n\n        \/*\n         * Some reverse endpoints return address components.\n         *\/\n        const a =\n          (data && data.address) ||\n          (data && data.data && data.data.address);\n\n        if (a && typeof a === \"object\") {\n          const parts = [\n            a.house_number,\n            a.road,\n            a.neighbourhood,\n            a.suburb,\n            a.city,\n            a.town,\n            a.village,\n            a.county,\n            a.state,\n            a.postcode,\n            a.country\n          ].filter(Boolean);\n\n          if (parts.length) {\n            return parts.join(\", \");\n          }\n        }\n      } catch (error) {\n        lastError = error;\n      }\n    }\n\n    \/*\n     * Compatibility fallback: some WordPress reverse-geocoder\n     * implementations expose the same route as POST.\n     *\/\n    const postBodies = [\n      { lat: lat, lon: lon },\n      { latitude: lat, longitude: lon }\n    ];\n\n    for (const body of postBodies) {\n      try {\n        const response = await fetch(\n          \"\/wp-json\/astro-location\/v1\/reverse\",\n          {\n            method: \"POST\",\n            credentials: \"same-origin\",\n            headers: {\n              \"Accept\": \"application\/json\",\n              \"Content-Type\": \"application\/json\"\n            },\n            body: JSON.stringify(body)\n          }\n        );\n\n        if (!response.ok) {\n          lastError = new Error(\n            \"Reverse geocode POST HTTP \" + response.status\n          );\n          continue;\n        }\n\n        const data = await response.json();\n\n        if (requestId !== reverseRequestId) {\n          return null;\n        }\n\n        const item =\n          (data && data.data) ||\n          (data && data.result) ||\n          data;\n\n        if (typeof item === \"string\" && item.trim()) {\n          return item.trim();\n        }\n\n        if (item && typeof item === \"object\") {\n          const address =\n            item.display_name ||\n            item.displayName ||\n            item.formatted_address ||\n            item.address ||\n            item.name ||\n            \"\";\n\n          if (address) {\n            return address;\n          }\n\n          if (item.address && typeof item.address === \"object\") {\n            const parts = [\n              item.address.house_number,\n              item.address.road,\n              item.address.neighbourhood,\n              item.address.suburb,\n              item.address.city,\n              item.address.town,\n              item.address.village,\n              item.address.county,\n              item.address.state,\n              item.address.postcode,\n              item.address.country\n            ].filter(Boolean);\n\n            if (parts.length) {\n              return parts.join(\", \");\n            }\n          }\n        }\n      } catch (error) {\n        lastError = error;\n      }\n    }\n\n    if (lastError) {\n      console.warn(\"Reverse geocoding failed:\", lastError);\n    }\n\n    return \"\";\n  }\n\n  async function setResidenceCoordinates(lat, lon, zoomMap, doReverse) {\n    lat = Number(lat);\n    lon = Number(lon);\n\n    if (!Number.isFinite(lat) || !Number.isFinite(lon)) {\n      return;\n    }\n\n    createResidenceMarker(lat, lon);\n\n    if (!residenceLocation) {\n      residenceLocation = {};\n    }\n\n    residenceLocation.lat = lat;\n    residenceLocation.lon = lon;\n\n    $(\"astro-residence-latitude\").value = lat;\n    $(\"astro-residence-longitude\").value = lon;\n\n    coordinatesBox.innerHTML =\n      \"<strong>Latitude:<\/strong> \" +\n      lat.toFixed(7) +\n      \" &nbsp; <strong>Longitude:<\/strong> \" +\n      lon.toFixed(7);\n\n    mapInfo.innerHTML =\n      \"<strong>Exact point selected<\/strong><br>\" +\n      lat.toFixed(7) +\n      \", \" +\n      lon.toFixed(7) +\n      \"<br><span>Reverse geocoding address\u2026<\/span>\";\n\n    if (zoomMap) {\n      map.setView([lat, lon], 20, {\n        animate: true\n      });\n    }\n\n    updateRadius();\n    updateContinueState();\n\n    if (doReverse) {\n      residenceStatus.className = \"ag-status loading\";\n      residenceStatus.textContent = \"Updating exact address\u2026\";\n\n      const address = await reverseGeocode(lat, lon);\n\n      if (address) {\n        $(\"astro-residence-display-name\").value = address;\n        residenceInput.value = address;\n\n        if (residenceLocation) {\n          residenceLocation.displayName = address;\n          residenceLocation.name = address;\n        }\n\n        residenceStatus.className = \"ag-status success\";\n        residenceStatus.textContent =\n          \"Exact location updated from the map.\";\n\n        mapInfo.innerHTML =\n          \"<strong>Exact location<\/strong><br>\" +\n          escapeHtml(address) +\n          \"<br><span>\" +\n          lat.toFixed(7) +\n          \", \" +\n          lon.toFixed(7) +\n          \"<\/span>\";\n      } else {\n        \/*\n         * Coordinates remain valid even if the reverse service\n         * cannot return a human-readable address.\n         *\/\n        residenceStatus.className = \"ag-status success\";\n        residenceStatus.textContent =\n          \"Exact coordinates updated. Address could not be refreshed.\";\n\n        mapInfo.innerHTML =\n          \"<strong>Exact location<\/strong><br>\" +\n          lat.toFixed(7) +\n          \", \" +\n          lon.toFixed(7);\n      }\n\n      updateContinueState();\n    }\n  }\n\n  \/* =======================================================\n     MAP CLICK \u2014 ALWAYS SET EXACT POINT\n     ======================================================= *\/\n\n  map.on(\"click\", async function (event) {\n    await setResidenceCoordinates(\n      event.latlng.lat,\n      event.latlng.lng,\n      false,\n      true\n    );\n  });\n\n  \/* =======================================================\n     RADIUS\n     ======================================================= *\/\n\n  function updateRadius() {\n\n    if (!residenceLocation) {\n      return;\n    }\n\n\n    if (residenceCircle) {\n\n      map.removeLayer(\n        residenceCircle\n      );\n\n      residenceCircle = null;\n\n    }\n\n\n    const radiusKm =\n      Number(\n        radiusSelect.value || 0\n      );\n\n\n    if (radiusKm > 0) {\n\n      residenceCircle =\n        L.circle(\n          [\n            residenceLocation.lat,\n            residenceLocation.lon\n          ],\n          {\n            radius:\n              radiusKm * 1000,\n\n            weight: 1,\n\n            fillOpacity: .08\n          }\n        ).addTo(map);\n\n    }\n\n  }\n\n\n  radiusSelect.addEventListener(\n    \"change\",\n    updateRadius\n  );\n\n\n  \/* =======================================================\n     LOCATION API\n     ======================================================= *\/\n\n  async function searchLocations(\n    query\n  ) {\n\n    const url =\n      \"\/wp-json\/astro-location\/v1\/search?q=\" +\n      encodeURIComponent(query) +\n      \"&limit=10\";\n\n\n    const response =\n      await fetch(\n        url,\n        {\n          method: \"GET\",\n\n          credentials:\n            \"same-origin\",\n\n          headers: {\n            \"Accept\":\n              \"application\/json\"\n          }\n        }\n      );\n\n\n    if (!response.ok) {\n\n      throw new Error(\n        \"Location search HTTP \" +\n        response.status\n      );\n\n    }\n\n\n    const data =\n      await response.json();\n\n\n    if (Array.isArray(data)) {\n      return data;\n    }\n\n\n    if (Array.isArray(data.results)) {\n      return data.results;\n    }\n\n\n    if (Array.isArray(data.data)) {\n      return data.data;\n    }\n\n\n    return [];\n\n  }\n\n\n  \/* =======================================================\n     NORMALIZE RESULT\n     ======================================================= *\/\n\n  function normalizeResult(\n    item\n  ) {\n\n    if (!item) {\n      return null;\n    }\n\n\n    const lat =\n      item.lat ??\n      item.latitude ??\n      item.y;\n\n\n    const lon =\n      item.lon ??\n      item.lng ??\n      item.longitude ??\n      item.x;\n\n\n    if (\n      lat === undefined ||\n      lon === undefined\n    ) {\n      return null;\n    }\n\n\n    return {\n\n      id:\n        item.id ??\n        item.place_id ??\n        item.placeId ??\n        \"\",\n\n      name:\n        item.name ??\n        item.display_name ??\n        item.displayName ??\n        item.address ??\n        \"Location\",\n\n      displayName:\n        item.display_name ??\n        item.displayName ??\n        item.name ??\n        item.address ??\n        \"\",\n\n      lat:\n        Number(lat),\n\n      lon:\n        Number(lon)\n\n    };\n\n  }\n\n\n  \/* =======================================================\n     DISPLAY RESULTS\n     ======================================================= *\/\n\n  function displayResults(\n    container,\n    results,\n    callback\n  ) {\n\n    container.innerHTML = \"\";\n\n\n    if (!results.length) {\n\n      container.innerHTML =\n        '<div class=\"ag-results-heading\">' +\n        \"No matching locations found.\" +\n        \"<\/div>\";\n\n      container.classList.add(\n        \"active\"\n      );\n\n      return;\n\n    }\n\n\n    const heading =\n      document.createElement(\n        \"div\"\n      );\n\n\n    heading.className =\n      \"ag-results-heading\";\n\n\n    heading.textContent =\n      \"Select the correct location\";\n\n\n    container.appendChild(\n      heading\n    );\n\n\n    results.forEach(\n      function (result) {\n\n        const button =\n          document.createElement(\n            \"button\"\n          );\n\n\n        button.type =\n          \"button\";\n\n\n        button.className =\n          \"ag-result\";\n\n\n        const name =\n          document.createElement(\n            \"span\"\n          );\n\n\n        name.className =\n          \"ag-result-name\";\n\n\n        name.textContent =\n          result.name;\n\n\n        const address =\n          document.createElement(\n            \"span\"\n          );\n\n\n        address.className =\n          \"ag-result-address\";\n\n\n        address.textContent =\n          result.displayName;\n\n\n        button.appendChild(\n          name\n        );\n\n\n        button.appendChild(\n          address\n        );\n\n\n        button.addEventListener(\n          \"click\",\n          function () {\n\n            callback(\n              result\n            );\n\n          }\n        );\n\n\n        container.appendChild(\n          button\n        );\n\n      }\n    );\n\n\n    container.classList.add(\n      \"active\"\n    );\n\n  }\n\n\n  \/* =======================================================\n     PLACE OF BIRTH\n     ======================================================= *\/\n\n  birthButton.addEventListener(\n    \"click\",\n    async function () {\n\n      const query =\n        birthInput.value.trim();\n\n\n      if (!query) {\n\n        birthStatus.className =\n          \"ag-status error\";\n\n        birthStatus.textContent =\n          \"Please enter your place of birth.\";\n\n        birthResults.classList.remove(\n          \"active\"\n        );\n\n        return;\n\n      }\n\n\n      birthButton.disabled =\n        true;\n\n\n      birthStatus.className =\n        \"ag-status loading\";\n\n\n      birthStatus.textContent =\n        \"Searching for your place of birth\u2026\";\n\n\n      birthResults.classList.remove(\n        \"active\"\n      );\n\n\n      \/*\n       * Clear previous verified result.\n       *\/\n\n      birthLocation =\n        null;\n\n\n      $(\"astro-birth-place-id\").value =\n        \"\";\n\n      $(\"astro-birth-latitude\").value =\n        \"\";\n\n      $(\"astro-birth-longitude\").value =\n        \"\";\n\n      $(\"astro-birth-display-name\").value =\n        \"\";\n\n      $(\"astro-birth-place\").value =\n        \"\";\n\n      birthVerified.classList.remove(\n        \"active\"\n      );\n\n\n      try {\n\n        const rawResults =\n          await searchLocations(\n            query\n          );\n\n\n        const results =\n          rawResults\n            .map(\n              normalizeResult\n            )\n            .filter(\n              Boolean\n            );\n\n\n        if (!results.length) {\n\n          birthStatus.className =\n            \"ag-status error\";\n\n          birthStatus.textContent =\n            \"Place of birth could not be found. Try the city, town or locality name.\";\n\n          return;\n\n        }\n\n\n        birthStatus.className =\n          \"ag-status\";\n\n\n        birthStatus.textContent =\n          \"Select the correct place from the results.\";\n\n\n        displayResults(\n          birthResults,\n          results,\n          selectBirthLocation\n        );\n\n      }\n      catch (error) {\n\n        console.error(\n          \"Birthplace search:\",\n          error\n        );\n\n\n        birthStatus.className =\n          \"ag-status error\";\n\n\n        birthStatus.textContent =\n          \"Unable to search for the place. Please try again.\";\n\n      }\n      finally {\n\n        birthButton.disabled =\n          false;\n\n      }\n\n    }\n  );\n\n\n  \/* =======================================================\n     SELECT BIRTH PLACE\n     ======================================================= *\/\n\n  function selectBirthLocation(\n    location\n  ) {\n\n    birthLocation =\n      location;\n\n\n    $(\"astro-birth-place-id\").value =\n      location.id || \"\";\n\n\n    $(\"astro-birth-latitude\").value =\n      location.lat;\n\n\n    $(\"astro-birth-longitude\").value =\n      location.lon;\n\n\n    $(\"astro-birth-display-name\").value =\n      location.displayName;\n\n\n    $(\"astro-birth-place\").value =\n      location.displayName;\n\n\n    birthInput.value =\n      location.displayName;\n\n\n    birthResults.classList.remove(\n      \"active\"\n    );\n\n\n    birthStatus.className =\n      \"ag-status success\";\n\n\n    birthStatus.textContent =\n      \"Place of birth verified.\";\n\n\n    birthVerified.innerHTML =\n      \"\u2713 <strong>Place of birth verified<\/strong><br>\" +\n      escapeHtml(\n        location.displayName\n      );\n\n\n    birthVerified.classList.add(\n      \"active\"\n    );\n\n\n    updateContinueState();\n\n  }\n\n\n  \/* =======================================================\n     RESIDENCE SEARCH\n     ======================================================= *\/\n\n  residenceButton.addEventListener(\n    \"click\",\n    searchResidence\n  );\n\n  residenceInput.addEventListener(\"keydown\", function (event) {\n    if (event.key === \"Enter\") {\n      event.preventDefault();\n      searchResidence();\n    }\n  });\n\n  birthInput.addEventListener(\"keydown\", function (event) {\n    if (event.key === \"Enter\") {\n      event.preventDefault();\n      birthButton.click();\n    }\n  });\n\n\n  async function searchResidence() {\n\n    const query =\n      residenceInput.value.trim();\n\n\n    clearResidenceSelection();\n\n\n    if (!query) {\n\n      residenceStatus.className =\n        \"ag-status error\";\n\n\n      residenceStatus.textContent =\n        \"Please enter your current residence.\";\n\n\n      return;\n\n    }\n\n\n    residenceButton.disabled =\n      true;\n\n\n    residenceStatus.className =\n      \"ag-status loading\";\n\n\n    residenceStatus.textContent =\n      \"Searching for your residence\u2026\";\n\n\n    residenceResults.classList.remove(\n      \"active\"\n    );\n\n\n    try {\n\n      \/*\n       * First try the exact user input.\n       *\/\n\n      let rawResults =\n        await searchLocations(\n          query\n        );\n\n\n      let results =\n        rawResults\n          .map(\n            normalizeResult\n          )\n          .filter(\n            Boolean\n          );\n\n\n      \/*\n       * Progressive fallback.\n       *\/\n\n      if (!results.length) {\n\n        const fallbackQueries =\n          buildFallbackQueries(\n            query\n          );\n\n\n        for (\n          const fallbackQuery\n          of fallbackQueries\n        ) {\n\n          try {\n\n            rawResults =\n              await searchLocations(\n                fallbackQuery\n              );\n\n\n            results =\n              rawResults\n                .map(\n                  normalizeResult\n                )\n                .filter(\n                  Boolean\n                );\n\n\n            if (results.length) {\n              break;\n            }\n\n          }\n          catch (error) {\n\n            console.warn(\n              \"Residence fallback:\",\n              fallbackQuery,\n              error\n            );\n\n          }\n\n        }\n\n      }\n\n\n      if (!results.length) {\n\n        residenceStatus.className =\n          \"ag-status error\";\n\n\n        residenceStatus.textContent =\n          \"Residence could not be found. Try the locality, sector or city name.\";\n\n\n        return;\n\n      }\n\n\n      \/*\n       * Explore-place search intentionally does NOT open a\n       * result dropdown. Put the best result directly on the map.\n       * The red pin can then be dragged or replaced by clicking\n       * another point on the map.\n       *\/\n      await selectResidenceLocation(results[0]);\n\n    }\n    catch (error) {\n\n      console.error(\n        \"Residence search:\",\n        error\n      );\n\n\n      residenceStatus.className =\n        \"ag-status error\";\n\n\n      residenceStatus.textContent =\n        \"Unable to search for the residence. Please try again.\";\n\n    }\n    finally {\n\n      residenceButton.disabled =\n        false;\n\n    }\n\n  }\n\n\n  \/* =======================================================\n     RESIDENCE FALLBACK\n     ======================================================= *\/\n\n  function buildFallbackQueries(\n    query\n  ) {\n\n    const clean =\n      query\n        .replace(\n          \/\\s+\/g,\n          \" \"\n        )\n        .replace(\n          \/\\s*,\\s*\/g,\n          \", \"\n        )\n        .trim();\n\n\n    const output = [];\n\n\n    function add(\n      value\n    ) {\n\n      value =\n        value\n          .replace(\n            \/\\s+\/g,\n            \" \"\n          )\n          .trim();\n\n\n      if (\n        value &&\n        value.length >= 2 &&\n        !output.includes(value)\n      ) {\n\n        output.push(\n          value\n        );\n\n      }\n\n    }\n\n\n    \/*\n     * Remove house number.\n     *\/\n\n    add(\n      clean.replace(\n        \/^\\s*\\d+[A-Za-z]?\\s+\/,\n        \"\"\n      )\n    );\n\n\n    const parts =\n      clean\n        .split(\",\")\n        .map(\n          function (item) {\n            return item.trim();\n          }\n        )\n        .filter(\n          Boolean\n        );\n\n\n    \/*\n     * Remove progressively more detailed\n     * address components.\n     *\/\n\n    for (\n      let i = 1;\n      i < parts.length;\n      i++\n    ) {\n\n      add(\n        parts\n          .slice(i)\n          .join(\", \")\n      );\n\n    }\n\n\n    \/*\n     * Final locality\/city.\n     *\/\n\n    if (parts.length) {\n\n      add(\n        parts[\n          parts.length - 1\n        ]\n      );\n\n    }\n\n\n    return output.slice(\n      0,\n      5\n    );\n\n  }\n\n\n  \/* =======================================================\n     SELECT RESIDENCE\n     ======================================================= *\/\n\n  async function selectResidenceLocation(location) {\n    residenceLocation = {\n      id: location.id || \"\",\n      name: location.name || \"\",\n      displayName: location.displayName || \"\",\n      lat: Number(location.lat),\n      lon: Number(location.lon)\n    };\n\n    $(\"astro-residence-place-id\").value =\n      location.id || \"\";\n\n    $(\"astro-residence-display-name\").value =\n      location.displayName || location.name || \"\";\n\n    $(\"astro-residence-latitude\").value =\n      location.lat;\n\n    $(\"astro-residence-longitude\").value =\n      location.lon;\n\n    residenceInput.value =\n      location.displayName || location.name || \"\";\n\n    residenceResults.classList.remove(\"active\");\n\n    residenceStatus.className =\n      \"ag-status success\";\n\n    residenceStatus.textContent =\n      \"Location found. Refine the red pin if needed.\";\n\n    createResidenceMarker(\n      location.lat,\n      location.lon\n    );\n\n    await setResidenceCoordinates(\n      location.lat,\n      location.lon,\n      true,\n      false\n    );\n\n    \/*\n     * Normalize the displayed address through reverse geocoding\n     * without forcing the user through a dropdown.\n     *\/\n    const address = await reverseGeocode(\n      location.lat,\n      location.lon\n    );\n\n    if (address) {\n      $(\"astro-residence-display-name\").value = address;\n      residenceInput.value = address;\n      residenceLocation.displayName = address;\n      residenceLocation.name = address;\n      residenceStatus.textContent =\n        \"Location found. Drag the red pin to refine.\";\n    }\n\n    if (residenceMarker) {\n      residenceMarker.openPopup();\n    }\n\n    updateContinueState();\n  }\n\n  \/* =======================================================\n     CLEAR RESIDENCE\n     ======================================================= *\/\n\n  function clearResidenceSelection() {\n\n    residenceLocation =\n      null;\n\n\n    $(\"astro-residence-place-id\").value =\n      \"\";\n\n\n    $(\"astro-residence-latitude\").value =\n      \"\";\n\n\n    $(\"astro-residence-longitude\").value =\n      \"\";\n\n\n    $(\"astro-residence-display-name\").value =\n      \"\";\n\n\n    if (residenceMarker) {\n\n      map.removeLayer(\n        residenceMarker\n      );\n\n      residenceMarker =\n        null;\n\n    }\n\n\n    if (residenceCircle) {\n\n      map.removeLayer(\n        residenceCircle\n      );\n\n      residenceCircle =\n        null;\n\n    }\n\n\n    coordinatesBox.innerHTML =\n      \"No residence selected.\";\n\n\n    mapInfo.innerHTML =\n      \"Search a place or click the map to set an exact point.\";\n\n\n    updateContinueState();\n\n  }\n\n\n  \/* =======================================================\n     CLEAR MAP\n     ======================================================= *\/\n\n  $(\"astro-map-clear\")\n    .addEventListener(\n      \"click\",\n      function () {\n\n        clearResidenceSelection();\n\n\n        residenceInput.value =\n          \"\";\n\n\n        residenceStatus.className =\n          \"ag-status\";\n\n\n        residenceStatus.textContent =\n          \"\";\n\n\n        residenceResults.classList.remove(\n          \"active\"\n        );\n\n      }\n    );\n\n\n  \/* =======================================================\n     LOCATE SELECTED\n     ======================================================= *\/\n\n  $(\"astro-map-locate\")\n    .addEventListener(\n      \"click\",\n      function () {\n\n        if (!residenceLocation) {\n\n          residenceStatus.className =\n            \"ag-status error\";\n\n\n          residenceStatus.textContent =\n            \"Please select your residence first.\";\n\n\n          return;\n\n        }\n\n\n        map.setView(\n          [\n            residenceLocation.lat,\n            residenceLocation.lon\n          ],\n          20,\n          {\n            animate: true\n          }\n        );\n\n\n        if (residenceMarker) {\n\n          residenceMarker.openPopup();\n\n        }\n\n      }\n    );\n\n  \/* =======================================================\n     DATE \/ TIME SYNC\n     ======================================================= *\/\n\n  $(\"astro-front-birth-date\")\n    .addEventListener(\n      \"change\",\n      syncDateTime\n    );\n\n\n  $(\"astro-front-hour\")\n    .addEventListener(\n      \"input\",\n      syncDateTime\n    );\n\n\n  $(\"astro-front-minute\")\n    .addEventListener(\n      \"input\",\n      syncDateTime\n    );\n\n\n  function syncDateTime() {\n\n    const date =\n      $(\"astro-front-birth-date\").value;\n\n\n    if (date) {\n\n      const parts =\n        date.split(\"-\");\n\n\n      $(\"astro-year\").value =\n        parts[0] || \"\";\n\n\n      $(\"astro-month\").value =\n        parts[1] || \"\";\n\n\n      $(\"astro-day\").value =\n        parts[2] || \"\";\n\n    }\n\n\n    const hour = $(\"astro-front-hour\").value;\n    const minute = $(\"astro-front-minute\").value;\n    const timeUnknown = hour === \"\" && minute === \"\";\n\n    $(\"astro-hour\").value = timeUnknown ? \"\" : hour;\n    $(\"astro-minute\").value = timeUnknown ? \"\" : minute;\n    $(\"astro-time-unknown\").value = timeUnknown ? \"1\" : \"0\";\n\n    updateContinueState();\n\n  }\n\n\n  \/* =======================================================\n     CONTINUE VALIDATION\n     ======================================================= *\/\n\n  function updateContinueState() {\n\n    const date =\n      $(\"astro-front-birth-date\").value;\n\n\n    const hour =\n      $(\"astro-front-hour\").value;\n\n\n    const minute =\n      $(\"astro-front-minute\").value;\n\n\n    const validDate =\n      \/^\\d{4}-\\d{2}-\\d{2}$\/.test(\n        date\n      );\n\n\n    const validHour =\n      hour !== \"\" &&\n      Number(hour) >= 0 &&\n      Number(hour) <= 23;\n\n\n    const validMinute =\n      minute !== \"\" &&\n      Number(minute) >= 0 &&\n      Number(minute) <= 59;\n\n    const timeBlank = hour === \"\" && minute === \"\";\n    const validTime = timeBlank || (validHour && validMinute);\n\n    const validBirth =\n      !!birthLocation;\n\n\n    const validResidence =\n      !!residenceLocation;\n\n    const analysisSelect = $(\"astro-analysis-product\");\n    const validAnalysis = !!(analysisSelect && analysisSelect.value);\n\n    continueButton.disabled =\n      !(\n        validDate &&\n        validTime &&\n        validBirth &&\n        validResidence &&\n        validAnalysis\n      );\n\n  }\n\n\n  const analysisProductSelect = $(\"astro-analysis-product\");\n  if (analysisProductSelect) {\n    analysisProductSelect.addEventListener(\"change\", updateContinueState);\n  }\n\n  \/* =======================================================\n     CONTINUE \u2192 ASTRO CASE BRIDGE\n     ======================================================= *\/\n\n  continueButton.addEventListener(\"click\", async function () {\n\n    syncDateTime();\n    if (!birthLocation || !residenceLocation) return;\n\n    \/*\n     * Use the verified location objects as the source of truth.\n     * The hidden fields are still kept in sync for the existing bridge,\n     * but Continue must not fail just because an Elementor\/DOM field\n     * was refreshed after the location was verified.\n     *\/\n    const birthPlaceId =\n      (birthLocation && (birthLocation.id ?? birthLocation.place_id ?? birthLocation.placeId)) ||\n      $(\"astro-birth-place-id\").value;\n\n    const birthLat =\n      Number(\n        birthLocation && Number.isFinite(Number(birthLocation.lat))\n          ? birthLocation.lat\n          : $(\"astro-birth-latitude\").value\n      );\n\n    const birthLong =\n      Number(\n        birthLocation && Number.isFinite(Number(birthLocation.lon))\n          ? birthLocation.lon\n          : $(\"astro-birth-longitude\").value\n      );\n\n    const residenceLat =\n      Number(\n        residenceLocation && Number.isFinite(Number(residenceLocation.lat))\n          ? residenceLocation.lat\n          : $(\"astro-residence-latitude\").value\n      );\n\n    const residenceLong =\n      Number(\n        residenceLocation && Number.isFinite(Number(residenceLocation.lon))\n          ? residenceLocation.lon\n          : $(\"astro-residence-longitude\").value\n      );\n\n    \/* Keep the hidden fields synchronized with the verified values. *\/\n    $(\"astro-birth-place-id\").value = birthPlaceId || \"\";\n    $(\"astro-birth-latitude\").value = Number.isFinite(birthLat) ? birthLat : \"\";\n    $(\"astro-birth-longitude\").value = Number.isFinite(birthLong) ? birthLong : \"\";\n    $(\"astro-residence-latitude\").value = Number.isFinite(residenceLat) ? residenceLat : \"\";\n    $(\"astro-residence-longitude\").value = Number.isFinite(residenceLong) ? residenceLong : \"\";\n\n    const payload = {\n      birth: {\n        date: $(\"astro-front-birth-date\").value,\n        time: ($(\"astro-front-hour\").value === \"\" && $(\"astro-front-minute\").value === \"\")\n          ? \"00:00:00\"\n          : String($(\"astro-front-hour\").value).padStart(2,\"0\") +\n            \":\" +\n            String($(\"astro-front-minute\").value).padStart(2,\"0\") +\n            \":00\",\n        place: $(\"astro-birth-place\").value,\n        place_id: birthPlaceId,\n        lat: birthLat,\n        long: birthLong\n      },\n      location: {\n        name: $(\"astro-residence-display-name\").value || residenceInput.value,\n        address: residenceInput.value,\n        lat: residenceLat,\n        long: residenceLong\n      },\n      radius: radiusSelect.value,\n      interpretation_level: $(\"astro-level\") ? $(\"astro-level\").value : \"\",\n      house_system: \"E\",\n      analysis_product_id: Number($(\"astro-analysis-product\").value),\n      language: (document.documentElement.lang || \"en\").split(\"-\")[0]\n    };\n\n    if (\n      !payload.birth.date ||\n      !payload.birth.place ||\n      !Number.isFinite(payload.birth.lat) ||\n      !Number.isFinite(payload.birth.long) ||\n      !Number.isFinite(payload.location.lat) ||\n      !Number.isFinite(payload.location.long)\n    ) {\n      alert(\"Please complete and verify your birth place and explore location.\");\n      return;\n    }\n\n    continueButton.disabled = true;\n    const originalText = continueButton.textContent;\n    continueButton.textContent = \"Preparing\u2026\";\n\n    try {\n      const response = await fetch(\"\/wp-json\/astro-case\/v1\/prepare\", {\n        method: \"POST\",\n        credentials: \"same-origin\",\n        headers: {\n          \"Content-Type\": \"application\/json\",\n          \"Accept\": \"application\/json\"\n        },\n        body: JSON.stringify(payload)\n      });\n\n      const result = await response.json();\n\n      if (!response.ok || !result || !result.success) {\n        throw new Error(\n          result && result.message\n            ? result.message\n            : \"Unable to prepare your analysis.\"\n        );\n      }\n\n      if (result.redirect) {\n        window.location.href = result.redirect;\n        return;\n      }\n\n      throw new Error(\"Shop URL was not returned.\");\n\n    } catch (error) {\n      console.error(\"AstroGeography Case Bridge:\", error);\n      alert(error && error.message ? error.message : \"Something went wrong. Please try again.\");\n      continueButton.disabled = false;\n      continueButton.textContent = originalText;\n    }\n  });\n\n  \/* =======================================================\n     ESCAPE HTML\n     ======================================================= *\/\n\n\n  function escapeHtml(\n    value\n  ) {\n\n    return String(\n      value || \"\"\n    )\n      .replace(\n        \/&\/g,\n        \"&amp;\"\n      )\n      .replace(\n        \/<\/g,\n        \"&lt;\"\n      )\n      .replace(\n        \/>\/g,\n        \"&gt;\"\n      )\n      .replace(\n        \/\"\/g,\n        \"&quot;\"\n      )\n      .replace(\n        \/'\/g,\n        \"&#039;\"\n      );\n\n  }\n\n\n  \/* =======================================================\n     INITIAL STATE\n     ======================================================= *\/\n\n  \/*\n   * ABSOLUTELY NO PRE-FILLED LOCATIONS.\n   *\/\n\n  birthInput.value =\n    \"\";\n\n  residenceInput.value =\n    \"\";\n\n\n  $(\"astro-birth-place\").value =\n    \"\";\n\n  $(\"astro-birth-place-id\").value =\n    \"\";\n\n  $(\"astro-birth-latitude\").value =\n    \"\";\n\n  $(\"astro-birth-longitude\").value =\n    \"\";\n\n  $(\"astro-birth-display-name\").value =\n    \"\";\n\n\n  $(\"astro-residence-place-id\").value =\n    \"\";\n\n  $(\"astro-residence-latitude\").value =\n    \"\";\n\n  $(\"astro-residence-longitude\").value =\n    \"\";\n\n  $(\"astro-residence-display-name\").value =\n    \"\";\n\n\n  \/*\n   * Force backend house system.\n   *\/\n\n  $(\"astro-backend-house-system\").value =\n    \"E\";\n\n  updateContinueState();\n\n  refreshMap();\n\n\n})();\n<\/script>\n\n<!-- Final visual refinement: square corners and cool neutral palette. -->\n<style id=\"astrogeo-classic-neutral-overrides\">\n#astro-calculator {\n  --ivory: #F3F6F8 !important;\n  --paper: #FFFFFF !important;\n  --ink: #203E54 !important;\n  --muted: #657B8A !important;\n  --gold: #315F7C !important;\n  --gold2: #D8E5EC !important;\n  --line: #D5E0E6 !important;\n  background: #F3F6F8 !important;\n  color: #203E54 !important;\n}\n#astro-calculator .ag-panel {\n  background: #FFFFFF !important;\n  border: 1px solid #D5E0E6 !important;\n  border-radius: 0 !important;\n  box-shadow: none !important;\n}\n#astro-calculator .ag-map,\n#astro-calculator #astro-map { background: #E7F0F4 !important; }\n#astro-calculator .ag-form { background: #F8FAFB !important; }\n#astro-calculator .ag-map-tool,\n#astro-calculator .ag-map-note,\n#astro-calculator .ag-step,\n#astro-calculator .ag-input,\n#astro-calculator .ag-select,\n#astro-calculator .ag-btn,\n#astro-calculator .ag-results,\n#astro-calculator .ag-verified,\n#astro-calculator .ag-coords,\n#astro-calculator .ag-continue,\n#astro-calculator .ag-search input,\n#astro-calculator .ag-search button {\n  border-radius: 0 !important;\n}\n#astro-calculator .ag-map-tool,\n#astro-calculator .ag-map-note {\n  border-color: #D5E0E6 !important;\n  box-shadow: none !important;\n}\n#astro-calculator .ag-step,\n#astro-calculator .ag-results-heading { background: #EDF3F6 !important; }\n#astro-calculator .ag-input,\n#astro-calculator .ag-select { background: #FFFFFF !important; border-color: #C8D6DE !important; }\n#astro-calculator .ag-input:focus,\n#astro-calculator .ag-select:focus { border-color: #6289A1 !important; box-shadow: 0 0 0 1px rgba(49,95,124,.12) !important; }\n#astro-calculator .ag-btn,\n#astro-calculator .ag-continue {\n  background: #234A64 !important;\n  border-color: #234A64 !important;\n  color: #FFFFFF !important;\n  box-shadow: none !important;\n}\n#astro-calculator .ag-btn:hover,\n#astro-calculator .ag-continue:hover { background: #18384F !important; border-color: #18384F !important; }\n#astro-calculator .ag-result:hover { background: #EDF3F6 !important; }\n#astro-calculator .ag-verified,\n#astro-calculator .ag-coords { background: #F0F6F3 !important; border-color: #D3E3DA !important; }\n@media (max-width: 600px) {\n  #astro-calculator .ag-panel { border-radius: 0 !important; }\n}\n<\/style>\n\n<style id=\"astrogeo-shorter-map-refinement\">\n\/* Shorter map and matching calculator panel; functional markup and JS unchanged. *\/\n#astro-calculator .ag-panel {\n  height: 360px !important;\n  min-height: 360px !important;\n  align-items: stretch !important;\n}\n#astro-calculator .ag-map,\n#astro-calculator #astro-map {\n  height: 360px !important;\n  min-height: 360px !important;\n}\n#astro-calculator .ag-form {\n  height: 360px !important;\n  min-height: 0 !important;\n  overflow-y: auto !important;\n}\n@media (max-width: 900px) {\n  #astro-calculator .ag-panel { height: auto !important; min-height: 0 !important; }\n  #astro-calculator .ag-map,\n  #astro-calculator #astro-map { height: 300px !important; min-height: 300px !important; }\n  #astro-calculator .ag-form { height: auto !important; min-height: 0 !important; overflow: visible !important; }\n}\n@media (max-width: 600px) {\n  #astro-calculator .ag-map,\n  #astro-calculator #astro-map { height: 260px !important; min-height: 260px !important; }\n}\n<\/style>\n\n<style id=\"astrogeo-inline-analysis-action\">\n\/* Keep the analysis selector and Continue button on one line. *\/\n#astro-calculator .ag-analysis-action-row {\n  display: grid !important;\n  grid-template-columns: minmax(0, 1.55fr) minmax(180px, 1fr) !important;\n  align-items: end !important;\n  gap: 14px !important;\n  margin-top: 14px !important;\n}\n#astro-calculator #astro-analysis-product-wrap {\n  min-width: 0 !important;\n  margin: 0 !important;\n}\n#astro-calculator #astro-analysis-product-wrap .ag-select {\n  width: 100% !important;\n}\n#astro-calculator .ag-analysis-action-row .ag-continue {\n  width: 100% !important;\n  min-width: 0 !important;\n  margin: 0 0 20px !important;\n  align-self: end !important;\n  min-height: 40px !important;\n}\n#astro-calculator .ag-analysis-action-row + .ag-secure {\n  margin-top: 5px !important;\n}\n@media (max-width: 600px) {\n  #astro-calculator .ag-analysis-action-row {\n    grid-template-columns: minmax(0, 1fr) !important;\n    gap: 8px !important;\n  }\n  #astro-calculator .ag-analysis-action-row .ag-continue {\n    margin: 0 !important;\n  }\n}\n<\/style>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-0b57b03 e-con e-atomic-element e-flexbox-base e-default-div e-abc2d0b \" data-id=\"0b57b03\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"0b57b03\">\n    <div class=\"elementor-element elementor-element-02ed3e7 e-flex e-con-boxed e-con e-parent\" data-id=\"02ed3e7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-134ad5c elementor-widget elementor-widget-heading\" data-id=\"134ad5c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Discover Your Place in the World<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3db148a elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"3db148a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Astrogeography explores the relationship between astrology and geographical locations. Discover how different places around the world may connect with your career, relationships, home life and personal growth.<\/p><p>Explore the world through an astrological perspective and learn how location-based interpretations can offer a different way to understand your personal journey.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51fe046 elementor-widget elementor-widget-button\" data-id=\"51fe046\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Explore More about City Search Feature<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-af9e860 e-con e-atomic-element e-flexbox-base e-default-div e-814545b \" data-id=\"af9e860\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"af9e860\">\n    <div class=\"elementor-element elementor-element-a7aaa29 e-con-full e-flex e-con e-parent\" data-id=\"a7aaa29\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5dc3257 elementor-widget elementor-widget-html\" data-id=\"5dc3257\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\n<section id=\"astrogeo-city-home\">\n  <style>\n    \/* Astrogeo City Search \u2014 compact, traditional site styling *\/\n    #astrogeo-city-home {\n      --ag-navy: #174c76;\n      --ag-gold: #b58a43;\n      --ag-gold-dark: #8f682d;\n      --ag-muted: #34495a;\n      --ag-line: #b9d0df;\n      --ag-pale: #e1f0f8;\n      --ag-white: #ffffff;\n      width: 100%;\n      padding: 20px;\n      background: #e1f0f8;\n      color: var(--ag-navy);\n      font-family: inherit;\n      box-sizing: border-box;\n      border: 1px solid #174c76;\n    }\n    #astrogeo-city-home *,\n    #astrogeo-city-home *::before,\n    #astrogeo-city-home *::after { box-sizing: border-box; }\n    #astrogeo-city-home button,\n    #astrogeo-city-home input,\n    #astrogeo-city-home select { font-family: inherit; }\n    #astrogeo-city-home .ag-shell {\n      width: 100%;\n      max-width: 1200px;\n      margin: 0 auto;\n      display: grid;\n      grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);\n      align-items: start;\n      gap: 24px;\n    }\n    #astrogeo-city-home .ag-intro { min-width: 0; padding: 4px 0; }\n    #astrogeo-city-home .ag-eyebrow {\n      margin: 0 0 7px; color: var(--ag-gold-dark); font-size: 10px;\n      font-weight: 700; letter-spacing: 1.5px; line-height: 15px; text-transform: uppercase;\n    }\n    #astrogeo-city-home .ag-intro h2 {\n      margin: 0 0 10px; color: var(--ag-navy);\n      font-family: Georgia, \"Times New Roman\", serif; font-size: 30px;\n      font-weight: 700; line-height: 1.12; letter-spacing: 0;\n    }\n    #astrogeo-city-home .ag-description {\n      max-width: 500px; margin: 0; color: var(--ag-muted); font-size: 13px; line-height: 21px;\n    }\n    #astrogeo-city-home .ag-features {\n      display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 14px 16px; margin-top: 19px;\n    }\n    #astrogeo-city-home .ag-feature { display: flex; align-items: flex-start; gap: 9px; min-width: 0; }\n    #astrogeo-city-home .ag-feature-icon {\n      display: flex; flex: 0 0 30px; width: 30px; height: 30px;\n      align-items: center; justify-content: center; border: 1px solid var(--ag-navy);\n      border-radius: 0; color: var(--ag-gold-dark); font-size: 17px; line-height: 1; background: #f4f9fc;\n    }\n    #astrogeo-city-home .ag-feature-copy { min-width: 0; padding-top: 1px; }\n    #astrogeo-city-home .ag-feature-copy strong {\n      display: block; margin: 0 0 3px; color: var(--ag-navy);\n      font-size: 11px; font-weight: 700; line-height: 15px;\n    }\n    #astrogeo-city-home .ag-feature-copy p { margin: 0; color: var(--ag-muted); font-size: 10px; line-height: 15px; }\n    #astrogeo-city-home .ag-card {\n      min-width: 0; overflow: hidden; border: 1px solid #8eafc4;\n      border-radius: 0; background: #ffffff; box-shadow: none;\n    }\n    #astrogeo-city-home .ag-tabs {\n      display: grid; grid-template-columns: 1fr 1fr; min-height: 38px;\n      border-bottom: 1px solid var(--ag-line); background: #d4e8f3;\n    }\n    #astrogeo-city-home .ag-tab {\n      display: flex; align-items: center; justify-content: center; gap: 7px;\n      min-width: 0; min-height: 38px; padding: 7px 8px; border: 0; border-radius: 0;\n      background: transparent; color: var(--ag-navy); cursor: pointer;\n      font-size: 11px; font-weight: 600; line-height: 16px; transition: background .15s ease, color .15s ease;\n    }\n    #astrogeo-city-home .ag-tab[aria-selected=\"true\"] { background: var(--ag-navy); color: #ffffff; }\n    #astrogeo-city-home .ag-tab-icon { font-size: 13px; line-height: 1; }\n    #astrogeo-city-home .ag-card-body { padding: 17px 18px 16px; }\n    #astrogeo-city-home .ag-card-title {\n      margin: 0 0 4px; color: var(--ag-navy);\n      font-family: Georgia, \"Times New Roman\", serif; font-size: 22px;\n      font-weight: 700; line-height: 1.18; letter-spacing: 0;\n    }\n    #astrogeo-city-home .ag-card-subtitle { margin: 0 0 15px; color: var(--ag-muted); font-size: 11px; line-height: 17px; }\n    #astrogeo-city-home .ag-field { margin: 0 0 11px; }\n    #astrogeo-city-home .ag-field label {\n      display: block; margin: 0 0 5px; color: var(--ag-navy);\n      font-size: 11px; font-weight: 600; line-height: 15px;\n    }\n    #astrogeo-city-home .ag-field select,\n    #astrogeo-city-home .ag-field input {\n      display: block; width: 100%; min-width: 0; height: 36px; margin: 0; padding: 0 9px;\n      border: 1px solid #a9c4d5; border-radius: 0; outline: none;\n      background-color: #ffffff; color: var(--ag-navy); font-size: 11px;\n      font-weight: 400; line-height: normal; box-shadow: none;\n    }\n    #astrogeo-city-home .ag-field select { cursor: pointer; }\n    #astrogeo-city-home .ag-field input::placeholder { color: #8493a0; opacity: 1; }\n    #astrogeo-city-home .ag-field select:focus,\n    #astrogeo-city-home .ag-field input:focus { border-color: var(--ag-gold); box-shadow: 0 0 0 1px rgba(181, 138, 67, 0.18); }\n    #astrogeo-city-home .ag-search-btn,\n    #astrogeo-city-home .ag-dashboard-btn {\n      display: flex; width: 100%; min-height: 36px; align-items: center; justify-content: center;\n      gap: 8px; padding: 8px 11px; border: 1px solid var(--ag-navy); border-radius: 0;\n      cursor: pointer; font-size: 11px; font-weight: 700; line-height: 16px;\n      text-align: center; text-decoration: none; transition: background .15s ease, color .15s ease;\n    }\n    #astrogeo-city-home .ag-search-btn { margin-top: 4px; background: var(--ag-navy); color: #ffffff; }\n    #astrogeo-city-home .ag-search-btn:hover { border-color: #0e3859; background: #0e3859; color: #ffffff; }\n    #astrogeo-city-home .ag-separator {\n      display: flex; align-items: center; gap: 10px; margin: 13px 0; color: #758696;\n      font-size: 9px; font-weight: 500; letter-spacing: .7px; line-height: 13px;\n      text-align: center; text-transform: uppercase; white-space: nowrap;\n    }\n    #astrogeo-city-home .ag-separator::before,\n    #astrogeo-city-home .ag-separator::after { height: 1px; flex: 1; background: var(--ag-line); content: \"\"; }\n    #astrogeo-city-home .ag-dashboard-btn { background: #ffffff; color: var(--ag-navy); }\n    #astrogeo-city-home .ag-dashboard-btn:hover { background: #edf5fa; color: var(--ag-navy); }\n    #astrogeo-city-home .ag-dashboard-icon,\n    #astrogeo-city-home .ag-dashboard-arrow { color: var(--ag-gold-dark); }\n    #astrogeo-city-home .ag-hidden { display: none !important; }\n    #astrogeo-city-home .ag-message {\n      display: none; margin-top: 10px; padding: 9px 10px; border: 1px solid var(--ag-line);\n      border-radius: 0; background: #edf5fa; color: var(--ag-navy); font-size: 11px; line-height: 17px;\n    }\n    #astrogeo-city-home .ag-message.is-visible { display: block; }\n\n    #ag-birth-modal {\n      position: fixed; z-index: 999999; inset: 0; display: none; align-items: center;\n      justify-content: center; padding: 16px; background: rgba(12, 31, 47, 0.58);\n    }\n    #ag-birth-modal.is-open { display: flex; }\n    #ag-birth-modal .ag-modal-dialog {\n      position: relative; width: 100%; max-width: 460px; max-height: calc(100vh - 32px);\n      overflow-y: auto; padding: 24px; border: 1px solid #8eafc4; border-radius: 0;\n      background: #eaf3f8; box-shadow: 0 12px 35px rgba(0, 0, 0, 0.16);\n    }\n    #ag-birth-modal .ag-modal-close {\n      position: absolute; top: 8px; right: 9px; display: flex; width: 29px; height: 29px;\n      align-items: center; justify-content: center; border: 1px solid var(--ag-line);\n      border-radius: 0; background: #ffffff; color: var(--ag-navy); cursor: pointer; font-size: 20px; line-height: 1;\n    }\n    #ag-birth-modal .ag-modal-eyebrow {\n      margin: 0 0 7px; color: var(--ag-gold-dark); font-size: 10px; font-weight: 700;\n      letter-spacing: 1.4px; text-transform: uppercase;\n    }\n    #ag-birth-modal .ag-modal-title {\n      margin: 0 30px 7px 0; color: var(--ag-navy);\n      font-family: Georgia, \"Times New Roman\", serif; font-size: 24px; font-weight: 700; line-height: 1.2;\n    }\n    #ag-birth-modal .ag-modal-description { margin: 0 0 17px; color: var(--ag-muted); font-size: 12px; line-height: 19px; }\n    #ag-birth-modal .ag-modal-fields { display: grid; grid-template-columns: 1fr .75fr; gap: 11px; }\n    #ag-birth-modal .ag-modal-field { min-width: 0; margin-bottom: 12px; }\n    #ag-birth-modal .ag-modal-field.ag-full { grid-column: 1 \/ -1; }\n    #ag-birth-modal .ag-modal-field label {\n      display: block; margin-bottom: 5px; color: var(--ag-navy); font-size: 11px; font-weight: 600; line-height: 15px;\n    }\n    #ag-birth-modal .ag-modal-field input {\n      display: block; width: 100%; height: 36px; padding: 0 9px; border: 1px solid #a9c4d5;\n      border-radius: 0; outline: none; background: #ffffff; color: var(--ag-navy); font-size: 12px; box-shadow: none;\n    }\n    #ag-birth-modal .ag-modal-field input:focus { border-color: var(--ag-gold); box-shadow: 0 0 0 1px rgba(181, 138, 67, 0.18); }\n    #ag-birth-modal .ag-modal-hint { display: block; margin-top: 4px; color: #758696; font-size: 10px; line-height: 14px; }\n    #ag-birth-modal .ag-use-saved { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 12px; color: var(--ag-muted); font-size: 11px; line-height: 17px; }\n    #ag-birth-modal .ag-use-saved input { width: 14px; height: 14px; margin: 2px 0 0; accent-color: var(--ag-gold-dark); }\n    #ag-birth-modal .ag-modal-error { display: none; margin: 0 0 11px; color: #a3372d; font-size: 11px; line-height: 17px; }\n    #ag-birth-modal .ag-modal-error.is-visible { display: block; }\n    #ag-birth-modal .ag-modal-submit {\n      display: flex; width: 100%; min-height: 38px; align-items: center; justify-content: center;\n      padding: 9px 13px; border: 1px solid var(--ag-navy); border-radius: 0;\n      background: var(--ag-navy); color: #ffffff; cursor: pointer; font-size: 12px; font-weight: 700; line-height: 17px;\n    }\n    #ag-birth-modal .ag-modal-submit:hover { background: #0e3859; }\n    #ag-birth-modal .ag-modal-note { margin: 10px 0 0; color: #758696; font-size: 10px; line-height: 15px; }\n    #ag-birth-modal .ag-saved-summary {\n      margin: 0 0 12px; padding: 10px; border: 1px solid var(--ag-line); border-radius: 0;\n      background: #ffffff; color: var(--ag-muted); font-size: 11px; line-height: 17px;\n    }\n    @media (max-width: 1024px) {\n      #astrogeo-city-home { padding: 18px; }\n      #astrogeo-city-home .ag-shell { gap: 18px; }\n      #astrogeo-city-home .ag-intro h2 { font-size: 27px; }\n      #astrogeo-city-home .ag-features { gap: 13px 10px; }\n      #astrogeo-city-home .ag-card-body { padding: 15px; }\n      #astrogeo-city-home .ag-card-title { font-size: 20px; }\n    }\n    @media (max-width: 767px) {\n      #astrogeo-city-home { padding: 14px; }\n      #astrogeo-city-home .ag-shell { grid-template-columns: minmax(0, 1fr); gap: 18px; }\n      #astrogeo-city-home .ag-intro { padding: 0; }\n      #astrogeo-city-home .ag-intro h2 { font-size: 28px; line-height: 1.12; }\n      #astrogeo-city-home .ag-description { font-size: 12px; line-height: 19px; }\n      #astrogeo-city-home .ag-features { margin-top: 15px; gap: 12px 10px; }\n      #astrogeo-city-home .ag-feature-icon { flex-basis: 27px; width: 27px; height: 27px; font-size: 15px; }\n      #astrogeo-city-home .ag-feature-copy strong { font-size: 10px; line-height: 14px; }\n      #astrogeo-city-home .ag-feature-copy p { font-size: 10px; line-height: 14px; }\n      #astrogeo-city-home .ag-card-body { padding: 15px 13px; }\n      #astrogeo-city-home .ag-card-title { font-size: 21px; line-height: 26px; }\n      #astrogeo-city-home .ag-tab { font-size: 10px; gap: 4px; padding: 8px 4px; }\n      #ag-birth-modal { padding: 10px; }\n      #ag-birth-modal .ag-modal-dialog { padding: 21px 16px; max-height: calc(100vh - 20px); }\n      #ag-birth-modal .ag-modal-title { font-size: 22px; }\n      #ag-birth-modal .ag-modal-fields { grid-template-columns: 1fr; gap: 0; }\n      #ag-birth-modal .ag-modal-field.ag-full { grid-column: auto; }\n    }\n    @media (prefers-reduced-motion: reduce) {\n      #astrogeo-city-home *,\n      #ag-birth-modal * { transition: none !important; }\n    }\n  <\/style>\n\n  <div class=\"ag-shell\">\n\n    <!-- LEFT: ORIGINAL INTRODUCTION -->\n    <div class=\"ag-intro\">\n\n      <p class=\"ag-eyebrow\">Astrogeo City Search<\/p>\n\n      <h2>Discover Cities<br>\n        That Support Your<br>\n        Life\n      <\/h2>\n\n      <p class=\"ag-description\">\n        Explore metropolitan regions and cities through your\n        personal astrogeography chart. Discover places that may\n        align with your goals \u2014 whether for love, career, home,\n        income, travel or business.\n      <\/p>\n\n      <div class=\"ag-features\">\n\n        <div class=\"ag-feature\">\n          <div class=\"ag-feature-icon\" aria-hidden=\"true\">\u2727<\/div>\n          <div class=\"ag-feature-copy\">\n            <strong>Astrology &amp; Places<\/strong>\n            <p>Explore locations through your personal chart.<\/p>\n          <\/div>\n        <\/div>\n\n        <div class=\"ag-feature\">\n          <div class=\"ag-feature-icon\" aria-hidden=\"true\">\u25ce<\/div>\n          <div class=\"ag-feature-copy\">\n            <strong>Worldwide<\/strong>\n            <p>Explore regions and countries around the world.<\/p>\n          <\/div>\n        <\/div>\n\n        <div class=\"ag-feature\">\n          <div class=\"ag-feature-icon\" aria-hidden=\"true\">\u2661<\/div>\n          <div class=\"ag-feature-copy\">\n            <strong>Multiple Areas of Life<\/strong>\n            <p>From career and relationships to home and more.<\/p>\n          <\/div>\n        <\/div>\n\n        <div class=\"ag-feature\">\n          <div class=\"ag-feature-icon\" aria-hidden=\"true\">\u25a5<\/div>\n          <div class=\"ag-feature-copy\">\n            <strong>Regions or Cities<\/strong>\n            <p>Choose the scale that fits your search.<\/p>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n\n    <!-- RIGHT: SEARCH CARD -->\n    <div class=\"ag-card\">\n\n      <div class=\"ag-tabs\" role=\"tablist\" aria-label=\"Search type\">\n\n        <button class=\"ag-tab\"\n                type=\"button\"\n                role=\"tab\"\n                id=\"ag-home-tab-region\"\n                aria-selected=\"true\"\n                aria-controls=\"ag-home-region\">\n          <span class=\"ag-tab-icon\" aria-hidden=\"true\">\u25a5<\/span>\n          Metropolitan Region\n        <\/button>\n\n        <button class=\"ag-tab\"\n                type=\"button\"\n                role=\"tab\"\n                id=\"ag-home-tab-city\"\n                aria-selected=\"false\"\n                aria-controls=\"ag-home-city\">\n          <span class=\"ag-tab-icon\" aria-hidden=\"true\">\u2726<\/span>\n          City Search\n        <\/button>\n\n      <\/div>\n\n      <div class=\"ag-card-body\">\n\n        <h3 class=\"ag-card-title\" id=\"ag-home-heading\">\n          Show me the best metropolitan region\n        <\/h3>\n\n        <p class=\"ag-card-subtitle\" id=\"ag-home-subtitle\">\n          for a particular area of life.\n        <\/p>\n\n        <!-- REGION OPTIONS -->\n        <div id=\"ag-home-region\" role=\"tabpanel\"\n             aria-labelledby=\"ag-home-tab-region\">\n\n          <div class=\"ag-field\">\n            <label for=\"ag-home-continent\">\n              Choose a continent or region\n            <\/label>\n\n            <select id=\"ag-home-continent\">\n              <option value=\"\">Select a continent or region<\/option>\n              <option value=\"worldwide\">Worldwide<\/option>\n              <option value=\"africa\">Africa<\/option>\n              <option value=\"asia\">Asia<\/option>\n              <option value=\"europe\">Europe<\/option>\n              <option value=\"north-america\">North America<\/option>\n              <option value=\"south-america\">South America<\/option>\n              <option value=\"oceania\">Oceania<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"ag-field\">\n            <label for=\"ag-home-region-life\">Area of life<\/label>\n\n            <select id=\"ag-home-region-life\">\n              <option value=\"\">Select an area of life<\/option>\n              <option value=\"love\">Love &amp; Relationships<\/option>\n              <option value=\"career\">Career &amp; Professional Growth<\/option>\n              <option value=\"home\">Home &amp; Belonging<\/option>\n              <option value=\"income\">Income &amp; Prosperity<\/option>\n              <option value=\"travel\">Travel &amp; Adventure<\/option>\n              <option value=\"business\">Business &amp; Opportunities<\/option>\n            <\/select>\n          <\/div>\n\n        <\/div>\n\n        <!-- CITY OPTIONS -->\n        <div id=\"ag-home-city\" class=\"ag-hidden\"\n             role=\"tabpanel\" aria-labelledby=\"ag-home-tab-city\">\n\n          <div class=\"ag-field\">\n            <label for=\"ag-home-target-city\">City to explore<\/label>\n            <input type=\"text\"\n                   id=\"ag-home-target-city\"\n                   placeholder=\"Enter a city, e.g. Lisbon\"\n                   autocomplete=\"off\">\n          <\/div>\n\n          <div class=\"ag-field\">\n            <label for=\"ag-home-city-life\">Area of life<\/label>\n\n            <select id=\"ag-home-city-life\" disabled>\n              <option value=\"\">Select an area of life<\/option>\n              <option value=\"love\">Love &amp; Relationships<\/option>\n              <option value=\"career\">Career &amp; Professional Growth<\/option>\n              <option value=\"home\">Home &amp; Belonging<\/option>\n              <option value=\"income\">Income &amp; Prosperity<\/option>\n              <option value=\"travel\">Travel &amp; Adventure<\/option>\n              <option value=\"business\">Business &amp; Opportunities<\/option>\n            <\/select>\n          <\/div>\n\n        <\/div>\n\n        <button type=\"button\" class=\"ag-search-btn\" id=\"ag-home-search\">\n          <span aria-hidden=\"true\">\u2315<\/span>\n          <span id=\"ag-home-search-label\">Search Metropolitan Regions<\/span>\n        <\/button>\n\n        <div class=\"ag-separator\">Or explore the full app<\/div>\n\n        <a class=\"ag-dashboard-btn\"\n           id=\"ag-home-dashboard\"\n           href=\"\/city-search-dashboard\/\">\n          <span class=\"ag-dashboard-icon\" aria-hidden=\"true\">\u25a6<\/span>\n          Open City Search Dashboard\n          <span class=\"ag-dashboard-arrow\" aria-hidden=\"true\">\u203a<\/span>\n        <\/a>\n\n        <div class=\"ag-message\" id=\"ag-home-message\"\n             role=\"status\" aria-live=\"polite\"><\/div>\n\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- BIRTH DETAILS POPUP -->\n<div id=\"ag-birth-modal\"\n     role=\"dialog\"\n     aria-modal=\"true\"\n     aria-labelledby=\"ag-modal-title\"\n     aria-hidden=\"true\">\n\n  <div class=\"ag-modal-dialog\">\n\n    <button type=\"button\" class=\"ag-modal-close\"\n            id=\"ag-modal-close\" aria-label=\"Close popup\">\n      \u00d7\n    <\/button>\n\n    <p class=\"ag-modal-eyebrow\">Astrogeography<\/p>\n\n    <h3 class=\"ag-modal-title\" id=\"ag-modal-title\">\n      Your birth details\n    <\/h3>\n\n    <p class=\"ag-modal-description\">\n      Enter your birth information to personalise your search.\n      Your birth time is optional.\n    <\/p>\n\n    <form id=\"ag-birth-form\">\n\n      <label class=\"ag-use-saved ag-hidden\" id=\"ag-modal-saved-option\">\n        <input type=\"checkbox\" id=\"ag-modal-use-saved\">\n        <span>Use my previously saved birth details<\/span>\n      <\/label>\n\n      <div class=\"ag-saved-summary ag-hidden\"\n           id=\"ag-modal-saved-summary\"><\/div>\n\n      <div id=\"ag-modal-fields\">\n\n        <div class=\"ag-modal-fields\">\n\n          <div class=\"ag-modal-field\">\n            <label for=\"ag-modal-date\">Date of birth *<\/label>\n            <input type=\"date\" id=\"ag-modal-date\" required>\n          <\/div>\n\n          <div class=\"ag-modal-field\">\n            <label for=\"ag-modal-time\">Birth time<\/label>\n            <input type=\"time\" id=\"ag-modal-time\">\n            <span class=\"ag-modal-hint\">Optional<\/span>\n          <\/div>\n\n          <div class=\"ag-modal-field ag-full\">\n            <label for=\"ag-modal-place\">Place of birth *<\/label>\n            <input type=\"text\"\n                   id=\"ag-modal-place\"\n                   placeholder=\"City, town or locality\"\n                   autocomplete=\"off\"\n                   required>\n          <\/div>\n\n        <\/div>\n      <\/div>\n\n      <p class=\"ag-modal-error\" id=\"ag-modal-error\" role=\"alert\"><\/p>\n\n      <button type=\"submit\" class=\"ag-modal-submit\">\n        Continue to Search\n      <\/button>\n\n      <p class=\"ag-modal-note\">\n        You can continue without entering your birth time.\n      <\/p>\n\n    <\/form>\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  \"use strict\";\n\n  const root = document.getElementById(\"astrogeo-city-home\");\n  const modal = document.getElementById(\"ag-birth-modal\");\n\n  if (!root || !modal || root.dataset.initialized === \"true\") return;\n  root.dataset.initialized = \"true\";\n\n  const $ = (selector) => root.querySelector(selector);\n  const modal$ = (selector) => modal.querySelector(selector);\n\n  const STORAGE_KEY = \"astrogeo_city_search_birth_details_v1\";\n  const DASHBOARD_URL = \"\/city-search-dashboard\/\";\n\n  let currentMode = \"region\";\n  let previousFocus = null;\n\n  const tabs = [\n    $(\"#ag-home-tab-region\"),\n    $(\"#ag-home-tab-city\")\n  ];\n\n  const heading = $(\"#ag-home-heading\");\n  const subtitle = $(\"#ag-home-subtitle\");\n  const regionPanel = $(\"#ag-home-region\");\n  const cityPanel = $(\"#ag-home-city\");\n  const continent = $(\"#ag-home-continent\");\n  const regionLife = $(\"#ag-home-region-life\");\n  const cityLife = $(\"#ag-home-city-life\");\n  const targetCity = $(\"#ag-home-target-city\");\n  const searchButton = $(\"#ag-home-search\");\n  const searchLabel = $(\"#ag-home-search-label\");\n  const message = $(\"#ag-home-message\");\n\n  const birthForm = document.getElementById(\"ag-birth-form\");\n  const dateInput = document.getElementById(\"ag-modal-date\");\n  const timeInput = document.getElementById(\"ag-modal-time\");\n  const placeInput = document.getElementById(\"ag-modal-place\");\n  const modalError = document.getElementById(\"ag-modal-error\");\n  const savedOption = document.getElementById(\"ag-modal-saved-option\");\n  const useSaved = document.getElementById(\"ag-modal-use-saved\");\n  const savedSummary = document.getElementById(\"ag-modal-saved-summary\");\n  const modalFields = document.getElementById(\"ag-modal-fields\");\n\n  let pendingRequest = null;\n\n  function showMessage(text) {\n    message.textContent = text;\n    message.classList.add(\"is-visible\");\n  }\n\n  function clearMessage() {\n    message.textContent = \"\";\n    message.classList.remove(\"is-visible\");\n  }\n\n  function setMode(mode) {\n    currentMode = mode === \"city\" ? \"city\" : \"region\";\n\n    tabs.forEach((tab, index) => {\n      const active = (index === 0 && currentMode === \"region\") ||\n                     (index === 1 && currentMode === \"city\");\n\n      tab.setAttribute(\"aria-selected\", String(active));\n      tab.tabIndex = active ? 0 : -1;\n    });\n\n    regionPanel.classList.toggle(\"ag-hidden\", currentMode !== \"region\");\n    cityPanel.classList.toggle(\"ag-hidden\", currentMode !== \"city\");\n\n    continent.disabled = currentMode !== \"region\";\n    regionLife.disabled = currentMode !== \"region\";\n    cityLife.disabled = currentMode !== \"city\";\n    targetCity.disabled = currentMode !== \"city\";\n\n    if (currentMode === \"region\") {\n      heading.textContent = \"Show me the best metropolitan region\";\n      subtitle.textContent = \"for a particular area of life.\";\n      searchLabel.textContent = \"Search Metropolitan Regions\";\n    } else {\n      heading.textContent = \"Discover cities that support your life\";\n      subtitle.textContent = \"Explore a particular city through your chart.\";\n      searchLabel.textContent = \"Search City\";\n    }\n\n    clearMessage();\n  }\n\n  tabs.forEach((tab, index) => {\n    tab.addEventListener(\"click\", () => {\n      setMode(index === 0 ? \"region\" : \"city\");\n    });\n\n    tab.addEventListener(\"keydown\", (event) => {\n      if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\") return;\n\n      event.preventDefault();\n\n      const nextIndex = event.key === \"ArrowRight\"\n        ? (index + 1) % tabs.length\n        : (index - 1 + tabs.length) % tabs.length;\n\n      tabs[nextIndex].focus();\n      setMode(nextIndex === 0 ? \"region\" : \"city\");\n    });\n  });\n\n  function getSavedDetails() {\n    try {\n      const raw = localStorage.getItem(STORAGE_KEY);\n      if (!raw) return null;\n\n      const data = JSON.parse(raw);\n\n      if (!data ||\n          typeof data.date !== \"string\" ||\n          typeof data.place !== \"string\" ||\n          !data.date ||\n          !data.place) {\n        return null;\n      }\n\n      return data;\n    } catch (error) {\n      return null;\n    }\n  }\n\n  function saveDetails(details) {\n    try {\n      localStorage.setItem(STORAGE_KEY, JSON.stringify(details));\n    } catch (error) {\n      \/\/ Continue the current search even if storage is unavailable.\n    }\n  }\n\n  function updateSavedOption() {\n    const details = getSavedDetails();\n    savedOption.classList.toggle(\"ag-hidden\", !details);\n\n    if (!details) {\n      useSaved.checked = false;\n      savedSummary.classList.add(\"ag-hidden\");\n      modalFields.classList.remove(\"ag-hidden\");\n      dateInput.required = true;\n      placeInput.required = true;\n      return;\n    }\n\n    useSaved.checked = true;\n    dateInput.value = details.date;\n    timeInput.value = details.time || \"\";\n    placeInput.value = details.place;\n\n    savedSummary.textContent =\n      \"Saved birthplace: \" + details.place +\n      \". Date of birth: \" + details.date +\n      (details.time ? \". Birth time: \" + details.time : \". No birth time saved.\");\n\n    savedSummary.classList.remove(\"ag-hidden\");\n    modalFields.classList.add(\"ag-hidden\");\n    dateInput.required = false;\n    placeInput.required = false;\n  }\n\n  function openModal() {\n    previousFocus = document.activeElement;\n    modal.classList.add(\"is-open\");\n    modal.setAttribute(\"aria-hidden\", \"false\");\n    document.body.style.overflow = \"hidden\";\n\n    modalError.textContent = \"\";\n    modalError.classList.remove(\"is-visible\");\n\n    updateSavedOption();\n\n    if (useSaved.checked) {\n      modal$(\".ag-modal-submit\").focus();\n    } else {\n      dateInput.focus();\n    }\n  }\n\n  function closeModal() {\n    modal.classList.remove(\"is-open\");\n    modal.setAttribute(\"aria-hidden\", \"true\");\n    document.body.style.overflow = \"\";\n\n    if (previousFocus && typeof previousFocus.focus === \"function\") {\n      previousFocus.focus();\n    }\n  }\n\n  $(\"#ag-modal-close\").addEventListener(\"click\", closeModal);\n\n  modal.addEventListener(\"click\", (event) => {\n    if (event.target === modal) closeModal();\n  });\n\n  document.addEventListener(\"keydown\", (event) => {\n    if (event.key === \"Escape\" && modal.classList.contains(\"is-open\")) {\n      closeModal();\n    }\n  });\n\n  useSaved.addEventListener(\"change\", () => {\n    const saved = getSavedDetails();\n\n    if (useSaved.checked && saved) {\n      dateInput.value = saved.date;\n      timeInput.value = saved.time || \"\";\n      placeInput.value = saved.place;\n\n      savedSummary.textContent =\n        \"Using saved birth details for \" + saved.place + \".\";\n\n      savedSummary.classList.remove(\"ag-hidden\");\n      modalFields.classList.add(\"ag-hidden\");\n      dateInput.required = false;\n      placeInput.required = false;\n    } else {\n      useSaved.checked = false;\n      savedSummary.classList.add(\"ag-hidden\");\n      modalFields.classList.remove(\"ag-hidden\");\n      dateInput.required = true;\n      placeInput.required = true;\n    }\n  });\n\n  searchButton.addEventListener(\"click\", () => {\n    clearMessage();\n\n    if (currentMode === \"region\" &&\n        (!continent.value || !regionLife.value)) {\n      showMessage(\"Please choose a continent or region and an area of life.\");\n      return;\n    }\n\n    if (currentMode === \"city\" &&\n        (!targetCity.value.trim() || !cityLife.value)) {\n      showMessage(\"Please enter a city and select an area of life.\");\n      return;\n    }\n\n    pendingRequest = {\n      search_type: currentMode === \"region\"\n        ? \"metropolitan_region\"\n        : \"city\",\n      continent: currentMode === \"region\" ? continent.value : null,\n      target_city: currentMode === \"city\" ? targetCity.value.trim() : null,\n      life_area: currentMode === \"region\" ? regionLife.value : cityLife.value\n    };\n\n    openModal();\n  });\n\n  birthForm.addEventListener(\"submit\", (event) => {\n    event.preventDefault();\n\n    modalError.textContent = \"\";\n    modalError.classList.remove(\"is-visible\");\n\n    let details;\n\n    if (useSaved.checked) {\n      details = getSavedDetails();\n    } else {\n      details = {\n        date: dateInput.value,\n        time: timeInput.value,\n        place: placeInput.value.trim()\n      };\n    }\n\n    if (!details || !details.date || !details.place) {\n      modalError.textContent =\n        \"Please enter your date of birth and birthplace. Birth time is optional.\";\n      modalError.classList.add(\"is-visible\");\n      return;\n    }\n\n    const parsedDate = new Date(details.date + \"T00:00:00\");\n\n    if (Number.isNaN(parsedDate.getTime()) ||\n        details.date > new Date().toISOString().slice(0, 10)) {\n      modalError.textContent = \"Please enter a valid date of birth.\";\n      modalError.classList.add(\"is-visible\");\n      return;\n    }\n\n    if (!useSaved.checked) saveDetails(details);\n\n    const request = Object.assign({}, pendingRequest, {\n      birth_date: details.date,\n      birth_time: details.time || null,\n      birth_place: details.place\n    });\n\n    closeModal();\n\n    \/*\n     * API INTEGRATION POINT\n     *\n     * The future City Search API is not connected yet.\n     * Do not connect this to the existing Location Search API.\n     *\n     * When the new API is ready, submit `request` to its\n     * documented endpoint and handle the returned results.\n     *\/\n\n    console.log(\"Astrogeo City Search request preview:\", request);\n\n    showMessage(\n      \"Your search details are ready. The City Search results API needs to be connected before results can be displayed.\"\n    );\n  });\n\n  $(\"#ag-home-dashboard\").href = DASHBOARD_URL;\n\n  setMode(\"region\");\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-6e92a8c e-con e-atomic-element e-flexbox-base e-default-div e-8bfb8c7 \" data-id=\"6e92a8c\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"6e92a8c\">\n    <div class=\"elementor-element elementor-element-3537be5 e-con-full e-flex e-con e-parent\" data-id=\"3537be5\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6d44513 elementor-widget elementor-widget-heading\" data-id=\"6d44513\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Key Areas of Life We Explore<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-736f79c elementor-widget elementor-widget-text-editor\" data-id=\"736f79c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Our interpretations provide insights into different aspects of your life, depending on the type of analysis you choose.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3a96ed9 e-flex e-con-boxed e-con e-child\" data-id=\"3a96ed9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-561d5d9 e-con-full e-flex e-con e-child\" data-id=\"561d5d9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ee116e7 elementor-widget elementor-widget-image\" data-id=\"ee116e7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"589\" src=\"https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo1-1024x589.jpg\" class=\"attachment-large size-large wp-image-320\" alt=\"\" srcset=\"https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo1-1024x589.jpg 1024w, https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo1-300x173.jpg 300w, https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo1-768x442.jpg 768w, https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo1-1536x884.jpg 1536w, https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo1-600x345.jpg 600w, https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo1.jpg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a3dd000 elementor-widget elementor-widget-heading\" data-id=\"a3dd000\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Career &amp; Purpose<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-76da655 elementor-widget elementor-widget-text-editor\" data-id=\"76da655\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Explore how different locations may relate to your professional growth, ambitions, and sense of purpose.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ef76fc5 e-con-full e-flex e-con e-child\" data-id=\"ef76fc5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-4f63fcb e-con-full e-flex e-con e-child\" data-id=\"4f63fcb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ece16fa elementor-widget elementor-widget-image\" data-id=\"ece16fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"572\" src=\"https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo2-1024x572.jpg\" class=\"attachment-large size-large wp-image-319\" alt=\"\" srcset=\"https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo2-1024x572.jpg 1024w, https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo2-300x167.jpg 300w, https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo2-768x429.jpg 768w, https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo2-600x335.jpg 600w, https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo2.jpg 1376w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79df4ce elementor-widget elementor-widget-heading\" data-id=\"79df4ce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Relationships<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dc7644d elementor-widget elementor-widget-text-editor\" data-id=\"dc7644d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Discover how geographical influences may offer another perspective on relationships, connection, and compatibility.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7d402cc e-con-full e-flex e-con e-child\" data-id=\"7d402cc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-f31fc3c e-con-full e-flex e-con e-child\" data-id=\"f31fc3c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-43badfb elementor-widget elementor-widget-image\" data-id=\"43badfb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1013\" height=\"603\" src=\"https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo3-1-e1791704741742.jpg\" class=\"attachment-large size-large wp-image-338\" alt=\"\" srcset=\"https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo3-1-e1791704741742.jpg 1013w, https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo3-1-e1791704741742-300x179.jpg 300w, https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo3-1-e1791704741742-768x457.jpg 768w, https:\/\/astrogeography.com\/wp-content\/uploads\/2026\/10\/geo3-1-e1791704741742-600x357.jpg 600w\" sizes=\"(max-width: 1013px) 100vw, 1013px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6f67918 elementor-widget elementor-widget-heading\" data-id=\"6f67918\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Travel &amp; Experiences<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0d0579c elementor-widget elementor-widget-text-editor\" data-id=\"0d0579c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div><div><div><p>Explore places that may inspire personal discovery, new experiences, and a different outlook on life.<\/p><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-40b17e2 e-con e-atomic-element e-flexbox-base e-default-div e-1f5ff10 \" data-id=\"40b17e2\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"40b17e2\">\n    <div class=\"elementor-element elementor-element-7f51fc2 e-flex e-con-boxed e-con e-parent\" data-id=\"7f51fc2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f1cddd0 elementor-widget elementor-widget-heading\" data-id=\"f1cddd0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Need Personal Guidance?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08a5501 elementor-widget elementor-widget-text-editor\" data-id=\"08a5501\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Every place has a unique character, and your astrogeography chart can offer a personal perspective on how different locations relate to your life journey.<\/p><p>Whether you&#8217;re exploring a career move, considering a new place to live, navigating relationships, or simply curious about what the world may hold for you, a personal consultation gives you the opportunity to discuss your chart in greater detail.<\/p><p><strong>Have questions about a particular city or location?<\/strong> Let&#8217;s explore them together.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9821dd6 elementor-widget elementor-widget-button\" data-id=\"9821dd6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Request a Personal Consultation<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-e752b88 e-con e-atomic-element e-flexbox-base e-default-div e-fbd1a14 \" data-id=\"e752b88\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"e752b88\">\n    <div class=\"elementor-element elementor-element-0209fc3 e-con-full e-flex e-con e-parent\" data-id=\"0209fc3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b4ffa64 elementor-widget elementor-widget-heading\" data-id=\"b4ffa64\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Frequently Asked Questions<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d8b6f24 elementor-widget elementor-widget-text-editor\" data-id=\"d8b6f24\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">Find answers to common questions about Astrogeography, locations and interpretation levels.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-272f8fd e-flex e-con-boxed e-con e-child\" data-id=\"272f8fd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-9b34581 e-con-full e-flex e-con e-child\" data-id=\"9b34581\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-dce016d e-con e-atomic-element e-accordion-base  \" data-id=\"dce016d\" data-element_type=\"e-accordion\" data-e-type=\"e-accordion\" data-interaction-id=\"dce016d\">\n    <details class=\"elementor-element elementor-element-7cf983a e-con e-atomic-element e-accordion-item-base  \" data-id=\"7cf983a\" data-element_type=\"e-accordion-item\" data-e-type=\"e-accordion-item\" data-interaction-id=\"7cf983a\" open name=\"dce016d\">\n    <summary class=\"elementor-element elementor-element-47c91a4 e-con e-atomic-element e-accordion-item-header-base  \" data-id=\"47c91a4\" data-element_type=\"e-accordion-item-header\" data-e-type=\"e-accordion-item-header\" data-interaction-id=\"47c91a4\">\n    <span class=\"elementor-element elementor-element-8696dda e-con e-atomic-element e-accordion-item-title-base  e-8696dda-10648f3 \" data-id=\"8696dda\" data-element_type=\"e-accordion-item-title\" data-e-type=\"e-accordion-item-title\" data-interaction-id=\"8696dda\">\n    \t\t\t<span class=\"e-paragraph-base e-default-span\" data-interaction-id=\"1fe32e9\">What is Astrogeography?<\/span>\n\t\t\n<\/span>\n<div class=\"elementor-element elementor-element-8725708 e-con e-atomic-element e-accordion-item-icon-base  \" data-id=\"8725708\" data-element_type=\"e-accordion-item-icon\" data-e-type=\"e-accordion-item-icon\" data-interaction-id=\"8725708\" aria-hidden=\"true\">\n    \t\t\t<div class=\"e-svg-base e-default-div\" data-interaction-id=\"22cc7d9\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width: 100%; height: 100%; overflow: unset;\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.46967 9.21967C5.76256 8.92678 6.23744 8.92678 6.53033 9.21967L12 14.6893L17.4697 9.21967C17.7626 8.92678 18.2374 8.92678 18.5303 9.21967C18.8232 9.51256 18.8232 9.98744 18.5303 10.2803L12.5303 16.2803C12.2374 16.5732 11.7626 16.5732 11.4697 16.2803L5.46967 10.2803C5.17678 9.98744 5.17678 9.51256 5.46967 9.21967Z\" fill=\"currentColor\"><\/path><\/svg><\/div>\n\t\t\n<\/div>\n\n<\/summary>\n<div class=\"elementor-element elementor-element-308d8aa e-con e-atomic-element e-accordion-item-content-base  \" data-id=\"308d8aa\" data-element_type=\"e-accordion-item-content\" data-e-type=\"e-accordion-item-content\" data-interaction-id=\"308d8aa\">\n    \t\t<div class=\"elementor-element elementor-element-1f91b32 elementor-widget elementor-widget-text-editor\" data-id=\"1f91b32\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Astrogeography explores your personal relationship with geographical places through an astrological interpretation based on your birth data and the location you want to explore.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/details>\n<details class=\"elementor-element elementor-element-67dc468 e-con e-atomic-element e-accordion-item-base  \" data-id=\"67dc468\" data-element_type=\"e-accordion-item\" data-e-type=\"e-accordion-item\" data-interaction-id=\"67dc468\"  name=\"dce016d\">\n    <summary class=\"elementor-element elementor-element-9252b4c e-con e-atomic-element e-accordion-item-header-base  \" data-id=\"9252b4c\" data-element_type=\"e-accordion-item-header\" data-e-type=\"e-accordion-item-header\" data-interaction-id=\"9252b4c\">\n    <span class=\"elementor-element elementor-element-053149f e-con e-atomic-element e-accordion-item-title-base  \" data-id=\"053149f\" data-element_type=\"e-accordion-item-title\" data-e-type=\"e-accordion-item-title\" data-interaction-id=\"053149f\">\n    \t\t\t<span class=\"e-0c2f0a6-c1351c0 e-paragraph-base e-default-span\" data-interaction-id=\"0c2f0a6\">How do I choose the interpretation level?<\/span>\n\t\t\n<\/span>\n<div class=\"elementor-element elementor-element-02a5c62 e-con e-atomic-element e-accordion-item-icon-base  \" data-id=\"02a5c62\" data-element_type=\"e-accordion-item-icon\" data-e-type=\"e-accordion-item-icon\" data-interaction-id=\"02a5c62\" aria-hidden=\"true\">\n    \t\t\t<div class=\"e-svg-base e-default-div\" data-interaction-id=\"0b98573\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width: 100%; height: 100%; overflow: unset;\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.46967 9.21967C5.76256 8.92678 6.23744 8.92678 6.53033 9.21967L12 14.6893L17.4697 9.21967C17.7626 8.92678 18.2374 8.92678 18.5303 9.21967C18.8232 9.51256 18.8232 9.98744 18.5303 10.2803L12.5303 16.2803C12.2374 16.5732 11.7626 16.5732 11.4697 16.2803L5.46967 10.2803C5.17678 9.98744 5.17678 9.51256 5.46967 9.21967Z\" fill=\"currentColor\"><\/path><\/svg><\/div>\n\t\t\n<\/div>\n\n<\/summary>\n<div class=\"elementor-element elementor-element-be29680 e-con e-atomic-element e-accordion-item-content-base  \" data-id=\"be29680\" data-element_type=\"e-accordion-item-content\" data-e-type=\"e-accordion-item-content\" data-interaction-id=\"be29680\">\n    \t\t<div class=\"elementor-element elementor-element-b5aef1a elementor-widget elementor-widget-text-editor\" data-id=\"b5aef1a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>There are four levels to choose from:<\/p><ul><li><div><div><p>Level 1: Region or part of a country<\/p><\/div><\/div><\/li><li><div><div><p>Level 2: County or town<\/p><\/div><\/div><\/li><li><div><div><p>Level 3: Surrounding area or neighbourhood<\/p><\/div><\/div><\/li><li><div><div><p>Level 4: Exact address, house or piece of land (Microcosm)<\/p><\/div><\/div><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/details>\n<details class=\"elementor-element elementor-element-c176186 e-con e-atomic-element e-accordion-item-base  \" data-id=\"c176186\" data-element_type=\"e-accordion-item\" data-e-type=\"e-accordion-item\" data-interaction-id=\"c176186\"  name=\"dce016d\">\n    <summary class=\"elementor-element elementor-element-0490688 e-con e-atomic-element e-accordion-item-header-base  \" data-id=\"0490688\" data-element_type=\"e-accordion-item-header\" data-e-type=\"e-accordion-item-header\" data-interaction-id=\"0490688\">\n    <span class=\"elementor-element elementor-element-052ce68 e-con e-atomic-element e-accordion-item-title-base  \" data-id=\"052ce68\" data-element_type=\"e-accordion-item-title\" data-e-type=\"e-accordion-item-title\" data-interaction-id=\"052ce68\">\n    \t\t\t<span class=\"e-c3dd9d1-0da6a99 e-paragraph-base e-default-span\" data-interaction-id=\"c3dd9d1\">What is the exact-address \/ Microcosm level?<\/span>\n\t\t\n<\/span>\n<div class=\"elementor-element elementor-element-fbecc91 e-con e-atomic-element e-accordion-item-icon-base  \" data-id=\"fbecc91\" data-element_type=\"e-accordion-item-icon\" data-e-type=\"e-accordion-item-icon\" data-interaction-id=\"fbecc91\" aria-hidden=\"true\">\n    \t\t\t<div class=\"e-svg-base e-default-div\" data-interaction-id=\"887aad6\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width: 100%; height: 100%; overflow: unset;\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.46967 9.21967C5.76256 8.92678 6.23744 8.92678 6.53033 9.21967L12 14.6893L17.4697 9.21967C17.7626 8.92678 18.2374 8.92678 18.5303 9.21967C18.8232 9.51256 18.8232 9.98744 18.5303 10.2803L12.5303 16.2803C12.2374 16.5732 11.7626 16.5732 11.4697 16.2803L5.46967 10.2803C5.17678 9.98744 5.17678 9.51256 5.46967 9.21967Z\" fill=\"currentColor\"><\/path><\/svg><\/div>\n\t\t\n<\/div>\n\n<\/summary>\n<div class=\"elementor-element elementor-element-a1ca863 e-con e-atomic-element e-accordion-item-content-base  \" data-id=\"a1ca863\" data-element_type=\"e-accordion-item-content\" data-e-type=\"e-accordion-item-content\" data-interaction-id=\"a1ca863\">\n    \t\t<div class=\"elementor-element elementor-element-e7707cb elementor-widget elementor-widget-text-editor\" data-id=\"e7707cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Level 4 focuses on a specific address, house or piece of land. For this level, select the precise geographical point on the map that interests you.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/details>\n\n<\/div>\n\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0e6f9e1 e-con-full e-flex e-con e-child\" data-id=\"0e6f9e1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-fc8b3c3 e-con e-atomic-element e-accordion-base  \" data-id=\"fc8b3c3\" data-element_type=\"e-accordion\" data-e-type=\"e-accordion\" data-interaction-id=\"fc8b3c3\">\n    <details class=\"elementor-element elementor-element-da0e3f2 e-con e-atomic-element e-accordion-item-base  \" data-id=\"da0e3f2\" data-element_type=\"e-accordion-item\" data-e-type=\"e-accordion-item\" data-interaction-id=\"da0e3f2\" open name=\"fc8b3c3\">\n    <summary class=\"elementor-element elementor-element-fec0822 e-con e-atomic-element e-accordion-item-header-base  \" data-id=\"fec0822\" data-element_type=\"e-accordion-item-header\" data-e-type=\"e-accordion-item-header\" data-interaction-id=\"fec0822\">\n    <span class=\"elementor-element elementor-element-9a825d2 e-con e-atomic-element e-accordion-item-title-base  \" data-id=\"9a825d2\" data-element_type=\"e-accordion-item-title\" data-e-type=\"e-accordion-item-title\" data-interaction-id=\"9a825d2\">\n    \t\t\t<span class=\"e-6a2c3ac-c856994 e-paragraph-base e-default-span\" data-interaction-id=\"6a2c3ac\">What if I do not know my birth time?<\/span>\n\t\t\n<\/span>\n<div class=\"elementor-element elementor-element-7d2b6cb e-con e-atomic-element e-accordion-item-icon-base  \" data-id=\"7d2b6cb\" data-element_type=\"e-accordion-item-icon\" data-e-type=\"e-accordion-item-icon\" data-interaction-id=\"7d2b6cb\" aria-hidden=\"true\">\n    \t\t\t<div class=\"e-svg-base e-default-div\" data-interaction-id=\"b49e80a\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width: 100%; height: 100%; overflow: unset;\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.46967 9.21967C5.76256 8.92678 6.23744 8.92678 6.53033 9.21967L12 14.6893L17.4697 9.21967C17.7626 8.92678 18.2374 8.92678 18.5303 9.21967C18.8232 9.51256 18.8232 9.98744 18.5303 10.2803L12.5303 16.2803C12.2374 16.5732 11.7626 16.5732 11.4697 16.2803L5.46967 10.2803C5.17678 9.98744 5.17678 9.51256 5.46967 9.21967Z\" fill=\"currentColor\"><\/path><\/svg><\/div>\n\t\t\n<\/div>\n\n<\/summary>\n<div class=\"elementor-element elementor-element-d3669ac e-con e-atomic-element e-accordion-item-content-base  \" data-id=\"d3669ac\" data-element_type=\"e-accordion-item-content\" data-e-type=\"e-accordion-item-content\" data-interaction-id=\"d3669ac\">\n    \t\t<div class=\"elementor-element elementor-element-acaa7fd elementor-widget elementor-widget-text-editor\" data-id=\"acaa7fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Use the birth-time-unknown option where available. The appropriate interpretation depends on the calculation method supported by the AstroGeo system.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/details>\n<details class=\"elementor-element elementor-element-76c5e30 e-con e-atomic-element e-accordion-item-base  \" data-id=\"76c5e30\" data-element_type=\"e-accordion-item\" data-e-type=\"e-accordion-item\" data-interaction-id=\"76c5e30\"  name=\"fc8b3c3\">\n    <summary class=\"elementor-element elementor-element-44f8626 e-con e-atomic-element e-accordion-item-header-base  \" data-id=\"44f8626\" data-element_type=\"e-accordion-item-header\" data-e-type=\"e-accordion-item-header\" data-interaction-id=\"44f8626\">\n    <span class=\"elementor-element elementor-element-3ff378d e-con e-atomic-element e-accordion-item-title-base  \" data-id=\"3ff378d\" data-element_type=\"e-accordion-item-title\" data-e-type=\"e-accordion-item-title\" data-interaction-id=\"3ff378d\">\n    \t\t\t<span class=\"e-c89549f-e076527 e-paragraph-base e-default-span\" data-interaction-id=\"c89549f\">Can I use Astrogeography for travel?<\/span>\n\t\t\n<\/span>\n<div class=\"elementor-element elementor-element-7e1b604 e-con e-atomic-element e-accordion-item-icon-base  \" data-id=\"7e1b604\" data-element_type=\"e-accordion-item-icon\" data-e-type=\"e-accordion-item-icon\" data-interaction-id=\"7e1b604\" aria-hidden=\"true\">\n    \t\t\t<div class=\"e-svg-base e-default-div\" data-interaction-id=\"b295fb5\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width: 100%; height: 100%; overflow: unset;\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.46967 9.21967C5.76256 8.92678 6.23744 8.92678 6.53033 9.21967L12 14.6893L17.4697 9.21967C17.7626 8.92678 18.2374 8.92678 18.5303 9.21967C18.8232 9.51256 18.8232 9.98744 18.5303 10.2803L12.5303 16.2803C12.2374 16.5732 11.7626 16.5732 11.4697 16.2803L5.46967 10.2803C5.17678 9.98744 5.17678 9.51256 5.46967 9.21967Z\" fill=\"currentColor\"><\/path><\/svg><\/div>\n\t\t\n<\/div>\n\n<\/summary>\n<div class=\"elementor-element elementor-element-d4f850e e-con e-atomic-element e-accordion-item-content-base  \" data-id=\"d4f850e\" data-element_type=\"e-accordion-item-content\" data-e-type=\"e-accordion-item-content\" data-interaction-id=\"d4f850e\">\n    \t\t<div class=\"elementor-element elementor-element-77cfaf7 elementor-widget elementor-widget-text-editor\" data-id=\"77cfaf7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Yes. Astrogeo Travel is intended for exploring destinations, holidays and hotel locations in relation to your personal astrogeography.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/details>\n<details class=\"elementor-element elementor-element-0bf346d e-con e-atomic-element e-accordion-item-base  \" data-id=\"0bf346d\" data-element_type=\"e-accordion-item\" data-e-type=\"e-accordion-item\" data-interaction-id=\"0bf346d\"  name=\"fc8b3c3\">\n    <summary class=\"elementor-element elementor-element-e6468df e-con e-atomic-element e-accordion-item-header-base  \" data-id=\"e6468df\" data-element_type=\"e-accordion-item-header\" data-e-type=\"e-accordion-item-header\" data-interaction-id=\"e6468df\">\n    <span class=\"elementor-element elementor-element-4785b7b e-con e-atomic-element e-accordion-item-title-base  \" data-id=\"4785b7b\" data-element_type=\"e-accordion-item-title\" data-e-type=\"e-accordion-item-title\" data-interaction-id=\"4785b7b\">\n    \t\t\t<span class=\"e-6184e8f-43901a5 e-paragraph-base e-default-span\" data-interaction-id=\"6184e8f\">Can I use it for relationships?<\/span>\n\t\t\n<\/span>\n<div class=\"elementor-element elementor-element-7595b2b e-con e-atomic-element e-accordion-item-icon-base  \" data-id=\"7595b2b\" data-element_type=\"e-accordion-item-icon\" data-e-type=\"e-accordion-item-icon\" data-interaction-id=\"7595b2b\" aria-hidden=\"true\">\n    \t\t\t<div class=\"e-svg-base e-default-div\" data-interaction-id=\"9489737\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width: 100%; height: 100%; overflow: unset;\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.46967 9.21967C5.76256 8.92678 6.23744 8.92678 6.53033 9.21967L12 14.6893L17.4697 9.21967C17.7626 8.92678 18.2374 8.92678 18.5303 9.21967C18.8232 9.51256 18.8232 9.98744 18.5303 10.2803L12.5303 16.2803C12.2374 16.5732 11.7626 16.5732 11.4697 16.2803L5.46967 10.2803C5.17678 9.98744 5.17678 9.51256 5.46967 9.21967Z\" fill=\"currentColor\"><\/path><\/svg><\/div>\n\t\t\n<\/div>\n\n<\/summary>\n<div class=\"elementor-element elementor-element-781187f e-con e-atomic-element e-accordion-item-content-base  \" data-id=\"781187f\" data-element_type=\"e-accordion-item-content\" data-e-type=\"e-accordion-item-content\" data-interaction-id=\"781187f\">\n    \t\t<div class=\"elementor-element elementor-element-59369a6 elementor-widget elementor-widget-text-editor\" data-id=\"59369a6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Astrogeo Relationship is designed to explore places in the context of love, friendships, contacts, partners and marriage.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/details>\n\n<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Your horoscope, wherever you go. Discover how your birth chart connects with places around the world \u2014 and where you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/astrogeography.com\/en\/wp-json\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/astrogeography.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/astrogeography.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/astrogeography.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/astrogeography.com\/en\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":276,"href":"https:\/\/astrogeography.com\/en\/wp-json\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":446,"href":"https:\/\/astrogeography.com\/en\/wp-json\/wp\/v2\/pages\/12\/revisions\/446"}],"wp:attachment":[{"href":"https:\/\/astrogeography.com\/en\/wp-json\/wp\/v2\/media?parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}