Skip to content
✓ Editorially reviewed by Karen Robertson, MS, CPDT-KSA, Canadian Training Reviewer — Last reviewed May 16, 2026
TheraPetic Canada | Service Dog & Support Animal Documentation .network-links,.network-grid,.network-card,.network-link,.net-card{display:none!important}:root { --brand-navy: #1a365d; --brand-navy-dark: #0f2341; --brand-gold: #c9a227; --brand-gold-light: #e5c255; --brand-gold-dark: #a68520; --bg-primary: #fafafa; --bg-secondary: #ffffff; --bg-tertiary: #f5f5f5; --bg-card: #ffffff; --text-primary: #1a1a1a; --text-secondary: #4a4a4a; --text-muted: #6b7280; --border-color: #e5e7eb; --shadow-color: rgba(0, 0, 0, 0.08); --shadow-lg: rgba(0, 0, 0, 0.12); --overlay-bg: rgba(255, 255, 255, 0.95); --font-display: 'Playfair Display', Georgia, serif; --font-body: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif; --space-xs: 0.25rem; --space-sm: 0.5rem; --space-md: 1rem; --space-lg: 1.5rem; --space-xl: 2rem; --space-2xl: 3rem; --space-3xl: 4rem; --radius-sm: 6px; --radius-md: 12px; --radius-lg: 20px; --radius-xl: 28px; --transition-fast: 150ms ease; --transition-base: 250ms ease; } [data-theme="dark"] { --bg-primary: #0f172a; --bg-secondary: #1e293b; --bg-tertiary: #162032; --bg-card: #1e293b; --text-primary: #f8fafc; --text-secondary: #cbd5e1; --text-muted: #94a3b8; --border-color: #334155; --shadow-color: rgba(0, 0, 0, 0.3); --shadow-lg: rgba(0, 0, 0, 0.4); --overlay-bg: rgba(15, 23, 42, 0.95); } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; font-size: 16px; } body { font-family: var(--font-body); background-color: var(--bg-primary); color: var(--text-primary); line-height: 1.7; transition: background-color var(--transition-base), color var(--transition-base); overflow-x: hidden; } img { max-width: 100%; height: auto; display: block; } a { color: inherit; text-decoration: none; transition: color var(--transition-fast); } button { font-family: inherit; cursor: pointer; border: none; background: none; } .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 var(--space-lg); } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } /* Header */ .header { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: var(--overlay-bg); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-bottom: 1px solid var(--border-color); transition: all var(--transition-base); } .header-inner { display: flex; align-items: center; justify-content: space-between; height: 72px; gap: var(--space-md); } .logo { display: flex; align-items: center; gap: var(--space-sm); flex-shrink: 0; } .logo img { height: 48px; width: auto; } .logo-text { font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; color: var(--brand-navy); } [data-theme="dark"] .logo-text { color: var(--brand-gold); } .nav-desktop { display: none; } @media (min-width: 1024px) { .nav-desktop { display: flex; align-items: center; gap: var(--space-xl); } } .nav-links { display: flex; align-items: center; gap: var(--space-lg); list-style: none; } .nav-link { font-size: 0.9rem; font-weight: 500; color: var(--text-secondary); padding: var(--space-sm) 0; position: relative; transition: color var(--transition-fast); cursor: pointer; } .nav-btn-signup { display: inline-flex; align-items: center; padding: var(--space-sm) var(--space-lg); background: var(--brand-gold); color: white; font-size: 0.85rem; font-weight: 600; border-radius: var(--radius-sm); transition: all var(--transition-fast); } .nav-btn-signup:hover { background: var(--brand-gold-dark); transform: translateY(-1px); } .nav-link:hover { color: var(--brand-navy); } [data-theme="dark"] .nav-link:hover { color: var(--brand-gold); } .nav-dropdown { position: relative; } .nav-dropdown-trigger { display: flex; align-items: center; gap: var(--space-xs); } .nav-dropdown-trigger svg { transition: transform var(--transition-fast); } .nav-dropdown:hover .nav-dropdown-trigger svg { transform: rotate(180deg); } .nav-dropdown-menu { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); min-width: 200px; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-md); box-shadow: 0 10px 40px var(--shadow-lg); opacity: 0; visibility: hidden; transition: all var(--transition-fast); padding: var(--space-sm) 0; margin-top: var(--space-sm); } .nav-dropdown:hover .nav-dropdown-menu { opacity: 1; visibility: visible; } .nav-dropdown-item { display: block; padding: var(--space-sm) var(--space-lg); font-size: 0.875rem; color: var(--text-secondary); transition: all var(--transition-fast); } .nav-dropdown-item:hover { background: var(--bg-tertiary); color: var(--brand-navy); } [data-theme="dark"] .nav-dropdown-item:hover { color: var(--brand-gold); } .header-controls { display: flex; align-items: center; gap: var(--space-sm); } /* Theme Toggle */ .theme-toggle { width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--bg-tertiary); border: 1px solid var(--border-color); transition: all var(--transition-fast); cursor: pointer; } .theme-toggle:hover { background: var(--brand-navy); border-color: var(--brand-navy); } .theme-toggle:hover svg { color: white; } .theme-toggle svg { width: 20px; height: 20px; color: var(--text-secondary); transition: color var(--transition-fast); } .theme-toggle .icon-sun { display: block; } .theme-toggle .icon-moon { display: none; } [data-theme="dark"] .theme-toggle .icon-sun { display: none; } [data-theme="dark"] .theme-toggle .icon-moon { display: block; } /* Language Selector */ .lang-selector { position: relative; } .lang-btn { display: flex; align-items: center; gap: var(--space-xs); padding: var(--space-sm) var(--space-md); background: var(--bg-tertiary); border: 1px solid var(--border-color); border-radius: var(--radius-sm); font-size: 0.875rem; font-weight: 500; color: var(--text-secondary); transition: all var(--transition-fast); cursor: pointer; } .lang-btn:hover { border-color: var(--brand-navy); color: var(--brand-navy); } [data-theme="dark"] .lang-btn:hover { border-color: var(--brand-gold); color: var(--brand-gold); } .lang-btn svg { width: 16px; height: 16px; } .lang-dropdown { position: absolute; top: 100%; right: 0; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-sm); box-shadow: 0 10px 40px var(--shadow-lg); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity var(--transition-fast), visibility var(--transition-fast), transform var(--transition-fast); margin-top: var(--space-xs); min-width: 160px; overflow: hidden; z-index: 100; } .lang-selector.open .lang-dropdown, .lang-selector:hover .lang-dropdown, .lang-selector:focus-within .lang-dropdown { opacity: 1; visibility: visible; transform: translateY(0); } .lang-option { display: flex; align-items: center; gap: var(--space-sm); padding: var(--space-sm) var(--space-md); font-size: 0.875rem; color: var(--text-secondary); cursor: pointer; transition: all var(--transition-fast); width: 100%; text-align: left; background: none; border: none; } .lang-option:hover { background: var(--bg-tertiary); color: var(--brand-navy); } [data-theme="dark"] .lang-option:hover { color: var(--brand-gold); } .lang-option.active { background: var(--brand-navy); color: white; } [data-theme="dark"] .lang-option.active { background: var(--brand-gold); color: var(--brand-navy-dark); } /* Buttons */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-sm); padding: var(--space-sm) var(--space-lg); font-size: 0.9rem; font-weight: 600; border-radius: var(--radius-sm); transition: all var(--transition-fast); white-space: nowrap; } .btn-primary { background: var(--brand-navy); color: white; box-shadow: 0 4px 14px rgba(26, 54, 93, 0.3); } .btn-primary:hover { background: var(--brand-navy-dark); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(26, 54, 93, 0.4); } [data-theme="dark"] .btn-primary { background: var(--brand-gold); color: var(--brand-navy-dark); box-shadow: 0 4px 14px rgba(201, 162, 39, 0.3); } [data-theme="dark"] .btn-primary:hover { background: var(--brand-gold-light); } .btn-secondary { background: transparent; color: var(--brand-navy); border: 2px solid var(--brand-navy); } .btn-secondary:hover { background: var(--brand-navy); color: white; } [data-theme="dark"] .btn-secondary { color: var(--brand-gold); border-color: var(--brand-gold); } [data-theme="dark"] .btn-secondary:hover { background: var(--brand-gold); color: var(--brand-navy-dark); } .btn-gold { background: linear-gradient(135deg, var(--brand-gold) 0%, var(--brand-gold-dark) 100%); color: white; box-shadow: 0 4px 14px rgba(201, 162, 39, 0.4); } .btn-gold:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(201, 162, 39, 0.5); } .btn-lg { padding: var(--space-md) var(--space-xl); font-size: 1rem; } /* Mobile Menu Toggle */ .mobile-menu-toggle { display: flex; flex-direction: column; gap: 5px; padding: var(--space-sm); background: var(--bg-tertiary); border: 1px solid var(--border-color); border-radius: var(--radius-sm); } @media (min-width: 1024px) { .mobile-menu-toggle { display: none; } } .mobile-menu-toggle span { width: 22px; height: 2px; background: var(--text-primary); border-radius: 2px; transition: all var(--transition-fast); } .mobile-menu-toggle.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); } .mobile-menu-toggle.active span:nth-child(2) { opacity: 0; } .mobile-menu-toggle.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); } /* Mobile Navigation */ .nav-mobile { position: fixed; top: 72px; left: 0; right: 0; bottom: 0; background: var(--bg-secondary); z-index: 999; padding: var(--space-xl); transform: translateX(100%); transition: transform var(--transition-base); overflow-y: auto; } .nav-mobile.active { transform: translateX(0); } .nav-mobile-links { list-style: none; display: flex; flex-direction: column; gap: var(--space-md); } .nav-mobile-link { display: block; padding: var(--space-md); font-size: 1.1rem; font-weight: 500; color: var(--text-primary); border-radius: var(--radius-sm); transition: all var(--transition-fast); } .nav-mobile-link:hover { background: var(--bg-tertiary); color: var(--brand-navy); } [data-theme="dark"] .nav-mobile-link:hover { color: var(--brand-gold); } .nav-mobile-submenu { padding-left: var(--space-lg); margin-top: var(--space-sm); display: flex; flex-direction: column; gap: var(--space-xs); } .nav-mobile-submenu a { display: block; padding: var(--space-sm) var(--space-md); font-size: 0.95rem; color: var(--text-secondary); border-radius: var(--radius-sm); } .nav-mobile-submenu a:hover { background: var(--bg-tertiary); } .nav-mobile-cta { margin-top: var(--space-xl); display: flex; flex-direction: column; gap: var(--space-md); } .nav-mobile-cta .btn { width: 100%; justify-content: center; } /* Hero Section */ .hero { padding-top: calc(72px + var(--space-3xl)); padding-bottom: var(--space-3xl); background: linear-gradient(180deg, var(--bg-secondary) 0%, var(--bg-primary) 100%); position: relative; overflow: hidden; } .hero::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(ellipse at 70% 20%, rgba(201, 162, 39, 0.08) 0%, transparent 50%), radial-gradient(ellipse at 30% 80%, rgba(26, 54, 93, 0.05) 0%, transparent 50%); pointer-events: none; } [data-theme="dark"] .hero::before { background: radial-gradient(ellipse at 70% 20%, rgba(201, 162, 39, 0.1) 0%, transparent 50%), radial-gradient(ellipse at 30% 80%, rgba(26, 54, 93, 0.15) 0%, transparent 50%); } .hero-inner { display: grid; grid-template-columns: 1fr; gap: var(--space-2xl); align-items: center; position: relative; z-index: 1; } @media (min-width: 768px) { .hero-inner { grid-template-columns: 1fr 1fr; gap: var(--space-3xl); } } .hero-content { text-align: center; } @media (min-width: 768px) { .hero-content { text-align: left; } } .hero-badge { display: inline-flex; align-items: center; gap: var(--space-sm); padding: var(--space-xs) var(--space-md); background: rgba(201, 162, 39, 0.1); border: 1px solid rgba(201, 162, 39, 0.3); border-radius: 100px; font-size: 0.8rem; font-weight: 600; color: var(--brand-gold-dark); margin-bottom: var(--space-lg); } [data-theme="dark"] .hero-badge { background: rgba(201, 162, 39, 0.15); color: var(--brand-gold); } .hero-badge svg { width: 16px; height: 16px; } .hero-title { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.25rem); font-weight: 600; line-height: 1.15; margin-bottom: var(--space-lg); color: var(--text-primary); } .hero-title span { color: var(--brand-navy); } [data-theme="dark"] .hero-title span { color: var(--brand-gold); } .hero-description { font-size: 1.1rem; color: var(--text-secondary); margin-bottom: var(--space-xl); max-width: 500px; } @media (min-width: 768px) { .hero-description { margin-left: 0; margin-right: auto; } } .hero-cta { display: flex; flex-direction: column; gap: var(--space-md); margin-bottom: var(--space-xl); } @media (min-width: 480px) { .hero-cta { flex-direction: row; justify-content: center; } } @media (min-width: 768px) { .hero-cta { justify-content: flex-start; } } .hero-trust { display: flex; flex-wrap: wrap; gap: var(--space-lg); justify-content: center; } @media (min-width: 768px) { .hero-trust { justify-content: flex-start; } } .trust-item { display: flex; align-items: center; gap: var(--space-sm); font-size: 0.85rem; color: var(--text-muted); } .trust-item svg { width: 18px; height: 18px; color: var(--brand-gold); } .hero-image { position: relative; display: flex; justify-content: center; } .hero-image-container { position: relative; width: 100%; max-width: 480px; aspect-ratio: 4/3; border-radius: var(--radius-xl); overflow: hidden; box-shadow: 0 20px 60px var(--shadow-lg); } .hero-image-container img { width: 100%; height: 100%; object-fit: cover; } .hero-stats { position: absolute; bottom: -20px; left: 50%; transform: translateX(-50%); display: flex; gap: var(--space-md); background: var(--bg-card); padding: var(--space-md) var(--space-lg); border-radius: var(--radius-lg); box-shadow: 0 10px 40px var(--shadow-lg); border: 1px solid var(--border-color); } .stat-item { text-align: center; padding: 0 var(--space-md); } .stat-item:not(:last-child) { border-right: 1px solid var(--border-color); } .stat-number { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; color: var(--brand-navy); } [data-theme="dark"] .stat-number { color: var(--brand-gold); } .stat-label { font-size: 0.75rem; color: var(--text-muted); white-space: nowrap; } /* Sections */ .section { padding: var(--space-3xl) 0; } .section-header { text-align: center; max-width: 700px; margin: 0 auto var(--space-2xl); } .section-label { display: inline-block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: var(--brand-gold); margin-bottom: var(--space-sm); } .section-title { font-family: var(--font-display); font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: 600; line-height: 1.2; margin-bottom: var(--space-md); color: var(--text-primary); } .section-description { font-size: 1.05rem; color: var(--text-secondary); } /* How It Works */ .how-it-works { background: var(--bg-secondary); } .steps-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-xl); } @media (min-width: 768px) { .steps-grid { grid-template-columns: repeat(4, 1fr); } .steps-grid.steps-3 { grid-template-columns: repeat(3, 1fr); } } .step-card { position: relative; text-align: center; padding: var(--space-xl); } .step-number { width: 56px; height: 56px; background: linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-navy-dark) 100%); color: white; font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto var(--space-lg); box-shadow: 0 8px 24px rgba(26, 54, 93, 0.3); } [data-theme="dark"] .step-number { background: linear-gradient(135deg, var(--brand-gold) 0%, var(--brand-gold-dark) 100%); color: var(--brand-navy-dark); box-shadow: 0 8px 24px rgba(201, 162, 39, 0.3); } .step-title { font-size: 1.1rem; font-weight: 600; margin-bottom: var(--space-sm); color: var(--text-primary); } .step-description { font-size: 0.95rem; color: var(--text-secondary); } @media (min-width: 768px) { .step-card:not(:last-child)::after { content: ''; position: absolute; top: 52px; right: -30px; width: 60px; height: 2px; background: linear-gradient(90deg, var(--brand-gold) 0%, transparent 100%); } } /* Pricing */ .pricing { background: var(--bg-primary); } .pricing-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-lg); max-width: 1000px; margin: 0 auto; } @media (min-width: 768px) { .pricing-grid { grid-template-columns: repeat(3, 1fr); } } .pricing-card { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: var(--space-xl); position: relative; transition: all var(--transition-base); } .pricing-card:hover { transform: translateY(-4px); box-shadow: 0 20px 60px var(--shadow-lg); } .pricing-card.featured { border-color: var(--brand-gold); box-shadow: 0 10px 40px rgba(201, 162, 39, 0.15); } .pricing-card.featured::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--brand-gold) 0%, var(--brand-gold-light) 100%); border-radius: var(--radius-lg) var(--radius-lg) 0 0; } .pricing-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--brand-gold); color: white; font-size: 0.75rem; font-weight: 600; padding: var(--space-xs) var(--space-md); border-radius: 100px; white-space: nowrap; } .pricing-header { text-align: center; margin-bottom: var(--space-lg); padding-bottom: var(--space-lg); border-bottom: 1px solid var(--border-color); } .pricing-name { font-size: 1.25rem; font-weight: 600; margin-bottom: var(--space-xs); color: var(--text-primary); } .pricing-delivery { font-size: 0.85rem; color: var(--text-muted); margin-bottom: var(--space-md); } .pricing-price { display: flex; align-items: baseline; justify-content: center; gap: var(--space-xs); } .pricing-currency { font-size: 1.25rem; font-weight: 500; color: var(--text-secondary); } .pricing-amount { font-family: var(--font-display); font-size: 3rem; font-weight: 700; color: var(--brand-navy); } [data-theme="dark"] .pricing-amount { color: var(--brand-gold); } .pricing-period { font-size: 0.9rem; color: var(--text-muted); } .pricing-features { list-style: none; margin-bottom: var(--space-xl); } .pricing-features li { display: flex; align-items: flex-start; gap: var(--space-sm); padding: var(--space-sm) 0; font-size: 0.95rem; color: var(--text-secondary); } .pricing-features li svg { width: 20px; height: 20px; color: var(--brand-gold); flex-shrink: 0; margin-top: 2px; } .pricing-cta { width: 100%; } .pricing-note { text-align: center; margin-top: var(--space-xl); padding: var(--space-lg); background: var(--bg-tertiary); border-radius: var(--radius-md); } .pricing-note p { font-size: 0.9rem; color: var(--text-secondary); margin-bottom: var(--space-xs); } .pricing-note p:last-child { margin-bottom: 0; } .pricing-note strong { color: var(--text-primary); } /* What You'll Receive */ .wyr-section { padding: var(--space-xl) 0 0; } .wyr-tabs { display: flex; justify-content: center; gap: 4px; margin-bottom: var(--space-xl); background: var(--bg-tertiary); border-radius: 28px; padding: 4px; max-width: 420px; margin-left: auto; margin-right: auto; } .wyr-tab { flex: 1; padding: 8px 12px; border: none; border-radius: 24px; font-family: var(--font-body); font-size: 0.85rem; font-weight: 600; cursor: pointer; transition: all 0.25s ease; background: transparent; color: var(--text-muted); text-align: center; line-height: 1.3; } .wyr-tab:hover { color: var(--text-primary); } .wyr-tab.active { background: var(--bg-card); color: var(--text-primary); box-shadow: 0 2px 8px var(--shadow-color); } .wyr-tab-price { display: block; font-size: 0.7rem; font-weight: 400; color: var(--text-muted); margin-top: 1px; } .wyr-tab.active .wyr-tab-price { color: var(--text-secondary); } .wyr-grid { display: grid; gap: 20px; grid-template-columns: repeat(2, 1fr); transition: all 0.3s ease; } @media (max-width: 768px) { .wyr-grid { grid-template-columns: 1fr; } } @media (min-width: 900px) { .wyr-grid.wyr-cols-4 { grid-template-columns: repeat(4, 1fr); } } .wyr-card { background: var(--bg-card); border: 1.5px solid var(--border-color); border-radius: var(--radius-lg); overflow: hidden; transition: all 0.3s ease; cursor: pointer; position: relative; opacity: 0; transform: translateY(14px); animation: wyrFadeIn 0.4s ease forwards; } .wyr-card:nth-child(1) { animation-delay: 0s; } .wyr-card:nth-child(2) { animation-delay: 0.06s; } .wyr-card:nth-child(3) { animation-delay: 0.12s; } .wyr-card:nth-child(4) { animation-delay: 0.18s; } @keyframes wyrFadeIn { to { opacity: 1; transform: translateY(0); } } .wyr-card:hover { transform: translateY(-4px); box-shadow: 0 20px 60px var(--shadow-lg); border-color: var(--brand-gold); } .wyr-badge { position: absolute; top: 10px; left: 10px; z-index: 2; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; padding: 3px 10px; border-radius: 14px; } .wyr-badge-pm { background: #e8f5e9; color: #2d8a56; } [data-theme="dark"] .wyr-badge-pm { background: rgba(45,138,86,0.15); color: #5cc98a; } .wyr-badge-ult { background: linear-gradient(135deg, var(--brand-gold), var(--brand-gold-light)); color: var(--brand-navy-dark); } .wyr-card-img { width: 100%; aspect-ratio: 16/11; overflow: hidden; position: relative; background: var(--bg-tertiary); } .wyr-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .wyr-card:hover .wyr-card-img img { transform: scale(1.04); } .wyr-zoom-hint { position: absolute; bottom: 8px; right: 8px; background: rgba(0,0,0,0.5); color: #fff; font-size: 0.66rem; font-weight: 500; padding: 3px 8px; border-radius: 10px; backdrop-filter: blur(4px); display: flex; align-items: center; gap: 4px; opacity: 0; transition: opacity 0.2s; } .wyr-card:hover .wyr-zoom-hint { opacity: 1; } .wyr-card-body { padding: 14px 16px 16px; } .wyr-card-title { font-family: var(--font-display); font-size: 0.95rem; font-weight: 600; color: var(--text-primary); margin-bottom: 4px; } .wyr-card-desc { font-size: 0.82rem; color: var(--text-secondary); line-height: 1.5; } .wyr-callout { margin-top: var(--space-xl); padding: 20px 22px; border-radius: var(--radius-lg); border: 1.5px solid var(--border-color); background: var(--bg-card); display: flex; align-items: center; gap: 16px; } .wyr-callout-icon { flex-shrink: 0; width: 44px; height: 44px; background: #e8f5e9; border-radius: 50%; display: flex; align-items: center; justify-content: center; } [data-theme="dark"] .wyr-callout-icon { background: rgba(45,138,86,0.15); } .wyr-callout-icon svg { width: 22px; height: 22px; } .wyr-callout-text h4 { font-family: var(--font-display); font-size: 0.92rem; font-weight: 600; color: var(--text-primary); margin: 0 0 2px; } .wyr-callout-text p { font-size: 0.82rem; color: var(--text-secondary); line-height: 1.5; margin: 0; } .wyr-cta-btn { margin-left: auto; flex-shrink: 0; background: var(--brand-navy); color: #fff; font-size: 0.8rem; font-weight: 600; padding: 9px 18px; border-radius: 20px; border: none; cursor: pointer; transition: all 0.2s; white-space: nowrap; text-decoration: none; display: inline-block; } .wyr-cta-btn:hover { background: var(--brand-gold); color: var(--brand-navy-dark); transform: translateY(-1px); } [data-theme="dark"] .wyr-cta-btn { background: var(--brand-gold); color: var(--brand-navy-dark); } @media (max-width: 768px) { .wyr-callout { flex-direction: column; text-align: center; gap: 10px; } .wyr-cta-btn { margin-left: 0; width: 100%; text-align: center; } } .wyr-disclaimer { text-align: center; margin-top: var(--space-md); font-size: 0.76rem; color: var(--text-muted); font-style: italic; } .wyr-lightbox { position: fixed; inset: 0; z-index: 999999; background: rgba(0,0,0,0.88); display: none; align-items: center; justify-content: center; padding: 20px; } [data-theme="dark"] .wyr-lightbox { background: rgba(0,0,0,0.92); } .wyr-lightbox.open { display: flex; } .wyr-lightbox-inner { position: relative; max-width: 860px; width: 100%; display: flex; flex-direction: column; align-items: center; } .wyr-lightbox-img { max-width: 100%; max-height: 82vh; object-fit: contain; border-radius: var(--radius-md); box-shadow: 0 20px 60px rgba(0,0,0,0.4); } .wyr-lightbox-cap { margin-top: 10px; color: #fff; font-size: 0.9rem; font-weight: 500; text-align: center; opacity: 0.85; } .wyr-lightbox-close { position: absolute; top: -36px; right: 0; background: rgba(255,255,255,0.12); border: none; border-radius: 50%; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; cursor: pointer; } .wyr-lightbox-close:hover { background: rgba(255,255,255,0.25); } .wyr-lightbox-close svg { width: 15px; height: 15px; stroke: #fff; } .wyr-grid.wyr-switching .wyr-card { opacity: 0; transform: translateY(14px); } /* Training Plus Add-On */ .tp-plus-section { margin-top: var(--space-2xl); } .tp-plus-label { text-align: center; font-family: var(--font-display); font-size: 1.1rem; font-weight: 600; color: var(--brand-gold); margin-bottom: var(--space-md); letter-spacing: 0.03em; } .tp-plus-card { background: var(--bg-card); border: 2.5px solid var(--brand-gold); border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 8px 32px rgba(201,162,39,0.12); position: relative; transition: all 0.3s; } .tp-plus-card:hover { transform: translateY(-4px); box-shadow: 0 12px 48px rgba(201,162,39,0.22); } .tp-plus-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--brand-gold-dark), var(--brand-gold), var(--brand-gold-light), var(--brand-gold)); background-size: 300% 100%; animation: goldShimmer 4s ease infinite; } @keyframes goldShimmer { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .tp-plus-badge { background: linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-navy-dark) 100%); color: #fff; text-align: center; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; padding: 9px 16px; } .tp-plus-inner { display: flex; gap: 0; } .tp-plus-img { flex: 0 0 280px; overflow: hidden; cursor: pointer; } .tp-plus-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; } .tp-plus-card:hover .tp-plus-img img { transform: scale(1.04); } .tp-plus-info { flex: 1; padding: 24px 22px; } .tp-plus-info h3 { font-family: var(--font-display); font-size: 1.15rem; font-weight: 600; margin-bottom: 8px; color: var(--text-primary); } .tp-plus-info > p { font-size: 0.85rem; color: var(--text-secondary); margin-bottom: 14px; line-height: 1.5; } .tp-plus-features { list-style: none; margin-bottom: 16px; } .tp-plus-features li { display: flex; align-items: flex-start; gap: 8px; padding: 4px 0; font-size: 0.83rem; color: var(--text-secondary); } .tp-plus-features .chk { color: var(--brand-gold); font-weight: 700; flex-shrink: 0; } .tp-plus-pricing { flex: 0 0 180px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px 20px; background: linear-gradient(180deg, rgba(201,162,39,0.03), rgba(201,162,39,0.08)); border-left: 1px solid var(--border-color); text-align: center; } .tp-plus-amount { font-family: var(--font-display); font-size: 2.2rem; font-weight: 700; color: var(--brand-gold); line-height: 1; } .tp-plus-per { font-size: 0.76rem; color: var(--text-muted); margin: 4px 0 14px; } .tp-plus-add-btn { display: inline-block; background: var(--brand-gold); color: var(--brand-navy-dark); font-size: 0.84rem; font-weight: 700; padding: 11px 22px; border: none; border-radius: 10px; cursor: pointer; transition: all 0.2s; white-space: nowrap; text-decoration: none; } .tp-plus-add-btn:hover { background: var(--brand-gold-light); transform: translateY(-1px); text-decoration: none; } .tp-plus-footer { display: flex; justify-content: center; gap: 18px; flex-wrap: wrap; padding: 12px 16px; background: rgba(201,162,39,0.04); border-top: 1px solid var(--border-color); font-size: 0.73rem; color: var(--text-muted); } @media (max-width: 768px) { .tp-plus-inner { flex-direction: column; } .tp-plus-img { flex: none; max-height: 200px; } .tp-plus-pricing { flex: none; border-left: none; border-top: 1px solid var(--border-color); padding: 20px; } } /* Provinces */ .provinces { background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%); position: relative; overflow: hidden; } .provinces::before { content: ''; position: absolute; top: 0; right: 0; width: 400px; height: 400px; background: radial-gradient(circle, rgba(201, 162, 39, 0.08) 0%, transparent 70%); pointer-events: none; } .provinces-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-md); } @media (min-width: 640px) { .provinces-grid { grid-template-columns: repeat(3, 1fr); } } @media (min-width: 1024px) { .provinces-grid { grid-template-columns: repeat(5, 1fr); } } .province-card { background: var(--bg-card); border: 2px solid var(--border-color); border-radius: var(--radius-lg); padding: var(--space-xl) var(--space-lg); text-align: center; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: hidden; } .province-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--brand-navy) 0%, var(--brand-gold) 100%); transform: scaleX(0); transition: transform 0.3s ease; } .province-card:hover::before { transform: scaleX(1); } .province-card:hover { border-color: var(--brand-gold); transform: translateY(-8px); box-shadow: 0 20px 40px rgba(201, 162, 39, 0.15); } .province-card svg { width: 40px; height: 40px; color: var(--brand-navy); margin: 0 auto var(--space-md); transition: all 0.3s ease; } [data-theme="dark"] .province-card svg { color: var(--brand-gold); } .province-card:hover svg { transform: scale(1.1); color: var(--brand-gold); } .province-name { font-size: 1rem; font-weight: 700; color: var(--text-primary); margin-bottom: var(--space-xs); } .province-tagline { font-size: 0.75rem; color: var(--text-muted); } .province-card.featured { background: linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-navy-dark) 100%); border-color: var(--brand-gold); } .province-card.featured .province-name, .province-card.featured svg { color: white; } .province-card.featured .province-tagline { color: rgba(255,255,255,0.7); } .province-card.featured:hover { transform: translateY(-8px) scale(1.02); box-shadow: 0 20px 40px rgba(26, 54, 93, 0.3); } /* Airlines */ .airlines { background: var(--bg-primary); } .airlines-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-md); } @media (min-width: 640px) { .airlines-grid { grid-template-columns: repeat(3, 1fr); } } @media (min-width: 1024px) { .airlines-grid { grid-template-columns: repeat(6, 1fr); } } .airline-card { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: var(--space-lg); text-align: center; transition: all var(--transition-fast); } .airline-card:hover { border-color: var(--brand-navy); box-shadow: 0 8px 24px var(--shadow-color); } [data-theme="dark"] .airline-card:hover { border-color: var(--brand-gold); } .airline-name { font-size: 0.9rem; font-weight: 600; color: var(--text-primary); margin-bottom: var(--space-xs); } .airline-status { font-size: 0.75rem; color: var(--text-muted); } .airline-status.accepted { color: #10b981; } .airlines-cta { text-align: center; margin-top: var(--space-xl); } /* Trust Section */ .trust-section { background: linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-navy-dark) 100%); color: white; } .trust-section .section-label { color: var(--brand-gold); } .trust-section .section-title { color: white; } .trust-section .section-description { color: rgba(255, 255, 255, 0.8); } .trust-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-lg); } @media (min-width: 768px) { .trust-grid { grid-template-columns: repeat(2, 1fr); } } @media (min-width: 1024px) { .trust-grid { grid-template-columns: repeat(4, 1fr); } } .trust-card { background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: var(--radius-md); padding: var(--space-xl); text-align: center; transition: all var(--transition-fast); } .trust-card:hover { background: rgba(255, 255, 255, 0.15); transform: translateY(-2px); } .trust-icon { width: 48px; height: 48px; background: var(--brand-gold); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto var(--space-md); } .trust-icon svg { width: 24px; height: 24px; color: var(--brand-navy-dark); } .trust-title { font-size: 1rem; font-weight: 600; margin-bottom: var(--space-sm); } .trust-text { font-size: 0.9rem; color: rgba(255, 255, 255, 0.7); } /* Scam Warning */ .scam-warning { background: var(--bg-tertiary); } .scam-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-xl); } @media (min-width: 768px) { .scam-grid { grid-template-columns: 1fr 1fr; } } .scam-card { background: var(--bg-card); border-radius: var(--radius-lg); padding: var(--space-xl); border: 1px solid var(--border-color); } .scam-card.danger { border-color: #ef4444; border-left-width: 4px; } .scam-card.success { border-color: #10b981; border-left-width: 4px; } .scam-card-title { display: flex; align-items: center; gap: var(--space-sm); font-size: 1.1rem; font-weight: 600; margin-bottom: var(--space-lg); } .scam-card.danger .scam-card-title { color: #ef4444; } .scam-card.success .scam-card-title { color: #10b981; } .scam-list { list-style: none; } .scam-list li { display: flex; align-items: flex-start; gap: var(--space-sm); padding: var(--space-sm) 0; font-size: 0.95rem; color: var(--text-secondary); } .scam-list li svg { width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; } .scam-card.danger .scam-list li svg { color: #ef4444; } .scam-card.success .scam-list li svg { color: #10b981; } /* FAQ */ .faq { background: var(--bg-secondary); } .faq-list { max-width: 800px; margin: 0 auto; } .faq-item { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-md); margin-bottom: var(--space-md); overflow: hidden; transition: all var(--transition-fast); } .faq-item:hover { border-color: var(--brand-gold); } .faq-question { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: var(--space-lg); text-align: left; font-size: 1rem; font-weight: 600; color: var(--text-primary); cursor: pointer; transition: all var(--transition-fast); } .faq-question:hover { color: var(--brand-navy); } [data-theme="dark"] .faq-question:hover { color: var(--brand-gold); } .faq-question svg { width: 20px; height: 20px; color: var(--text-muted); transition: transform var(--transition-fast); flex-shrink: 0; } .faq-item.active .faq-question svg { transform: rotate(180deg); color: var(--brand-gold); } .faq-answer { max-height: 0; overflow: hidden; transition: max-height var(--transition-base); } .faq-answer-content { padding: 0 var(--space-lg) var(--space-lg); font-size: 0.95rem; color: var(--text-secondary); line-height: 1.7; } .faq-item.active .faq-answer { max-height: 500px; } /* Reviews */ .reviews { background: var(--bg-primary); } .reviews-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-lg); } @media (min-width: 768px) { .reviews-grid { grid-template-columns: repeat(3, 1fr); } } .review-card { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: var(--space-xl); transition: all var(--transition-fast); } .review-card:hover { box-shadow: 0 10px 40px var(--shadow-color); } .review-stars { display: flex; gap: 2px; margin-bottom: var(--space-md); } .review-stars svg { width: 20px; height: 20px; fill: var(--brand-gold); color: var(--brand-gold); } .review-text { font-size: 0.95rem; color: var(--text-secondary); margin-bottom: var(--space-lg); font-style: italic; } .review-source { display: flex; align-items: center; gap: var(--space-sm); font-size: 0.85rem; font-weight: 600; color: var(--text-muted); } /* CTA Section */ .cta-section { background: var(--bg-secondary); text-align: center; } .cta-box { background: linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-navy-dark) 100%); border-radius: var(--radius-xl); padding: var(--space-3xl) var(--space-xl); color: white; position: relative; overflow: hidden; } .cta-box::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(ellipse at 30% 30%, rgba(201, 162, 39, 0.2) 0%, transparent 50%); pointer-events: none; } .cta-content { position: relative; z-index: 1; } .cta-title { font-family: var(--font-display); font-size: clamp(1.5rem, 4vw, 2.25rem); font-weight: 600; margin-bottom: var(--space-md); } .cta-description { font-size: 1.05rem; color: rgba(255, 255, 255, 0.8); margin-bottom: var(--space-xl); max-width: 600px; margin-left: auto; margin-right: auto; } .cta-buttons { display: flex; flex-direction: column; gap: var(--space-md); justify-content: center; align-items: center; } @media (min-width: 480px) { .cta-buttons { flex-direction: row; } } .cta-section .btn-gold { background: var(--brand-gold); color: var(--brand-navy-dark); } .cta-section .btn-secondary { color: white; border-color: white; } .cta-section .btn-secondary:hover { background: white; color: var(--brand-navy); } /* Footer */ .footer { background: var(--bg-tertiary); padding: var(--space-3xl) 0 var(--space-lg); border-top: 1px solid var(--border-color); } .footer-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-2xl); margin-bottom: var(--space-2xl); } @media (min-width: 768px) { .footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr; } } .footer-brand { max-width: 300px; } .footer-logo { display: flex; align-items: center; gap: var(--space-sm); margin-bottom: var(--space-md); } .footer-logo img { height: 40px; } .footer-description { font-size: 0.9rem; color: var(--text-secondary); margin-bottom: var(--space-lg); } .footer-contact { display: flex; flex-direction: column; gap: var(--space-sm); } .footer-contact a { display: flex; align-items: center; gap: var(--space-sm); font-size: 0.9rem; color: var(--text-secondary); transition: color var(--transition-fast); } .footer-contact a:hover { color: var(--brand-navy); } [data-theme="dark"] .footer-contact a:hover { color: var(--brand-gold); } .footer-contact svg { width: 18px; height: 18px; } .footer-column h4 { font-size: 0.9rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-primary); margin-bottom: var(--space-lg); } .footer-links { list-style: none; display: flex; flex-direction: column; gap: var(--space-sm); } .footer-links a { font-size: 0.9rem; color: var(--text-secondary); transition: color var(--transition-fast); } .footer-links a:hover { color: var(--brand-navy); } [data-theme="dark"] .footer-links a:hover { color: var(--brand-gold); } .footer-bottom { display: flex; flex-direction: column; gap: var(--space-md); padding-top: var(--space-xl); border-top: 1px solid var(--border-color); text-align: center; } @media (min-width: 768px) { .footer-bottom { flex-direction: row; justify-content: space-between; text-align: left; } } .footer-copyright { font-size: 0.85rem; color: var(--text-muted); } .footer-legal { display: flex; gap: var(--space-lg); } .footer-legal a { font-size: 0.85rem; color: var(--text-muted); transition: color var(--transition-fast); } .footer-legal a:hover { color: var(--text-primary); } .footer-network { background: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: var(--space-lg); margin-top: var(--space-xl); text-align: center; } .footer-network p { font-size: 0.85rem; color: var(--text-muted); margin-bottom: var(--space-sm); } .footer-network strong { color: var(--text-primary); } .network-links { display: flex; flex-wrap: wrap; gap: var(--space-sm); justify-content: center; } .network-links a { font-size: 0.8rem; color: var(--text-secondary); padding: var(--space-xs) var(--space-sm); background: var(--bg-tertiary); border-radius: var(--radius-sm); transition: all var(--transition-fast); } .network-links a:hover { background: var(--brand-navy); color: white; } [data-theme="dark"] .network-links a:hover { background: var(--brand-gold); color: var(--brand-navy-dark); } /* Animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .animate-fade-in { animation: fadeInUp 0.6s ease forwards; } /* Accessibility */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } html { scroll-behavior: auto; } } :focus-visible { outline: 2px solid var(--brand-gold); outline-offset: 2px; } .skip-link { position: absolute; top: -40px; left: 0; background: var(--brand-navy); color: white; padding: var(--space-sm) var(--space-md); z-index: 9999; transition: top var(--transition-fast); } .skip-link:focus { top: 0; }
Trusted Since 2016 • 10+ Years Serving Canadians

Service Dog & Support Animal Documentation for Canadians

Get the letters, forms, and documentation you need to live and travel with your service dog or emotional support animal. Clinical evaluations by licensed healthcare professionals.

501(c)(3) Nonprofit
100% Refund Guarantee
Secure & Confidential
Happy dog owner with service dog in Canada
10+
Years
50K+
Clients
4.8★
Rating
50,000+
People Helped
4.7 ★
Avg. Rating
10+
Years of Service
501(c)(3)
Verified Nonprofit

How It Works

Get your service dog or support animal documentation in three simple steps. Same-day service, no long waits.

1

Free 3-Minute Screening

Complete a quick anonymous questionnaire. It's free, confidential, and takes just 3 minutes.

2

Instant Review & Evaluation

Your screening is immediately reviewed. If appropriate, connect with a licensed mental health professional for clinical evaluation.

3

Same-Day Documentation

Once approved, receive your letters, airline forms, and optional registration materials the same day.

#tpAskAi .tpa-link{display:inline-flex;align-items:center;gap:10px;padding:14px 20px;background:var(--bg-card);border:1.5px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:.95rem;font-weight:600;text-decoration:none;transition:all .25s;cursor:pointer;min-width:150px;justify-content:center;} #tpAskAi .tpa-link:hover{border-color:var(--brand-gold);background:var(--bg-tertiary);transform:translateY(-3px);box-shadow:0 8px 40px var(--shadow-lg);text-decoration:none;} #tpAskAi .tpa-link.tpa-feat{border-color:var(--brand-gold);border-width:2px;} #tpAskAi .tpa-fr,#tpAskAi .tpa-es{display:none;} #tpAskAi .tpa-en{display:inline-flex;} html[lang="fr"] #tpAskAi .tpa-en{display:none;} html[lang="fr"] #tpAskAi .tpa-fr{display:inline-flex;} html[lang="es"] #tpAskAi .tpa-en{display:none;} html[lang="es"] #tpAskAi .tpa-es{display:inline-flex;} @media(max-width:480px){#tpAskAi .tpa-link{padding:12px 12px;font-size:.82rem;min-width:110px;gap:7px;}}
Transparency You Can Verify

Don't Take Our Word for It — Ask AI

Choose any AI assistant. They'll research TheraPetic® Canada independently and give you an honest summary.

Choose Your Package

All prices in Canadian dollars. Screening is always free, and you only pay if approved by a licensed provider.

Basic

Electronic Delivery

$ 140 CAD
  • Personalized Letters
  • Service Animal Airline Forms
  • Evaluated & Signed by Licensed Clinical Doctor
  • QR Code Letter Validation
  • Letters Valid for 1 Year
Get Started

Ultimate

Physical + Electronic

$ 280 CAD
  • Everything in Premium, plus:
  • Holographic ID Card (Physical Copy)
  • Identifying Leash & Medal Tag
  • Unlimited Personalization
Get Started

Screening is always FREE -- no obligation to proceed

You only pay if approved by a licensed provider

100% satisfaction guarantee on all packages

What You'll Receive

Every document is signed by a Licensed Clinical Doctor, fully compliant with federal law, and instantly verifiable. Click any image to enlarge.

Sample compliant letter from a Licensed Clinical Doctor
Enlarge

Fully Compliant Letter

Personalized letter on official letterhead, signed by a Licensed Clinical Doctor. Includes DSM-5 diagnosis, effective and expiration dates, licensing credentials, and a unique verification code.

2-step letter verification with QR code
Enlarge

2-Step Fraud Prevention

Every letter includes a QR code and unique verification code. Landlords and airlines scan or visit verify.mypsd.org to instantly confirm your document is authentic and current.

Premium & Ultimate
Registration certificate and digital ID card
Enlarge

Registration Certificate & Digital ID Card

Registration certificate with your animal's photo, handler details, and registry number. Includes a digital ID card with QR verification.

Ultimate Only
TheraPetic branded identifying leash and medal tag
Enlarge

Identifying Leash & Medal Tag

TheraPetic® branded navy leash with “Service/Support Animal” text and a red “Access Required” medal tag. Identifies your animal in public and signals your legal access rights.

All Plans Include

Personalized letters, Service Animal airline forms, and every document signed by a Licensed Clinical Doctor. Electronic delivery — same day.

Start Free Screening

Sample documents shown. Actual letters are personalized to your situation and signed by your assigned Licensed Clinical Doctor.

🐕 Service Dog Training Plus
★ ADD TO ANY PACKAGE -- SERVICE DOGS ONLY ★
Service Dog Training Plus -- certified trainer reviews video of your dog performing tasks

Service Dog Training Plus

Already trained your service dog to perform tasks? A certified professional trainer reviews video of your dog, scores each skill, and issues a verifiable training certificate that never expires.

  • Certified trainer reviews video of your dog's tasks
  • Individual skill scoring & professional assessment
  • Training certificate with verification code
  • Document never expires -- one-time purchase
  • No in-person visit required -- submit from home
C$210
One-time · Never expires
Add Training Plus

🍁 Laws by Province & Territory

Service dog and support animal laws vary across Canada. Select your province to discover your specific rights and protections.

Canadian Airline Policies

We help you prepare the correct documentation for major Canadian airlines. Submit forms at least 48 hours before departure.

Air Canada
Service Dogs Accepted
WestJet
Service Dogs Accepted
Porter Airlines
Service Dogs Accepted
Flair Airlines
Service Dogs Accepted
Air Transat
Service Dogs Accepted
Sunwing
Service Dogs Accepted

The TheraPetic Difference

We're a registered nonprofit with over 10 years of experience helping Canadians with service dog and support animal documentation.

Nonprofit Organization

Registered 501(c)(3) nonprofit. We prioritize your wellbeing over profit.

Licensed Professionals

Clinical evaluations by Licensed Clinical Doctors in your province.

Privacy Protected

HIPAA-compliant systems protect your personal and health information.

10+ Years Experience

Serving Canadians since 2016 with verified reviews on Google, Facebook, and Yelp.

How to Spot Service Animal Scams

The service animal letter industry has a fraud problem. Here's how to tell legitimate services from scams.

🚩 Red Flags -- Avoid Services That:

  • Claim to "register" or "certify" your animal (no official registry exists)
  • Offer instant approval without a real evaluation
  • Emphasize ID cards, vests, or certificates as main products
  • Hide their pricing or business identity

✅ TheraPetic Provides:

  • Connection to Licensed Clinical Doctors
  • Real clinical evaluations (not just a questionnaire)
  • Transparent pricing before you commit
  • Verifiable nonprofit status (501(c)(3))

Our Clinical Team

Every article is written by our team and clinically reviewed. Meet the experts behind our content.

Ryan Gaughan, BA, CSDT #6202
Ryan Gaughan, BA, CSDT #6202
Executive Director · Author
Dr. Patrick Fisher, PhD, NCC
Dr. Patrick Fisher, PhD, NCC
Founder · Clinical Director · The Service Animal Expert™

Frequently Asked Questions

Quick answers to the most common questions about service dogs and support animals in Canada.

Service dogs are trained to perform specific tasks related to a person's disability (like alerting to anxiety attacks or providing mobility assistance). They have public access rights. Emotional support animals (ESAs) provide comfort through companionship but aren't trained for specific tasks. In Canada, ESAs have housing rights under provincial human rights codes but limited public access rights compared to service dogs.
No. Our Licensed Clinical Doctors conduct real clinical evaluations. They only approve letters when it's clinically appropriate. If you don't qualify, you pay nothing. We believe this protects the integrity of the service/support animal system and ensures our clients receive legitimate documentation that will be respected.
Yes! Canadian airlines accommodate service dogs in the cabin under the Canadian Transportation Agency's accessibility regulations. You'll need to submit documentation at least 48 hours before your flight. We help you prepare the correct forms for Air Canada, WestJet, Porter, and other carriers. Note that ESA policies vary by airline -- some Canadian carriers are more accommodating than others.
Most clients receive their documentation within 24-48 hours of completing their clinical evaluation. Electronic delivery means you can download your letters and forms immediately upon approval. Physical items (ID cards, tags, leashes) ship within 3-5 business days.
No. There is no official government registry for service dogs or ESAs in Canada. Beware of websites claiming to provide "official certification" or mandatory registration -- these don't exist. What matters is having a legitimate letter from a licensed healthcare professional. Our optional registration service is for convenience and verification only, not because it's legally required.
Canadian pricing: Basic $140 CAD, Premium $210 CAD, Ultimate $280 CAD. Training Plus add-on is $210 CAD. We accept PayPal for Canadian dollar transactions. All packages include personalized letters and service animal forms signed by a Licensed Clinical Doctor, with same-day electronic delivery.
Provincial human rights codes prohibit discrimination based on disability in housing. If you have valid clinical documentation establishing a disability-related need for your support animal, your landlord must provide a reasonable accommodation. You can file a human rights complaint with your provincial tribunal if denied.
Yes. TheraPetic Canada provides full clinical services, documentation, and client support in English, French, and Spanish. Our Canadian Training Reviewer, Karen Robertson, MS, CPDT-KSA, oversees provincial compliance. Our website at therapetic.ca includes language toggles for all three languages.

Published by Our Founder

Part of The Invisible Series — exploring the unseen forces that shape disability, law, identity, and the human-animal bond.

The Invisible Bond by Dr. Patrick Fisher, PhD
From Our Clinical Director

The Invisible Bond

Exploring the Therapeutic Power of Emotional Support Animals

By Dr. Patrick Fisher, PhDThe Service Animal Expert™

The Invisible Disability by Dr. Patrick Fisher, PhD
From Our Clinical Director

The Invisible Disability

Exploring the Hidden Toll of Unseen Conditions in a World Built for What It Can See

By Dr. Patrick Fisher, PhDThe Service Animal Expert™

See the full series →

From Our Experts

7 Essential Ontario Support Animal Housing Rights Under the Human Rights Code
Blog
7 Essential Ontario Support Animal Housing Rights Under the Human Rights Code
Learn your Ontario support animal housing rights under the Human Rights Code. Complete guide to accommodation requests, tribunal procedures, and landlord obligations in 2026.
Apr 17, 2026
7 Essential Facts About Canada's Accessible Transportation Regulations Every Traveler Should Know
Blog
7 Essential Facts About Canada's Accessible Transportation Regulations Every Traveler Should Know
Canada's accessible transportation regulations (ATPDR) protect travelers with disabilities across air, rail, and ferry services. Learn your rights, filing complaints, and practical travel tips.
Apr 15, 2026
7 Signs of Legitimate Support Animal Documentation in Canada: A Landlord's Complete Guide
Blog
7 Signs of Legitimate Support Animal Documentation in Canada: A Landlord's Complete Guide
Learn to identify legitimate support animal documentation in Canada. This landlord's guide covers provincial requirements, red flags, and verification steps.
Apr 13, 2026

What Our Clients Say

Verified reviews from real Canadian clients on independent platforms.

Ready to Get Started?

Take our free 5-minute screening to see if you qualify for service dog or emotional support animal documentation. No obligation, completely confidential.

// Apply saved theme IMMEDIATELY (no flash of wrong theme). Safe to run before DOMContentLoaded // because document.documentElement always exists. (function() { try { var saved = localStorage.getItem('theme') || 'light'; document.documentElement.setAttribute('data-theme', saved); } catch (e) { /* localStorage blocked (Safari private mode) -- fall back to default */ } })(); document.addEventListener('DOMContentLoaded', function() { // Theme Toggle var themeToggle = document.getElementById('themeToggle'); var html = document.documentElement; if (themeToggle) { themeToggle.addEventListener('click', function() { var t = html.getAttribute('data-theme') === 'light' ? 'dark' : 'light'; html.setAttribute('data-theme', t); try { localStorage.setItem('theme', t); } catch (e) {} }); } // Language System -- UPDATED with Basic/Premium/Ultimate + WYR keys var translations = { en: { 'nav.resources': 'Resources', 'nav.faq': 'Common Questions', 'nav.guide': 'Service Dog Guide', 'nav.about': 'About Us', 'nav.provinces': 'Provincial Laws', 'nav.allProvinces': 'All Provinces →', 'nav.airlines': 'Airlines', 'nav.login': 'Client Login', 'nav.signup': 'Sign Up', 'hero.badge': 'Trusted Since 2016 • 10+ Years Serving Canadians', 'hero.title': 'Service Dog & Support Animal Documentation for Canadians', 'hero.description': 'Get the letters, forms, and documentation you need to live and travel with your service dog or emotional support animal. Clinical evaluations by licensed healthcare professionals.', 'cta.screening': 'Start Free Screening', 'cta.getStarted': 'Get Started', 'trust.nonprofit': '501(c)(3) Nonprofit', 'trust.refund': '100% Refund Guarantee', 'trust.secure': 'Secure & Confidential', 'stats.years': 'Years', 'stats.clients': 'Clients', 'stats.rating': 'Rating', 'howItWorks.label': 'Simple Process', 'howItWorks.title': 'How It Works', 'howItWorks.desc': 'Get your service dog or support animal documentation in three simple steps.', 'step1.title': 'Free 3-Minute Screening', 'step1.desc': 'Complete an anonymous questionnaire. Free, confidential, takes just 3 minutes.', 'step2.title': 'Instant Review & Evaluation', 'step2.desc': 'Your screening is reviewed immediately. If you qualify, connect with a licensed provider.', 'step3.title': 'Same-Day Documentation', 'step3.desc': 'Receive your letters and forms the same day you are approved.', 'pricing.label': 'Transparent Pricing', 'pricing.title': 'Choose Your Package', 'pricing.desc': 'All prices in Canadian dollars. Screening is always free.', 'pricing.basic': 'Basic', 'pricing.premium': 'Premium', 'pricing.ultimate': 'Ultimate', 'pricing.electronic': 'Electronic Delivery', 'pricing.physical': 'Physical + Electronic', 'pricing.popular': 'Most Popular', 'pricing.note1': 'Screening is always FREE — no obligation', 'pricing.note2': 'You only pay if approved', 'pricing.note3': '100% satisfaction guarantee', 'feat.letters': 'Personalized Letters', 'feat.airline': 'Service Animal Airline Forms', 'feat.doctor': 'Evaluated & Signed by Licensed Clinical Doctor', 'feat.qr': 'QR Code Letter Validation', 'feat.valid': 'Letters Valid for 1 Year', 'feat.allbasic': 'Everything in Basic, plus:', 'feat.registry': 'Lifetime Registry & Certificate', 'feat.digitalid': 'Digital ID Card (PDF Download)', 'feat.priority': 'Priority Support', 'feat.allpremium': 'Everything in Premium, plus:', 'feat.holoid': 'Holographic ID Card (Physical Copy)', 'feat.leash': 'Identifying Leash & Medal Tag', 'feat.unlimited': 'Unlimited Personalization', 'wyr.label': 'See Your Documents', 'wyr.title': "What You'll Receive", 'wyr.desc': 'Every document is signed by a Licensed Clinical Doctor, fully compliant with federal law, and instantly verifiable. Click any image to enlarge.', 'wyr.letter': 'Fully Compliant Letter', 'wyr.letterDesc': 'Personalized letter on official letterhead, signed by a Licensed Clinical Doctor. Includes DSM-5 diagnosis, effective and expiration dates, licensing credentials, and a unique verification code.', 'wyr.verify': '2-Step Fraud Prevention', 'wyr.verifyDesc': 'Every letter includes a QR code and unique verification code. Landlords and airlines scan or visit verify.mypsd.org to instantly confirm your document is authentic and current.', 'wyr.pmBadge': 'Premium & Ultimate', 'wyr.ultBadge': 'Ultimate Only', 'wyr.regid': 'Registration Certificate & Digital ID Card', 'wyr.regidDesc': "Registration certificate with your animal’s photo, handler details, and registry number. Includes a digital ID card with QR verification.", 'wyr.leashTitle': 'Identifying Leash & Medal Tag', 'wyr.leashDesc': 'TheraPetic® branded navy leash with “Service/Support Animal” text and a red “Access Required” medal tag.', 'wyr.disclaimer': 'Sample documents shown. Actual letters are personalized to your situation and signed by your assigned Licensed Clinical Doctor.', 'plus.label': '🐕 Service Dog Training Plus', 'plus.badge': '★ ADD TO ANY PACKAGE — SERVICE DOGS ONLY ★', 'plus.title': 'Service Dog Training Plus', 'plus.desc': 'Already trained your service dog to perform tasks? A certified professional trainer reviews video of your dog, scores each skill, and issues a verifiable training certificate that never expires.', 'plus.f1': "Certified trainer reviews video of your dog’s tasks", 'plus.f2': 'Individual skill scoring & professional assessment', 'plus.f3': 'Training certificate with verification code', 'plus.f4': 'Document never expires — one-time purchase', 'plus.f5': 'No in-person visit required — submit from home', 'plus.per': 'One-time · Never expires', 'plus.cta': 'Add Training Plus', 'plus.foot1': 'Service dogs only', 'plus.foot2': 'Submit videos from your phone', 'plus.foot3': 'Verifiable at officialservicedog.com', 'provinces.label': 'Know Your Rights', 'provinces.title': '🇨🇦 Laws by Province & Territory', 'provinces.desc': 'Service dog laws vary across Canada. Click your province to learn your rights.', 'airlines.label': 'Travel Ready', 'airlines.title': 'Canadian Airline Policies', 'airlines.desc': 'We help you prepare documentation for major Canadian airlines.', 'airlines.accepted': 'Service Dogs Accepted', 'airlines.viewAll': 'View All Airline Policies', 'trust.label': 'Why Trust Us', 'trust.title': 'The TheraPetic Difference', 'trust.desc': 'Registered nonprofit with 10+ years helping Canadians.', 'trust.item1.title': 'Nonprofit Organization', 'trust.item1.text': '501(c)(3) nonprofit. Your wellbeing over profit.', 'trust.item2.title': 'Licensed Professionals', 'trust.item2.text': 'Clinical evaluations by licensed providers.', 'trust.item3.title': 'Privacy Protected', 'trust.item3.text': 'HIPAA-compliant systems.', 'trust.item4.title': '10+ Years Experience', 'trust.item4.text': 'Serving Canadians since 2016.', 'scam.label': 'Protect Yourself', 'scam.title': 'How to Spot Service Animal Scams', 'scam.desc': 'Tell legitimate services from scams.', 'scam.redFlags': '🚩 Red Flags — Avoid Services That:', 'scam.greenFlags': '✅ TheraPetic Provides:', 'faq.label': 'Common Questions', 'faq.title': 'Frequently Asked Questions', 'faq.desc': 'Quick answers about service dogs and support animals in Canada.', 'faq.q1': "What's the difference between a service dog and an emotional support animal?", 'faq.q2': 'Does everyone who applies get approved?', 'faq.q3': 'Can I fly with my service dog in Canada?', 'faq.q4': 'How quickly can I get my documentation?', 'faq.q5': 'Are there registration requirements in Canada?', 'reviews.label': 'Real Reviews', 'reviews.title': 'What Our Clients Say', 'reviews.desc': 'Verified reviews from real Canadian clients.', 'askAi.label': 'Transparency You Can Verify', 'askAi.title': "Don't Take Our Word for It — Ask AI", 'askAi.desc': "Choose any AI assistant. They'll research TheraPetic® Canada independently and give you an honest summary.", 'books.title': 'Published by Our Founder', 'books.subtitle': 'Part of The Invisible Series — exploring the unseen forces that shape disability, law, identity, and the human-animal bond.', 'books.eyebrow': 'From Our Clinical Director', 'books.bond.title': 'The Invisible Bond', 'books.bond.tagline': 'Exploring the Therapeutic Power of Emotional Support Animals', 'books.disability.title': 'The Invisible Disability', 'books.disability.tagline': 'Exploring the Hidden Toll of Unseen Conditions in a World Built for What It Can See', 'books.byline': 'By Dr. Patrick Fisher, PhDThe Service Animal Expert™', 'books.seeAll': 'See the full series →', 'blog.title': 'From Our Experts', 'blog.readMore': 'Read More →', 'blog.category': 'Blog', 'cta.title': 'Ready to Get Started?', 'cta.desc': 'Take our free 5-minute screening. No obligation, completely confidential.' }, fr: { 'nav.resources': 'Ressources', 'nav.faq': 'Questions Fréquentes', 'nav.guide': "Guide Chiens d'Assistance", 'nav.about': 'À Propos', 'nav.provinces': 'Lois Provinciales', 'nav.allProvinces': 'Toutes les Provinces →', 'nav.airlines': 'Compagnies Aériennes', 'nav.login': 'Connexion Client', 'nav.signup': "S'inscrire", 'hero.badge': 'De Confiance Depuis 2016 • 10+ Ans au Service des Canadiens', 'hero.title': "Documentation pour Chiens d'Assistance et Animaux de Soutien au Canada", 'hero.description': "Obtenez les lettres, formulaires et documentation nécessaires. Évaluations cliniques par des professionnels agréés.", 'cta.screening': "Évaluation Gratuite", 'cta.getStarted': 'Commencer', 'trust.nonprofit': 'Organisme Sans But Lucratif', 'trust.refund': 'Garantie de Remboursement', 'trust.secure': 'Sécurisé', 'stats.years': 'Ans', 'stats.clients': 'Clients', 'stats.rating': 'Note', 'howItWorks.label': 'Processus Simple', 'howItWorks.title': 'Comment Ça Marche', 'howItWorks.desc': 'Obtenez votre documentation en trois étapes simples.', 'step1.title': 'Évaluation Gratuite de 3 Minutes', 'step1.desc': 'Remplissez un questionnaire anonyme de 3 minutes.', 'step2.title': 'Révision Instantanée', 'step2.desc': 'Votre évaluation est examinée immédiatement.', 'step3.title': 'Documentation le Même Jour', 'step3.desc': 'Recevez vos lettres et formulaires le jour même.', 'pricing.label': 'Tarification Transparente', 'pricing.title': 'Choisissez Votre Forfait', 'pricing.desc': 'Tous les prix en dollars canadiens.', 'pricing.basic': 'Basic', 'pricing.premium': 'Premium', 'pricing.ultimate': 'Ultimate', 'pricing.electronic': 'Livraison Électronique', 'pricing.physical': 'Physique + Électronique', 'pricing.popular': 'Le Plus Populaire', 'pricing.note1': "L'évaluation est toujours GRATUITE", 'pricing.note2': 'Vous ne payez que si approuvé', 'pricing.note3': 'Garantie de satisfaction', 'feat.letters': 'Lettres Personnalisées', 'feat.airline': 'Formulaires Aériens pour Animaux de Service', 'feat.doctor': 'Évalué et Signé par un Docteur Clinicien Licencié', 'feat.qr': 'Validation par Code QR', 'feat.valid': 'Lettres Valides pour 1 An', 'feat.allbasic': 'Tout dans Basic, plus :', 'feat.registry': 'Registre à Vie et Certificat', 'feat.digitalid': "Carte d'ID Numérique (PDF)", 'feat.priority': 'Support Prioritaire', 'feat.allpremium': 'Tout dans Premium, plus :', 'feat.holoid': "Carte d'ID Holographique (Copie Physique)", 'feat.leash': "Laisse et Médaille d'Identification", 'feat.unlimited': 'Personnalisation Illimitée', 'wyr.label': 'Vos Documents', 'wyr.title': 'Ce Que Vous Recevrez', 'wyr.desc': 'Chaque document est signé par un Docteur Clinicien Licencié, conforme à la loi fédérale et vérifiable instantanément.', 'wyr.letter': 'Lettre Entièrement Conforme', 'wyr.verify': 'Prévention de la Fraude en 2 Étapes', 'wyr.pmBadge': 'Premium et Ultimate', 'wyr.ultBadge': 'Ultimate Seulement', 'wyr.regid': "Certificat d'Enregistrement et Carte d'ID Numérique", 'wyr.leashTitle': "Laisse et Médaille d'Identification", 'wyr.disclaimer': "Documents d'exemple montrés. Les lettres réelles sont personnalisées.", 'plus.label': '🐕 Entraînement de Chien d’Assistance Plus', 'plus.badge': '★ AJOUTER À TOUT FORFAIT — CHIENS D’ASSISTANCE SEULEMENT ★', 'plus.title': 'Entraînement de Chien d’Assistance Plus', 'plus.desc': 'Votre chien d’assistance est déjà entraîné ? Un formateur professionnel certifié examine une vidéo de votre chien, évalue chaque compétence et délivre un certificat vérifiable qui n’expire jamais.', 'plus.f1': "Formateur certifié examine la vidéo des tâches de votre chien", 'plus.f2': 'Évaluation individuelle des compétences', 'plus.f3': 'Certificat officiel avec code de vérification', 'plus.f4': 'Document permanent — achat unique', 'plus.f5': 'Aucune visite en personne — soumettez de chez vous', 'plus.per': 'Achat unique · N’expire jamais', 'plus.cta': 'Ajouter Entraînement Plus', 'plus.foot1': 'Chiens d’assistance seulement', 'plus.foot2': 'Soumettez des vidéos depuis votre téléphone', 'plus.foot3': 'Vérifiable à officialservicedog.com', 'provinces.label': 'Couverture Provinciale', 'provinces.title': 'Lois par Province', 'provinces.desc': 'Les lois varient à travers le Canada.', 'airlines.label': 'Prêt pour le Voyage', 'airlines.title': 'Politiques des Compagnies Aériennes', 'airlines.desc': 'Nous vous aidons à préparer la documentation.', 'airlines.accepted': "Chiens d'Assistance Acceptés", 'airlines.viewAll': 'Voir Toutes les Politiques', 'trust.label': 'Pourquoi Nous Faire Confiance', 'trust.title': 'La Différence TheraPetic', 'trust.desc': 'Organisme à but non lucratif avec 10+ ans.', 'trust.item1.title': 'Organisme Sans But Lucratif', 'trust.item1.text': 'Votre bien-être avant tout.', 'trust.item2.title': 'Professionnels Licenciés', 'trust.item2.text': 'Évaluations par des professionnels agréés.', 'trust.item3.title': 'Vie Privée Protégée', 'trust.item3.text': 'Systèmes conformes HIPAA.', 'trust.item4.title': "10+ Ans d'Expérience", 'trust.item4.text': 'Au service des Canadiens depuis 2016.', 'scam.label': 'Protégez-Vous', 'scam.title': 'Comment Repérer les Arnaques', 'scam.desc': 'Distinguez les services légitimes des arnaques.', 'scam.redFlags': '🚩 Signaux d'Alarme — Évitez les Services Qui:', 'scam.greenFlags': '✅ TheraPetic Offre:', 'faq.label': 'Questions Fréquentes', 'faq.title': 'Foire Aux Questions', 'faq.desc': "Réponses sur les chiens d'assistance au Canada.", 'faq.q1': "Quelle est la différence entre un chien d'assistance et un animal de soutien émotionnel?", 'faq.q2': 'Est-ce que tous ceux qui font une demande sont approuvés?', 'faq.q3': "Puis-je voyager en avion avec mon chien d'assistance au Canada?", 'faq.q4': 'Combien de temps pour recevoir ma documentation?', 'faq.q5': "Y a-t-il des exigences d'enregistrement au Canada?", 'wyr.letterDesc': 'Lettre personnalisée sur papier à en-tête officiel, signée par un Docteur Clinicien Licencié. Inclut diagnostic DSM-5, dates de validité et un code de vérification unique.', 'wyr.verifyDesc': 'Chaque lettre inclut un code QR et un code de vérification unique. Les propriétaires et les compagnies aériennes scannent ou visitent verify.mypsd.org pour vérifier instantanément.', 'wyr.regidDesc': "Certificat d'enregistrement officiel et carte d'identification numérique (PDF) pour téléchargement, impression ou affichage sur téléphone.", 'wyr.leashDesc': "Laisse marine de marque TheraPetic® avec le texte « Animal d'Assistance/Soutien » et une médaille rouge « Accès Requis ».", 'reviews.label': 'Vrais Avis', 'reviews.title': 'Ce Que Disent Nos Clients', 'reviews.desc': 'Avis vérifiés de vrais clients canadiens.', 'askAi.label': 'Une Transparence Vérifiable', 'askAi.title': "Ne Nous Croyez Pas Nous — Demandez à l'IA", 'askAi.desc': "Choisissez n'importe quel assistant IA. Il recherchera TheraPetic® Canada de manière indépendante et vous donnera un résumé honnête.", 'books.title': 'Publié par Notre Fondateur', 'books.subtitle': "Partie de The Invisible Series — explorant les forces invisibles qui façonnent le handicap, le droit, l'identité et le lien humain-animal.", 'books.eyebrow': 'De Notre Directeur Clinique', 'books.bond.title': 'The Invisible Bond', 'books.bond.tagline': 'Explorer le Pouvoir Thérapeutique des Animaux de Soutien Émotionnel', 'books.disability.title': 'The Invisible Disability', 'books.disability.tagline': "Explorer le Coût Caché des Conditions Invisibles dans un Monde Conçu pour ce qu'il Peut Voir", 'books.byline': 'Par Dr. Patrick Fisher, PhDThe Service Animal Expert™', 'books.seeAll': 'Voir la série complète →', 'blog.title': 'De Nos Experts', 'blog.readMore': 'Lire Plus →', 'blog.category': 'Blogue', 'cta.title': 'Prêt à Commencer?', 'cta.desc': 'Passez notre évaluation gratuite de 5 minutes.' }, es: { 'nav.resources': 'Recursos', 'nav.faq': 'Preguntas Frecuentes', 'nav.guide': 'Guía de Perros de Servicio', 'nav.about': 'Sobre Nosotros', 'nav.provinces': 'Leyes Provinciales', 'nav.allProvinces': 'Todas las Provincias →', 'nav.airlines': 'Aerolíneas', 'nav.login': 'Iniciar Sesión', 'nav.signup': 'Registrarse', 'hero.badge': 'De Confianza Desde 2016 • 10+ Años Sirviendo a Canadienses', 'hero.title': 'Documentación de Perros de Servicio y Animales de Apoyo para Canadienses', 'hero.description': 'Obtenga las cartas, formularios y documentación que necesita. Evaluaciones clínicas por profesionales licenciados.', 'cta.screening': 'Evaluación Gratuita', 'cta.getStarted': 'Comenzar', 'trust.nonprofit': 'Sin Fines de Lucro', 'trust.refund': 'Garantía de Reembolso', 'trust.secure': 'Seguro', 'stats.years': 'Años', 'stats.clients': 'Clientes', 'stats.rating': 'Calificación', 'howItWorks.label': 'Proceso Simple', 'howItWorks.title': 'Cómo Funciona', 'howItWorks.desc': 'Obtenga su documentación en tres simples pasos.', 'step1.title': 'Evaluación Gratuita de 3 Minutos', 'step1.desc': 'Complete un cuestionario anónimo de 3 minutos.', 'step2.title': 'Revisión Instantánea', 'step2.desc': 'Su evaluación es revisada inmediatamente.', 'step3.title': 'Documentación el Mismo Día', 'step3.desc': 'Reciba sus cartas y formularios el mismo día.', 'pricing.label': 'Precios Transparentes', 'pricing.title': 'Elija Su Paquete', 'pricing.desc': 'Todos los precios en dólares canadienses.', 'pricing.basic': 'Basic', 'pricing.premium': 'Premium', 'pricing.ultimate': 'Ultimate', 'pricing.electronic': 'Entrega Electrónica', 'pricing.physical': 'Físico + Electrónico', 'pricing.popular': 'Más Popular', 'pricing.note1': 'La evaluación siempre es GRATUITA', 'pricing.note2': 'Solo paga si es aprobado', 'pricing.note3': 'Garantía de satisfacción', 'feat.letters': 'Cartas Personalizadas', 'feat.airline': 'Formularios de Aerolínea', 'feat.doctor': 'Evaluado y Firmado por Doctor Clínico Licenciado', 'feat.qr': 'Validación por Código QR', 'feat.valid': 'Cartas Válidas por 1 Año', 'feat.allbasic': 'Todo en Basic, más:', 'feat.registry': 'Registro de por Vida y Certificado', 'feat.digitalid': 'Tarjeta de ID Digital (PDF)', 'feat.priority': 'Soporte Prioritario', 'feat.allpremium': 'Todo en Premium, más:', 'feat.holoid': 'Tarjeta de ID Holográfica (Copia Física)', 'feat.leash': 'Correa y Medalla Identificadora', 'feat.unlimited': 'Personalización Ilimitada', 'wyr.label': 'Ver Sus Documentos', 'wyr.title': 'Lo Que Recibirá', 'wyr.desc': 'Cada documento es firmado por un Doctor Clínico Licenciado, cumple con la ley federal y es verificable al instante.', 'wyr.letter': 'Carta Totalmente Compatible', 'wyr.verify': 'Prevención de Fraude en 2 Pasos', 'wyr.pmBadge': 'Premium y Ultimate', 'wyr.ultBadge': 'Solo Ultimate', 'wyr.regid': 'Certificado de Registro y Tarjeta de ID Digital', 'wyr.leashTitle': 'Correa Identificadora y Medalla', 'wyr.disclaimer': 'Se muestran documentos de ejemplo. Las cartas reales son personalizadas a su situación.', 'plus.label': '🐕 Entrenamiento de Perro de Servicio Plus', 'plus.badge': '★ AGREGAR A CUALQUIER PAQUETE — SOLO PERROS DE SERVICIO ★', 'plus.title': 'Entrenamiento de Perro de Servicio Plus', 'plus.desc': '¿Ya entrenó a su perro de servicio para realizar tareas? Un entrenador profesional certificado revisa el video de su perro, evalúa cada habilidad y emite un certificado verificable que nunca expira.', 'plus.f1': 'Entrenador certificado revisa el video de las tareas de su perro', 'plus.f2': 'Puntuación individual de habilidades y evaluación profesional', 'plus.f3': 'Certificado oficial de entrenamiento con código de verificación', 'plus.f4': 'El documento nunca expira — compra única', 'plus.f5': 'Sin visita en persona — envíe desde casa', 'plus.per': 'Compra única · Nunca expira', 'plus.cta': 'Agregar Entrenamiento Plus', 'plus.foot1': 'Solo perros de servicio', 'plus.foot2': 'Envíe videos desde su teléfono', 'plus.foot3': 'Verificable en officialservicedog.com', 'provinces.label': 'Cobertura Provincial', 'provinces.title': 'Leyes por Provincia', 'provinces.desc': 'Las leyes varían en todo Canadá.', 'airlines.label': 'Listo para Viajar', 'airlines.title': 'Políticas de Aerolíneas', 'airlines.desc': 'Le ayudamos a preparar la documentación.', 'airlines.accepted': 'Perros de Servicio Aceptados', 'airlines.viewAll': 'Ver Todas las Políticas', 'trust.label': 'Por Qué Confiar', 'trust.title': 'La Diferencia TheraPetic', 'trust.desc': 'Organización sin fines de lucro con 10+ años.', 'trust.item1.title': 'Sin Fines de Lucro', 'trust.item1.text': 'Su bienestar primero.', 'trust.item2.title': 'Profesionales Licenciados', 'trust.item2.text': 'Evaluaciones por profesionales licenciados.', 'trust.item3.title': 'Privacidad Protegida', 'trust.item3.text': 'Sistemas compatibles con HIPAA.', 'trust.item4.title': '10+ Años de Experiencia', 'trust.item4.text': 'Sirviendo a canadienses desde 2016.', 'scam.label': 'Protéjase', 'scam.title': 'Cómo Detectar Estafas', 'scam.desc': 'Distinga servicios legítimos de estafas.', 'scam.redFlags': '🚩 Señales de Alerta — Evite Servicios Que:', 'scam.greenFlags': '✅ TheraPetic Ofrece:', 'faq.label': 'Preguntas Frecuentes', 'faq.title': 'Preguntas Frecuentes', 'faq.desc': 'Respuestas sobre perros de servicio en Canadá.', 'faq.q1': '¿Cuál es la diferencia entre un perro de servicio y un animal de apoyo emocional?', 'faq.q2': '¿Todos los que solicitan son aprobados?', 'faq.q3': '¿Puedo volar con mi perro de servicio en Canadá?', 'faq.q4': '¿Qué tan rápido puedo recibir mi documentación?', 'faq.q5': '¿Hay requisitos de registro en Canadá?', 'wyr.letterDesc': 'Carta personalizada en papel membretado oficial, firmada por un Doctor Clínico Licenciado. Incluye diagnóstico DSM-5, fechas de validez y un código de verificación único.', 'wyr.verifyDesc': 'Cada carta incluye un código QR y un código de verificación único. Los propietarios y aerolíneas escanean o visitan verify.mypsd.org para verificar al instante.', 'wyr.regidDesc': 'Certificado de registro oficial y tarjeta de ID digital (PDF) para descargar, imprimir o mostrar en el teléfono.', 'wyr.leashDesc': 'Correa azul marino con marca TheraPetic® con texto "Animal de Servicio/Apoyo" y medalla roja "Acceso Requerido".', 'reviews.label': 'Reseñas Reales', 'reviews.title': 'Lo Que Dicen Nuestros Clientes', 'reviews.desc': 'Reseñas verificadas de clientes canadienses.', 'askAi.label': 'Transparencia Verificable', 'askAi.title': 'No Confíe en Nosotros — Pregunte a la IA', 'askAi.desc': 'Elija cualquier asistente de IA. Investigará TheraPetic® Canadá de forma independiente y le dará un resumen honesto.', 'books.title': 'Publicado por Nuestro Fundador', 'books.subtitle': 'Parte de The Invisible Series — explorando las fuerzas invisibles que moldean la discapacidad, la ley, la identidad y el vínculo humano-animal.', 'books.eyebrow': 'De Nuestro Director Clínico', 'books.bond.title': 'The Invisible Bond', 'books.bond.tagline': 'Explorando el Poder Terapéutico de los Animales de Apoyo Emocional', 'books.disability.title': 'The Invisible Disability', 'books.disability.tagline': 'Explorando el Peso Oculto de las Condiciones Invisibles en un Mundo Construido para lo que Puede Ver', 'books.byline': 'Por Dr. Patrick Fisher, PhDThe Service Animal Expert™', 'books.seeAll': 'Ver la serie completa →', 'blog.title': 'De Nuestros Expertos', 'blog.readMore': 'Leer Más →', 'blog.category': 'Blog', 'cta.title': '¿Listo para Comenzar?', 'cta.desc': 'Realice nuestra evaluación gratuita de 5 minutos.' } }; var currentLang; try { currentLang = localStorage.getItem('lang') || 'en'; } catch (e) { currentLang = 'en'; } function setLanguage(lang) { currentLang = lang; try { localStorage.setItem('lang', lang); } catch (e) {} document.documentElement.lang = lang; var cl = document.getElementById('currentLang'); if (cl) cl.textContent = lang.toUpperCase(); document.querySelectorAll('.lang-option').forEach(function(btn) { btn.classList.toggle('active', btn.dataset.lang === lang); }); document.querySelectorAll('[data-i18n]').forEach(function(el) { var key = el.dataset.i18n; if (translations[lang] && translations[lang][key]) { el.innerHTML = translations[lang][key]; } }); // Update WYR callout on language change if (typeof wyrCurrentTier !== 'undefined' && wyrCurrentTier) { var ct = document.getElementById('wyrCallTitle'); var cd = document.getElementById('wyrCallDesc'); if (ct && wyrCallouts[wyrCurrentTier]) ct.textContent = wyrCallouts[wyrCurrentTier][lang] || wyrCallouts[wyrCurrentTier]['en']; if (cd && wyrDescs[wyrCurrentTier]) cd.textContent = wyrDescs[wyrCurrentTier][lang] || wyrDescs[wyrCurrentTier]['en']; } } setLanguage(currentLang); // Language selector: click/tap to open dropdown (mobile-friendly), plus option selection var langSelector = document.getElementById('langSelector'); var langBtn = document.getElementById('langBtn'); if (langSelector && langBtn) { langBtn.addEventListener('click', function(e) { e.stopPropagation(); var isOpen = langSelector.classList.toggle('open'); langBtn.setAttribute('aria-expanded', isOpen ? 'true' : 'false'); }); // Close when clicking/tapping anywhere outside document.addEventListener('click', function(e) { if (!langSelector.contains(e.target)) { langSelector.classList.remove('open'); langBtn.setAttribute('aria-expanded', 'false'); } }); // Close on Escape document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && langSelector.classList.contains('open')) { langSelector.classList.remove('open'); langBtn.setAttribute('aria-expanded', 'false'); langBtn.focus(); } }); } document.querySelectorAll('.lang-option').forEach(function(btn) { btn.addEventListener('click', function(e) { e.stopPropagation(); setLanguage(btn.dataset.lang); if (langSelector) { langSelector.classList.remove('open'); if (langBtn) langBtn.setAttribute('aria-expanded', 'false'); } }); }); // Mobile Menu var mobileMenuToggle = document.getElementById('mobileMenuToggle'); var mobileNav = document.getElementById('mobileNav'); if (mobileMenuToggle && mobileNav) { mobileMenuToggle.addEventListener('click', function() { var isActive = mobileNav.classList.toggle('active'); mobileMenuToggle.classList.toggle('active'); mobileMenuToggle.setAttribute('aria-expanded', isActive); document.body.style.overflow = isActive ? 'hidden' : ''; }); mobileNav.querySelectorAll('a').forEach(function(link) { link.addEventListener('click', function() { mobileNav.classList.remove('active'); mobileMenuToggle.classList.remove('active'); mobileMenuToggle.setAttribute('aria-expanded', 'false'); document.body.style.overflow = ''; }); }); } // What You'll Receive -- Tier Switching + Lightbox var wyrCurrentTier = 'basic'; var wyrCallouts = { basic: { en: 'All Plans Include', fr: 'Tous les Plans Incluent', es: 'Todos los Planes Incluyen' }, premium: { en: 'Premium Plan — C$210', fr: 'Plan Premium — 210 $ CA', es: 'Plan Premium — C$210' }, ultimate:{ en: 'Ultimate Plan — C$280', fr: 'Plan Ultimate — 280 $ CA', es: 'Plan Ultimate — C$280' } }; var wyrDescs = { basic: { en: 'Personalized letters, Service Animal airline forms, and every document signed by a Licensed Clinical Doctor. Electronic delivery — same day.', fr: 'Lettres personnalisées, formulaires aériens et chaque document signé par un Docteur Clinicien Licencié.', es: 'Cartas personalizadas, formularios de aerolínea y cada documento firmado por un Doctor Clínico Licenciado.' }, premium: { en: 'Everything in Basic plus Registration Certificate and Digital ID Card with QR verification.', fr: "Tout dans Basic plus Certificat d’Enregistrement et Carte d’ID Numérique.", es: 'Todo en Basic más Certificado de Registro y Tarjeta de ID Digital.' }, ultimate:{ en: 'Everything in Premium plus Holographic Physical ID Card, Identifying Leash, and Medal Tag. Unlimited personalization.', fr: "Tout dans Premium plus Carte Holographique, Laisse et Médaille d’Identification.", es: 'Todo en Premium más Tarjeta Holográfica, Correa y Medalla.' } }; window.wyrSwitch = function(tier) { if (tier === wyrCurrentTier) return; wyrCurrentTier = tier; document.querySelectorAll('.wyr-tab').forEach(function(t) { t.classList.toggle('active', t.getAttribute('data-wyr') === tier); }); var grid = document.getElementById('wyrGrid'); var cards = grid.querySelectorAll('.wyr-card'); grid.classList.add('wyr-switching'); setTimeout(function() { var vis = 0; cards.forEach(function(c) { var t = c.getAttribute('data-tiers').split(','); if (t.indexOf(tier) !== -1) { c.style.display = ''; c.style.animationDelay = (vis * 0.07) + 's'; vis++; } else { c.style.display = 'none'; } }); grid.classList.toggle('wyr-cols-4', vis > 2); var ct = document.getElementById('wyrCallTitle'); var cd = document.getElementById('wyrCallDesc'); if (ct) ct.textContent = wyrCallouts[tier][currentLang] || wyrCallouts[tier]['en']; if (cd) cd.textContent = wyrDescs[tier][currentLang] || wyrDescs[tier]['en']; grid.classList.remove('wyr-switching'); }, 200); }; window.wyrOpen = function(card) { var img = card.querySelector('.wyr-card-img img') || card.querySelector('.tp-plus-img img'); var title = card.querySelector('.wyr-card-title') || card.querySelector('.tp-plus-info h3'); if (!img) return; document.getElementById('wyrLBImg').src = img.src; document.getElementById('wyrLBImg').alt = img.alt; document.getElementById('wyrLBCap').textContent = title ? title.textContent : ''; document.getElementById('wyrLB').classList.add('open'); document.body.style.overflow = 'hidden'; }; window.wyrCloseLB = function(e) { var lb = document.getElementById('wyrLB'); if (!lb) return; if (e && e.target !== lb && !e.target.closest('.wyr-lightbox-close')) return; lb.classList.remove('open'); document.body.style.overflow = ''; }; document.addEventListener('keydown', function(e) { var lb = document.getElementById('wyrLB'); if (e.key === 'Escape' && lb && lb.classList.contains('open')) { wyrCloseLB({ target: lb }); } }); // FAQ Accordion document.querySelectorAll('.faq-question').forEach(function(button) { button.addEventListener('click', function() { var faqItem = button.parentElement; if (!faqItem) return; var isActive = faqItem.classList.contains('active'); document.querySelectorAll('.faq-item').forEach(function(item) { item.classList.remove('active'); var q = item.querySelector('.faq-question'); if (q) q.setAttribute('aria-expanded', 'false'); }); if (!isActive) { faqItem.classList.add('active'); button.setAttribute('aria-expanded', 'true'); } }); }); // Header scroll effect var header = document.querySelector('.header'); if (header) { window.addEventListener('scroll', function() { header.style.boxShadow = window.pageYOffset > 100 ? '0 4px 20px var(--shadow-color)' : 'none'; }); } }); // end DOMContentLoaded

Verified Nonprofit Transparency

Transparencia Verificada

Our 501(c)(3) nonprofit status, finances, and leadership are publicly verified by Candid (formerly GuideStar) — the leading source of nonprofit transparency data.

Nuestro estatus 501(c)(3), finanzas y liderazgo están verificados por Candid (antes GuideStar).

Therapy Pet Inc Candid Transparency Seal
Therapy Pet Inc · EIN 82-1151364

Editorial Review

This page was reviewed by Karen Robertson, MS, CPDT-KSA, Canadian Training Reviewer on May 16, 2026 for accuracy, currency, and clarity. Content is updated when laws or clinical guidance change.