{"id":46201,"date":"2024-07-08T17:54:16","date_gmt":"2024-07-08T17:54:16","guid":{"rendered":"http:\/\/trueomni.com\/?page_id=46201"},"modified":"2026-05-06T22:45:28","modified_gmt":"2026-05-06T22:45:28","slug":"ai-itinerary-builder","status":"publish","type":"page","link":"https:\/\/trueomni.com\/french\/ai-itinerary-builder\/","title":{"rendered":"Cr\u00e9ateur d&#039;itin\u00e9raires"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"46201\" class=\"elementor elementor-46201\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-049e337 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"049e337\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3500112 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"3500112\" 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<!--\n  ============================================================\n  AI TRIP BUILDER \u2014 WordPress \/ Elementor fragment\n  ============================================================\n  PEGAR DENTRO DE UN WIDGET \"HTML\" (Custom HTML) DE ELEMENTOR.\n  No incluye <!DOCTYPE>, <html>, <head>, <body> a prop\u00f3sito.\n  Header \/ footer del tema permanecen.\n\n  IM\u00c1GENES requeridas en Media Library\n  (https:\/\/trueomni.com\/wp-content\/uploads\/2026\/05\/):\n    - atb-hero-lakeplacid.png\n    - atb-kiosk-littlerock.png\n    - atb-kiosk-annapolis.png\n\n  AJUSTES DEL CONTAINER que envuelve el widget en Elementor:\n    Content Width: Full Width \u00b7 Width: 100% \u00b7 Padding: 0\n  AJUSTES DEL WIDGET (Advanced):\n    Margin: 0 \u00b7 Padding: 0 \u00b7 Width: Full Width\n  Page Layout (\u2699 Settings): Default  (NO Canvas)\n  ============================================================\n-->\n\n<style>\n\/* ---- Scope todo bajo #atb-root para no contaminar el tema ---- *\/\n#atb-root {\n  display: block;\n  width: 100%;\n  position: relative;\n  z-index: 0;\n  isolation: isolate;\n  margin-bottom: 80px;\n  font-family: 'Poppins', system-ui, -apple-system, Segoe UI, sans-serif;\n  color: #131313;\n  -webkit-font-smoothing: antialiased;\n  text-rendering: optimizeLegibility;\n}\n#atb-root *, #atb-root *::before, #atb-root *::after { box-sizing: border-box; }\n#atb-root img { max-width: 100%; display: block; }\n#atb-root h1, #atb-root h2, #atb-root h3, #atb-root h4, #atb-root p, #atb-root ol, #atb-root ul, #atb-root li {\n  margin: 0; padding: 0;\n}\n#atb-root ol, #atb-root ul { list-style: none; }\n#atb-root a { color: inherit; text-decoration: none; }\n#atb-root button { font-family: inherit; cursor: pointer; }\n\n\/* ---- Tokens (locales) ---- *\/\n#atb-root {\n  --to-tech-blue: #0088CE;\n  --to-blue-400: #54BEF5;\n  --to-near-black: #010109;\n  --to-black: #131313;\n  --to-grey-100: #F5F5F5;\n  --to-grey-600: #595959;\n  --to-grey-800: #232323;\n  --to-off-white: #F8F9FB;\n  --to-fg-muted: rgba(19,19,19,0.8);\n  --to-font-display: 'Montserrat', system-ui, sans-serif;\n}\n\n\/* ---- Carga de fuentes (no-op si el tema ya las tiene) ---- *\/\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@500;600;700;800&family=Poppins:wght@400;500;600;700&display=swap');\n\n\/* ---- Secciones (compactas \u2014 Elementor a\u00f1ade su propio padding) ---- *\/\n.atb-section {\n  position: relative;\n  padding: 14px 0 !important;\n  overflow: hidden;\n}\n.atb-bg-light { background-color: #FFFFFF !important; color: var(--to-black) !important; }\n.atb-bg-soft  { background-color: #F8F9FB !important; color: var(--to-black) !important; }\n.atb-bg-dark  { background-color: #04050A !important; color: #FFFFFF !important; }\n\n.atb-container { max-width: 1320px; margin: 0 auto; padding: 0 40px; position: relative; }\n.atb-container--narrow { max-width: 1100px; }\n\n\/* ---- Tipograf\u00eda ---- *\/\n.atb-eyebrow {\n  font-family: var(--to-font-display);\n  font-weight: 500; font-size: 13px;\n  letter-spacing: 0.22em; text-transform: uppercase;\n  color: var(--to-tech-blue);\n  display: inline-flex; align-items: center; gap: 10px;\n}\n.atb-eyebrow .dot {\n  width: 6px; height: 6px; border-radius: 50%;\n  background: var(--to-tech-blue);\n  box-shadow: 0 0 12px var(--to-tech-blue);\n}\n.atb-h-display {\n  font-family: var(--to-font-display);\n  font-weight: 700;\n  font-size: clamp(32px, 4.2vw, 56px);\n  line-height: 1.05;\n  letter-spacing: -0.030em;\n  margin: 18px 0 24px;\n  color: inherit;\n}\n.atb-h-display .accent { color: var(--to-tech-blue); }\n.atb-lead {\n  font-size: 18px; line-height: 1.55;\n  color: var(--to-fg-muted);\n  max-width: 680px;\n}\n.atb-bg-dark .atb-lead { color: rgba(255,255,255,0.72); }\n\n.atb-section-head { max-width: 880px; margin: 24px auto 48px; text-align: center; }\n\n\/* ---- Botones (forzados por encima del tema) ---- *\/\n.atb-btn,\n.atb-btn:link,\n.atb-btn:visited {\n  display: inline-flex !important;\n  align-items: center !important;\n  gap: 10px !important;\n  padding: 14px 22px !important;\n  border-radius: 10px !important;\n  font-family: 'Poppins', system-ui, sans-serif !important;\n  font-weight: 600 !important;\n  font-size: 15px !important;\n  border: 1px solid transparent !important;\n  text-decoration: none !important;\n  cursor: pointer;\n  transition: all 220ms cubic-bezier(0.22,1,0.36,1);\n  white-space: nowrap;\n  line-height: 1.2 !important;\n}\n.atb-btn--primary,\n.atb-btn--primary:link,\n.atb-btn--primary:visited {\n  background: #0088CE !important;\n  color: #FFFFFF !important;\n  border-color: transparent !important;\n  box-shadow: 0 8px 24px rgba(0,136,206,0.32), inset 0 1px 0 rgba(255,255,255,0.18);\n}\n.atb-btn--primary:hover {\n  background: #0099E6 !important;\n  transform: translateY(-1px);\n}\n.atb-btn--ghost-dark,\n.atb-btn--ghost-dark:link,\n.atb-btn--ghost-dark:visited {\n  background: rgba(255,255,255,0.04) !important;\n  color: #FFFFFF !important;\n  border: 1px solid rgba(255,255,255,0.18) !important;\n}\n.atb-btn--ghost-dark:hover {\n  background: rgba(255,255,255,0.10) !important;\n  border-color: rgba(255,255,255,0.32) !important;\n}\n.atb-btn--lg { padding: 16px 28px !important; font-size: 16px !important; }\n\n\/* ---- Grid ---- *\/\n.atb-grid { display: grid; gap: 24px; position: relative; }\n.atb-grid--3 { grid-template-columns: repeat(3, 1fr); }\n.atb-grid--4 { grid-template-columns: repeat(4, 1fr); }\n\n\/* ---- Cards ---- *\/\n.atb-card {\n  position: relative;\n  border-radius: 20px;\n  padding: 32px;\n  transition: transform 220ms cubic-bezier(0.22,1,0.36,1),\n              box-shadow 220ms cubic-bezier(0.22,1,0.36,1),\n              border-color 220ms cubic-bezier(0.22,1,0.36,1);\n}\n.atb-card--light {\n  background: #FFFFFF;\n  border: 1px solid rgba(19,19,19,0.06);\n  box-shadow: 0 1px 2px rgba(10,37,50,0.04);\n}\n.atb-card--light:hover {\n  transform: translateY(-4px);\n  border-color: rgba(0,136,206,0.30);\n  box-shadow: 0 24px 48px rgba(10,37,50,0.10);\n}\n.atb-icon-tile {\n  width: 48px; height: 48px;\n  border-radius: 12px;\n  display: inline-flex; align-items: center; justify-content: center;\n  background: rgba(0,136,206,0.14);\n  color: var(--to-tech-blue);\n  border: 1px solid rgba(0,136,206,0.22);\n}\n\n\/* ---- Reveal ---- *\/\n.atb-reveal { opacity: 0; transform: translateY(16px); transition: opacity 700ms cubic-bezier(0.22,1,0.36,1), transform 700ms cubic-bezier(0.22,1,0.36,1); }\n.atb-reveal.is-in { opacity: 1; transform: translateY(0); }\n\n\/* ---- Responsive ---- *\/\n@media (max-width: 980px) {\n  .atb-grid--3, .atb-grid--4 { grid-template-columns: 1fr 1fr; }\n  .atb-two-col { grid-template-columns: 1fr !important; gap: 40px !important; }\n}\n@media (max-width: 640px) {\n  .atb-container { padding: 0 24px; }\n  .atb-grid--3, .atb-grid--4 { grid-template-columns: 1fr; }\n}\n<\/style>\n\n<script src=\"https:\/\/unpkg.com\/react@18.3.1\/umd\/react.production.min.js\" crossorigin=\"anonymous\"><\/script>\n<script src=\"https:\/\/unpkg.com\/react-dom@18.3.1\/umd\/react-dom.production.min.js\" crossorigin=\"anonymous\"><\/script>\n<script src=\"https:\/\/unpkg.com\/@babel\/standalone@7.29.0\/babel.min.js\" crossorigin=\"anonymous\"><\/script>\n\n<div id=\"atb-root\"><\/div>\n\n<script type=\"text\/babel\" data-presets=\"env,react\">\n(function () {\n  const IMG_BASE = \"https:\/\/trueomni.com\/wp-content\/uploads\/2026\/05\/\";\n\n  \/* ========== ICONS ========== *\/\n  const Ic = {\n    arrowRight: (p={}) => (<svg width={p.size||18} height={p.size||18} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>),\n    arrowUpRight: (p={}) => (<svg width={p.size||16} height={p.size||16} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M7 17 17 7M9 7h8v8\"\/><\/svg>),\n    database: (p={}) => (<svg width={p.size||22} height={p.size||22} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><ellipse cx=\"12\" cy=\"5\" rx=\"9\" ry=\"3\"\/><path d=\"M3 5v14a9 3 0 0 0 18 0V5\"\/><path d=\"M3 12a9 3 0 0 0 18 0\"\/><\/svg>),\n    smartphone: (p={}) => (<svg width={p.size||22} height={p.size||22} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\"\/><path d=\"M12 18h.01\"\/><\/svg>),\n    monitor: (p={}) => (<svg width={p.size||22} height={p.size||22} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\"\/><path d=\"M8 21h8M12 17v4\"\/><\/svg>),\n    serverStack: (p={}) => (<svg width={p.size||22} height={p.size||22} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"6\" rx=\"2\"\/><rect x=\"3\" y=\"15\" width=\"18\" height=\"6\" rx=\"2\"\/><path d=\"M7 6h.01M7 18h.01\"\/><\/svg>),\n    users: (p={}) => (<svg width={p.size||22} height={p.size||22} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>),\n    link: (p={}) => (<svg width={p.size||22} height={p.size||22} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-1 1\"\/><path d=\"M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l1-1\"\/><\/svg>),\n    rocket: (p={}) => (<svg width={p.size||22} height={p.size||22} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z\"\/><path d=\"M12 15l-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z\"\/><path d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\"\/><\/svg>),\n    target: (p={}) => (<svg width={p.size||22} height={p.size||22} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><circle cx=\"12\" cy=\"12\" r=\"6\"\/><circle cx=\"12\" cy=\"12\" r=\"2\"\/><\/svg>),\n    code: (p={}) => (<svg width={p.size||22} height={p.size||22} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg>),\n    briefcase: (p={}) => (<svg width={p.size||22} height={p.size||22} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\"\/><path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"\/><\/svg>),\n    check: (p={}) => (<svg width={p.size||16} height={p.size||16} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.25\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M5 12l5 5L20 7\"\/><\/svg>),\n  };\n\n  \/* ========== PRIMITIVES ========== *\/\n  function Eyebrow({ children, color, style }) {\n    return (\n      <span className=\"atb-eyebrow\" style={{ color, ...style }}>\n        <span className=\"dot\" style={{ background: color, boxShadow: color ? `0 0 12px ${color}` : undefined }}\/>\n        {children}\n      <\/span>\n    );\n  }\n  function Btn({ variant = \"primary\", size, children, icon, href }) {\n    const cls = [\"atb-btn\", `atb-btn--${variant}`, size === \"lg\" ? \"atb-btn--lg\" : \"\"].filter(Boolean).join(\" \");\n    if (href) {\n      return (<a href={href} className={cls}><span>{children}<\/span>{icon}<\/a>);\n    }\n    return (<button type=\"button\" className={cls}><span>{children}<\/span>{icon}<\/button>);\n  }\n  function SectionHead({ eyebrow, title, titleAccent, lead }) {\n    return (\n      <div className=\"atb-section-head\">\n        {eyebrow && <Eyebrow>{eyebrow}<\/Eyebrow>}\n        <h2 className=\"atb-h-display\" style={{ textWrap: \"pretty\" }}>\n          {title}{titleAccent && <> <span className=\"accent\">{titleAccent}<\/span><\/>}\n        <\/h2>\n        {lead && <p className=\"atb-lead\" style={{ marginLeft: \"auto\", marginRight: \"auto\" }}>{lead}<\/p>}\n      <\/div>\n    );\n  }\n  function Reveal({ children, delay = 0 }) {\n    const ref = React.useRef(null);\n    React.useEffect(() => {\n      const el = ref.current; if (!el) return;\n      const io = new IntersectionObserver((entries) => {\n        entries.forEach(e => { if (e.isIntersecting) { el.classList.add(\"is-in\"); io.unobserve(el); } });\n      }, { rootMargin: \"0px 0px -8% 0px\", threshold: 0.08 });\n      io.observe(el);\n      return () => io.disconnect();\n    }, []);\n    return (<div ref={ref} className=\"atb-reveal\" style={{ transitionDelay: `${delay}ms` }}>{children}<\/div>);\n  }\n\n  \/* ========== HERO ========== *\/\n  function Hero() {\n    return (\n      <section className=\"atb-section atb-bg-dark\" style={{ padding: 0, minHeight: 560, display: \"flex\", alignItems: \"center\" }}>\n        <div style={{ position: \"absolute\", inset: 0, zIndex: 0 }}>\n          <img src={IMG_BASE + \"atb-hero-lakeplacid.png\"} alt=\"TrueOmni outdoor kiosk in Lake Placid\"\n               style={{ width: \"115%\", height: \"100%\", objectFit: \"cover\", objectPosition: \"right center\", marginLeft: \"auto\" }}\/>\n          <div style={{ position: \"absolute\", inset: 0, background: \"linear-gradient(90deg, rgba(4,5,10,0.96) 0%, rgba(4,5,10,0.92) 38%, rgba(4,5,10,0.55) 58%, rgba(4,5,10,0.10) 100%)\" }}\/>\n        <\/div>\n        <div style={{ position: \"relative\", zIndex: 2, paddingTop: 96, paddingBottom: 96, paddingLeft: \"clamp(24px, 6vw, 88px)\", paddingRight: 24, width: \"100%\" }}>\n          <div style={{ maxWidth: 540 }}>\n            <Eyebrow color=\"#54BEF5\" style={{ marginBottom: 22 }}>AI TRIP BUILDER<\/Eyebrow>\n            <h1 style={{ margin: 0, fontFamily: \"var(--to-font-display)\", fontWeight: 800, fontSize: \"clamp(34px, 4.2vw, 58px)\", lineHeight: 1.02, letterSpacing: \"-0.032em\", color: \"#fff\", textWrap: \"balance\" }}>\n              Intelligent Planning.<br\/>Real-World<br\/>\n              <span style={{ background: \"linear-gradient(90deg, #54BEF5 0%, #0088CE 70%)\", WebkitBackgroundClip: \"text\", backgroundClip: \"text\", color: \"transparent\" }}>Outcomes.<\/span>\n            <\/h1>\n            <p style={{ marginTop: 28, fontSize: 18, lineHeight: 1.5, color: \"rgba(255,255,255,0.78)\", maxWidth: 520 }}>\n              Move beyond inspiration. AI Trip Builder works alongside AI Avatar to turn visitor preferences into dynamic, personalized itineraries in seconds \u2014 built from your live data and ready to drive bookings and local spend.\n            <\/p>\n            <div style={{ display: \"flex\", gap: 14, marginTop: 36, flexWrap: \"wrap\" }}>\n              <Btn variant=\"primary\" size=\"lg\" href=\"https:\/\/trueomni.com\/book_a_demo\/\" icon={Ic.arrowRight()}>Book a Demo<\/Btn>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/section>\n    );\n  }\n\n  \/* ========== WHY \u2014 From Interest to Itinerary ========== *\/\n  function WhyMatters() {\n    const items = [\n      { n: \"01\", t: \"Generates personalized itineraries instantly\", d: \"From a quick conversation with AI Avatar to a full plan in seconds.\" },\n      { n: \"02\", t: \"Adapts in real time\", d: \"Every input \u2014 interests, timing, behavior \u2014 reshapes the plan on the fly.\" },\n      { n: \"03\", t: \"Pulls from live inventory\", d: \"Real events, attractions, dining and bookable experiences only.\" },\n      { n: \"04\", t: \"Aligned to your destination goals\", d: \"Recommendations balance visitor interest with what your destination wants to grow.\" },\n    ];\n    return (\n      <section className=\"atb-section atb-bg-soft\" style={{ padding: \"72px 0 !important\" }}>\n        <div className=\"atb-container\">\n          <div className=\"atb-two-col\" style={{ display: \"grid\", gridTemplateColumns: \"0.95fr 1.1fr\", gap: 80, alignItems: \"center\", padding: \"60px 0\" }}>\n            <div>\n              <Eyebrow>From Interest to Itinerary<\/Eyebrow>\n              <h2 className=\"atb-h-display\" style={{ marginTop: 18 }}>\n                Visitors no longer need<br\/>to <em style={{ fontStyle: \"italic\", color: \"var(--to-grey-600)\", fontWeight: 600 }}>piece things together<\/em>.\n              <\/h2>\n              <p className=\"atb-lead\" style={{ marginTop: 12, marginBottom: 36 }}>\n                AI Trip Builder turns scattered interests into a structured, bookable plan \u2014 generated in seconds, on any surface.\n              <\/p>\n              <ol style={{ display: \"grid\", gap: 18 }}>\n                {items.map((it, i) => (\n                  <Reveal key={it.n} delay={i * 70}>\n                    <li style={{ display: \"grid\", gridTemplateColumns: \"auto 1fr\", gap: 18, paddingBottom: 18, borderBottom: i < items.length - 1 ? \"1px solid rgba(19,19,19,0.10)\" : \"none\" }}>\n                      <span style={{ fontFamily: \"var(--to-font-display)\", fontWeight: 800, fontSize: 28, letterSpacing: \"-0.04em\", color: \"var(--to-tech-blue)\", width: 44, lineHeight: 1.1 }}>{it.n}<\/span>\n                      <div>\n                        <div style={{ fontFamily: \"var(--to-font-display)\", fontWeight: 700, fontSize: 18, letterSpacing: \"-0.01em\", color: \"var(--to-black)\", lineHeight: 1.3 }}>{it.t}<\/div>\n                        <div style={{ marginTop: 6, fontSize: 14.5, lineHeight: 1.55, color: \"var(--to-grey-600)\" }}>{it.d}<\/div>\n                      <\/div>\n                    <\/li>\n                  <\/Reveal>\n                ))}\n              <\/ol>\n            <\/div>\n            <div style={{ position: \"relative\" }}>\n              <div aria-hidden style={{ position: \"absolute\", inset: -30, background: \"radial-gradient(ellipse at 50% 50%, rgba(0,136,206,0.18), transparent 65%)\", filter: \"blur(24px)\" }}\/>\n              <div style={{ position: \"relative\", borderRadius: 20, overflow: \"hidden\", boxShadow: \"0 30px 80px rgba(10,37,50,0.22)\", border: \"1px solid rgba(19,19,19,0.06)\", aspectRatio: \"4 \/ 3\", background: \"#0B0E16\" }}>\n                <img src={IMG_BASE + \"atb-kiosk-littlerock.png\"} alt=\"Little Rock CVB kiosk\" style={{ width: \"100%\", height: \"100%\", objectFit: \"cover\" }}\/>\n                <div style={{ position: \"absolute\", left: 20, bottom: 20, padding: \"10px 14px\", borderRadius: 12, background: \"rgba(8,11,18,0.78)\", backdropFilter: \"blur(14px)\", border: \"1px solid rgba(255,255,255,0.10)\", color: \"#fff\", display: \"flex\", alignItems: \"center\", gap: 10, maxWidth: \"70%\" }}>\n                  <span style={{ width: 8, height: 8, borderRadius: 999, background: \"#2BBF6A\", boxShadow: \"0 0 10px rgba(43,191,106,0.8)\", flexShrink: 0 }}\/>\n                  <div>\n                    <div style={{ fontSize: 11, letterSpacing: \"0.10em\", textTransform: \"uppercase\", color: \"rgba(255,255,255,0.55)\", fontWeight: 700 }}>In production<\/div>\n                    <div style={{ fontFamily: \"var(--to-font-display)\", fontSize: 13.5, fontWeight: 600, color: \"#fff\", marginTop: 1 }}>Little Rock Convention &amp; Visitors Bureau<\/div>\n                  <\/div>\n                <\/div>\n                <div style={{ position: \"absolute\", right: 20, top: 20, padding: \"8px 14px\", borderRadius: 999, background: \"rgba(8,11,18,0.85)\", backdropFilter: \"blur(14px)\", border: \"1px solid rgba(255,255,255,0.10)\", color: \"#fff\", fontSize: 12, fontWeight: 600, display: \"inline-flex\", alignItems: \"center\", gap: 8 }}>\n                  <span style={{ width: 6, height: 6, borderRadius: 999, background: \"var(--to-tech-blue)\" }}\/>\n                  Itinerary generated \u00b7 1.8s\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/section>\n    );\n  }\n\n  \/* ========== WHAT \u2014 Connected to Your Full Ecosystem ========== *\/\n  function WhatItDoes() {\n    const sources = [\n      { icon: Ic.monitor({ size: 18 }),     label: \"Events & festivals\",        v: \"Live calendar feeds\" },\n      { icon: Ic.smartphone({ size: 18 }),  label: \"Restaurants & local biz\",   v: \"Hours, menus, partners\" },\n      { icon: Ic.serverStack({ size: 18 }), label: \"Attractions & experiences\", v: \"Real-time availability\" },\n      { icon: Ic.database({ size: 18 }),    label: \"Hotels & lodging\",          v: \"Live inventory\" },\n      { icon: Ic.link({ size: 18 }),        label: \"Ticketing & reservations\",  v: \"Direct booking pathways\" },\n    ];\n    return (\n      <section className=\"atb-section atb-bg-dark\">\n        <div aria-hidden style={{ position: \"absolute\", inset: 0, pointerEvents: \"none\", background: \"radial-gradient(ellipse at 90% 10%, rgba(0,136,206,0.18), transparent 55%), radial-gradient(ellipse at 5% 95%, rgba(67,176,241,0.08), transparent 60%)\" }}\/>\n        <div className=\"atb-container\" style={{ padding: \"60px 40px\" }}>\n          <div className=\"atb-two-col\" style={{ display: \"grid\", gridTemplateColumns: \"1.05fr 1fr\", gap: 64, alignItems: \"stretch\" }}>\n            <Reveal>\n              <div style={{ position: \"relative\", borderRadius: 20, overflow: \"hidden\", height: \"100%\", minHeight: 520 }}>\n                <img src={IMG_BASE + \"atb-kiosk-annapolis.png\"} alt=\"Visit Annapolis kiosk\" style={{ position: \"absolute\", inset: 0, width: \"100%\", height: \"100%\", objectFit: \"cover\" }}\/>\n                <div aria-hidden style={{ position: \"absolute\", inset: 0, background: \"linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(4,5,10,0.85) 100%)\" }}\/>\n                <div style={{ position: \"absolute\", top: 20, left: 20, display: \"inline-flex\", alignItems: \"center\", gap: 10, padding: \"9px 14px\", borderRadius: 999, background: \"rgba(8,11,18,0.78)\", backdropFilter: \"blur(14px)\", border: \"1px solid rgba(255,255,255,0.14)\", color: \"#fff\", fontSize: 12, fontWeight: 600 }}>\n                  <span style={{ width: 8, height: 8, borderRadius: 999, background: \"#2BBF6A\", boxShadow: \"0 0 10px rgba(43,191,106,0.8)\" }}\/>\n                  In production \u00b7 Visit Annapolis &amp; Anne Arundel County\n                <\/div>\n                <div style={{ position: \"absolute\", left: 20, right: 20, bottom: 20, padding: \"16px 18px\", borderRadius: 14, background: \"rgba(8,11,18,0.78)\", backdropFilter: \"blur(16px)\", border: \"1px solid rgba(255,255,255,0.10)\", color: \"#fff\" }}>\n                  <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: 10 }}>\n                    <span style={{ fontSize: 11, letterSpacing: \"0.12em\", textTransform: \"uppercase\", fontWeight: 700, color: \"rgba(255,255,255,0.62)\" }}>Now syncing \u00b7 Annapolis Harbor<\/span>\n                    <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 6, fontSize: 10.5, fontWeight: 700, letterSpacing: \"0.08em\", color: \"#2BBF6A\" }}>\n                      <span style={{ width: 5, height: 5, borderRadius: 999, background: \"#2BBF6A\" }}\/>LIVE\n                    <\/span>\n                  <\/div>\n                  <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(3, 1fr)\", gap: 12 }}>\n                    {[{l:\"Events feed\",v:\"412 today\"},{l:\"Partner inv.\",v:\"3,247 pts\"},{l:\"Bookable now\",v:\"94%\"}].map(it => (\n                      <div key={it.l}>\n                        <div style={{ fontFamily: \"var(--to-font-display)\", fontWeight: 700, fontSize: 18, letterSpacing: \"-0.02em\", color: \"#fff\" }}>{it.v}<\/div>\n                        <div style={{ fontSize: 11, color: \"rgba(255,255,255,0.6)\", marginTop: 2, letterSpacing: \"0.04em\" }}>{it.l}<\/div>\n                      <\/div>\n                    ))}\n                  <\/div>\n                <\/div>\n              <\/div>\n            <\/Reveal>\n            <div style={{ display: \"flex\", flexDirection: \"column\", justifyContent: \"center\" }}>\n              <Eyebrow style={{ color: \"rgba(0,136,206,0.85)\" }}>Connected to Your Full Ecosystem<\/Eyebrow>\n              <h2 className=\"atb-h-display\" style={{ marginTop: 18, color: \"#fff\" }}>\n                Every itinerary, built from<br\/><em style={{ fontStyle: \"italic\", color: \"var(--to-tech-blue)\", fontWeight: 600 }}>your live data.<\/em>\n              <\/h2>\n              <p className=\"atb-lead\" style={{ marginTop: 14, color: \"rgba(255,255,255,0.68)\", maxWidth: 480 }}>\n                AI Trip Builder reads from the systems your destination already runs \u2014 events, partners, attractions, lodging, ticketing. Every plan it generates is real, current, and bookable.\n              <\/p>\n              <div style={{ marginTop: 28, borderTop: \"1px solid rgba(255,255,255,0.10)\" }}>\n                {sources.map((row, i) => (\n                  <Reveal key={row.label} delay={i * 60}>\n                    <div style={{ display: \"grid\", gridTemplateColumns: \"auto auto 1fr auto\", gap: 16, alignItems: \"center\", padding: \"16px 0\", borderBottom: \"1px solid rgba(255,255,255,0.10)\" }}>\n                      <span style={{ fontFamily: \"var(--to-font-display)\", fontSize: 12, fontWeight: 700, letterSpacing: \"0.12em\", color: \"rgba(255,255,255,0.42)\", width: 22 }}>{String(i+1).padStart(2,\"0\")}<\/span>\n                      <span style={{ width: 36, height: 36, borderRadius: 10, display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", background: \"rgba(0,136,206,0.12)\", border: \"1px solid rgba(0,136,206,0.25)\", color: \"var(--to-tech-blue)\" }}>{row.icon}<\/span>\n                      <div>\n                        <div style={{ fontSize: 15.5, fontWeight: 600, color: \"#fff\" }}>{row.label}<\/div>\n                        <div style={{ fontSize: 12.5, color: \"rgba(255,255,255,0.55)\", marginTop: 2 }}>{row.v}<\/div>\n                      <\/div>\n                      <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 6, fontSize: 10.5, fontWeight: 700, letterSpacing: \"0.08em\", color: \"#2BBF6A\" }}>\n                        <span style={{ width: 5, height: 5, borderRadius: 999, background: \"#2BBF6A\", boxShadow: \"0 0 8px rgba(43,191,106,0.7)\" }}\/>LIVE\n                      <\/span>\n                    <\/div>\n                  <\/Reveal>\n                ))}\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/section>\n    );\n  }\n\n  \/* ========== HOW \u2014 Driving Revenue ========== *\/\n  function HowItWorks() {\n    const cards = [\n      { num: \"01\", title: \"Surface\", icon: Ic.target(), tag: \"Featured experiences\", desc: \"Surfaces high-value partners and experiences inside every plan \u2014 turning discovery into pipeline.\", chips: [\"Partners\",\"Featured\",\"Sponsored\",\"Priority\"] },\n      { num: \"02\", title: \"Extend\", icon: Ic.link(), tag: \"Multi-stop trips\", desc: \"Encourages multi-stop itineraries that increase dwell time and spread spend across the destination.\", chips: [\"Dwell time\",\"Cross-sell\",\"Local spend\",\"Repeat visits\"] },\n      { num: \"03\", title: \"Convert\", icon: Ic.rocket(), tag: \"Direct booking\", desc: \"Connects directly to booking and ticketing pathways \u2014 every plan can become a confirmed reservation.\", chips: [\"Bookings\",\"Reservations\",\"Tickets\",\"Hand-off\"] },\n    ];\n    return (\n      <section className=\"atb-section atb-bg-soft\">\n        <div className=\"atb-container\" style={{ padding: \"60px 40px\" }}>\n          <SectionHead eyebrow=\"Driving Revenue Across the Destination\" title=\"Not just planning \u2014\" titleAccent=\"guided economic impact.\" lead=\"AI Trip Builder is designed to influence how and where visitors spend, with sponsored placements, featured experiences and direct booking pathways built in.\"\/>\n          <div className=\"atb-grid atb-grid--3\">\n            {cards.map((s, i) => (\n              <Reveal key={s.num} delay={i * 100}>\n                <div className=\"atb-card atb-card--light\" style={{ padding: 36, height: \"100%\" }}>\n                  <span className=\"atb-icon-tile\">{s.icon}<\/span>\n                  <div style={{ marginTop: 18, display: \"flex\", alignItems: \"center\", gap: 10, flexWrap: \"wrap\" }}>\n                    <h3 style={{ fontFamily: \"var(--to-font-display)\", fontWeight: 700, fontSize: 26, letterSpacing: \"-0.02em\", color: \"var(--to-black)\" }}>{s.title}<\/h3>\n                    <span style={{ fontSize: 11, fontWeight: 600, padding: \"3px 10px\", borderRadius: 999, background: \"rgba(0,136,206,0.10)\", color: \"var(--to-tech-blue)\", border: \"1px solid rgba(0,136,206,0.22)\" }}>{s.tag}<\/span>\n                  <\/div>\n                  <p style={{ margin: \"10px 0 18px\", color: \"var(--to-grey-600)\", fontSize: 14.5, lineHeight: 1.6 }}>{s.desc}<\/p>\n                  <div style={{ display: \"flex\", flexWrap: \"wrap\", gap: 6 }}>\n                    {s.chips.map(c => (<span key={c} style={{ padding: \"4px 10px\", fontSize: 12, fontWeight: 500, borderRadius: 999, background: \"var(--to-grey-100)\", color: \"var(--to-grey-800)\", border: \"1px solid rgba(19,19,19,0.06)\" }}>{c}<\/span>))}\n                  <\/div>\n                <\/div>\n              <\/Reveal>\n            ))}\n          <\/div>\n        <\/div>\n      <\/section>\n    );\n  }\n\n  \/* ========== INTEGRATIONS \u2014 Seamless Across Every Device ========== *\/\n  function Integrations() {\n    const surfaces = [\n      { icon: Ic.monitor({ size: 22 }), name: \"Web\", desc: \"Visitors start planning on your destination website \u2014 full itinerary in seconds.\" },\n      { icon: Ic.smartphone({ size: 22 }), name: \"Mobile\", desc: \"Continue on phone, share with travel companions, save for offline access.\" },\n      { icon: Ic.serverStack({ size: 22 }), name: \"Kiosk & On-Site\", desc: \"Pick up the same plan at outdoor kiosks, visitor centers and signage.\" },\n      { icon: Ic.users({ size: 22 }), name: \"AI Avatar\", desc: \"Interact through AI Avatar at any stage \u2014 voice, chat or guided flow.\" },\n    ];\n    return (\n      <section className=\"atb-section atb-bg-dark\">\n        <div className=\"atb-container\" style={{ padding: \"60px 40px\" }}>\n          <SectionHead eyebrow=\"Seamless Across Every Device\" title=\"Planning doesn't happen in one place \u2014\" titleAccent=\"your experience shouldn't either.\" lead=\"Start on web, continue on mobile, finish at the kiosk. Every surface stays in sync, and AI Avatar is available at every stage.\"\/>\n          <div className=\"atb-grid atb-grid--4\">\n            {surfaces.map((p, i) => (\n              <Reveal key={p.name} delay={i * 60}>\n                <div style={{ background: \"#fff\", borderRadius: 16, border: \"1px solid rgba(255,255,255,0.08)\", padding: 28, height: \"100%\", display: \"flex\", flexDirection: \"column\", boxShadow: \"0 18px 40px rgba(0,0,0,0.28)\" }}>\n                  <span style={{ display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 48, height: 48, borderRadius: 12, background: \"rgba(0,136,206,0.10)\", border: \"1px solid rgba(0,136,206,0.22)\", color: \"var(--to-tech-blue)\", marginBottom: 18 }}>{p.icon}<\/span>\n                  <h4 style={{ marginBottom: 6, fontFamily: \"var(--to-font-display)\", fontWeight: 700, fontSize: 18, color: \"var(--to-black)\" }}>{p.name}<\/h4>\n                  <p style={{ fontSize: 13.5, lineHeight: 1.55, color: \"var(--to-grey-600)\" }}>{p.desc}<\/p>\n                <\/div>\n              <\/Reveal>\n            ))}\n          <\/div>\n        <\/div>\n      <\/section>\n    );\n  }\n\n  \/* ========== AUDIENCE \u2014 Flexible AI ========== *\/\n  function AudienceTabs() {\n    const lanes = [\n      { id: \"engine\",  label: \"Your AI Engine\", icon: Ic.code({size:18}),     headline: \"Integrates with your existing systems.\", desc: \"Bring your own LLM provider \u2014 OpenAI, Anthropic, Azure or a custom in-house model. AI Trip Builder orchestrates planning logic on top.\", bullets: [\"Bring-your-own LLM\",\"Swap engines without rewriting flows\",\"Per-tenant model routing\",\"Privacy-aware prompt patterns\"], tint: \"#0088CE\", tintSoft: \"rgba(0,136,206,0.08)\", tintBorder: \"rgba(0,136,206,0.22)\" },\n      { id: \"content\", label: \"Your Content\",   icon: Ic.target({size:18}),   headline: \"Adapts to your content and structure.\",  desc: \"Whatever shape your destination data is in \u2014 events feeds, partner CMS, ticketing systems \u2014 AI Trip Builder maps to it without forcing a re-platform.\", bullets: [\"Connectors for major DMO platforms\",\"Custom schema mappers\",\"Bring your taxonomy and tags\",\"Partner & sponsor logic built-in\"], tint: \"#FFB000\", tintSoft: \"rgba(255,176,0,0.10)\", tintBorder: \"rgba(255,176,0,0.30)\" },\n      { id: \"scale\",   label: \"Your Portfolio\", icon: Ic.briefcase({size:18}), headline: \"Scales across destinations and properties.\", desc: \"One deployment, many destinations. Run AI Trip Builder for a single visitor center, a regional DMO, or a multi-state portfolio with shared analytics.\", bullets: [\"Multi-tenant by default\",\"Per-destination branding\",\"Roll-up analytics across portfolio\",\"Cross-destination recommendations\"], tint: \"#2BBF6A\", tintSoft: \"rgba(43,191,106,0.10)\", tintBorder: \"rgba(43,191,106,0.28)\" },\n    ];\n    return (\n      <section className=\"atb-section atb-bg-light\">\n        <div className=\"atb-container\" style={{ padding: \"60px 40px\" }}>\n          <SectionHead eyebrow=\"Flexible AI, Built for Your Strategy\" title=\"Designed to work with\" titleAccent=\"your preferred AI engine and data stack.\" lead=\"AI Trip Builder integrates with your existing systems, adapts to your content, and scales with your portfolio \u2014 without forcing trade-offs.\"\/>\n          <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(3, 1fr)\", gap: 20, alignItems: \"stretch\" }} className=\"atb-grid--3\">\n            {lanes.map((l, i) => (\n              <Reveal key={l.id} delay={i * 90}>\n                <div style={{ position: \"relative\", height: \"100%\", padding: 32, paddingTop: 56, borderRadius: 20, background: \"#fff\", border: \"1px solid rgba(19,19,19,0.08)\", boxShadow: \"0 12px 30px rgba(10,37,50,0.06)\", display: \"flex\", flexDirection: \"column\", overflow: \"hidden\" }}>\n                  <div style={{ position: \"absolute\", top: 0, left: 0, right: 0, height: 6, background: l.tint }}\/>\n                  <div style={{ position: \"absolute\", top: 20, right: 22, fontFamily: \"var(--to-font-display)\", fontWeight: 800, fontSize: 36, lineHeight: 1, letterSpacing: \"-0.04em\", color: l.tintSoft, WebkitTextStroke: `1px ${l.tintBorder}` }}>0{i+1}<\/div>\n                  <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 10, alignSelf: \"flex-start\", padding: \"8px 14px\", borderRadius: 999, background: l.tintSoft, border: `1px solid ${l.tintBorder}`, color: l.tint, fontSize: 12.5, fontWeight: 700, letterSpacing: \"0.06em\", textTransform: \"uppercase\", marginBottom: 22 }}>\n                    {l.icon}{l.label}\n                  <\/span>\n                  <h3 style={{ fontFamily: \"var(--to-font-display)\", fontWeight: 700, fontSize: 22, letterSpacing: \"-0.02em\", lineHeight: 1.18, color: \"var(--to-black)\", textWrap: \"balance\" }}>{l.headline}<\/h3>\n                  <p style={{ margin: \"12px 0 22px\", fontSize: 14.5, lineHeight: 1.6, color: \"var(--to-grey-600)\" }}>{l.desc}<\/p>\n                  <ul style={{ margin: \"auto 0 0\", display: \"grid\", gap: 10, borderTop: \"1px dashed rgba(19,19,19,0.10)\", paddingTop: 18 }}>\n                    {l.bullets.map(b => (\n                      <li key={b} style={{ display: \"flex\", alignItems: \"flex-start\", gap: 10, fontSize: 13.5, color: \"var(--to-grey-800)\", lineHeight: 1.45 }}>\n                        <span style={{ flexShrink: 0, width: 18, height: 18, borderRadius: 999, background: l.tintSoft, color: l.tint, display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", marginTop: 1 }}>{Ic.check({size:11})}<\/span>\n                        {b}\n                      <\/li>\n                    ))}\n                  <\/ul>\n                <\/div>\n              <\/Reveal>\n            ))}\n          <\/div>\n        <\/div>\n      <\/section>\n    );\n  }\n\n  \/* ========== FINAL CTA ========== *\/\n  function FinalCTA() {\n    return (\n      <section className=\"atb-section atb-bg-dark\" style={{ background: \"radial-gradient(ellipse at 50% 0%, rgba(0,136,206,0.30) 0%, transparent 55%), linear-gradient(180deg, #04050A 0%, #06070C 100%) !important\" }}>\n        <div style={{ position: \"absolute\", inset: 0, backgroundImage: \"linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px)\", backgroundSize: \"64px 64px\", maskImage: \"radial-gradient(ellipse at 50% 50%, #000 30%, transparent 70%)\", WebkitMaskImage: \"radial-gradient(ellipse at 50% 50%, #000 30%, transparent 70%)\" }}\/>\n        <div className=\"atb-container atb-container--narrow\" style={{ padding: \"80px 40px\", textAlign: \"center\" }}>\n          <Eyebrow color=\"#54BEF5\">Ready When You Are<\/Eyebrow>\n          <h2 style={{ margin: \"20px auto 22px\", fontFamily: \"var(--to-font-display)\", fontWeight: 800, fontSize: \"clamp(34px, 5vw, 56px)\", lineHeight: 1.05, letterSpacing: \"-0.032em\", color: \"#fff\", textWrap: \"balance\", maxWidth: 900 }}>\n            Turn inspiration into<br\/>\n            <span style={{ background: \"linear-gradient(90deg, #54BEF5, #0088CE)\", WebkitBackgroundClip: \"text\", backgroundClip: \"text\", color: \"transparent\" }}>measurable economic impact.<\/span>\n          <\/h2>\n          <p style={{ margin: \"0 auto 36px\", fontSize: 17, color: \"rgba(255,255,255,0.72)\", lineHeight: 1.5, maxWidth: 620 }}>\n            See how AI Trip Builder transforms visitor interest into structured itineraries \u2014 and itineraries into bookings, partner revenue and lasting destination intelligence.\n          <\/p>\n          <div style={{ marginTop: 28, fontSize: 13, color: \"rgba(255,255,255,0.5)\" }}>\n            Trusted by DMOs, visitor centers, waterfronts and smart cities \u00b7 sales@trueomni.com\n          <\/div>\n        <div style={{ display: \"inline-flex\", gap: 14, flexWrap: \"wrap\", justifyContent: \"center\", marginTop: 28 }}>\n            <Btn variant=\"primary\" size=\"lg\" href=\"https:\/\/trueomni.com\/book_a_demo\/\" icon={Ic.arrowRight()}>Book a Demo<\/Btn>\n            <Btn variant=\"ghost-dark\" size=\"lg\" href=\"https:\/\/trueomni.com\/contact-us\/\">Talk to Sales<\/Btn>\n          <\/div>\n        <\/div>\n      <\/section>\n    );\n  }\n\n  \/* ========== APP ========== *\/\n  function App() {\n    return (\n      <>\n        <Hero\/>\n        <WhyMatters\/>\n        <WhatItDoes\/>\n        <HowItWorks\/>\n        <Integrations\/>\n        <AudienceTabs\/>\n        <FinalCTA\/>\n      <\/>\n    );\n  }\n\n  ReactDOM.createRoot(document.getElementById(\"atb-root\")).render(<App\/>);\n})();\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","protected":false},"excerpt":{"rendered":"","protected":false},"author":4,"featured_media":56684,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"inline_featured_image":false,"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"_thinkrank_schema_form_data":"","_thinkrank_selected_schema_type":"","_thinkrank_additional_schemas":"","_thinkrank_canonical_url":"","_thinkrank_og_title":"","_thinkrank_og_description":"","_thinkrank_og_image":"","_thinkrank_twitter_title":"","_thinkrank_twitter_description":"","_thinkrank_twitter_image":"","_thinkrank_imported_from":"","_thinkrank_focus_keywords":[],"_thinkrank_focus_keyword":"","_thinkrank_robots_meta_enabled":0,"_thinkrank_robots_meta":"","_thinkrank_advanced_robots_meta":"","_thinkrank_exclude_from_search":0,"_thinkrank_exclude_from_archives":0,"_thinkrank_primary_category":0,"footnotes":""},"class_list":["post-46201","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.9 (Yoast SEO v28.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Itinerary Builder - TrueOmni<\/title>\n<meta name=\"description\" content=\"Use TrueOmni&#039;s AI Itinerary Builder for personalized travel planning. Enhance your travel experience with AI-powered interactive itinerary\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/trueomni.com\/french\/ai-itinerary-builder\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Itinerary Builder\" \/>\n<meta property=\"og:description\" content=\"Use TrueOmni&#039;s AI Itinerary Builder for personalized travel planning. Enhance your travel experience with AI-powered interactive itinerary\" \/>\n<meta property=\"og:url\" content=\"https:\/\/trueomni.com\/french\/ai-itinerary-builder\/\" \/>\n<meta property=\"og:site_name\" content=\"TrueOmni\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/trueomni\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-06T22:45:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/trueomni.com\/wp-content\/uploads\/2026\/05\/kiosk-annapolis-1024x768.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/trueomni.com\\\/ai-itinerary-builder\\\/\",\"url\":\"https:\\\/\\\/trueomni.com\\\/ai-itinerary-builder\\\/\",\"name\":\"Itinerary Builder - TrueOmni\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/trueomni.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/trueomni.com\\\/ai-itinerary-builder\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/trueomni.com\\\/ai-itinerary-builder\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/trueomni.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/kiosk-annapolis.png\",\"datePublished\":\"2024-07-08T17:54:16+00:00\",\"dateModified\":\"2026-05-06T22:45:28+00:00\",\"description\":\"Use TrueOmni's AI Itinerary Builder for personalized travel planning. Enhance your travel experience with AI-powered interactive itinerary\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/trueomni.com\\\/ai-itinerary-builder\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/trueomni.com\\\/ai-itinerary-builder\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/trueomni.com\\\/ai-itinerary-builder\\\/#primaryimage\",\"url\":\"https:\\\/\\\/trueomni.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/kiosk-annapolis.png\",\"contentUrl\":\"https:\\\/\\\/trueomni.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/kiosk-annapolis.png\",\"width\":1448,\"height\":1086},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/trueomni.com\\\/ai-itinerary-builder\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\\\/\\\/trueomni.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Itinerary Builder\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/trueomni.com\\\/#website\",\"url\":\"http:\\\/\\\/trueomni.com\\\/\",\"name\":\"TrueOmni\",\"description\":\"TrueOmni Self-Service Digital Customer Experience Company\",\"publisher\":{\"@id\":\"http:\\\/\\\/trueomni.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/trueomni.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"http:\\\/\\\/trueomni.com\\\/#organization\",\"name\":\"TRUE OMNI LLC\",\"alternateName\":\"TRUE OMNI LLC\",\"url\":\"http:\\\/\\\/trueomni.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"http:\\\/\\\/trueomni.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"http:\\\/\\\/trueomni.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/TrueOmni-Logo-2.png\",\"contentUrl\":\"http:\\\/\\\/trueomni.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/TrueOmni-Logo-2.png\",\"width\":1000,\"height\":230,\"caption\":\"TRUE OMNI LLC\"},\"image\":{\"@id\":\"http:\\\/\\\/trueomni.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/trueomni\\\/\"],\"description\":\"TrueOmni is the leader in digital self-service solutions, offering innovative kiosks, digital signage, and mobile marketing platforms. Enhance customer engagement and streamline operations with our cutting-edge technology tailored for the hospitality, retail, and tourism industries.\",\"email\":\"info@trueomni.com\",\"telephone\":\"8333006664\",\"legalName\":\"True Omni LLC\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Itinerary Builder - TrueOmni","description":"Use TrueOmni's AI Itinerary Builder for personalized travel planning. Enhance your travel experience with AI-powered interactive itinerary","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/trueomni.com\/french\/ai-itinerary-builder\/","og_locale":"fr_FR","og_type":"article","og_title":"Itinerary Builder","og_description":"Use TrueOmni's AI Itinerary Builder for personalized travel planning. Enhance your travel experience with AI-powered interactive itinerary","og_url":"https:\/\/trueomni.com\/french\/ai-itinerary-builder\/","og_site_name":"TrueOmni","article_publisher":"https:\/\/www.facebook.com\/trueomni\/","article_modified_time":"2026-05-06T22:45:28+00:00","og_image":[{"width":1024,"height":768,"url":"https:\/\/trueomni.com\/wp-content\/uploads\/2026\/05\/kiosk-annapolis-1024x768.png","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/trueomni.com\/ai-itinerary-builder\/","url":"https:\/\/trueomni.com\/ai-itinerary-builder\/","name":"Itinerary Builder - TrueOmni","isPartOf":{"@id":"http:\/\/trueomni.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/trueomni.com\/ai-itinerary-builder\/#primaryimage"},"image":{"@id":"https:\/\/trueomni.com\/ai-itinerary-builder\/#primaryimage"},"thumbnailUrl":"https:\/\/trueomni.com\/wp-content\/uploads\/2026\/05\/kiosk-annapolis.png","datePublished":"2024-07-08T17:54:16+00:00","dateModified":"2026-05-06T22:45:28+00:00","description":"Use TrueOmni's AI Itinerary Builder for personalized travel planning. Enhance your travel experience with AI-powered interactive itinerary","breadcrumb":{"@id":"https:\/\/trueomni.com\/ai-itinerary-builder\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/trueomni.com\/ai-itinerary-builder\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/trueomni.com\/ai-itinerary-builder\/#primaryimage","url":"https:\/\/trueomni.com\/wp-content\/uploads\/2026\/05\/kiosk-annapolis.png","contentUrl":"https:\/\/trueomni.com\/wp-content\/uploads\/2026\/05\/kiosk-annapolis.png","width":1448,"height":1086},{"@type":"BreadcrumbList","@id":"https:\/\/trueomni.com\/ai-itinerary-builder\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/trueomni.com\/"},{"@type":"ListItem","position":2,"name":"Itinerary Builder"}]},{"@type":"WebSite","@id":"http:\/\/trueomni.com\/#website","url":"http:\/\/trueomni.com\/","name":"TrueOmni","description":"TrueOmni, entreprise sp\u00e9cialis\u00e9e dans l&#039;exp\u00e9rience client num\u00e9rique en libre-service","publisher":{"@id":"http:\/\/trueomni.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/trueomni.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"http:\/\/trueomni.com\/#organization","name":"TRUE OMNI LLC","alternateName":"TRUE OMNI LLC","url":"http:\/\/trueomni.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"http:\/\/trueomni.com\/#\/schema\/logo\/image\/","url":"http:\/\/trueomni.com\/wp-content\/uploads\/2024\/06\/TrueOmni-Logo-2.png","contentUrl":"http:\/\/trueomni.com\/wp-content\/uploads\/2024\/06\/TrueOmni-Logo-2.png","width":1000,"height":230,"caption":"TRUE OMNI LLC"},"image":{"@id":"http:\/\/trueomni.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/trueomni\/"],"description":"TrueOmni is the leader in digital self-service solutions, offering innovative kiosks, digital signage, and mobile marketing platforms. Enhance customer engagement and streamline operations with our cutting-edge technology tailored for the hospitality, retail, and tourism industries.","email":"info@trueomni.com","telephone":"8333006664","legalName":"True Omni LLC"}]}},"_links":{"self":[{"href":"https:\/\/trueomni.com\/french\/wp-json\/wp\/v2\/pages\/46201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trueomni.com\/french\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/trueomni.com\/french\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/trueomni.com\/french\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/trueomni.com\/french\/wp-json\/wp\/v2\/comments?post=46201"}],"version-history":[{"count":130,"href":"https:\/\/trueomni.com\/french\/wp-json\/wp\/v2\/pages\/46201\/revisions"}],"predecessor-version":[{"id":56853,"href":"https:\/\/trueomni.com\/french\/wp-json\/wp\/v2\/pages\/46201\/revisions\/56853"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/trueomni.com\/french\/wp-json\/wp\/v2\/media\/56684"}],"wp:attachment":[{"href":"https:\/\/trueomni.com\/french\/wp-json\/wp\/v2\/media?parent=46201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}