{"id":4507,"date":"2026-04-28T09:19:15","date_gmt":"2026-04-28T09:19:15","guid":{"rendered":"https:\/\/memoiretravel.com\/?page_id=4507"},"modified":"2026-08-22T10:54:12","modified_gmt":"2026-08-22T10:54:12","slug":"create-your-georgia-tour","status":"publish","type":"page","link":"https:\/\/memoiretravel.com\/de\/create-your-georgia-tour\/","title":{"rendered":"Erstellen Sie Ihre Georgien-Reise"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4507\" class=\"elementor elementor-4507\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-26567c7 e-con-full e-flex e-con e-parent\" data-id=\"26567c7\" 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-0955d40 elementor-widget elementor-widget-heading\" data-id=\"0955d40\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Create Your Georgia Tour<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-03ddea8 e-con-full e-flex e-con e-child\" data-id=\"03ddea8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2185fb2 elementor-widget elementor-widget-html\" data-id=\"2185fb2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"mt-postcard-wrap\">\r\n<style>\r\n  \/* Everything is scoped under .mt-postcard-wrap so this widget never\r\n     touches html\/body or leaks into the rest of the page (header\/footer safe). *\/\r\n  .mt-postcard-wrap{\r\n    --ink:#1E2B22;\r\n    --parchment:#EAF3EE;\r\n    --parchment-2:#DCEEE6;\r\n    --wine:#89C775;\r\n    --gold:#D9B531;\r\n    --forest:#2E8B57;\r\n    --cream:#F5FBF8;\r\n    --line: rgba(30,43,34,0.18);\r\n    --error:#c0392b;\r\n\r\n    font-family:'Work Sans', sans-serif;\r\n    background: transparent;\r\n    color:var(--ink);\r\n    padding: clamp(20px,4vw,48px) 16px;\r\n    display:flex;\r\n    justify-content:center;\r\n    box-sizing:border-box;\r\n    position:relative;\r\n    width:100%;\r\n  }\r\n  .mt-postcard-wrap *{ box-sizing:border-box; }\r\n\r\n  \/* ---------- GLOBAL ICON\/EMOJI SIZE GUARD ----------\r\n     Some browser extensions \/ site plugins auto-replace emoji (\ud83c\udfd4\ufe0f \u2696\ufe0f etc.)\r\n     inside plain text with big <img> tags. That's what was blowing up the\r\n     \"Balanced\" pace icon on the result screen. This rule catches ANY <img>\r\n     anywhere inside the widget (not just inside .tile\/.chip) and forces it\r\n     to sit inline at roughly text size, like an emoji should. *\/\r\n  .mt-postcard-wrap img{\r\n    max-width:1.15em !important;\r\n    max-height:1.15em !important;\r\n    width:auto !important;\r\n    height:1.15em !important;\r\n    min-width:0 !important;\r\n    min-height:0 !important;\r\n    object-fit:contain !important;\r\n    vertical-align:-0.15em !important;\r\n    display:inline-block !important;\r\n    margin:0 3px !important;\r\n  }\r\n  \/* Tiles\/chips keep their own fixed, slightly larger icon size *\/\r\n  .mt-postcard-wrap .tile img,\r\n  .mt-postcard-wrap .chip img{\r\n    width:20px !important;\r\n    height:20px !important;\r\n    max-width:20px !important;\r\n    max-height:20px !important;\r\n    min-width:20px !important;\r\n    min-height:20px !important;\r\n    object-fit:contain !important;\r\n    vertical-align:middle !important;\r\n    display:inline-block !important;\r\n    margin:0 4px 0 0 !important;\r\n  }\r\n  .mt-postcard-wrap .tile{ overflow:hidden; }\r\n  .mt-postcard-wrap .chip{ overflow:hidden; display:inline-flex; align-items:center; }\r\n  .mt-postcard-wrap .postcard-grid dd,\r\n  .mt-postcard-wrap .place-stamp{ overflow:hidden; }\r\n\r\n  .mt-postcard-wrap .book{\r\n    width:100%;\r\n    max-width:640px;\r\n    margin:0 auto;\r\n    background:var(--cream);\r\n    border:1px solid var(--line);\r\n    border-radius:4px;\r\n    box-shadow:\r\n      0 1px 0 rgba(30,43,34,0.05),\r\n      0 24px 60px -20px rgba(30,43,34,0.30),\r\n      0 8px 22px -10px rgba(30,43,34,0.18);\r\n    position:relative;\r\n    overflow:hidden;\r\n  }\r\n  .mt-postcard-wrap .book::before{\r\n    content:\"\";\r\n    position:absolute; inset:10px;\r\n    border:1px solid rgba(30,43,34,0.12);\r\n    pointer-events:none;\r\n    z-index:2;\r\n  }\r\n\r\n  .mt-postcard-wrap .hero-photo{\r\n    width:100%;\r\n    aspect-ratio: 16 \/ 7;\r\n    min-height:150px;\r\n    max-height:260px;\r\n    background-size:cover;\r\n    background-position:center 50%;\r\n    background-repeat:no-repeat;\r\n    background-color:#1f3d2c;\r\n    position:relative;\r\n    transition: opacity .35s ease;\r\n  }\r\n  .mt-postcard-wrap .hero-photo span{\r\n    position:absolute; bottom:12px; left:20px;\r\n    color:#fff; font-family:'Fraunces',serif; font-style:italic; font-size:14px;\r\n    text-shadow:0 1px 6px rgba(0,0,0,.5);\r\n  }\r\n\r\n  .mt-postcard-wrap header.top{\r\n    padding: clamp(16px,3vw,30px) clamp(18px,4.5vw,44px) 0 clamp(18px,4.5vw,44px);\r\n    display:flex;\r\n    align-items:center;\r\n    justify-content:space-between;\r\n  }\r\n  .mt-postcard-wrap .brand{\r\n    font-family:'Fraunces', serif;\r\n    font-weight:600;\r\n    font-size:15px;\r\n    letter-spacing:0.02em;\r\n    color:var(--forest);\r\n  }\r\n  .mt-postcard-wrap .chapter{\r\n    font-size:11px;\r\n    letter-spacing:0.12em;\r\n    text-transform:uppercase;\r\n    color:var(--ink);\r\n    opacity:0.55;\r\n  }\r\n\r\n  .mt-postcard-wrap .stamps{\r\n    display:flex;\r\n    gap:6px;\r\n    padding: clamp(12px,2.4vw,18px) clamp(18px,4.5vw,44px) 0 clamp(18px,4.5vw,44px);\r\n  }\r\n  .mt-postcard-wrap .stamp-dot{\r\n    width:22px; height:22px;\r\n    border-radius:50%;\r\n    border:1.5px solid rgba(30,43,34,0.25);\r\n    display:flex; align-items:center; justify-content:center;\r\n    font-size:10px;\r\n    color:transparent;\r\n    transition:all .35s ease;\r\n    flex:1;\r\n    max-width:22px;\r\n  }\r\n  .mt-postcard-wrap .stamp-dot.done{\r\n    background:var(--wine); border-color:var(--wine); color:var(--cream);\r\n  }\r\n  .mt-postcard-wrap .stamp-dot.current{\r\n    border-color:var(--wine);\r\n    box-shadow:0 0 0 3px rgba(30,136,168,0.15);\r\n  }\r\n\r\n  .mt-postcard-wrap main{\r\n    padding: clamp(20px,4vw,40px) clamp(18px,4.5vw,44px) clamp(20px,4vw,40px) clamp(18px,4.5vw,44px);\r\n    min-height:430px;\r\n    display:flex;\r\n    flex-direction:column;\r\n    position:relative;\r\n  }\r\n\r\n  .mt-postcard-wrap .step{ display:none; flex-direction:column; flex:1; animation:mt-fade .45s ease; }\r\n  .mt-postcard-wrap .step.active{ display:flex; }\r\n  @keyframes mt-fade{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);} }\r\n\r\n  .mt-postcard-wrap .eyebrow{\r\n    font-size:11px; letter-spacing:0.14em; text-transform:uppercase;\r\n    color:var(--wine); font-weight:600; margin-bottom:8px;\r\n  }\r\n  .mt-postcard-wrap h1{\r\n    font-family:'Fraunces', serif;\r\n    font-weight:500;\r\n    font-size: clamp(21px, 4.2vw, 32px);\r\n    line-height:1.2;\r\n    margin:0 0 6px 0;\r\n    color:var(--ink);\r\n  }\r\n  .mt-postcard-wrap .sub{\r\n    font-size: clamp(12.5px, 1.8vw, 15px);\r\n    color:var(--ink);\r\n    opacity:0.62;\r\n    margin:0 0 clamp(14px,3vw,26px) 0;\r\n    line-height:1.5;\r\n  }\r\n\r\n  .mt-postcard-wrap .grid{\r\n    display:grid;\r\n    grid-template-columns:repeat(auto-fit, minmax(130px, 1fr));\r\n    gap: clamp(8px,1.6vw,14px);\r\n    margin-bottom:6px;\r\n  }\r\n  .mt-postcard-wrap .tile{\r\n    border:1px solid var(--line);\r\n    background:var(--parchment);\r\n    border-radius:3px;\r\n    padding: clamp(12px,2vw,18px) clamp(10px,1.8vw,16px);\r\n    cursor:pointer;\r\n    display:flex;\r\n    align-items:center;\r\n    gap:10px;\r\n    transition:all .2s ease;\r\n    font-size: clamp(12.5px, 1.6vw, 14.5px);\r\n    font-weight:500;\r\n    color:var(--ink);\r\n    text-align:left;\r\n  }\r\n  .mt-postcard-wrap .tile .icon-box{\r\n    width:22px; height:22px; flex:0 0 22px;\r\n    display:flex; align-items:center; justify-content:center;\r\n  }\r\n  .mt-postcard-wrap .tile svg{ width:20px; height:20px; stroke:var(--forest); display:block; }\r\n  .mt-postcard-wrap .tile:hover{ border-color:var(--wine); transform:translateY(-1px); }\r\n  .mt-postcard-wrap .tile.selected{ background:var(--forest); border-color:var(--forest); color:var(--cream); }\r\n  .mt-postcard-wrap .tile.selected svg{ stroke:var(--cream); }\r\n\r\n  .mt-postcard-wrap .chips{ display:flex; flex-wrap:wrap; gap:8px; }\r\n  .mt-postcard-wrap .chip{\r\n    border:1px solid var(--line);\r\n    background:var(--parchment);\r\n    border-radius:20px;\r\n    padding: clamp(7px,1.4vw,10px) clamp(12px,2vw,18px);\r\n    font-size: clamp(12px,1.5vw,13.5px);\r\n    cursor:pointer;\r\n    color:var(--ink);\r\n    transition:all .15s ease;\r\n  }\r\n  .mt-postcard-wrap .chip.selected{ background:var(--wine); border-color:var(--wine); color:var(--cream); }\r\n\r\n  .mt-postcard-wrap .other-wrap{ margin-top:12px; max-height:0; overflow:hidden; transition:max-height .3s ease; }\r\n  .mt-postcard-wrap .other-wrap.open{ max-height:80px; }\r\n  .mt-postcard-wrap .other-wrap input{\r\n    width:100%; border:1px solid var(--line); background:var(--parchment);\r\n    border-radius:3px; padding:11px 12px; font-size:14px; color:var(--ink);\r\n  }\r\n\r\n  .mt-postcard-wrap .row{ display:flex; gap:10px; flex-wrap:wrap; }\r\n  .mt-postcard-wrap .field{ flex:1; min-width:140px; display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }\r\n  .mt-postcard-wrap .field label{ font-size:11px; text-transform:uppercase; letter-spacing:0.08em; opacity:0.6; }\r\n  .mt-postcard-wrap .field label .req{ color:var(--wine); opacity:0.8; }\r\n  .mt-postcard-wrap .field input, .mt-postcard-wrap .field select{\r\n    border:1px solid var(--line); background:var(--parchment); border-radius:3px;\r\n    padding:11px 12px; font-size:14px; color:var(--ink); width:100%; font-family:inherit;\r\n    transition:border-color .15s ease, box-shadow .15s ease;\r\n  }\r\n  .mt-postcard-wrap .field input:focus, .mt-postcard-wrap .field select:focus{ outline:2px solid var(--wine); outline-offset:1px; }\r\n  .mt-postcard-wrap .field input.error{ border-color:var(--error); box-shadow:0 0 0 2px rgba(192,57,43,0.14); }\r\n\r\n  .mt-postcard-wrap .stepper{ display:flex; align-items:center; gap:14px; }\r\n  .mt-postcard-wrap .stepper button{\r\n    width:34px; height:34px; border-radius:50%; border:1px solid var(--line);\r\n    background:var(--parchment); font-size:16px; cursor:pointer; color:var(--ink);\r\n  }\r\n  .mt-postcard-wrap .stepper span{ font-family:'Fraunces'; font-size:20px; min-width:20px; text-align:center; }\r\n\r\n  .mt-postcard-wrap .nav{\r\n    margin-top:auto; display:flex; justify-content:space-between; align-items:center; padding-top:18px;\r\n  }\r\n  .mt-postcard-wrap .btn{\r\n    font-weight:600;\r\n    font-size: clamp(12.5px,1.5vw,14px);\r\n    letter-spacing:0.02em;\r\n    padding: clamp(11px,1.8vw,13px) clamp(16px,2.6vw,26px);\r\n    border-radius:2px; cursor:pointer; border:1px solid transparent; font-family:inherit;\r\n  }\r\n  .mt-postcard-wrap .btn-primary{ background:var(--wine); color:var(--cream); }\r\n  .mt-postcard-wrap .btn-primary:hover{ background:#6FA85F; }\r\n  .mt-postcard-wrap .btn-ghost{ background:transparent; color:var(--ink); opacity:0.6; border:none; }\r\n  .mt-postcard-wrap .btn-ghost:hover{ opacity:1; }\r\n\r\n  .mt-postcard-wrap .welcome{ text-align:left; padding-top:8px; }\r\n  .mt-postcard-wrap .welcome .mark{\r\n    width:46px; height:46px; border:1.5px solid var(--wine); border-radius:50%;\r\n    display:flex; align-items:center; justify-content:center; margin-bottom:18px;\r\n  }\r\n  .mt-postcard-wrap .welcome .mark svg{ width:22px; height:22px; stroke:var(--wine); }\r\n\r\n  .mt-postcard-wrap .postcard{\r\n    border:1px solid var(--line);\r\n    background: linear-gradient(135deg, rgba(184,144,47,0.05), transparent 40%), var(--parchment);\r\n    padding: clamp(18px,3vw,30px);\r\n    position:relative; margin-bottom:16px;\r\n  }\r\n  .mt-postcard-wrap .postcard::after{\r\n    content:\"\"; position:absolute; inset:6px; border:1px dashed rgba(30,43,34,0.22); pointer-events:none;\r\n  }\r\n  .mt-postcard-wrap .postcard .persona{ font-family:'Fraunces', serif; font-style:italic; font-size:24px; color:var(--wine); margin:0 0 4px 0; }\r\n  .mt-postcard-wrap .postcard .persona-sub{ font-size:12.5px; opacity:0.65; margin-bottom:16px; }\r\n  .mt-postcard-wrap .postcard-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px 18px; font-size:13px; }\r\n  .mt-postcard-wrap .postcard-grid dt{ opacity:0.5; font-size:11px; text-transform:uppercase; letter-spacing:0.06em; }\r\n  .mt-postcard-wrap .postcard-grid dd{ margin:2px 0 0 0; font-weight:500; }\r\n  .mt-postcard-wrap .stamp-collage{ display:flex; flex-wrap:wrap; gap:6px; margin-top:16px; }\r\n  .mt-postcard-wrap .place-stamp{\r\n    border:1.5px solid var(--wine); color:var(--wine); border-radius:50%;\r\n    width:56px; height:56px; display:flex; align-items:center; justify-content:center;\r\n    font-size:9px; text-align:center; line-height:1.15; font-weight:600; text-transform:uppercase;\r\n    transform:rotate(-3deg); padding:4px;\r\n  }\r\n  .mt-postcard-wrap .place-stamp:nth-child(even){ transform:rotate(2deg); }\r\n\r\n  .mt-postcard-wrap .final-actions{ display:flex; gap:10px; flex-wrap:wrap; }\r\n  .mt-postcard-wrap .btn-wa{ background:var(--forest); color:var(--cream); }\r\n  .mt-postcard-wrap .btn-wa:hover{ background:#256e46; }\r\n\r\n  \/* ---------- Playful toast ---------- *\/\r\n  .mt-postcard-wrap .toast{\r\n    position:absolute;\r\n    left:50%;\r\n    bottom:14px;\r\n    transform:translateX(-50%) translateY(10px);\r\n    background:var(--forest);\r\n    color:var(--cream);\r\n    padding:10px 16px;\r\n    border-radius:30px;\r\n    display:flex;\r\n    align-items:center;\r\n    gap:8px;\r\n    font-size:12.5px;\r\n    font-weight:600;\r\n    opacity:0;\r\n    pointer-events:none;\r\n    transition: opacity .3s ease, transform .35s cubic-bezier(.34,1.56,.64,1);\r\n    box-shadow:0 10px 24px -10px rgba(0,0,0,.4);\r\n    z-index:6;\r\n    max-width:88%;\r\n    white-space:nowrap;\r\n    overflow:hidden;\r\n    text-overflow:ellipsis;\r\n  }\r\n  .mt-postcard-wrap .toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }\r\n  .mt-postcard-wrap .toast svg{ width:16px; height:16px; stroke:var(--cream); flex-shrink:0; margin:0 !important; }\r\n\r\n  \/* ---------- Mobile ---------- *\/\r\n  @media (max-width: 480px){\r\n    .mt-postcard-wrap{ padding:0; }\r\n    .mt-postcard-wrap .book{ border-radius:0; max-width:100%; }\r\n    .mt-postcard-wrap .hero-photo{ aspect-ratio:16\/8; max-height:180px; }\r\n    .mt-postcard-wrap main{ padding-bottom:100px; min-height:auto; }\r\n    .mt-postcard-wrap .nav{ padding-bottom:14px; }\r\n    .mt-postcard-wrap .toast{ bottom:auto; top:10px; font-size:11.5px; padding:8px 12px; }\r\n  }\r\n\r\n  \/* ---------- Tablet \/ small desktop ---------- *\/\r\n  @media (min-width: 700px){\r\n    .mt-postcard-wrap .book{ max-width:720px; }\r\n  }\r\n\r\n  \/* ---------- Desktop (roomier, spreads out more) ---------- *\/\r\n  @media (min-width: 1100px){\r\n    .mt-postcard-wrap .book{ max-width:860px; }\r\n    .mt-postcard-wrap main{ min-height:490px; }\r\n    .mt-postcard-wrap .tile:hover{ transform:translateY(-2px) scale(1.01); box-shadow:0 8px 18px -12px rgba(30,43,34,0.35); }\r\n    .mt-postcard-wrap .postcard{ padding:34px; }\r\n    .mt-postcard-wrap .place-stamp{ width:64px; height:64px; }\r\n  }\r\n\r\n  \/* ---------- Large desktop (very wide monitors) ---------- *\/\r\n  @media (min-width: 1500px){\r\n    .mt-postcard-wrap .book{ max-width:960px; }\r\n  }\r\n<\/style>\r\n\r\n<div class=\"book\">\r\n  <div class=\"hero-photo\"><span id=\"heroCaption\">Kutaisi, Georgia<\/span><\/div>\r\n  <header class=\"top\">\r\n    <div class=\"brand\">Memoire Travel<\/div>\r\n    <div class=\"chapter\" id=\"chapterLabel\">Prologue<\/div>\r\n  <\/header>\r\n\r\n  <div class=\"stamps\" id=\"stamps\"><\/div>\r\n\r\n  <main>\r\n    <div class=\"toast\" id=\"toast\"><\/div>\r\n\r\n    <!-- STEP 0: WELCOME -->\r\n    <div class=\"step active\" data-step=\"0\">\r\n      <div class=\"welcome\">\r\n        <div class=\"mark\">\r\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.6\"><path d=\"M4 20 L12 4 L20 20 Z\"\/><path d=\"M9 13 L15 13\"\/><\/svg>\r\n        <\/div>\r\n        <div class=\"eyebrow\">A Custom Georgia Trip<\/div>\r\n        <h1>Every trip becomes a story.<br>Let's write yours.<\/h1>\r\n        <p class=\"sub\">Six quick questions \u2014 no forms to wrestle with. At the end, you'll get a personal trip postcard, and we'll turn it into a real itinerary.<\/p>\r\n      <\/div>\r\n      <div class=\"nav\">\r\n        <span><\/span>\r\n        <button class=\"btn btn-primary\" onclick=\"go(1)\">Begin the story \u2192<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- STEP 1: MOOD -->\r\n    <div class=\"step\" data-step=\"1\">\r\n      <div class=\"eyebrow\">Chapter One<\/div>\r\n      <h1>What pulls you to Georgia?<\/h1>\r\n      <p class=\"sub\">Pick as many as speak to you.<\/p>\r\n      <div class=\"grid\" id=\"moodGrid\"><\/div>\r\n      <div class=\"nav\">\r\n        <button class=\"btn btn-ghost\" onclick=\"go(0)\">\u2190 Back<\/button>\r\n        <button class=\"btn btn-primary\" onclick=\"go(2)\">Continue \u2192<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- STEP 2: PLACES -->\r\n    <div class=\"step\" data-step=\"2\">\r\n      <div class=\"eyebrow\">Chapter Two<\/div>\r\n      <h1>Which places should appear in your story?<\/h1>\r\n      <p class=\"sub\">Pick a few, or leave it to us.<\/p>\r\n      <div class=\"chips\" id=\"placeChips\"><\/div>\r\n      <div class=\"other-wrap\" id=\"otherWrap\">\r\n        <input type=\"text\" id=\"otherPlaceInput\" placeholder=\"Type a place you have in mind...\" oninput=\"state.customPlace=this.value\">\r\n      <\/div>\r\n      <div class=\"nav\">\r\n        <button class=\"btn btn-ghost\" onclick=\"go(1)\">\u2190 Back<\/button>\r\n        <button class=\"btn btn-primary\" onclick=\"go(3)\">Continue \u2192<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- STEP 3: DATES -->\r\n    <div class=\"step\" data-step=\"3\">\r\n      <div class=\"eyebrow\">Chapter Three<\/div>\r\n      <h1>When does the story begin?<\/h1>\r\n      <p class=\"sub\">Rough dates are fine \u2014 nothing is locked in yet.<\/p>\r\n      <div class=\"row\">\r\n        <div class=\"field\">\r\n          <label>Arriving<\/label>\r\n          <input type=\"date\" id=\"startDate\" onchange=\"dateChanged()\">\r\n        <\/div>\r\n        <div class=\"field\">\r\n          <label>Leaving<\/label>\r\n          <input type=\"date\" id=\"endDate\" onchange=\"dateChanged()\">\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"nav\">\r\n        <button class=\"btn btn-ghost\" onclick=\"go(2)\">\u2190 Back<\/button>\r\n        <button class=\"btn btn-primary\" onclick=\"go(4)\">Continue \u2192<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- STEP 4: TRAVELERS -->\r\n    <div class=\"step\" data-step=\"4\">\r\n      <div class=\"eyebrow\">Chapter Four<\/div>\r\n      <h1>Who's in the story with you?<\/h1>\r\n      <p class=\"sub\">Set your travel party.<\/p>\r\n      <div class=\"row\" style=\"margin-bottom:18px;\">\r\n        <div class=\"field\" style=\"flex:none;\">\r\n          <label>Adults<\/label>\r\n          <div class=\"stepper\"><button onclick=\"adjust('adults',-1)\">\u2013<\/button><span id=\"adultsVal\">2<\/span><button onclick=\"adjust('adults',1)\">+<\/button><\/div>\r\n        <\/div>\r\n        <div class=\"field\" style=\"flex:none;\">\r\n          <label>Children<\/label>\r\n          <div class=\"stepper\"><button onclick=\"adjust('children',-1)\">\u2013<\/button><span id=\"childrenVal\">0<\/span><button onclick=\"adjust('children',1)\">+<\/button><\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"nav\">\r\n        <button class=\"btn btn-ghost\" onclick=\"go(3)\">\u2190 Back<\/button>\r\n        <button class=\"btn btn-primary\" onclick=\"go(5)\">Continue \u2192<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- STEP 5: PACE + BUDGET -->\r\n    <div class=\"step\" data-step=\"5\">\r\n      <div class=\"eyebrow\">Chapter Five<\/div>\r\n      <h1>What's the rhythm of your days?<\/h1>\r\n      <p class=\"sub\">Choose a pace and a comfort level.<\/p>\r\n      <div class=\"grid\" id=\"paceGrid\" style=\"margin-bottom:16px;\"><\/div>\r\n      <div class=\"chips\" id=\"budgetChips\"><\/div>\r\n      <div class=\"nav\">\r\n        <button class=\"btn btn-ghost\" onclick=\"go(4)\">\u2190 Back<\/button>\r\n        <button class=\"btn btn-primary\" onclick=\"go(6)\">Continue \u2192<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- STEP 6: CONTACT -->\r\n    <div class=\"step\" data-step=\"6\">\r\n      <div class=\"eyebrow\">Final Chapter<\/div>\r\n      <h1>Where should we send it?<\/h1>\r\n      <p class=\"sub\">We'll reply with a personal offer, usually within a few hours.<\/p>\r\n      <div class=\"row\">\r\n        <div class=\"field\"><label>First name <span class=\"req\">*<\/span><\/label><input id=\"fname\" placeholder=\"Anna\"><\/div>\r\n        <div class=\"field\"><label>Last name <span class=\"req\">*<\/span><\/label><input id=\"lname\" placeholder=\"Kelly\"><\/div>\r\n      <\/div>\r\n      <div class=\"row\">\r\n        <div class=\"field\"><label>WhatsApp \/ phone <span class=\"req\">*<\/span><\/label><input id=\"phone\" placeholder=\"+995 ...\"><\/div>\r\n        <div class=\"field\"><label>Email <span class=\"req\">*<\/span><\/label><input id=\"email\" placeholder=\"anna@email.com\"><\/div>\r\n      <\/div>\r\n      <div class=\"nav\">\r\n        <button class=\"btn btn-ghost\" onclick=\"go(5)\">\u2190 Back<\/button>\r\n        <button class=\"btn btn-primary\" id=\"finishBtn\" onclick=\"finish()\">Create my postcard \u2192<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- STEP 7: RESULT -->\r\n    <div class=\"step\" data-step=\"7\">\r\n      <div class=\"eyebrow\">Your Story, So Far<\/div>\r\n      <h1 id=\"resultHeadline\">Here's your Georgia postcard<\/h1>\r\n      <div class=\"postcard\">\r\n        <p class=\"persona\" id=\"personaTitle\">The Mountain Wanderer<\/p>\r\n        <p class=\"persona-sub\" id=\"personaSub\">A trip built around peaks, silence, and long views.<\/p>\r\n        <dl class=\"postcard-grid\">\r\n          <div><dt>Traveler<\/dt><dd id=\"pcName\">\u2013<\/dd><\/div>\r\n          <div><dt>Travelers<\/dt><dd id=\"pcTravelers\">\u2013<\/dd><\/div>\r\n          <div><dt>Dates<\/dt><dd id=\"pcDates\">\u2013<\/dd><\/div>\r\n          <div><dt>Pace<\/dt><dd id=\"pcPace\">\u2013<\/dd><\/div>\r\n          <div><dt>Comfort<\/dt><dd id=\"pcBudget\">\u2013<\/dd><\/div>\r\n        <\/dl>\r\n        <div class=\"stamp-collage\" id=\"stampCollage\"><\/div>\r\n      <\/div>\r\n      <p class=\"sub\" style=\"margin-bottom:16px;\">Send this to our team and we'll turn it into a real, priced itinerary.<\/p>\r\n      <div class=\"final-actions\">\r\n        <button class=\"btn btn-wa\" onclick=\"sendWhatsApp()\">Send via WhatsApp<\/button>\r\n        <button class=\"btn btn-ghost\" style=\"border:1px solid var(--line); opacity:1;\" onclick=\"go(0); resetAll();\">Start over<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n  <\/main>\r\n<\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n\r\nconst state = {\r\n  moods: [], adults: 2, children: 0, pace: null, budget: null,\r\n  places: [], customPlace: '', startDate:'', endDate:'',\r\n  fname:'', lname:'', phone:'', email:''\r\n};\r\n\r\n\/* ============================================================\r\n   \u10e4\u10dd\u10e2\u10dd\u10d4\u10d1\u10d8\u10e1 \u10e1\u10d8\u10d0 \u2014 \u10d7\u10d8\u10d7\u10dd\u10d4\u10e3\u10da\u10e1 \u10d7\u10d0\u10dc \u10d0\u10ee\u10da\u10d0\u10d5\u10e1 caption (\u10ec\u10d0\u10e0\u10ec\u10d4\u10e0\u10d0,\r\n   \u10e0\u10dd\u10db\u10d4\u10da\u10d8\u10ea \u10e4\u10dd\u10e2\u10dd\u10d6\u10d4 \u10d2\u10d0\u10db\u10dd\u10e9\u10dc\u10d3\u10d4\u10d1\u10d0 \u10e5\u10d5\u10d4\u10d3\u10d0-\u10db\u10d0\u10e0\u10ea\u10ee\u10d4\u10dc\u10d0 \u10d9\u10e3\u10d7\u10ee\u10d4\u10e8\u10d8).\r\n   \u10d0\u10e5 \u10e9\u10d0\u10e1\u10d5\u10d8 \u10e8\u10d4\u10dc\u10d8 \u10e0\u10d4\u10d0\u10da\u10e3\u10e0\u10d8 \u10e4\u10dd\u10e2\u10dd\u10d4\u10d1\u10d8\u10e1 \u10d1\u10db\u10e3\u10da\u10d4\u10d1\u10d8 \u10d3\u10d0 \u10db\u10d0\u10d7\u10d8 \u10da\u10dd\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8.\r\n   ============================================================ *\/\r\nconst HERO_PHOTOS = [\r\n  { url:'https:\/\/memoiretravel.com\/wp-content\/uploads\/2026\/04\/pexels-andrew-schwark-540305-12916333-scaled.webp', caption:'Kazbegi, Georgia' },\r\n  { url:'https:\/\/memoiretravel.com\/wp-content\/uploads\/2025\/07\/Kutaisi.webp',                                      caption:'Kutaisi, Georgia' },\r\n  { url:'https:\/\/memoiretravel.com\/wp-content\/uploads\/2026\/03\/Martvili-Canyon-scaled.webp',                       caption:'Martvili Canyon, Georgia' },\r\n  { url:'https:\/\/memoiretravel.com\/wp-content\/uploads\/2026\/03\/winery-Georgia.webp',                                caption:'Kakheti, Georgia' },\r\n  { url:'https:\/\/memoiretravel.com\/wp-content\/uploads\/2025\/07\/sanatoriumi-medea.webp',                             caption:'Tskaltubo, Georgia' },\r\n  { url:'https:\/\/memoiretravel.com\/wp-content\/uploads\/2025\/07\/svaneti-Tower.webp',                                 caption:'Svaneti, Georgia' },\r\n  { url:'https:\/\/memoiretravel.com\/wp-content\/uploads\/2025\/07\/botanical-garden.webp',                              caption:'Batumi, Georgia' }\r\n\r\n  \/* ============================================================\r\n     \u10ef\u10d4\u10e0 \u10d0\u10e0 \u10d2\u10d0\u10e5\u10d5\u10e1 \u10d0\u10e2\u10d5\u10d8\u10e0\u10d7\u10e3\u10da\u10d8: \u10e0\u10d0\u10ed\u10d0, \u10d7\u10d1\u10d8\u10da\u10d8\u10e1\u10d8 & \u10db\u10ea\u10ee\u10d4\u10d7\u10d0,\r\n     \u10d1\u10dd\u10e0\u10ef\u10dd\u10db\u10d8 & \u10d1\u10d0\u10d9\u10e3\u10e0\u10d8\u10d0\u10dc\u10d8, \u10d5\u10d0\u10e0\u10eb\u10d8\u10d0 & \u10e0\u10d0\u10d1\u10d0\u10d7\u10d8, \u10d2\u10e3\u10d3\u10d0\u10e3\u10e0\u10d8.\r\n     \u10e0\u10dd\u10ea\u10d0 \u10d2\u10d4\u10e5\u10dc\u10d4\u10d1\u10d0 \u2014 \u10e9\u10d0\u10e1\u10d5\u10d8 \u10d0\u10e5\u10d5\u10d4, \u10d8\u10d2\u10d8\u10d5\u10d4 \u10e4\u10dd\u10e0\u10db\u10d0\u10e2\u10d8\u10d7:\r\n     { url:'https:\/\/...jpg', caption:'Location name' },\r\n  ============================================================ *\/\r\n];\r\n\r\nfunction pickRandom(arr){ return arr[Math.floor(Math.random() * arr.length)]; }\r\n\r\nlet currentHeroPhoto = null;\r\n\r\nfunction pickNextPhoto(){\r\n  if(HERO_PHOTOS.length <= 1) return HERO_PHOTOS[0];\r\n  let next = pickRandom(HERO_PHOTOS);\r\n  while(next === currentHeroPhoto){ next = pickRandom(HERO_PHOTOS); }\r\n  return next;\r\n}\r\n\r\n\/* \u10de\u10d8\u10e0\u10d5\u10d4\u10da\u10d8 \u10e9\u10d0\u10e2\u10d5\u10d8\u10e0\u10d7\u10d5\u10d8\u10e1\u10d0\u10e1 \u10e4\u10dd\u10e2\u10dd \u10db\u10d0\u10e8\u10d8\u10dc\u10d5\u10d4 \u10e9\u10dc\u10d3\u10d4\u10d1\u10d0, fade-\u10d8\u10e1 \u10d2\u10d0\u10e0\u10d4\u10e8\u10d4. *\/\r\nfunction initPhotos(){\r\n  const hero = document.querySelector('.hero-photo');\r\n  const caption = document.getElementById('heroCaption');\r\n  const pick = pickNextPhoto();\r\n  currentHeroPhoto = pick;\r\n\r\n  const heroImg = new Image();\r\n  heroImg.onload = () => {\r\n    hero.style.backgroundImage = `linear-gradient(180deg, rgba(20,50,45,0.10), rgba(15,40,36,0.55)), url('${pick.url}')`;\r\n    if(caption) caption.textContent = pick.caption;\r\n  };\r\n  heroImg.onerror = () => {\r\n    hero.style.backgroundImage = `linear-gradient(180deg, rgba(20,50,45,0.10), rgba(15,40,36,0.55)), url('${HERO_PHOTOS[0].url}')`;\r\n    if(caption) caption.textContent = HERO_PHOTOS[0].caption;\r\n  };\r\n  heroImg.src = pick.url;\r\n}\r\ninitPhotos();\r\n\r\n\/* \u10e7\u10dd\u10d5\u10d4\u10da \u10d0\u10ee\u10d0\u10da \u10e1\u10d0\u10e4\u10d4\u10ee\u10e3\u10e0\u10d6\u10d4 \u10d2\u10d0\u10d3\u10d0\u10e1\u10d5\u10da\u10d8\u10e1\u10d0\u10e1 (go()) \u10d0\u10ee\u10d0\u10da\u10d8 \u10e4\u10dd\u10e2\u10dd \u10d3\u10d0 \u10db\u10d8\u10e1\u10d8\r\n   \u10ec\u10d0\u10e0\u10ec\u10d4\u10e0\u10d0 \u10e9\u10dc\u10d3\u10d4\u10d1\u10d0 \u10e0\u10d1\u10d8\u10da\u10d8 fade-out\/fade-in \u10d4\u10e4\u10d4\u10e5\u10e2\u10d8\u10d7. *\/\r\nfunction changeHeroPhoto(){\r\n  const hero = document.querySelector('.hero-photo');\r\n  const caption = document.getElementById('heroCaption');\r\n  if(!hero || HERO_PHOTOS.length <= 1) return;\r\n  const next = pickNextPhoto();\r\n  currentHeroPhoto = next;\r\n\r\n  const nextImg = new Image();\r\n  const applyPhoto = (item) => {\r\n    hero.style.opacity = '0';\r\n    setTimeout(() => {\r\n      hero.style.backgroundImage = `linear-gradient(180deg, rgba(20,50,45,0.10), rgba(15,40,36,0.55)), url('${item.url}')`;\r\n      if(caption) caption.textContent = item.caption;\r\n      hero.style.opacity = '1';\r\n    }, 320);\r\n  };\r\n  nextImg.onload = () => applyPhoto(next);\r\n  nextImg.onerror = () => applyPhoto(HERO_PHOTOS[0]);\r\n  nextImg.src = next.url;\r\n}\r\n\r\nconst svgIcon = (path) => `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${path}<\/svg>`;\r\n\r\nconst ICONS = {\r\n  mountain: '<path d=\"M3 20 L9 8 L13 15 L16 10 L21 20 Z\"\/>',\r\n  horn: '<path d=\"M7 4 C7 4 18 7 17 13 C16.3 17.2 12 20 9 20 C6.8 20 5 18.2 5 16 C5 14.2 6.3 13.4 7.4 13.6\"\/><circle cx=\"7.6\" cy=\"14\" r=\"0.9\" fill=\"currentColor\" stroke=\"none\"\/>',\r\n  church: '<path d=\"M4 21 h16\"\/><path d=\"M6 21 V9 L12 4 L18 9 V21\"\/><path d=\"M10 21 v-6 h4 v6\"\/>',\r\n  boot: '<path d=\"M5 21 L10 10 L13 15 L15 12 L19 21 Z\"\/><circle cx=\"17\" cy=\"6\" r=\"2\"\/>',\r\n  family: '<circle cx=\"8\" cy=\"7\" r=\"2.2\"\/><circle cx=\"16\" cy=\"7\" r=\"2.2\"\/><path d=\"M4 20 v-3 a4 4 0 0 1 4 -4 h0 a4 4 0 0 1 4 4 v3\"\/><path d=\"M12 20 v-3 a4 4 0 0 1 4 -4 h0 a4 4 0 0 1 4 4 v3\"\/>',\r\n  leaf: '<circle cx=\"12\" cy=\"12\" r=\"8\"\/><path d=\"M8 12 h8\"\/>',\r\n  calendar: '<rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M3 10 h18\"\/><path d=\"M8 3 v4\"\/><path d=\"M16 3 v4\"\/>',\r\n  warn: '<path d=\"M12 3 L21 20 H3 Z\"\/><path d=\"M12 9 v5\"\/><circle cx=\"12\" cy=\"17\" r=\"0.8\" fill=\"currentColor\" stroke=\"none\"\/>'\r\n};\r\n\r\nconst moods = [\r\n  {id:'mountains', label:'\ud83c\udfd4\ufe0f Mountains & peaks', icon: svgIcon(ICONS.mountain)},\r\n  {id:'wine', label:'\ud83c\udf77 Wine & food', icon: svgIcon('<path d=\"M8 3 h8 v3 a4 4 0 0 1 -4 4 a4 4 0 0 1 -4 -4 Z\"\/><path d=\"M12 10 v7\"\/><path d=\"M8 20 h8\"\/>')},\r\n  {id:'history', label:'\u26ea History & monasteries', icon: svgIcon(ICONS.church)},\r\n  {id:'adventure', label:'\ud83e\udd7e Adventure & hiking', icon: svgIcon(ICONS.boot)},\r\n  {id:'family', label:'\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67 Family friendly', icon: svgIcon(ICONS.family)},\r\n  {id:'relax', label:'\ud83e\uddd8 Slow & relaxing', icon: svgIcon(ICONS.leaf)},\r\n];\r\n\r\nconst moodToast = {\r\n  mountains: {icon: ICONS.mountain, text:'The peaks are calling!'},\r\n  wine:      {icon: ICONS.horn,     text:'The supra awaits!'},\r\n  history:   {icon: ICONS.church,   text:'History awaits you!'},\r\n  adventure: {icon: ICONS.boot,     text:'The trails are calling!'},\r\n  family:    {icon: ICONS.family,   text:'A family adventure awaits!'},\r\n  relax:     {icon: ICONS.leaf,     text:'Slow days ahead!'},\r\n};\r\n\r\nconst paces = [\r\n  {id:'slow', label:'\ud83c\udf3f Slow \u2014 few stops, long stays'},\r\n  {id:'balanced', label:'\u2696\ufe0f Balanced \u2014 a mix of both'},\r\n  {id:'packed', label:'\u26a1 Packed \u2014 see as much as possible'},\r\n];\r\n\r\nconst budgets = ['\ud83e\udd37 Not sure yet','\ud83d\udcb6 Economy','\ud83d\udcb6\ud83d\udcb6 Standard','\ud83d\udcb6\ud83d\udcb6\ud83d\udcb6 Comfort','\ud83d\udc8e Premium'];\r\nconst places = ['\ud83c\udfd4\ufe0f Kazbegi','\ud83d\uddfc Svaneti','\ud83c\udf47 Racha','\ud83c\udf77 Kakheti','\ud83c\udf0a Batumi','\ud83c\udfde\ufe0f Kutaisi & Canyons','\ud83c\udfdb\ufe0f Tbilisi & Mtskheta','\u2668\ufe0f Borjomi & Bakuriani','\ud83c\udff0 Vardzia & Rabati','\u26f7\ufe0f Gudauri','\ud83c\udfca Tskaltubo'];\r\nconst OTHER_ID = '\u270f\ufe0f Other';\r\n\r\nfunction renderTiles(containerId, items, stateKey, single){\r\n  const el = document.getElementById(containerId);\r\n  el.innerHTML = items.map(it => `\r\n    <div class=\"tile\" data-id=\"${it.id}\" onclick=\"mtToggle('${stateKey}','${it.id}', ${single})\">\r\n      <span class=\"icon-box\">${it.icon || ''}<\/span><span>${it.label}<\/span>\r\n    <\/div>`).join('');\r\n}\r\n\r\nfunction renderChips(containerId, items, stateKey, single){\r\n  const el = document.getElementById(containerId);\r\n  el.innerHTML = items.map(label => `\r\n    <div class=\"chip\" data-id=\"${label}\" onclick=\"mtToggle('${stateKey}','${label}', ${single})\">${label}<\/div>`).join('');\r\n}\r\n\r\nrenderTiles('moodGrid', moods, 'moods', false);\r\nrenderTiles('paceGrid', paces, 'pace', true);\r\nrenderChips('budgetChips', budgets, 'budget', true);\r\nrenderChips('placeChips', [...places, OTHER_ID], 'places', false);\r\n\r\nwindow.mtToggle = function(key, id, single){\r\n  let becameSelected = false;\r\n  if(single){\r\n    state[key] = id;\r\n    becameSelected = true;\r\n  } else {\r\n    const arr = state[key];\r\n    const i = arr.indexOf(id);\r\n    if(i>-1){ arr.splice(i,1); } else { arr.push(id); becameSelected = true; }\r\n  }\r\n  syncSelections();\r\n\r\n  if(key === 'moods' && becameSelected && moodToast[id]){\r\n    showToast(moodToast[id].icon, moodToast[id].text);\r\n  }\r\n\r\n  if(key === 'places' && id === OTHER_ID){\r\n    const wrap = document.getElementById('otherWrap');\r\n    const isOpen = state.places.includes(OTHER_ID);\r\n    wrap.classList.toggle('open', isOpen);\r\n    if(isOpen){ document.getElementById('otherPlaceInput').focus(); }\r\n    else { state.customPlace = ''; document.getElementById('otherPlaceInput').value = ''; }\r\n  }\r\n}\r\n\r\nfunction syncSelections(){\r\n  document.querySelectorAll('#moodGrid .tile').forEach(t=>t.classList.toggle('selected', state.moods.includes(t.dataset.id)));\r\n  document.querySelectorAll('#paceGrid .tile').forEach(t=>t.classList.toggle('selected', state.pace===t.dataset.id));\r\n  document.querySelectorAll('#budgetChips .chip').forEach(c=>c.classList.toggle('selected', state.budget===c.dataset.id));\r\n  document.querySelectorAll('#placeChips .chip').forEach(c=>c.classList.toggle('selected', state.places.includes(c.dataset.id)));\r\n}\r\n\r\nwindow.adjust = function(key, delta){\r\n  state[key] = Math.max(key==='adults'?1:0, state[key]+delta);\r\n  document.getElementById(key+'Val').textContent = state[key];\r\n}\r\n\r\nlet toastTimer = null;\r\nfunction showToast(iconPath, text){\r\n  const el = document.getElementById('toast');\r\n  el.innerHTML = svgIcon(iconPath) + `<span>${text}<\/span>`;\r\n  el.classList.add('show');\r\n  clearTimeout(toastTimer);\r\n  toastTimer = setTimeout(()=>{ el.classList.remove('show'); }, 2200);\r\n}\r\n\r\nlet dateNudgeTimer = null;\r\nfunction scheduleDateNudge(){\r\n  clearTimeout(dateNudgeTimer);\r\n  dateNudgeTimer = setTimeout(()=>{\r\n    const s = document.getElementById('startDate').value;\r\n    const e = document.getElementById('endDate').value;\r\n    if(!s && !e){\r\n      showToast(ICONS.calendar, 'What are you waiting for? Georgia is calling.');\r\n    }\r\n  }, 2000);\r\n}\r\nwindow.dateChanged = function(){\r\n  clearTimeout(dateNudgeTimer);\r\n  const s = document.getElementById('startDate').value;\r\n  const e = document.getElementById('endDate').value;\r\n  if(!s || !e){ scheduleDateNudge(); }\r\n}\r\n\r\nconst chapters = ['Prologue','Chapter One','Chapter Two','Chapter Three','Chapter Four','Chapter Five','Final Chapter','Your Postcard'];\r\nlet currentStep = 0;\r\nconst totalStamps = 6;\r\n\r\nfunction renderStamps(){\r\n  const el = document.getElementById('stamps');\r\n  el.innerHTML = '';\r\n  for(let i=1;i<=totalStamps;i++){\r\n    const d = document.createElement('div');\r\n    d.className = 'stamp-dot' + (currentStep>i ? ' done':'') + (currentStep===i ? ' current':'');\r\n    d.textContent = currentStep>i ? '\u2713' : '';\r\n    el.appendChild(d);\r\n  }\r\n}\r\n\r\nwindow.go = function(step){\r\n  document.querySelectorAll('.mt-postcard-wrap .step').forEach(s=>s.classList.remove('active'));\r\n  document.querySelector(`.mt-postcard-wrap .step[data-step=\"${step}\"]`).classList.add('active');\r\n  document.getElementById('chapterLabel').textContent = chapters[step];\r\n  if(step !== currentStep){ changeHeroPhoto(); }\r\n  currentStep = step;\r\n  renderStamps();\r\n  clearTimeout(dateNudgeTimer);\r\n  document.getElementById('toast').classList.remove('show');\r\n  if(step === 3){ scheduleDateNudge(); }\r\n}\r\n\r\nfunction clearFieldError(id){\r\n  const el = document.getElementById(id);\r\n  if(el) el.classList.remove('error');\r\n}\r\n['fname','lname','phone','email'].forEach(id=>{\r\n  document.getElementById(id) && document.getElementById(id).addEventListener('input', ()=>clearFieldError(id));\r\n});\r\n\r\nwindow.finish = function(){\r\n  const fname = document.getElementById('fname').value.trim();\r\n  const lname = document.getElementById('lname').value.trim();\r\n  const phone = document.getElementById('phone').value.trim();\r\n  const email = document.getElementById('email').value.trim();\r\n\r\n  let missing = [];\r\n  if(!fname) missing.push('fname');\r\n  if(!lname) missing.push('lname');\r\n  if(!phone) missing.push('phone');\r\n  if(!email) missing.push('email');\r\n\r\n  if(missing.length){\r\n    missing.forEach(id => document.getElementById(id).classList.add('error'));\r\n    showToast(ICONS.warn, 'Please fill in all required fields.');\r\n    return;\r\n  }\r\n\r\n  state.fname = fname;\r\n  state.lname = lname;\r\n  state.phone = phone;\r\n  state.email = email;\r\n  state.startDate = document.getElementById('startDate').value;\r\n  state.endDate = document.getElementById('endDate').value;\r\n\r\n  buildResult();\r\n  go(7);\r\n}\r\n\r\nconst personaMap = {\r\n  mountains: {title:'The Peak Chaser', sub:'A trip built around ridgelines, silence, and long views.'},\r\n  wine: {title:'The Flavor Hunter', sub:'A trip led by cellars, supra tables, and the road between them.'},\r\n  history: {title:'The Time Traveler', sub:'A trip through monasteries, cave cities, and old stone.'},\r\n  adventure: {title:'The Trailblazer', sub:'A trip measured in trails, passes, and the odd steep climb.'},\r\n  family: {title:'The Story Collector', sub:'A gentle trip, built for curious kids and easy days.'},\r\n  relax: {title:'The Slow Wanderer', sub:'A trip with room to breathe between the highlights.'},\r\n};\r\n\r\nfunction buildResult(){\r\n  const primary = state.moods[0] || 'mountains';\r\n  const persona = personaMap[primary];\r\n  document.getElementById('personaTitle').textContent = persona.title;\r\n  document.getElementById('personaSub').textContent = persona.sub;\r\n  document.getElementById('resultHeadline').textContent = `${state.fname}, here's your Georgia postcard`;\r\n\r\n  document.getElementById('pcName').textContent = `${state.fname} ${state.lname}`;\r\n  document.getElementById('pcTravelers').textContent = `${state.adults} adult${state.adults>1?'s':''}` + (state.children? ` + ${state.children} child${state.children>1?'ren':''}` : '');\r\n  document.getElementById('pcDates').textContent = (state.startDate && state.endDate) ? `${state.startDate} \u2192 ${state.endDate}` : 'Flexible';\r\n  document.getElementById('pcPace').textContent = state.pace ? paces.find(p=>p.id===state.pace).label.split(' \u2014 ')[0] : 'Balanced';\r\n  document.getElementById('pcBudget').textContent = state.budget || 'Not sure yet';\r\n\r\n  const collage = document.getElementById('stampCollage');\r\n  let list = state.places.filter(p => p !== OTHER_ID);\r\n  if(state.customPlace && state.customPlace.trim()) list.push(state.customPlace.trim());\r\n  if(!list.length) list = ['Surprise us'];\r\n  collage.innerHTML = list.map(p=>`<div class=\"place-stamp\">${p}<\/div>`).join('');\r\n}\r\n\r\nwindow.sendWhatsApp = function(){\r\n  let placeList = state.places.filter(p => p !== OTHER_ID);\r\n  if(state.customPlace && state.customPlace.trim()) placeList.push(state.customPlace.trim());\r\n\r\n  const msg = `Hi Memoire Travel! I built my trip postcard:%0A` +\r\n    `Name: ${state.fname} ${state.lname}%0A` +\r\n    `Mood: ${state.moods.join(', ') || '\u2014'}%0A` +\r\n    `Dates: ${state.startDate||'flexible'} to ${state.endDate||'flexible'}%0A` +\r\n    `Travelers: ${state.adults} adults, ${state.children} children%0A` +\r\n    `Pace: ${state.pace||'\u2014'} \/ Comfort: ${state.budget||'\u2014'}%0A` +\r\n    `Places: ${placeList.join(', ')||'open to suggestions'}%0A` +\r\n    `Phone: ${state.phone||'\u2014'}  Email: ${state.email||'\u2014'}`;\r\n  window.open(`https:\/\/wa.me\/995591108475?text=${msg}`, '_blank');\r\n}\r\n\r\nwindow.resetAll = function(){\r\n  state.moods=[]; state.pace=null; state.budget=null; state.places=[]; state.customPlace='';\r\n  state.adults=2; state.children=0;\r\n  document.getElementById('adultsVal').textContent=2;\r\n  document.getElementById('childrenVal').textContent=0;\r\n  document.getElementById('otherWrap').classList.remove('open');\r\n  document.getElementById('otherPlaceInput').value='';\r\n  ['fname','lname','phone','email'].forEach(id=>{\r\n    const el = document.getElementById(id);\r\n    if(el){ el.value=''; el.classList.remove('error'); }\r\n  });\r\n  document.getElementById('startDate').value='';\r\n  document.getElementById('endDate').value='';\r\n  syncSelections();\r\n}\r\n\r\nrenderStamps();\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Create Your Georgia Tour Kutaisi, Georgia Memoire Travel Prologue A Custom Georgia Trip Every trip becomes a story.Let&#8217;s write yours. Six quick questions \u2014 no forms to wrestle with. At the end, you&#8217;ll get a personal trip postcard, and we&#8217;ll turn it into a real itinerary. Begin the story \u2192 Chapter One What pulls you [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_theme","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-4507","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/memoiretravel.com\/de\/wp-json\/wp\/v2\/pages\/4507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/memoiretravel.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/memoiretravel.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/memoiretravel.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/memoiretravel.com\/de\/wp-json\/wp\/v2\/comments?post=4507"}],"version-history":[{"count":79,"href":"https:\/\/memoiretravel.com\/de\/wp-json\/wp\/v2\/pages\/4507\/revisions"}],"predecessor-version":[{"id":5105,"href":"https:\/\/memoiretravel.com\/de\/wp-json\/wp\/v2\/pages\/4507\/revisions\/5105"}],"wp:attachment":[{"href":"https:\/\/memoiretravel.com\/de\/wp-json\/wp\/v2\/media?parent=4507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}