{"id":2964,"date":"2026-06-11T11:46:24","date_gmt":"2026-06-11T11:46:24","guid":{"rendered":"https:\/\/www.transtoyou.com\/sv\/?page_id=2964"},"modified":"2026-06-13T13:11:26","modified_gmt":"2026-06-13T10:11:26","slug":"videokonsultation","status":"publish","type":"page","link":"https:\/\/www.transtoyou.com\/sv\/videokonsultation\/","title":{"rendered":"Videokonsultation"},"content":{"rendered":"\n<div class=\"tty-cl-landing\"\n     id=\"tty-cl-landing\"\n     data-preselected-kind=\"\"\n     data-preselected-discipline=\"\">\n    \n        \n    <!-- Hero -->\n    <div class=\"tty-cl-hero\">\n        <h2 class=\"tty-cl-hero-title\">Book your video consultation<\/h2>\n        <p class=\"tty-cl-hero-subtitle\">Choose your consultation, pick your doctor and time, all from home, fully secure.<\/p>\n        \n        <div class=\"tty-cl-hero-trust\">\n            <span><i class=\"fa-duotone fa-check\"><\/i> EU &amp; UK licensed doctors<\/span>\n            <span><i class=\"fa-duotone fa-check\"><\/i> Secure &amp; private video<\/span>\n            <span><i class=\"fa-duotone fa-check\"><\/i> Prescription if medically appropriate<\/span>\n            <span><i class=\"fa-duotone fa-check\"><\/i> Works on any device<\/span>\n        <\/div>\n    <\/div>\n    \n    <div class=\"tty-cl-layout\">\n        <div class=\"tty-cl-main\">\n    \n    <!-- Stepper: progress indicator; completed steps are clickable to go back -->\n    <div class=\"tty-cl-stepper\" id=\"tty-cl-stepper\">\n        <button type=\"button\" class=\"tty-cl-stepper-item is-current\" data-goto=\"kind\" disabled>\n            <span class=\"tty-cl-stepper-num\"><span class=\"tty-cl-stepper-digit\">1<\/span><i class=\"fa-duotone fa-check\"><\/i><\/span>\n            <span class=\"tty-cl-stepper-body\">\n                <span class=\"tty-cl-stepper-label\">Consultation<\/span>\n                <span class=\"tty-cl-stepper-value\"><\/span>\n            <\/span>\n        <\/button>\n        <span class=\"tty-cl-stepper-sep\"><\/span>\n        <button type=\"button\" class=\"tty-cl-stepper-item is-upcoming\" data-goto=\"discipline\" disabled>\n            <span class=\"tty-cl-stepper-num\"><span class=\"tty-cl-stepper-digit\">2<\/span><i class=\"fa-duotone fa-check\"><\/i><\/span>\n            <span class=\"tty-cl-stepper-body\">\n                <span class=\"tty-cl-stepper-label\">Care area<\/span>\n                <span class=\"tty-cl-stepper-value\"><\/span>\n            <\/span>\n        <\/button>\n        <span class=\"tty-cl-stepper-sep\"><\/span>\n        <button type=\"button\" class=\"tty-cl-stepper-item is-upcoming\" data-goto=\"booking\" disabled>\n            <span class=\"tty-cl-stepper-num\"><span class=\"tty-cl-stepper-digit\">3<\/span><i class=\"fa-duotone fa-check\"><\/i><\/span>\n            <span class=\"tty-cl-stepper-body\">\n                <span class=\"tty-cl-stepper-label\">Doctor &amp; time<\/span>\n                <span class=\"tty-cl-stepper-value\"><\/span>\n            <\/span>\n        <\/button>\n    <\/div>\n    \n    <!-- Delivery country: doctors and medication availability are matched to it -->\n        <div class=\"tty-cl-delivery tty-cl-delivery-warning\">\n        <i class=\"fa-duotone fa-triangle-exclamation tty-cl-delivery-warnicon\"><\/i>\n        <span class=\"tty-cl-delivery-text\">\n            <strong>Select your delivery country<\/strong>\n            <span>Doctors and medication availability are matched to this country.<\/span>\n        <\/span>\n        <button type=\"button\" class=\"tty-cl-change-country\"><i class=\"fa-duotone fa-globe\"><\/i> Select country<\/button>\n    <\/div>\n        \n    <!-- Step 1: Kind -->\n    <div class=\"tty-cl-step\" id=\"tty-cl-step-kind\" data-step=\"kind\">\n        <div class=\"tty-cl-step-head\">\n            <h3 class=\"tty-cl-step-title\">\n                <span class=\"tty-cl-step-icon\"><i class=\"fa-duotone fa-hand-pointer\"><\/i><\/span>\n                What kind of consultation do you need?            <\/h3>\n            <a href=\"#tty-cl-faq\" class=\"tty-cl-faq-link\">\n                <i class=\"fa-duotone fa-circle-question\"><\/i>\n                Frequently asked questions            <\/a>\n        <\/div>\n        \n        <div class=\"tty-cl-kind-grid\">\n            <button type=\"button\" class=\"tty-cl-kind-card\" data-kind=\"intake\">\n                <span class=\"tty-cl-kind-icon\"><i class=\"fa-duotone fa-video\"><\/i><\/span>\n                <span class=\"tty-cl-kind-name\">Video Consultation<\/span>\n                <span class=\"tty-cl-kind-desc\">Your first (intake) consultation with one of our doctors.<\/span>\n                                <span class=\"tty-cl-kind-meta\">\n                    <span class=\"tty-cl-kind-price\">from <span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">\u20ac<\/span>&nbsp;45,00<\/span><\/span>\n                                        <span class=\"tty-cl-kind-duration\"><i class=\"fa-duotone fa-clock\"><\/i> 45 min<\/span>\n                                    <\/span>\n                                <span class=\"tty-cl-card-cta\">Select <i class=\"fa-duotone fa-arrow-right\"><\/i><\/span>\n            <\/button>\n            \n            <button type=\"button\" class=\"tty-cl-kind-card\" data-kind=\"followup\">\n                <span class=\"tty-cl-kind-icon\"><i class=\"fa-duotone fa-calendar-check\"><\/i><\/span>\n                <span class=\"tty-cl-kind-name\">Follow-up Video Consultation<\/span>\n                <span class=\"tty-cl-kind-desc\">For patients with a valid intake consultation, at a reduced rate.<\/span>\n                                <span class=\"tty-cl-kind-meta\">\n                    <span class=\"tty-cl-kind-price\">from <span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">\u20ac<\/span>&nbsp;50,00<\/span><\/span>\n                                        <span class=\"tty-cl-kind-duration\"><i class=\"fa-duotone fa-clock\"><\/i> 45 min<\/span>\n                                                            <span class=\"tty-cl-discount-badge\">-10%<\/span>\n                                    <\/span>\n                                <span class=\"tty-cl-kind-validity\">Within 12 months of your intake consultation.<\/span>\n                                                <span class=\"tty-cl-card-cta\">Select <i class=\"fa-duotone fa-arrow-right\"><\/i><\/span>\n            <\/button>\n        <\/div>\n    <\/div>\n    \n    <!-- Step 2: Discipline -->\n    <div class=\"tty-cl-step\" id=\"tty-cl-step-discipline\" data-step=\"discipline\" style=\"display:none;\">\n        <h3 class=\"tty-cl-step-title\">\n            <span class=\"tty-cl-step-icon\"><i class=\"fa-duotone fa-stethoscope\"><\/i><\/span>\n            Choose your care area        <\/h3>\n        \n        <div class=\"tty-cl-discipline-grid\">\n                        <button type=\"button\" class=\"tty-cl-discipline-card\" data-discipline=\"weight-loss\">\n                <span class=\"tty-cl-discipline-icon\"><i class=\"fa-duotone fa-stethoscope\"><\/i><\/span>\n                <span class=\"tty-cl-discipline-name\">Weight Loss<\/span>\n                <i class=\"fa-duotone fa-chevron-right tty-cl-discipline-chevron\"><\/i>\n            <\/button>\n                        <button type=\"button\" class=\"tty-cl-discipline-card\" data-discipline=\"transgender-care\">\n                <span class=\"tty-cl-discipline-icon\"><i class=\"fa-duotone fa-stethoscope\"><\/i><\/span>\n                <span class=\"tty-cl-discipline-name\">Transgender Care<\/span>\n                <i class=\"fa-duotone fa-chevron-right tty-cl-discipline-chevron\"><\/i>\n            <\/button>\n                    <\/div>\n    <\/div>\n    \n    <!-- Step 3: Booking panels (one per discipline x kind; revealed client-side) -->\n    <div class=\"tty-cl-step\" id=\"tty-cl-step-booking\" data-step=\"booking\" style=\"display:none;\">\n        <h3 class=\"tty-cl-step-title\">\n            <span class=\"tty-cl-step-icon\"><i class=\"fa-duotone fa-calendar-check\"><\/i><\/span>\n            Book your consultation        <\/h3>\n        \n                <div class=\"tty-cl-panel\" data-panel=\"weight-loss:intake\" style=\"display:none;\">\n            \n            <!-- Panel header: what is being booked -->\n            <div class=\"tty-cl-panel-header\">\n                <div class=\"tty-cl-panel-titles\">\n                    <h4 class=\"tty-cl-panel-title\">Weight Loss<\/h4>\n                    <span class=\"tty-cl-panel-discipline\"><i class=\"fa-duotone fa-stethoscope\"><\/i> Weight Loss<\/span>\n                <\/div>\n                <div class=\"tty-cl-panel-pricing\">\n                                                            <span class=\"tty-cl-price\"><span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">\u20ac<\/span>&nbsp;50,00<\/span><\/span>\n                                                            <span class=\"tty-cl-duration\"><i class=\"fa-duotone fa-stopwatch\"><\/i> 45 min<\/span>\n                                    <\/div>\n            <\/div>\n            \n                        \n            <div class=\"tty-cl-panel-locked\">\n                <i class=\"fa-duotone fa-user-doctor\"><\/i>\n                <p>No doctors are currently available for this consultation. Please check back soon.<\/p>\n            <\/div>\n            \n                    <\/div>\n                <div class=\"tty-cl-panel\" data-panel=\"transgender-care:intake\" style=\"display:none;\">\n            \n            <!-- Panel header: what is being booked -->\n            <div class=\"tty-cl-panel-header\">\n                <div class=\"tty-cl-panel-titles\">\n                    <h4 class=\"tty-cl-panel-title\">Transgender Care<\/h4>\n                    <span class=\"tty-cl-panel-discipline\"><i class=\"fa-duotone fa-stethoscope\"><\/i> Transgender Care<\/span>\n                <\/div>\n                <div class=\"tty-cl-panel-pricing\">\n                                                            <span class=\"tty-cl-price\"><span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">\u20ac<\/span>&nbsp;45,00<\/span><\/span>\n                                                            <span class=\"tty-cl-duration\"><i class=\"fa-duotone fa-stopwatch\"><\/i> 45 min<\/span>\n                                    <\/div>\n            <\/div>\n            \n                        \n            <!-- Doctor selection -->\n            <div class=\"tty-cl-substep tty-cl-substep-doctor\">\n                <h5 class=\"tty-cl-substep-title\">Select your doctor<\/h5>\n                \n                                <div class=\"tty-cl-doctor-filters\">\n                    <label class=\"tty-cl-filter\">\n                        <span class=\"tty-cl-filter-label\"><i class=\"fa-duotone fa-language\"><\/i> Language:<\/span>\n                        <select class=\"tty-cl-language-filter\">\n                            <option value=\"all\">All Languages<\/option>\n                                                        <option value=\"de\" >Deutsch<\/option>\n                                                        <option value=\"en\" >English<\/option>\n                                                        <option value=\"es\" >Espa\u00f1ol<\/option>\n                                                        <option value=\"ro\" >Rom\u00e2n\u0103<\/option>\n                                                        <option value=\"ru\" >\u0420\u0443\u0441\u0441\u043a\u0438\u0439<\/option>\n                                                    <\/select>\n                    <\/label>\n                <\/div>\n                                \n                <div class=\"tty-cl-doctors-grid\">\n                                                            <label class=\"tty-cl-doctor-option\"\n                           data-countries=\"\"\n                           data-languages=\"en,ro\">\n                        <input type=\"radio\" name=\"tty_cl_doctor_transgender-care:intake\" value=\"35\">\n                        <span class=\"tty-cl-doctor-inner\">\n                            <img decoding=\"async\" src=\"https:\/\/www.transtoyou.com\/sv\/wp-content\/uploads\/dr-c-alexandru-expert.webp\" alt=\"\" class=\"tty-cl-doctor-avatar\" loading=\"lazy\">\n                            <span class=\"tty-cl-doctor-meta\">\n                                <strong class=\"tty-cl-doctor-name\">Dr. C. Alexandru<\/strong>\n                                <span class=\"tty-cl-doctor-specialty\">General Medicine Doctor<\/span>\n                                                                <span class=\"tty-cl-doctor-langs\"><i class=\"fa-duotone fa-language\"><\/i> English, Rom\u00e2n\u0103<\/span>\n                                                            <\/span>\n                        <\/span>\n                    <\/label>\n                                                            <label class=\"tty-cl-doctor-option\"\n                           data-countries=\"\"\n                           data-languages=\"en,es\">\n                        <input type=\"radio\" name=\"tty_cl_doctor_transgender-care:intake\" value=\"37\">\n                        <span class=\"tty-cl-doctor-inner\">\n                            <img decoding=\"async\" src=\"https:\/\/www.transtoyou.com\/sv\/wp-content\/uploads\/dr-c-munoz-parada.webp\" alt=\"\" class=\"tty-cl-doctor-avatar\" loading=\"lazy\">\n                            <span class=\"tty-cl-doctor-meta\">\n                                <strong class=\"tty-cl-doctor-name\">Dr. C. Mu\u00f1oz Parada<\/strong>\n                                <span class=\"tty-cl-doctor-specialty\">General Medicine Doctor<\/span>\n                                                                <span class=\"tty-cl-doctor-langs\"><i class=\"fa-duotone fa-language\"><\/i> English, Espa\u00f1ol<\/span>\n                                                            <\/span>\n                        <\/span>\n                    <\/label>\n                                                            <label class=\"tty-cl-doctor-option\"\n                           data-countries=\"\"\n                           data-languages=\"en,de,ru\">\n                        <input type=\"radio\" name=\"tty_cl_doctor_transgender-care:intake\" value=\"36\">\n                        <span class=\"tty-cl-doctor-inner\">\n                            <img decoding=\"async\" src=\"https:\/\/www.transtoyou.com\/sv\/wp-content\/uploads\/dr-m-sharoyko-picture-min.png\" alt=\"\" class=\"tty-cl-doctor-avatar\" loading=\"lazy\">\n                            <span class=\"tty-cl-doctor-meta\">\n                                <strong class=\"tty-cl-doctor-name\">Dr. M. Sharoyko<\/strong>\n                                <span class=\"tty-cl-doctor-specialty\">Internal Medicine Physician<\/span>\n                                                                <span class=\"tty-cl-doctor-langs\"><i class=\"fa-duotone fa-language\"><\/i> English, Deutsch, \u0420\u0443\u0441\u0441\u043a\u0438\u0439<\/span>\n                                                            <\/span>\n                        <\/span>\n                    <\/label>\n                                    <\/div>\n                \n                <div class=\"tty-cl-no-doctors-match\" style=\"display:none;\">\n                                        <p>Please select your delivery country to see available doctors.<\/p>\n                                        <button type=\"button\" class=\"tty-cl-change-country\"><i class=\"fa-duotone fa-globe\"><\/i> Change delivery country<\/button>\n                <\/div>\n            <\/div>\n            \n            <!-- Date selection -->\n            <div class=\"tty-cl-substep tty-cl-substep-date\" style=\"display:none;\">\n                <h5 class=\"tty-cl-substep-title\">Select a date<\/h5>\n                <div class=\"tty-cl-loading\" style=\"display:none;\"><span class=\"tty-meet-spinner\"><\/span> Loading available dates...<\/div>\n                <div class=\"tty-cl-dates-container\"><\/div>\n            <\/div>\n            \n            <!-- Time selection -->\n            <div class=\"tty-cl-substep tty-cl-substep-time\" style=\"display:none;\">\n                <h5 class=\"tty-cl-substep-title\">Select a time<\/h5>\n                <div class=\"tty-cl-loading\" style=\"display:none;\"><span class=\"tty-meet-spinner\"><\/span> Loading available times...<\/div>\n                <div class=\"tty-cl-times-container\"><\/div>\n            <\/div>\n            \n            <!-- Confirm: hands over to WooCommerce checkout with the booking data -->\n            <div class=\"tty-cl-substep tty-cl-substep-confirm\" style=\"display:none;\">\n                <h5 class=\"tty-cl-substep-title\">Confirm your booking<\/h5>\n                \n                <div class=\"tty-cl-summary\">\n                    <div class=\"tty-cl-summary-item\"><span>Consultation:<\/span> <strong>Transgender Care<\/strong><\/div>\n                    <div class=\"tty-cl-summary-item\"><span>Doctor:<\/span> <strong class=\"tty-cl-summary-doctor\"><\/strong><\/div>\n                    <div class=\"tty-cl-summary-item\"><span>Date:<\/span> <strong class=\"tty-cl-summary-date\"><\/strong><\/div>\n                    <div class=\"tty-cl-summary-item\"><span>Time:<\/span> <strong class=\"tty-cl-summary-time\"><\/strong><\/div>\n                    <div class=\"tty-cl-summary-item\"><span>Delivery country:<\/span> <strong class=\"tty-cl-summary-country\">\n                                                                    <\/strong><\/div>\n                <\/div>\n                \n                <!-- How it works: sets expectations before payment (v1.3.3) -->\n                <div class=\"tty-cl-howto\">\n                    <h6 class=\"tty-cl-howto-title\"><i class=\"fa-duotone fa-circle-info\"><\/i> How it works<\/h6>\n                    <div class=\"tty-cl-howto-steps\">\n                        <div class=\"tty-cl-howto-step\">\n                            <span class=\"tty-cl-howto-icon\"><i class=\"fa-duotone fa-credit-card\"><\/i><\/span>\n                            <span class=\"tty-cl-howto-text\">Book and pay securely online.<\/span>\n                        <\/div>\n                        <div class=\"tty-cl-howto-step\">\n                            <span class=\"tty-cl-howto-icon\"><i class=\"fa-duotone fa-envelope\"><\/i><\/span>\n                            <span class=\"tty-cl-howto-text\">You receive your personal video link by email.<\/span>\n                        <\/div>\n                        <div class=\"tty-cl-howto-step\">\n                            <span class=\"tty-cl-howto-icon\"><i class=\"fa-duotone fa-video\"><\/i><\/span>\n                            <span class=\"tty-cl-howto-text\">Join from any device, up to 15 minutes before your appointment.<\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                \n                                <!-- Document upload: same contract as the product page form\n                     (tty_meet_upload_attachment \/ tty_meet_delete_attachment,\n                     session key handed over via tty_meet_attachment_session) -->\n                <div class=\"tty-meet-upload-section tty-cl-upload\" data-session=\"UolXNdRFyBLgLm9IU28gFx0BnmYEwHmO_1781382226\">\n                    <div class=\"tty-meet-upload-header\">\n                        <label class=\"tty-meet-upload-label\">\n                            <i class=\"fa-duotone fa-file-medical\"><\/i>\n                            Share Documents with Your Doctor                            <span class=\"tty-meet-optional\">(optional)<\/span>\n                        <\/label>\n                        <p class=\"tty-meet-upload-description\">\n                            Upload any relevant documents such as blood test results, prescriptions, or medical reports to help your doctor prepare for the consultation.                        <\/p>\n                    <\/div>\n                    \n                    <div class=\"tty-meet-upload-dropzone tty-cl-dropzone\">\n                        <div class=\"tty-meet-dropzone-content\">\n                            <i class=\"fa-duotone fa-cloud-arrow-up\"><\/i>\n                            <p class=\"tty-meet-dropzone-text\">Drag and drop files here or<\/p>\n                            <button type=\"button\" class=\"tty-meet-btn tty-meet-btn-outline tty-cl-browse-btn\">\n                                <i class=\"fa-duotone fa-folder-open\"><\/i>\n                                Browse Files                            <\/button>\n                            <p class=\"tty-meet-dropzone-info\">\n                                PDF, JPG, PNG up to 10 MB. Maximum 5 files.                            <\/p>\n                        <\/div>\n                        <input type=\"file\"\n                               class=\"tty-cl-file-input\"\n                               accept=\".pdf,.jpg,.jpeg,.png,application\/pdf,image\/jpeg,image\/png\"\n                               multiple\n                               style=\"display:none;\">\n                    <\/div>\n                    \n                    <div class=\"tty-meet-upload-type-modal tty-cl-type-modal\" style=\"display:none;\">\n                        <div class=\"tty-meet-type-modal-content\">\n                            <h4>What type of document is this?<\/h4>\n                            <p class=\"tty-meet-type-modal-filename tty-cl-type-filename\"><\/p>\n                            <div class=\"tty-meet-type-options\">\n                                                                <label class=\"tty-meet-type-option\">\n                                    <input type=\"radio\" name=\"tty_cl_file_type_transgender-care:intake\" value=\"blood_results\">\n                                    <span class=\"tty-meet-type-option-label\">Blood Test Results<\/span>\n                                <\/label>\n                                                                <label class=\"tty-meet-type-option\">\n                                    <input type=\"radio\" name=\"tty_cl_file_type_transgender-care:intake\" value=\"prescription\">\n                                    <span class=\"tty-meet-type-option-label\">Prescription<\/span>\n                                <\/label>\n                                                                <label class=\"tty-meet-type-option\">\n                                    <input type=\"radio\" name=\"tty_cl_file_type_transgender-care:intake\" value=\"medical_report\">\n                                    <span class=\"tty-meet-type-option-label\">Medical Report<\/span>\n                                <\/label>\n                                                                <label class=\"tty-meet-type-option\">\n                                    <input type=\"radio\" name=\"tty_cl_file_type_transgender-care:intake\" value=\"referral_letter\">\n                                    <span class=\"tty-meet-type-option-label\">Referral Letter<\/span>\n                                <\/label>\n                                                                <label class=\"tty-meet-type-option\">\n                                    <input type=\"radio\" name=\"tty_cl_file_type_transgender-care:intake\" value=\"lab_results\">\n                                    <span class=\"tty-meet-type-option-label\">Lab Results<\/span>\n                                <\/label>\n                                                                <label class=\"tty-meet-type-option\">\n                                    <input type=\"radio\" name=\"tty_cl_file_type_transgender-care:intake\" value=\"imaging\">\n                                    <span class=\"tty-meet-type-option-label\">Imaging \/ Scans<\/span>\n                                <\/label>\n                                                                <label class=\"tty-meet-type-option\">\n                                    <input type=\"radio\" name=\"tty_cl_file_type_transgender-care:intake\" value=\"other\">\n                                    <span class=\"tty-meet-type-option-label\">Other Document<\/span>\n                                <\/label>\n                                                            <\/div>\n                            <div class=\"tty-meet-type-modal-actions\">\n                                <button type=\"button\" class=\"tty-meet-btn tty-meet-btn-outline tty-cl-type-cancel\">Cancel<\/button>\n                                <button type=\"button\" class=\"tty-meet-btn tty-meet-btn-primary tty-cl-type-confirm\" disabled>\n                                    <i class=\"fa-duotone fa-upload\"><\/i>\n                                    Upload                                <\/button>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"tty-meet-uploaded-files tty-cl-uploaded-files\" style=\"display:none;\">\n                        <h4 class=\"tty-meet-uploaded-title\">\n                            <i class=\"fa-duotone fa-paperclip\"><\/i>\n                            Uploaded documents (<span class=\"tty-cl-file-count\">0<\/span>)\n                        <\/h4>\n                        <div class=\"tty-cl-files-list\"><\/div>\n                    <\/div>\n                    \n                    <div class=\"tty-meet-upload-progress tty-cl-upload-progress\" style=\"display:none;\">\n                        <div class=\"tty-meet-progress-bar\"><div class=\"tty-meet-progress-fill tty-cl-progress-fill\" style=\"width:0%;\"><\/div><\/div>\n                    <\/div>\n                    \n                    <div class=\"tty-meet-upload-error tty-cl-upload-error\" style=\"display:none;\"><\/div>\n                <\/div>\n                                \n                <form method=\"post\" action=\"https:\/\/www.transtoyou.com\/sv\/kassa\/\" class=\"tty-cl-checkout-form\">\n                    <input type=\"hidden\" name=\"add-to-cart\" value=\"2090\">\n                    <input type=\"hidden\" name=\"quantity\" value=\"1\">\n                    <input type=\"hidden\" name=\"tty_meet_doctor_id\" value=\"\" class=\"tty-cl-field-doctor\">\n                    <input type=\"hidden\" name=\"tty_meet_date\" value=\"\" class=\"tty-cl-field-date\">\n                    <input type=\"hidden\" name=\"tty_meet_time\" value=\"\" class=\"tty-cl-field-time\">\n                                        <input type=\"hidden\" name=\"tty_meet_attachment_session\" value=\"UolXNdRFyBLgLm9IU28gFx0BnmYEwHmO_1781382226\">\n                                        \n                    <div class=\"tty-cl-reason-section\">\n                        <label class=\"tty-cl-reason-label\" for=\"tty-cl-reason-transgender-care:intake\">\n                            <i class=\"fa-duotone fa-message-lines\"><\/i>\n                            Reason for your consultation                            <span class=\"tty-cl-required\" aria-hidden=\"true\">*<\/span>\n                        <\/label>\n                        <p class=\"tty-cl-reason-hint\">Briefly describe what you would like to discuss, so your doctor can prepare for the consultation.<\/p>\n                        <textarea name=\"tty_meet_reason\" id=\"tty-cl-reason-transgender-care:intake\" class=\"tty-cl-reason\" rows=\"4\" required minlength=\"25\" maxlength=\"250\" placeholder=\"Briefly describe what you would like to discuss...\"><\/textarea>\n                        <div class=\"tty-cl-reason-counter\"><span class=\"tty-cl-reason-count\">0<\/span> \/ 250 <span class=\"tty-cl-reason-min\">(minimum 25 characters)<\/span><\/div>\n                        <div class=\"tty-cl-reason-error\" style=\"display:none;\">Please describe the reason for your consultation (minimum 25 characters).<\/div>\n                        <p class=\"tty-cl-reason-privacy\"><i class=\"fa-duotone fa-lock\"><\/i> Your description is only visible to your doctor.<\/p>\n                    <\/div>\n                    \n                    <button type=\"submit\" class=\"tty-cl-btn tty-cl-btn-primary tty-cl-btn-book\">\n                        <i class=\"fa-duotone fa-credit-card\"><\/i>\n                        Book &amp; pay                    <\/button>\n                <\/form>\n            <\/div>\n            \n                    <\/div>\n                <div class=\"tty-cl-panel\" data-panel=\"transgender-care:followup\" style=\"display:none;\">\n            \n            <!-- Panel header: what is being booked -->\n            <div class=\"tty-cl-panel-header\">\n                <div class=\"tty-cl-panel-titles\">\n                    <h4 class=\"tty-cl-panel-title\">Follow Up - Transgander Care<\/h4>\n                    <span class=\"tty-cl-panel-discipline\"><i class=\"fa-duotone fa-stethoscope\"><\/i> Transgender Care<\/span>\n                <\/div>\n                <div class=\"tty-cl-panel-pricing\">\n                                        <span class=\"tty-cl-discount-badge\">-10%<\/span>\n                                                            <span class=\"tty-cl-price\"><span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">\u20ac<\/span>&nbsp;50,00<\/span><\/span>\n                                                            <span class=\"tty-cl-duration\"><i class=\"fa-duotone fa-stopwatch\"><\/i> 45 min<\/span>\n                                    <\/div>\n            <\/div>\n            \n                        \n            <div class=\"tty-cl-panel-locked\">\n                <i class=\"fa-duotone fa-lock\"><\/i>\n                <p>\n                    Follow-up consultations are linked to your patient account: we verify that you have a valid intake consultation.                                            An intake remains valid for 12 months.                                    <\/p>\n                <a class=\"tty-cl-btn tty-cl-btn-primary\" href=\"https:\/\/www.transtoyou.com\/sv\/wp-login.php?redirect_to=%2Fsv%2Fwp-json%2Fwp%2Fv2%2Fpages%2F2964\">\n                    <i class=\"fa-duotone fa-right-to-bracket\"><\/i>\n                    Log in to book your follow-up                <\/a>\n            <\/div>\n            \n                    <\/div>\n            <\/div>\n    \n        <\/div><!-- \/.tty-cl-main -->\n        \n        <!-- Info rail: sticky on desktop, stacked below the flow on mobile -->\n        <aside class=\"tty-cl-aside\">\n            <div class=\"tty-cl-info-card\">\n                <h4 class=\"tty-cl-info-card-title\"><i class=\"fa-duotone fa-route\"><\/i> How it works<\/h4>\n                <div class=\"tty-cl-journey\">\n                    <div class=\"tty-cl-journey-step\">\n                        <span class=\"tty-cl-journey-icon\"><i class=\"fa-duotone fa-hand-pointer\"><\/i><\/span>\n                        <span class=\"tty-cl-journey-body\">\n                            <strong>Choose your consultation<\/strong>\n                            <span>Intake or follow-up, per care area.<\/span>\n                        <\/span>\n                    <\/div>\n                    <div class=\"tty-cl-journey-step\">\n                        <span class=\"tty-cl-journey-icon\"><i class=\"fa-duotone fa-calendar-days\"><\/i><\/span>\n                        <span class=\"tty-cl-journey-body\">\n                            <strong>Pick doctor, date &amp; time<\/strong>\n                            <span>Filter by country and language.<\/span>\n                        <\/span>\n                    <\/div>\n                    <div class=\"tty-cl-journey-step\">\n                        <span class=\"tty-cl-journey-icon\"><i class=\"fa-duotone fa-credit-card\"><\/i><\/span>\n                        <span class=\"tty-cl-journey-body\">\n                            <strong>Pay securely online<\/strong>\n                            <span>The price always includes the consultation.<\/span>\n                        <\/span>\n                    <\/div>\n                    <div class=\"tty-cl-journey-step\">\n                        <span class=\"tty-cl-journey-icon\"><i class=\"fa-duotone fa-video\"><\/i><\/span>\n                        <span class=\"tty-cl-journey-body\">\n                            <strong>Join your video call<\/strong>\n                            <span>Link by email, any device, up to 15 minutes early.<\/span>\n                        <\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n            \n            <div class=\"tty-cl-info-card\">\n                <h4 class=\"tty-cl-info-card-title\"><i class=\"fa-duotone fa-list-check\"><\/i> What you need<\/h4>\n                <ul class=\"tty-cl-info-list\">\n                    <li><i class=\"fa-duotone fa-camera-web\"><\/i> <span>A working camera and microphone: phone, tablet or computer.<\/span><\/li>\n                    <li><i class=\"fa-duotone fa-wifi\"><\/i> <span>A stable internet connection.<\/span><\/li>\n                    <li><i class=\"fa-duotone fa-file-medical\"><\/i> <span>Any recent medical information, such as medication lists or test results.<\/span><\/li>\n                <\/ul>\n            <\/div>\n            \n            <div class=\"tty-cl-info-card\">\n                <h4 class=\"tty-cl-info-card-title\"><i class=\"fa-duotone fa-circle-info\"><\/i> Good to know<\/h4>\n                <ul class=\"tty-cl-info-list\">\n                    <li><i class=\"fa-duotone fa-receipt\"><\/i> <span>The price includes the consultation; any medication is paid separately.<\/span><\/li>\n                    <li><i class=\"fa-duotone fa-prescription-bottle-medical\"><\/i> <span>Prescriptions are sent directly to certified partner pharmacies.<\/span><\/li>\n                    <li><i class=\"fa-duotone fa-building-shield\"><\/i> <span>Consultations are usually not reimbursed by health insurance. Check with your insurer.<\/span><\/li>\n                    <li><i class=\"fa-duotone fa-id-card\"><\/i> <span>The consultation must be carried out by you personally.<\/span><\/li>\n                <\/ul>\n                <p class=\"tty-cl-info-note\"><i class=\"fa-duotone fa-triangle-exclamation\"><\/i> Not for emergencies. In urgent situations, call your local emergency services.<\/p>\n            <\/div>\n        <\/aside>\n    <\/div><!-- \/.tty-cl-layout -->\n    \n    <!-- FAQ -->\n    <div class=\"tty-cl-faq\" id=\"tty-cl-faq\">\n        <h3 class=\"tty-cl-faq-title\"><i class=\"fa-duotone fa-circle-question\"><\/i> Frequently asked questions<\/h3>\n        \n        <details class=\"tty-cl-faq-item\">\n            <summary>How quickly can I book a video consultation?<\/summary>\n            <div class=\"tty-cl-faq-answer\">Most appointments are available within a few hours, depending on doctor availability.<\/div>\n        <\/details>\n        \n        <details class=\"tty-cl-faq-item\">\n            <summary>What does a video consultation cost?<\/summary>\n            <div class=\"tty-cl-faq-answer\">The price is always displayed when booking your appointment. It covers the consultation with the doctor; any medication is paid separately.<\/div>\n        <\/details>\n        \n        <details class=\"tty-cl-faq-item\">\n            <summary>Do I need special software?<\/summary>\n            <div class=\"tty-cl-faq-answer\">No. Consultations work securely in your browser or in the Transtoyou app. A stable internet connection is all you need.<\/div>\n        <\/details>\n        \n        <details class=\"tty-cl-faq-item\">\n            <summary>What should I prepare for the video consultation?<\/summary>\n            <div class=\"tty-cl-faq-answer\">A working camera and microphone (phone, tablet or computer), a stable internet connection, and any recent medical information such as medication lists or test results.<\/div>\n        <\/details>\n        \n        <details class=\"tty-cl-faq-item\">\n            <summary>Can I have the consultation in another language?<\/summary>\n            <div class=\"tty-cl-faq-answer\">Yes, we work with doctors in different countries and languages. You can filter by country and language when booking.<\/div>\n        <\/details>\n        \n        <details class=\"tty-cl-faq-item\">\n            <summary>Will I always get a prescription after a consultation?<\/summary>\n            <div class=\"tty-cl-faq-answer\">Not always. Prescriptions are only issued if the doctor finds it medically appropriate.<\/div>\n        <\/details>\n        \n        <details class=\"tty-cl-faq-item\">\n            <summary>Are consultations reimbursed by my health insurance?<\/summary>\n            <div class=\"tty-cl-faq-answer\">In most cases no, as we operate outside the standard insured healthcare system. Always check with your insurer.<\/div>\n        <\/details>\n    <\/div>\n<\/div>\n\n<script>\njQuery(document).ready(function($) {\n    var $landing = $('#tty-cl-landing');\n    var state = { kind: '', discipline: '', doctor: 0, doctorName: '', date: '', dateFormatted: '', time: '', timeFormatted: '' };\n    \n    var kindLabels = {\n        intake: \"Video Consultation\",\n        followup: \"Follow-up Video Consultation\"    };\n    \n    function showStep(step) {\n        $landing.find('.tty-cl-step').hide();\n        $landing.find('[data-step=\"' + step + '\"]').show();\n        updateStepper(step);\n    }\n    \n    \/\/ Sticky-header aware scrolling. The theme's header (header-behavior.css)\n    \/\/ is fixed once the body has the .scrolled class and exposes its live\n    \/\/ heights as CSS custom properties: --header-scrolldown-height applies\n    \/\/ while scrolling down (82px desktop, 0 on mobile where the header hides)\n    \/\/ and --header-scrollup-height while scrolling up (134px \/ 65px). We pick\n    \/\/ the variable matching the scroll direction, add the WP admin bar when\n    \/\/ it is fixed, and fall back to measuring #masthead if the variables are\n    \/\/ ever unavailable.\n    function scrollToTarget($target) {\n        if (!$target || $target.length === 0) {\n            return;\n        }\n        \n        var targetTop = $target.offset().top;\n        var goingUp = targetTop < $(window).scrollTop();\n        var varName = goingUp ? '--header-scrollup-height' : '--header-scrolldown-height';\n        \n        var headerHeight = parseInt(window.getComputedStyle(document.documentElement).getPropertyValue(varName), 10);\n        \n        if (isNaN(headerHeight)) {\n            var $header = $('#masthead');\n            headerHeight = $header.length ? ($header.outerHeight() || 0) : 0;\n        }\n        \n        var $adminBar = $('#wpadminbar');\n        var adminBarHeight = ($adminBar.length && $adminBar.css('position') === 'fixed') ? ($adminBar.outerHeight() || 0) : 0;\n        \n        $('html, body').animate({ scrollTop: targetTop - headerHeight - adminBarHeight - 24 }, 300);\n    }\n    \n    function updateStepper(current) {\n        var order = ['kind', 'discipline', 'booking'];\n        var currentIndex = order.indexOf(current);\n        \n        $('#tty-cl-stepper .tty-cl-stepper-item').each(function() {\n            var $item = $(this);\n            var index = order.indexOf(String($item.data('goto')));\n            \n            $item.removeClass('is-current is-done is-upcoming');\n            \n            if (index < currentIndex) {\n                $item.addClass('is-done').prop('disabled', false);\n            } else if (index === currentIndex) {\n                $item.addClass('is-current').prop('disabled', true);\n            } else {\n                $item.addClass('is-upcoming').prop('disabled', true);\n            }\n        });\n        \n        \/\/ Sublabels: show the chosen values on completed steps. The\n        \/\/ discipline value only appears once the booking panel is open \u2014\n        \/\/ a deep-linked ?discipline preselection must not show on step 1.\n        var kindValue = state.kind ? (kindLabels[state.kind] || state.kind) : '';\n        var discValue = '';\n        \n        if (state.discipline && current === 'booking') {\n            discValue = $landing.find('.tty-cl-discipline-card[data-discipline=\"' + state.discipline + '\"] .tty-cl-discipline-name').text();\n        }\n        \n        $('#tty-cl-stepper [data-goto=\"kind\"] .tty-cl-stepper-value').text(kindValue);\n        $('#tty-cl-stepper [data-goto=\"discipline\"] .tty-cl-stepper-value').text(discValue);\n    }\n    \n    function resetBookingState($panel) {\n        state.doctor = 0; state.date = ''; state.time = '';\n        $panel.find('input[type=\"radio\"]').prop('checked', false);\n        $panel.find('.tty-cl-substep-date, .tty-cl-substep-time, .tty-cl-substep-confirm').hide();\n        $panel.find('.tty-cl-dates-container, .tty-cl-times-container').empty();\n        filterPanelDoctors($panel);\n    }\n    \n    \/\/ Delivery country (lowercase ISO2) injected server-side; '' = unknown.\n    \/\/ Doctors are hard-matched to it: an EMPTY country list on a doctor\n    \/\/ means the doctor is available in ALL countries (business rule).\n    var deliveryCountry = \"\";\n    \n    \/\/ Language filtering on the doctor grid, with the country dimension\n    \/\/ locked to the visitor's delivery country, scoped per panel.\n    function filterPanelDoctors($panel) {\n        var language = $panel.find('.tty-cl-language-filter').length ? $panel.find('.tty-cl-language-filter').val() : 'all';\n        var visibleCount = 0;\n        \n        $panel.find('.tty-cl-doctor-option').each(function() {\n            var $option = $(this);\n            var optionCountries = String($option.data('countries') || '').split(',').filter(function(c) { return c !== ''; });\n            var optionLanguages = String($option.data('languages') || '').split(',');\n            \n            var matchesCountry = deliveryCountry !== '' && (optionCountries.length === 0 || optionCountries.indexOf(deliveryCountry) !== -1);\n            var matchesLanguage = !language || language === 'all' || optionLanguages.indexOf(language) !== -1;\n            \n            if (matchesCountry && matchesLanguage) {\n                $option.show();\n                visibleCount++;\n            } else {\n                \/\/ A hidden selected doctor must not stay selected\n                if ($option.find('input').prop('checked')) {\n                    $option.find('input').prop('checked', false);\n                    state.doctor = 0;\n                    $panel.find('.tty-cl-substep-date, .tty-cl-substep-time, .tty-cl-substep-confirm').hide();\n                }\n                $option.hide();\n            }\n        });\n        \n        $panel.find('.tty-cl-no-doctors-match').toggle(visibleCount === 0);\n    }\n    \n    function openPanel() {\n        if (!state.kind || !state.discipline) {\n            return;\n        }\n        \n        showStep('booking');\n        $landing.find('.tty-cl-panel').hide();\n        \n        var $panel = $landing.find('.tty-cl-panel[data-panel=\"' + state.discipline + ':' + state.kind + '\"]');\n        \n        if ($panel.length === 0) {\n            \/\/ No type for this combination \u2014 fall back to the discipline step\n            showStep('discipline');\n            return;\n        }\n        \n        resetBookingState($panel);\n        $panel.show();\n        \n        scrollToTarget($('#tty-cl-step-booking'));\n    }\n    \n    \/\/ Kind selection\n    $landing.on('click', '.tty-cl-kind-card', function() {\n        state.kind = $(this).data('kind');\n        state.discipline = '';\n        showStep('discipline');\n    });\n    \n    \/\/ Discipline selection\n    $landing.on('click', '.tty-cl-discipline-card', function() {\n        state.discipline = $(this).data('discipline');\n        openPanel();\n    });\n    \n    \/\/ Language filter changes\n    $landing.on('change', '.tty-cl-language-filter', function() {\n        filterPanelDoctors($(this).closest('.tty-cl-panel'));\n    });\n    \n    \/\/ Delivery-country change: open the theme's country selector popup on\n    \/\/ the countries tab (same public API the theme uses internally), with\n    \/\/ the header trigger as fallback.\n    $landing.on('click', '.tty-cl-change-country', function(e) {\n        e.preventDefault();\n        \n        if (window.CountrySelector && typeof window.CountrySelector.openPopup === 'function') {\n            window.CountrySelector.openPopup('countries');\n        } else {\n            $('#country-selector-trigger').trigger('click');\n        }\n    });\n    \n    \/\/ After a delivery-country change (theme fires country_changed on body,\n    \/\/ without reloading), reload the landing with the current position\n    \/\/ preserved as deep-link params: the visitor returns to the same panel\n    \/\/ with freshly server-filtered doctors and an updated delivery strip.\n    $(document.body).on('country_changed', function() {\n        var params = new URLSearchParams(window.location.search);\n        \n        params.delete('kind');\n        params.delete('discipline');\n        \n        if (state.kind) {\n            params.set('kind', state.kind);\n        }\n        \n        if (state.discipline) {\n            params.set('discipline', state.discipline);\n        }\n        \n        var query = params.toString();\n        window.location.href = window.location.pathname + (query ? '?' + query : '');\n    });\n    \n    \/\/ Locked follow-up -> switch to intake of the same discipline\n    $landing.on('click', '.tty-cl-switch-to-intake', function() {\n        state.kind = 'intake';\n        state.discipline = $(this).data('discipline');\n        openPanel();\n    });\n    \n    \/\/ Stepper navigation: completed steps are clickable to go back\n    $landing.on('click', '.tty-cl-stepper-item.is-done', function() {\n        var goto_ = $(this).data('goto');\n        \n        if (goto_ === 'kind') {\n            state.kind = ''; state.discipline = '';\n            showStep('kind');\n        } else if (goto_ === 'discipline') {\n            state.discipline = '';\n            showStep('discipline');\n        }\n    });\n    \n    \/\/ FAQ quick-link: smooth scroll to the FAQ section\n    $landing.on('click', '.tty-cl-faq-link', function(e) {\n        e.preventDefault();\n        scrollToTarget($('#tty-cl-faq'));\n    });\n    \n    \/\/ Doctor selection -> load dates\n    $landing.on('change', '.tty-cl-doctors-grid input[type=\"radio\"]', function() {\n        var $panel = $(this).closest('.tty-cl-panel');\n        \n        state.doctor = parseInt($(this).val(), 10);\n        state.doctorName = $(this).closest('.tty-cl-doctor-option').find('.tty-cl-doctor-name').text();\n        \n        $panel.find('.tty-cl-substep-time, .tty-cl-substep-confirm').hide();\n        $panel.find('.tty-cl-substep-date').show();\n        \n        loadDates($panel);\n    });\n    \n    function loadDates($panel) {\n        var $container = $panel.find('.tty-cl-dates-container');\n        var $loading = $panel.find('.tty-cl-substep-date .tty-cl-loading');\n        \n        $loading.show();\n        $container.empty();\n        \n        $.ajax({\n            url: ttyMeet.ajaxUrl,\n            type: 'POST',\n            data: { action: 'tty_meet_get_available_dates', nonce: ttyMeet.nonce, doctor_id: state.doctor },\n            success: function(response) {\n                $loading.hide();\n                \n                if (response.success && response.data.dates.length > 0) {\n                    $.each(response.data.dates, function(i, date) {\n                        $container.append(\n                            '<label class=\"tty-cl-date-option\">' +\n                            '<input type=\"radio\" name=\"tty_cl_date\" value=\"' + date.date + '\" data-formatted=\"' + date.formatted + '\" data-day=\"' + date.day + '\">' +\n                            '<span class=\"tty-cl-date-day\">' + date.day + '<\/span>' +\n                            '<span class=\"tty-cl-date-full\">' + date.formatted + '<\/span>' +\n                            '<\/label>'\n                        );\n                    });\n                } else {\n                    $container.html('<p class=\"tty-cl-no-results\">' + ttyMeet.strings.noSlots + '<\/p>');\n                }\n            },\n            error: function() {\n                $loading.hide();\n                $container.html('<p class=\"tty-cl-no-results\">' + ttyMeet.strings.error + '<\/p>');\n            }\n        });\n    }\n    \n    \/\/ Date selection -> load times\n    $landing.on('change', 'input[name=\"tty_cl_date\"]', function() {\n        var $panel = $(this).closest('.tty-cl-panel');\n        \n        state.date = $(this).val();\n        \/\/ Full confirmation format: weekday + bare date (the payload keeps\n        \/\/ them separate so the date cards can render them on two lines)\n        state.dateFormatted = $(this).data('day') + ', ' + $(this).data('formatted');\n        \n        $panel.find('.tty-cl-substep-confirm').hide();\n        $panel.find('.tty-cl-substep-time').show();\n        \n        loadTimes($panel);\n    });\n    \n    function loadTimes($panel) {\n        var $container = $panel.find('.tty-cl-times-container');\n        var $loading = $panel.find('.tty-cl-substep-time .tty-cl-loading');\n        \n        $loading.show();\n        $container.empty();\n        \n        $.ajax({\n            url: ttyMeet.ajaxUrl,\n            type: 'POST',\n            data: { action: 'tty_meet_get_available_slots', nonce: ttyMeet.nonce, doctor_id: state.doctor, date: state.date },\n            success: function(response) {\n                $loading.hide();\n                \n                if (response.success && response.data.slots.length > 0) {\n                    $.each(response.data.slots, function(i, slot) {\n                        $container.append(\n                            '<label class=\"tty-cl-time-option\">' +\n                            '<input type=\"radio\" name=\"tty_cl_time\" value=\"' + slot.time + '\" data-formatted=\"' + slot.formatted + '\">' +\n                            '<span>' + slot.formatted + '<\/span>' +\n                            '<\/label>'\n                        );\n                    });\n                } else {\n                    $container.html('<p class=\"tty-cl-no-results\">' + ttyMeet.strings.noSlots + '<\/p>');\n                }\n            },\n            error: function() {\n                $loading.hide();\n                $container.html('<p class=\"tty-cl-no-results\">' + ttyMeet.strings.error + '<\/p>');\n            }\n        });\n    }\n    \n    \/\/ Time selection -> show confirm\n    $landing.on('change', 'input[name=\"tty_cl_time\"]', function() {\n        var $panel = $(this).closest('.tty-cl-panel');\n        \n        state.time = $(this).val();\n        state.timeFormatted = $(this).data('formatted');\n        \n        $panel.find('.tty-cl-summary-doctor').text(state.doctorName);\n        $panel.find('.tty-cl-summary-date').text(state.dateFormatted);\n        $panel.find('.tty-cl-summary-time').text(state.timeFormatted);\n        \n        $panel.find('.tty-cl-field-doctor').val(state.doctor);\n        $panel.find('.tty-cl-field-date').val(state.date);\n        $panel.find('.tty-cl-field-time').val(state.time);\n        \n        $panel.find('.tty-cl-substep-confirm').show();\n    });\n    \n    \/\/ ---- Document upload (same contract as the product page form) ----\n    var maxFiles = 5;\n    var pendingUpload = null;\n    \n    function getUploadScope($el) {\n        var $upload = $el.closest('.tty-cl-upload');\n        \n        return {\n            $upload: $upload,\n            session: $upload.data('session'),\n            files: $upload.data('files') || []\n        };\n    }\n    \n    $landing.on('click', '.tty-cl-browse-btn', function() {\n        $(this).closest('.tty-cl-upload').find('.tty-cl-file-input').trigger('click');\n    });\n    \n    $landing.on('click', '.tty-cl-dropzone', function(e) {\n        if ($(e.target).closest('.tty-cl-browse-btn').length === 0 && e.target === this) {\n            $(this).find('.tty-cl-file-input').trigger('click');\n        }\n    });\n    \n    $landing.on('dragover dragenter', '.tty-cl-dropzone', function(e) {\n        e.preventDefault();\n        $(this).addClass('tty-meet-dropzone-active');\n    });\n    \n    $landing.on('dragleave drop', '.tty-cl-dropzone', function(e) {\n        e.preventDefault();\n        $(this).removeClass('tty-meet-dropzone-active');\n        \n        if (e.type === 'drop' && e.originalEvent.dataTransfer && e.originalEvent.dataTransfer.files.length > 0) {\n            queueFile($(this), e.originalEvent.dataTransfer.files[0]);\n        }\n    });\n    \n    $landing.on('change', '.tty-cl-file-input', function() {\n        if (this.files.length > 0) {\n            queueFile($(this).closest('.tty-cl-dropzone'), this.files[0]);\n            this.value = '';\n        }\n    });\n    \n    function queueFile($dropzone, file) {\n        var scope = getUploadScope($dropzone);\n        \n        if (scope.files.length >= maxFiles) {\n            showUploadError(scope.$upload, \"Maximum number of files reached.\");\n            return;\n        }\n        \n        pendingUpload = file;\n        \n        var $modal = scope.$upload.find('.tty-cl-type-modal');\n        $modal.find('.tty-cl-type-filename').text(file.name);\n        $modal.find('input[type=\"radio\"]').prop('checked', false);\n        $modal.find('.tty-cl-type-confirm').prop('disabled', true);\n        $modal.show();\n    }\n    \n    $landing.on('change', '.tty-cl-type-modal input[type=\"radio\"]', function() {\n        $(this).closest('.tty-cl-type-modal').find('.tty-cl-type-confirm').prop('disabled', false);\n    });\n    \n    $landing.on('click', '.tty-cl-type-cancel', function() {\n        pendingUpload = null;\n        $(this).closest('.tty-cl-type-modal').hide();\n    });\n    \n    $landing.on('click', '.tty-cl-type-confirm', function() {\n        var $modal = $(this).closest('.tty-cl-type-modal');\n        var fileType = $modal.find('input[type=\"radio\"]:checked').val();\n        \n        if (!pendingUpload || !fileType) {\n            return;\n        }\n        \n        $modal.hide();\n        uploadFile(getUploadScope($modal), pendingUpload, fileType);\n        pendingUpload = null;\n    });\n    \n    function uploadFile(scope, file, fileType) {\n        var formData = new FormData();\n        formData.append('action', 'tty_meet_upload_attachment');\n        formData.append('nonce', ttyMeet.nonce);\n        formData.append('file', file);\n        formData.append('file_type', fileType);\n        formData.append('session_key', scope.session);\n        \n        var $progress = scope.$upload.find('.tty-cl-upload-progress');\n        var $fill = scope.$upload.find('.tty-cl-progress-fill');\n        \n        scope.$upload.find('.tty-cl-upload-error').hide();\n        $progress.show();\n        \n        $.ajax({\n            url: ttyMeet.ajaxUrl,\n            type: 'POST',\n            data: formData,\n            processData: false,\n            contentType: false,\n            xhr: function() {\n                var xhr = new window.XMLHttpRequest();\n                xhr.upload.addEventListener('progress', function(e) {\n                    if (e.lengthComputable) {\n                        $fill.css('width', ((e.loaded \/ e.total) * 100) + '%');\n                    }\n                }, false);\n                return xhr;\n            },\n            success: function(response) {\n                $progress.hide();\n                $fill.css('width', '0%');\n                \n                if (response.success) {\n                    var files = scope.$upload.data('files') || [];\n                    files.push(response.data.attachment);\n                    scope.$upload.data('files', files);\n                    renderFiles(scope.$upload);\n                } else {\n                    showUploadError(scope.$upload, (response.data && response.data.message) || ttyMeet.strings.error);\n                }\n            },\n            error: function() {\n                $progress.hide();\n                $fill.css('width', '0%');\n                showUploadError(scope.$upload, ttyMeet.strings.error);\n            }\n        });\n    }\n    \n    function renderFiles($upload) {\n        var files = $upload.data('files') || [];\n        var $wrap = $upload.find('.tty-cl-uploaded-files');\n        var $list = $upload.find('.tty-cl-files-list');\n        \n        if (files.length === 0) {\n            $wrap.hide();\n            return;\n        }\n        \n        $wrap.show();\n        $upload.find('.tty-cl-file-count').text(files.length);\n        $list.empty();\n        \n        $.each(files, function(i, file) {\n            var iconClass = file.is_pdf ? 'fa-file-pdf' : 'fa-file-image';\n            $list.append(\n                '<div class=\"tty-meet-file-item\" data-id=\"' + file.id + '\">' +\n                '<i class=\"fa-duotone ' + iconClass + '\"><\/i>' +\n                '<span class=\"tty-meet-file-name\">' + $('<span>').text(file.name || file.original_name || '').html() + '<\/span>' +\n                '<button type=\"button\" class=\"tty-meet-file-remove tty-cl-file-remove\" data-id=\"' + file.id + '\" aria-label=\"Remove\">' +\n                '<i class=\"fa-duotone fa-trash-can\"><\/i><\/button>' +\n                '<\/div>'\n            );\n        });\n    }\n    \n    $landing.on('click', '.tty-cl-file-remove', function() {\n        var $btn = $(this);\n        var fileId = $btn.data('id');\n        var $upload = $btn.closest('.tty-cl-upload');\n        \n        $btn.prop('disabled', true);\n        \n        $.ajax({\n            url: ttyMeet.ajaxUrl,\n            type: 'POST',\n            data: { action: 'tty_meet_delete_attachment', nonce: ttyMeet.nonce, attachment_id: fileId },\n            success: function(response) {\n                if (response.success) {\n                    var files = ($upload.data('files') || []).filter(function(f) { return f.id !== fileId; });\n                    $upload.data('files', files);\n                    renderFiles($upload);\n                } else {\n                    $btn.prop('disabled', false);\n                }\n            },\n            error: function() {\n                $btn.prop('disabled', false);\n            }\n        });\n    });\n    \n    function showUploadError($upload, message) {\n        $upload.find('.tty-cl-upload-error').text(message).show();\n    }\n    \n    \/\/ Reason field: live counter, counter states and book-button gating.\n    \/\/ Scoped per panel form \u2014 every (discipline x kind) panel has its own\n    \/\/ textarea, counter and button. Raw length drives the live state; the\n    \/\/ submit guard below applies the authoritative trimmed check (the\n    \/\/ server-side validation in TTY_Meet_WooCommerce remains the source\n    \/\/ of truth).\n    function updateReasonState($form) {\n        var $reason = $form.find('.tty-cl-reason');\n        \n        if ($reason.length === 0) {\n            return;\n        }\n        \n        var length = String($reason.val() || '').length;\n        var $counter = $form.find('.tty-cl-reason-counter');\n        \n        $form.find('.tty-cl-reason-count').text(length);\n        $counter.toggleClass('invalid', length > 0 && length < 25);\n        $counter.toggleClass('valid', length >= 25);\n        $form.find('.tty-cl-btn-book').prop('disabled', length < 25).toggleClass('tty-cl-btn-disabled', length < 25);\n        \n        if (length >= 25) {\n            $form.find('.tty-cl-reason-error').hide();\n            $reason.removeClass('has-error');\n        }\n    }\n    \n    $landing.on('input', '.tty-cl-reason', function() {\n        updateReasonState($(this).closest('.tty-cl-checkout-form'));\n    });\n    \n    $landing.find('.tty-cl-checkout-form').each(function() {\n        updateReasonState($(this));\n    });\n    \n    \/\/ Guard the handover: all three fields must be set and the reason valid\n    $landing.on('submit', '.tty-cl-checkout-form', function(e) {\n        var $form = $(this);\n        \n        if (!$form.find('.tty-cl-field-doctor').val() || !$form.find('.tty-cl-field-date').val() || !$form.find('.tty-cl-field-time').val()) {\n            e.preventDefault();\n            return;\n        }\n        \n        var $reason = $form.find('.tty-cl-reason');\n        var reasonLength = String($reason.val() || '').trim().length;\n        \n        if (reasonLength < 25 || reasonLength > 250) {\n            e.preventDefault();\n            $form.find('.tty-cl-reason-error').show();\n            $reason.addClass('has-error').trigger('focus');\n            \n            if ($reason.length && $reason.get(0).scrollIntoView) {\n                $reason.get(0).scrollIntoView({ behavior: 'smooth', block: 'center' });\n            }\n            return;\n        }\n        \n        $form.find('.tty-cl-btn-book').prop('disabled', true).css('opacity', '0.7');\n    });\n    \n    \/\/ Deep links: ?kind=... and\/or ?discipline=...\n    var preKind = $landing.data('preselected-kind');\n    var preDisc = $landing.data('preselected-discipline');\n    \n    if (preKind && preDisc) {\n        state.kind = preKind;\n        state.discipline = preDisc;\n        openPanel();\n    } else if (preKind) {\n        state.kind = preKind;\n        showStep('discipline');\n    } else if (preDisc) {\n        \/\/ Discipline known, kind not: ask the kind first, then jump straight in\n        state.discipline = preDisc;\n        showStep('kind');\n        $landing.on('click.ttyClPre', '.tty-cl-kind-card', function() {\n            $landing.off('click.ttyClPre');\n            state.discipline = preDisc;\n            openPanel();\n        });\n    }\n});\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":13,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2964","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Videokonsultation med legitimerade l\u00e4kare online - Transtoyou<\/title>\n<meta name=\"description\" content=\"Boka videokonsultation med legitimerade l\u00e4kare online. F\u00e5 professionell r\u00e5dgivning, medicinsk bed\u00f6mning och recept vid behov.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.transtoyou.com\/sv\/videokonsultation\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Videokonsultation med legitimerade l\u00e4kare online - Transtoyou\" \/>\n<meta property=\"og:description\" content=\"Boka videokonsultation med legitimerade l\u00e4kare online. F\u00e5 professionell r\u00e5dgivning, medicinsk bed\u00f6mning och recept vid behov.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.transtoyou.com\/sv\/videokonsultation\/\" \/>\n<meta property=\"og:site_name\" content=\"Transtoyou - SV\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-13T10:11:26+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/videokonsultation\\\/\",\"url\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/videokonsultation\\\/\",\"name\":\"Videokonsultation med legitimerade l\u00e4kare online - Transtoyou\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/#website\"},\"datePublished\":\"2026-06-11T11:46:24+00:00\",\"dateModified\":\"2026-06-13T10:11:26+00:00\",\"description\":\"Boka videokonsultation med legitimerade l\u00e4kare online. F\u00e5 professionell r\u00e5dgivning, medicinsk bed\u00f6mning och recept vid behov.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/videokonsultation\\\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/videokonsultation\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/#website\",\"url\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/\",\"name\":\"Transtoyou - SV\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/#organization\",\"name\":\"Transtoyou - SV\",\"url\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/wp-content\\\/uploads\\\/sites\\\/15\\\/2026\\\/01\\\/logo-tty-menu-bar-300x87-1.webp\",\"contentUrl\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/wp-content\\\/uploads\\\/sites\\\/15\\\/2026\\\/01\\\/logo-tty-menu-bar-300x87-1.webp\",\"width\":300,\"height\":87,\"caption\":\"Transtoyou - SV\"},\"image\":{\"@id\":\"https:\\\/\\\/www.transtoyou.com\\\/sv\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Videokonsultation med legitimerade l\u00e4kare online - Transtoyou","description":"Boka videokonsultation med legitimerade l\u00e4kare online. F\u00e5 professionell r\u00e5dgivning, medicinsk bed\u00f6mning och recept vid behov.","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:\/\/www.transtoyou.com\/sv\/videokonsultation\/","og_locale":"sv_SE","og_type":"article","og_title":"Videokonsultation med legitimerade l\u00e4kare online - Transtoyou","og_description":"Boka videokonsultation med legitimerade l\u00e4kare online. F\u00e5 professionell r\u00e5dgivning, medicinsk bed\u00f6mning och recept vid behov.","og_url":"https:\/\/www.transtoyou.com\/sv\/videokonsultation\/","og_site_name":"Transtoyou - SV","article_modified_time":"2026-06-13T10:11:26+00:00","twitter_card":"summary_large_image","twitter_misc":{"Ber\u00e4knad l\u00e4stid":"1 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.transtoyou.com\/sv\/videokonsultation\/","url":"https:\/\/www.transtoyou.com\/sv\/videokonsultation\/","name":"Videokonsultation med legitimerade l\u00e4kare online - Transtoyou","isPartOf":{"@id":"https:\/\/www.transtoyou.com\/sv\/#website"},"datePublished":"2026-06-11T11:46:24+00:00","dateModified":"2026-06-13T10:11:26+00:00","description":"Boka videokonsultation med legitimerade l\u00e4kare online. F\u00e5 professionell r\u00e5dgivning, medicinsk bed\u00f6mning och recept vid behov.","breadcrumb":{"@id":"https:\/\/www.transtoyou.com\/sv\/videokonsultation\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.transtoyou.com\/sv\/videokonsultation\/"]}]},{"@type":"WebSite","@id":"https:\/\/www.transtoyou.com\/sv\/#website","url":"https:\/\/www.transtoyou.com\/sv\/","name":"Transtoyou - SV","description":"","publisher":{"@id":"https:\/\/www.transtoyou.com\/sv\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.transtoyou.com\/sv\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"},{"@type":"Organization","@id":"https:\/\/www.transtoyou.com\/sv\/#organization","name":"Transtoyou - SV","url":"https:\/\/www.transtoyou.com\/sv\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/www.transtoyou.com\/sv\/#\/schema\/logo\/image\/","url":"https:\/\/www.transtoyou.com\/sv\/wp-content\/uploads\/sites\/15\/2026\/01\/logo-tty-menu-bar-300x87-1.webp","contentUrl":"https:\/\/www.transtoyou.com\/sv\/wp-content\/uploads\/sites\/15\/2026\/01\/logo-tty-menu-bar-300x87-1.webp","width":300,"height":87,"caption":"Transtoyou - SV"},"image":{"@id":"https:\/\/www.transtoyou.com\/sv\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.transtoyou.com\/sv\/wp-json\/wp\/v2\/pages\/2964","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.transtoyou.com\/sv\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.transtoyou.com\/sv\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.transtoyou.com\/sv\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.transtoyou.com\/sv\/wp-json\/wp\/v2\/comments?post=2964"}],"version-history":[{"count":1,"href":"https:\/\/www.transtoyou.com\/sv\/wp-json\/wp\/v2\/pages\/2964\/revisions"}],"predecessor-version":[{"id":2965,"href":"https:\/\/www.transtoyou.com\/sv\/wp-json\/wp\/v2\/pages\/2964\/revisions\/2965"}],"wp:attachment":[{"href":"https:\/\/www.transtoyou.com\/sv\/wp-json\/wp\/v2\/media?parent=2964"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}